From aa5bc5178eefe858bcc4d45cdba45817688363dc Mon Sep 17 00:00:00 2001 From: Romain Magne Date: Tue, 20 May 2025 02:22:29 +0200 Subject: [PATCH] Format --- README.md | 50 +++++- cache_forge/solidity-files-cache.json | 2 +- contracts/ConfidentialIndexFund.sol | 144 +++++++++++------- .../ERC20Encryption/ConfidentialERC20Base.sol | 2 +- ...dentialERC20WithErrorsMintableBurnable.sol | 4 +- .../ConfidentialERC20WithErrorsWrapped.sol | 2 +- .../CustomConfidentialERC20WithErrors.sol | 7 +- ...tomConfidentialERC20WithErrorsMintable.sol | 32 ---- .../CustomConfidentialERC20Wrapped.sol | 1 + contracts/IndexFundFactory.sol | 17 +++ contracts/IndexFundToken.sol | 27 +++- contracts/interfaces/IIndexFund.sol | 6 +- contracts/lib/IndexFundStateManagement.sol | 104 +++++++------ contracts/marketData/MarketDataFetcher.sol | 52 ++++++- contracts/swaps/SwapsManager.sol | 33 ++++ contracts/test/testERC20.sol | 4 +- .../ConfidentialERC20Base.json | 1 + ...entialERC20WithErrorsMintableBurnable.json | 2 +- .../ConfidentialERC20WithErrorsWrapped.json | 2 +- .../ConfidentialIndexFund.json | 2 +- .../CustomConfidentialERC20WithErrors.json | 1 + ...omConfidentialERC20WithErrorsMintable.json | 1 + .../CustomConfidentialERC20Wrapped.json | 1 + out/IIndexFund.sol/IIndexFund.json | 2 +- .../IndexFundFactory.json | 2 +- .../IndexFundStateManagement.json | 1 + out/IndexFundToken.sol/IndexFundToken.json | 2 +- .../MarketDataFetcher.json | 2 +- .../MockMarketDataFetcher.json | 1 + .../MockSwapsManager.json | 1 + out/SwapsManager.sol/SwapsManager.json | 2 +- .../6c6cc69ac3acdbb7e76597baa51096f4.json | 1 + .../c9c371a10fdf476c3d80cbfb9ab3fb34.json | 1 + out/testERC20.sol/TestErc20.json | 2 +- 34 files changed, 347 insertions(+), 167 deletions(-) delete mode 100644 contracts/ERC20Encryption/CustomConfidentialERC20WithErrorsMintable.sol create mode 100644 out/ConfidentialERC20Base.sol/ConfidentialERC20Base.json create mode 100644 out/CustomConfidentialERC20WithErrors.sol/CustomConfidentialERC20WithErrors.json create mode 100644 out/CustomConfidentialERC20WithErrorsMintable.sol/CustomConfidentialERC20WithErrorsMintable.json create mode 100644 out/CustomConfidentialERC20Wrapped.sol/CustomConfidentialERC20Wrapped.json create mode 100644 out/IndexFundStateManagement.sol/IndexFundStateManagement.json create mode 100644 out/MockMarketDataFetcher.sol/MockMarketDataFetcher.json create mode 100644 out/MockSwapsManager.sol/MockSwapsManager.json create mode 100644 out/build-info/6c6cc69ac3acdbb7e76597baa51096f4.json create mode 100644 out/build-info/c9c371a10fdf476c3d80cbfb9ab3fb34.json diff --git a/README.md b/README.md index a3c7c44..3f6a9de 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,47 @@ -# Unknown Finance -The first confidential crypto index fund protocol, built on Ethereum. -Coming soon. +# Unknown Finance Protocol + +## Overview + +Unknown Finance is a privacy-preserving index fund protocol built on Ethereum that enables users to invest in a basket of tokens while maintaining complete confidentiality of their positions and transactions. The protocol leverages Fully Homomorphic Encryption (FHE) to provide unprecedented privacy in DeFi index fund investments. + +## Key Features + +### Privacy-Preserving Operations +- Confidential minting and burning of index fund shares +- Private stablecoin deposits and withdrawals +- Encrypted balance tracking and transfers +- Hidden transaction amounts and user positions + +### Advanced Index Fund Management +- Automatic token swaps based on market cap weights +- Support for both index token and stablecoin redemption paths +- Real-time market data integration for accurate pricing +- Dynamic share price calculation based on underlying assets + + +## Architecture + +### Core Components + +1. **ConfidentialIndexFund** + - Main contract managing the index fund operations + - Handles encrypted deposits, withdrawals, and share management + - Integrates with Uniswap V4 for token swaps + - Maintains privacy through FHE implementation + +2. **IndexFundToken** + - Confidential ERC20 token representing index fund shares + - Implements encrypted balance tracking + - Supports private transfers and allowances + +3. **IndexFundFactory** + - Creates and manages index fund instances + - Handles token-stablecoin pair whitelisting + - Maintains global protocol parameters + +4. **SwapsManager** + - Manages token swaps through Uniswap V4 + +5. **MarketDataFetcher** + - Integrates with Chainlink price feeds + - Calculates market capitalizations \ No newline at end of file diff --git a/cache_forge/solidity-files-cache.json b/cache_forge/solidity-files-cache.json index c26e3f6..41ed9a4 100644 --- a/cache_forge/solidity-files-cache.json +++ b/cache_forge/solidity-files-cache.json @@ -1 +1 @@ -{"_format":"","paths":{"artifacts":"out","build_infos":"out/build-info","sources":"contracts","tests":"test","scripts":"script","libraries":["lib","node_modules"]},"files":{"contracts/ConfidentialIndexFund.sol":{"lastModificationDate":1745455591243,"contentHash":"b912ab96430d9beb8d234c272482419e","sourceName":"contracts/ConfidentialIndexFund.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["contracts/ConfidentialIndexFund.sol","contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol","contracts/ERC20Encryption/ConfidentialERC20WithErrorsWrapped.sol","contracts/IndexFundFactory.sol","contracts/IndexFundToken.sol","contracts/interfaces/IIndexFund.sol","contracts/interfaces/IIndexFundFactory.sol","contracts/interfaces/IMarketDataFetcher.sol","contracts/interfaces/ISwapsManager.sol","contracts/marketData/MarketDataFetcher.sol","contracts/swaps/SwapsManager.sol","lib/chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol","lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20Wrapped.sol","lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20Wrapped.sol","lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol","lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol","lib/httpz-contracts/contracts/utils/EncryptedErrors.sol","lib/httpz-contracts/contracts/utils/TFHEErrors.sol","lib/openzeppelin-contracts/contracts/access/AccessControl.sol","lib/openzeppelin-contracts/contracts/access/IAccessControl.sol","lib/openzeppelin-contracts/contracts/access/Ownable.sol","lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol","lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol","lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol","lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol","lib/openzeppelin-contracts/contracts/utils/Address.sol","lib/openzeppelin-contracts/contracts/utils/Context.sol","lib/openzeppelin-contracts/contracts/utils/Errors.sol","lib/openzeppelin-contracts/contracts/utils/Panic.sol","lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol","lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol","lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","lib/openzeppelin-contracts/contracts/utils/Strings.sol","lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol","lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","lib/openzeppelin-contracts/contracts/utils/math/Math.sol","lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol","lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol","lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol","lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol","lib/permit2/lib/solmate/src/tokens/ERC20.sol","lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol","lib/permit2/src/interfaces/IAllowanceTransfer.sol","lib/permit2/src/interfaces/IEIP712.sol","lib/permit2/src/interfaces/IPermit2.sol","lib/permit2/src/interfaces/ISignatureTransfer.sol","lib/permit2/src/libraries/SafeCast160.sol","lib/universal-router.git/contracts/UniversalRouter.sol","lib/universal-router.git/contracts/base/Dispatcher.sol","lib/universal-router.git/contracts/base/Lock.sol","lib/universal-router.git/contracts/interfaces/IUniversalRouter.sol","lib/universal-router.git/contracts/libraries/Commands.sol","lib/universal-router.git/contracts/libraries/Constants.sol","lib/universal-router.git/contracts/libraries/Locker.sol","lib/universal-router.git/contracts/libraries/MaxInputAmount.sol","lib/universal-router.git/contracts/modules/MigratorImmutables.sol","lib/universal-router.git/contracts/modules/Payments.sol","lib/universal-router.git/contracts/modules/PaymentsImmutables.sol","lib/universal-router.git/contracts/modules/Permit2Payments.sol","lib/universal-router.git/contracts/modules/V3ToV4Migrator.sol","lib/universal-router.git/contracts/modules/uniswap/UniswapImmutables.sol","lib/universal-router.git/contracts/modules/uniswap/v2/UniswapV2Library.sol","lib/universal-router.git/contracts/modules/uniswap/v2/V2SwapRouter.sol","lib/universal-router.git/contracts/modules/uniswap/v3/BytesLib.sol","lib/universal-router.git/contracts/modules/uniswap/v3/V3Path.sol","lib/universal-router.git/contracts/modules/uniswap/v3/V3SwapRouter.sol","lib/universal-router.git/contracts/modules/uniswap/v4/V4SwapRouter.sol","lib/universal-router.git/contracts/types/RouterParameters.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IERC721Permit.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryPayments.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPoolInitializer.sol","lib/universal-router.git/lib/v3-periphery/contracts/libraries/PoolAddress.sol","lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol","lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol","lib/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol","lib/v3-core/contracts/libraries/SafeCast.sol","lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/callback/IUnlockCallback.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/BitMath.sol","lib/v4-core/src/libraries/CurrencyReserves.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/FixedPoint128.sol","lib/v4-core/src/libraries/FullMath.sol","lib/v4-core/src/libraries/LiquidityMath.sol","lib/v4-core/src/libraries/Lock.sol","lib/v4-core/src/libraries/NonzeroDeltaCount.sol","lib/v4-core/src/libraries/Position.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/libraries/StateLibrary.sol","lib/v4-core/src/libraries/TickMath.sol","lib/v4-core/src/libraries/TransientStateLibrary.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/V4Router.sol","lib/v4-periphery/src/base/BaseActionsRouter.sol","lib/v4-periphery/src/base/DeltaResolver.sol","lib/v4-periphery/src/base/ImmutableState.sol","lib/v4-periphery/src/base/SafeCallback.sol","lib/v4-periphery/src/interfaces/IEIP712_v4.sol","lib/v4-periphery/src/interfaces/IERC721Permit_v4.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol","lib/v4-periphery/src/interfaces/IMulticall_v4.sol","lib/v4-periphery/src/interfaces/INotifier.sol","lib/v4-periphery/src/interfaces/IPermit2Forwarder.sol","lib/v4-periphery/src/interfaces/IPoolInitializer_v4.sol","lib/v4-periphery/src/interfaces/IPositionManager.sol","lib/v4-periphery/src/interfaces/ISubscriber.sol","lib/v4-periphery/src/interfaces/IUnorderedNonce.sol","lib/v4-periphery/src/interfaces/IV4Router.sol","lib/v4-periphery/src/interfaces/external/IWETH9.sol","lib/v4-periphery/src/libraries/ActionConstants.sol","lib/v4-periphery/src/libraries/Actions.sol","lib/v4-periphery/src/libraries/BipsLibrary.sol","lib/v4-periphery/src/libraries/CalldataDecoder.sol","lib/v4-periphery/src/libraries/PathKey.sol","lib/v4-periphery/src/libraries/PositionInfoLibrary.sol","node_modules/fhevm/config/ZamaFHEVMConfig.sol","node_modules/fhevm/config/ZamaGatewayConfig.sol","node_modules/fhevm/gateway/GatewayCaller.sol","node_modules/fhevm/gateway/lib/Gateway.sol","node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"=0.8.26","artifacts":{"ConfidentialIndexFund":{"0.8.26":{"path":"ConfidentialIndexFund.sol/ConfidentialIndexFund.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol":{"lastModificationDate":1745455591240,"contentHash":"0d377db0d293b0c0fab9c69e7d4a5384","sourceName":"contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol","lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol","lib/httpz-contracts/contracts/utils/EncryptedErrors.sol","lib/httpz-contracts/contracts/utils/TFHEErrors.sol","lib/openzeppelin-contracts/contracts/access/Ownable.sol","lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","lib/openzeppelin-contracts/contracts/utils/Context.sol","node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"^0.8.24","artifacts":{"ConfidentialERC20WithErrorsMintableBurnable":{"0.8.26":{"path":"ConfidentialERC20WithErrorsMintableBurnable.sol/ConfidentialERC20WithErrorsMintableBurnable.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"contracts/ERC20Encryption/ConfidentialERC20WithErrorsWrapped.sol":{"lastModificationDate":1745455591241,"contentHash":"3590bf2cc3e19db6ded7e3aa84d621b7","sourceName":"contracts/ERC20Encryption/ConfidentialERC20WithErrorsWrapped.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20Wrapped.sol","lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol","lib/httpz-contracts/contracts/utils/EncryptedErrors.sol","lib/httpz-contracts/contracts/utils/TFHEErrors.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol","lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","node_modules/fhevm/gateway/GatewayCaller.sol","node_modules/fhevm/gateway/lib/Gateway.sol","node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"^0.8.24","artifacts":{"ConfidentialERC20WithErrorsWrapped":{"0.8.26":{"path":"ConfidentialERC20WithErrorsWrapped.sol/ConfidentialERC20WithErrorsWrapped.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"contracts/IndexFundFactory.sol":{"lastModificationDate":1745016278646,"contentHash":"f4c90318da0aea981aee69003f71fb49","sourceName":"contracts/IndexFundFactory.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["contracts/ConfidentialIndexFund.sol","contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol","contracts/ERC20Encryption/ConfidentialERC20WithErrorsWrapped.sol","contracts/IndexFundFactory.sol","contracts/IndexFundToken.sol","contracts/interfaces/IIndexFund.sol","contracts/interfaces/IIndexFundFactory.sol","contracts/interfaces/IMarketDataFetcher.sol","contracts/interfaces/ISwapsManager.sol","contracts/marketData/MarketDataFetcher.sol","contracts/swaps/SwapsManager.sol","lib/chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol","lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20Wrapped.sol","lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20Wrapped.sol","lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol","lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol","lib/httpz-contracts/contracts/utils/EncryptedErrors.sol","lib/httpz-contracts/contracts/utils/TFHEErrors.sol","lib/openzeppelin-contracts/contracts/access/AccessControl.sol","lib/openzeppelin-contracts/contracts/access/IAccessControl.sol","lib/openzeppelin-contracts/contracts/access/Ownable.sol","lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol","lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol","lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol","lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol","lib/openzeppelin-contracts/contracts/utils/Address.sol","lib/openzeppelin-contracts/contracts/utils/Context.sol","lib/openzeppelin-contracts/contracts/utils/Errors.sol","lib/openzeppelin-contracts/contracts/utils/Panic.sol","lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol","lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol","lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","lib/openzeppelin-contracts/contracts/utils/Strings.sol","lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol","lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","lib/openzeppelin-contracts/contracts/utils/math/Math.sol","lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol","lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol","lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol","lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol","lib/permit2/lib/solmate/src/tokens/ERC20.sol","lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol","lib/permit2/src/interfaces/IAllowanceTransfer.sol","lib/permit2/src/interfaces/IEIP712.sol","lib/permit2/src/interfaces/IPermit2.sol","lib/permit2/src/interfaces/ISignatureTransfer.sol","lib/permit2/src/libraries/SafeCast160.sol","lib/universal-router.git/contracts/UniversalRouter.sol","lib/universal-router.git/contracts/base/Dispatcher.sol","lib/universal-router.git/contracts/base/Lock.sol","lib/universal-router.git/contracts/interfaces/IUniversalRouter.sol","lib/universal-router.git/contracts/libraries/Commands.sol","lib/universal-router.git/contracts/libraries/Constants.sol","lib/universal-router.git/contracts/libraries/Locker.sol","lib/universal-router.git/contracts/libraries/MaxInputAmount.sol","lib/universal-router.git/contracts/modules/MigratorImmutables.sol","lib/universal-router.git/contracts/modules/Payments.sol","lib/universal-router.git/contracts/modules/PaymentsImmutables.sol","lib/universal-router.git/contracts/modules/Permit2Payments.sol","lib/universal-router.git/contracts/modules/V3ToV4Migrator.sol","lib/universal-router.git/contracts/modules/uniswap/UniswapImmutables.sol","lib/universal-router.git/contracts/modules/uniswap/v2/UniswapV2Library.sol","lib/universal-router.git/contracts/modules/uniswap/v2/V2SwapRouter.sol","lib/universal-router.git/contracts/modules/uniswap/v3/BytesLib.sol","lib/universal-router.git/contracts/modules/uniswap/v3/V3Path.sol","lib/universal-router.git/contracts/modules/uniswap/v3/V3SwapRouter.sol","lib/universal-router.git/contracts/modules/uniswap/v4/V4SwapRouter.sol","lib/universal-router.git/contracts/types/RouterParameters.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IERC721Permit.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryPayments.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPoolInitializer.sol","lib/universal-router.git/lib/v3-periphery/contracts/libraries/PoolAddress.sol","lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol","lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol","lib/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol","lib/v3-core/contracts/libraries/SafeCast.sol","lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/callback/IUnlockCallback.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/BitMath.sol","lib/v4-core/src/libraries/CurrencyReserves.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/FixedPoint128.sol","lib/v4-core/src/libraries/FullMath.sol","lib/v4-core/src/libraries/LiquidityMath.sol","lib/v4-core/src/libraries/Lock.sol","lib/v4-core/src/libraries/NonzeroDeltaCount.sol","lib/v4-core/src/libraries/Position.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/libraries/StateLibrary.sol","lib/v4-core/src/libraries/TickMath.sol","lib/v4-core/src/libraries/TransientStateLibrary.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/V4Router.sol","lib/v4-periphery/src/base/BaseActionsRouter.sol","lib/v4-periphery/src/base/DeltaResolver.sol","lib/v4-periphery/src/base/ImmutableState.sol","lib/v4-periphery/src/base/SafeCallback.sol","lib/v4-periphery/src/interfaces/IEIP712_v4.sol","lib/v4-periphery/src/interfaces/IERC721Permit_v4.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol","lib/v4-periphery/src/interfaces/IMulticall_v4.sol","lib/v4-periphery/src/interfaces/INotifier.sol","lib/v4-periphery/src/interfaces/IPermit2Forwarder.sol","lib/v4-periphery/src/interfaces/IPoolInitializer_v4.sol","lib/v4-periphery/src/interfaces/IPositionManager.sol","lib/v4-periphery/src/interfaces/ISubscriber.sol","lib/v4-periphery/src/interfaces/IUnorderedNonce.sol","lib/v4-periphery/src/interfaces/IV4Router.sol","lib/v4-periphery/src/interfaces/external/IWETH9.sol","lib/v4-periphery/src/libraries/ActionConstants.sol","lib/v4-periphery/src/libraries/Actions.sol","lib/v4-periphery/src/libraries/BipsLibrary.sol","lib/v4-periphery/src/libraries/CalldataDecoder.sol","lib/v4-periphery/src/libraries/PathKey.sol","lib/v4-periphery/src/libraries/PositionInfoLibrary.sol","node_modules/fhevm/config/ZamaFHEVMConfig.sol","node_modules/fhevm/config/ZamaGatewayConfig.sol","node_modules/fhevm/gateway/GatewayCaller.sol","node_modules/fhevm/gateway/lib/Gateway.sol","node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"=0.8.26","artifacts":{"IndexFundFactory":{"0.8.26":{"path":"IndexFundFactory.sol/IndexFundFactory.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"contracts/IndexFundToken.sol":{"lastModificationDate":1745455591226,"contentHash":"1410afaccd6dcc4c93b72e579e7a61d7","sourceName":"contracts/IndexFundToken.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol","lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol","lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol","lib/httpz-contracts/contracts/utils/EncryptedErrors.sol","lib/httpz-contracts/contracts/utils/TFHEErrors.sol","lib/openzeppelin-contracts/contracts/access/Ownable.sol","lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","lib/openzeppelin-contracts/contracts/utils/Context.sol","node_modules/fhevm/config/ZamaFHEVMConfig.sol","node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"=0.8.26","artifacts":{"IndexFundToken":{"0.8.26":{"path":"IndexFundToken.sol/IndexFundToken.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"contracts/TestAsyncDecrypt.sol":{"lastModificationDate":1742925377880,"contentHash":"41392a77ea452309b184f1e7bddcdc88","sourceName":"contracts/TestAsyncDecrypt.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["node_modules/fhevm/config/ZamaFHEVMConfig.sol","node_modules/fhevm/config/ZamaGatewayConfig.sol","node_modules/fhevm/gateway/GatewayCaller.sol","node_modules/fhevm/gateway/lib/Gateway.sol","node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"^0.8.24","artifacts":{"TestAsyncDecrypt":{"0.8.26":{"path":"TestAsyncDecrypt.sol/TestAsyncDecrypt.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"contracts/interfaces/IIndexFund.sol":{"lastModificationDate":1745455591226,"contentHash":"8525d2e7462be58255da9f765da92ac4","sourceName":"contracts/interfaces/IIndexFund.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol","contracts/IndexFundToken.sol","lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20Wrapped.sol","lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20Wrapped.sol","lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol","lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol","lib/httpz-contracts/contracts/utils/EncryptedErrors.sol","lib/httpz-contracts/contracts/utils/TFHEErrors.sol","lib/openzeppelin-contracts/contracts/access/Ownable.sol","lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","lib/openzeppelin-contracts/contracts/utils/Context.sol","lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol","lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","node_modules/fhevm/config/ZamaFHEVMConfig.sol","node_modules/fhevm/gateway/GatewayCaller.sol","node_modules/fhevm/gateway/lib/Gateway.sol","node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"=0.8.26","artifacts":{"IIndexFund":{"0.8.26":{"path":"IIndexFund.sol/IIndexFund.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"contracts/interfaces/IIndexFundFactory.sol":{"lastModificationDate":1745016278633,"contentHash":"c8e77ef4cfaeacd4e911f18fca13804f","sourceName":"contracts/interfaces/IIndexFundFactory.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"],"versionRequirement":"=0.8.26","artifacts":{"IIndexFundFactory":{"0.8.26":{"path":"IIndexFundFactory.sol/IIndexFundFactory.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"contracts/interfaces/IMarketDataFetcher.sol":{"lastModificationDate":1743617687976,"contentHash":"c43dfda00cb81d32d6e53085d4468c55","sourceName":"contracts/interfaces/IMarketDataFetcher.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol"],"versionRequirement":"=0.8.26","artifacts":{"IMarketDataFetcher":{"0.8.26":{"path":"IMarketDataFetcher.sol/IMarketDataFetcher.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"contracts/interfaces/ISwapsManager.sol":{"lastModificationDate":1744910299890,"contentHash":"50bb46c3fbd4b1cd595a066584087078","sourceName":"contracts/interfaces/ISwapsManager.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol"],"versionRequirement":"=0.8.26","artifacts":{"ISwapsManager":{"0.8.26":{"path":"ISwapsManager.sol/ISwapsManager.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"contracts/marketData/MarketDataFetcher.sol":{"lastModificationDate":1744517088986,"contentHash":"19539b2846b27c3e9cea513f8c33e3cd","sourceName":"contracts/marketData/MarketDataFetcher.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["contracts/interfaces/IMarketDataFetcher.sol","lib/chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol","lib/openzeppelin-contracts/contracts/access/Ownable.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","lib/openzeppelin-contracts/contracts/utils/Context.sol","lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol"],"versionRequirement":"=0.8.26","artifacts":{"MarketDataFetcher":{"0.8.26":{"path":"MarketDataFetcher.sol/MarketDataFetcher.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"contracts/swaps/SwapsManager.sol":{"lastModificationDate":1743622854801,"contentHash":"bbcad7719e3b3954973e4e072103e68e","sourceName":"contracts/swaps/SwapsManager.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["contracts/interfaces/ISwapsManager.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol","lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol","lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol","lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol","lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol","lib/openzeppelin-contracts/contracts/utils/Address.sol","lib/openzeppelin-contracts/contracts/utils/Errors.sol","lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol","lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol","lib/permit2/lib/solmate/src/tokens/ERC20.sol","lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol","lib/permit2/src/interfaces/IAllowanceTransfer.sol","lib/permit2/src/interfaces/IEIP712.sol","lib/permit2/src/interfaces/IPermit2.sol","lib/permit2/src/interfaces/ISignatureTransfer.sol","lib/permit2/src/libraries/SafeCast160.sol","lib/universal-router.git/contracts/UniversalRouter.sol","lib/universal-router.git/contracts/base/Dispatcher.sol","lib/universal-router.git/contracts/base/Lock.sol","lib/universal-router.git/contracts/interfaces/IUniversalRouter.sol","lib/universal-router.git/contracts/libraries/Commands.sol","lib/universal-router.git/contracts/libraries/Constants.sol","lib/universal-router.git/contracts/libraries/Locker.sol","lib/universal-router.git/contracts/libraries/MaxInputAmount.sol","lib/universal-router.git/contracts/modules/MigratorImmutables.sol","lib/universal-router.git/contracts/modules/Payments.sol","lib/universal-router.git/contracts/modules/PaymentsImmutables.sol","lib/universal-router.git/contracts/modules/Permit2Payments.sol","lib/universal-router.git/contracts/modules/V3ToV4Migrator.sol","lib/universal-router.git/contracts/modules/uniswap/UniswapImmutables.sol","lib/universal-router.git/contracts/modules/uniswap/v2/UniswapV2Library.sol","lib/universal-router.git/contracts/modules/uniswap/v2/V2SwapRouter.sol","lib/universal-router.git/contracts/modules/uniswap/v3/BytesLib.sol","lib/universal-router.git/contracts/modules/uniswap/v3/V3Path.sol","lib/universal-router.git/contracts/modules/uniswap/v3/V3SwapRouter.sol","lib/universal-router.git/contracts/modules/uniswap/v4/V4SwapRouter.sol","lib/universal-router.git/contracts/types/RouterParameters.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IERC721Permit.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryPayments.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPoolInitializer.sol","lib/universal-router.git/lib/v3-periphery/contracts/libraries/PoolAddress.sol","lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol","lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol","lib/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol","lib/v3-core/contracts/libraries/SafeCast.sol","lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/callback/IUnlockCallback.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/BitMath.sol","lib/v4-core/src/libraries/CurrencyReserves.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/FixedPoint128.sol","lib/v4-core/src/libraries/FullMath.sol","lib/v4-core/src/libraries/LiquidityMath.sol","lib/v4-core/src/libraries/Lock.sol","lib/v4-core/src/libraries/NonzeroDeltaCount.sol","lib/v4-core/src/libraries/Position.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/libraries/StateLibrary.sol","lib/v4-core/src/libraries/TickMath.sol","lib/v4-core/src/libraries/TransientStateLibrary.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/V4Router.sol","lib/v4-periphery/src/base/BaseActionsRouter.sol","lib/v4-periphery/src/base/DeltaResolver.sol","lib/v4-periphery/src/base/ImmutableState.sol","lib/v4-periphery/src/base/SafeCallback.sol","lib/v4-periphery/src/interfaces/IEIP712_v4.sol","lib/v4-periphery/src/interfaces/IERC721Permit_v4.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol","lib/v4-periphery/src/interfaces/IMulticall_v4.sol","lib/v4-periphery/src/interfaces/INotifier.sol","lib/v4-periphery/src/interfaces/IPermit2Forwarder.sol","lib/v4-periphery/src/interfaces/IPoolInitializer_v4.sol","lib/v4-periphery/src/interfaces/IPositionManager.sol","lib/v4-periphery/src/interfaces/ISubscriber.sol","lib/v4-periphery/src/interfaces/IUnorderedNonce.sol","lib/v4-periphery/src/interfaces/IV4Router.sol","lib/v4-periphery/src/interfaces/external/IWETH9.sol","lib/v4-periphery/src/libraries/ActionConstants.sol","lib/v4-periphery/src/libraries/Actions.sol","lib/v4-periphery/src/libraries/BipsLibrary.sol","lib/v4-periphery/src/libraries/CalldataDecoder.sol","lib/v4-periphery/src/libraries/PathKey.sol","lib/v4-periphery/src/libraries/PositionInfoLibrary.sol"],"versionRequirement":"=0.8.26","artifacts":{"SwapsManager":{"0.8.26":{"path":"SwapsManager.sol/SwapsManager.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"contracts/test/testERC20.sol":{"lastModificationDate":1742925377875,"contentHash":"7ac571d645243544e12208f3d8779135","sourceName":"contracts/test/testERC20.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/access/Ownable.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","lib/openzeppelin-contracts/contracts/utils/Context.sol"],"versionRequirement":"=0.8.26","artifacts":{"TestErc20":{"0.8.26":{"path":"testERC20.sol/TestErc20.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol":{"lastModificationDate":1743603987567,"contentHash":"64a3f906dc7696aa3c9fa8454b673be7","sourceName":"lib/chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.0","artifacts":{"AggregatorV3Interface":{"0.8.26":{"path":"AggregatorV3Interface.sol/AggregatorV3Interface.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol":{"lastModificationDate":1744576853730,"contentHash":"d09c98b3f8e3039c507370ade9264bd0","sourceName":"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol","lib/httpz-contracts/contracts/utils/TFHEErrors.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"^0.8.24","artifacts":{"ConfidentialERC20":{"0.8.26":{"path":"ERC20/ConfidentialERC20.sol/ConfidentialERC20.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20Wrapped.sol":{"lastModificationDate":1744576853730,"contentHash":"b99ac759a0e539837df8bc40a69e3be0","sourceName":"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20Wrapped.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20Wrapped.sol","lib/httpz-contracts/contracts/utils/TFHEErrors.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol","lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","node_modules/fhevm/gateway/GatewayCaller.sol","node_modules/fhevm/gateway/lib/Gateway.sol","node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"^0.8.24","artifacts":{"ConfidentialERC20Wrapped":{"0.8.26":{"path":"ConfidentialERC20Wrapped.sol/ConfidentialERC20Wrapped.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol":{"lastModificationDate":1744576853730,"contentHash":"d4c39d351beb2aef9f327b6237d111b9","sourceName":"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"^0.8.24","artifacts":{"IConfidentialERC20":{"0.8.26":{"path":"ERC20/IConfidentialERC20.sol/IConfidentialERC20.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20Wrapped.sol":{"lastModificationDate":1744576853730,"contentHash":"e5acc6bb3dc90acc423afe87064f276a","sourceName":"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20Wrapped.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.24","artifacts":{"IConfidentialERC20Wrapped":{"0.8.26":{"path":"IConfidentialERC20Wrapped.sol/IConfidentialERC20Wrapped.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol":{"lastModificationDate":1744576853730,"contentHash":"26a3faa4d8e9d69c233be9807ec41777","sourceName":"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol","lib/httpz-contracts/contracts/utils/EncryptedErrors.sol","lib/httpz-contracts/contracts/utils/TFHEErrors.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"^0.8.24","artifacts":{"ConfidentialERC20WithErrors":{"0.8.26":{"path":"ConfidentialERC20WithErrors.sol/ConfidentialERC20WithErrors.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol":{"lastModificationDate":1744576853730,"contentHash":"3b35733584b20822c2f431524c63a8ed","sourceName":"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol","lib/httpz-contracts/contracts/utils/EncryptedErrors.sol","lib/httpz-contracts/contracts/utils/TFHEErrors.sol","lib/openzeppelin-contracts/contracts/access/Ownable.sol","lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","lib/openzeppelin-contracts/contracts/utils/Context.sol","node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"^0.8.24","artifacts":{"ConfidentialERC20WithErrorsMintable":{"0.8.26":{"path":"ConfidentialERC20WithErrorsMintable.sol/ConfidentialERC20WithErrorsMintable.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/httpz-contracts/contracts/utils/EncryptedErrors.sol":{"lastModificationDate":1744576853730,"contentHash":"00722fb5c89ee2b835b8665ae9871b14","sourceName":"lib/httpz-contracts/contracts/utils/EncryptedErrors.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"^0.8.24","artifacts":{"EncryptedErrors":{"0.8.26":{"path":"EncryptedErrors.sol/EncryptedErrors.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/httpz-contracts/contracts/utils/TFHEErrors.sol":{"lastModificationDate":1744576853730,"contentHash":"69c7f60f6e4c79fbb7ef61b1e00195cc","sourceName":"lib/httpz-contracts/contracts/utils/TFHEErrors.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.24","artifacts":{"TFHEErrors":{"0.8.26":{"path":"utils/TFHEErrors.sol/TFHEErrors.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"lastModificationDate":1742172158558,"contentHash":"4c80b7fdf559a9a348e832a57d072a0b","sourceName":"lib/openzeppelin-contracts/contracts/access/AccessControl.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/access/IAccessControl.sol","lib/openzeppelin-contracts/contracts/utils/Context.sol","lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.20","artifacts":{"AccessControl":{"0.8.26":{"path":"AccessControl.sol/AccessControl.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"lastModificationDate":1742172158558,"contentHash":"6f7fac9fa0df6004375e18b7ff7edf4e","sourceName":"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"IAccessControl":{"0.8.26":{"path":"IAccessControl.sol/IAccessControl.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"lastModificationDate":1742172158328,"contentHash":"d3c790edc9ccf808a17c5a6cd13614fd","sourceName":"lib/openzeppelin-contracts/contracts/access/Ownable.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/utils/Context.sol"],"versionRequirement":"^0.8.20","artifacts":{"Ownable":{"0.8.26":{"path":"Ownable.sol/Ownable.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol":{"lastModificationDate":1742172158328,"contentHash":"4c23c95621f1bdfb8c47bcb3795c53e8","sourceName":"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/access/Ownable.sol","lib/openzeppelin-contracts/contracts/utils/Context.sol"],"versionRequirement":"^0.8.20","artifacts":{"Ownable2Step":{"0.8.26":{"path":"Ownable2Step.sol/Ownable2Step.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"lastModificationDate":1742172158333,"contentHash":"6b7c5ee7a59c981072a804c99ab0fac9","sourceName":"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.20","artifacts":{"IERC1363":{"0.8.26":{"path":"IERC1363.sol/IERC1363.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"lastModificationDate":1742172158333,"contentHash":"f808b485ee0cdc6768ee8385ae5f9a2a","sourceName":"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.20","artifacts":{"IERC165":{"0.8.26":{"path":"interfaces/IERC165.sol/IERC165.json","build_id":"a985d2e1396d5561ae0fa076c730217f"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"lastModificationDate":1742172158333,"contentHash":"4e17c826a54a8ee1a185449d4695d07d","sourceName":"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"IERC1967":{"0.8.26":{"path":"IERC1967.sol/IERC1967.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"lastModificationDate":1742172158333,"contentHash":"79af12d64eacc7d77b9ee2ac4b4d51ee","sourceName":"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"],"versionRequirement":"^0.8.20","artifacts":{"IERC20":{"0.8.26":{"path":"interfaces/IERC20.sol/IERC20.json","build_id":"a985d2e1396d5561ae0fa076c730217f"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"lastModificationDate":1742172158335,"contentHash":"64a2b7a96950f0641c477993f3029477","sourceName":"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"IERC1822Proxiable":{"0.8.26":{"path":"draft-IERC1822.sol/IERC1822Proxiable.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"lastModificationDate":1742172158335,"contentHash":"267d92fe4de67b1bdb3302c08f387dbf","sourceName":"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"IERC1155Errors":{"0.8.26":{"path":"draft-IERC6093.sol/IERC1155Errors.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}},"IERC20Errors":{"0.8.26":{"path":"draft-IERC6093.sol/IERC20Errors.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}},"IERC721Errors":{"0.8.26":{"path":"draft-IERC6093.sol/IERC721Errors.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"lastModificationDate":1742172158344,"contentHash":"c023a5b23ee35b40b3085e550ff3367f","sourceName":"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol","lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol","lib/openzeppelin-contracts/contracts/utils/Address.sol","lib/openzeppelin-contracts/contracts/utils/Errors.sol","lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol"],"versionRequirement":"^0.8.22","artifacts":{"ERC1967Utils":{"0.8.26":{"path":"ERC1967Utils.sol/ERC1967Utils.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"lastModificationDate":1742172158344,"contentHash":"0a5c323fd908535580597848b8e550fb","sourceName":"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"IBeacon":{"0.8.26":{"path":"IBeacon.sol/IBeacon.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"lastModificationDate":1742172158562,"contentHash":"227a6eb2225701c12d9c959b758b6333","sourceName":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","lib/openzeppelin-contracts/contracts/utils/Context.sol"],"versionRequirement":"^0.8.20","artifacts":{"ERC20":{"0.8.26":{"path":"ERC20.sol/ERC20.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"lastModificationDate":1742172158346,"contentHash":"8f19f64d2adadf448840908bbaf431c8","sourceName":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"IERC20":{"0.8.26":{"path":"IERC20.sol/IERC20.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Wrapper.sol":{"lastModificationDate":1742172158347,"contentHash":"32a186fda311cf1d8096caa5dc071e2f","sourceName":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Wrapper.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","lib/openzeppelin-contracts/contracts/utils/Context.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.20","artifacts":{"ERC20Wrapper":{"0.8.26":{"path":"ERC20Wrapper.sol/ERC20Wrapper.json","build_id":"a985d2e1396d5561ae0fa076c730217f"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"lastModificationDate":1742172158347,"contentHash":"794db3115001aa372c79326fcfd44b1f","sourceName":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"],"versionRequirement":"^0.8.20","artifacts":{"IERC20Metadata":{"0.8.26":{"path":"IERC20Metadata.sol/IERC20Metadata.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"lastModificationDate":1742172158563,"contentHash":"b6c6348d1c4d3e890f8d8a885b2477c0","sourceName":"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.20","artifacts":{"SafeERC20":{"0.8.26":{"path":"SafeERC20.sol/SafeERC20.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"lastModificationDate":1742172158348,"contentHash":"1fdc621cd6747e8985e11fc76ce74511","sourceName":"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.20","artifacts":{"IERC721":{"0.8.26":{"path":"IERC721.sol/IERC721.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"lastModificationDate":1742172158349,"contentHash":"3fdc14aab706458ae99314f6f7f529a2","sourceName":"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.20","artifacts":{"IERC721Enumerable":{"0.8.26":{"path":"IERC721Enumerable.sol/IERC721Enumerable.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"lastModificationDate":1742172158349,"contentHash":"12c206f185cb951213799561fdcaa40d","sourceName":"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.20","artifacts":{"IERC721Metadata":{"0.8.26":{"path":"IERC721Metadata.sol/IERC721Metadata.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"lastModificationDate":1742172158350,"contentHash":"5b9a49c25d7edbc48ffcbd2c7e8a40ef","sourceName":"lib/openzeppelin-contracts/contracts/utils/Address.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/utils/Errors.sol"],"versionRequirement":"^0.8.20","artifacts":{"Address":{"0.8.26":{"path":"Address.sol/Address.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"lastModificationDate":1742172158351,"contentHash":"67bfbc07588eb8683b3fd8f6f909563e","sourceName":"lib/openzeppelin-contracts/contracts/utils/Context.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"Context":{"0.8.26":{"path":"Context.sol/Context.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"lastModificationDate":1742172158351,"contentHash":"6b5eac2b85500c3012977849cfd633d8","sourceName":"lib/openzeppelin-contracts/contracts/utils/Errors.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"Errors":{"0.8.26":{"path":"Errors.sol/Errors.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"lastModificationDate":1742172158351,"contentHash":"2133dc13536b4a6a98131e431fac59e1","sourceName":"lib/openzeppelin-contracts/contracts/utils/Panic.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"Panic":{"0.8.26":{"path":"Panic.sol/Panic.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol":{"lastModificationDate":1742172158352,"contentHash":"190613e556d509d9e9a0ea43dc5d891d","sourceName":"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"ReentrancyGuard":{"0.8.26":{"path":"ReentrancyGuard.sol/ReentrancyGuard.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol":{"lastModificationDate":1742172158564,"contentHash":"db37d5c90dcd9aac27faa1c8bb6e57a8","sourceName":"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol"],"versionRequirement":"^0.8.24","artifacts":{"ReentrancyGuardTransient":{"0.8.26":{"path":"ReentrancyGuardTransient.sol/ReentrancyGuardTransient.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"lastModificationDate":1742172158352,"contentHash":"e656d64c4ce918f3d13030b91c935134","sourceName":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"StorageSlot":{"0.8.26":{"path":"StorageSlot.sol/StorageSlot.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"lastModificationDate":1742172158565,"contentHash":"a55fef2557b35bac18a1880d3c2e6740","sourceName":"lib/openzeppelin-contracts/contracts/utils/Strings.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/utils/Panic.sol","lib/openzeppelin-contracts/contracts/utils/math/Math.sol","lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol","lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol"],"versionRequirement":"^0.8.20","artifacts":{"Strings":{"0.8.26":{"path":"Strings.sol/Strings.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"lastModificationDate":1742172158565,"contentHash":"76dc5a5e932d47b5ff729bd8e31351b6","sourceName":"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.24","artifacts":{"TransientSlot":{"0.8.26":{"path":"TransientSlot.sol/TransientSlot.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"lastModificationDate":1742172158354,"contentHash":"7c03c1e37c3dc24eafb76dc2b8a5c3a6","sourceName":"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.20","artifacts":{"ERC165":{"0.8.26":{"path":"ERC165.sol/ERC165.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"lastModificationDate":1742172158354,"contentHash":"bf0119eb2a570f219729ff38b6cd1df8","sourceName":"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"IERC165":{"0.8.26":{"path":"IERC165.sol/IERC165.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"lastModificationDate":1742172158566,"contentHash":"2b2665ae9bdb1af440658741a77fe213","sourceName":"lib/openzeppelin-contracts/contracts/utils/math/Math.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/utils/Panic.sol","lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol"],"versionRequirement":"^0.8.20","artifacts":{"Math":{"0.8.26":{"path":"Math.sol/Math.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"lastModificationDate":1742172158354,"contentHash":"2adca1150f58fc6f3d1f0a0f22ee7cca","sourceName":"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"SafeCast":{"0.8.26":{"path":"math/SafeCast.sol/SafeCast.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"lastModificationDate":1742172158354,"contentHash":"ae3528afb8bdb0a7dcfba5b115ee8074","sourceName":"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol"],"versionRequirement":"^0.8.20","artifacts":{"SignedMath":{"0.8.26":{"path":"SignedMath.sol/SignedMath.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"lastModificationDate":1742172086907,"contentHash":"77d30f3cd93f46b80b6f8f1ebc574ee4","sourceName":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol"],"versionRequirement":"^0.8.20","artifacts":{"OwnableUpgradeable":{"0.8.26":{"path":"OwnableUpgradeable.sol/OwnableUpgradeable.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"lastModificationDate":1742172087155,"contentHash":"f0cedd674b4863ee90d1521a92ab82df","sourceName":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"Initializable":{"0.8.26":{"path":"Initializable.sol/Initializable.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol":{"lastModificationDate":1742172087155,"contentHash":"ac3b77dea52cfdb14498e0a306a34b01","sourceName":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol","lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol","lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol","lib/openzeppelin-contracts/contracts/utils/Address.sol","lib/openzeppelin-contracts/contracts/utils/Errors.sol","lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol"],"versionRequirement":"^0.8.22","artifacts":{"UUPSUpgradeable":{"0.8.26":{"path":"UUPSUpgradeable.sol/UUPSUpgradeable.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"lastModificationDate":1742172086924,"contentHash":"c28aaa25d083a9a55bd9ec9e0b785122","sourceName":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol"],"versionRequirement":"^0.8.20","artifacts":{"ContextUpgradeable":{"0.8.26":{"path":"ContextUpgradeable.sol/ContextUpgradeable.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/permit2/lib/solmate/src/tokens/ERC20.sol":{"lastModificationDate":1742172927891,"contentHash":"0c7c7ada139062536af09d69d96d395c","sourceName":"lib/permit2/lib/solmate/src/tokens/ERC20.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.8.0","artifacts":{"ERC20":{"0.8.26":{"path":"tokens/ERC20.sol/ERC20.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol":{"lastModificationDate":1742172927892,"contentHash":"668dd0a8a175344c51036ae7fcb01d36","sourceName":"lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/permit2/lib/solmate/src/tokens/ERC20.sol"],"versionRequirement":">=0.8.0","artifacts":{"SafeTransferLib":{"0.8.26":{"path":"SafeTransferLib.sol/SafeTransferLib.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/permit2/src/interfaces/IAllowanceTransfer.sol":{"lastModificationDate":1742172919909,"contentHash":"06d31910ea7b998cbe0dd20d8cde38e1","sourceName":"lib/permit2/src/interfaces/IAllowanceTransfer.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/permit2/src/interfaces/IEIP712.sol"],"versionRequirement":"^0.8.0","artifacts":{"IAllowanceTransfer":{"0.8.26":{"path":"IAllowanceTransfer.sol/IAllowanceTransfer.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/permit2/src/interfaces/IEIP712.sol":{"lastModificationDate":1742172919910,"contentHash":"24e4255a1510a83f1fc7ee1ec490c2b0","sourceName":"lib/permit2/src/interfaces/IEIP712.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.0","artifacts":{"IEIP712":{"0.8.26":{"path":"IEIP712.sol/IEIP712.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/permit2/src/interfaces/IPermit2.sol":{"lastModificationDate":1742172919910,"contentHash":"1186e406ac0acbb224428a4b1152dbf9","sourceName":"lib/permit2/src/interfaces/IPermit2.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/permit2/src/interfaces/IAllowanceTransfer.sol","lib/permit2/src/interfaces/IEIP712.sol","lib/permit2/src/interfaces/ISignatureTransfer.sol"],"versionRequirement":"^0.8.0","artifacts":{"IPermit2":{"0.8.26":{"path":"IPermit2.sol/IPermit2.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/permit2/src/interfaces/ISignatureTransfer.sol":{"lastModificationDate":1742172919910,"contentHash":"5b4840f0f27510533ad19650d56757dd","sourceName":"lib/permit2/src/interfaces/ISignatureTransfer.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/permit2/src/interfaces/IEIP712.sol"],"versionRequirement":"^0.8.0","artifacts":{"ISignatureTransfer":{"0.8.26":{"path":"ISignatureTransfer.sol/ISignatureTransfer.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/permit2/src/libraries/SafeCast160.sol":{"lastModificationDate":1742172919910,"contentHash":"e814317c3c5f82f1c1afc445efda7e23","sourceName":"lib/permit2/src/libraries/SafeCast160.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.17","artifacts":{"SafeCast160":{"0.8.26":{"path":"SafeCast160.sol/SafeCast160.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/UniversalRouter.sol":{"lastModificationDate":1742173159703,"contentHash":"a8fefd12e018e74df556d9bcb61598d6","sourceName":"lib/universal-router.git/contracts/UniversalRouter.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol","lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","lib/permit2/lib/solmate/src/tokens/ERC20.sol","lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol","lib/permit2/src/interfaces/IAllowanceTransfer.sol","lib/permit2/src/interfaces/IEIP712.sol","lib/permit2/src/interfaces/IPermit2.sol","lib/permit2/src/interfaces/ISignatureTransfer.sol","lib/permit2/src/libraries/SafeCast160.sol","lib/universal-router.git/contracts/base/Dispatcher.sol","lib/universal-router.git/contracts/base/Lock.sol","lib/universal-router.git/contracts/interfaces/IUniversalRouter.sol","lib/universal-router.git/contracts/libraries/Commands.sol","lib/universal-router.git/contracts/libraries/Constants.sol","lib/universal-router.git/contracts/libraries/Locker.sol","lib/universal-router.git/contracts/libraries/MaxInputAmount.sol","lib/universal-router.git/contracts/modules/MigratorImmutables.sol","lib/universal-router.git/contracts/modules/Payments.sol","lib/universal-router.git/contracts/modules/PaymentsImmutables.sol","lib/universal-router.git/contracts/modules/Permit2Payments.sol","lib/universal-router.git/contracts/modules/V3ToV4Migrator.sol","lib/universal-router.git/contracts/modules/uniswap/UniswapImmutables.sol","lib/universal-router.git/contracts/modules/uniswap/v2/UniswapV2Library.sol","lib/universal-router.git/contracts/modules/uniswap/v2/V2SwapRouter.sol","lib/universal-router.git/contracts/modules/uniswap/v3/BytesLib.sol","lib/universal-router.git/contracts/modules/uniswap/v3/V3Path.sol","lib/universal-router.git/contracts/modules/uniswap/v3/V3SwapRouter.sol","lib/universal-router.git/contracts/modules/uniswap/v4/V4SwapRouter.sol","lib/universal-router.git/contracts/types/RouterParameters.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IERC721Permit.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryPayments.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPoolInitializer.sol","lib/universal-router.git/lib/v3-periphery/contracts/libraries/PoolAddress.sol","lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol","lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol","lib/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol","lib/v3-core/contracts/libraries/SafeCast.sol","lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/callback/IUnlockCallback.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/BitMath.sol","lib/v4-core/src/libraries/CurrencyReserves.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/Lock.sol","lib/v4-core/src/libraries/NonzeroDeltaCount.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/libraries/TickMath.sol","lib/v4-core/src/libraries/TransientStateLibrary.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/V4Router.sol","lib/v4-periphery/src/base/BaseActionsRouter.sol","lib/v4-periphery/src/base/DeltaResolver.sol","lib/v4-periphery/src/base/ImmutableState.sol","lib/v4-periphery/src/base/SafeCallback.sol","lib/v4-periphery/src/interfaces/IEIP712_v4.sol","lib/v4-periphery/src/interfaces/IERC721Permit_v4.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol","lib/v4-periphery/src/interfaces/IMulticall_v4.sol","lib/v4-periphery/src/interfaces/INotifier.sol","lib/v4-periphery/src/interfaces/IPermit2Forwarder.sol","lib/v4-periphery/src/interfaces/IPoolInitializer_v4.sol","lib/v4-periphery/src/interfaces/IPositionManager.sol","lib/v4-periphery/src/interfaces/ISubscriber.sol","lib/v4-periphery/src/interfaces/IUnorderedNonce.sol","lib/v4-periphery/src/interfaces/IV4Router.sol","lib/v4-periphery/src/interfaces/external/IWETH9.sol","lib/v4-periphery/src/libraries/ActionConstants.sol","lib/v4-periphery/src/libraries/Actions.sol","lib/v4-periphery/src/libraries/BipsLibrary.sol","lib/v4-periphery/src/libraries/CalldataDecoder.sol","lib/v4-periphery/src/libraries/PathKey.sol","lib/v4-periphery/src/libraries/PositionInfoLibrary.sol"],"versionRequirement":"^0.8.24","artifacts":{"UniversalRouter":{"0.8.26":{"path":"UniversalRouter.sol/UniversalRouter.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/base/Dispatcher.sol":{"lastModificationDate":1742173159703,"contentHash":"7a1897f700ccc5c200ef67521c2c3bfe","sourceName":"lib/universal-router.git/contracts/base/Dispatcher.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol","lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","lib/permit2/lib/solmate/src/tokens/ERC20.sol","lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol","lib/permit2/src/interfaces/IAllowanceTransfer.sol","lib/permit2/src/interfaces/IEIP712.sol","lib/permit2/src/interfaces/IPermit2.sol","lib/permit2/src/interfaces/ISignatureTransfer.sol","lib/permit2/src/libraries/SafeCast160.sol","lib/universal-router.git/contracts/base/Lock.sol","lib/universal-router.git/contracts/libraries/Commands.sol","lib/universal-router.git/contracts/libraries/Constants.sol","lib/universal-router.git/contracts/libraries/Locker.sol","lib/universal-router.git/contracts/libraries/MaxInputAmount.sol","lib/universal-router.git/contracts/modules/MigratorImmutables.sol","lib/universal-router.git/contracts/modules/Payments.sol","lib/universal-router.git/contracts/modules/PaymentsImmutables.sol","lib/universal-router.git/contracts/modules/Permit2Payments.sol","lib/universal-router.git/contracts/modules/V3ToV4Migrator.sol","lib/universal-router.git/contracts/modules/uniswap/UniswapImmutables.sol","lib/universal-router.git/contracts/modules/uniswap/v2/UniswapV2Library.sol","lib/universal-router.git/contracts/modules/uniswap/v2/V2SwapRouter.sol","lib/universal-router.git/contracts/modules/uniswap/v3/BytesLib.sol","lib/universal-router.git/contracts/modules/uniswap/v3/V3Path.sol","lib/universal-router.git/contracts/modules/uniswap/v3/V3SwapRouter.sol","lib/universal-router.git/contracts/modules/uniswap/v4/V4SwapRouter.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IERC721Permit.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryPayments.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPoolInitializer.sol","lib/universal-router.git/lib/v3-periphery/contracts/libraries/PoolAddress.sol","lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol","lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol","lib/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol","lib/v3-core/contracts/libraries/SafeCast.sol","lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/callback/IUnlockCallback.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/BitMath.sol","lib/v4-core/src/libraries/CurrencyReserves.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/Lock.sol","lib/v4-core/src/libraries/NonzeroDeltaCount.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/libraries/TickMath.sol","lib/v4-core/src/libraries/TransientStateLibrary.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/V4Router.sol","lib/v4-periphery/src/base/BaseActionsRouter.sol","lib/v4-periphery/src/base/DeltaResolver.sol","lib/v4-periphery/src/base/ImmutableState.sol","lib/v4-periphery/src/base/SafeCallback.sol","lib/v4-periphery/src/interfaces/IEIP712_v4.sol","lib/v4-periphery/src/interfaces/IERC721Permit_v4.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol","lib/v4-periphery/src/interfaces/IMulticall_v4.sol","lib/v4-periphery/src/interfaces/INotifier.sol","lib/v4-periphery/src/interfaces/IPermit2Forwarder.sol","lib/v4-periphery/src/interfaces/IPoolInitializer_v4.sol","lib/v4-periphery/src/interfaces/IPositionManager.sol","lib/v4-periphery/src/interfaces/ISubscriber.sol","lib/v4-periphery/src/interfaces/IUnorderedNonce.sol","lib/v4-periphery/src/interfaces/IV4Router.sol","lib/v4-periphery/src/interfaces/external/IWETH9.sol","lib/v4-periphery/src/libraries/ActionConstants.sol","lib/v4-periphery/src/libraries/Actions.sol","lib/v4-periphery/src/libraries/BipsLibrary.sol","lib/v4-periphery/src/libraries/CalldataDecoder.sol","lib/v4-periphery/src/libraries/PathKey.sol","lib/v4-periphery/src/libraries/PositionInfoLibrary.sol"],"versionRequirement":"^0.8.24","artifacts":{"Dispatcher":{"0.8.26":{"path":"Dispatcher.sol/Dispatcher.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/base/Lock.sol":{"lastModificationDate":1742173159703,"contentHash":"f516f63276619049604b380812310057","sourceName":"lib/universal-router.git/contracts/base/Lock.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/universal-router.git/contracts/libraries/Locker.sol"],"versionRequirement":"^0.8.24","artifacts":{"Lock":{"0.8.26":{"path":"Lock.sol/Lock.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/interfaces/IUniversalRouter.sol":{"lastModificationDate":1742173159703,"contentHash":"62d5b5e75e306d1f1816b2741131f9e7","sourceName":"lib/universal-router.git/contracts/interfaces/IUniversalRouter.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.24","artifacts":{"IUniversalRouter":{"0.8.26":{"path":"IUniversalRouter.sol/IUniversalRouter.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/libraries/Commands.sol":{"lastModificationDate":1742173159704,"contentHash":"72f2d8f8145763d937317341d3bb4f59","sourceName":"lib/universal-router.git/contracts/libraries/Commands.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.24","artifacts":{"Commands":{"0.8.26":{"path":"Commands.sol/Commands.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/libraries/Constants.sol":{"lastModificationDate":1742173159704,"contentHash":"5549ab481b2a2b93aaac6f8dfb39881d","sourceName":"lib/universal-router.git/contracts/libraries/Constants.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.24","artifacts":{"Constants":{"0.8.26":{"path":"Constants.sol/Constants.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/libraries/Locker.sol":{"lastModificationDate":1742173159704,"contentHash":"f6279d84cc68d03a89821cfcb8d4a788","sourceName":"lib/universal-router.git/contracts/libraries/Locker.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.24","artifacts":{"Locker":{"0.8.26":{"path":"Locker.sol/Locker.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/libraries/MaxInputAmount.sol":{"lastModificationDate":1742173159704,"contentHash":"47e75f674783e1ca3715a3ea9f764014","sourceName":"lib/universal-router.git/contracts/libraries/MaxInputAmount.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.24","artifacts":{"MaxInputAmount":{"0.8.26":{"path":"MaxInputAmount.sol/MaxInputAmount.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/modules/MigratorImmutables.sol":{"lastModificationDate":1742173159704,"contentHash":"53bc81bb2867e2d12e8b3c9282f7dfe9","sourceName":"lib/universal-router.git/contracts/modules/MigratorImmutables.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol","lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","lib/permit2/src/interfaces/IAllowanceTransfer.sol","lib/permit2/src/interfaces/IEIP712.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IERC721Permit.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryPayments.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPoolInitializer.sol","lib/universal-router.git/lib/v3-periphery/contracts/libraries/PoolAddress.sol","lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/interfaces/IEIP712_v4.sol","lib/v4-periphery/src/interfaces/IERC721Permit_v4.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol","lib/v4-periphery/src/interfaces/IMulticall_v4.sol","lib/v4-periphery/src/interfaces/INotifier.sol","lib/v4-periphery/src/interfaces/IPermit2Forwarder.sol","lib/v4-periphery/src/interfaces/IPoolInitializer_v4.sol","lib/v4-periphery/src/interfaces/IPositionManager.sol","lib/v4-periphery/src/interfaces/ISubscriber.sol","lib/v4-periphery/src/interfaces/IUnorderedNonce.sol","lib/v4-periphery/src/libraries/PositionInfoLibrary.sol"],"versionRequirement":"^0.8.24","artifacts":{"MigratorImmutables":{"0.8.26":{"path":"MigratorImmutables.sol/MigratorImmutables.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/modules/Payments.sol":{"lastModificationDate":1742173159704,"contentHash":"2fc257c2c165e039e17d5911d9647cce","sourceName":"lib/universal-router.git/contracts/modules/Payments.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/permit2/lib/solmate/src/tokens/ERC20.sol","lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol","lib/permit2/src/interfaces/IAllowanceTransfer.sol","lib/permit2/src/interfaces/IEIP712.sol","lib/permit2/src/interfaces/IPermit2.sol","lib/permit2/src/interfaces/ISignatureTransfer.sol","lib/universal-router.git/contracts/libraries/Constants.sol","lib/universal-router.git/contracts/modules/PaymentsImmutables.sol","lib/v4-periphery/src/interfaces/external/IWETH9.sol","lib/v4-periphery/src/libraries/ActionConstants.sol","lib/v4-periphery/src/libraries/BipsLibrary.sol"],"versionRequirement":"^0.8.24","artifacts":{"Payments":{"0.8.26":{"path":"Payments.sol/Payments.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/modules/PaymentsImmutables.sol":{"lastModificationDate":1742173159704,"contentHash":"a97e4acdec22b22fdc4915e7c8f7cfb4","sourceName":"lib/universal-router.git/contracts/modules/PaymentsImmutables.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/permit2/src/interfaces/IAllowanceTransfer.sol","lib/permit2/src/interfaces/IEIP712.sol","lib/permit2/src/interfaces/IPermit2.sol","lib/permit2/src/interfaces/ISignatureTransfer.sol","lib/v4-periphery/src/interfaces/external/IWETH9.sol"],"versionRequirement":"^0.8.24","artifacts":{"PaymentsImmutables":{"0.8.26":{"path":"PaymentsImmutables.sol/PaymentsImmutables.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/modules/Permit2Payments.sol":{"lastModificationDate":1742173159704,"contentHash":"cce79fd2a3940cb7a67eacc255ebf8df","sourceName":"lib/universal-router.git/contracts/modules/Permit2Payments.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/permit2/lib/solmate/src/tokens/ERC20.sol","lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol","lib/permit2/src/interfaces/IAllowanceTransfer.sol","lib/permit2/src/interfaces/IEIP712.sol","lib/permit2/src/interfaces/IPermit2.sol","lib/permit2/src/interfaces/ISignatureTransfer.sol","lib/permit2/src/libraries/SafeCast160.sol","lib/universal-router.git/contracts/libraries/Constants.sol","lib/universal-router.git/contracts/modules/Payments.sol","lib/universal-router.git/contracts/modules/PaymentsImmutables.sol","lib/v4-periphery/src/interfaces/external/IWETH9.sol","lib/v4-periphery/src/libraries/ActionConstants.sol","lib/v4-periphery/src/libraries/BipsLibrary.sol"],"versionRequirement":"^0.8.24","artifacts":{"Permit2Payments":{"0.8.26":{"path":"Permit2Payments.sol/Permit2Payments.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/modules/V3ToV4Migrator.sol":{"lastModificationDate":1742173159704,"contentHash":"7068c9a83c86609057a29977012fa8ce","sourceName":"lib/universal-router.git/contracts/modules/V3ToV4Migrator.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol","lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","lib/permit2/src/interfaces/IAllowanceTransfer.sol","lib/permit2/src/interfaces/IEIP712.sol","lib/universal-router.git/contracts/modules/MigratorImmutables.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IERC721Permit.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryPayments.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPoolInitializer.sol","lib/universal-router.git/lib/v3-periphery/contracts/libraries/PoolAddress.sol","lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/interfaces/IEIP712_v4.sol","lib/v4-periphery/src/interfaces/IERC721Permit_v4.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol","lib/v4-periphery/src/interfaces/IMulticall_v4.sol","lib/v4-periphery/src/interfaces/INotifier.sol","lib/v4-periphery/src/interfaces/IPermit2Forwarder.sol","lib/v4-periphery/src/interfaces/IPoolInitializer_v4.sol","lib/v4-periphery/src/interfaces/IPositionManager.sol","lib/v4-periphery/src/interfaces/ISubscriber.sol","lib/v4-periphery/src/interfaces/IUnorderedNonce.sol","lib/v4-periphery/src/interfaces/IV4Router.sol","lib/v4-periphery/src/libraries/Actions.sol","lib/v4-periphery/src/libraries/CalldataDecoder.sol","lib/v4-periphery/src/libraries/PathKey.sol","lib/v4-periphery/src/libraries/PositionInfoLibrary.sol"],"versionRequirement":"^0.8.24","artifacts":{"V3ToV4Migrator":{"0.8.26":{"path":"V3ToV4Migrator.sol/V3ToV4Migrator.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/modules/uniswap/UniswapImmutables.sol":{"lastModificationDate":1742173159705,"contentHash":"ab4518c07a60277eee4d4ae7ab0e9900","sourceName":"lib/universal-router.git/contracts/modules/uniswap/UniswapImmutables.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.24","artifacts":{"UniswapImmutables":{"0.8.26":{"path":"UniswapImmutables.sol/UniswapImmutables.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/modules/uniswap/v2/UniswapV2Library.sol":{"lastModificationDate":1742173159705,"contentHash":"a4a49c18371a8fa69b6591fd4f102ae6","sourceName":"lib/universal-router.git/contracts/modules/uniswap/v2/UniswapV2Library.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol"],"versionRequirement":">=0.8.0","artifacts":{"UniswapV2Library":{"0.8.26":{"path":"UniswapV2Library.sol/UniswapV2Library.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/modules/uniswap/v2/V2SwapRouter.sol":{"lastModificationDate":1742173159705,"contentHash":"559ada3cf5d9c8d3c91bdf270c74ee85","sourceName":"lib/universal-router.git/contracts/modules/uniswap/v2/V2SwapRouter.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/permit2/lib/solmate/src/tokens/ERC20.sol","lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol","lib/permit2/src/interfaces/IAllowanceTransfer.sol","lib/permit2/src/interfaces/IEIP712.sol","lib/permit2/src/interfaces/IPermit2.sol","lib/permit2/src/interfaces/ISignatureTransfer.sol","lib/permit2/src/libraries/SafeCast160.sol","lib/universal-router.git/contracts/libraries/Constants.sol","lib/universal-router.git/contracts/modules/Payments.sol","lib/universal-router.git/contracts/modules/PaymentsImmutables.sol","lib/universal-router.git/contracts/modules/Permit2Payments.sol","lib/universal-router.git/contracts/modules/uniswap/UniswapImmutables.sol","lib/universal-router.git/contracts/modules/uniswap/v2/UniswapV2Library.sol","lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol","lib/v4-periphery/src/interfaces/external/IWETH9.sol","lib/v4-periphery/src/libraries/ActionConstants.sol","lib/v4-periphery/src/libraries/BipsLibrary.sol"],"versionRequirement":"^0.8.24","artifacts":{"V2SwapRouter":{"0.8.26":{"path":"V2SwapRouter.sol/V2SwapRouter.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/modules/uniswap/v3/BytesLib.sol":{"lastModificationDate":1742173159705,"contentHash":"f0ceaef505997a802572ce107d9f1c5c","sourceName":"lib/universal-router.git/contracts/modules/uniswap/v3/BytesLib.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/universal-router.git/contracts/libraries/Constants.sol","lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol","lib/v4-periphery/src/interfaces/IV4Router.sol","lib/v4-periphery/src/libraries/CalldataDecoder.sol","lib/v4-periphery/src/libraries/PathKey.sol"],"versionRequirement":"^0.8.0","artifacts":{"BytesLib":{"0.8.26":{"path":"BytesLib.sol/BytesLib.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/modules/uniswap/v3/V3Path.sol":{"lastModificationDate":1742173159705,"contentHash":"c9014cf312ce8ac115991dfccd3ff9f8","sourceName":"lib/universal-router.git/contracts/modules/uniswap/v3/V3Path.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/universal-router.git/contracts/libraries/Constants.sol","lib/universal-router.git/contracts/modules/uniswap/v3/BytesLib.sol","lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol","lib/v4-periphery/src/interfaces/IV4Router.sol","lib/v4-periphery/src/libraries/CalldataDecoder.sol","lib/v4-periphery/src/libraries/PathKey.sol"],"versionRequirement":">=0.6.0","artifacts":{"V3Path":{"0.8.26":{"path":"V3Path.sol/V3Path.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/modules/uniswap/v3/V3SwapRouter.sol":{"lastModificationDate":1742173159705,"contentHash":"76462dfc9a16068aad0863eb97962c63","sourceName":"lib/universal-router.git/contracts/modules/uniswap/v3/V3SwapRouter.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/permit2/lib/solmate/src/tokens/ERC20.sol","lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol","lib/permit2/src/interfaces/IAllowanceTransfer.sol","lib/permit2/src/interfaces/IEIP712.sol","lib/permit2/src/interfaces/IPermit2.sol","lib/permit2/src/interfaces/ISignatureTransfer.sol","lib/permit2/src/libraries/SafeCast160.sol","lib/universal-router.git/contracts/libraries/Constants.sol","lib/universal-router.git/contracts/libraries/MaxInputAmount.sol","lib/universal-router.git/contracts/modules/Payments.sol","lib/universal-router.git/contracts/modules/PaymentsImmutables.sol","lib/universal-router.git/contracts/modules/Permit2Payments.sol","lib/universal-router.git/contracts/modules/uniswap/UniswapImmutables.sol","lib/universal-router.git/contracts/modules/uniswap/v3/BytesLib.sol","lib/universal-router.git/contracts/modules/uniswap/v3/V3Path.sol","lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol","lib/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol","lib/v3-core/contracts/libraries/SafeCast.sol","lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol","lib/v4-periphery/src/interfaces/IV4Router.sol","lib/v4-periphery/src/interfaces/external/IWETH9.sol","lib/v4-periphery/src/libraries/ActionConstants.sol","lib/v4-periphery/src/libraries/BipsLibrary.sol","lib/v4-periphery/src/libraries/CalldataDecoder.sol","lib/v4-periphery/src/libraries/PathKey.sol"],"versionRequirement":"^0.8.24","artifacts":{"V3SwapRouter":{"0.8.26":{"path":"V3SwapRouter.sol/V3SwapRouter.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/modules/uniswap/v4/V4SwapRouter.sol":{"lastModificationDate":1742173159705,"contentHash":"733a4e352a3364935f7cd3b43fcda7f2","sourceName":"lib/universal-router.git/contracts/modules/uniswap/v4/V4SwapRouter.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/permit2/lib/solmate/src/tokens/ERC20.sol","lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol","lib/permit2/src/interfaces/IAllowanceTransfer.sol","lib/permit2/src/interfaces/IEIP712.sol","lib/permit2/src/interfaces/IPermit2.sol","lib/permit2/src/interfaces/ISignatureTransfer.sol","lib/permit2/src/libraries/SafeCast160.sol","lib/universal-router.git/contracts/libraries/Constants.sol","lib/universal-router.git/contracts/modules/Payments.sol","lib/universal-router.git/contracts/modules/PaymentsImmutables.sol","lib/universal-router.git/contracts/modules/Permit2Payments.sol","lib/universal-router.git/contracts/modules/uniswap/UniswapImmutables.sol","lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/callback/IUnlockCallback.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/BitMath.sol","lib/v4-core/src/libraries/CurrencyReserves.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/Lock.sol","lib/v4-core/src/libraries/NonzeroDeltaCount.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/libraries/TickMath.sol","lib/v4-core/src/libraries/TransientStateLibrary.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/V4Router.sol","lib/v4-periphery/src/base/BaseActionsRouter.sol","lib/v4-periphery/src/base/DeltaResolver.sol","lib/v4-periphery/src/base/ImmutableState.sol","lib/v4-periphery/src/base/SafeCallback.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol","lib/v4-periphery/src/interfaces/IV4Router.sol","lib/v4-periphery/src/interfaces/external/IWETH9.sol","lib/v4-periphery/src/libraries/ActionConstants.sol","lib/v4-periphery/src/libraries/Actions.sol","lib/v4-periphery/src/libraries/BipsLibrary.sol","lib/v4-periphery/src/libraries/CalldataDecoder.sol","lib/v4-periphery/src/libraries/PathKey.sol"],"versionRequirement":"^0.8.24","artifacts":{"V4SwapRouter":{"0.8.26":{"path":"V4SwapRouter.sol/V4SwapRouter.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/types/RouterParameters.sol":{"lastModificationDate":1742173159706,"contentHash":"845c0f16acb27d6f60ed180164aa31f5","sourceName":"lib/universal-router.git/contracts/types/RouterParameters.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.24","artifacts":{"RouterParameters":{"0.8.26":{"path":"RouterParameters.sol/RouterParameters.json","build_id":"a985d2e1396d5561ae0fa076c730217f"}}},"seenByCompiler":true},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IERC721Permit.sol":{"lastModificationDate":1742173175405,"contentHash":"9073d26f60e6253b2dfbc103c78cf70d","sourceName":"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IERC721Permit.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"],"versionRequirement":">=0.7.5","artifacts":{"IERC721Permit":{"0.8.26":{"path":"IERC721Permit.sol/IERC721Permit.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol":{"lastModificationDate":1742173175405,"contentHash":"78ea5e100826615428583761926066f3","sourceName":"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol","lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IERC721Permit.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryPayments.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPoolInitializer.sol","lib/universal-router.git/lib/v3-periphery/contracts/libraries/PoolAddress.sol"],"versionRequirement":">=0.7.5","artifacts":{"INonfungiblePositionManager":{"0.8.26":{"path":"INonfungiblePositionManager.sol/INonfungiblePositionManager.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol":{"lastModificationDate":1742173175405,"contentHash":"e68917661480772223d87a606afb29cd","sourceName":"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.5.0","artifacts":{"IPeripheryImmutableState":{"0.8.26":{"path":"IPeripheryImmutableState.sol/IPeripheryImmutableState.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryPayments.sol":{"lastModificationDate":1742173175405,"contentHash":"8aa07bcaad7779d2bae8089adef235bf","sourceName":"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryPayments.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.7.5","artifacts":{"IPeripheryPayments":{"0.8.26":{"path":"IPeripheryPayments.sol/IPeripheryPayments.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPoolInitializer.sol":{"lastModificationDate":1742173175405,"contentHash":"11600b3ed90d17aa07e53a77430a6d6c","sourceName":"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPoolInitializer.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.7.5","artifacts":{"IPoolInitializer":{"0.8.26":{"path":"IPoolInitializer.sol/IPoolInitializer.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/lib/v3-periphery/contracts/libraries/PoolAddress.sol":{"lastModificationDate":1742173175407,"contentHash":"d928327a13dd928fa88273ef22539bef","sourceName":"lib/universal-router.git/lib/v3-periphery/contracts/libraries/PoolAddress.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.5.0","artifacts":{"PoolAddress":{"0.8.26":{"path":"PoolAddress.sol/PoolAddress.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol":{"lastModificationDate":1742173009042,"contentHash":"3fa31c3860f2b9585c3a98c64850829e","sourceName":"lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.5.0","artifacts":{"IUniswapV2Pair":{"0.8.26":{"path":"IUniswapV2Pair.sol/IUniswapV2Pair.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol":{"lastModificationDate":1742173038599,"contentHash":"e6badd8268772b99e7ca397aff11a965","sourceName":"lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol"],"versionRequirement":">=0.5.0","artifacts":{"IUniswapV3Pool":{"0.8.26":{"path":"IUniswapV3Pool.sol/IUniswapV3Pool.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol":{"lastModificationDate":1742173038599,"contentHash":"a8ba2d37b0107911ae0e3b0e123cbd83","sourceName":"lib/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.5.0","artifacts":{"IUniswapV3SwapCallback":{"0.8.26":{"path":"IUniswapV3SwapCallback.sol/IUniswapV3SwapCallback.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol":{"lastModificationDate":1742173038599,"contentHash":"83d338eb1394008c808a20ac7c5bab0c","sourceName":"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.5.0","artifacts":{"IUniswapV3PoolActions":{"0.8.26":{"path":"IUniswapV3PoolActions.sol/IUniswapV3PoolActions.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol":{"lastModificationDate":1742173038600,"contentHash":"25b71180ec9f5132a158334971ee2ace","sourceName":"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.5.0","artifacts":{"IUniswapV3PoolDerivedState":{"0.8.26":{"path":"IUniswapV3PoolDerivedState.sol/IUniswapV3PoolDerivedState.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol":{"lastModificationDate":1742173038600,"contentHash":"05abb59ec113db1046f7dadc78bb297b","sourceName":"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.5.0","artifacts":{"IUniswapV3PoolEvents":{"0.8.26":{"path":"IUniswapV3PoolEvents.sol/IUniswapV3PoolEvents.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol":{"lastModificationDate":1742173038600,"contentHash":"e236e09a9d654fb2f20a6da5dba2bd2f","sourceName":"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.5.0","artifacts":{"IUniswapV3PoolImmutables":{"0.8.26":{"path":"IUniswapV3PoolImmutables.sol/IUniswapV3PoolImmutables.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol":{"lastModificationDate":1742173038600,"contentHash":"1b06ecc79e75f836c446ccf286e671e4","sourceName":"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.5.0","artifacts":{"IUniswapV3PoolOwnerActions":{"0.8.26":{"path":"IUniswapV3PoolOwnerActions.sol/IUniswapV3PoolOwnerActions.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol":{"lastModificationDate":1742173038600,"contentHash":"0488495ef9087b4513d3b43634035ef9","sourceName":"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.5.0","artifacts":{"IUniswapV3PoolState":{"0.8.26":{"path":"IUniswapV3PoolState.sol/IUniswapV3PoolState.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v3-core/contracts/libraries/SafeCast.sol":{"lastModificationDate":1742173038601,"contentHash":"c89128b97d009587db99cae7763cfef0","sourceName":"lib/v3-core/contracts/libraries/SafeCast.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.5.0","artifacts":{"SafeCast":{"0.8.26":{"path":"SafeCast.sol/SafeCast.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/interfaces/IExtsload.sol":{"lastModificationDate":1742172370901,"contentHash":"d6736ed46cbb3b677519964ffea3ce9c","sourceName":"lib/v4-core/src/interfaces/IExtsload.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.0","artifacts":{"IExtsload":{"0.8.26":{"path":"IExtsload.sol/IExtsload.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/interfaces/IExttload.sol":{"lastModificationDate":1742172370901,"contentHash":"c565abf89714dff14e9d67c9d72d028b","sourceName":"lib/v4-core/src/interfaces/IExttload.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.24","artifacts":{"IExttload":{"0.8.26":{"path":"IExttload.sol/IExttload.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/interfaces/IHooks.sol":{"lastModificationDate":1742172370902,"contentHash":"753015bd38c14f4bab14f362b5a2fde4","sourceName":"lib/v4-core/src/interfaces/IHooks.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol"],"versionRequirement":"^0.8.0","artifacts":{"IHooks":{"0.8.26":{"path":"IHooks.sol/IHooks.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/interfaces/IPoolManager.sol":{"lastModificationDate":1742172370902,"contentHash":"bff2826e5dc564783a2a7eb15400d38d","sourceName":"lib/v4-core/src/interfaces/IPoolManager.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol"],"versionRequirement":"^0.8.24","artifacts":{"IPoolManager":{"0.8.26":{"path":"IPoolManager.sol/IPoolManager.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/interfaces/IProtocolFees.sol":{"lastModificationDate":1742172370902,"contentHash":"0c0f37b4a5a4e73b58020f6af846b977","sourceName":"lib/v4-core/src/interfaces/IProtocolFees.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol"],"versionRequirement":"^0.8.0","artifacts":{"IProtocolFees":{"0.8.26":{"path":"IProtocolFees.sol/IProtocolFees.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/interfaces/callback/IUnlockCallback.sol":{"lastModificationDate":1742172370902,"contentHash":"43f66660291be4d6aad9bdcc895462ba","sourceName":"lib/v4-core/src/interfaces/callback/IUnlockCallback.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.0","artifacts":{"IUnlockCallback":{"0.8.26":{"path":"IUnlockCallback.sol/IUnlockCallback.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/interfaces/external/IERC20Minimal.sol":{"lastModificationDate":1742172370902,"contentHash":"673e0abee46eec8a1fe8b7fd9670aeb6","sourceName":"lib/v4-core/src/interfaces/external/IERC20Minimal.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.0","artifacts":{"IERC20Minimal":{"0.8.26":{"path":"IERC20Minimal.sol/IERC20Minimal.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/interfaces/external/IERC6909Claims.sol":{"lastModificationDate":1742172370902,"contentHash":"4fc5d7c51f35f6a84ebffdfb9015a66d","sourceName":"lib/v4-core/src/interfaces/external/IERC6909Claims.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.0","artifacts":{"IERC6909Claims":{"0.8.26":{"path":"IERC6909Claims.sol/IERC6909Claims.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/libraries/BitMath.sol":{"lastModificationDate":1742172370902,"contentHash":"633655f1ca090751fa0071b6ff5cae08","sourceName":"lib/v4-core/src/libraries/BitMath.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.0","artifacts":{"BitMath":{"0.8.26":{"path":"BitMath.sol/BitMath.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/libraries/CurrencyReserves.sol":{"lastModificationDate":1742172370902,"contentHash":"281683f328e83c65da1b3ccae5cda57b","sourceName":"lib/v4-core/src/libraries/CurrencyReserves.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/types/Currency.sol"],"versionRequirement":"^0.8.24","artifacts":{"CurrencyReserves":{"0.8.26":{"path":"CurrencyReserves.sol/CurrencyReserves.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/libraries/CustomRevert.sol":{"lastModificationDate":1742172370903,"contentHash":"7c5352bf0b75f406d539e91f39d86627","sourceName":"lib/v4-core/src/libraries/CustomRevert.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.0","artifacts":{"CustomRevert":{"0.8.26":{"path":"CustomRevert.sol/CustomRevert.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/libraries/FixedPoint128.sol":{"lastModificationDate":1742172370903,"contentHash":"9a9bdb7b1c2b3dcd5696781da269b664","sourceName":"lib/v4-core/src/libraries/FixedPoint128.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.0","artifacts":{"FixedPoint128":{"0.8.26":{"path":"FixedPoint128.sol/FixedPoint128.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/libraries/FullMath.sol":{"lastModificationDate":1742172370903,"contentHash":"065f312b89d9a0a2ae30f7eb1075a9a1","sourceName":"lib/v4-core/src/libraries/FullMath.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.0","artifacts":{"FullMath":{"0.8.26":{"path":"FullMath.sol/FullMath.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/libraries/LiquidityMath.sol":{"lastModificationDate":1742172370903,"contentHash":"9ae2feefc960d9918c75d91cf2fde383","sourceName":"lib/v4-core/src/libraries/LiquidityMath.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.0","artifacts":{"LiquidityMath":{"0.8.26":{"path":"LiquidityMath.sol/LiquidityMath.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/libraries/Lock.sol":{"lastModificationDate":1742172370903,"contentHash":"d3a4be9a156d9a9930a7cf18366192c8","sourceName":"lib/v4-core/src/libraries/Lock.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.24","artifacts":{"Lock":{"0.8.26":{"path":"libraries/Lock.sol/Lock.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/libraries/NonzeroDeltaCount.sol":{"lastModificationDate":1742172370903,"contentHash":"e897ca20f7ea8258eb2dcc17319dc233","sourceName":"lib/v4-core/src/libraries/NonzeroDeltaCount.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.24","artifacts":{"NonzeroDeltaCount":{"0.8.26":{"path":"NonzeroDeltaCount.sol/NonzeroDeltaCount.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/libraries/Position.sol":{"lastModificationDate":1742172370903,"contentHash":"7e454522b69c5bbc56674c99ac1c5ef9","sourceName":"lib/v4-core/src/libraries/Position.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/FixedPoint128.sol","lib/v4-core/src/libraries/FullMath.sol","lib/v4-core/src/libraries/LiquidityMath.sol"],"versionRequirement":"^0.8.0","artifacts":{"Position":{"0.8.26":{"path":"Position.sol/Position.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/libraries/SafeCast.sol":{"lastModificationDate":1742172370904,"contentHash":"7efd56acc85f88254a521ab4e32f1247","sourceName":"lib/v4-core/src/libraries/SafeCast.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/libraries/CustomRevert.sol"],"versionRequirement":"^0.8.0","artifacts":{"SafeCast":{"0.8.26":{"path":"libraries/SafeCast.sol/SafeCast.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/libraries/StateLibrary.sol":{"lastModificationDate":1742172370904,"contentHash":"c3a5ec9d59ea78391db1ec3a9eebb0d9","sourceName":"lib/v4-core/src/libraries/StateLibrary.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/FixedPoint128.sol","lib/v4-core/src/libraries/FullMath.sol","lib/v4-core/src/libraries/LiquidityMath.sol","lib/v4-core/src/libraries/Position.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol"],"versionRequirement":"^0.8.0","artifacts":{"StateLibrary":{"0.8.26":{"path":"StateLibrary.sol/StateLibrary.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/libraries/TickMath.sol":{"lastModificationDate":1742172370904,"contentHash":"5a64ebeb2ad0d4d53dbfadab198190ea","sourceName":"lib/v4-core/src/libraries/TickMath.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/libraries/BitMath.sol","lib/v4-core/src/libraries/CustomRevert.sol"],"versionRequirement":"^0.8.0","artifacts":{"TickMath":{"0.8.26":{"path":"TickMath.sol/TickMath.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/libraries/TransientStateLibrary.sol":{"lastModificationDate":1742172370904,"contentHash":"5915c3538eb806d92604d860fdb51613","sourceName":"lib/v4-core/src/libraries/TransientStateLibrary.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CurrencyReserves.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/Lock.sol","lib/v4-core/src/libraries/NonzeroDeltaCount.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol"],"versionRequirement":"^0.8.24","artifacts":{"TransientStateLibrary":{"0.8.26":{"path":"TransientStateLibrary.sol/TransientStateLibrary.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/types/BalanceDelta.sol":{"lastModificationDate":1742172370908,"contentHash":"dec730cf97f8429624545ffff69e7909","sourceName":"lib/v4-core/src/types/BalanceDelta.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol"],"versionRequirement":"^0.8.0","artifacts":{"BalanceDeltaLibrary":{"0.8.26":{"path":"BalanceDelta.sol/BalanceDeltaLibrary.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/types/BeforeSwapDelta.sol":{"lastModificationDate":1742172370908,"contentHash":"ae7541dc512b8b3131e5ef904f047a72","sourceName":"lib/v4-core/src/types/BeforeSwapDelta.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.0","artifacts":{"BeforeSwapDeltaLibrary":{"0.8.26":{"path":"BeforeSwapDelta.sol/BeforeSwapDeltaLibrary.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/types/Currency.sol":{"lastModificationDate":1742172370908,"contentHash":"291e0c95e9368cfc77d3f730d602131e","sourceName":"lib/v4-core/src/types/Currency.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/libraries/CustomRevert.sol"],"versionRequirement":"^0.8.0","artifacts":{"CurrencyLibrary":{"0.8.26":{"path":"Currency.sol/CurrencyLibrary.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/types/PoolId.sol":{"lastModificationDate":1742172370908,"contentHash":"a6e85b945451c582bcf7de3452c782cb","sourceName":"lib/v4-core/src/types/PoolId.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol"],"versionRequirement":"^0.8.0","artifacts":{"PoolIdLibrary":{"0.8.26":{"path":"PoolId.sol/PoolIdLibrary.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/types/PoolKey.sol":{"lastModificationDate":1742172370908,"contentHash":"398fad21745911bc900a2554be64c61a","sourceName":"lib/v4-core/src/types/PoolKey.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol"],"versionRequirement":"^0.8.0","artifacts":{"PoolKey":{"0.8.26":{"path":"PoolKey.sol/PoolKey.json","build_id":"a985d2e1396d5561ae0fa076c730217f"}}},"seenByCompiler":true},"lib/v4-periphery/src/V4Router.sol":{"lastModificationDate":1742172541695,"contentHash":"16c8552867d5361ccdc674afbe4d8e5b","sourceName":"lib/v4-periphery/src/V4Router.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/callback/IUnlockCallback.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/BitMath.sol","lib/v4-core/src/libraries/CurrencyReserves.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/Lock.sol","lib/v4-core/src/libraries/NonzeroDeltaCount.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/libraries/TickMath.sol","lib/v4-core/src/libraries/TransientStateLibrary.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/base/BaseActionsRouter.sol","lib/v4-periphery/src/base/DeltaResolver.sol","lib/v4-periphery/src/base/ImmutableState.sol","lib/v4-periphery/src/base/SafeCallback.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol","lib/v4-periphery/src/interfaces/IV4Router.sol","lib/v4-periphery/src/libraries/ActionConstants.sol","lib/v4-periphery/src/libraries/Actions.sol","lib/v4-periphery/src/libraries/BipsLibrary.sol","lib/v4-periphery/src/libraries/CalldataDecoder.sol","lib/v4-periphery/src/libraries/PathKey.sol"],"versionRequirement":"=0.8.26","artifacts":{"V4Router":{"0.8.26":{"path":"V4Router.sol/V4Router.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/base/BaseActionsRouter.sol":{"lastModificationDate":1742172541695,"contentHash":"651b1b9c563356dc5c2db90c193005c1","sourceName":"lib/v4-periphery/src/base/BaseActionsRouter.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/callback/IUnlockCallback.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/base/ImmutableState.sol","lib/v4-periphery/src/base/SafeCallback.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol","lib/v4-periphery/src/interfaces/IV4Router.sol","lib/v4-periphery/src/libraries/ActionConstants.sol","lib/v4-periphery/src/libraries/CalldataDecoder.sol","lib/v4-periphery/src/libraries/PathKey.sol"],"versionRequirement":"^0.8.0","artifacts":{"BaseActionsRouter":{"0.8.26":{"path":"BaseActionsRouter.sol/BaseActionsRouter.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/base/DeltaResolver.sol":{"lastModificationDate":1742172541695,"contentHash":"e3c7f64af0aadbccc094ef9edfd50645","sourceName":"lib/v4-periphery/src/base/DeltaResolver.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CurrencyReserves.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/Lock.sol","lib/v4-core/src/libraries/NonzeroDeltaCount.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/libraries/TransientStateLibrary.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/base/ImmutableState.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol","lib/v4-periphery/src/libraries/ActionConstants.sol"],"versionRequirement":"^0.8.24","artifacts":{"DeltaResolver":{"0.8.26":{"path":"DeltaResolver.sol/DeltaResolver.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/base/ImmutableState.sol":{"lastModificationDate":1742172541695,"contentHash":"7042f1a5ecba4547ee409ead91f636a2","sourceName":"lib/v4-periphery/src/base/ImmutableState.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol"],"versionRequirement":"^0.8.0","artifacts":{"ImmutableState":{"0.8.26":{"path":"ImmutableState.sol/ImmutableState.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/base/SafeCallback.sol":{"lastModificationDate":1742172541696,"contentHash":"f3870abddac4a0d9d47aece3e63fbcd3","sourceName":"lib/v4-periphery/src/base/SafeCallback.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/callback/IUnlockCallback.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/base/ImmutableState.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol"],"versionRequirement":"^0.8.0","artifacts":{"SafeCallback":{"0.8.26":{"path":"SafeCallback.sol/SafeCallback.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/interfaces/IEIP712_v4.sol":{"lastModificationDate":1742172541696,"contentHash":"6ee844510736854c32712ba2edb741d1","sourceName":"lib/v4-periphery/src/interfaces/IEIP712_v4.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.0","artifacts":{"IEIP712_v4":{"0.8.26":{"path":"IEIP712_v4.sol/IEIP712_v4.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/interfaces/IERC721Permit_v4.sol":{"lastModificationDate":1742172541696,"contentHash":"1a26e530fa8191d9ad091718ba5c8501","sourceName":"lib/v4-periphery/src/interfaces/IERC721Permit_v4.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.0","artifacts":{"IERC721Permit_v4":{"0.8.26":{"path":"IERC721Permit_v4.sol/IERC721Permit_v4.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/interfaces/IImmutableState.sol":{"lastModificationDate":1742172541696,"contentHash":"567fc9a99078de8bc375eb41b9d024af","sourceName":"lib/v4-periphery/src/interfaces/IImmutableState.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol"],"versionRequirement":"^0.8.0","artifacts":{"IImmutableState":{"0.8.26":{"path":"IImmutableState.sol/IImmutableState.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/interfaces/IMulticall_v4.sol":{"lastModificationDate":1742172541696,"contentHash":"d2c8b4c699f481783a42f4cfe71b9de0","sourceName":"lib/v4-periphery/src/interfaces/IMulticall_v4.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.0","artifacts":{"IMulticall_v4":{"0.8.26":{"path":"IMulticall_v4.sol/IMulticall_v4.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/interfaces/INotifier.sol":{"lastModificationDate":1742172541697,"contentHash":"8f82b8e2640096227d4d5ef24a30db26","sourceName":"lib/v4-periphery/src/interfaces/INotifier.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/interfaces/ISubscriber.sol","lib/v4-periphery/src/libraries/PositionInfoLibrary.sol"],"versionRequirement":"^0.8.0","artifacts":{"INotifier":{"0.8.26":{"path":"INotifier.sol/INotifier.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/interfaces/IPermit2Forwarder.sol":{"lastModificationDate":1742172541697,"contentHash":"ae2370a4fadca4b8a62949a4f16471d4","sourceName":"lib/v4-periphery/src/interfaces/IPermit2Forwarder.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/permit2/src/interfaces/IAllowanceTransfer.sol","lib/permit2/src/interfaces/IEIP712.sol"],"versionRequirement":"^0.8.0","artifacts":{"IPermit2Forwarder":{"0.8.26":{"path":"IPermit2Forwarder.sol/IPermit2Forwarder.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/interfaces/IPoolInitializer_v4.sol":{"lastModificationDate":1742172541697,"contentHash":"50d165d8610cefc03ac18d4089d416ac","sourceName":"lib/v4-periphery/src/interfaces/IPoolInitializer_v4.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol"],"versionRequirement":"^0.8.0","artifacts":{"IPoolInitializer_v4":{"0.8.26":{"path":"IPoolInitializer_v4.sol/IPoolInitializer_v4.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/interfaces/IPositionManager.sol":{"lastModificationDate":1742172541697,"contentHash":"5314065f46a238b34c6495501c65f6cb","sourceName":"lib/v4-periphery/src/interfaces/IPositionManager.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/permit2/src/interfaces/IAllowanceTransfer.sol","lib/permit2/src/interfaces/IEIP712.sol","lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/interfaces/IEIP712_v4.sol","lib/v4-periphery/src/interfaces/IERC721Permit_v4.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol","lib/v4-periphery/src/interfaces/IMulticall_v4.sol","lib/v4-periphery/src/interfaces/INotifier.sol","lib/v4-periphery/src/interfaces/IPermit2Forwarder.sol","lib/v4-periphery/src/interfaces/IPoolInitializer_v4.sol","lib/v4-periphery/src/interfaces/ISubscriber.sol","lib/v4-periphery/src/interfaces/IUnorderedNonce.sol","lib/v4-periphery/src/libraries/PositionInfoLibrary.sol"],"versionRequirement":"^0.8.0","artifacts":{"IPositionManager":{"0.8.26":{"path":"IPositionManager.sol/IPositionManager.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/interfaces/ISubscriber.sol":{"lastModificationDate":1742172541697,"contentHash":"05b6736d495ba5ccdb5fa57019779d67","sourceName":"lib/v4-periphery/src/interfaces/ISubscriber.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/libraries/PositionInfoLibrary.sol"],"versionRequirement":"^0.8.0","artifacts":{"ISubscriber":{"0.8.26":{"path":"ISubscriber.sol/ISubscriber.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/interfaces/IUnorderedNonce.sol":{"lastModificationDate":1742172541697,"contentHash":"defa16ee07839caee3f75d1c67e4173b","sourceName":"lib/v4-periphery/src/interfaces/IUnorderedNonce.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.0","artifacts":{"IUnorderedNonce":{"0.8.26":{"path":"IUnorderedNonce.sol/IUnorderedNonce.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/interfaces/IV4Router.sol":{"lastModificationDate":1742172541697,"contentHash":"9d097300f3b52faaeb8c1970f165584b","sourceName":"lib/v4-periphery/src/interfaces/IV4Router.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol","lib/v4-periphery/src/libraries/PathKey.sol"],"versionRequirement":"^0.8.0","artifacts":{"IV4Router":{"0.8.26":{"path":"IV4Router.sol/IV4Router.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/interfaces/external/IWETH9.sol":{"lastModificationDate":1742172541698,"contentHash":"72604c7c076c1ff9dc1cfd84889addf8","sourceName":"lib/v4-periphery/src/interfaces/external/IWETH9.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"],"versionRequirement":"^0.8.0","artifacts":{"IWETH9":{"0.8.26":{"path":"IWETH9.sol/IWETH9.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/libraries/ActionConstants.sol":{"lastModificationDate":1742172541698,"contentHash":"a602839d87c83283ab7b57b74de33b83","sourceName":"lib/v4-periphery/src/libraries/ActionConstants.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.0","artifacts":{"ActionConstants":{"0.8.26":{"path":"ActionConstants.sol/ActionConstants.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/libraries/Actions.sol":{"lastModificationDate":1742172541698,"contentHash":"1820f782dc9eab7f8d9b7b36c0aff2c0","sourceName":"lib/v4-periphery/src/libraries/Actions.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.0","artifacts":{"Actions":{"0.8.26":{"path":"Actions.sol/Actions.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/libraries/BipsLibrary.sol":{"lastModificationDate":1742172541698,"contentHash":"a3c05fa43f0d523c1a43ea93e7c5204e","sourceName":"lib/v4-periphery/src/libraries/BipsLibrary.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.0","artifacts":{"BipsLibrary":{"0.8.26":{"path":"BipsLibrary.sol/BipsLibrary.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/libraries/CalldataDecoder.sol":{"lastModificationDate":1742172541698,"contentHash":"21ba61dfdd4d9fe4f8ff20629923820b","sourceName":"lib/v4-periphery/src/libraries/CalldataDecoder.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol","lib/v4-periphery/src/interfaces/IV4Router.sol","lib/v4-periphery/src/libraries/PathKey.sol"],"versionRequirement":"^0.8.0","artifacts":{"CalldataDecoder":{"0.8.26":{"path":"CalldataDecoder.sol/CalldataDecoder.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/libraries/PathKey.sol":{"lastModificationDate":1742172541699,"contentHash":"387d28b3026f18523fd70d1e06f12ecf","sourceName":"lib/v4-periphery/src/libraries/PathKey.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol"],"versionRequirement":"^0.8.0","artifacts":{"PathKeyLibrary":{"0.8.26":{"path":"PathKey.sol/PathKeyLibrary.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/libraries/PositionInfoLibrary.sol":{"lastModificationDate":1742172541699,"contentHash":"665df71c1aee1be6aa7c8693d172dd0b","sourceName":"lib/v4-periphery/src/libraries/PositionInfoLibrary.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol"],"versionRequirement":"^0.8.24","artifacts":{"PositionInfoLibrary":{"0.8.26":{"path":"PositionInfoLibrary.sol/PositionInfoLibrary.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"node_modules/fhevm/config/ZamaFHEVMConfig.sol":{"lastModificationDate":1741806415873,"contentHash":"2b99c2f099c9ee96f76dec9acff7d320","sourceName":"node_modules/fhevm/config/ZamaFHEVMConfig.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"^0.8.24","artifacts":{"EthereumZamaFHEVMConfig":{"0.8.26":{"path":"ZamaFHEVMConfig.sol/EthereumZamaFHEVMConfig.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}},"SepoliaZamaFHEVMConfig":{"0.8.26":{"path":"ZamaFHEVMConfig.sol/SepoliaZamaFHEVMConfig.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}},"ZamaFHEVMConfig":{"0.8.26":{"path":"ZamaFHEVMConfig.sol/ZamaFHEVMConfig.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"node_modules/fhevm/config/ZamaGatewayConfig.sol":{"lastModificationDate":1741806415874,"contentHash":"17f1a9716dd2ee547aac9b6ab183d3bb","sourceName":"node_modules/fhevm/config/ZamaGatewayConfig.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["node_modules/fhevm/gateway/lib/Gateway.sol","node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"^0.8.24","artifacts":{"EthereumZamaGatewayConfig":{"0.8.26":{"path":"ZamaGatewayConfig.sol/EthereumZamaGatewayConfig.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}},"SepoliaZamaGatewayConfig":{"0.8.26":{"path":"ZamaGatewayConfig.sol/SepoliaZamaGatewayConfig.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}},"ZamaGatewayConfig":{"0.8.26":{"path":"ZamaGatewayConfig.sol/ZamaGatewayConfig.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"node_modules/fhevm/gateway/GatewayCaller.sol":{"lastModificationDate":1741806415872,"contentHash":"61275e485ac8d9b68a66cc4c5b571bc1","sourceName":"node_modules/fhevm/gateway/GatewayCaller.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["node_modules/fhevm/gateway/lib/Gateway.sol","node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"^0.8.24","artifacts":{"GatewayCaller":{"0.8.26":{"path":"GatewayCaller.sol/GatewayCaller.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"node_modules/fhevm/gateway/lib/Gateway.sol":{"lastModificationDate":1741806415871,"contentHash":"33fc904ca6b2414f34b94ceee9ae74f9","sourceName":"node_modules/fhevm/gateway/lib/Gateway.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"^0.8.24","artifacts":{"Gateway":{"0.8.26":{"path":"Gateway.sol/Gateway.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}},"IGatewayContract":{"0.8.26":{"path":"Gateway.sol/IGatewayContract.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}},"IKMSVerifier":{"0.8.26":{"path":"Gateway.sol/IKMSVerifier.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"node_modules/fhevm/lib/Impl.sol":{"lastModificationDate":1741806415872,"contentHash":"93d7e3908104c93e0038c718f41d7c54","sourceName":"node_modules/fhevm/lib/Impl.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"^0.8.24","artifacts":{"IACL":{"0.8.26":{"path":"Impl.sol/IACL.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}},"ITFHEExecutor":{"0.8.26":{"path":"Impl.sol/ITFHEExecutor.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}},"Impl":{"0.8.26":{"path":"Impl.sol/Impl.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"node_modules/fhevm/lib/TFHE.sol":{"lastModificationDate":1741806415873,"contentHash":"5e1b4ee3a4cc167d6f59a3e72db2a7f9","sourceName":"node_modules/fhevm/lib/TFHE.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"^0.8.24","artifacts":{"Common":{"0.8.26":{"path":"TFHE.sol/Common.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}},"TFHE":{"0.8.26":{"path":"TFHE.sol/TFHE.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"node_modules/fhevm-contracts/contracts/token/ERC20/ConfidentialERC20.sol":{"lastModificationDate":1741806415706,"contentHash":"d09c98b3f8e3039c507370ade9264bd0","sourceName":"node_modules/fhevm-contracts/contracts/token/ERC20/ConfidentialERC20.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol","node_modules/fhevm-contracts/contracts/token/ERC20/IConfidentialERC20.sol","node_modules/fhevm-contracts/contracts/utils/TFHEErrors.sol"],"versionRequirement":"^0.8.24","artifacts":{"ConfidentialERC20":{"0.8.26":{"path":"ConfidentialERC20.sol/ConfidentialERC20.json","build_id":"a985d2e1396d5561ae0fa076c730217f"}}},"seenByCompiler":true},"node_modules/fhevm-contracts/contracts/token/ERC20/IConfidentialERC20.sol":{"lastModificationDate":1741806415709,"contentHash":"d4c39d351beb2aef9f327b6237d111b9","sourceName":"node_modules/fhevm-contracts/contracts/token/ERC20/IConfidentialERC20.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"^0.8.24","artifacts":{"IConfidentialERC20":{"0.8.26":{"path":"IConfidentialERC20.sol/IConfidentialERC20.json","build_id":"a985d2e1396d5561ae0fa076c730217f"}}},"seenByCompiler":true},"node_modules/fhevm-contracts/contracts/token/ERC20/extensions/ConfidentialERC20Mintable.sol":{"lastModificationDate":1741806415706,"contentHash":"83043439b378c384dbb7ed7f67425fa8","sourceName":"node_modules/fhevm-contracts/contracts/token/ERC20/extensions/ConfidentialERC20Mintable.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/access/Ownable.sol","lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","lib/openzeppelin-contracts/contracts/utils/Context.sol","node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol","node_modules/fhevm-contracts/contracts/token/ERC20/ConfidentialERC20.sol","node_modules/fhevm-contracts/contracts/token/ERC20/IConfidentialERC20.sol","node_modules/fhevm-contracts/contracts/utils/TFHEErrors.sol"],"versionRequirement":"^0.8.24","artifacts":{"ConfidentialERC20Mintable":{"0.8.26":{"path":"ConfidentialERC20Mintable.sol/ConfidentialERC20Mintable.json","build_id":"a985d2e1396d5561ae0fa076c730217f"}}},"seenByCompiler":true},"node_modules/fhevm-contracts/contracts/utils/TFHEErrors.sol":{"lastModificationDate":1741806415710,"contentHash":"69c7f60f6e4c79fbb7ef61b1e00195cc","sourceName":"node_modules/fhevm-contracts/contracts/utils/TFHEErrors.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.24","artifacts":{"TFHEErrors":{"0.8.26":{"path":"TFHEErrors.sol/TFHEErrors.json","build_id":"a985d2e1396d5561ae0fa076c730217f"}}},"seenByCompiler":true}},"builds":["1d600269096e9b8fe9d5fc95df1809d1","a985d2e1396d5561ae0fa076c730217f"]} \ No newline at end of file +{"_format":"","paths":{"artifacts":"out","build_infos":"out/build-info","sources":"contracts","tests":"test","scripts":"script","libraries":["lib","node_modules"]},"files":{"contracts/ConfidentialIndexFund.sol":{"lastModificationDate":1747697755257,"contentHash":"f16c6d52b4e807ed5979d14c21328b01","sourceName":"contracts/ConfidentialIndexFund.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["contracts/ConfidentialIndexFund.sol","contracts/ERC20Encryption/ConfidentialERC20Base.sol","contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol","contracts/ERC20Encryption/ConfidentialERC20WithErrorsWrapped.sol","contracts/ERC20Encryption/CustomConfidentialERC20WithErrors.sol","contracts/ERC20Encryption/CustomConfidentialERC20Wrapped.sol","contracts/IndexFundFactory.sol","contracts/IndexFundToken.sol","contracts/interfaces/IIndexFund.sol","contracts/interfaces/IIndexFundFactory.sol","contracts/interfaces/IMarketDataFetcher.sol","contracts/interfaces/ISwapsManager.sol","contracts/lib/IndexFundStateManagement.sol","contracts/marketData/MarketDataFetcher.sol","contracts/swaps/SwapsManager.sol","lib/chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol","lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20Wrapped.sol","lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20Wrapped.sol","lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol","lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol","lib/httpz-contracts/contracts/utils/EncryptedErrors.sol","lib/httpz-contracts/contracts/utils/TFHEErrors.sol","lib/openzeppelin-contracts/contracts/access/AccessControl.sol","lib/openzeppelin-contracts/contracts/access/IAccessControl.sol","lib/openzeppelin-contracts/contracts/access/Ownable.sol","lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol","lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol","lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol","lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol","lib/openzeppelin-contracts/contracts/utils/Address.sol","lib/openzeppelin-contracts/contracts/utils/Context.sol","lib/openzeppelin-contracts/contracts/utils/Errors.sol","lib/openzeppelin-contracts/contracts/utils/Panic.sol","lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol","lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol","lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","lib/openzeppelin-contracts/contracts/utils/Strings.sol","lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol","lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","lib/openzeppelin-contracts/contracts/utils/math/Math.sol","lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol","lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol","lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol","lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol","lib/permit2/lib/solmate/src/tokens/ERC20.sol","lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol","lib/permit2/src/interfaces/IAllowanceTransfer.sol","lib/permit2/src/interfaces/IEIP712.sol","lib/permit2/src/interfaces/IPermit2.sol","lib/permit2/src/interfaces/ISignatureTransfer.sol","lib/permit2/src/libraries/SafeCast160.sol","lib/universal-router.git/contracts/UniversalRouter.sol","lib/universal-router.git/contracts/base/Dispatcher.sol","lib/universal-router.git/contracts/base/Lock.sol","lib/universal-router.git/contracts/interfaces/IUniversalRouter.sol","lib/universal-router.git/contracts/libraries/Commands.sol","lib/universal-router.git/contracts/libraries/Constants.sol","lib/universal-router.git/contracts/libraries/Locker.sol","lib/universal-router.git/contracts/libraries/MaxInputAmount.sol","lib/universal-router.git/contracts/modules/MigratorImmutables.sol","lib/universal-router.git/contracts/modules/Payments.sol","lib/universal-router.git/contracts/modules/PaymentsImmutables.sol","lib/universal-router.git/contracts/modules/Permit2Payments.sol","lib/universal-router.git/contracts/modules/V3ToV4Migrator.sol","lib/universal-router.git/contracts/modules/uniswap/UniswapImmutables.sol","lib/universal-router.git/contracts/modules/uniswap/v2/UniswapV2Library.sol","lib/universal-router.git/contracts/modules/uniswap/v2/V2SwapRouter.sol","lib/universal-router.git/contracts/modules/uniswap/v3/BytesLib.sol","lib/universal-router.git/contracts/modules/uniswap/v3/V3Path.sol","lib/universal-router.git/contracts/modules/uniswap/v3/V3SwapRouter.sol","lib/universal-router.git/contracts/modules/uniswap/v4/V4SwapRouter.sol","lib/universal-router.git/contracts/types/RouterParameters.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IERC721Permit.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryPayments.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPoolInitializer.sol","lib/universal-router.git/lib/v3-periphery/contracts/libraries/PoolAddress.sol","lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol","lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol","lib/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol","lib/v3-core/contracts/libraries/SafeCast.sol","lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/callback/IUnlockCallback.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/BitMath.sol","lib/v4-core/src/libraries/CurrencyReserves.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/FixedPoint128.sol","lib/v4-core/src/libraries/FullMath.sol","lib/v4-core/src/libraries/LiquidityMath.sol","lib/v4-core/src/libraries/Lock.sol","lib/v4-core/src/libraries/NonzeroDeltaCount.sol","lib/v4-core/src/libraries/Position.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/libraries/StateLibrary.sol","lib/v4-core/src/libraries/TickMath.sol","lib/v4-core/src/libraries/TransientStateLibrary.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/V4Router.sol","lib/v4-periphery/src/base/BaseActionsRouter.sol","lib/v4-periphery/src/base/DeltaResolver.sol","lib/v4-periphery/src/base/ImmutableState.sol","lib/v4-periphery/src/base/SafeCallback.sol","lib/v4-periphery/src/interfaces/IEIP712_v4.sol","lib/v4-periphery/src/interfaces/IERC721Permit_v4.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol","lib/v4-periphery/src/interfaces/IMulticall_v4.sol","lib/v4-periphery/src/interfaces/INotifier.sol","lib/v4-periphery/src/interfaces/IPermit2Forwarder.sol","lib/v4-periphery/src/interfaces/IPoolInitializer_v4.sol","lib/v4-periphery/src/interfaces/IPositionManager.sol","lib/v4-periphery/src/interfaces/ISubscriber.sol","lib/v4-periphery/src/interfaces/IUnorderedNonce.sol","lib/v4-periphery/src/interfaces/IV4Router.sol","lib/v4-periphery/src/interfaces/external/IWETH9.sol","lib/v4-periphery/src/libraries/ActionConstants.sol","lib/v4-periphery/src/libraries/Actions.sol","lib/v4-periphery/src/libraries/BipsLibrary.sol","lib/v4-periphery/src/libraries/CalldataDecoder.sol","lib/v4-periphery/src/libraries/PathKey.sol","lib/v4-periphery/src/libraries/PositionInfoLibrary.sol","node_modules/fhevm/config/ZamaFHEVMConfig.sol","node_modules/fhevm/config/ZamaGatewayConfig.sol","node_modules/fhevm/gateway/GatewayCaller.sol","node_modules/fhevm/gateway/lib/Gateway.sol","node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"=0.8.26","artifacts":{"ConfidentialIndexFund":{"0.8.26":{"path":"ConfidentialIndexFund.sol/ConfidentialIndexFund.json","build_id":"6c6cc69ac3acdbb7e76597baa51096f4"}}},"seenByCompiler":true},"contracts/ERC20Encryption/ConfidentialERC20Base.sol":{"lastModificationDate":1746935365146,"contentHash":"206129879c1b4a72df47a5847eebf05b","sourceName":"contracts/ERC20Encryption/ConfidentialERC20Base.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol","lib/httpz-contracts/contracts/utils/TFHEErrors.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"^0.8.24","artifacts":{"ConfidentialERC20Base":{"0.8.26":{"path":"ConfidentialERC20Base.sol/ConfidentialERC20Base.json","build_id":"c9c371a10fdf476c3d80cbfb9ab3fb34"}}},"seenByCompiler":true},"contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol":{"lastModificationDate":1747698014851,"contentHash":"3c3f6bc0985852bf2132d510514334e2","sourceName":"contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol","lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol","lib/httpz-contracts/contracts/utils/EncryptedErrors.sol","lib/httpz-contracts/contracts/utils/TFHEErrors.sol","lib/openzeppelin-contracts/contracts/access/Ownable.sol","lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","lib/openzeppelin-contracts/contracts/utils/Context.sol","node_modules/fhevm/config/ZamaFHEVMConfig.sol","node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"^0.8.24","artifacts":{"ConfidentialERC20WithErrorsMintableBurnable":{"0.8.26":{"path":"ConfidentialERC20WithErrorsMintableBurnable.sol/ConfidentialERC20WithErrorsMintableBurnable.json","build_id":"6c6cc69ac3acdbb7e76597baa51096f4"}}},"seenByCompiler":true},"contracts/ERC20Encryption/ConfidentialERC20WithErrorsWrapped.sol":{"lastModificationDate":1746935352206,"contentHash":"699b184161001d8f0487b5c4c1c13646","sourceName":"contracts/ERC20Encryption/ConfidentialERC20WithErrorsWrapped.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["contracts/ERC20Encryption/ConfidentialERC20Base.sol","contracts/ERC20Encryption/CustomConfidentialERC20WithErrors.sol","contracts/ERC20Encryption/CustomConfidentialERC20Wrapped.sol","lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20Wrapped.sol","lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol","lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol","lib/httpz-contracts/contracts/utils/EncryptedErrors.sol","lib/httpz-contracts/contracts/utils/TFHEErrors.sol","lib/openzeppelin-contracts/contracts/access/Ownable.sol","lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","lib/openzeppelin-contracts/contracts/utils/Context.sol","lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol","lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","node_modules/fhevm/config/ZamaFHEVMConfig.sol","node_modules/fhevm/config/ZamaGatewayConfig.sol","node_modules/fhevm/gateway/GatewayCaller.sol","node_modules/fhevm/gateway/lib/Gateway.sol","node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"^0.8.24","artifacts":{"ConfidentialERC20WithErrorsWrapped":{"0.8.26":{"path":"ConfidentialERC20WithErrorsWrapped.sol/ConfidentialERC20WithErrorsWrapped.json","build_id":"6c6cc69ac3acdbb7e76597baa51096f4"}}},"seenByCompiler":true},"contracts/ERC20Encryption/CustomConfidentialERC20WithErrors.sol":{"lastModificationDate":1747697854232,"contentHash":"dedd619ea8e67a03258c60a2756882a4","sourceName":"contracts/ERC20Encryption/CustomConfidentialERC20WithErrors.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["contracts/ERC20Encryption/ConfidentialERC20Base.sol","lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol","lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol","lib/httpz-contracts/contracts/utils/EncryptedErrors.sol","lib/httpz-contracts/contracts/utils/TFHEErrors.sol","lib/openzeppelin-contracts/contracts/access/Ownable.sol","lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","lib/openzeppelin-contracts/contracts/utils/Context.sol","node_modules/fhevm/config/ZamaFHEVMConfig.sol","node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"^0.8.24","artifacts":{"CustomConfidentialERC20WithErrors":{"0.8.26":{"path":"CustomConfidentialERC20WithErrors.sol/CustomConfidentialERC20WithErrors.json","build_id":"6c6cc69ac3acdbb7e76597baa51096f4"}}},"seenByCompiler":true},"contracts/ERC20Encryption/CustomConfidentialERC20Wrapped.sol":{"lastModificationDate":1747697908393,"contentHash":"6c78a080f7844081f6b707fd10d31277","sourceName":"contracts/ERC20Encryption/CustomConfidentialERC20Wrapped.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["contracts/ERC20Encryption/ConfidentialERC20Base.sol","lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20Wrapped.sol","lib/httpz-contracts/contracts/utils/TFHEErrors.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol","lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","node_modules/fhevm/gateway/GatewayCaller.sol","node_modules/fhevm/gateway/lib/Gateway.sol","node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"^0.8.24","artifacts":{"CustomConfidentialERC20Wrapped":{"0.8.26":{"path":"CustomConfidentialERC20Wrapped.sol/CustomConfidentialERC20Wrapped.json","build_id":"6c6cc69ac3acdbb7e76597baa51096f4"}}},"seenByCompiler":true},"contracts/IndexFundFactory.sol":{"lastModificationDate":1747699712167,"contentHash":"1f7b340a714dcc2b4dde2d64c53432bc","sourceName":"contracts/IndexFundFactory.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["contracts/ConfidentialIndexFund.sol","contracts/ERC20Encryption/ConfidentialERC20Base.sol","contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol","contracts/ERC20Encryption/ConfidentialERC20WithErrorsWrapped.sol","contracts/ERC20Encryption/CustomConfidentialERC20WithErrors.sol","contracts/ERC20Encryption/CustomConfidentialERC20Wrapped.sol","contracts/IndexFundFactory.sol","contracts/IndexFundToken.sol","contracts/interfaces/IIndexFund.sol","contracts/interfaces/IIndexFundFactory.sol","contracts/interfaces/IMarketDataFetcher.sol","contracts/interfaces/ISwapsManager.sol","contracts/lib/IndexFundStateManagement.sol","contracts/marketData/MarketDataFetcher.sol","contracts/swaps/SwapsManager.sol","lib/chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol","lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20Wrapped.sol","lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20Wrapped.sol","lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol","lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol","lib/httpz-contracts/contracts/utils/EncryptedErrors.sol","lib/httpz-contracts/contracts/utils/TFHEErrors.sol","lib/openzeppelin-contracts/contracts/access/AccessControl.sol","lib/openzeppelin-contracts/contracts/access/IAccessControl.sol","lib/openzeppelin-contracts/contracts/access/Ownable.sol","lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol","lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol","lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol","lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol","lib/openzeppelin-contracts/contracts/utils/Address.sol","lib/openzeppelin-contracts/contracts/utils/Context.sol","lib/openzeppelin-contracts/contracts/utils/Errors.sol","lib/openzeppelin-contracts/contracts/utils/Panic.sol","lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol","lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol","lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","lib/openzeppelin-contracts/contracts/utils/Strings.sol","lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol","lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","lib/openzeppelin-contracts/contracts/utils/math/Math.sol","lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol","lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol","lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol","lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol","lib/permit2/lib/solmate/src/tokens/ERC20.sol","lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol","lib/permit2/src/interfaces/IAllowanceTransfer.sol","lib/permit2/src/interfaces/IEIP712.sol","lib/permit2/src/interfaces/IPermit2.sol","lib/permit2/src/interfaces/ISignatureTransfer.sol","lib/permit2/src/libraries/SafeCast160.sol","lib/universal-router.git/contracts/UniversalRouter.sol","lib/universal-router.git/contracts/base/Dispatcher.sol","lib/universal-router.git/contracts/base/Lock.sol","lib/universal-router.git/contracts/interfaces/IUniversalRouter.sol","lib/universal-router.git/contracts/libraries/Commands.sol","lib/universal-router.git/contracts/libraries/Constants.sol","lib/universal-router.git/contracts/libraries/Locker.sol","lib/universal-router.git/contracts/libraries/MaxInputAmount.sol","lib/universal-router.git/contracts/modules/MigratorImmutables.sol","lib/universal-router.git/contracts/modules/Payments.sol","lib/universal-router.git/contracts/modules/PaymentsImmutables.sol","lib/universal-router.git/contracts/modules/Permit2Payments.sol","lib/universal-router.git/contracts/modules/V3ToV4Migrator.sol","lib/universal-router.git/contracts/modules/uniswap/UniswapImmutables.sol","lib/universal-router.git/contracts/modules/uniswap/v2/UniswapV2Library.sol","lib/universal-router.git/contracts/modules/uniswap/v2/V2SwapRouter.sol","lib/universal-router.git/contracts/modules/uniswap/v3/BytesLib.sol","lib/universal-router.git/contracts/modules/uniswap/v3/V3Path.sol","lib/universal-router.git/contracts/modules/uniswap/v3/V3SwapRouter.sol","lib/universal-router.git/contracts/modules/uniswap/v4/V4SwapRouter.sol","lib/universal-router.git/contracts/types/RouterParameters.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IERC721Permit.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryPayments.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPoolInitializer.sol","lib/universal-router.git/lib/v3-periphery/contracts/libraries/PoolAddress.sol","lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol","lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol","lib/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol","lib/v3-core/contracts/libraries/SafeCast.sol","lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/callback/IUnlockCallback.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/BitMath.sol","lib/v4-core/src/libraries/CurrencyReserves.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/FixedPoint128.sol","lib/v4-core/src/libraries/FullMath.sol","lib/v4-core/src/libraries/LiquidityMath.sol","lib/v4-core/src/libraries/Lock.sol","lib/v4-core/src/libraries/NonzeroDeltaCount.sol","lib/v4-core/src/libraries/Position.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/libraries/StateLibrary.sol","lib/v4-core/src/libraries/TickMath.sol","lib/v4-core/src/libraries/TransientStateLibrary.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/V4Router.sol","lib/v4-periphery/src/base/BaseActionsRouter.sol","lib/v4-periphery/src/base/DeltaResolver.sol","lib/v4-periphery/src/base/ImmutableState.sol","lib/v4-periphery/src/base/SafeCallback.sol","lib/v4-periphery/src/interfaces/IEIP712_v4.sol","lib/v4-periphery/src/interfaces/IERC721Permit_v4.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol","lib/v4-periphery/src/interfaces/IMulticall_v4.sol","lib/v4-periphery/src/interfaces/INotifier.sol","lib/v4-periphery/src/interfaces/IPermit2Forwarder.sol","lib/v4-periphery/src/interfaces/IPoolInitializer_v4.sol","lib/v4-periphery/src/interfaces/IPositionManager.sol","lib/v4-periphery/src/interfaces/ISubscriber.sol","lib/v4-periphery/src/interfaces/IUnorderedNonce.sol","lib/v4-periphery/src/interfaces/IV4Router.sol","lib/v4-periphery/src/interfaces/external/IWETH9.sol","lib/v4-periphery/src/libraries/ActionConstants.sol","lib/v4-periphery/src/libraries/Actions.sol","lib/v4-periphery/src/libraries/BipsLibrary.sol","lib/v4-periphery/src/libraries/CalldataDecoder.sol","lib/v4-periphery/src/libraries/PathKey.sol","lib/v4-periphery/src/libraries/PositionInfoLibrary.sol","node_modules/fhevm/config/ZamaFHEVMConfig.sol","node_modules/fhevm/config/ZamaGatewayConfig.sol","node_modules/fhevm/gateway/GatewayCaller.sol","node_modules/fhevm/gateway/lib/Gateway.sol","node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"=0.8.26","artifacts":{"IndexFundFactory":{"0.8.26":{"path":"IndexFundFactory.sol/IndexFundFactory.json","build_id":"6c6cc69ac3acdbb7e76597baa51096f4"}}},"seenByCompiler":true},"contracts/IndexFundToken.sol":{"lastModificationDate":1747699996957,"contentHash":"0357f7fe64a2fd60b612208f41de82fd","sourceName":"contracts/IndexFundToken.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol","lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol","lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol","lib/httpz-contracts/contracts/utils/EncryptedErrors.sol","lib/httpz-contracts/contracts/utils/TFHEErrors.sol","lib/openzeppelin-contracts/contracts/access/Ownable.sol","lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","lib/openzeppelin-contracts/contracts/utils/Context.sol","node_modules/fhevm/config/ZamaFHEVMConfig.sol","node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"=0.8.26","artifacts":{"IndexFundToken":{"0.8.26":{"path":"IndexFundToken.sol/IndexFundToken.json","build_id":"6c6cc69ac3acdbb7e76597baa51096f4"}}},"seenByCompiler":true},"contracts/TestAsyncDecrypt.sol":{"lastModificationDate":1742925377880,"contentHash":"41392a77ea452309b184f1e7bddcdc88","sourceName":"contracts/TestAsyncDecrypt.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["node_modules/fhevm/config/ZamaFHEVMConfig.sol","node_modules/fhevm/config/ZamaGatewayConfig.sol","node_modules/fhevm/gateway/GatewayCaller.sol","node_modules/fhevm/gateway/lib/Gateway.sol","node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"^0.8.24","artifacts":{"TestAsyncDecrypt":{"0.8.26":{"path":"TestAsyncDecrypt.sol/TestAsyncDecrypt.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"contracts/interfaces/IIndexFund.sol":{"lastModificationDate":1747697755253,"contentHash":"5aad1cfad14e6040ad4eb66505c32acd","sourceName":"contracts/interfaces/IIndexFund.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol","contracts/IndexFundToken.sol","lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20Wrapped.sol","lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20Wrapped.sol","lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol","lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol","lib/httpz-contracts/contracts/utils/EncryptedErrors.sol","lib/httpz-contracts/contracts/utils/TFHEErrors.sol","lib/openzeppelin-contracts/contracts/access/Ownable.sol","lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","lib/openzeppelin-contracts/contracts/utils/Context.sol","lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol","lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","node_modules/fhevm/config/ZamaFHEVMConfig.sol","node_modules/fhevm/gateway/GatewayCaller.sol","node_modules/fhevm/gateway/lib/Gateway.sol","node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"=0.8.26","artifacts":{"IIndexFund":{"0.8.26":{"path":"IIndexFund.sol/IIndexFund.json","build_id":"6c6cc69ac3acdbb7e76597baa51096f4"}}},"seenByCompiler":true},"contracts/interfaces/IIndexFundFactory.sol":{"lastModificationDate":1745016278633,"contentHash":"c8e77ef4cfaeacd4e911f18fca13804f","sourceName":"contracts/interfaces/IIndexFundFactory.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"],"versionRequirement":"=0.8.26","artifacts":{"IIndexFundFactory":{"0.8.26":{"path":"IIndexFundFactory.sol/IIndexFundFactory.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"contracts/interfaces/IMarketDataFetcher.sol":{"lastModificationDate":1743617687976,"contentHash":"c43dfda00cb81d32d6e53085d4468c55","sourceName":"contracts/interfaces/IMarketDataFetcher.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol"],"versionRequirement":"=0.8.26","artifacts":{"IMarketDataFetcher":{"0.8.26":{"path":"IMarketDataFetcher.sol/IMarketDataFetcher.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"contracts/interfaces/ISwapsManager.sol":{"lastModificationDate":1744910299890,"contentHash":"50bb46c3fbd4b1cd595a066584087078","sourceName":"contracts/interfaces/ISwapsManager.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol"],"versionRequirement":"=0.8.26","artifacts":{"ISwapsManager":{"0.8.26":{"path":"ISwapsManager.sol/ISwapsManager.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"contracts/lib/IndexFundStateManagement.sol":{"lastModificationDate":1747699505166,"contentHash":"847aec7e2e7c3c4cf84b2e81fc28b794","sourceName":"contracts/lib/IndexFundStateManagement.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["contracts/ConfidentialIndexFund.sol","contracts/ERC20Encryption/ConfidentialERC20Base.sol","contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol","contracts/ERC20Encryption/ConfidentialERC20WithErrorsWrapped.sol","contracts/ERC20Encryption/CustomConfidentialERC20WithErrors.sol","contracts/ERC20Encryption/CustomConfidentialERC20Wrapped.sol","contracts/IndexFundFactory.sol","contracts/IndexFundToken.sol","contracts/interfaces/IIndexFund.sol","contracts/interfaces/IIndexFundFactory.sol","contracts/interfaces/IMarketDataFetcher.sol","contracts/interfaces/ISwapsManager.sol","contracts/lib/IndexFundStateManagement.sol","contracts/marketData/MarketDataFetcher.sol","contracts/swaps/SwapsManager.sol","lib/chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol","lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20Wrapped.sol","lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20Wrapped.sol","lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol","lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol","lib/httpz-contracts/contracts/utils/EncryptedErrors.sol","lib/httpz-contracts/contracts/utils/TFHEErrors.sol","lib/openzeppelin-contracts/contracts/access/AccessControl.sol","lib/openzeppelin-contracts/contracts/access/IAccessControl.sol","lib/openzeppelin-contracts/contracts/access/Ownable.sol","lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol","lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol","lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol","lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol","lib/openzeppelin-contracts/contracts/utils/Address.sol","lib/openzeppelin-contracts/contracts/utils/Context.sol","lib/openzeppelin-contracts/contracts/utils/Errors.sol","lib/openzeppelin-contracts/contracts/utils/Panic.sol","lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol","lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol","lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","lib/openzeppelin-contracts/contracts/utils/Strings.sol","lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol","lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","lib/openzeppelin-contracts/contracts/utils/math/Math.sol","lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol","lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol","lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol","lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol","lib/permit2/lib/solmate/src/tokens/ERC20.sol","lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol","lib/permit2/src/interfaces/IAllowanceTransfer.sol","lib/permit2/src/interfaces/IEIP712.sol","lib/permit2/src/interfaces/IPermit2.sol","lib/permit2/src/interfaces/ISignatureTransfer.sol","lib/permit2/src/libraries/SafeCast160.sol","lib/universal-router.git/contracts/UniversalRouter.sol","lib/universal-router.git/contracts/base/Dispatcher.sol","lib/universal-router.git/contracts/base/Lock.sol","lib/universal-router.git/contracts/interfaces/IUniversalRouter.sol","lib/universal-router.git/contracts/libraries/Commands.sol","lib/universal-router.git/contracts/libraries/Constants.sol","lib/universal-router.git/contracts/libraries/Locker.sol","lib/universal-router.git/contracts/libraries/MaxInputAmount.sol","lib/universal-router.git/contracts/modules/MigratorImmutables.sol","lib/universal-router.git/contracts/modules/Payments.sol","lib/universal-router.git/contracts/modules/PaymentsImmutables.sol","lib/universal-router.git/contracts/modules/Permit2Payments.sol","lib/universal-router.git/contracts/modules/V3ToV4Migrator.sol","lib/universal-router.git/contracts/modules/uniswap/UniswapImmutables.sol","lib/universal-router.git/contracts/modules/uniswap/v2/UniswapV2Library.sol","lib/universal-router.git/contracts/modules/uniswap/v2/V2SwapRouter.sol","lib/universal-router.git/contracts/modules/uniswap/v3/BytesLib.sol","lib/universal-router.git/contracts/modules/uniswap/v3/V3Path.sol","lib/universal-router.git/contracts/modules/uniswap/v3/V3SwapRouter.sol","lib/universal-router.git/contracts/modules/uniswap/v4/V4SwapRouter.sol","lib/universal-router.git/contracts/types/RouterParameters.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IERC721Permit.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryPayments.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPoolInitializer.sol","lib/universal-router.git/lib/v3-periphery/contracts/libraries/PoolAddress.sol","lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol","lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol","lib/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol","lib/v3-core/contracts/libraries/SafeCast.sol","lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/callback/IUnlockCallback.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/BitMath.sol","lib/v4-core/src/libraries/CurrencyReserves.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/FixedPoint128.sol","lib/v4-core/src/libraries/FullMath.sol","lib/v4-core/src/libraries/LiquidityMath.sol","lib/v4-core/src/libraries/Lock.sol","lib/v4-core/src/libraries/NonzeroDeltaCount.sol","lib/v4-core/src/libraries/Position.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/libraries/StateLibrary.sol","lib/v4-core/src/libraries/TickMath.sol","lib/v4-core/src/libraries/TransientStateLibrary.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/V4Router.sol","lib/v4-periphery/src/base/BaseActionsRouter.sol","lib/v4-periphery/src/base/DeltaResolver.sol","lib/v4-periphery/src/base/ImmutableState.sol","lib/v4-periphery/src/base/SafeCallback.sol","lib/v4-periphery/src/interfaces/IEIP712_v4.sol","lib/v4-periphery/src/interfaces/IERC721Permit_v4.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol","lib/v4-periphery/src/interfaces/IMulticall_v4.sol","lib/v4-periphery/src/interfaces/INotifier.sol","lib/v4-periphery/src/interfaces/IPermit2Forwarder.sol","lib/v4-periphery/src/interfaces/IPoolInitializer_v4.sol","lib/v4-periphery/src/interfaces/IPositionManager.sol","lib/v4-periphery/src/interfaces/ISubscriber.sol","lib/v4-periphery/src/interfaces/IUnorderedNonce.sol","lib/v4-periphery/src/interfaces/IV4Router.sol","lib/v4-periphery/src/interfaces/external/IWETH9.sol","lib/v4-periphery/src/libraries/ActionConstants.sol","lib/v4-periphery/src/libraries/Actions.sol","lib/v4-periphery/src/libraries/BipsLibrary.sol","lib/v4-periphery/src/libraries/CalldataDecoder.sol","lib/v4-periphery/src/libraries/PathKey.sol","lib/v4-periphery/src/libraries/PositionInfoLibrary.sol","node_modules/fhevm/config/ZamaFHEVMConfig.sol","node_modules/fhevm/config/ZamaGatewayConfig.sol","node_modules/fhevm/gateway/GatewayCaller.sol","node_modules/fhevm/gateway/lib/Gateway.sol","node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"^0.8.24","artifacts":{"IndexFundStateManagement":{"0.8.26":{"path":"IndexFundStateManagement.sol/IndexFundStateManagement.json","build_id":"6c6cc69ac3acdbb7e76597baa51096f4"}}},"seenByCompiler":true},"contracts/marketData/MarketDataFetcher.sol":{"lastModificationDate":1747699880109,"contentHash":"b81b3299d0db0cf79fb181ff708d8dcf","sourceName":"contracts/marketData/MarketDataFetcher.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["contracts/interfaces/IMarketDataFetcher.sol","lib/chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol","lib/openzeppelin-contracts/contracts/access/Ownable.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","lib/openzeppelin-contracts/contracts/utils/Context.sol","lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol"],"versionRequirement":"=0.8.26","artifacts":{"MarketDataFetcher":{"0.8.26":{"path":"MarketDataFetcher.sol/MarketDataFetcher.json","build_id":"6c6cc69ac3acdbb7e76597baa51096f4"}}},"seenByCompiler":true},"contracts/mocks/MockMarketDataFetcher.sol":{"lastModificationDate":1746935365146,"contentHash":"bd00426190d6c3023eaa7dadf1a6897b","sourceName":"contracts/mocks/MockMarketDataFetcher.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"=0.8.26","artifacts":{"MockMarketDataFetcher":{"0.8.26":{"path":"MockMarketDataFetcher.sol/MockMarketDataFetcher.json","build_id":"c9c371a10fdf476c3d80cbfb9ab3fb34"}}},"seenByCompiler":true},"contracts/mocks/MockSwapsManager.sol":{"lastModificationDate":1746657185327,"contentHash":"f9928a6979a5e82c35edec64c7ddfa67","sourceName":"contracts/mocks/MockSwapsManager.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol"],"versionRequirement":"=0.8.26","artifacts":{"MockSwapsManager":{"0.8.26":{"path":"MockSwapsManager.sol/MockSwapsManager.json","build_id":"c9c371a10fdf476c3d80cbfb9ab3fb34"}}},"seenByCompiler":true},"contracts/swaps/SwapsManager.sol":{"lastModificationDate":1747699813361,"contentHash":"2cb480770b52acfa58db8da175bbf647","sourceName":"contracts/swaps/SwapsManager.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["contracts/interfaces/ISwapsManager.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol","lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol","lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol","lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol","lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol","lib/openzeppelin-contracts/contracts/utils/Address.sol","lib/openzeppelin-contracts/contracts/utils/Errors.sol","lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol","lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol","lib/permit2/lib/solmate/src/tokens/ERC20.sol","lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol","lib/permit2/src/interfaces/IAllowanceTransfer.sol","lib/permit2/src/interfaces/IEIP712.sol","lib/permit2/src/interfaces/IPermit2.sol","lib/permit2/src/interfaces/ISignatureTransfer.sol","lib/permit2/src/libraries/SafeCast160.sol","lib/universal-router.git/contracts/UniversalRouter.sol","lib/universal-router.git/contracts/base/Dispatcher.sol","lib/universal-router.git/contracts/base/Lock.sol","lib/universal-router.git/contracts/interfaces/IUniversalRouter.sol","lib/universal-router.git/contracts/libraries/Commands.sol","lib/universal-router.git/contracts/libraries/Constants.sol","lib/universal-router.git/contracts/libraries/Locker.sol","lib/universal-router.git/contracts/libraries/MaxInputAmount.sol","lib/universal-router.git/contracts/modules/MigratorImmutables.sol","lib/universal-router.git/contracts/modules/Payments.sol","lib/universal-router.git/contracts/modules/PaymentsImmutables.sol","lib/universal-router.git/contracts/modules/Permit2Payments.sol","lib/universal-router.git/contracts/modules/V3ToV4Migrator.sol","lib/universal-router.git/contracts/modules/uniswap/UniswapImmutables.sol","lib/universal-router.git/contracts/modules/uniswap/v2/UniswapV2Library.sol","lib/universal-router.git/contracts/modules/uniswap/v2/V2SwapRouter.sol","lib/universal-router.git/contracts/modules/uniswap/v3/BytesLib.sol","lib/universal-router.git/contracts/modules/uniswap/v3/V3Path.sol","lib/universal-router.git/contracts/modules/uniswap/v3/V3SwapRouter.sol","lib/universal-router.git/contracts/modules/uniswap/v4/V4SwapRouter.sol","lib/universal-router.git/contracts/types/RouterParameters.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IERC721Permit.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryPayments.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPoolInitializer.sol","lib/universal-router.git/lib/v3-periphery/contracts/libraries/PoolAddress.sol","lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol","lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol","lib/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol","lib/v3-core/contracts/libraries/SafeCast.sol","lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/callback/IUnlockCallback.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/BitMath.sol","lib/v4-core/src/libraries/CurrencyReserves.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/FixedPoint128.sol","lib/v4-core/src/libraries/FullMath.sol","lib/v4-core/src/libraries/LiquidityMath.sol","lib/v4-core/src/libraries/Lock.sol","lib/v4-core/src/libraries/NonzeroDeltaCount.sol","lib/v4-core/src/libraries/Position.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/libraries/StateLibrary.sol","lib/v4-core/src/libraries/TickMath.sol","lib/v4-core/src/libraries/TransientStateLibrary.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/V4Router.sol","lib/v4-periphery/src/base/BaseActionsRouter.sol","lib/v4-periphery/src/base/DeltaResolver.sol","lib/v4-periphery/src/base/ImmutableState.sol","lib/v4-periphery/src/base/SafeCallback.sol","lib/v4-periphery/src/interfaces/IEIP712_v4.sol","lib/v4-periphery/src/interfaces/IERC721Permit_v4.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol","lib/v4-periphery/src/interfaces/IMulticall_v4.sol","lib/v4-periphery/src/interfaces/INotifier.sol","lib/v4-periphery/src/interfaces/IPermit2Forwarder.sol","lib/v4-periphery/src/interfaces/IPoolInitializer_v4.sol","lib/v4-periphery/src/interfaces/IPositionManager.sol","lib/v4-periphery/src/interfaces/ISubscriber.sol","lib/v4-periphery/src/interfaces/IUnorderedNonce.sol","lib/v4-periphery/src/interfaces/IV4Router.sol","lib/v4-periphery/src/interfaces/external/IWETH9.sol","lib/v4-periphery/src/libraries/ActionConstants.sol","lib/v4-periphery/src/libraries/Actions.sol","lib/v4-periphery/src/libraries/BipsLibrary.sol","lib/v4-periphery/src/libraries/CalldataDecoder.sol","lib/v4-periphery/src/libraries/PathKey.sol","lib/v4-periphery/src/libraries/PositionInfoLibrary.sol"],"versionRequirement":"=0.8.26","artifacts":{"SwapsManager":{"0.8.26":{"path":"SwapsManager.sol/SwapsManager.json","build_id":"6c6cc69ac3acdbb7e76597baa51096f4"}}},"seenByCompiler":true},"contracts/test/testERC20.sol":{"lastModificationDate":1747697800017,"contentHash":"dd1fb5e595323eb0646eb0eb7cb53cbf","sourceName":"contracts/test/testERC20.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/access/Ownable.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","lib/openzeppelin-contracts/contracts/utils/Context.sol"],"versionRequirement":"=0.8.26","artifacts":{"TestErc20":{"0.8.26":{"path":"testERC20.sol/TestErc20.json","build_id":"6c6cc69ac3acdbb7e76597baa51096f4"}}},"seenByCompiler":true},"lib/chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol":{"lastModificationDate":1743603987567,"contentHash":"64a3f906dc7696aa3c9fa8454b673be7","sourceName":"lib/chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.0","artifacts":{"AggregatorV3Interface":{"0.8.26":{"path":"AggregatorV3Interface.sol/AggregatorV3Interface.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol":{"lastModificationDate":1744576853730,"contentHash":"d09c98b3f8e3039c507370ade9264bd0","sourceName":"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol","lib/httpz-contracts/contracts/utils/TFHEErrors.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"^0.8.24","artifacts":{"ConfidentialERC20":{"0.8.26":{"path":"ERC20/ConfidentialERC20.sol/ConfidentialERC20.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20Wrapped.sol":{"lastModificationDate":1744576853730,"contentHash":"b99ac759a0e539837df8bc40a69e3be0","sourceName":"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20Wrapped.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20Wrapped.sol","lib/httpz-contracts/contracts/utils/TFHEErrors.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol","lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","node_modules/fhevm/gateway/GatewayCaller.sol","node_modules/fhevm/gateway/lib/Gateway.sol","node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"^0.8.24","artifacts":{"ConfidentialERC20Wrapped":{"0.8.26":{"path":"ConfidentialERC20Wrapped.sol/ConfidentialERC20Wrapped.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol":{"lastModificationDate":1744576853730,"contentHash":"d4c39d351beb2aef9f327b6237d111b9","sourceName":"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"^0.8.24","artifacts":{"IConfidentialERC20":{"0.8.26":{"path":"ERC20/IConfidentialERC20.sol/IConfidentialERC20.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20Wrapped.sol":{"lastModificationDate":1744576853730,"contentHash":"e5acc6bb3dc90acc423afe87064f276a","sourceName":"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20Wrapped.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.24","artifacts":{"IConfidentialERC20Wrapped":{"0.8.26":{"path":"IConfidentialERC20Wrapped.sol/IConfidentialERC20Wrapped.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol":{"lastModificationDate":1744576853730,"contentHash":"26a3faa4d8e9d69c233be9807ec41777","sourceName":"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol","lib/httpz-contracts/contracts/utils/EncryptedErrors.sol","lib/httpz-contracts/contracts/utils/TFHEErrors.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"^0.8.24","artifacts":{"ConfidentialERC20WithErrors":{"0.8.26":{"path":"ConfidentialERC20WithErrors.sol/ConfidentialERC20WithErrors.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol":{"lastModificationDate":1744576853730,"contentHash":"3b35733584b20822c2f431524c63a8ed","sourceName":"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol","lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol","lib/httpz-contracts/contracts/utils/EncryptedErrors.sol","lib/httpz-contracts/contracts/utils/TFHEErrors.sol","lib/openzeppelin-contracts/contracts/access/Ownable.sol","lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","lib/openzeppelin-contracts/contracts/utils/Context.sol","node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"^0.8.24","artifacts":{"ConfidentialERC20WithErrorsMintable":{"0.8.26":{"path":"ConfidentialERC20WithErrorsMintable.sol/ConfidentialERC20WithErrorsMintable.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/httpz-contracts/contracts/utils/EncryptedErrors.sol":{"lastModificationDate":1744576853730,"contentHash":"00722fb5c89ee2b835b8665ae9871b14","sourceName":"lib/httpz-contracts/contracts/utils/EncryptedErrors.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"^0.8.24","artifacts":{"EncryptedErrors":{"0.8.26":{"path":"EncryptedErrors.sol/EncryptedErrors.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/httpz-contracts/contracts/utils/TFHEErrors.sol":{"lastModificationDate":1744576853730,"contentHash":"69c7f60f6e4c79fbb7ef61b1e00195cc","sourceName":"lib/httpz-contracts/contracts/utils/TFHEErrors.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.24","artifacts":{"TFHEErrors":{"0.8.26":{"path":"utils/TFHEErrors.sol/TFHEErrors.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"lastModificationDate":1742172158558,"contentHash":"4c80b7fdf559a9a348e832a57d072a0b","sourceName":"lib/openzeppelin-contracts/contracts/access/AccessControl.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/access/IAccessControl.sol","lib/openzeppelin-contracts/contracts/utils/Context.sol","lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.20","artifacts":{"AccessControl":{"0.8.26":{"path":"AccessControl.sol/AccessControl.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"lastModificationDate":1742172158558,"contentHash":"6f7fac9fa0df6004375e18b7ff7edf4e","sourceName":"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"IAccessControl":{"0.8.26":{"path":"IAccessControl.sol/IAccessControl.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"lastModificationDate":1742172158328,"contentHash":"d3c790edc9ccf808a17c5a6cd13614fd","sourceName":"lib/openzeppelin-contracts/contracts/access/Ownable.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/utils/Context.sol"],"versionRequirement":"^0.8.20","artifacts":{"Ownable":{"0.8.26":{"path":"Ownable.sol/Ownable.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol":{"lastModificationDate":1742172158328,"contentHash":"4c23c95621f1bdfb8c47bcb3795c53e8","sourceName":"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/access/Ownable.sol","lib/openzeppelin-contracts/contracts/utils/Context.sol"],"versionRequirement":"^0.8.20","artifacts":{"Ownable2Step":{"0.8.26":{"path":"Ownable2Step.sol/Ownable2Step.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"lastModificationDate":1742172158333,"contentHash":"6b7c5ee7a59c981072a804c99ab0fac9","sourceName":"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.20","artifacts":{"IERC1363":{"0.8.26":{"path":"IERC1363.sol/IERC1363.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"lastModificationDate":1742172158333,"contentHash":"f808b485ee0cdc6768ee8385ae5f9a2a","sourceName":"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.20","artifacts":{"IERC165":{"0.8.26":{"path":"interfaces/IERC165.sol/IERC165.json","build_id":"a985d2e1396d5561ae0fa076c730217f"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"lastModificationDate":1742172158333,"contentHash":"4e17c826a54a8ee1a185449d4695d07d","sourceName":"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"IERC1967":{"0.8.26":{"path":"IERC1967.sol/IERC1967.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"lastModificationDate":1742172158333,"contentHash":"79af12d64eacc7d77b9ee2ac4b4d51ee","sourceName":"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"],"versionRequirement":"^0.8.20","artifacts":{"IERC20":{"0.8.26":{"path":"interfaces/IERC20.sol/IERC20.json","build_id":"a985d2e1396d5561ae0fa076c730217f"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"lastModificationDate":1742172158335,"contentHash":"64a2b7a96950f0641c477993f3029477","sourceName":"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"IERC1822Proxiable":{"0.8.26":{"path":"draft-IERC1822.sol/IERC1822Proxiable.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"lastModificationDate":1742172158335,"contentHash":"267d92fe4de67b1bdb3302c08f387dbf","sourceName":"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"IERC1155Errors":{"0.8.26":{"path":"draft-IERC6093.sol/IERC1155Errors.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}},"IERC20Errors":{"0.8.26":{"path":"draft-IERC6093.sol/IERC20Errors.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}},"IERC721Errors":{"0.8.26":{"path":"draft-IERC6093.sol/IERC721Errors.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"lastModificationDate":1742172158344,"contentHash":"c023a5b23ee35b40b3085e550ff3367f","sourceName":"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol","lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol","lib/openzeppelin-contracts/contracts/utils/Address.sol","lib/openzeppelin-contracts/contracts/utils/Errors.sol","lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol"],"versionRequirement":"^0.8.22","artifacts":{"ERC1967Utils":{"0.8.26":{"path":"ERC1967Utils.sol/ERC1967Utils.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"lastModificationDate":1742172158344,"contentHash":"0a5c323fd908535580597848b8e550fb","sourceName":"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"IBeacon":{"0.8.26":{"path":"IBeacon.sol/IBeacon.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"lastModificationDate":1742172158562,"contentHash":"227a6eb2225701c12d9c959b758b6333","sourceName":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","lib/openzeppelin-contracts/contracts/utils/Context.sol"],"versionRequirement":"^0.8.20","artifacts":{"ERC20":{"0.8.26":{"path":"ERC20.sol/ERC20.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"lastModificationDate":1742172158346,"contentHash":"8f19f64d2adadf448840908bbaf431c8","sourceName":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"IERC20":{"0.8.26":{"path":"IERC20.sol/IERC20.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Wrapper.sol":{"lastModificationDate":1742172158347,"contentHash":"32a186fda311cf1d8096caa5dc071e2f","sourceName":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Wrapper.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","lib/openzeppelin-contracts/contracts/utils/Context.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.20","artifacts":{"ERC20Wrapper":{"0.8.26":{"path":"ERC20Wrapper.sol/ERC20Wrapper.json","build_id":"a985d2e1396d5561ae0fa076c730217f"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"lastModificationDate":1742172158347,"contentHash":"794db3115001aa372c79326fcfd44b1f","sourceName":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"],"versionRequirement":"^0.8.20","artifacts":{"IERC20Metadata":{"0.8.26":{"path":"IERC20Metadata.sol/IERC20Metadata.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"lastModificationDate":1742172158563,"contentHash":"b6c6348d1c4d3e890f8d8a885b2477c0","sourceName":"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.20","artifacts":{"SafeERC20":{"0.8.26":{"path":"SafeERC20.sol/SafeERC20.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"lastModificationDate":1742172158348,"contentHash":"1fdc621cd6747e8985e11fc76ce74511","sourceName":"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.20","artifacts":{"IERC721":{"0.8.26":{"path":"IERC721.sol/IERC721.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"lastModificationDate":1742172158349,"contentHash":"3fdc14aab706458ae99314f6f7f529a2","sourceName":"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.20","artifacts":{"IERC721Enumerable":{"0.8.26":{"path":"IERC721Enumerable.sol/IERC721Enumerable.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"lastModificationDate":1742172158349,"contentHash":"12c206f185cb951213799561fdcaa40d","sourceName":"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.20","artifacts":{"IERC721Metadata":{"0.8.26":{"path":"IERC721Metadata.sol/IERC721Metadata.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"lastModificationDate":1742172158350,"contentHash":"5b9a49c25d7edbc48ffcbd2c7e8a40ef","sourceName":"lib/openzeppelin-contracts/contracts/utils/Address.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/utils/Errors.sol"],"versionRequirement":"^0.8.20","artifacts":{"Address":{"0.8.26":{"path":"Address.sol/Address.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"lastModificationDate":1742172158351,"contentHash":"67bfbc07588eb8683b3fd8f6f909563e","sourceName":"lib/openzeppelin-contracts/contracts/utils/Context.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"Context":{"0.8.26":{"path":"Context.sol/Context.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"lastModificationDate":1742172158351,"contentHash":"6b5eac2b85500c3012977849cfd633d8","sourceName":"lib/openzeppelin-contracts/contracts/utils/Errors.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"Errors":{"0.8.26":{"path":"Errors.sol/Errors.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"lastModificationDate":1742172158351,"contentHash":"2133dc13536b4a6a98131e431fac59e1","sourceName":"lib/openzeppelin-contracts/contracts/utils/Panic.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"Panic":{"0.8.26":{"path":"Panic.sol/Panic.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol":{"lastModificationDate":1742172158352,"contentHash":"190613e556d509d9e9a0ea43dc5d891d","sourceName":"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"ReentrancyGuard":{"0.8.26":{"path":"ReentrancyGuard.sol/ReentrancyGuard.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol":{"lastModificationDate":1742172158564,"contentHash":"db37d5c90dcd9aac27faa1c8bb6e57a8","sourceName":"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol"],"versionRequirement":"^0.8.24","artifacts":{"ReentrancyGuardTransient":{"0.8.26":{"path":"ReentrancyGuardTransient.sol/ReentrancyGuardTransient.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"lastModificationDate":1742172158352,"contentHash":"e656d64c4ce918f3d13030b91c935134","sourceName":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"StorageSlot":{"0.8.26":{"path":"StorageSlot.sol/StorageSlot.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"lastModificationDate":1742172158565,"contentHash":"a55fef2557b35bac18a1880d3c2e6740","sourceName":"lib/openzeppelin-contracts/contracts/utils/Strings.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/utils/Panic.sol","lib/openzeppelin-contracts/contracts/utils/math/Math.sol","lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol","lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol"],"versionRequirement":"^0.8.20","artifacts":{"Strings":{"0.8.26":{"path":"Strings.sol/Strings.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"lastModificationDate":1742172158565,"contentHash":"76dc5a5e932d47b5ff729bd8e31351b6","sourceName":"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.24","artifacts":{"TransientSlot":{"0.8.26":{"path":"TransientSlot.sol/TransientSlot.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"lastModificationDate":1742172158354,"contentHash":"7c03c1e37c3dc24eafb76dc2b8a5c3a6","sourceName":"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.20","artifacts":{"ERC165":{"0.8.26":{"path":"ERC165.sol/ERC165.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"lastModificationDate":1742172158354,"contentHash":"bf0119eb2a570f219729ff38b6cd1df8","sourceName":"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"IERC165":{"0.8.26":{"path":"IERC165.sol/IERC165.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"lastModificationDate":1742172158566,"contentHash":"2b2665ae9bdb1af440658741a77fe213","sourceName":"lib/openzeppelin-contracts/contracts/utils/math/Math.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/utils/Panic.sol","lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol"],"versionRequirement":"^0.8.20","artifacts":{"Math":{"0.8.26":{"path":"Math.sol/Math.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"lastModificationDate":1742172158354,"contentHash":"2adca1150f58fc6f3d1f0a0f22ee7cca","sourceName":"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"SafeCast":{"0.8.26":{"path":"math/SafeCast.sol/SafeCast.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"lastModificationDate":1742172158354,"contentHash":"ae3528afb8bdb0a7dcfba5b115ee8074","sourceName":"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol"],"versionRequirement":"^0.8.20","artifacts":{"SignedMath":{"0.8.26":{"path":"SignedMath.sol/SignedMath.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"lastModificationDate":1742172086907,"contentHash":"77d30f3cd93f46b80b6f8f1ebc574ee4","sourceName":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol"],"versionRequirement":"^0.8.20","artifacts":{"OwnableUpgradeable":{"0.8.26":{"path":"OwnableUpgradeable.sol/OwnableUpgradeable.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"lastModificationDate":1742172087155,"contentHash":"f0cedd674b4863ee90d1521a92ab82df","sourceName":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"Initializable":{"0.8.26":{"path":"Initializable.sol/Initializable.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol":{"lastModificationDate":1742172087155,"contentHash":"ac3b77dea52cfdb14498e0a306a34b01","sourceName":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol","lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol","lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol","lib/openzeppelin-contracts/contracts/utils/Address.sol","lib/openzeppelin-contracts/contracts/utils/Errors.sol","lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol"],"versionRequirement":"^0.8.22","artifacts":{"UUPSUpgradeable":{"0.8.26":{"path":"UUPSUpgradeable.sol/UUPSUpgradeable.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"lastModificationDate":1742172086924,"contentHash":"c28aaa25d083a9a55bd9ec9e0b785122","sourceName":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol"],"versionRequirement":"^0.8.20","artifacts":{"ContextUpgradeable":{"0.8.26":{"path":"ContextUpgradeable.sol/ContextUpgradeable.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/permit2/lib/solmate/src/tokens/ERC20.sol":{"lastModificationDate":1742172927891,"contentHash":"0c7c7ada139062536af09d69d96d395c","sourceName":"lib/permit2/lib/solmate/src/tokens/ERC20.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.8.0","artifacts":{"ERC20":{"0.8.26":{"path":"tokens/ERC20.sol/ERC20.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol":{"lastModificationDate":1742172927892,"contentHash":"668dd0a8a175344c51036ae7fcb01d36","sourceName":"lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/permit2/lib/solmate/src/tokens/ERC20.sol"],"versionRequirement":">=0.8.0","artifacts":{"SafeTransferLib":{"0.8.26":{"path":"SafeTransferLib.sol/SafeTransferLib.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/permit2/src/interfaces/IAllowanceTransfer.sol":{"lastModificationDate":1742172919909,"contentHash":"06d31910ea7b998cbe0dd20d8cde38e1","sourceName":"lib/permit2/src/interfaces/IAllowanceTransfer.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/permit2/src/interfaces/IEIP712.sol"],"versionRequirement":"^0.8.0","artifacts":{"IAllowanceTransfer":{"0.8.26":{"path":"IAllowanceTransfer.sol/IAllowanceTransfer.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/permit2/src/interfaces/IEIP712.sol":{"lastModificationDate":1742172919910,"contentHash":"24e4255a1510a83f1fc7ee1ec490c2b0","sourceName":"lib/permit2/src/interfaces/IEIP712.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.0","artifacts":{"IEIP712":{"0.8.26":{"path":"IEIP712.sol/IEIP712.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/permit2/src/interfaces/IPermit2.sol":{"lastModificationDate":1742172919910,"contentHash":"1186e406ac0acbb224428a4b1152dbf9","sourceName":"lib/permit2/src/interfaces/IPermit2.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/permit2/src/interfaces/IAllowanceTransfer.sol","lib/permit2/src/interfaces/IEIP712.sol","lib/permit2/src/interfaces/ISignatureTransfer.sol"],"versionRequirement":"^0.8.0","artifacts":{"IPermit2":{"0.8.26":{"path":"IPermit2.sol/IPermit2.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/permit2/src/interfaces/ISignatureTransfer.sol":{"lastModificationDate":1742172919910,"contentHash":"5b4840f0f27510533ad19650d56757dd","sourceName":"lib/permit2/src/interfaces/ISignatureTransfer.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/permit2/src/interfaces/IEIP712.sol"],"versionRequirement":"^0.8.0","artifacts":{"ISignatureTransfer":{"0.8.26":{"path":"ISignatureTransfer.sol/ISignatureTransfer.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/permit2/src/libraries/SafeCast160.sol":{"lastModificationDate":1742172919910,"contentHash":"e814317c3c5f82f1c1afc445efda7e23","sourceName":"lib/permit2/src/libraries/SafeCast160.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.17","artifacts":{"SafeCast160":{"0.8.26":{"path":"SafeCast160.sol/SafeCast160.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/UniversalRouter.sol":{"lastModificationDate":1742173159703,"contentHash":"a8fefd12e018e74df556d9bcb61598d6","sourceName":"lib/universal-router.git/contracts/UniversalRouter.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol","lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","lib/permit2/lib/solmate/src/tokens/ERC20.sol","lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol","lib/permit2/src/interfaces/IAllowanceTransfer.sol","lib/permit2/src/interfaces/IEIP712.sol","lib/permit2/src/interfaces/IPermit2.sol","lib/permit2/src/interfaces/ISignatureTransfer.sol","lib/permit2/src/libraries/SafeCast160.sol","lib/universal-router.git/contracts/base/Dispatcher.sol","lib/universal-router.git/contracts/base/Lock.sol","lib/universal-router.git/contracts/interfaces/IUniversalRouter.sol","lib/universal-router.git/contracts/libraries/Commands.sol","lib/universal-router.git/contracts/libraries/Constants.sol","lib/universal-router.git/contracts/libraries/Locker.sol","lib/universal-router.git/contracts/libraries/MaxInputAmount.sol","lib/universal-router.git/contracts/modules/MigratorImmutables.sol","lib/universal-router.git/contracts/modules/Payments.sol","lib/universal-router.git/contracts/modules/PaymentsImmutables.sol","lib/universal-router.git/contracts/modules/Permit2Payments.sol","lib/universal-router.git/contracts/modules/V3ToV4Migrator.sol","lib/universal-router.git/contracts/modules/uniswap/UniswapImmutables.sol","lib/universal-router.git/contracts/modules/uniswap/v2/UniswapV2Library.sol","lib/universal-router.git/contracts/modules/uniswap/v2/V2SwapRouter.sol","lib/universal-router.git/contracts/modules/uniswap/v3/BytesLib.sol","lib/universal-router.git/contracts/modules/uniswap/v3/V3Path.sol","lib/universal-router.git/contracts/modules/uniswap/v3/V3SwapRouter.sol","lib/universal-router.git/contracts/modules/uniswap/v4/V4SwapRouter.sol","lib/universal-router.git/contracts/types/RouterParameters.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IERC721Permit.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryPayments.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPoolInitializer.sol","lib/universal-router.git/lib/v3-periphery/contracts/libraries/PoolAddress.sol","lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol","lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol","lib/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol","lib/v3-core/contracts/libraries/SafeCast.sol","lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/callback/IUnlockCallback.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/BitMath.sol","lib/v4-core/src/libraries/CurrencyReserves.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/Lock.sol","lib/v4-core/src/libraries/NonzeroDeltaCount.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/libraries/TickMath.sol","lib/v4-core/src/libraries/TransientStateLibrary.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/V4Router.sol","lib/v4-periphery/src/base/BaseActionsRouter.sol","lib/v4-periphery/src/base/DeltaResolver.sol","lib/v4-periphery/src/base/ImmutableState.sol","lib/v4-periphery/src/base/SafeCallback.sol","lib/v4-periphery/src/interfaces/IEIP712_v4.sol","lib/v4-periphery/src/interfaces/IERC721Permit_v4.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol","lib/v4-periphery/src/interfaces/IMulticall_v4.sol","lib/v4-periphery/src/interfaces/INotifier.sol","lib/v4-periphery/src/interfaces/IPermit2Forwarder.sol","lib/v4-periphery/src/interfaces/IPoolInitializer_v4.sol","lib/v4-periphery/src/interfaces/IPositionManager.sol","lib/v4-periphery/src/interfaces/ISubscriber.sol","lib/v4-periphery/src/interfaces/IUnorderedNonce.sol","lib/v4-periphery/src/interfaces/IV4Router.sol","lib/v4-periphery/src/interfaces/external/IWETH9.sol","lib/v4-periphery/src/libraries/ActionConstants.sol","lib/v4-periphery/src/libraries/Actions.sol","lib/v4-periphery/src/libraries/BipsLibrary.sol","lib/v4-periphery/src/libraries/CalldataDecoder.sol","lib/v4-periphery/src/libraries/PathKey.sol","lib/v4-periphery/src/libraries/PositionInfoLibrary.sol"],"versionRequirement":"^0.8.24","artifacts":{"UniversalRouter":{"0.8.26":{"path":"UniversalRouter.sol/UniversalRouter.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/base/Dispatcher.sol":{"lastModificationDate":1742173159703,"contentHash":"7a1897f700ccc5c200ef67521c2c3bfe","sourceName":"lib/universal-router.git/contracts/base/Dispatcher.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol","lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","lib/permit2/lib/solmate/src/tokens/ERC20.sol","lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol","lib/permit2/src/interfaces/IAllowanceTransfer.sol","lib/permit2/src/interfaces/IEIP712.sol","lib/permit2/src/interfaces/IPermit2.sol","lib/permit2/src/interfaces/ISignatureTransfer.sol","lib/permit2/src/libraries/SafeCast160.sol","lib/universal-router.git/contracts/base/Lock.sol","lib/universal-router.git/contracts/libraries/Commands.sol","lib/universal-router.git/contracts/libraries/Constants.sol","lib/universal-router.git/contracts/libraries/Locker.sol","lib/universal-router.git/contracts/libraries/MaxInputAmount.sol","lib/universal-router.git/contracts/modules/MigratorImmutables.sol","lib/universal-router.git/contracts/modules/Payments.sol","lib/universal-router.git/contracts/modules/PaymentsImmutables.sol","lib/universal-router.git/contracts/modules/Permit2Payments.sol","lib/universal-router.git/contracts/modules/V3ToV4Migrator.sol","lib/universal-router.git/contracts/modules/uniswap/UniswapImmutables.sol","lib/universal-router.git/contracts/modules/uniswap/v2/UniswapV2Library.sol","lib/universal-router.git/contracts/modules/uniswap/v2/V2SwapRouter.sol","lib/universal-router.git/contracts/modules/uniswap/v3/BytesLib.sol","lib/universal-router.git/contracts/modules/uniswap/v3/V3Path.sol","lib/universal-router.git/contracts/modules/uniswap/v3/V3SwapRouter.sol","lib/universal-router.git/contracts/modules/uniswap/v4/V4SwapRouter.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IERC721Permit.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryPayments.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPoolInitializer.sol","lib/universal-router.git/lib/v3-periphery/contracts/libraries/PoolAddress.sol","lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol","lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol","lib/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol","lib/v3-core/contracts/libraries/SafeCast.sol","lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/callback/IUnlockCallback.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/BitMath.sol","lib/v4-core/src/libraries/CurrencyReserves.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/Lock.sol","lib/v4-core/src/libraries/NonzeroDeltaCount.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/libraries/TickMath.sol","lib/v4-core/src/libraries/TransientStateLibrary.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/V4Router.sol","lib/v4-periphery/src/base/BaseActionsRouter.sol","lib/v4-periphery/src/base/DeltaResolver.sol","lib/v4-periphery/src/base/ImmutableState.sol","lib/v4-periphery/src/base/SafeCallback.sol","lib/v4-periphery/src/interfaces/IEIP712_v4.sol","lib/v4-periphery/src/interfaces/IERC721Permit_v4.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol","lib/v4-periphery/src/interfaces/IMulticall_v4.sol","lib/v4-periphery/src/interfaces/INotifier.sol","lib/v4-periphery/src/interfaces/IPermit2Forwarder.sol","lib/v4-periphery/src/interfaces/IPoolInitializer_v4.sol","lib/v4-periphery/src/interfaces/IPositionManager.sol","lib/v4-periphery/src/interfaces/ISubscriber.sol","lib/v4-periphery/src/interfaces/IUnorderedNonce.sol","lib/v4-periphery/src/interfaces/IV4Router.sol","lib/v4-periphery/src/interfaces/external/IWETH9.sol","lib/v4-periphery/src/libraries/ActionConstants.sol","lib/v4-periphery/src/libraries/Actions.sol","lib/v4-periphery/src/libraries/BipsLibrary.sol","lib/v4-periphery/src/libraries/CalldataDecoder.sol","lib/v4-periphery/src/libraries/PathKey.sol","lib/v4-periphery/src/libraries/PositionInfoLibrary.sol"],"versionRequirement":"^0.8.24","artifacts":{"Dispatcher":{"0.8.26":{"path":"Dispatcher.sol/Dispatcher.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/base/Lock.sol":{"lastModificationDate":1742173159703,"contentHash":"f516f63276619049604b380812310057","sourceName":"lib/universal-router.git/contracts/base/Lock.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/universal-router.git/contracts/libraries/Locker.sol"],"versionRequirement":"^0.8.24","artifacts":{"Lock":{"0.8.26":{"path":"Lock.sol/Lock.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/interfaces/IUniversalRouter.sol":{"lastModificationDate":1742173159703,"contentHash":"62d5b5e75e306d1f1816b2741131f9e7","sourceName":"lib/universal-router.git/contracts/interfaces/IUniversalRouter.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.24","artifacts":{"IUniversalRouter":{"0.8.26":{"path":"IUniversalRouter.sol/IUniversalRouter.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/libraries/Commands.sol":{"lastModificationDate":1742173159704,"contentHash":"72f2d8f8145763d937317341d3bb4f59","sourceName":"lib/universal-router.git/contracts/libraries/Commands.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.24","artifacts":{"Commands":{"0.8.26":{"path":"Commands.sol/Commands.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/libraries/Constants.sol":{"lastModificationDate":1742173159704,"contentHash":"5549ab481b2a2b93aaac6f8dfb39881d","sourceName":"lib/universal-router.git/contracts/libraries/Constants.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.24","artifacts":{"Constants":{"0.8.26":{"path":"Constants.sol/Constants.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/libraries/Locker.sol":{"lastModificationDate":1742173159704,"contentHash":"f6279d84cc68d03a89821cfcb8d4a788","sourceName":"lib/universal-router.git/contracts/libraries/Locker.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.24","artifacts":{"Locker":{"0.8.26":{"path":"Locker.sol/Locker.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/libraries/MaxInputAmount.sol":{"lastModificationDate":1742173159704,"contentHash":"47e75f674783e1ca3715a3ea9f764014","sourceName":"lib/universal-router.git/contracts/libraries/MaxInputAmount.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.24","artifacts":{"MaxInputAmount":{"0.8.26":{"path":"MaxInputAmount.sol/MaxInputAmount.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/modules/MigratorImmutables.sol":{"lastModificationDate":1742173159704,"contentHash":"53bc81bb2867e2d12e8b3c9282f7dfe9","sourceName":"lib/universal-router.git/contracts/modules/MigratorImmutables.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol","lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","lib/permit2/src/interfaces/IAllowanceTransfer.sol","lib/permit2/src/interfaces/IEIP712.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IERC721Permit.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryPayments.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPoolInitializer.sol","lib/universal-router.git/lib/v3-periphery/contracts/libraries/PoolAddress.sol","lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/interfaces/IEIP712_v4.sol","lib/v4-periphery/src/interfaces/IERC721Permit_v4.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol","lib/v4-periphery/src/interfaces/IMulticall_v4.sol","lib/v4-periphery/src/interfaces/INotifier.sol","lib/v4-periphery/src/interfaces/IPermit2Forwarder.sol","lib/v4-periphery/src/interfaces/IPoolInitializer_v4.sol","lib/v4-periphery/src/interfaces/IPositionManager.sol","lib/v4-periphery/src/interfaces/ISubscriber.sol","lib/v4-periphery/src/interfaces/IUnorderedNonce.sol","lib/v4-periphery/src/libraries/PositionInfoLibrary.sol"],"versionRequirement":"^0.8.24","artifacts":{"MigratorImmutables":{"0.8.26":{"path":"MigratorImmutables.sol/MigratorImmutables.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/modules/Payments.sol":{"lastModificationDate":1742173159704,"contentHash":"2fc257c2c165e039e17d5911d9647cce","sourceName":"lib/universal-router.git/contracts/modules/Payments.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/permit2/lib/solmate/src/tokens/ERC20.sol","lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol","lib/permit2/src/interfaces/IAllowanceTransfer.sol","lib/permit2/src/interfaces/IEIP712.sol","lib/permit2/src/interfaces/IPermit2.sol","lib/permit2/src/interfaces/ISignatureTransfer.sol","lib/universal-router.git/contracts/libraries/Constants.sol","lib/universal-router.git/contracts/modules/PaymentsImmutables.sol","lib/v4-periphery/src/interfaces/external/IWETH9.sol","lib/v4-periphery/src/libraries/ActionConstants.sol","lib/v4-periphery/src/libraries/BipsLibrary.sol"],"versionRequirement":"^0.8.24","artifacts":{"Payments":{"0.8.26":{"path":"Payments.sol/Payments.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/modules/PaymentsImmutables.sol":{"lastModificationDate":1742173159704,"contentHash":"a97e4acdec22b22fdc4915e7c8f7cfb4","sourceName":"lib/universal-router.git/contracts/modules/PaymentsImmutables.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/permit2/src/interfaces/IAllowanceTransfer.sol","lib/permit2/src/interfaces/IEIP712.sol","lib/permit2/src/interfaces/IPermit2.sol","lib/permit2/src/interfaces/ISignatureTransfer.sol","lib/v4-periphery/src/interfaces/external/IWETH9.sol"],"versionRequirement":"^0.8.24","artifacts":{"PaymentsImmutables":{"0.8.26":{"path":"PaymentsImmutables.sol/PaymentsImmutables.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/modules/Permit2Payments.sol":{"lastModificationDate":1742173159704,"contentHash":"cce79fd2a3940cb7a67eacc255ebf8df","sourceName":"lib/universal-router.git/contracts/modules/Permit2Payments.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/permit2/lib/solmate/src/tokens/ERC20.sol","lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol","lib/permit2/src/interfaces/IAllowanceTransfer.sol","lib/permit2/src/interfaces/IEIP712.sol","lib/permit2/src/interfaces/IPermit2.sol","lib/permit2/src/interfaces/ISignatureTransfer.sol","lib/permit2/src/libraries/SafeCast160.sol","lib/universal-router.git/contracts/libraries/Constants.sol","lib/universal-router.git/contracts/modules/Payments.sol","lib/universal-router.git/contracts/modules/PaymentsImmutables.sol","lib/v4-periphery/src/interfaces/external/IWETH9.sol","lib/v4-periphery/src/libraries/ActionConstants.sol","lib/v4-periphery/src/libraries/BipsLibrary.sol"],"versionRequirement":"^0.8.24","artifacts":{"Permit2Payments":{"0.8.26":{"path":"Permit2Payments.sol/Permit2Payments.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/modules/V3ToV4Migrator.sol":{"lastModificationDate":1742173159704,"contentHash":"7068c9a83c86609057a29977012fa8ce","sourceName":"lib/universal-router.git/contracts/modules/V3ToV4Migrator.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol","lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","lib/permit2/src/interfaces/IAllowanceTransfer.sol","lib/permit2/src/interfaces/IEIP712.sol","lib/universal-router.git/contracts/modules/MigratorImmutables.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IERC721Permit.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryPayments.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPoolInitializer.sol","lib/universal-router.git/lib/v3-periphery/contracts/libraries/PoolAddress.sol","lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/interfaces/IEIP712_v4.sol","lib/v4-periphery/src/interfaces/IERC721Permit_v4.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol","lib/v4-periphery/src/interfaces/IMulticall_v4.sol","lib/v4-periphery/src/interfaces/INotifier.sol","lib/v4-periphery/src/interfaces/IPermit2Forwarder.sol","lib/v4-periphery/src/interfaces/IPoolInitializer_v4.sol","lib/v4-periphery/src/interfaces/IPositionManager.sol","lib/v4-periphery/src/interfaces/ISubscriber.sol","lib/v4-periphery/src/interfaces/IUnorderedNonce.sol","lib/v4-periphery/src/interfaces/IV4Router.sol","lib/v4-periphery/src/libraries/Actions.sol","lib/v4-periphery/src/libraries/CalldataDecoder.sol","lib/v4-periphery/src/libraries/PathKey.sol","lib/v4-periphery/src/libraries/PositionInfoLibrary.sol"],"versionRequirement":"^0.8.24","artifacts":{"V3ToV4Migrator":{"0.8.26":{"path":"V3ToV4Migrator.sol/V3ToV4Migrator.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/modules/uniswap/UniswapImmutables.sol":{"lastModificationDate":1742173159705,"contentHash":"ab4518c07a60277eee4d4ae7ab0e9900","sourceName":"lib/universal-router.git/contracts/modules/uniswap/UniswapImmutables.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.24","artifacts":{"UniswapImmutables":{"0.8.26":{"path":"UniswapImmutables.sol/UniswapImmutables.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/modules/uniswap/v2/UniswapV2Library.sol":{"lastModificationDate":1742173159705,"contentHash":"a4a49c18371a8fa69b6591fd4f102ae6","sourceName":"lib/universal-router.git/contracts/modules/uniswap/v2/UniswapV2Library.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol"],"versionRequirement":">=0.8.0","artifacts":{"UniswapV2Library":{"0.8.26":{"path":"UniswapV2Library.sol/UniswapV2Library.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/modules/uniswap/v2/V2SwapRouter.sol":{"lastModificationDate":1742173159705,"contentHash":"559ada3cf5d9c8d3c91bdf270c74ee85","sourceName":"lib/universal-router.git/contracts/modules/uniswap/v2/V2SwapRouter.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/permit2/lib/solmate/src/tokens/ERC20.sol","lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol","lib/permit2/src/interfaces/IAllowanceTransfer.sol","lib/permit2/src/interfaces/IEIP712.sol","lib/permit2/src/interfaces/IPermit2.sol","lib/permit2/src/interfaces/ISignatureTransfer.sol","lib/permit2/src/libraries/SafeCast160.sol","lib/universal-router.git/contracts/libraries/Constants.sol","lib/universal-router.git/contracts/modules/Payments.sol","lib/universal-router.git/contracts/modules/PaymentsImmutables.sol","lib/universal-router.git/contracts/modules/Permit2Payments.sol","lib/universal-router.git/contracts/modules/uniswap/UniswapImmutables.sol","lib/universal-router.git/contracts/modules/uniswap/v2/UniswapV2Library.sol","lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol","lib/v4-periphery/src/interfaces/external/IWETH9.sol","lib/v4-periphery/src/libraries/ActionConstants.sol","lib/v4-periphery/src/libraries/BipsLibrary.sol"],"versionRequirement":"^0.8.24","artifacts":{"V2SwapRouter":{"0.8.26":{"path":"V2SwapRouter.sol/V2SwapRouter.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/modules/uniswap/v3/BytesLib.sol":{"lastModificationDate":1742173159705,"contentHash":"f0ceaef505997a802572ce107d9f1c5c","sourceName":"lib/universal-router.git/contracts/modules/uniswap/v3/BytesLib.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/universal-router.git/contracts/libraries/Constants.sol","lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol","lib/v4-periphery/src/interfaces/IV4Router.sol","lib/v4-periphery/src/libraries/CalldataDecoder.sol","lib/v4-periphery/src/libraries/PathKey.sol"],"versionRequirement":"^0.8.0","artifacts":{"BytesLib":{"0.8.26":{"path":"BytesLib.sol/BytesLib.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/modules/uniswap/v3/V3Path.sol":{"lastModificationDate":1742173159705,"contentHash":"c9014cf312ce8ac115991dfccd3ff9f8","sourceName":"lib/universal-router.git/contracts/modules/uniswap/v3/V3Path.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/universal-router.git/contracts/libraries/Constants.sol","lib/universal-router.git/contracts/modules/uniswap/v3/BytesLib.sol","lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol","lib/v4-periphery/src/interfaces/IV4Router.sol","lib/v4-periphery/src/libraries/CalldataDecoder.sol","lib/v4-periphery/src/libraries/PathKey.sol"],"versionRequirement":">=0.6.0","artifacts":{"V3Path":{"0.8.26":{"path":"V3Path.sol/V3Path.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/modules/uniswap/v3/V3SwapRouter.sol":{"lastModificationDate":1742173159705,"contentHash":"76462dfc9a16068aad0863eb97962c63","sourceName":"lib/universal-router.git/contracts/modules/uniswap/v3/V3SwapRouter.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/permit2/lib/solmate/src/tokens/ERC20.sol","lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol","lib/permit2/src/interfaces/IAllowanceTransfer.sol","lib/permit2/src/interfaces/IEIP712.sol","lib/permit2/src/interfaces/IPermit2.sol","lib/permit2/src/interfaces/ISignatureTransfer.sol","lib/permit2/src/libraries/SafeCast160.sol","lib/universal-router.git/contracts/libraries/Constants.sol","lib/universal-router.git/contracts/libraries/MaxInputAmount.sol","lib/universal-router.git/contracts/modules/Payments.sol","lib/universal-router.git/contracts/modules/PaymentsImmutables.sol","lib/universal-router.git/contracts/modules/Permit2Payments.sol","lib/universal-router.git/contracts/modules/uniswap/UniswapImmutables.sol","lib/universal-router.git/contracts/modules/uniswap/v3/BytesLib.sol","lib/universal-router.git/contracts/modules/uniswap/v3/V3Path.sol","lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol","lib/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol","lib/v3-core/contracts/libraries/SafeCast.sol","lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol","lib/v4-periphery/src/interfaces/IV4Router.sol","lib/v4-periphery/src/interfaces/external/IWETH9.sol","lib/v4-periphery/src/libraries/ActionConstants.sol","lib/v4-periphery/src/libraries/BipsLibrary.sol","lib/v4-periphery/src/libraries/CalldataDecoder.sol","lib/v4-periphery/src/libraries/PathKey.sol"],"versionRequirement":"^0.8.24","artifacts":{"V3SwapRouter":{"0.8.26":{"path":"V3SwapRouter.sol/V3SwapRouter.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/modules/uniswap/v4/V4SwapRouter.sol":{"lastModificationDate":1742173159705,"contentHash":"733a4e352a3364935f7cd3b43fcda7f2","sourceName":"lib/universal-router.git/contracts/modules/uniswap/v4/V4SwapRouter.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","lib/permit2/lib/solmate/src/tokens/ERC20.sol","lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol","lib/permit2/src/interfaces/IAllowanceTransfer.sol","lib/permit2/src/interfaces/IEIP712.sol","lib/permit2/src/interfaces/IPermit2.sol","lib/permit2/src/interfaces/ISignatureTransfer.sol","lib/permit2/src/libraries/SafeCast160.sol","lib/universal-router.git/contracts/libraries/Constants.sol","lib/universal-router.git/contracts/modules/Payments.sol","lib/universal-router.git/contracts/modules/PaymentsImmutables.sol","lib/universal-router.git/contracts/modules/Permit2Payments.sol","lib/universal-router.git/contracts/modules/uniswap/UniswapImmutables.sol","lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/callback/IUnlockCallback.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/BitMath.sol","lib/v4-core/src/libraries/CurrencyReserves.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/Lock.sol","lib/v4-core/src/libraries/NonzeroDeltaCount.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/libraries/TickMath.sol","lib/v4-core/src/libraries/TransientStateLibrary.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/V4Router.sol","lib/v4-periphery/src/base/BaseActionsRouter.sol","lib/v4-periphery/src/base/DeltaResolver.sol","lib/v4-periphery/src/base/ImmutableState.sol","lib/v4-periphery/src/base/SafeCallback.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol","lib/v4-periphery/src/interfaces/IV4Router.sol","lib/v4-periphery/src/interfaces/external/IWETH9.sol","lib/v4-periphery/src/libraries/ActionConstants.sol","lib/v4-periphery/src/libraries/Actions.sol","lib/v4-periphery/src/libraries/BipsLibrary.sol","lib/v4-periphery/src/libraries/CalldataDecoder.sol","lib/v4-periphery/src/libraries/PathKey.sol"],"versionRequirement":"^0.8.24","artifacts":{"V4SwapRouter":{"0.8.26":{"path":"V4SwapRouter.sol/V4SwapRouter.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/contracts/types/RouterParameters.sol":{"lastModificationDate":1742173159706,"contentHash":"845c0f16acb27d6f60ed180164aa31f5","sourceName":"lib/universal-router.git/contracts/types/RouterParameters.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.24","artifacts":{"RouterParameters":{"0.8.26":{"path":"RouterParameters.sol/RouterParameters.json","build_id":"a985d2e1396d5561ae0fa076c730217f"}}},"seenByCompiler":true},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IERC721Permit.sol":{"lastModificationDate":1742173175405,"contentHash":"9073d26f60e6253b2dfbc103c78cf70d","sourceName":"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IERC721Permit.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"],"versionRequirement":">=0.7.5","artifacts":{"IERC721Permit":{"0.8.26":{"path":"IERC721Permit.sol/IERC721Permit.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol":{"lastModificationDate":1742173175405,"contentHash":"78ea5e100826615428583761926066f3","sourceName":"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol","lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol","lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IERC721Permit.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryPayments.sol","lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPoolInitializer.sol","lib/universal-router.git/lib/v3-periphery/contracts/libraries/PoolAddress.sol"],"versionRequirement":">=0.7.5","artifacts":{"INonfungiblePositionManager":{"0.8.26":{"path":"INonfungiblePositionManager.sol/INonfungiblePositionManager.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol":{"lastModificationDate":1742173175405,"contentHash":"e68917661480772223d87a606afb29cd","sourceName":"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.5.0","artifacts":{"IPeripheryImmutableState":{"0.8.26":{"path":"IPeripheryImmutableState.sol/IPeripheryImmutableState.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryPayments.sol":{"lastModificationDate":1742173175405,"contentHash":"8aa07bcaad7779d2bae8089adef235bf","sourceName":"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryPayments.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.7.5","artifacts":{"IPeripheryPayments":{"0.8.26":{"path":"IPeripheryPayments.sol/IPeripheryPayments.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPoolInitializer.sol":{"lastModificationDate":1742173175405,"contentHash":"11600b3ed90d17aa07e53a77430a6d6c","sourceName":"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPoolInitializer.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.7.5","artifacts":{"IPoolInitializer":{"0.8.26":{"path":"IPoolInitializer.sol/IPoolInitializer.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/universal-router.git/lib/v3-periphery/contracts/libraries/PoolAddress.sol":{"lastModificationDate":1742173175407,"contentHash":"d928327a13dd928fa88273ef22539bef","sourceName":"lib/universal-router.git/lib/v3-periphery/contracts/libraries/PoolAddress.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.5.0","artifacts":{"PoolAddress":{"0.8.26":{"path":"PoolAddress.sol/PoolAddress.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol":{"lastModificationDate":1742173009042,"contentHash":"3fa31c3860f2b9585c3a98c64850829e","sourceName":"lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.5.0","artifacts":{"IUniswapV2Pair":{"0.8.26":{"path":"IUniswapV2Pair.sol/IUniswapV2Pair.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol":{"lastModificationDate":1742173038599,"contentHash":"e6badd8268772b99e7ca397aff11a965","sourceName":"lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol","lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol"],"versionRequirement":">=0.5.0","artifacts":{"IUniswapV3Pool":{"0.8.26":{"path":"IUniswapV3Pool.sol/IUniswapV3Pool.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol":{"lastModificationDate":1742173038599,"contentHash":"a8ba2d37b0107911ae0e3b0e123cbd83","sourceName":"lib/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.5.0","artifacts":{"IUniswapV3SwapCallback":{"0.8.26":{"path":"IUniswapV3SwapCallback.sol/IUniswapV3SwapCallback.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol":{"lastModificationDate":1742173038599,"contentHash":"83d338eb1394008c808a20ac7c5bab0c","sourceName":"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.5.0","artifacts":{"IUniswapV3PoolActions":{"0.8.26":{"path":"IUniswapV3PoolActions.sol/IUniswapV3PoolActions.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol":{"lastModificationDate":1742173038600,"contentHash":"25b71180ec9f5132a158334971ee2ace","sourceName":"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.5.0","artifacts":{"IUniswapV3PoolDerivedState":{"0.8.26":{"path":"IUniswapV3PoolDerivedState.sol/IUniswapV3PoolDerivedState.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol":{"lastModificationDate":1742173038600,"contentHash":"05abb59ec113db1046f7dadc78bb297b","sourceName":"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.5.0","artifacts":{"IUniswapV3PoolEvents":{"0.8.26":{"path":"IUniswapV3PoolEvents.sol/IUniswapV3PoolEvents.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol":{"lastModificationDate":1742173038600,"contentHash":"e236e09a9d654fb2f20a6da5dba2bd2f","sourceName":"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.5.0","artifacts":{"IUniswapV3PoolImmutables":{"0.8.26":{"path":"IUniswapV3PoolImmutables.sol/IUniswapV3PoolImmutables.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol":{"lastModificationDate":1742173038600,"contentHash":"1b06ecc79e75f836c446ccf286e671e4","sourceName":"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.5.0","artifacts":{"IUniswapV3PoolOwnerActions":{"0.8.26":{"path":"IUniswapV3PoolOwnerActions.sol/IUniswapV3PoolOwnerActions.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol":{"lastModificationDate":1742173038600,"contentHash":"0488495ef9087b4513d3b43634035ef9","sourceName":"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.5.0","artifacts":{"IUniswapV3PoolState":{"0.8.26":{"path":"IUniswapV3PoolState.sol/IUniswapV3PoolState.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v3-core/contracts/libraries/SafeCast.sol":{"lastModificationDate":1742173038601,"contentHash":"c89128b97d009587db99cae7763cfef0","sourceName":"lib/v3-core/contracts/libraries/SafeCast.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.5.0","artifacts":{"SafeCast":{"0.8.26":{"path":"SafeCast.sol/SafeCast.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/interfaces/IExtsload.sol":{"lastModificationDate":1742172370901,"contentHash":"d6736ed46cbb3b677519964ffea3ce9c","sourceName":"lib/v4-core/src/interfaces/IExtsload.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.0","artifacts":{"IExtsload":{"0.8.26":{"path":"IExtsload.sol/IExtsload.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/interfaces/IExttload.sol":{"lastModificationDate":1742172370901,"contentHash":"c565abf89714dff14e9d67c9d72d028b","sourceName":"lib/v4-core/src/interfaces/IExttload.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.24","artifacts":{"IExttload":{"0.8.26":{"path":"IExttload.sol/IExttload.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/interfaces/IHooks.sol":{"lastModificationDate":1742172370902,"contentHash":"753015bd38c14f4bab14f362b5a2fde4","sourceName":"lib/v4-core/src/interfaces/IHooks.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol"],"versionRequirement":"^0.8.0","artifacts":{"IHooks":{"0.8.26":{"path":"IHooks.sol/IHooks.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/interfaces/IPoolManager.sol":{"lastModificationDate":1742172370902,"contentHash":"bff2826e5dc564783a2a7eb15400d38d","sourceName":"lib/v4-core/src/interfaces/IPoolManager.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol"],"versionRequirement":"^0.8.24","artifacts":{"IPoolManager":{"0.8.26":{"path":"IPoolManager.sol/IPoolManager.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/interfaces/IProtocolFees.sol":{"lastModificationDate":1742172370902,"contentHash":"0c0f37b4a5a4e73b58020f6af846b977","sourceName":"lib/v4-core/src/interfaces/IProtocolFees.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol"],"versionRequirement":"^0.8.0","artifacts":{"IProtocolFees":{"0.8.26":{"path":"IProtocolFees.sol/IProtocolFees.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/interfaces/callback/IUnlockCallback.sol":{"lastModificationDate":1742172370902,"contentHash":"43f66660291be4d6aad9bdcc895462ba","sourceName":"lib/v4-core/src/interfaces/callback/IUnlockCallback.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.0","artifacts":{"IUnlockCallback":{"0.8.26":{"path":"IUnlockCallback.sol/IUnlockCallback.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/interfaces/external/IERC20Minimal.sol":{"lastModificationDate":1742172370902,"contentHash":"673e0abee46eec8a1fe8b7fd9670aeb6","sourceName":"lib/v4-core/src/interfaces/external/IERC20Minimal.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.0","artifacts":{"IERC20Minimal":{"0.8.26":{"path":"IERC20Minimal.sol/IERC20Minimal.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/interfaces/external/IERC6909Claims.sol":{"lastModificationDate":1742172370902,"contentHash":"4fc5d7c51f35f6a84ebffdfb9015a66d","sourceName":"lib/v4-core/src/interfaces/external/IERC6909Claims.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.0","artifacts":{"IERC6909Claims":{"0.8.26":{"path":"IERC6909Claims.sol/IERC6909Claims.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/libraries/BitMath.sol":{"lastModificationDate":1742172370902,"contentHash":"633655f1ca090751fa0071b6ff5cae08","sourceName":"lib/v4-core/src/libraries/BitMath.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.0","artifacts":{"BitMath":{"0.8.26":{"path":"BitMath.sol/BitMath.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/libraries/CurrencyReserves.sol":{"lastModificationDate":1742172370902,"contentHash":"281683f328e83c65da1b3ccae5cda57b","sourceName":"lib/v4-core/src/libraries/CurrencyReserves.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/types/Currency.sol"],"versionRequirement":"^0.8.24","artifacts":{"CurrencyReserves":{"0.8.26":{"path":"CurrencyReserves.sol/CurrencyReserves.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/libraries/CustomRevert.sol":{"lastModificationDate":1742172370903,"contentHash":"7c5352bf0b75f406d539e91f39d86627","sourceName":"lib/v4-core/src/libraries/CustomRevert.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.0","artifacts":{"CustomRevert":{"0.8.26":{"path":"CustomRevert.sol/CustomRevert.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/libraries/FixedPoint128.sol":{"lastModificationDate":1742172370903,"contentHash":"9a9bdb7b1c2b3dcd5696781da269b664","sourceName":"lib/v4-core/src/libraries/FixedPoint128.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.0","artifacts":{"FixedPoint128":{"0.8.26":{"path":"FixedPoint128.sol/FixedPoint128.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/libraries/FullMath.sol":{"lastModificationDate":1742172370903,"contentHash":"065f312b89d9a0a2ae30f7eb1075a9a1","sourceName":"lib/v4-core/src/libraries/FullMath.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.0","artifacts":{"FullMath":{"0.8.26":{"path":"FullMath.sol/FullMath.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/libraries/LiquidityMath.sol":{"lastModificationDate":1742172370903,"contentHash":"9ae2feefc960d9918c75d91cf2fde383","sourceName":"lib/v4-core/src/libraries/LiquidityMath.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.0","artifacts":{"LiquidityMath":{"0.8.26":{"path":"LiquidityMath.sol/LiquidityMath.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/libraries/Lock.sol":{"lastModificationDate":1742172370903,"contentHash":"d3a4be9a156d9a9930a7cf18366192c8","sourceName":"lib/v4-core/src/libraries/Lock.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.24","artifacts":{"Lock":{"0.8.26":{"path":"libraries/Lock.sol/Lock.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/libraries/NonzeroDeltaCount.sol":{"lastModificationDate":1742172370903,"contentHash":"e897ca20f7ea8258eb2dcc17319dc233","sourceName":"lib/v4-core/src/libraries/NonzeroDeltaCount.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.24","artifacts":{"NonzeroDeltaCount":{"0.8.26":{"path":"NonzeroDeltaCount.sol/NonzeroDeltaCount.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/libraries/Position.sol":{"lastModificationDate":1742172370903,"contentHash":"7e454522b69c5bbc56674c99ac1c5ef9","sourceName":"lib/v4-core/src/libraries/Position.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/FixedPoint128.sol","lib/v4-core/src/libraries/FullMath.sol","lib/v4-core/src/libraries/LiquidityMath.sol"],"versionRequirement":"^0.8.0","artifacts":{"Position":{"0.8.26":{"path":"Position.sol/Position.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/libraries/SafeCast.sol":{"lastModificationDate":1742172370904,"contentHash":"7efd56acc85f88254a521ab4e32f1247","sourceName":"lib/v4-core/src/libraries/SafeCast.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/libraries/CustomRevert.sol"],"versionRequirement":"^0.8.0","artifacts":{"SafeCast":{"0.8.26":{"path":"libraries/SafeCast.sol/SafeCast.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/libraries/StateLibrary.sol":{"lastModificationDate":1742172370904,"contentHash":"c3a5ec9d59ea78391db1ec3a9eebb0d9","sourceName":"lib/v4-core/src/libraries/StateLibrary.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/FixedPoint128.sol","lib/v4-core/src/libraries/FullMath.sol","lib/v4-core/src/libraries/LiquidityMath.sol","lib/v4-core/src/libraries/Position.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol"],"versionRequirement":"^0.8.0","artifacts":{"StateLibrary":{"0.8.26":{"path":"StateLibrary.sol/StateLibrary.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/libraries/TickMath.sol":{"lastModificationDate":1742172370904,"contentHash":"5a64ebeb2ad0d4d53dbfadab198190ea","sourceName":"lib/v4-core/src/libraries/TickMath.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/libraries/BitMath.sol","lib/v4-core/src/libraries/CustomRevert.sol"],"versionRequirement":"^0.8.0","artifacts":{"TickMath":{"0.8.26":{"path":"TickMath.sol/TickMath.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/libraries/TransientStateLibrary.sol":{"lastModificationDate":1742172370904,"contentHash":"5915c3538eb806d92604d860fdb51613","sourceName":"lib/v4-core/src/libraries/TransientStateLibrary.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CurrencyReserves.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/Lock.sol","lib/v4-core/src/libraries/NonzeroDeltaCount.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol"],"versionRequirement":"^0.8.24","artifacts":{"TransientStateLibrary":{"0.8.26":{"path":"TransientStateLibrary.sol/TransientStateLibrary.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/types/BalanceDelta.sol":{"lastModificationDate":1742172370908,"contentHash":"dec730cf97f8429624545ffff69e7909","sourceName":"lib/v4-core/src/types/BalanceDelta.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol"],"versionRequirement":"^0.8.0","artifacts":{"BalanceDeltaLibrary":{"0.8.26":{"path":"BalanceDelta.sol/BalanceDeltaLibrary.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/types/BeforeSwapDelta.sol":{"lastModificationDate":1742172370908,"contentHash":"ae7541dc512b8b3131e5ef904f047a72","sourceName":"lib/v4-core/src/types/BeforeSwapDelta.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.0","artifacts":{"BeforeSwapDeltaLibrary":{"0.8.26":{"path":"BeforeSwapDelta.sol/BeforeSwapDeltaLibrary.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/types/Currency.sol":{"lastModificationDate":1742172370908,"contentHash":"291e0c95e9368cfc77d3f730d602131e","sourceName":"lib/v4-core/src/types/Currency.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/libraries/CustomRevert.sol"],"versionRequirement":"^0.8.0","artifacts":{"CurrencyLibrary":{"0.8.26":{"path":"Currency.sol/CurrencyLibrary.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/types/PoolId.sol":{"lastModificationDate":1742172370908,"contentHash":"a6e85b945451c582bcf7de3452c782cb","sourceName":"lib/v4-core/src/types/PoolId.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol"],"versionRequirement":"^0.8.0","artifacts":{"PoolIdLibrary":{"0.8.26":{"path":"PoolId.sol/PoolIdLibrary.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-core/src/types/PoolKey.sol":{"lastModificationDate":1742172370908,"contentHash":"398fad21745911bc900a2554be64c61a","sourceName":"lib/v4-core/src/types/PoolKey.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol"],"versionRequirement":"^0.8.0","artifacts":{"PoolKey":{"0.8.26":{"path":"PoolKey.sol/PoolKey.json","build_id":"a985d2e1396d5561ae0fa076c730217f"}}},"seenByCompiler":true},"lib/v4-periphery/src/V4Router.sol":{"lastModificationDate":1742172541695,"contentHash":"16c8552867d5361ccdc674afbe4d8e5b","sourceName":"lib/v4-periphery/src/V4Router.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/callback/IUnlockCallback.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/BitMath.sol","lib/v4-core/src/libraries/CurrencyReserves.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/Lock.sol","lib/v4-core/src/libraries/NonzeroDeltaCount.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/libraries/TickMath.sol","lib/v4-core/src/libraries/TransientStateLibrary.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/base/BaseActionsRouter.sol","lib/v4-periphery/src/base/DeltaResolver.sol","lib/v4-periphery/src/base/ImmutableState.sol","lib/v4-periphery/src/base/SafeCallback.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol","lib/v4-periphery/src/interfaces/IV4Router.sol","lib/v4-periphery/src/libraries/ActionConstants.sol","lib/v4-periphery/src/libraries/Actions.sol","lib/v4-periphery/src/libraries/BipsLibrary.sol","lib/v4-periphery/src/libraries/CalldataDecoder.sol","lib/v4-periphery/src/libraries/PathKey.sol"],"versionRequirement":"=0.8.26","artifacts":{"V4Router":{"0.8.26":{"path":"V4Router.sol/V4Router.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/base/BaseActionsRouter.sol":{"lastModificationDate":1742172541695,"contentHash":"651b1b9c563356dc5c2db90c193005c1","sourceName":"lib/v4-periphery/src/base/BaseActionsRouter.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/callback/IUnlockCallback.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/base/ImmutableState.sol","lib/v4-periphery/src/base/SafeCallback.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol","lib/v4-periphery/src/interfaces/IV4Router.sol","lib/v4-periphery/src/libraries/ActionConstants.sol","lib/v4-periphery/src/libraries/CalldataDecoder.sol","lib/v4-periphery/src/libraries/PathKey.sol"],"versionRequirement":"^0.8.0","artifacts":{"BaseActionsRouter":{"0.8.26":{"path":"BaseActionsRouter.sol/BaseActionsRouter.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/base/DeltaResolver.sol":{"lastModificationDate":1742172541695,"contentHash":"e3c7f64af0aadbccc094ef9edfd50645","sourceName":"lib/v4-periphery/src/base/DeltaResolver.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CurrencyReserves.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/Lock.sol","lib/v4-core/src/libraries/NonzeroDeltaCount.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/libraries/TransientStateLibrary.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/base/ImmutableState.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol","lib/v4-periphery/src/libraries/ActionConstants.sol"],"versionRequirement":"^0.8.24","artifacts":{"DeltaResolver":{"0.8.26":{"path":"DeltaResolver.sol/DeltaResolver.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/base/ImmutableState.sol":{"lastModificationDate":1742172541695,"contentHash":"7042f1a5ecba4547ee409ead91f636a2","sourceName":"lib/v4-periphery/src/base/ImmutableState.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol"],"versionRequirement":"^0.8.0","artifacts":{"ImmutableState":{"0.8.26":{"path":"ImmutableState.sol/ImmutableState.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/base/SafeCallback.sol":{"lastModificationDate":1742172541696,"contentHash":"f3870abddac4a0d9d47aece3e63fbcd3","sourceName":"lib/v4-periphery/src/base/SafeCallback.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/callback/IUnlockCallback.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/base/ImmutableState.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol"],"versionRequirement":"^0.8.0","artifacts":{"SafeCallback":{"0.8.26":{"path":"SafeCallback.sol/SafeCallback.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/interfaces/IEIP712_v4.sol":{"lastModificationDate":1742172541696,"contentHash":"6ee844510736854c32712ba2edb741d1","sourceName":"lib/v4-periphery/src/interfaces/IEIP712_v4.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.0","artifacts":{"IEIP712_v4":{"0.8.26":{"path":"IEIP712_v4.sol/IEIP712_v4.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/interfaces/IERC721Permit_v4.sol":{"lastModificationDate":1742172541696,"contentHash":"1a26e530fa8191d9ad091718ba5c8501","sourceName":"lib/v4-periphery/src/interfaces/IERC721Permit_v4.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.0","artifacts":{"IERC721Permit_v4":{"0.8.26":{"path":"IERC721Permit_v4.sol/IERC721Permit_v4.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/interfaces/IImmutableState.sol":{"lastModificationDate":1742172541696,"contentHash":"567fc9a99078de8bc375eb41b9d024af","sourceName":"lib/v4-periphery/src/interfaces/IImmutableState.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol"],"versionRequirement":"^0.8.0","artifacts":{"IImmutableState":{"0.8.26":{"path":"IImmutableState.sol/IImmutableState.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/interfaces/IMulticall_v4.sol":{"lastModificationDate":1742172541696,"contentHash":"d2c8b4c699f481783a42f4cfe71b9de0","sourceName":"lib/v4-periphery/src/interfaces/IMulticall_v4.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.0","artifacts":{"IMulticall_v4":{"0.8.26":{"path":"IMulticall_v4.sol/IMulticall_v4.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/interfaces/INotifier.sol":{"lastModificationDate":1742172541697,"contentHash":"8f82b8e2640096227d4d5ef24a30db26","sourceName":"lib/v4-periphery/src/interfaces/INotifier.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/interfaces/ISubscriber.sol","lib/v4-periphery/src/libraries/PositionInfoLibrary.sol"],"versionRequirement":"^0.8.0","artifacts":{"INotifier":{"0.8.26":{"path":"INotifier.sol/INotifier.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/interfaces/IPermit2Forwarder.sol":{"lastModificationDate":1742172541697,"contentHash":"ae2370a4fadca4b8a62949a4f16471d4","sourceName":"lib/v4-periphery/src/interfaces/IPermit2Forwarder.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/permit2/src/interfaces/IAllowanceTransfer.sol","lib/permit2/src/interfaces/IEIP712.sol"],"versionRequirement":"^0.8.0","artifacts":{"IPermit2Forwarder":{"0.8.26":{"path":"IPermit2Forwarder.sol/IPermit2Forwarder.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/interfaces/IPoolInitializer_v4.sol":{"lastModificationDate":1742172541697,"contentHash":"50d165d8610cefc03ac18d4089d416ac","sourceName":"lib/v4-periphery/src/interfaces/IPoolInitializer_v4.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol"],"versionRequirement":"^0.8.0","artifacts":{"IPoolInitializer_v4":{"0.8.26":{"path":"IPoolInitializer_v4.sol/IPoolInitializer_v4.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/interfaces/IPositionManager.sol":{"lastModificationDate":1742172541697,"contentHash":"5314065f46a238b34c6495501c65f6cb","sourceName":"lib/v4-periphery/src/interfaces/IPositionManager.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/permit2/src/interfaces/IAllowanceTransfer.sol","lib/permit2/src/interfaces/IEIP712.sol","lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/interfaces/IEIP712_v4.sol","lib/v4-periphery/src/interfaces/IERC721Permit_v4.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol","lib/v4-periphery/src/interfaces/IMulticall_v4.sol","lib/v4-periphery/src/interfaces/INotifier.sol","lib/v4-periphery/src/interfaces/IPermit2Forwarder.sol","lib/v4-periphery/src/interfaces/IPoolInitializer_v4.sol","lib/v4-periphery/src/interfaces/ISubscriber.sol","lib/v4-periphery/src/interfaces/IUnorderedNonce.sol","lib/v4-periphery/src/libraries/PositionInfoLibrary.sol"],"versionRequirement":"^0.8.0","artifacts":{"IPositionManager":{"0.8.26":{"path":"IPositionManager.sol/IPositionManager.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/interfaces/ISubscriber.sol":{"lastModificationDate":1742172541697,"contentHash":"05b6736d495ba5ccdb5fa57019779d67","sourceName":"lib/v4-periphery/src/interfaces/ISubscriber.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/libraries/PositionInfoLibrary.sol"],"versionRequirement":"^0.8.0","artifacts":{"ISubscriber":{"0.8.26":{"path":"ISubscriber.sol/ISubscriber.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/interfaces/IUnorderedNonce.sol":{"lastModificationDate":1742172541697,"contentHash":"defa16ee07839caee3f75d1c67e4173b","sourceName":"lib/v4-periphery/src/interfaces/IUnorderedNonce.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.0","artifacts":{"IUnorderedNonce":{"0.8.26":{"path":"IUnorderedNonce.sol/IUnorderedNonce.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/interfaces/IV4Router.sol":{"lastModificationDate":1742172541697,"contentHash":"9d097300f3b52faaeb8c1970f165584b","sourceName":"lib/v4-periphery/src/interfaces/IV4Router.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol","lib/v4-periphery/src/libraries/PathKey.sol"],"versionRequirement":"^0.8.0","artifacts":{"IV4Router":{"0.8.26":{"path":"IV4Router.sol/IV4Router.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/interfaces/external/IWETH9.sol":{"lastModificationDate":1742172541698,"contentHash":"72604c7c076c1ff9dc1cfd84889addf8","sourceName":"lib/v4-periphery/src/interfaces/external/IWETH9.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"],"versionRequirement":"^0.8.0","artifacts":{"IWETH9":{"0.8.26":{"path":"IWETH9.sol/IWETH9.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/libraries/ActionConstants.sol":{"lastModificationDate":1742172541698,"contentHash":"a602839d87c83283ab7b57b74de33b83","sourceName":"lib/v4-periphery/src/libraries/ActionConstants.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.0","artifacts":{"ActionConstants":{"0.8.26":{"path":"ActionConstants.sol/ActionConstants.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/libraries/Actions.sol":{"lastModificationDate":1742172541698,"contentHash":"1820f782dc9eab7f8d9b7b36c0aff2c0","sourceName":"lib/v4-periphery/src/libraries/Actions.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.0","artifacts":{"Actions":{"0.8.26":{"path":"Actions.sol/Actions.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/libraries/BipsLibrary.sol":{"lastModificationDate":1742172541698,"contentHash":"a3c05fa43f0d523c1a43ea93e7c5204e","sourceName":"lib/v4-periphery/src/libraries/BipsLibrary.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.0","artifacts":{"BipsLibrary":{"0.8.26":{"path":"BipsLibrary.sol/BipsLibrary.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/libraries/CalldataDecoder.sol":{"lastModificationDate":1742172541698,"contentHash":"21ba61dfdd4d9fe4f8ff20629923820b","sourceName":"lib/v4-periphery/src/libraries/CalldataDecoder.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol","lib/v4-periphery/src/interfaces/IImmutableState.sol","lib/v4-periphery/src/interfaces/IV4Router.sol","lib/v4-periphery/src/libraries/PathKey.sol"],"versionRequirement":"^0.8.0","artifacts":{"CalldataDecoder":{"0.8.26":{"path":"CalldataDecoder.sol/CalldataDecoder.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/libraries/PathKey.sol":{"lastModificationDate":1742172541699,"contentHash":"387d28b3026f18523fd70d1e06f12ecf","sourceName":"lib/v4-periphery/src/libraries/PathKey.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol"],"versionRequirement":"^0.8.0","artifacts":{"PathKeyLibrary":{"0.8.26":{"path":"PathKey.sol/PathKeyLibrary.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"lib/v4-periphery/src/libraries/PositionInfoLibrary.sol":{"lastModificationDate":1742172541699,"contentHash":"665df71c1aee1be6aa7c8693d172dd0b","sourceName":"lib/v4-periphery/src/libraries/PositionInfoLibrary.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/v4-core/src/interfaces/IExtsload.sol","lib/v4-core/src/interfaces/IExttload.sol","lib/v4-core/src/interfaces/IHooks.sol","lib/v4-core/src/interfaces/IPoolManager.sol","lib/v4-core/src/interfaces/IProtocolFees.sol","lib/v4-core/src/interfaces/external/IERC20Minimal.sol","lib/v4-core/src/interfaces/external/IERC6909Claims.sol","lib/v4-core/src/libraries/CustomRevert.sol","lib/v4-core/src/libraries/SafeCast.sol","lib/v4-core/src/types/BalanceDelta.sol","lib/v4-core/src/types/BeforeSwapDelta.sol","lib/v4-core/src/types/Currency.sol","lib/v4-core/src/types/PoolId.sol","lib/v4-core/src/types/PoolKey.sol"],"versionRequirement":"^0.8.24","artifacts":{"PositionInfoLibrary":{"0.8.26":{"path":"PositionInfoLibrary.sol/PositionInfoLibrary.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"node_modules/fhevm/config/ZamaFHEVMConfig.sol":{"lastModificationDate":1741806415873,"contentHash":"2b99c2f099c9ee96f76dec9acff7d320","sourceName":"node_modules/fhevm/config/ZamaFHEVMConfig.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"^0.8.24","artifacts":{"EthereumZamaFHEVMConfig":{"0.8.26":{"path":"ZamaFHEVMConfig.sol/EthereumZamaFHEVMConfig.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}},"SepoliaZamaFHEVMConfig":{"0.8.26":{"path":"ZamaFHEVMConfig.sol/SepoliaZamaFHEVMConfig.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}},"ZamaFHEVMConfig":{"0.8.26":{"path":"ZamaFHEVMConfig.sol/ZamaFHEVMConfig.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"node_modules/fhevm/config/ZamaGatewayConfig.sol":{"lastModificationDate":1741806415874,"contentHash":"17f1a9716dd2ee547aac9b6ab183d3bb","sourceName":"node_modules/fhevm/config/ZamaGatewayConfig.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["node_modules/fhevm/gateway/lib/Gateway.sol","node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"^0.8.24","artifacts":{"EthereumZamaGatewayConfig":{"0.8.26":{"path":"ZamaGatewayConfig.sol/EthereumZamaGatewayConfig.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}},"SepoliaZamaGatewayConfig":{"0.8.26":{"path":"ZamaGatewayConfig.sol/SepoliaZamaGatewayConfig.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}},"ZamaGatewayConfig":{"0.8.26":{"path":"ZamaGatewayConfig.sol/ZamaGatewayConfig.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"node_modules/fhevm/gateway/GatewayCaller.sol":{"lastModificationDate":1741806415872,"contentHash":"61275e485ac8d9b68a66cc4c5b571bc1","sourceName":"node_modules/fhevm/gateway/GatewayCaller.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["node_modules/fhevm/gateway/lib/Gateway.sol","node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"^0.8.24","artifacts":{"GatewayCaller":{"0.8.26":{"path":"GatewayCaller.sol/GatewayCaller.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"node_modules/fhevm/gateway/lib/Gateway.sol":{"lastModificationDate":1741806415871,"contentHash":"33fc904ca6b2414f34b94ceee9ae74f9","sourceName":"node_modules/fhevm/gateway/lib/Gateway.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"^0.8.24","artifacts":{"Gateway":{"0.8.26":{"path":"Gateway.sol/Gateway.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}},"IGatewayContract":{"0.8.26":{"path":"Gateway.sol/IGatewayContract.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}},"IKMSVerifier":{"0.8.26":{"path":"Gateway.sol/IKMSVerifier.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"node_modules/fhevm/lib/Impl.sol":{"lastModificationDate":1741806415872,"contentHash":"93d7e3908104c93e0038c718f41d7c54","sourceName":"node_modules/fhevm/lib/Impl.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"^0.8.24","artifacts":{"IACL":{"0.8.26":{"path":"Impl.sol/IACL.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}},"ITFHEExecutor":{"0.8.26":{"path":"Impl.sol/ITFHEExecutor.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}},"Impl":{"0.8.26":{"path":"Impl.sol/Impl.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"node_modules/fhevm/lib/TFHE.sol":{"lastModificationDate":1741806415873,"contentHash":"5e1b4ee3a4cc167d6f59a3e72db2a7f9","sourceName":"node_modules/fhevm/lib/TFHE.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"^0.8.24","artifacts":{"Common":{"0.8.26":{"path":"TFHE.sol/Common.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}},"TFHE":{"0.8.26":{"path":"TFHE.sol/TFHE.json","build_id":"1d600269096e9b8fe9d5fc95df1809d1"}}},"seenByCompiler":true},"node_modules/fhevm-contracts/contracts/token/ERC20/ConfidentialERC20.sol":{"lastModificationDate":1741806415706,"contentHash":"d09c98b3f8e3039c507370ade9264bd0","sourceName":"node_modules/fhevm-contracts/contracts/token/ERC20/ConfidentialERC20.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol","node_modules/fhevm-contracts/contracts/token/ERC20/IConfidentialERC20.sol","node_modules/fhevm-contracts/contracts/utils/TFHEErrors.sol"],"versionRequirement":"^0.8.24","artifacts":{"ConfidentialERC20":{"0.8.26":{"path":"ConfidentialERC20.sol/ConfidentialERC20.json","build_id":"a985d2e1396d5561ae0fa076c730217f"}}},"seenByCompiler":true},"node_modules/fhevm-contracts/contracts/token/ERC20/IConfidentialERC20.sol":{"lastModificationDate":1741806415709,"contentHash":"d4c39d351beb2aef9f327b6237d111b9","sourceName":"node_modules/fhevm-contracts/contracts/token/ERC20/IConfidentialERC20.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol"],"versionRequirement":"^0.8.24","artifacts":{"IConfidentialERC20":{"0.8.26":{"path":"IConfidentialERC20.sol/IConfidentialERC20.json","build_id":"a985d2e1396d5561ae0fa076c730217f"}}},"seenByCompiler":true},"node_modules/fhevm-contracts/contracts/token/ERC20/extensions/ConfidentialERC20Mintable.sol":{"lastModificationDate":1741806415706,"contentHash":"83043439b378c384dbb7ed7f67425fa8","sourceName":"node_modules/fhevm-contracts/contracts/token/ERC20/extensions/ConfidentialERC20Mintable.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/openzeppelin-contracts/contracts/access/Ownable.sol","lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol","lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","lib/openzeppelin-contracts/contracts/utils/Context.sol","node_modules/fhevm/lib/Impl.sol","node_modules/fhevm/lib/TFHE.sol","node_modules/fhevm-contracts/contracts/token/ERC20/ConfidentialERC20.sol","node_modules/fhevm-contracts/contracts/token/ERC20/IConfidentialERC20.sol","node_modules/fhevm-contracts/contracts/utils/TFHEErrors.sol"],"versionRequirement":"^0.8.24","artifacts":{"ConfidentialERC20Mintable":{"0.8.26":{"path":"ConfidentialERC20Mintable.sol/ConfidentialERC20Mintable.json","build_id":"a985d2e1396d5561ae0fa076c730217f"}}},"seenByCompiler":true},"node_modules/fhevm-contracts/contracts/utils/TFHEErrors.sol":{"lastModificationDate":1741806415710,"contentHash":"69c7f60f6e4c79fbb7ef61b1e00195cc","sourceName":"node_modules/fhevm-contracts/contracts/utils/TFHEErrors.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"":["ast"],"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"cancun","viaIR":true,"libraries":{}},"vyper":{"evmVersion":"cancun","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.24","artifacts":{"TFHEErrors":{"0.8.26":{"path":"TFHEErrors.sol/TFHEErrors.json","build_id":"a985d2e1396d5561ae0fa076c730217f"}}},"seenByCompiler":true}},"builds":["1d600269096e9b8fe9d5fc95df1809d1","6c6cc69ac3acdbb7e76597baa51096f4","a985d2e1396d5561ae0fa076c730217f","c9c371a10fdf476c3d80cbfb9ab3fb34"]} \ No newline at end of file diff --git a/contracts/ConfidentialIndexFund.sol b/contracts/ConfidentialIndexFund.sol index 0471304..7bd6fbe 100644 --- a/contracts/ConfidentialIndexFund.sol +++ b/contracts/ConfidentialIndexFund.sol @@ -1,33 +1,58 @@ // SPDX-License-Identifier: MIT pragma solidity 0.8.26; -import { IIndexFund } from "./interfaces/IIndexFund.sol"; -import { IndexFundToken } from "./IndexFundToken.sol"; -import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; -import { PoolKey } from "@uniswap/v4-core/src/types/PoolKey.sol"; -import { IndexFundFactory } from "./IndexFundFactory.sol"; -import { AccessControl } from "@openzeppelin/contracts/access/AccessControl.sol"; -import { IMarketDataFetcher } from "./interfaces/IMarketDataFetcher.sol"; -import { SwapsManager } from "./swaps/SwapsManager.sol"; -import { ReentrancyGuard } from "@openzeppelin/contracts/utils/ReentrancyGuard.sol"; -import { TFHE, euint64, ebool, einput } from "fhevm/lib/TFHE.sol"; -import { - ConfidentialERC20WithErrorsMintableBurnable -} from "./ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol"; -import { ConfidentialERC20WithErrorsWrapped } from "./ERC20Encryption/ConfidentialERC20WithErrorsWrapped.sol"; -import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; -import { MarketDataFetcher } from "./marketData/MarketDataFetcher.sol"; +import {IIndexFund} from "./interfaces/IIndexFund.sol"; +import {IndexFundToken} from "./IndexFundToken.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {PoolKey} from "@uniswap/v4-core/src/types/PoolKey.sol"; +import {IndexFundFactory} from "./IndexFundFactory.sol"; +import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol"; +import {IMarketDataFetcher} from "./interfaces/IMarketDataFetcher.sol"; +import {SwapsManager} from "./swaps/SwapsManager.sol"; +import {ReentrancyGuard} from "@openzeppelin/contracts/utils/ReentrancyGuard.sol"; +import {TFHE, euint64, ebool, einput} from "fhevm/lib/TFHE.sol"; +import {ConfidentialERC20WithErrorsMintableBurnable} from + "./ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol"; +import {ConfidentialERC20WithErrorsWrapped} from "./ERC20Encryption/ConfidentialERC20WithErrorsWrapped.sol"; +import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; +import {MarketDataFetcher} from "./marketData/MarketDataFetcher.sol"; import "fhevm/lib/TFHE.sol"; -import { SepoliaZamaFHEVMConfig } from "fhevm/config/ZamaFHEVMConfig.sol"; -import { SepoliaZamaGatewayConfig } from "fhevm/config/ZamaGatewayConfig.sol"; -import { ConfidentialERC20WithErrors } from "@httpz-contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol"; +import {SepoliaZamaFHEVMConfig} from "fhevm/config/ZamaFHEVMConfig.sol"; +import {SepoliaZamaGatewayConfig} from "fhevm/config/ZamaGatewayConfig.sol"; +import {ConfidentialERC20WithErrors} from "@httpz-contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol"; import "fhevm/gateway/GatewayCaller.sol"; -import { IndexFundStateManagement } from "./lib/IndexFundStateManagement.sol"; -import { Strings } from "@openzeppelin/contracts/utils/Strings.sol"; +import {IndexFundStateManagement} from "./lib/IndexFundStateManagement.sol"; +import {Strings} from "@openzeppelin/contracts/utils/Strings.sol"; /** - * @title IndexFund - * @notice This contract implements an index fund where users can mint shares by depositing stablecoin. + * @title ConfidentialIndexFund + * @notice Implements a confidential index fund that enables private investment in a basket of tokens + * @dev This contract provides a privacy-preserving way to invest in multiple tokens through a single + * index fund. It uses Fully Homomorphic Encryption (FHE) to maintain confidentiality of user balances, + * transactions, and fund operations. + * + * Key features: + * - Confidential minting and burning of index fund shares + * - Private stablecoin deposits and withdrawals + * - Encrypted balance tracking and transfers + * - Automatic token swaps based on market cap weights + * - Support for both index token and stablecoin redemption paths + * - Integration with Uniswap V4 for token swaps + * - Market data integration for price feeds and market caps + * + * Security features: + * - Reentrancy protection + * - Access control for administrative functions + * - Encrypted state management + * - Gateway-based decryption for sensitive operations + * - Batch processing for swaps to enhance privacy + * + * The contract maintains privacy while providing full functionality of a traditional index fund, + * allowing users to: + * 1. Deposit stablecoins to mint index fund shares + * 2. Burn shares to redeem either underlying tokens or stablecoins + * 3. Track their encrypted balances and transactions + * 4. Participate in the fund without revealing their positions */ contract ConfidentialIndexFund is IIndexFund, @@ -123,13 +148,8 @@ contract ConfidentialIndexFund is uint256[] memory cts = new uint256[](2); cts[0] = Gateway.toUint256(transferErrorCode); cts[1] = Gateway.toUint256(amount); - uint256 requestID = Gateway.requestDecryption( - cts, - this.mintSharesCallback.selector, - 0, - block.timestamp + 100, - false - ); + uint256 requestID = + Gateway.requestDecryption(cts, this.mintSharesCallback.selector, 0, block.timestamp + 100, false); addParamsAddress(requestID, msg.sender); } @@ -140,11 +160,10 @@ contract ConfidentialIndexFund is * @param encryptedRedeemIndexTokens The encrypted flag indicating whether to redeem index tokens. * @param inputProof The proof for the encrypted amount. */ - function burnShares( - einput encryptedAmount, - einput encryptedRedeemIndexTokens, - bytes calldata inputProof - ) external nonReentrant { + function burnShares(einput encryptedAmount, einput encryptedRedeemIndexTokens, bytes calldata inputProof) + external + nonReentrant + { euint64 amount = TFHE.asEuint64(encryptedAmount, inputProof); ebool redeemIndexTokens = TFHE.asEbool(encryptedRedeemIndexTokens, inputProof); IndexFundToken indexFundToken = indexFundState.indexFundToken; @@ -164,16 +183,17 @@ contract ConfidentialIndexFund is cts[1] = Gateway.toUint256(amount); cts[2] = Gateway.toUint256(redeemIndexTokens); cts[3] = Gateway.toUint256(hasUserEnoughSharesToBurn); - uint256 requestID = Gateway.requestDecryption( - cts, - this.burnSharesCallback.selector, - 0, - block.timestamp + 100, - false - ); + uint256 requestID = + Gateway.requestDecryption(cts, this.burnSharesCallback.selector, 0, block.timestamp + 100, false); addParamsAddress(requestID, msg.sender); } + /** + * @notice Initiates the redemption process after burning shares. + * @dev This function handles both index token redemption and stablecoin redemption paths. + * For stablecoin redemption, it processes swaps and prepares the stablecoin for transfer. + * For index token redemption, it sends the tokens back directly. + */ function initRedeemAfterBurn() external { address user = msg.sender; if (userToTokenWithdrawableAmounts[user].length == 0) { @@ -205,6 +225,11 @@ contract ConfidentialIndexFund is } } + /** + * @notice Completes the stablecoin redemption process by transferring the stablecoin to the user. + * @dev This function transfers the encrypted stablecoin amount that was prepared in initRedeemAfterBurn. + * @param user The address of the user to receive the stablecoin + */ function finishRedeemInStablecoinCase(address user) public { euint64 encryptedStablecoinToSendBack = userToPendingStablecoinTransfer[user]; userToPendingStablecoinTransfer[user] = TFHE.asEuint64(0); @@ -214,11 +239,19 @@ contract ConfidentialIndexFund is emit BurnSwapsPerformed(); } - function mintSharesCallback( - uint256 requestID, - uint8 transferErrorCode, - uint64 decryptedAmount - ) public nonReentrant onlyGateway { + /** + * @notice Callback function for the mint shares operation. + * @dev This function is called by the gateway after decryption of the mint amount. + * It handles the actual minting of shares and processing of the stablecoin deposit. + * @param requestID The ID of the decryption request + * @param transferErrorCode The error code from the stablecoin transfer + * @param decryptedAmount The decrypted amount of stablecoin to mint shares for + */ + function mintSharesCallback(uint256 requestID, uint8 transferErrorCode, uint64 decryptedAmount) + public + nonReentrant + onlyGateway + { mintCallbackTriggers += 1; address[] memory params = getParamsAddress(requestID); address user = params[0]; @@ -233,9 +266,7 @@ contract ConfidentialIndexFund is ); } emit EncryptedStablecoinTransfer( - TFHE.asEaddress(user), - TFHE.asEaddress(address(this)), - TFHE.asEuint64(decryptedAmount) + TFHE.asEaddress(user), TFHE.asEaddress(address(this)), TFHE.asEuint64(decryptedAmount) ); if (decryptedAmount > indexFundState.MAX_AMOUNT_TO_MINT_OR_BURN) { euint64 amount = TFHE.asEuint64(decryptedAmount); @@ -247,6 +278,11 @@ contract ConfidentialIndexFund is userToPendingMintAmount[user] = decryptedAmount; } + /** + * @notice Completes the mint shares process by processing the decrypted amount. + * @dev This function handles the unwrapping of stablecoin and processing of swaps after the callback. + * @param user The address of the user who initiated the mint + */ function finishMintShares(address user) public { uint64 decryptedAmount = userToPendingMintAmount[user]; require(decryptedAmount > 0, "No pending mint for this user"); @@ -294,9 +330,7 @@ contract ConfidentialIndexFund is updateSharePrice(); indexFundState.indexFundToken.burn(decryptedAmount); emit SharesBurned(TFHE.asEaddress(msg.sender), decryptedAmount); - uint256[] memory tokenAmountsToRedeemOrSwap = indexFundState.computeAmountsToSwapOrRedeemOnBurn( - decryptedAmount - ); + uint256[] memory tokenAmountsToRedeemOrSwap = indexFundState.computeAmountsToSwapOrRedeemOnBurn(decryptedAmount); userToTokenWithdrawableAmounts[user] = tokenAmountsToRedeemOrSwap; redeemIndexTokenForPendingWithdrawal[user] = redeemIndexTokens; if (!redeemIndexTokens) { @@ -353,6 +387,10 @@ contract ConfidentialIndexFund is return indexFundState.sharePrice; } + /** + * @notice Retrieves the pending stablecoin amount for redemption for the caller. + * @return pendingStablecoinRedeemAmount The encrypted amount of stablecoin pending for redemption + */ function getPendingStablecoinRedeemAmount() public view returns (euint64 pendingStablecoinRedeemAmount) { pendingStablecoinRedeemAmount = userToPendingStablecoinTransfer[msg.sender]; } diff --git a/contracts/ERC20Encryption/ConfidentialERC20Base.sol b/contracts/ERC20Encryption/ConfidentialERC20Base.sol index d7d3e74..23075dc 100644 --- a/contracts/ERC20Encryption/ConfidentialERC20Base.sol +++ b/contracts/ERC20Encryption/ConfidentialERC20Base.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: BSD-3-Clause-Clear pragma solidity ^0.8.24; import {ConfidentialERC20} from "@httpz-contracts/token/ERC20/ConfidentialERC20.sol"; diff --git a/contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol b/contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol index 766c8b6..6497c48 100644 --- a/contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol +++ b/contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol @@ -9,8 +9,8 @@ import {SepoliaZamaFHEVMConfig} from "fhevm/config/ZamaFHEVMConfig.sol"; /** * @title ConfidentialERC20WithErrorsMintable. - * @notice This contract inherits ConfidentialERC20WithErrors. - * @dev It allows an owner to mint tokens. Mint amounts are public. + * @notice This contract inherits ConfidentialERC20WithErrorsMintable. + * @dev It allows an owner to mint tokens and users to burn tokens. Mint amounts are public. */ contract ConfidentialERC20WithErrorsMintableBurnable is SepoliaZamaFHEVMConfig, ConfidentialERC20WithErrorsMintable { /** diff --git a/contracts/ERC20Encryption/ConfidentialERC20WithErrorsWrapped.sol b/contracts/ERC20Encryption/ConfidentialERC20WithErrorsWrapped.sol index 81d6212..95af349 100644 --- a/contracts/ERC20Encryption/ConfidentialERC20WithErrorsWrapped.sol +++ b/contracts/ERC20Encryption/ConfidentialERC20WithErrorsWrapped.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: BSD-3-Clause-Clear pragma solidity ^0.8.24; import "fhevm/lib/TFHE.sol"; diff --git a/contracts/ERC20Encryption/CustomConfidentialERC20WithErrors.sol b/contracts/ERC20Encryption/CustomConfidentialERC20WithErrors.sol index d9619c0..aca74b1 100644 --- a/contracts/ERC20Encryption/CustomConfidentialERC20WithErrors.sol +++ b/contracts/ERC20Encryption/CustomConfidentialERC20WithErrors.sol @@ -10,9 +10,8 @@ import {SepoliaZamaFHEVMConfig} from "fhevm/config/ZamaFHEVMConfig.sol"; import {ConfidentialERC20Base} from "./ConfidentialERC20Base.sol"; import {TFHE} from "fhevm/lib/TFHE.sol"; /** - * @title ConfidentialERC20WithErrorsMintable. - * @notice This contract inherits ConfidentialERC20WithErrors. - * @dev It allows an owner to mint tokens. Mint amounts are public. + * @title CustomConfidentialERC20WithErrors. + * @notice This contract inherits ConfidentialERC20Base to allow implementation contracts to inherit both from ConfidentialERC20WithErrors and ConfidentialERC20Wrapped. */ enum ErrorCodes { @@ -21,8 +20,6 @@ enum ErrorCodes { UNSUFFICIENT_APPROVAL } -event Mint(address indexed to, uint64 amount); - abstract contract CustomConfidentialERC20WithErrors is ConfidentialERC20Base, SepoliaZamaFHEVMConfig, diff --git a/contracts/ERC20Encryption/CustomConfidentialERC20WithErrorsMintable.sol b/contracts/ERC20Encryption/CustomConfidentialERC20WithErrorsMintable.sol deleted file mode 100644 index b053e9d..0000000 --- a/contracts/ERC20Encryption/CustomConfidentialERC20WithErrorsMintable.sol +++ /dev/null @@ -1,32 +0,0 @@ -// SPDX-License-Identifier: BSD-3-Clause-Clear -pragma solidity ^0.8.24; - -import "fhevm/lib/TFHE.sol"; -import {ConfidentialERC20WithErrors} from "@httpz-contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol"; -import {CustomConfidentialERC20WithErrors} from "./CustomConfidentialERC20WithErrors.sol"; -import {EncryptedErrors} from "@httpz-contracts/utils/EncryptedErrors.sol"; -import {SepoliaZamaFHEVMConfig} from "fhevm/config/ZamaFHEVMConfig.sol"; -import {Ownable2Step, Ownable} from "@openzeppelin/contracts/access/Ownable2Step.sol"; - -event Mint(address indexed to, uint64 amount); - -contract CustomConfidentialERC20WithErrorsMintable is Ownable2Step, ConfidentialERC20WithErrors { - constructor(string memory name_, string memory symbol_, address owner_) - Ownable(owner_) - ConfidentialERC20WithErrors(name_, symbol_) - {} - - /** - * @notice Mint tokens. - * @param to Address to mint tokens to. - * @param amount Amount of tokens to mint. - */ - function mint(address to, uint64 amount) public virtual onlyOwner { - _unsafeMint(to, amount); - /// @dev Since _totalSupply is not encrypted and we ensure there is no underflow/overflow of encrypted balances - /// during transfers, making _totalSupply invariant during transfers, we know _totalSupply is greater than - /// all individual balances. Hence, the next line forbids any overflow to happen in the _unsafeMint above. - _totalSupply = _totalSupply + amount; - emit Mint(to, amount); - } -} diff --git a/contracts/ERC20Encryption/CustomConfidentialERC20Wrapped.sol b/contracts/ERC20Encryption/CustomConfidentialERC20Wrapped.sol index ab28922..7163408 100644 --- a/contracts/ERC20Encryption/CustomConfidentialERC20Wrapped.sol +++ b/contracts/ERC20Encryption/CustomConfidentialERC20Wrapped.sol @@ -12,6 +12,7 @@ import {ConfidentialERC20Base} from "./ConfidentialERC20Base.sol"; /** * @title ConfidentialERC20Wrapped. * @notice This contract allows users to wrap/unwrap trustlessly ERC20 tokens to ConfidentialERC20 tokens. + * It inherits ConfidentialERC20Base to allow implementation contracts to inherit both from ConfidentialERC20WithErrors and ConfidentialERC20Wrapped. * @dev This implementation does not support tokens with rebase functions or tokens with a fee on transfer. * All ERC20 tokens must have decimals superior or equal to 6 decimals. */ diff --git a/contracts/IndexFundFactory.sol b/contracts/IndexFundFactory.sol index df9eda9..9e6c8ae 100644 --- a/contracts/IndexFundFactory.sol +++ b/contracts/IndexFundFactory.sol @@ -13,6 +13,13 @@ import {IIndexFund} from "./interfaces/IIndexFund.sol"; import {IHooks} from "@uniswap/v4-core/src/interfaces/IHooks.sol"; import {MarketDataFetcher} from "./marketData/MarketDataFetcher.sol"; +/** + * @title IndexFundFactory + * @notice Factory contract for creating and managing confidential index funds. + * @dev This contract is responsible for creating new index funds, managing token-stablecoin pairs, + * and maintaining global parameters for all index funds. It ensures that only valid token pairs + * with proper price feeds can be used in index funds. + */ contract IndexFundFactory is IIndexFundFactory, Ownable { mapping(bytes32 => IIndexFund) public indexTokensAndStablecoinToIndexFund; @@ -30,6 +37,12 @@ contract IndexFundFactory is IIndexFundFactory, Ownable { uint8 numberOfSwapsToBatch = 2; + /** + * @param _swapsManagerProxy Address of the swaps manager contract + * @param _markerDataFetcher Address of the market data fetcher contract + * @param _defaultSharePrice Initial share price for new index funds + * @param _feeDivisor Divisor used to calculate fees for new index funds + */ constructor(address _swapsManagerProxy, address _markerDataFetcher, uint256 _defaultSharePrice, uint256 _feeDivisor) Ownable(msg.sender) { @@ -139,6 +152,10 @@ contract IndexFundFactory is IIndexFundFactory, Ownable { feeDivisor = newFeeDivisor; } + /** + * @notice Updates the number of swaps that need to be batched before processing. + * @param newNumberOfSwapsToBatch The new number of swaps to batch + */ function setNumberOfSwapsToBatch(uint8 newNumberOfSwapsToBatch) external onlyOwner { numberOfSwapsToBatch = newNumberOfSwapsToBatch; } diff --git a/contracts/IndexFundToken.sol b/contracts/IndexFundToken.sol index 80f2726..b0bd8be 100644 --- a/contracts/IndexFundToken.sol +++ b/contracts/IndexFundToken.sol @@ -6,17 +6,32 @@ import "fhevm/lib/TFHE.sol"; import "fhevm/config/ZamaFHEVMConfig.sol"; import "./ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol"; -/// @notice This contract implements an encrypted ERC20-like token with confidential balances using Zama's FHE library. -/// @dev It supports typical ERC20 functionality such as transferring tokens, minting, and setting allowances, -/// @dev but uses encrypted data types. +/** + * @title IndexFundToken + * @notice Implements a confidential ERC20 token for index funds using Zama's FHE (Fully Homomorphic Encryption) + * @dev This contract extends ConfidentialERC20WithErrorsMintableBurnable to provide encrypted token functionality + * for index funds. It enables confidential transfers, minting, and burning of tokens while maintaining + * privacy of balances and transactions. + * + * Key features: + * - Encrypted balance tracking using FHE + * - Confidential transfers between accounts + * - Minting and burning capabilities + * - Allowance management with encrypted values + * - Transient balance access for authorized parties + */ contract IndexFundToken is SepoliaZamaFHEVMConfig, ConfidentialERC20WithErrorsMintableBurnable { - /// @notice Constructor to initialize the token's name and symbol, and set up the owner - /// @param name_ The name of the token - /// @param symbol_ The symbol of the token constructor(string memory name_, string memory symbol_) ConfidentialERC20WithErrorsMintableBurnable(name_, symbol_, msg.sender) {} + /** + * @notice Allows temporary access to an account's encrypted balance + * @param account The address of the account whose balance to access + * @return The encrypted balance of the account + * @dev This function enables temporary access to encrypted balances for authorized parties + * while maintaining confidentiality. The balance is only accessible to the caller. + */ function balanceOfAllow(address account) public returns (euint64) { euint64 balance = _balances[account]; TFHE.allowTransient(balance, msg.sender); diff --git a/contracts/interfaces/IIndexFund.sol b/contracts/interfaces/IIndexFund.sol index 2361b57..cebd828 100644 --- a/contracts/interfaces/IIndexFund.sol +++ b/contracts/interfaces/IIndexFund.sol @@ -4,9 +4,9 @@ pragma solidity 0.8.26; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "../IndexFundToken.sol"; -import { einput } from "fhevm/lib/TFHE.sol"; -import { ConfidentialERC20Wrapped } from "@httpz-contracts/token/ERC20/ConfidentialERC20Wrapped.sol"; -import { euint64, eaddress } from "fhevm/lib/TFHE.sol"; +import {einput} from "fhevm/lib/TFHE.sol"; +import {ConfidentialERC20Wrapped} from "@httpz-contracts/token/ERC20/ConfidentialERC20Wrapped.sol"; +import {euint64, eaddress} from "fhevm/lib/TFHE.sol"; interface IIndexFund { error InsufficientAllowance(eaddress allower, address token); diff --git a/contracts/lib/IndexFundStateManagement.sol b/contracts/lib/IndexFundStateManagement.sol index 837410f..d0be55f 100644 --- a/contracts/lib/IndexFundStateManagement.sol +++ b/contracts/lib/IndexFundStateManagement.sol @@ -1,17 +1,17 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import { IMarketDataFetcher } from "../interfaces/IMarketDataFetcher.sol"; -import { SwapsManager } from "../swaps/SwapsManager.sol"; -import { IndexFundFactory } from "../IndexFundFactory.sol"; -import { TFHE, eaddress, euint256 } from "fhevm/lib/TFHE.sol"; -import { ConfidentialIndexFund } from "../ConfidentialIndexFund.sol"; -import { PoolKey } from "@uniswap/v4-core/src/types/PoolKey.sol"; -import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; -import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; -import { IndexFundToken } from "../IndexFundToken.sol"; -import { ConfidentialERC20WithErrorsWrapped } from "../ERC20Encryption/ConfidentialERC20WithErrorsWrapped.sol"; -import { MarketDataFetcher } from "../marketData/MarketDataFetcher.sol"; +import {IMarketDataFetcher} from "../interfaces/IMarketDataFetcher.sol"; +import {SwapsManager} from "../swaps/SwapsManager.sol"; +import {IndexFundFactory} from "../IndexFundFactory.sol"; +import {TFHE, eaddress, euint256} from "fhevm/lib/TFHE.sol"; +import {ConfidentialIndexFund} from "../ConfidentialIndexFund.sol"; +import {PoolKey} from "@uniswap/v4-core/src/types/PoolKey.sol"; +import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {IndexFundToken} from "../IndexFundToken.sol"; +import {ConfidentialERC20WithErrorsWrapped} from "../ERC20Encryption/ConfidentialERC20WithErrorsWrapped.sol"; +import {MarketDataFetcher} from "../marketData/MarketDataFetcher.sol"; library IndexFundStateManagement { error AmountToSwapTooBig(uint256 amount); @@ -39,13 +39,20 @@ library IndexFundStateManagement { uint256 sharePrice; } - function preprocessSwapsOnMint( - IndexFundState storage self, - uint256 decryptedAmount - ) public returns (uint256 totalStablecoinIn, uint256 feeAmount) { + /** + * @notice Preprocesses the swaps needed when minting new shares: calculates fees and distributes the + * stablecoin amount across index tokens based on market caps. + * @param decryptedAmount The amount of stablecoin to process + * @return totalStablecoinIn The amount of stablecoin available for swaps after fees + * @return feeAmount The amount of fees collected + */ + function preprocessSwapsOnMint(IndexFundState storage self, uint256 decryptedAmount) + public + returns (uint256 totalStablecoinIn, uint256 feeAmount) + { address[] memory indexTokens = self.indexTokens; - (uint256 _totalIndexMarketCap, uint256[] memory marketCaps) = IMarketDataFetcher(self.marketDataFetcher) - .getIndexMarketCaps(indexTokens); + (uint256 _totalIndexMarketCap, uint256[] memory marketCaps) = + IMarketDataFetcher(self.marketDataFetcher).getIndexMarketCaps(indexTokens); self.totalIndexMarketCap = _totalIndexMarketCap; uint256 feeDivisor = IndexFundFactory(self.indexFundFactory).feeDivisor(); @@ -53,18 +60,18 @@ library IndexFundStateManagement { self.collectedFees += feeAmount; totalStablecoinIn = decryptedAmount - feeAmount; - uint256[] memory stablecoinAmountsToSwap = _computeAmountsToSwapOnMint( - self, - totalStablecoinIn, - _totalIndexMarketCap, - marketCaps - ); + uint256[] memory stablecoinAmountsToSwap = + _computeAmountsToSwapOnMint(self, totalStablecoinIn, _totalIndexMarketCap, marketCaps); self.pendingStablecoinToTokenSwapsCounter++; for (uint256 i = 0; i < indexTokens.length; i++) { self.tokenToPendingStablecoinSwapsAmount[indexTokens[i]] += stablecoinAmountsToSwap[i]; } } + /** + * @notice Processes the pending stablecoin to token swaps after minting. + * @dev Executes the swaps for each index token using the stored pending amounts. + */ function processSwapsOnMint(IndexFundState storage self) public { self.pendingStablecoinToTokenSwapsCounter = 0; address[] memory indexTokens = self.indexTokens; @@ -98,10 +105,17 @@ library IndexFundStateManagement { } } - function computeAmountsToSwapOrRedeemOnBurn( - IndexFundState storage self, - uint256 decryptedAmount - ) public view returns (uint256[] memory tokenAmountsToRedeemOrSwap) { + /** + * @notice Computes the amounts of each index token to swap or redeem when burning shares. Calculates proportional amounts based on the user's + * share of the total supply. + * @param decryptedAmount The amount of shares being burned + * @return tokenAmountsToRedeemOrSwap Array of token amounts to swap or redeem + */ + function computeAmountsToSwapOrRedeemOnBurn(IndexFundState storage self, uint256 decryptedAmount) + public + view + returns (uint256[] memory tokenAmountsToRedeemOrSwap) + { address[] memory indexTokens = self.indexTokens; uint256 sharesEmitted = self.indexFundToken.totalSupply(); require(sharesEmitted > 0, "No shares emitted"); @@ -120,10 +134,16 @@ library IndexFundStateManagement { return tokenAmountsToRedeemOrSwap; } - function processSwapsOnBurn( - IndexFundState storage self, - uint256[] memory tokenAmountsToSwap - ) public returns (uint256 stablecoinToSendBack) { + /** + * @notice Processes the token to stablecoin swaps when burning shares. + * @dev Executes swaps for each index token and accumulates the stablecoin received. + * @param tokenAmountsToSwap Array of token amounts to swap + * @return stablecoinToSendBack Total amount of stablecoin received from swaps + */ + function processSwapsOnBurn(IndexFundState storage self, uint256[] memory tokenAmountsToSwap) + public + returns (uint256 stablecoinToSendBack) + { require(self.pendingTokenToStablecoinSwapsCounter >= self.numberOfSwapsToBatch, "Not enough swaps to batch"); address[] memory indexTokens = self.indexTokens; PoolKey[] memory poolKeys = self.poolKeys; @@ -159,11 +179,12 @@ library IndexFundStateManagement { } } - function computeStablecoinToSendBack( - IndexFundState storage self, - uint256[] memory tokenAmountsToSwap - ) public returns (uint256 stablecoinToSendBack) {} - + /** + * @notice Sends index tokens back to the user when burning shares. + * @dev Transfers each index token to the user in proportion to their burned shares. + * @param user The address of the user receiving the tokens + * @param tokenAmountsToRedeemOrSwap Array of token amounts to send + */ function sendTokensBackOnBurn( IndexFundState storage self, address user, @@ -174,7 +195,7 @@ library IndexFundStateManagement { address token = tokens[i]; uint256 amountToRedeem = tokenAmountsToRedeemOrSwap[i]; if (token == address(0)) { - (bool transfer, ) = user.call{ value: amountToRedeem }(""); + (bool transfer,) = user.call{value: amountToRedeem}(""); if (!transfer) { revert TransferFailed( address(0), @@ -187,10 +208,7 @@ library IndexFundStateManagement { bool transfer = IERC20(token).transfer(user, tokenAmountsToRedeemOrSwap[i]); if (!transfer) { revert TransferFailed( - token, - TFHE.asEaddress(address(this)), - TFHE.asEaddress(user), - TFHE.asEuint256(amountToRedeem) + token, TFHE.asEaddress(address(this)), TFHE.asEaddress(user), TFHE.asEuint256(amountToRedeem) ); } } @@ -223,9 +241,7 @@ library IndexFundStateManagement { amounts[i] = (totalAmount * marketCaps[i]) / _totalIndexMarketCap; // Approve token for swapping with a permit valid for 1 day. SwapsManager(self.swapsManagerProxy).approveTokenWithPermit2( - self.indexTokens[i], - uint160(amounts[i]), - uint48(block.timestamp + 1 days) + self.indexTokens[i], uint160(amounts[i]), uint48(block.timestamp + 1 days) ); } return amounts; diff --git a/contracts/marketData/MarketDataFetcher.sol b/contracts/marketData/MarketDataFetcher.sol index d7d970a..6b0acda 100644 --- a/contracts/marketData/MarketDataFetcher.sol +++ b/contracts/marketData/MarketDataFetcher.sol @@ -6,6 +6,13 @@ import {IMarketDataFetcher} from "../interfaces/IMarketDataFetcher.sol"; import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; +/** + * @title MarketDataFetcher + * @notice Fetches and manages market data for tokens + * @dev This contract integrates with Chainlink price feeds to provide real-time token prices + * and calculates market capitalizations. It maintains a mapping of tokens to their price feeds + * and handles special cases for native ETH and wrapped BTC. + */ contract MarketDataFetcher is IMarketDataFetcher, Ownable { uint256 public ETH_TOTAL_SUPPLY = 120_450_000; @@ -18,10 +25,10 @@ contract MarketDataFetcher is IMarketDataFetcher, Ownable { constructor() Ownable(msg.sender) {} /** - * @notice Calculates the total market capitalization for an index and individual token market caps. - * @param indexTokenAddresses Array of token addresses. - * @return totalMarketCap The aggregated market capitalization. - * @return individualMarketCaps Array of market capitalization values for each token. + * @notice Calculates the total market capitalization for an index and individual token market caps + * @param indexTokenAddresses Array of token addresses in the index + * @return totalMarketCap The aggregated market capitalization of all tokens + * @return individualMarketCaps Array of market capitalization values for each token */ function getIndexMarketCaps(address[] calldata indexTokenAddresses) external @@ -37,22 +44,44 @@ contract MarketDataFetcher is IMarketDataFetcher, Ownable { return (totalMarketCap, individualMarketCaps); } + /** + * @notice Updates the total supply of ETH used for market cap calculations + * @param _ethTotalSupply The new total supply value + */ function setETHTotalSupply(uint256 _ethTotalSupply) external onlyOwner { ETH_TOTAL_SUPPLY = _ethTotalSupply; } + /** + * @notice Updates the total supply of BTC used for market cap calculations + * @param _BTCTotalSupply The new total supply value + */ function setBTCTotalSupply(uint256 _BTCTotalSupply) external onlyOwner { BTC_TOTAL_SUPPLY = _BTCTotalSupply; } + /** + * @notice Adds a new price feed for a token + * @param token The address of the token + * @param dataFeed The address of the Chainlink price feed + */ function addDataFeed(address token, address dataFeed) external onlyOwner { tokenToUSDDataFeeds[token] = dataFeed; } + /** + * @notice Removes a price feed for a token + * @param token The address of the token whose feed should be removed + */ function removeDataFeed(address token) external onlyOwner { delete tokenToUSDDataFeeds[token]; } + /** + * @notice Calculates the market capitalization for a specific token + * @param token The address of the token + * @return The market capitalization in USD (price * total supply) + */ function getTokenMarketCap(address token) public view returns (uint256) { address tokenDataFeed = tokenToUSDDataFeeds[token]; uint256 price = getTokenPrice(tokenDataFeed); @@ -60,12 +89,20 @@ contract MarketDataFetcher is IMarketDataFetcher, Ownable { return price * totalSupply; } + /** + * @notice Gets the price feed address for a token + * @param token The address of the token + * @return The address of the token's price feed + */ function getTokenDataFeed(address token) public view returns (address) { return tokenToUSDDataFeeds[token]; } /** - * Returns the latest answer. + * @notice Gets the latest price for a token from its price feed + * @param token The address of the token's price feed + * @return The token price in USD with 6 decimals + * @dev Reverts if the price feed doesn't exist */ function getTokenPrice(address token) public view returns (uint256) { // retrieve the correct data feed @@ -83,6 +120,11 @@ contract MarketDataFetcher is IMarketDataFetcher, Ownable { return (keccak256(abi.encodePacked((a))) == keccak256(abi.encodePacked((b)))); } + /** + * @notice Gets the total supply for a token, handling special cases for ETH and BTC + * @param token The address of the token + * @return The total supply of the token + */ function _getTokenTotalSupply(address token) internal view returns (uint256) { if (_compareStrings(ERC20(token).symbol(), "WBTC")) { return BTC_TOTAL_SUPPLY; diff --git a/contracts/swaps/SwapsManager.sol b/contracts/swaps/SwapsManager.sol index dd47026..7ec4be9 100644 --- a/contracts/swaps/SwapsManager.sol +++ b/contracts/swaps/SwapsManager.sol @@ -17,6 +17,13 @@ import {PoolKey, Currency} from "@uniswap/v4-core/src/types/PoolKey.sol"; import {ISwapsManager} from "../interfaces/ISwapsManager.sol"; import {equals, CurrencyLibrary} from "@uniswap/v4-core/src/types/Currency.sol"; +/** + * @title SwapsManager + * @notice Manages token swaps using Uniswap V4 and Universal Router + * @dev This contract handles the execution of swaps between tokens and stablecoins, + * including permit2 approvals and swap execution through Uniswap V4 pools. + * It is upgradeable and ownable for administrative control. + */ contract SwapsManager is Initializable, UUPSUpgradeable, OwnableUpgradeable, ISwapsManager { UniversalRouter public router; @@ -24,11 +31,27 @@ contract SwapsManager is Initializable, UUPSUpgradeable, OwnableUpgradeable, ISw IPermit2 public permit2; + /** + * @notice Approves a token for spending by the permit2 contract + * @param token The address of the token to approve + * @param amount The amount to approve + * @param expiration The expiration timestamp for the approval + */ function approveTokenWithPermit2(address token, uint160 amount, uint48 expiration) external { IERC20(token).approve(address(permit2), type(uint256).max); permit2.approve(token, address(router), amount, expiration); } + /** + * @notice Executes a swap between tokens using Uniswap V4 + * @param key The pool key containing the token pair information + * @param amountIn The amount of input token to swap + * @param minAmountOut The minimum amount of output token to receive + * @param deadline The deadline for the swap execution + * @param stablecoinForToken Whether the swap is from stablecoin to token + * @param stablecoinAddress The address of the stablecoin + * @return amountOut The amount of output token received + */ function swap( PoolKey calldata key, uint128 amountIn, @@ -98,6 +121,12 @@ contract SwapsManager is Initializable, UUPSUpgradeable, OwnableUpgradeable, ISw return amountOut; } + /** + * @notice Initializes the contract with required addresses + * @param _router The address of the Universal Router + * @param _poolManager The address of the Uniswap V4 Pool Manager + * @param _permit2 The address of the Permit2 contract + */ function initialize(address _router, address _poolManager, address _permit2) public initializer { __Ownable_init(msg.sender); __UUPSUpgradeable_init(); @@ -106,5 +135,9 @@ contract SwapsManager is Initializable, UUPSUpgradeable, OwnableUpgradeable, ISw permit2 = IPermit2(_permit2); } + /** + * @notice Authorizes an upgrade to a new implementation + * @param newImplementation The address of the new implementation + */ function _authorizeUpgrade(address newImplementation) internal override onlyOwner {} } diff --git a/contracts/test/testERC20.sol b/contracts/test/testERC20.sol index f23376a..dcf6a8b 100644 --- a/contracts/test/testERC20.sol +++ b/contracts/test/testERC20.sol @@ -11,11 +11,11 @@ contract TestErc20 is ERC20, Ownable { _mint(to, amount); } - function decimals() public view override returns (uint8) { + function decimals() public pure override returns (uint8) { return 6; } - function totalSupply() public view override returns (uint256) { + function totalSupply() public pure override returns (uint256) { return 1e6; } } diff --git a/out/ConfidentialERC20Base.sol/ConfidentialERC20Base.json b/out/ConfidentialERC20Base.sol/ConfidentialERC20Base.json new file mode 100644 index 0000000..2881dae --- /dev/null +++ b/out/ConfidentialERC20Base.sol/ConfidentialERC20Base.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"euint64"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"euint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"encryptedAmount","type":"bytes32","internalType":"einput"},{"name":"inputProof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"euint64"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"encryptedAmount","type":"bytes32","internalType":"einput"},{"name":"inputProof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"euint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"euint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"encryptedAmount","type":"bytes32","internalType":"einput"},{"name":"inputProof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"placeholder","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"transferId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"TFHESenderNotAllowed","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,bytes32,bytes)":"b32c1001","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,bytes32,bytes)":"7b7e0a5a","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,bytes32,bytes)":"9a094352","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TFHESenderNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"placeholder\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"transferId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"euint64\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"euint64\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"einput\",\"name\":\"encryptedAmount\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"inputProof\",\"type\":\"bytes\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"euint64\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"einput\",\"name\":\"encryptedAmount\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"inputProof\",\"type\":\"bytes\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"euint64\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"euint64\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"einput\",\"name\":\"encryptedAmount\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"inputProof\",\"type\":\"bytes\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"params\":{\"owner\":\"Owner address.\",\"placeholder\":\"Placeholder.\",\"spender\":\"Spender address.\"}},\"Transfer(address,address,uint256)\":{\"params\":{\"from\":\"Sender address.\",\"to\":\"Receiver address.\",\"transferId\":\"If the implementation does not support error handling, it must be set to a default placeholder (typically equal to max(uint256). However, it must be set to a transferId if the implementation supports encrypted error handling.\"}}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"errors\":{\"TFHESenderNotAllowed()\":[{\"notice\":\"Returned when the `sender` is not allowed to access a value.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"notice\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}.\"},\"Transfer(address,address,uint256)\":{\"notice\":\"Emitted when tokens are moved from one account (`from`) to another (`to`).\"}},\"kind\":\"user\",\"methods\":{\"allowance(address,address)\":{\"notice\":\"See {IConfidentialERC20-allowance}.\"},\"approve(address,bytes32,bytes)\":{\"notice\":\"See {IConfidentialERC20-approve}.\"},\"approve(address,uint256)\":{\"notice\":\"See {IConfidentialERC20-approve}.\"},\"balanceOf(address)\":{\"notice\":\"See {IConfidentialERC20-balanceOf}.\"},\"decimals()\":{\"notice\":\"See {IConfidentialERC20-decimals}.\"},\"name()\":{\"notice\":\"See {IConfidentialERC20-name}.\"},\"symbol()\":{\"notice\":\"See {IConfidentialERC20-symbol}.\"},\"totalSupply()\":{\"notice\":\"See {IConfidentialERC20-totalSupply}.\"},\"transfer(address,bytes32,bytes)\":{\"notice\":\"See {IConfidentialERC20-transfer}.\"},\"transfer(address,uint256)\":{\"notice\":\"See {IConfidentialERC20-transfer}.\"},\"transferFrom(address,address,bytes32,bytes)\":{\"notice\":\"See {IConfidentialERC20-transferFrom}.\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"See {IConfidentialERC20-transferFrom}.\"}},\"notice\":\"Centralizes initialization of ConfidentialERC20 for diamond inheritance\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ERC20Encryption/ConfidentialERC20Base.sol\":\"ConfidentialERC20Base\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@chainlink/=lib/chainlink/\",\":@ensdomains/=lib/v4-core/node_modules/@ensdomains/\",\":@httpz-contracts/=lib/httpz-contracts/contracts/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/universal-router/=lib/universal-router.git/\",\":@uniswap/v2-core/=lib/v2-core/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/\",\":@uniswap/v4-core/=lib/v4-core/\",\":@uniswap/v4-periphery/=lib/v4-periphery/\",\":chainlink/=lib/chainlink/\",\":ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":fhevm-contracts/=node_modules/fhevm-contracts/\",\":fhevm-core-contracts/=node_modules/fhevm-core-contracts/\",\":fhevm/=node_modules/fhevm/\",\":forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":httpz-contracts/=lib/httpz-contracts/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":permit2/=lib/permit2/\",\":solmate/=lib/permit2/lib/solmate/\",\":universal-router.git/=lib/universal-router.git/\",\":v2-core/=lib/v2-core/contracts/\",\":v3-core/=lib/v3-core/\",\":v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/\",\":v4-core/=lib/v4-core/src/\",\":v4-periphery/=lib/v4-periphery/\"],\"viaIR\":true},\"sources\":{\"contracts/ERC20Encryption/ConfidentialERC20Base.sol\":{\"keccak256\":\"0xa622900eae5b1f80c956ec16afec6e4ef6af141d7973b6d52167a86ae988272c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://45dcc2e65f2b601bf132eaae21b1ed2e5dd67c9644e6edcf856ea3274444b04e\",\"dweb:/ipfs/QmR4XvcnxE3JBfPNpLcyvPssdBqtMTd76gm6BWczaSMi9D\"]},\"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol\":{\"keccak256\":\"0x8b45e5bb2fd9212f99e61b4d25b9c9d5ed7cb1a9a684aac34f752c568ef16c76\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://1ca71bb5bfbb2f8a0779f8394baeea01680619637abddb572017d05d96862591\",\"dweb:/ipfs/QmPCzGBE1m6WtDZxrVL5jzkduNaS7fjtYovUWdnzN34qjh\"]},\"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol\":{\"keccak256\":\"0xe016a085f72ca3cf6d78ec1cb2182a398106cb7d425e984776a9caab0bad2569\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://3e79dc5075469d660908f5f8b6d0c863b14459d60a0b06fb786d58de8cf30a94\",\"dweb:/ipfs/QmePGRGtoWBnQ8T6ZRyZgiwVh4r67kcmWejwKgjyYN4AAY\"]},\"lib/httpz-contracts/contracts/utils/TFHEErrors.sol\":{\"keccak256\":\"0x5fef7c2d7d4449d724a2800b37dfcc61e2b635f2747378ce222b9187425f2d13\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://7c2ef113faaec2d74c8d958f80687d0b676082d6231720917aaa8aa934d689a3\",\"dweb:/ipfs/QmNn474JDQ5zvVDwEuicJs6Xq8YEXWGZLoW4KeTWDVG31f\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"node_modules/fhevm/lib/Impl.sol\":{\"keccak256\":\"0x89d4968cd956a8931f1a8a177b3bef1c6cf88a03665083db74430add50b88f21\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://aaaef2c82d56dacfb08946842ea1ce26757d13f3251de62fa79222232dfcb43c\",\"dweb:/ipfs/QmQ6QZPxJw9jb3qjRYCX7pMQVoYogjTsYgmdEnB3EnwFRy\"]},\"node_modules/fhevm/lib/TFHE.sol\":{\"keccak256\":\"0x221799c8332f83ab65a0b71746409f0c2c89f1cd8d9ba4091d967c667e1df734\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://2dba387fbc612a2ee64063b0ee6c27304b3944423d11045acc50abd84577fb5f\",\"dweb:/ipfs/QmThptDGnpd8PuncFk1rnQoCzEqwUED622yC9xZgFhwY59\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[],"type":"error","name":"TFHESenderNotAllowed"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"placeholder","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"transferId","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"euint64","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"euint64","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"einput","name":"encryptedAmount","type":"bytes32"},{"internalType":"bytes","name":"inputProof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"euint64","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"einput","name":"encryptedAmount","type":"bytes32"},{"internalType":"bytes","name":"inputProof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"euint64","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"euint64","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"einput","name":"encryptedAmount","type":"bytes32"},{"internalType":"bytes","name":"inputProof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"allowance(address,address)":{"notice":"See {IConfidentialERC20-allowance}."},"approve(address,bytes32,bytes)":{"notice":"See {IConfidentialERC20-approve}."},"approve(address,uint256)":{"notice":"See {IConfidentialERC20-approve}."},"balanceOf(address)":{"notice":"See {IConfidentialERC20-balanceOf}."},"decimals()":{"notice":"See {IConfidentialERC20-decimals}."},"name()":{"notice":"See {IConfidentialERC20-name}."},"symbol()":{"notice":"See {IConfidentialERC20-symbol}."},"totalSupply()":{"notice":"See {IConfidentialERC20-totalSupply}."},"transfer(address,bytes32,bytes)":{"notice":"See {IConfidentialERC20-transfer}."},"transfer(address,uint256)":{"notice":"See {IConfidentialERC20-transfer}."},"transferFrom(address,address,bytes32,bytes)":{"notice":"See {IConfidentialERC20-transferFrom}."},"transferFrom(address,address,uint256)":{"notice":"See {IConfidentialERC20-transferFrom}."}},"version":1}},"settings":{"remappings":["@chainlink/=lib/chainlink/","@ensdomains/=lib/v4-core/node_modules/@ensdomains/","@httpz-contracts/=lib/httpz-contracts/contracts/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@uniswap/universal-router/=lib/universal-router.git/","@uniswap/v2-core/=lib/v2-core/","@uniswap/v3-core/=lib/v3-core/","@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/","@uniswap/v4-core/=lib/v4-core/","@uniswap/v4-periphery/=lib/v4-periphery/","chainlink/=lib/chainlink/","ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","eth-gas-reporter/=node_modules/eth-gas-reporter/","fhevm-contracts/=node_modules/fhevm-contracts/","fhevm-core-contracts/=node_modules/fhevm-core-contracts/","fhevm/=node_modules/fhevm/","forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","httpz-contracts/=lib/httpz-contracts/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","permit2/=lib/permit2/","solmate/=lib/permit2/lib/solmate/","universal-router.git/=lib/universal-router.git/","v2-core/=lib/v2-core/contracts/","v3-core/=lib/v3-core/","v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/","v4-core/=lib/v4-core/src/","v4-periphery/=lib/v4-periphery/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/ERC20Encryption/ConfidentialERC20Base.sol":"ConfidentialERC20Base"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/ERC20Encryption/ConfidentialERC20Base.sol":{"keccak256":"0xa622900eae5b1f80c956ec16afec6e4ef6af141d7973b6d52167a86ae988272c","urls":["bzz-raw://45dcc2e65f2b601bf132eaae21b1ed2e5dd67c9644e6edcf856ea3274444b04e","dweb:/ipfs/QmR4XvcnxE3JBfPNpLcyvPssdBqtMTd76gm6BWczaSMi9D"],"license":"MIT"},"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol":{"keccak256":"0x8b45e5bb2fd9212f99e61b4d25b9c9d5ed7cb1a9a684aac34f752c568ef16c76","urls":["bzz-raw://1ca71bb5bfbb2f8a0779f8394baeea01680619637abddb572017d05d96862591","dweb:/ipfs/QmPCzGBE1m6WtDZxrVL5jzkduNaS7fjtYovUWdnzN34qjh"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol":{"keccak256":"0xe016a085f72ca3cf6d78ec1cb2182a398106cb7d425e984776a9caab0bad2569","urls":["bzz-raw://3e79dc5075469d660908f5f8b6d0c863b14459d60a0b06fb786d58de8cf30a94","dweb:/ipfs/QmePGRGtoWBnQ8T6ZRyZgiwVh4r67kcmWejwKgjyYN4AAY"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/utils/TFHEErrors.sol":{"keccak256":"0x5fef7c2d7d4449d724a2800b37dfcc61e2b635f2747378ce222b9187425f2d13","urls":["bzz-raw://7c2ef113faaec2d74c8d958f80687d0b676082d6231720917aaa8aa934d689a3","dweb:/ipfs/QmNn474JDQ5zvVDwEuicJs6Xq8YEXWGZLoW4KeTWDVG31f"],"license":"BSD-3-Clause-Clear"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"node_modules/fhevm/lib/Impl.sol":{"keccak256":"0x89d4968cd956a8931f1a8a177b3bef1c6cf88a03665083db74430add50b88f21","urls":["bzz-raw://aaaef2c82d56dacfb08946842ea1ce26757d13f3251de62fa79222232dfcb43c","dweb:/ipfs/QmQ6QZPxJw9jb3qjRYCX7pMQVoYogjTsYgmdEnB3EnwFRy"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/lib/TFHE.sol":{"keccak256":"0x221799c8332f83ab65a0b71746409f0c2c89f1cd8d9ba4091d967c667e1df734","urls":["bzz-raw://2dba387fbc612a2ee64063b0ee6c27304b3944423d11045acc50abd84577fb5f","dweb:/ipfs/QmThptDGnpd8PuncFk1rnQoCzEqwUED622yC9xZgFhwY59"],"license":"BSD-3-Clause-Clear"}},"version":1},"id":1} \ No newline at end of file diff --git a/out/ConfidentialERC20WithErrorsMintableBurnable.sol/ConfidentialERC20WithErrorsMintableBurnable.json b/out/ConfidentialERC20WithErrorsMintableBurnable.sol/ConfidentialERC20WithErrorsMintableBurnable.json index 930efdc..7a8745b 100644 --- a/out/ConfidentialERC20WithErrorsMintableBurnable.sol/ConfidentialERC20WithErrorsMintableBurnable.json +++ b/out/ConfidentialERC20WithErrorsMintableBurnable.sol/ConfidentialERC20WithErrorsMintableBurnable.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"},{"name":"owner_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"acceptOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"euint64"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"euint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"encryptedAmount","type":"bytes32","internalType":"einput"},{"name":"inputProof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"euint64"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"amount","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"errorGetCounter","inputs":[],"outputs":[{"name":"errorsCount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getErrorCodeForTransferId","inputs":[{"name":"transferId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"errorCode","type":"uint256","internalType":"euint8"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pendingOwner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"encryptedAmount","type":"bytes32","internalType":"einput"},{"name":"inputProof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"euint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"euint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"encryptedAmount","type":"bytes32","internalType":"einput"},{"name":"inputProof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"placeholder","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Burn","inputs":[{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Mint","inputs":[{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferStarted","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"transferId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"ErrorIndexInvalid","inputs":[]},{"type":"error","name":"ErrorIndexIsNull","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"TFHESenderNotAllowed","inputs":[]},{"type":"error","name":"TotalNumberErrorCodesEqualToZero","inputs":[]}],"bytecode":{"object":"0x60a080604052346102c557611b74803803809161001c828561050c565b83398101906060818303126102c55780516001600160401b0381116102c5578261004791830161052f565b60208201519092906001600160401b0381116102c55760409161006b91840161052f565b9101516001600160a01b038116908190036102c55780156104f957600180546001600160a01b03199081169091555f8054918216831781556001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a381516001600160401b03811161040c57600254600181811c911680156104ef575b60208210146103ee57601f811161048c575b50602092601f821160011461042b57928192935f92610420575b50508160011b915f199060031b1c1916176002555b80516001600160401b03811161040c57600354600181811c91168015610402575b60208210146103ee57601f811161038b575b50602091601f821160011461032b579181925f92610320575b50508160011b915f199060031b1c1916176003555b5f5b60ff811690600282116102fc577fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60154604051631ce2e8d760e31b815260048101849052600160f91b60248201529290602090849060449082905f906001600160a01b03165af19283156102ba575f936102c9575b505f9081526007602052604090208290557fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600546001600160a01b031691823b156102c5575f92604484926040519586938492631974142760e21b845260048401523060248401525af19182156102ba5760ff926102aa575b501660ff811461029657600101610198565b634e487b7160e01b5f52601160045260245ffd5b5f6102b49161050c565b5f610284565b6040513d5f823e3d90fd5b5f80fd5b9092506020813d82116102f4575b816102e46020938361050c565b810103126102c55751915f61020c565b3d91506102d7565b60026080526040516115ef90816105858239608051818181610b540152610e490152f35b015190505f80610181565b601f1982169260035f52805f20915f5b8581106103735750836001951061035b575b505050811b01600355610196565b01515f1960f88460031b161c191690555f808061034d565b9192602060018192868501518155019401920161033b565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c810191602084106103e4575b601f0160051c01905b8181106103d95750610168565b5f81556001016103cc565b90915081906103c3565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610156565b634e487b7160e01b5f52604160045260245ffd5b015190505f80610120565b601f1982169360025f52805f20915f5b868110610474575083600195961061045c575b505050811b01600255610135565b01515f1960f88460031b161c191690555f808061044e565b9192602060018192868501518155019401920161043b565b60025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace601f830160051c810191602084106104e5575b601f0160051c01905b8181106104da5750610106565b5f81556001016104cd565b90915081906104c4565b90607f16906100f4565b631e4fbdf760e01b5f525f60045260245ffd5b601f909101601f19168101906001600160401b0382119082101761040c57604052565b81601f820112156102c5578051906001600160401b03821161040c5760405192610563601f8401601f19166020018561050c565b828452602083830101116102c557815f9260208093018386015e830101529056fe6080806040526004361015610012575f80fd5b5f3560e01c90816306fdde031461090c57508063095ea7b3146108e557806318160ddd146108bb57806323b872dd1461088c5780632893c5b0146106b7578063313ce5671461069c57806367a74a281461067f57806370a0823114610647578063715018a6146105e457806379ba50971461055f5780637b7e0a5a146105425780638da5cb5b1461051b57806395d89b411461040f5780639a094352146103ae5780639dbead421461029f578063a5184baf1461025c578063a9059cbb1461022b578063b32c1001146101f1578063dd62ed3e146101a1578063e30c3978146101795763f2fde38b14610103575f80fd5b346101755760203660031901126101755761011c6109e8565b6101246111db565b60018060a01b0316806bffffffffffffffffffffffff60a01b600154161760015560018060a01b035f54167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227005f80a3005b5f80fd5b34610175575f366003190112610175576001546040516001600160a01b039091168152602090f35b34610175576040366003190112610175576101ba6109e8565b6101c26109fe565b6001600160a01b039182165f908152600560209081526040808320949093168252928352819020549051908152f35b346101755761021f61021361021961020836610a42565b949192943691610dde565b906111ee565b90610abf565b50602060405160018152f35b346101755760403660031901126101755760206102526102496109e8565b60243590610e24565b6040519015158152f35b3461017557602036600319011261017557600435600654811015610290575f526008602052602060405f2054604051908152f35b63d65c1f3360e01b5f5260045ffd5b346101755760203660031901126101755760043567ffffffffffffffff811680910361017557335f52600460205260405f205490811561039a575b5f8051602061159a83398151915254604051638c14cc2160e01b815260048101939093526024830191909152600160f81b6044830152602090829060649082905f906001600160a01b03165af1801561038f575f9061035b575b806103599150335f5260046020528060405f20556103523082611476565b3390611476565b005b506020813d602011610387575b8161037560209383610a89565b81010312610175576103599051610334565b3d9150610368565b6040513d5f823e3d90fd5b905060206103a6611543565b9190506102da565b34610175576080366003190112610175576103c76109e8565b6103cf6109fe565b906064359167ffffffffffffffff8311610175576104096104016103fa61021f953690600401610a14565b3691610dde565b6044356111ee565b91610b14565b34610175575f366003190112610175576040515f6003548060011c90600181168015610511575b6020831081146104fd578285529081156104d9575060011461047b575b6104778361046381850382610a89565b6040519182916020835260208301906109c4565b0390f35b91905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f905b8082106104bf57509091508101602001610463610453565b9192600181602092548385880101520191019092916104a7565b60ff191660208086019190915291151560051b840190910191506104639050610453565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610436565b34610175575f366003190112610175575f546040516001600160a01b039091168152602090f35b346101755761021f61021361055961020836610a42565b90610e24565b34610175575f36600319011261017557600154336001600160a01b03909116036105d157600180546001600160a01b03199081169091555f805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b63118cdaa760e01b5f523360045260245ffd5b34610175575f366003190112610175576105fc6111db565b600180546001600160a01b03199081169091555f80549182168155906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610175576020366003190112610175576001600160a01b036106686109e8565b165f526004602052602060405f2054604051908152f35b34610175575f366003190112610175576020600654604051908152f35b34610175575f36600319011261017557602060405160068152f35b34610175576040366003190112610175576106d06109e8565b60243567ffffffffffffffff8116809103610175576106ed6111db565b6001600160a01b0382165f8181526004602052604081205491939091801561087a575b5f8051602061159a8339815191525460405163f953e42760e01b8152600481019290925260248201859052600160f81b6044830152909260209184916064918391906001600160a01b03165af1801561038f575f90610846575b61078c9250845f5260046020528060405f20556107873082611476565b611476565b815f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602060405183198152a3600154908067ffffffffffffffff8360a01c16019067ffffffffffffffff82116108325767ffffffffffffffff60a01b1990921660a09190911b67ffffffffffffffff60a01b16176001556040519081527f9109de113672aaca72ede8bc906f7aafabee865311ac020fb15c71edf94a0a0190602090a2005b634e487b7160e01b5f52601160045260245ffd5b506020823d602011610872575b8161086060209383610a89565b810103126101755761078c915161076a565b3d9150610853565b506020610885611543565b9050610710565b346101755760603660031901126101755760206102526108aa6109e8565b6108b26109fe565b60443591610b14565b34610175575f36600319011261017557602067ffffffffffffffff60015460a01c16604051908152f35b346101755760403660031901126101755760206102526109036109e8565b60243590610abf565b34610175575f366003190112610175575f6002548060011c906001811680156109ba575b6020831081146104fd578285529081156104d9575060011461095c576104778361046381850382610a89565b91905060025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace915f905b8082106109a057509091508101602001610463610453565b919260018160209254838588010152019101909291610988565b91607f1691610930565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361017557565b602435906001600160a01b038216820361017557565b9181601f840112156101755782359167ffffffffffffffff8311610175576020838186019501011161017557565b6060600319820112610175576004356001600160a01b03811681036101755791602435916044359067ffffffffffffffff821161017557610a8591600401610a14565b9091565b90601f8019910116810190811067ffffffffffffffff821117610aab57604052565b634e487b7160e01b5f52604160045260245ffd5b90610ad490610acd81610eed565b8233610f9f565b6040515f1981526001600160a01b039091169033907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590602090a3600190565b91610b1e81610eed565b6001600160a01b0383165f81815260056020908152604080832033845290915290205493909290610b4f8584611301565b9360ff7f00000000000000000000000000000000000000000000000000000000000000001694856002116102905760076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5460025f9081527fb7c774451310d1be4108bc180d1b52823cb0ee0274a6c0081bcaf94f115fb96d54909391610bda9190846114f1565b9083526004602052610bf0604084205487611301565b96602060018060a01b035f8051602061159a83398151915254166024604051809781936309c00ffd60e11b83528d60048401525af193841561038f575f94610da9575b505f8051602061159a83398151915254604051630ccd46b160e31b81526004810195909552602485018490525f6044860181905260209186916064918391906001600160a01b03165af193841561038f575f94610d75575b5060011161029057610cb0610cc49160209460015f526007865260405f2054906114f1565b610cb9816113b4565b506103528582611476565b606460018060a01b035f8051602061159a8339815191525416965f6040519889948593630ccd46b160e31b8552600485015260248401528160448401525af193841561038f575f94610d3d575b50610d33610d2c86610d2686610d38996113e1565b876114f1565b3383610f9f565b61101c565b600190565b9493506020853d602011610d6d575b81610d5960209383610a89565b810103126101755793519293610d33610d11565b3d9150610d4c565b9093506020813d602011610da1575b81610d9160209383610a89565b810103126101755751925f610c8b565b3d9150610d84565b93506020843d602011610dd6575b81610dc460209383610a89565b81010312610175579251926020610c33565b3d9150610db7565b92919267ffffffffffffffff8211610aab5760405191610e08601f8201601f191660200184610a89565b829481845281830111610175578281602093845f960137010152565b90610e2e81610eed565b335f526004602052610e4460405f205482611301565b9060ff7f0000000000000000000000000000000000000000000000000000000000000000166001116102905760076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5460015f527fb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b82854610d389491610ee7918391610ed39190876114f1565b610edc816113b4565b506107873382611476565b3361101c565b7fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60054604051632fd514cd60e11b81526004810192909252336024830152602090829060449082906001600160a01b03165afa90811561038f575f91610f64575b5015610f5557565b632fa38b3f60e01b5f5260045ffd5b90506020813d602011610f97575b81610f7f60209383610a89565b8101031261017557518015158103610175575f610f4d565b3d9150610f72565b6001600160a01b0381169392908415611009576001600160a01b038316948515610ff65790610ff49495610787925f52600560205260405f20905f526020528260405f2055610fee3084611476565b82611476565b565b85634a1406b160e11b5f5260045260245ffd5b8463e602df0560e01b5f5260045260245ffd5b91926001600160a01b038316929083156111c8576001600160a01b0383169485156111b557906110549161104e611543565b916114f1565b91845f5260046020525f602060408220548581156111a5575b8615611197575b5f8051602061159a8339815191525460405163f953e42760e01b8152600480820194909452848101909301919091526001600160f81b0319841660448301529092839160649183916001600160a01b03165af190811561038f575f91611161575b50926110fc61110e92856111269650885f5260046020528060405f20556107873082611476565b845f52600460205260405f20546113e1565b835f5260046020528060405f20556107873082611476565b6006545f1981019081116108325760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91604051908152a3565b9390506020843d60201161118f575b8161117d60209383610a89565b810103126101755792516110fc6110d5565b3d9150611170565b506111a0611543565b611074565b90506111af611543565b9061106d565b8563ec442f0560e01b5f5260045260245ffd5b83634b637e8f60e11b5f5260045260245ffd5b5f546001600160a01b031633036105d157565b61123d9160209160018060a01b035f8051602061159a8339815191525416905f6040518096819582946302e817ff60e41b845260048401523360248401526080604484015260848301906109c4565b600560f81b606483015203925af190811561038f575f916112cf575b507fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600546001600160a01b0316803b15610175576040516346ce4e4960e11b815260048101839052336024820152905f908290604490829084905af1801561038f576112c2575090565b5f6112cc91610a89565b90565b90506020813d6020116112f9575b816112ea60209383610a89565b8101031261017557515f611259565b3d91506112dd565b9081156113a4575b8015611392575b602090606460018060a01b035f8051602061159a8339815191525416935f60405195869485936334a6d7b960e11b8552600485015260248401528160448401525af190811561038f575f91611363575090565b90506020813d60201161138a575b8161137e60209383610a89565b81010312610175575190565b3d9150611371565b50602061139d611543565b9050611310565b90506113ae611543565b90611309565b60065491905f19831461083257610ff49060018401600655835f5260086020528060405f20553090611476565b6020905f928115611466575b8015611458575b5f8051602061159a83398151915254604051638c14cc2160e01b8152600480820194909452848101909301919091526001600160f81b0319841660448301529092839160649183916001600160a01b03165af190811561038f575f91611363575090565b50611461611543565b6113f4565b9050611470611543565b906113ed565b7fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600546001600160a01b031691823b1561017557604051631974142760e21b815260048101929092526001600160a01b03166024820152905f908290604490829084905af1801561038f576114e75750565b5f610ff491610a89565b9060646020925f60018060a01b035f8051602061159a8339815191525416604051968795869463cb3b940760e01b86526004860152602485015260448401525af190811561038f575f91611363575090565b5f8051602061159a83398151915254604051631ce2e8d760e31b81525f60048201819052600560f81b60248301529091602091839160449183916001600160a01b03165af190811561038f575f9161136357509056feed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea601a2646970667358221220d2302b49d2599ee11d3e9bc67b1d482ca74547781d28420b600cd461c42368e564736f6c634300081a0033","sourceMap":"520:1286:1:-:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;520:1286:1;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;520:1286:1;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;520:1286:1;;;;;;;;1273:26:28;;1269:95;;520:1286:1;;;-1:-1:-1;;;;;;520:1286:1;;;;;;-1:-1:-1;520:1286:1;;;;;;;;;-1:-1:-1;;;;;520:1286:1;;;;3052:40:28;;-1:-1:-1;3052:40:28;520:1286:1;;-1:-1:-1;;;;;520:1286:1;;;;1594:20:18;520:1286:1;;;;;;;;;;;-1:-1:-1;520:1286:1;;;;;;;;;;;-1:-1:-1;520:1286:1;;;;;;;;;;;;;;-1:-1:-1;520:1286:1;;;;;;;;;;;;;;;;;;;1594:20:18;520:1286:1;;;;-1:-1:-1;;;;;520:1286:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;520:1286:1;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2177:3:20;520:1286:1;;;2148:27:20;1594:20:18;2148:27:20;;;;13991:21:156;520:1286:1;;;-1:-1:-1;;;13977:74:156;;;;;520:1286:1;;;-1:-1:-1;;;520:1286:1;;;;;;;;;;13977:74:156;;520:1286:1;;-1:-1:-1;;;;;;;520:1286:1;13977:74:156;;;;;;;-1:-1:-1;13977:74:156;;;2177:3:20;-1:-1:-1;;520:1286:1;;;2245:21:20;520:1286:1;;;;;;;;4586:62:156;520:1286:1;-1:-1:-1;;;;;520:1286:1;;15870:41:156;;;;;-1:-1:-1;520:1286:1;13977:74:156;520:1286:1;;;;;;;;;;;;15870:41:156;;13977:74;15870:41;;520:1286:1;370135:4:157;520:1286:1;;;;15870:41:156;;;;;;;520:1286:1;15870:41:156;;;2177:3:20;;520:1286:1;;;;;;;;2139:7:20;;520:1286:1;;;;-1:-1:-1;520:1286:1;;13977:74:156;520:1286:1;;-1:-1:-1;520:1286:1;15870:41:156;-1:-1:-1;15870:41:156;;;:::i;:::-;;;;;520:1286:1;;;-1:-1:-1;520:1286:1;;;;;15870:41:156;-1:-1:-1;520:1286:1;;13977:74:156;;;;520:1286:1;13977:74:156;;;;;;;;;520:1286:1;13977:74:156;;;:::i;:::-;;;520:1286:1;;;;;13977:74:156;;;;;;;-1:-1:-1;13977:74:156;;2148:27:20;1594:20:18;2341:50:20;;520:1286:1;;;;;;;;2341:50:20;520:1286:1;;;;;;;;;;;;;;;-1:-1:-1;520:1286:1;;;;;;;;;;;-1:-1:-1;520:1286:1;;-1:-1:-1;520:1286:1;;-1:-1:-1;520:1286:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;520:1286:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;520:1286:1;;;;;;;;;-1:-1:-1;520:1286:1;;;;;;;;-1:-1:-1;520:1286:1;;;;;-1:-1:-1;520:1286:1;;;;;;;;;;;;-1:-1:-1;520:1286:1;;;;;-1:-1:-1;520:1286:1;;;;;-1:-1:-1;520:1286:1;;;;;;;;;;1594:20:18;-1:-1:-1;520:1286:1;;-1:-1:-1;520:1286:1;;-1:-1:-1;520:1286:1;;;;;;;;;;;;;;;;;;;;;1594:20:18;520:1286:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:20:18;-1:-1:-1;520:1286:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;520:1286:1;;;;;;;;;-1:-1:-1;520:1286:1;;;;;;;;;;;1269:95:28;1322:31;;;-1:-1:-1;1322:31:28;-1:-1:-1;1322:31:28;520:1286:1;;-1:-1:-1;1322:31:28;520:1286:1;;;;;-1:-1:-1;;520:1286:1;;;;-1:-1:-1;;;;;520:1286:1;;;;;;;;;;:::o;:::-;;;;;;;;;;;;-1:-1:-1;;;;;520:1286:1;;;;;;;;;;;-1:-1:-1;;520:1286:1;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;520:1286:1;;;;;;;;;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c90816306fdde031461090c57508063095ea7b3146108e557806318160ddd146108bb57806323b872dd1461088c5780632893c5b0146106b7578063313ce5671461069c57806367a74a281461067f57806370a0823114610647578063715018a6146105e457806379ba50971461055f5780637b7e0a5a146105425780638da5cb5b1461051b57806395d89b411461040f5780639a094352146103ae5780639dbead421461029f578063a5184baf1461025c578063a9059cbb1461022b578063b32c1001146101f1578063dd62ed3e146101a1578063e30c3978146101795763f2fde38b14610103575f80fd5b346101755760203660031901126101755761011c6109e8565b6101246111db565b60018060a01b0316806bffffffffffffffffffffffff60a01b600154161760015560018060a01b035f54167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227005f80a3005b5f80fd5b34610175575f366003190112610175576001546040516001600160a01b039091168152602090f35b34610175576040366003190112610175576101ba6109e8565b6101c26109fe565b6001600160a01b039182165f908152600560209081526040808320949093168252928352819020549051908152f35b346101755761021f61021361021961020836610a42565b949192943691610dde565b906111ee565b90610abf565b50602060405160018152f35b346101755760403660031901126101755760206102526102496109e8565b60243590610e24565b6040519015158152f35b3461017557602036600319011261017557600435600654811015610290575f526008602052602060405f2054604051908152f35b63d65c1f3360e01b5f5260045ffd5b346101755760203660031901126101755760043567ffffffffffffffff811680910361017557335f52600460205260405f205490811561039a575b5f8051602061159a83398151915254604051638c14cc2160e01b815260048101939093526024830191909152600160f81b6044830152602090829060649082905f906001600160a01b03165af1801561038f575f9061035b575b806103599150335f5260046020528060405f20556103523082611476565b3390611476565b005b506020813d602011610387575b8161037560209383610a89565b81010312610175576103599051610334565b3d9150610368565b6040513d5f823e3d90fd5b905060206103a6611543565b9190506102da565b34610175576080366003190112610175576103c76109e8565b6103cf6109fe565b906064359167ffffffffffffffff8311610175576104096104016103fa61021f953690600401610a14565b3691610dde565b6044356111ee565b91610b14565b34610175575f366003190112610175576040515f6003548060011c90600181168015610511575b6020831081146104fd578285529081156104d9575060011461047b575b6104778361046381850382610a89565b6040519182916020835260208301906109c4565b0390f35b91905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f905b8082106104bf57509091508101602001610463610453565b9192600181602092548385880101520191019092916104a7565b60ff191660208086019190915291151560051b840190910191506104639050610453565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610436565b34610175575f366003190112610175575f546040516001600160a01b039091168152602090f35b346101755761021f61021361055961020836610a42565b90610e24565b34610175575f36600319011261017557600154336001600160a01b03909116036105d157600180546001600160a01b03199081169091555f805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b63118cdaa760e01b5f523360045260245ffd5b34610175575f366003190112610175576105fc6111db565b600180546001600160a01b03199081169091555f80549182168155906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610175576020366003190112610175576001600160a01b036106686109e8565b165f526004602052602060405f2054604051908152f35b34610175575f366003190112610175576020600654604051908152f35b34610175575f36600319011261017557602060405160068152f35b34610175576040366003190112610175576106d06109e8565b60243567ffffffffffffffff8116809103610175576106ed6111db565b6001600160a01b0382165f8181526004602052604081205491939091801561087a575b5f8051602061159a8339815191525460405163f953e42760e01b8152600481019290925260248201859052600160f81b6044830152909260209184916064918391906001600160a01b03165af1801561038f575f90610846575b61078c9250845f5260046020528060405f20556107873082611476565b611476565b815f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602060405183198152a3600154908067ffffffffffffffff8360a01c16019067ffffffffffffffff82116108325767ffffffffffffffff60a01b1990921660a09190911b67ffffffffffffffff60a01b16176001556040519081527f9109de113672aaca72ede8bc906f7aafabee865311ac020fb15c71edf94a0a0190602090a2005b634e487b7160e01b5f52601160045260245ffd5b506020823d602011610872575b8161086060209383610a89565b810103126101755761078c915161076a565b3d9150610853565b506020610885611543565b9050610710565b346101755760603660031901126101755760206102526108aa6109e8565b6108b26109fe565b60443591610b14565b34610175575f36600319011261017557602067ffffffffffffffff60015460a01c16604051908152f35b346101755760403660031901126101755760206102526109036109e8565b60243590610abf565b34610175575f366003190112610175575f6002548060011c906001811680156109ba575b6020831081146104fd578285529081156104d9575060011461095c576104778361046381850382610a89565b91905060025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace915f905b8082106109a057509091508101602001610463610453565b919260018160209254838588010152019101909291610988565b91607f1691610930565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361017557565b602435906001600160a01b038216820361017557565b9181601f840112156101755782359167ffffffffffffffff8311610175576020838186019501011161017557565b6060600319820112610175576004356001600160a01b03811681036101755791602435916044359067ffffffffffffffff821161017557610a8591600401610a14565b9091565b90601f8019910116810190811067ffffffffffffffff821117610aab57604052565b634e487b7160e01b5f52604160045260245ffd5b90610ad490610acd81610eed565b8233610f9f565b6040515f1981526001600160a01b039091169033907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590602090a3600190565b91610b1e81610eed565b6001600160a01b0383165f81815260056020908152604080832033845290915290205493909290610b4f8584611301565b9360ff7f00000000000000000000000000000000000000000000000000000000000000001694856002116102905760076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5460025f9081527fb7c774451310d1be4108bc180d1b52823cb0ee0274a6c0081bcaf94f115fb96d54909391610bda9190846114f1565b9083526004602052610bf0604084205487611301565b96602060018060a01b035f8051602061159a83398151915254166024604051809781936309c00ffd60e11b83528d60048401525af193841561038f575f94610da9575b505f8051602061159a83398151915254604051630ccd46b160e31b81526004810195909552602485018490525f6044860181905260209186916064918391906001600160a01b03165af193841561038f575f94610d75575b5060011161029057610cb0610cc49160209460015f526007865260405f2054906114f1565b610cb9816113b4565b506103528582611476565b606460018060a01b035f8051602061159a8339815191525416965f6040519889948593630ccd46b160e31b8552600485015260248401528160448401525af193841561038f575f94610d3d575b50610d33610d2c86610d2686610d38996113e1565b876114f1565b3383610f9f565b61101c565b600190565b9493506020853d602011610d6d575b81610d5960209383610a89565b810103126101755793519293610d33610d11565b3d9150610d4c565b9093506020813d602011610da1575b81610d9160209383610a89565b810103126101755751925f610c8b565b3d9150610d84565b93506020843d602011610dd6575b81610dc460209383610a89565b81010312610175579251926020610c33565b3d9150610db7565b92919267ffffffffffffffff8211610aab5760405191610e08601f8201601f191660200184610a89565b829481845281830111610175578281602093845f960137010152565b90610e2e81610eed565b335f526004602052610e4460405f205482611301565b9060ff7f0000000000000000000000000000000000000000000000000000000000000000166001116102905760076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5460015f527fb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b82854610d389491610ee7918391610ed39190876114f1565b610edc816113b4565b506107873382611476565b3361101c565b7fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60054604051632fd514cd60e11b81526004810192909252336024830152602090829060449082906001600160a01b03165afa90811561038f575f91610f64575b5015610f5557565b632fa38b3f60e01b5f5260045ffd5b90506020813d602011610f97575b81610f7f60209383610a89565b8101031261017557518015158103610175575f610f4d565b3d9150610f72565b6001600160a01b0381169392908415611009576001600160a01b038316948515610ff65790610ff49495610787925f52600560205260405f20905f526020528260405f2055610fee3084611476565b82611476565b565b85634a1406b160e11b5f5260045260245ffd5b8463e602df0560e01b5f5260045260245ffd5b91926001600160a01b038316929083156111c8576001600160a01b0383169485156111b557906110549161104e611543565b916114f1565b91845f5260046020525f602060408220548581156111a5575b8615611197575b5f8051602061159a8339815191525460405163f953e42760e01b8152600480820194909452848101909301919091526001600160f81b0319841660448301529092839160649183916001600160a01b03165af190811561038f575f91611161575b50926110fc61110e92856111269650885f5260046020528060405f20556107873082611476565b845f52600460205260405f20546113e1565b835f5260046020528060405f20556107873082611476565b6006545f1981019081116108325760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91604051908152a3565b9390506020843d60201161118f575b8161117d60209383610a89565b810103126101755792516110fc6110d5565b3d9150611170565b506111a0611543565b611074565b90506111af611543565b9061106d565b8563ec442f0560e01b5f5260045260245ffd5b83634b637e8f60e11b5f5260045260245ffd5b5f546001600160a01b031633036105d157565b61123d9160209160018060a01b035f8051602061159a8339815191525416905f6040518096819582946302e817ff60e41b845260048401523360248401526080604484015260848301906109c4565b600560f81b606483015203925af190811561038f575f916112cf575b507fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600546001600160a01b0316803b15610175576040516346ce4e4960e11b815260048101839052336024820152905f908290604490829084905af1801561038f576112c2575090565b5f6112cc91610a89565b90565b90506020813d6020116112f9575b816112ea60209383610a89565b8101031261017557515f611259565b3d91506112dd565b9081156113a4575b8015611392575b602090606460018060a01b035f8051602061159a8339815191525416935f60405195869485936334a6d7b960e11b8552600485015260248401528160448401525af190811561038f575f91611363575090565b90506020813d60201161138a575b8161137e60209383610a89565b81010312610175575190565b3d9150611371565b50602061139d611543565b9050611310565b90506113ae611543565b90611309565b60065491905f19831461083257610ff49060018401600655835f5260086020528060405f20553090611476565b6020905f928115611466575b8015611458575b5f8051602061159a83398151915254604051638c14cc2160e01b8152600480820194909452848101909301919091526001600160f81b0319841660448301529092839160649183916001600160a01b03165af190811561038f575f91611363575090565b50611461611543565b6113f4565b9050611470611543565b906113ed565b7fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600546001600160a01b031691823b1561017557604051631974142760e21b815260048101929092526001600160a01b03166024820152905f908290604490829084905af1801561038f576114e75750565b5f610ff491610a89565b9060646020925f60018060a01b035f8051602061159a8339815191525416604051968795869463cb3b940760e01b86526004860152602485015260448401525af190811561038f575f91611363575090565b5f8051602061159a83398151915254604051631ce2e8d760e31b81525f60048201819052600560f81b60248301529091602091839160449183916001600160a01b03165af190811561038f575f9161136357509056feed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea601a2646970667358221220d2302b49d2599ee11d3e9bc67b1d482ca74547781d28420b600cd461c42368e564736f6c634300081a0033","sourceMap":"520:1286:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;520:1286:1;;;;;;:::i;:::-;1500:62:28;;:::i;:::-;520:1286:1;;;;;;;;;;1738:24:29;520:1286:1;;;1738:24:29;520:1286:1;;;;;;;;;1777:43:29;520:1286:1;1777:43:29;;520:1286:1;;;;;;;;;;;-1:-1:-1;;520:1286:1;;;;;;;;-1:-1:-1;;;;;520:1286:1;;;;;;;;;;;;;;-1:-1:-1;;520:1286:1;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;520:1286:1;;;;;;;7824:11:14;520:1286:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1877:61:14;520:1286:1;1894:43:14;520:1286:1;;;:::i;:::-;;;;;;;;:::i;:::-;1894:43:14;;:::i;:::-;1877:61;;:::i;:::-;;520:1286:1;;;1955:4:14;520:1286:1;;;;;;;;;-1:-1:-1;;520:1286:1;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;520:1286:1;;;;;;8215:13:20;520:1286:1;8204:24:20;;;8200:81;;520:1286:1;;8303:18:20;520:1286:1;;;;;;;;;;;;;8200:81:20;8251:19;;;520:1286:1;8251:19:20;520:1286:1;;8251:19:20;520:1286:1;;;;;;-1:-1:-1;;520:1286:1;;;;;;;;;;;;;;1104:10;520:1286;;;;;;;;;2482:22:157;;;212168:64;;520:1286:1;-1:-1:-1;;;;;;;;;;;520:1286:1;;;-1:-1:-1;;;5706:65:156;;520:1286:1;5706:65:156;;520:1286:1;;;;;;;;;;;-1:-1:-1;;;520:1286:1;;;;;;;;;;;;;;-1:-1:-1;;;;;520:1286:1;5706:65:156;;;;;;520:1286:1;5706:65:156;;;520:1286:1;5697:74:156;370021:7:157;5697:74:156;1104:10:1;;520:1286;;;;;;;;;;370832:13:157;370840:4;370832:13;;:::i;:::-;1104:10:1;370021:7:157;;:::i;:::-;520:1286:1;5706:65:156;;520:1286:1;5706:65:156;;520:1286:1;5706:65:156;;;;;;520:1286:1;5706:65:156;;;:::i;:::-;;;520:1286:1;;;;370021:7:157;520:1286:1;;5706:65:156;;;;;-1:-1:-1;5706:65:156;;;520:1286:1;;;;;;;;;212168:64:157;344922:44;;520:1286:1;344922:44:157;;:::i;:::-;212168:64;;;;;520:1286:1;;;;;;-1:-1:-1;;520:1286:1;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;3273:43:14;520:1286:1;;3250:67:14;520:1286:1;;;;;;:::i;:::-;;;;:::i;:::-;;;3273:43:14;:::i;:::-;3250:67;;:::i;520:1286:1:-;;;;;;-1:-1:-1;;520:1286:1;;;;;;;4609:7:14;520:1286:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;4609:7:14;520:1286:1;;;;;;;;;;;;-1:-1:-1;520:1286:1;;-1:-1:-1;520:1286:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;520:1286:1;;;;;;;;;;;;;;;;;;;;-1:-1:-1;520:1286:1;;-1:-1:-1;520:1286:1;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;520:1286:1;;;;;;;;-1:-1:-1;;;;;520:1286:1;;;;;;;;;;;;2512:57:14;520:1286:1;2525:43:14;520:1286:1;;;:::i;2525:43:14:-;2512:57;;:::i;520:1286:1:-;;;;;;-1:-1:-1;;520:1286:1;;;;;;735:10:46;-1:-1:-1;;;;;520:1286:1;;;2339:24:29;2335:96;;1311:13;520:1286:1;;-1:-1:-1;;;;;;520:1286:1;;;;;;-1:-1:-1;520:1286:1;;735:10:46;520:1286:1;;;;;;;-1:-1:-1;;;;;520:1286:1;;3052:40:28;;-1:-1:-1;3052:40:28;520:1286:1;2335:96:29;2386:34;;;520:1286:1;2386:34:29;735:10:46;520:1286:1;;;;2386:34:29;520:1286:1;;;;;;-1:-1:-1;;520:1286:1;;;;1500:62:28;;:::i;:::-;2093:20:29;520:1286:1;;-1:-1:-1;;;;;;520:1286:1;;;;;;-1:-1:-1;520:1286:1;;;;;;;-1:-1:-1;;;;;;520:1286:1;3052:40:28;-1:-1:-1;;3052:40:28;520:1286:1;;;;;;;-1:-1:-1;;520:1286:1;;;;-1:-1:-1;;;;;520:1286:1;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;520:1286:1;;;;;8596:13:20;520:1286:1;;;;;;;;;;;;;-1:-1:-1;;520:1286:1;;;;;;;4295:1:14;520:1286:1;;;;;;;;;-1:-1:-1;;520:1286:1;;;;;;:::i;:::-;;;;;;;;;;;1500:62:28;;:::i;:::-;-1:-1:-1;;;;;520:1286:1;;;;;;;;;;;;;;;;;2482:22:157;;211624:64;;520:1286:1;-1:-1:-1;;;;;;;;;;;520:1286:1;;;-1:-1:-1;;;5329:65:156;;520:1286:1;5329:65:156;;520:1286:1;;;;;;;;;;-1:-1:-1;;;520:1286:1;;;;;;;;;;;;;;;-1:-1:-1;;;;;520:1286:1;5329:65:156;;;;;;520:1286:1;5329:65:156;;;520:1286:1;370021:7:157;5320:74:156;;520:1286:1;;;;;;;;;;;370832:13:157;370840:4;370832:13;;:::i;:::-;370021:7;:::i;:::-;520:1286:1;;5502:43:14;520:1286:1;;;950:17:14;;520:1286:1;;5502:43:14;211757:4:157;520:1286:1;;;;;;;;;;;;;;;-1:-1:-1;;;;520:1286:1;;;;;;;;-1:-1:-1;;;520:1286:1;;211757:4:157;520:1286:1;;;;;;1682:16:19;;520:1286:1;;1682:16:19;520:1286:1;;;;;;;;;;;;;5329:65:156;;520:1286:1;5329:65:156;;520:1286:1;5329:65:156;;;;;;520:1286:1;5329:65:156;;;:::i;:::-;;;520:1286:1;;;;370021:7:157;520:1286:1;;5329:65:156;;;;;-1:-1:-1;5329:65:156;;211624:64:157;344922:44;520:1286:1;344922:44:157;;:::i;:::-;211624:64;;;;520:1286:1;;;;;;-1:-1:-1;;520:1286:1;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;520:1286:1;;;;;;4775:12:14;520:1286:1;;;;;;;;;;;;;;;;-1:-1:-1;;520:1286:1;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;520:1286:1;;;;;4448:5:14;520:1286:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;4448:5:14;520:1286:1;;;;;;;;;;;;-1:-1:-1;520:1286:1;;-1:-1:-1;520:1286:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;520:1286:1;;;;;;;;-1:-1:-1;;520:1286:1;;;;:::o;:::-;;;;-1:-1:-1;;;;;520:1286:1;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;520:1286:1;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;520:1286:1;;;;;;;-1:-1:-1;;;;;520:1286:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;520:1286:1;;;;;-1:-1:-1;520:1286:1;2037:282:14;;2231:6;2037:282;2153:6;;;:::i;:::-;2186:10;;2231:6;:::i;:::-;520:1286:1;;-1:-1:-1;;520:1286:1;;-1:-1:-1;;;;;520:1286:1;;;;2186:10:14;;2253:38;;520:1286:1;;2253:38:14;2308:4;2037:282;:::o;2315:337:18:-;;2454:6;;;:::i;:::-;-1:-1:-1;;;;;520:1286:1;;-1:-1:-1;520:1286:1;;;7824:11:14;520:1286:1;;;;;;;;2489:10:18;520:1286:1;;;;;;;;;;;;3633:33:18;520:1286:1;3633:33:18;;:::i;:::-;3695:75;520:1286:1;6306:25:20;520:1286:1;6294:37:20;;3736:32:18;6294:37:20;6290:94;;6429:21;520:1286:1;;;;3736:32:18;-1:-1:-1;520:1286:1;;;;;-1:-1:-1;;520:1286:1;325937:72:157;;520:1286:1;325937:72:157;;:::i;:::-;520:1286:1;;;3877:9:18;520:1286:1;;3861:33:18;520:1286:1;;;;3861:33:18;;:::i;:::-;520:1286:1;;;;;;;-1:-1:-1;;;;;;;;;;;520:1286:1;;12663:47:156;520:1286:1;;;;;;;;;12663:47:156;;;3877:9:18;12663:47:156;;520:1286:1;12663:47:156;;;;;;;-1:-1:-1;12663:47:156;;;2315:337:18;-1:-1:-1;;;;;;;;;;;;520:1286:1;;;-1:-1:-1;;;6980:68:156;;3877:9:18;6980:68:156;;520:1286:1;;;;12663:47:156;520:1286:1;;;;;-1:-1:-1;520:1286:1;;;;;;;;;;6980:68:156;;520:1286:1;;-1:-1:-1;;;;;;520:1286:1;6980:68:156;;;;;;;-1:-1:-1;6980:68:156;;;2315:337:18;3203:37:20;520:1286:1;3203:37:20;3199:94;;325937:72:157;370021:7;520:1286:1;;;;-1:-1:-1;520:1286:1;6429:21:20;520:1286:1;;;-1:-1:-1;520:1286:1;;325937:72:157;;:::i;:::-;4370:21:18;;;:::i;:::-;;370021:7:157;;;;:::i;:::-;6980:68:156;520:1286:1;;;;;-1:-1:-1;;;;;;;;;;;520:1286:1;;;-1:-1:-1;520:1286:1;;;;;;;;;;6980:68:156;;3877:9:18;6980:68:156;;520:1286:1;12663:47:156;520:1286:1;;;;;;;;6980:68:156;;;;;;;-1:-1:-1;6980:68:156;;;2315:337:18;4597:34;4569:81;325937:72:157;4597:34:18;;;2609:14;4597:34;;:::i;:::-;325937:72:157;;:::i;:::-;2489:10:18;4569:81;;:::i;:::-;2609:14;:::i;:::-;520:1286:1;2315:337:18;:::o;6980:68:156:-;;;;520:1286:1;6980:68:156;;520:1286:1;6980:68:156;;;;;;520:1286:1;6980:68:156;;;:::i;:::-;;;520:1286:1;;;;;;6980:68:156;;4569:81:18;6980:68:156;;;;;-1:-1:-1;6980:68:156;;;;;;520:1286:1;6980:68:156;;520:1286:1;6980:68:156;;;;;;520:1286:1;6980:68:156;;;:::i;:::-;;;520:1286:1;;;;;6980:68:156;;;;;;;-1:-1:-1;6980:68:156;;12663:47;;;520:1286:1;12663:47:156;;520:1286:1;12663:47:156;;;;;;520:1286:1;12663:47:156;;;:::i;:::-;;;520:1286:1;;;;;;;;12663:47:156;;;;;-1:-1:-1;12663:47:156;;520:1286:1;;;;;;;;;;;;;;;;-1:-1:-1;;520:1286:1;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;520:1286:1;;;;;;:::o;1691:548:18:-;;1812:6;;;:::i;:::-;1935:10;-1:-1:-1;520:1286:1;1925:9:18;520:1286:1;;1909:38:18;520:1286:1;-1:-1:-1;520:1286:1;;1909:38:18;;:::i;:::-;1976:70;520:1286:1;6306:25:20;520:1286:1;2013:31:18;6294:37:20;6290:94;;6429:21;520:1286:1;;;;2013:31:18;-1:-1:-1;520:1286:1;;;2199:11:18;;520:1286:1;370021:7:157;;520:1286:1;;325937:72:157;;520:1286:1;325937:72:157;;:::i;:::-;2056:21:18;;;:::i;:::-;;370021:7:157;1935:10:18;370021:7:157;;:::i;:::-;1935:10:18;2199:11;:::i;7864:178:14:-;4586:62:156;520:1286:1;;;-1:-1:-1;;;16241:45:156;;;;;520:1286:1;;;;368839:10:157;520:1286:1;;;;16241:45:156;;520:1286:1;;;;;;-1:-1:-1;;;;;520:1286:1;16241:45:156;;;;;;;-1:-1:-1;16241:45:156;;;7864:178:14;7951:29;;7947:89;;7864:178::o;7947:89::-;8003:22;;;-1:-1:-1;8003:22:14;16241:45:156;-1:-1:-1;8003:22:14;16241:45:156;;;;;;;;;;;;;;;;;:::i;:::-;;;520:1286:1;;;;;;;;;;;;16241:45:156;;;;;;-1:-1:-1;16241:45:156;;4800:431:14;-1:-1:-1;;;;;520:1286:1;;;4800:431:14;;4897:19;;4893:84;;-1:-1:-1;;;;;520:1286:1;;;4991:21:14;;4987:87;;520:1286:1;370021:7:157;520:1286:1;;370021:7:157;520:1286:1;4914:1:14;520:1286:1;5084:11:14;520:1286:1;;;4914:1:14;520:1286:1;5084:27:14;-1:-1:-1;520:1286:1;;;;;-1:-1:-1;520:1286:1;;370832:13:157;370840:4;370832:13;;:::i;:::-;370021:7;;:::i;:::-;4800:431:14:o;4987:87::-;5035:28;;;;4914:1;5035:28;;520:1286:1;;4914:1:14;5035:28;4893:84;4939:27;;;;4914:1;4939:27;;520:1286:1;;4914:1:14;4939:27;3034:276:18;;;-1:-1:-1;;;;;520:1286:1;;;3034:276:18;6337:18:14;;6333:80;;-1:-1:-1;;;;;520:1286:1;;;6427:16:14;;6423:78;;344922:44:157;325937:72;344922:44;;;:::i;:::-;325937:72;;:::i;:::-;520:1286:1;;6353:1:14;520:1286:1;6716:9:14;520:1286:1;;6353:1:14;520:1286:1;;;;;6707:38:14;;2482:22:157;196412:64;;3034:276:18;2482:22:157;;196485:64;;3034:276:18;-1:-1:-1;;;;;;;;;;;520:1286:1;;;-1:-1:-1;;;5329:65:156;;6716:9:14;5329:65:156;;;520:1286:1;;;;;;;;;;;;;;-1:-1:-1;;;;;;520:1286:1;;;;;;;;;;;;;;-1:-1:-1;;;;;520:1286:1;5329:65:156;;;;;;;6353:1:14;5329:65:156;;;3034:276:18;5320:74:156;;370021:7:157;6894:40:14;5320:74:156;;370021:7:157;5320:74:156;520:1286:1;;6353:1:14;520:1286:1;6716:9:14;520:1286:1;;;;6353:1:14;520:1286:1;;370832:13:157;370840:4;370832:13;;:::i;370021:7::-;520:1286:1;6353:1:14;520:1286:1;6716:9:14;520:1286:1;;;6353:1:14;520:1286:1;;6894:40:14;:::i;:::-;520:1286:1;6353:1:14;520:1286:1;6716:9:14;520:1286:1;;;;6353:1:14;520:1286:1;;370832:13:157;370840:4;370832:13;;:::i;370021:7::-;8596:13:20;520:1286:1;-1:-1:-1;;520:1286:1;;;;;;;;3261:42:18;520:1286:1;;;;;;3261:42:18;3034:276::o;5329:65:156:-;;;;520:1286:1;5329:65:156;;520:1286:1;5329:65:156;;;;;;520:1286:1;5329:65:156;;;:::i;:::-;;;520:1286:1;;;;;;370021:7:157;5329:65:156;;;;;-1:-1:-1;5329:65:156;;196485:64:157;344922:44;;;:::i;:::-;196485:64;;196412;344922:44;;;;:::i;:::-;196412:64;;;6423:78:14;6466:24;;;;6353:1;6466:24;;520:1286:1;;6353:1:14;6466:24;6333:80;6378:24;;;;6353:1;6378:24;;520:1286:1;;6353:1:14;6378:24;1796:162:28;1710:6;520:1286:1;-1:-1:-1;;;;;520:1286:1;735:10:46;1855:23:28;1851:101;;1796:162::o;344561:198:157:-;520:1286:1;344561:198:157;520:1286:1;344561:198:157;520:1286:1;;;;;-1:-1:-1;;;;;;;;;;;520:1286:1;;;-1:-1:-1;520:1286:1;;;;;;;;;;;13336:164:156;;;;;520:1286:1;13428:10:156;520:1286:1;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;520:1286:1;;;;13336:164:156;;;;;;;;;-1:-1:-1;13336:164:156;;;344561:198:157;-1:-1:-1;4586:62:156;520:1286:1;-1:-1:-1;;;;;520:1286:1;13510:53:156;;;;;520:1286:1;;-1:-1:-1;;;13510:53:156;;13336:164;13510:53;;520:1286:1;;;13428:10:156;520:1286:1;;;;;-1:-1:-1;;520:1286:1;;;;;;-1:-1:-1;;13510:53:156;;;;;;;;344662:90:157;344561:198;:::o;13510:53:156:-;-1:-1:-1;13510:53:156;;;:::i;:::-;344561:198:157;:::o;13336:164:156:-;;;520:1286:1;13336:164:156;;520:1286:1;13336:164:156;;;;;;520:1286:1;13336:164:156;;;:::i;:::-;;;520:1286:1;;;;;13336:164:156;;;;;;-1:-1:-1;13336:164:156;;199848:293:157;;2482:22;;199917:64;;199848:293;2482:22;;199990:64;;199848:293;520:1286:1;;11129:64:156;520:1286:1;;;;;-1:-1:-1;;;;;;;;;;;520:1286:1;;;-1:-1:-1;520:1286:1;;;;;;;;;;11129:64:156;;;;;520:1286:1;;;;;;;;;;11129:64:156;;;;;;;-1:-1:-1;11129:64:156;;;200063:71:157;199848:293;:::o;11129:64:156:-;;;520:1286:1;11129:64:156;;520:1286:1;11129:64:156;;;;;;520:1286:1;11129:64:156;;;:::i;:::-;;;520:1286:1;;;;;199848:293:157;:::o;11129:64:156:-;;;-1:-1:-1;11129:64:156;;199990::157;344922:44;520:1286:1;344922:44:157;;:::i;:::-;199990:64;;;;199917;344922:44;;;;:::i;:::-;199917:64;;;6796:231:20;6897:13;520:1286:1;;6796:231:20;-1:-1:-1;;520:1286:1;;;;370832:13:157;520:1286:1;;;;6897:13:20;520:1286:1;;-1:-1:-1;520:1286:1;6945:18:20;520:1286:1;;;;-1:-1:-1;520:1286:1;;370840:4:157;370832:13;;:::i;196694:299::-;5706:65:156;196694:299:157;-1:-1:-1;196694:299:157;2482:22;;196766:64;;196694:299;2482:22;;196839:64;;196694:299;-1:-1:-1;;;;;;;;;;;520:1286:1;;;-1:-1:-1;;;5706:65:156;;;;;;520:1286:1;;;;;;;;;;;;;;-1:-1:-1;;;;;;520:1286:1;;;;;;;;;;;;;;-1:-1:-1;;;;;520:1286:1;5706:65:156;;;;;;;-1:-1:-1;5706:65:156;;;5697:74;196694:299:157;:::o;196839:64::-;344922:44;;;:::i;:::-;196839:64;;196766;344922:44;;;;:::i;:::-;196766:64;;;15747:171:156;4586:62;520:1286:1;-1:-1:-1;;;;;520:1286:1;;15870:41:156;;;;;520:1286:1;;-1:-1:-1;;;15870:41:156;;;;;520:1286:1;;;;-1:-1:-1;;;;;520:1286:1;;;;;;-1:-1:-1;;520:1286:1;;;;;;-1:-1:-1;;15870:41:156;;;;;;;;15747:171;:::o;15870:41::-;-1:-1:-1;15870:41:156;;;:::i;12887:258::-;;13062:76;520:1286:1;12887:258:156;-1:-1:-1;520:1286:1;;;;;-1:-1:-1;;;;;;;;;;;520:1286:1;;;;;;;;;;;;13062:76:156;;;;;520:1286:1;;;;;;;;;13062:76:156;;;;;;;-1:-1:-1;13062:76:156;;;13053:85;12887:258;:::o;13815:243::-;-1:-1:-1;;;;;;;;;;;520:1286:1;;;-1:-1:-1;;;13977:74:156;;520:1286:1;13977:74:156;;;520:1286:1;;;-1:-1:-1;;;520:1286:1;;;;;;;;;;13977:74:156;;520:1286:1;;-1:-1:-1;;;;;520:1286:1;13977:74:156;;;;;;;520:1286:1;13977:74:156;;;13968:83;13815:243;:::o","linkReferences":{},"immutableReferences":{"7195":[{"start":2900,"length":32},{"start":3657,"length":32}]}},"methodIdentifiers":{"acceptOwnership()":"79ba5097","allowance(address,address)":"dd62ed3e","approve(address,bytes32,bytes)":"b32c1001","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint64)":"9dbead42","decimals()":"313ce567","errorGetCounter()":"67a74a28","getErrorCodeForTransferId(uint256)":"a5184baf","mint(address,uint64)":"2893c5b0","name()":"06fdde03","owner()":"8da5cb5b","pendingOwner()":"e30c3978","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,bytes32,bytes)":"7b7e0a5a","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,bytes32,bytes)":"9a094352","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorIndexInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorIndexIsNull\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TFHESenderNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TotalNumberErrorCodesEqualToZero\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"placeholder\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"transferId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"euint64\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"euint64\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"einput\",\"name\":\"encryptedAmount\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"inputProof\",\"type\":\"bytes\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"euint64\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"errorGetCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"errorsCount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"transferId\",\"type\":\"uint256\"}],\"name\":\"getErrorCodeForTransferId\",\"outputs\":[{\"internalType\":\"euint8\",\"name\":\"errorCode\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"einput\",\"name\":\"encryptedAmount\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"inputProof\",\"type\":\"bytes\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"euint64\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"euint64\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"einput\",\"name\":\"encryptedAmount\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"inputProof\",\"type\":\"bytes\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"It allows an owner to mint tokens. Mint amounts are public.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"params\":{\"owner\":\"Owner address.\",\"placeholder\":\"Placeholder.\",\"spender\":\"Spender address.\"}},\"Transfer(address,address,uint256)\":{\"params\":{\"from\":\"Sender address.\",\"to\":\"Receiver address.\",\"transferId\":\"If the implementation does not support error handling, it must be set to a default placeholder (typically equal to max(uint256). However, it must be set to a transferId if the implementation supports encrypted error handling.\"}}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"constructor\":{\"params\":{\"name_\":\"Name of the token.\",\"owner_\":\"Owner address.\",\"symbol_\":\"Symbol.\"}},\"getErrorCodeForTransferId(uint256)\":{\"params\":{\"transferId\":\"Transfer id. It can be read from the `Transfer` event.\"},\"returns\":{\"errorCode\":\" Encrypted error code.\"}},\"mint(address,uint64)\":{\"params\":{\"amount\":\"Amount of tokens to mint.\",\"to\":\"Address to mint tokens to.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer.\"}},\"title\":\"ConfidentialERC20WithErrorsMintable.\",\"version\":1},\"userdoc\":{\"errors\":{\"ErrorIndexInvalid()\":[{\"notice\":\"Returned if the error index is invalid.\"}],\"ErrorIndexIsNull()\":[{\"notice\":\"Returned if the error index is null.\"}],\"TFHESenderNotAllowed()\":[{\"notice\":\"Returned when the `sender` is not allowed to access a value.\"}],\"TotalNumberErrorCodesEqualToZero()\":[{\"notice\":\"Returned if the total number of errors is equal to zero.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"notice\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}.\"},\"Burn(address,uint64)\":{\"notice\":\"Emitted when `amount` tokens are minted to one account (`to`).\"},\"Mint(address,uint64)\":{\"notice\":\"Emitted when `amount` tokens are minted to one account (`to`).\"},\"Transfer(address,address,uint256)\":{\"notice\":\"Emitted when tokens are moved from one account (`from`) to another (`to`).\"}},\"kind\":\"user\",\"methods\":{\"allowance(address,address)\":{\"notice\":\"See {IConfidentialERC20-allowance}.\"},\"approve(address,bytes32,bytes)\":{\"notice\":\"See {IConfidentialERC20-approve}.\"},\"approve(address,uint256)\":{\"notice\":\"See {IConfidentialERC20-approve}.\"},\"balanceOf(address)\":{\"notice\":\"See {IConfidentialERC20-balanceOf}.\"},\"decimals()\":{\"notice\":\"See {IConfidentialERC20-decimals}.\"},\"getErrorCodeForTransferId(uint256)\":{\"notice\":\"Return the error for a transfer id.\"},\"mint(address,uint64)\":{\"notice\":\"Mint tokens.\"},\"name()\":{\"notice\":\"See {IConfidentialERC20-name}.\"},\"symbol()\":{\"notice\":\"See {IConfidentialERC20-symbol}.\"},\"totalSupply()\":{\"notice\":\"See {IConfidentialERC20-totalSupply}.\"},\"transfer(address,bytes32,bytes)\":{\"notice\":\"See {IConfidentialERC20-transfer}.\"},\"transfer(address,uint256)\":{\"notice\":\"See {IConfidentialERC20-transfer}.\"},\"transferFrom(address,address,bytes32,bytes)\":{\"notice\":\"See {IConfidentialERC20-transferFrom}.\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"See {IConfidentialERC20-transferFrom}.\"}},\"notice\":\"This contract inherits ConfidentialERC20WithErrors.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol\":\"ConfidentialERC20WithErrorsMintableBurnable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@chainlink/=lib/chainlink/\",\":@ensdomains/=lib/v4-core/node_modules/@ensdomains/\",\":@httpz-contracts/=lib/httpz-contracts/contracts/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/universal-router/=lib/universal-router.git/\",\":@uniswap/v2-core/=lib/v2-core/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/\",\":@uniswap/v4-core/=lib/v4-core/\",\":@uniswap/v4-periphery/=lib/v4-periphery/\",\":chainlink/=lib/chainlink/\",\":ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":fhevm-contracts/=node_modules/fhevm-contracts/\",\":fhevm-core-contracts/=node_modules/fhevm-core-contracts/\",\":fhevm/=node_modules/fhevm/\",\":forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":httpz-contracts/=lib/httpz-contracts/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":permit2/=lib/permit2/\",\":solmate/=lib/permit2/lib/solmate/\",\":universal-router.git/=lib/universal-router.git/\",\":v2-core/=lib/v2-core/contracts/\",\":v3-core/=lib/v3-core/\",\":v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/\",\":v4-core/=lib/v4-core/src/\",\":v4-periphery/=lib/v4-periphery/\"],\"viaIR\":true},\"sources\":{\"contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol\":{\"keccak256\":\"0x08ddec3305fabf65ffe2c18949b1b18f4ce0aeafd7bb8f68faecf4da9bfa18ab\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://e73a281abe6706aa53fc031839d0fcb73c028f0be2c2ad5428aa4880ca072805\",\"dweb:/ipfs/QmZc9KQXzYstBAKKPye7w5W3jBX1a56G9kCAPs58nkHvFg\"]},\"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol\":{\"keccak256\":\"0x8b45e5bb2fd9212f99e61b4d25b9c9d5ed7cb1a9a684aac34f752c568ef16c76\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://1ca71bb5bfbb2f8a0779f8394baeea01680619637abddb572017d05d96862591\",\"dweb:/ipfs/QmPCzGBE1m6WtDZxrVL5jzkduNaS7fjtYovUWdnzN34qjh\"]},\"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol\":{\"keccak256\":\"0xe016a085f72ca3cf6d78ec1cb2182a398106cb7d425e984776a9caab0bad2569\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://3e79dc5075469d660908f5f8b6d0c863b14459d60a0b06fb786d58de8cf30a94\",\"dweb:/ipfs/QmePGRGtoWBnQ8T6ZRyZgiwVh4r67kcmWejwKgjyYN4AAY\"]},\"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol\":{\"keccak256\":\"0xfe322c8f9a8e4fba881715901a5bafd2efa23394ecbc9ec84282818baeff0a07\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://13dba831528dd16408b7abab23eac0664a2a3e5ecbfe5e58e6e321cf2921668a\",\"dweb:/ipfs/QmPq4YeugbayWfeBJR8H7s4jHsnZkACQX2xbdNQ4sdvZrk\"]},\"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol\":{\"keccak256\":\"0xecc6289a9791bef254911393b51d2bfbddc5650ede7fbe7b5cc2b8d3eb01d7a6\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://7463278a20bc5d7fd8b7ec2cb8e592b2d1e0afcf8b59d35d6929d18661d4b38c\",\"dweb:/ipfs/QmTKPoABwNDmK7g7vkti1AkTpkUBHu3iX3zsXQsEuSiqBM\"]},\"lib/httpz-contracts/contracts/utils/EncryptedErrors.sol\":{\"keccak256\":\"0x0b8d08f392884add1af672018359e8980ee0b5e1662fe5e36eb31f053d1d4505\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://2903dd49a88b36aba2e8a45548b6a68d203887356ebdf452b10e0148954ba1a5\",\"dweb:/ipfs/QmTRuP4QXagoV2cLr2ctzFtNK7FK1cDXMYm4feMoMsYoWG\"]},\"lib/httpz-contracts/contracts/utils/TFHEErrors.sol\":{\"keccak256\":\"0x5fef7c2d7d4449d724a2800b37dfcc61e2b635f2747378ce222b9187425f2d13\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://7c2ef113faaec2d74c8d958f80687d0b676082d6231720917aaa8aa934d689a3\",\"dweb:/ipfs/QmNn474JDQ5zvVDwEuicJs6Xq8YEXWGZLoW4KeTWDVG31f\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol\":{\"keccak256\":\"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0\",\"dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/fhevm/lib/Impl.sol\":{\"keccak256\":\"0x89d4968cd956a8931f1a8a177b3bef1c6cf88a03665083db74430add50b88f21\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://aaaef2c82d56dacfb08946842ea1ce26757d13f3251de62fa79222232dfcb43c\",\"dweb:/ipfs/QmQ6QZPxJw9jb3qjRYCX7pMQVoYogjTsYgmdEnB3EnwFRy\"]},\"node_modules/fhevm/lib/TFHE.sol\":{\"keccak256\":\"0x221799c8332f83ab65a0b71746409f0c2c89f1cd8d9ba4091d967c667e1df734\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://2dba387fbc612a2ee64063b0ee6c27304b3944423d11045acc50abd84577fb5f\",\"dweb:/ipfs/QmThptDGnpd8PuncFk1rnQoCzEqwUED622yC9xZgFhwY59\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[],"type":"error","name":"ErrorIndexInvalid"},{"inputs":[],"type":"error","name":"ErrorIndexIsNull"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"TFHESenderNotAllowed"},{"inputs":[],"type":"error","name":"TotalNumberErrorCodesEqualToZero"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"placeholder","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint64","name":"amount","type":"uint64","indexed":false}],"type":"event","name":"Burn","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint64","name":"amount","type":"uint64","indexed":false}],"type":"event","name":"Mint","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferStarted","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"transferId","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"acceptOwnership"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"euint64","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"euint64","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"einput","name":"encryptedAmount","type":"bytes32"},{"internalType":"bytes","name":"inputProof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"euint64","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"amount","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"errorGetCounter","outputs":[{"internalType":"uint256","name":"errorsCount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"transferId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getErrorCodeForTransferId","outputs":[{"internalType":"euint8","name":"errorCode","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint64","name":"amount","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"einput","name":"encryptedAmount","type":"bytes32"},{"internalType":"bytes","name":"inputProof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"euint64","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"euint64","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"einput","name":"encryptedAmount","type":"bytes32"},{"internalType":"bytes","name":"inputProof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"constructor":{"params":{"name_":"Name of the token.","owner_":"Owner address.","symbol_":"Symbol."}},"getErrorCodeForTransferId(uint256)":{"params":{"transferId":"Transfer id. It can be read from the `Transfer` event."},"returns":{"errorCode":" Encrypted error code."}},"mint(address,uint64)":{"params":{"amount":"Amount of tokens to mint.","to":"Address to mint tokens to."}},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer."}},"version":1},"userdoc":{"kind":"user","methods":{"allowance(address,address)":{"notice":"See {IConfidentialERC20-allowance}."},"approve(address,bytes32,bytes)":{"notice":"See {IConfidentialERC20-approve}."},"approve(address,uint256)":{"notice":"See {IConfidentialERC20-approve}."},"balanceOf(address)":{"notice":"See {IConfidentialERC20-balanceOf}."},"decimals()":{"notice":"See {IConfidentialERC20-decimals}."},"getErrorCodeForTransferId(uint256)":{"notice":"Return the error for a transfer id."},"mint(address,uint64)":{"notice":"Mint tokens."},"name()":{"notice":"See {IConfidentialERC20-name}."},"symbol()":{"notice":"See {IConfidentialERC20-symbol}."},"totalSupply()":{"notice":"See {IConfidentialERC20-totalSupply}."},"transfer(address,bytes32,bytes)":{"notice":"See {IConfidentialERC20-transfer}."},"transfer(address,uint256)":{"notice":"See {IConfidentialERC20-transfer}."},"transferFrom(address,address,bytes32,bytes)":{"notice":"See {IConfidentialERC20-transferFrom}."},"transferFrom(address,address,uint256)":{"notice":"See {IConfidentialERC20-transferFrom}."}},"version":1}},"settings":{"remappings":["@chainlink/=lib/chainlink/","@ensdomains/=lib/v4-core/node_modules/@ensdomains/","@httpz-contracts/=lib/httpz-contracts/contracts/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@uniswap/universal-router/=lib/universal-router.git/","@uniswap/v2-core/=lib/v2-core/","@uniswap/v3-core/=lib/v3-core/","@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/","@uniswap/v4-core/=lib/v4-core/","@uniswap/v4-periphery/=lib/v4-periphery/","chainlink/=lib/chainlink/","ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","eth-gas-reporter/=node_modules/eth-gas-reporter/","fhevm-contracts/=node_modules/fhevm-contracts/","fhevm-core-contracts/=node_modules/fhevm-core-contracts/","fhevm/=node_modules/fhevm/","forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","httpz-contracts/=lib/httpz-contracts/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","permit2/=lib/permit2/","solmate/=lib/permit2/lib/solmate/","universal-router.git/=lib/universal-router.git/","v2-core/=lib/v2-core/contracts/","v3-core/=lib/v3-core/","v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/","v4-core/=lib/v4-core/src/","v4-periphery/=lib/v4-periphery/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol":"ConfidentialERC20WithErrorsMintableBurnable"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol":{"keccak256":"0x08ddec3305fabf65ffe2c18949b1b18f4ce0aeafd7bb8f68faecf4da9bfa18ab","urls":["bzz-raw://e73a281abe6706aa53fc031839d0fcb73c028f0be2c2ad5428aa4880ca072805","dweb:/ipfs/QmZc9KQXzYstBAKKPye7w5W3jBX1a56G9kCAPs58nkHvFg"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol":{"keccak256":"0x8b45e5bb2fd9212f99e61b4d25b9c9d5ed7cb1a9a684aac34f752c568ef16c76","urls":["bzz-raw://1ca71bb5bfbb2f8a0779f8394baeea01680619637abddb572017d05d96862591","dweb:/ipfs/QmPCzGBE1m6WtDZxrVL5jzkduNaS7fjtYovUWdnzN34qjh"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol":{"keccak256":"0xe016a085f72ca3cf6d78ec1cb2182a398106cb7d425e984776a9caab0bad2569","urls":["bzz-raw://3e79dc5075469d660908f5f8b6d0c863b14459d60a0b06fb786d58de8cf30a94","dweb:/ipfs/QmePGRGtoWBnQ8T6ZRyZgiwVh4r67kcmWejwKgjyYN4AAY"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol":{"keccak256":"0xfe322c8f9a8e4fba881715901a5bafd2efa23394ecbc9ec84282818baeff0a07","urls":["bzz-raw://13dba831528dd16408b7abab23eac0664a2a3e5ecbfe5e58e6e321cf2921668a","dweb:/ipfs/QmPq4YeugbayWfeBJR8H7s4jHsnZkACQX2xbdNQ4sdvZrk"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol":{"keccak256":"0xecc6289a9791bef254911393b51d2bfbddc5650ede7fbe7b5cc2b8d3eb01d7a6","urls":["bzz-raw://7463278a20bc5d7fd8b7ec2cb8e592b2d1e0afcf8b59d35d6929d18661d4b38c","dweb:/ipfs/QmTKPoABwNDmK7g7vkti1AkTpkUBHu3iX3zsXQsEuSiqBM"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/utils/EncryptedErrors.sol":{"keccak256":"0x0b8d08f392884add1af672018359e8980ee0b5e1662fe5e36eb31f053d1d4505","urls":["bzz-raw://2903dd49a88b36aba2e8a45548b6a68d203887356ebdf452b10e0148954ba1a5","dweb:/ipfs/QmTRuP4QXagoV2cLr2ctzFtNK7FK1cDXMYm4feMoMsYoWG"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/utils/TFHEErrors.sol":{"keccak256":"0x5fef7c2d7d4449d724a2800b37dfcc61e2b635f2747378ce222b9187425f2d13","urls":["bzz-raw://7c2ef113faaec2d74c8d958f80687d0b676082d6231720917aaa8aa934d689a3","dweb:/ipfs/QmNn474JDQ5zvVDwEuicJs6Xq8YEXWGZLoW4KeTWDVG31f"],"license":"BSD-3-Clause-Clear"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol":{"keccak256":"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c","urls":["bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0","dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/fhevm/lib/Impl.sol":{"keccak256":"0x89d4968cd956a8931f1a8a177b3bef1c6cf88a03665083db74430add50b88f21","urls":["bzz-raw://aaaef2c82d56dacfb08946842ea1ce26757d13f3251de62fa79222232dfcb43c","dweb:/ipfs/QmQ6QZPxJw9jb3qjRYCX7pMQVoYogjTsYgmdEnB3EnwFRy"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/lib/TFHE.sol":{"keccak256":"0x221799c8332f83ab65a0b71746409f0c2c89f1cd8d9ba4091d967c667e1df734","urls":["bzz-raw://2dba387fbc612a2ee64063b0ee6c27304b3944423d11045acc50abd84577fb5f","dweb:/ipfs/QmThptDGnpd8PuncFk1rnQoCzEqwUED622yC9xZgFhwY59"],"license":"BSD-3-Clause-Clear"}},"version":1},"id":1} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"},{"name":"owner_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"acceptOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"euint64"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"euint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"encryptedAmount","type":"bytes32","internalType":"einput"},{"name":"inputProof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"euint64"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"amount","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"errorGetCounter","inputs":[],"outputs":[{"name":"errorsCount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getErrorCodeForTransferId","inputs":[{"name":"transferId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"errorCode","type":"uint256","internalType":"euint8"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pendingOwner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"encryptedAmount","type":"bytes32","internalType":"einput"},{"name":"inputProof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"euint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"euint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"encryptedAmount","type":"bytes32","internalType":"einput"},{"name":"inputProof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"placeholder","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Burn","inputs":[{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Mint","inputs":[{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferStarted","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"transferId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"ErrorIndexInvalid","inputs":[]},{"type":"error","name":"ErrorIndexIsNull","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"TFHESenderNotAllowed","inputs":[]},{"type":"error","name":"TotalNumberErrorCodesEqualToZero","inputs":[]}],"bytecode":{"object":"0x60a0806040523461042357611db3803803809161001c8285610685565b83398101906060818303126104235780516001600160401b03811161042357826100479183016106a8565b60208201519092906001600160401b0381116104235760409161006b9184016106a8565b9101516001600160a01b03811690819003610423575f606060405161008f8161066a565b8281528260208201528260408201520152739d6891a6240d6130c54ae243d8005063d05fe14b60606040516100c38161066a565b73fee8407e2f5e3ee68ad77cae98c434e637f516e5815273687408ab54661ba0b4aef3a44156c616c6955e07602082015273fb03be574d14c256d56f09a198b586bdfc0a9de26040820152015273fee8407e2f5e3ee68ad77cae98c434e637f516e560018060a01b03195f80516020611d338339815191525416175f80516020611d338339815191525573687408ab54661ba0b4aef3a44156c616c6955e0760018060a01b03195f80516020611d738339815191525416175f80516020611d738339815191525573fb03be574d14c256d56f09a198b586bdfc0a9de260018060a01b03195f80516020611d938339815191525416175f80516020611d9383398151915255739d6891a6240d6130c54ae243d8005063d05fe14b60018060a01b03195f80516020611d538339815191525416175f80516020611d5383398151915255801561065757600180546001600160a01b03199081169091555f8054918216831781556001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a381516001600160401b03811161056a57600254600181811c9116801561064d575b602082101461054c57601f81116105ea575b50602092601f821160011461058957928192935f9261057e575b50508160011b915f199060031b1c1916176002555b80516001600160401b03811161056a57600354600181811c91168015610560575b602082101461054c57601f81116104e9575b50602091601f8211600114610489579181925f9261047e575b50508160011b915f199060031b1c1916176003555b5f5b60ff8116906002821161045a575f80516020611d7383398151915254604051631ce2e8d760e31b815260048101849052600160f91b60248201529290602090849060449082905f906001600160a01b03165af1928315610418575f93610427575b505f9081526007602052604090208290555f80516020611d33833981519152546001600160a01b031691823b15610423575f92604484926040519586938492631974142760e21b845260048401523060248401525af19182156104185760ff92610408575b501660ff81146103f45760010161031c565b634e487b7160e01b5f52601160045260245ffd5b5f61041291610685565b5f6103e2565b6040513d5f823e3d90fd5b5f80fd5b9092506020813d8211610452575b8161044260209383610685565b810103126104235751915f61037d565b3d9150610435565b600260805260405161163590816106fe8239608051818181610b9a0152610e8f0152f35b015190505f80610305565b601f1982169260035f52805f20915f5b8581106104d1575083600195106104b9575b505050811b0160035561031a565b01515f1960f88460031b161c191690555f80806104ab565b91926020600181928685015181550194019201610499565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c81019160208410610542575b601f0160051c01905b81811061053757506102ec565b5f815560010161052a565b9091508190610521565b634e487b7160e01b5f52602260045260245ffd5b90607f16906102da565b634e487b7160e01b5f52604160045260245ffd5b015190505f806102a4565b601f1982169360025f52805f20915f5b8681106105d257508360019596106105ba575b505050811b016002556102b9565b01515f1960f88460031b161c191690555f80806105ac565b91926020600181928685015181550194019201610599565b60025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace601f830160051c81019160208410610643575b601f0160051c01905b818110610638575061028a565b5f815560010161062b565b9091508190610622565b90607f1690610278565b631e4fbdf760e01b5f525f60045260245ffd5b608081019081106001600160401b0382111761056a57604052565b601f909101601f19168101906001600160401b0382119082101761056a57604052565b81601f82011215610423578051906001600160401b03821161056a57604051926106dc601f8401601f191660200185610685565b8284526020838301011161042357815f9260208093018386015e830101529056fe6080806040526004361015610012575f80fd5b5f3560e01c90816306fdde031461095257508063095ea7b31461092b57806318160ddd1461090157806323b872dd146108d25780632893c5b014610711578063313ce567146106f657806367a74a28146106d957806370a08231146106a1578063715018a61461063e57806379ba5097146105b95780637b7e0a5a1461059c5780638da5cb5b1461057557806395d89b41146104695780639a094352146104085780639dbead421461029f578063a5184baf1461025c578063a9059cbb1461022b578063b32c1001146101f1578063dd62ed3e146101a1578063e30c3978146101795763f2fde38b14610103575f80fd5b346101755760203660031901126101755761011c610a2e565b610124611221565b60018060a01b0316806bffffffffffffffffffffffff60a01b600154161760015560018060a01b035f54167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227005f80a3005b5f80fd5b34610175575f366003190112610175576001546040516001600160a01b039091168152602090f35b34610175576040366003190112610175576101ba610a2e565b6101c2610a44565b6001600160a01b039182165f908152600560209081526040808320949093168252928352819020549051908152f35b346101755761021f61021361021961020836610a88565b949192943691610e24565b90611234565b90610b05565b50602060405160018152f35b34610175576040366003190112610175576020610252610249610a2e565b60243590610e6a565b6040519015158152f35b3461017557602036600319011261017557600435600654811015610290575f526008602052602060405f2054604051908152f35b63d65c1f3360e01b5f5260045ffd5b346101755760203660031901126101755760043567ffffffffffffffff811680910361017557335f52600460205260405f205480156103f4575b5f805160206115e083398151915254604051638c14cc2160e01b8152600481019290925260248201839052600160f81b6044830152602090829060649082905f906001600160a01b03165af180156103e9575f906103b5575b6103569150335f5260046020528060405f205561034f30826114bc565b33906114bc565b6001549067ffffffffffffffff8260a01c160367ffffffffffffffff81116103a15767ffffffffffffffff60a01b1990911660a09190911b67ffffffffffffffff60a01b1617600155005b634e487b7160e01b5f52601160045260245ffd5b506020813d6020116103e1575b816103cf60209383610acf565b81010312610175576103569051610332565b3d91506103c2565b6040513d5f823e3d90fd5b505f6020610400611589565b9150506102d9565b3461017557608036600319011261017557610421610a2e565b610429610a44565b906064359167ffffffffffffffff83116101755761046361045b61045461021f953690600401610a5a565b3691610e24565b604435611234565b91610b5a565b34610175575f366003190112610175576040515f6003548060011c9060018116801561056b575b6020831081146105575782855290811561053357506001146104d5575b6104d1836104bd81850382610acf565b604051918291602083526020830190610a0a565b0390f35b91905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f905b808210610519575090915081016020016104bd6104ad565b919260018160209254838588010152019101909291610501565b60ff191660208086019190915291151560051b840190910191506104bd90506104ad565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610490565b34610175575f366003190112610175575f546040516001600160a01b039091168152602090f35b346101755761021f6102136105b361020836610a88565b90610e6a565b34610175575f36600319011261017557600154336001600160a01b039091160361062b57600180546001600160a01b03199081169091555f805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b63118cdaa760e01b5f523360045260245ffd5b34610175575f36600319011261017557610656611221565b600180546001600160a01b03199081169091555f80549182168155906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610175576020366003190112610175576001600160a01b036106c2610a2e565b165f526004602052602060405f2054604051908152f35b34610175575f366003190112610175576020600654604051908152f35b34610175575f36600319011261017557602060405160068152f35b346101755760403660031901126101755761072a610a2e565b60243567ffffffffffffffff811680910361017557610747611221565b6001600160a01b0382165f818152600460205260408120549193909180156108c0575b5f805160206115e08339815191525460405163f953e42760e01b8152600481019290925260248201859052600160f81b6044830152909260209184916064918391906001600160a01b03165af180156103e9575f9061088c575b6107e69250845f5260046020528060405f20556107e130826114bc565b6114bc565b815f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602060405183198152a3600154908067ffffffffffffffff8360a01c16019067ffffffffffffffff82116103a15767ffffffffffffffff60a01b1990921660a09190911b67ffffffffffffffff60a01b16176001556040519081527f9109de113672aaca72ede8bc906f7aafabee865311ac020fb15c71edf94a0a0190602090a2005b506020823d6020116108b8575b816108a660209383610acf565b81010312610175576107e691516107c4565b3d9150610899565b5060206108cb611589565b905061076a565b346101755760603660031901126101755760206102526108f0610a2e565b6108f8610a44565b60443591610b5a565b34610175575f36600319011261017557602067ffffffffffffffff60015460a01c16604051908152f35b34610175576040366003190112610175576020610252610949610a2e565b60243590610b05565b34610175575f366003190112610175575f6002548060011c90600181168015610a00575b6020831081146105575782855290811561053357506001146109a2576104d1836104bd81850382610acf565b91905060025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace915f905b8082106109e6575090915081016020016104bd6104ad565b9192600181602092548385880101520191019092916109ce565b91607f1691610976565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361017557565b602435906001600160a01b038216820361017557565b9181601f840112156101755782359167ffffffffffffffff8311610175576020838186019501011161017557565b6060600319820112610175576004356001600160a01b03811681036101755791602435916044359067ffffffffffffffff821161017557610acb91600401610a5a565b9091565b90601f8019910116810190811067ffffffffffffffff821117610af157604052565b634e487b7160e01b5f52604160045260245ffd5b90610b1a90610b1381610f33565b8233610fe5565b6040515f1981526001600160a01b039091169033907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590602090a3600190565b91610b6481610f33565b6001600160a01b0383165f81815260056020908152604080832033845290915290205493909290610b958584611347565b9360ff7f00000000000000000000000000000000000000000000000000000000000000001694856002116102905760076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5460025f9081527fb7c774451310d1be4108bc180d1b52823cb0ee0274a6c0081bcaf94f115fb96d54909391610c20919084611537565b9083526004602052610c36604084205487611347565b96602060018060a01b035f805160206115e083398151915254166024604051809781936309c00ffd60e11b83528d60048401525af19384156103e9575f94610def575b505f805160206115e083398151915254604051630ccd46b160e31b81526004810195909552602485018490525f6044860181905260209186916064918391906001600160a01b03165af19384156103e9575f94610dbb575b5060011161029057610cf6610d0a9160209460015f526007865260405f205490611537565b610cff816113fa565b5061034f85826114bc565b606460018060a01b035f805160206115e08339815191525416965f6040519889948593630ccd46b160e31b8552600485015260248401528160448401525af19384156103e9575f94610d83575b50610d79610d7286610d6c86610d7e99611427565b87611537565b3383610fe5565b611062565b600190565b9493506020853d602011610db3575b81610d9f60209383610acf565b810103126101755793519293610d79610d57565b3d9150610d92565b9093506020813d602011610de7575b81610dd760209383610acf565b810103126101755751925f610cd1565b3d9150610dca565b93506020843d602011610e1c575b81610e0a60209383610acf565b81010312610175579251926020610c79565b3d9150610dfd565b92919267ffffffffffffffff8211610af15760405191610e4e601f8201601f191660200184610acf565b829481845281830111610175578281602093845f960137010152565b90610e7481610f33565b335f526004602052610e8a60405f205482611347565b9060ff7f0000000000000000000000000000000000000000000000000000000000000000166001116102905760076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5460015f527fb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b82854610d7e9491610f2d918391610f19919087611537565b610f22816113fa565b506107e133826114bc565b33611062565b7fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60054604051632fd514cd60e11b81526004810192909252336024830152602090829060449082906001600160a01b03165afa9081156103e9575f91610faa575b5015610f9b57565b632fa38b3f60e01b5f5260045ffd5b90506020813d602011610fdd575b81610fc560209383610acf565b8101031261017557518015158103610175575f610f93565b3d9150610fb8565b6001600160a01b038116939290841561104f576001600160a01b03831694851561103c579061103a94956107e1925f52600560205260405f20905f526020528260405f205561103430846114bc565b826114bc565b565b85634a1406b160e11b5f5260045260245ffd5b8463e602df0560e01b5f5260045260245ffd5b91926001600160a01b0383169290831561120e576001600160a01b0383169485156111fb579061109a91611094611589565b91611537565b91845f5260046020525f602060408220548581156111eb575b86156111dd575b5f805160206115e08339815191525460405163f953e42760e01b8152600480820194909452848101909301919091526001600160f81b0319841660448301529092839160649183916001600160a01b03165af19081156103e9575f916111a7575b5092611142611154928561116c9650885f5260046020528060405f20556107e130826114bc565b845f52600460205260405f2054611427565b835f5260046020528060405f20556107e130826114bc565b6006545f1981019081116103a15760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91604051908152a3565b9390506020843d6020116111d5575b816111c360209383610acf565b8101031261017557925161114261111b565b3d91506111b6565b506111e6611589565b6110ba565b90506111f5611589565b906110b3565b8563ec442f0560e01b5f5260045260245ffd5b83634b637e8f60e11b5f5260045260245ffd5b5f546001600160a01b0316330361062b57565b6112839160209160018060a01b035f805160206115e08339815191525416905f6040518096819582946302e817ff60e41b84526004840152336024840152608060448401526084830190610a0a565b600560f81b606483015203925af19081156103e9575f91611315575b507fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600546001600160a01b0316803b15610175576040516346ce4e4960e11b815260048101839052336024820152905f908290604490829084905af180156103e957611308575090565b5f61131291610acf565b90565b90506020813d60201161133f575b8161133060209383610acf565b8101031261017557515f61129f565b3d9150611323565b9081156113ea575b80156113d8575b602090606460018060a01b035f805160206115e08339815191525416935f60405195869485936334a6d7b960e11b8552600485015260248401528160448401525af19081156103e9575f916113a9575090565b90506020813d6020116113d0575b816113c460209383610acf565b81010312610175575190565b3d91506113b7565b5060206113e3611589565b9050611356565b90506113f4611589565b9061134f565b60065491905f1983146103a15761103a9060018401600655835f5260086020528060405f205530906114bc565b6020905f9281156114ac575b801561149e575b5f805160206115e083398151915254604051638c14cc2160e01b8152600480820194909452848101909301919091526001600160f81b0319841660448301529092839160649183916001600160a01b03165af19081156103e9575f916113a9575090565b506114a7611589565b61143a565b90506114b6611589565b90611433565b7fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600546001600160a01b031691823b1561017557604051631974142760e21b815260048101929092526001600160a01b03166024820152905f908290604490829084905af180156103e95761152d5750565b5f61103a91610acf565b9060646020925f60018060a01b035f805160206115e08339815191525416604051968795869463cb3b940760e01b86526004860152602485015260448401525af19081156103e9575f916113a9575090565b5f805160206115e083398151915254604051631ce2e8d760e31b81525f60048201819052600560f81b60248301529091602091839160449183916001600160a01b03165af19081156103e9575f916113a957509056feed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea601a26469706673582212201e8339d0877312bd7f448fbccec00bffd7bd0bb4ebd4cab0fc7c7fffcfdbcd5a64736f6c634300081a0033ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea603ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea601ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea602","sourceMap":"632:1374:2:-:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;632:1374:2;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;632:1374:2;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;632:1374:2;;;;;;;;-1:-1:-1;632:1374:2;;;;;;:::i;:::-;;;;;;;;;;;;;;;;865:42:155;632:1374:2;;;;;;:::i;:::-;625:42:155;632:1374:2;;706:42:155;632:1374:2;577:345:155;;632:1374:2;785:42:155;632:1374:2;577:345:155;;632:1374:2;577:345:155;632:1374:2;625:42:155;632:1374:2;;;;;;-1:-1:-1;;;;;;;;;;;632:1374:2;;;-1:-1:-1;;;;;;;;;;;632:1374:2;706:42:155;632:1374:2;;;;;;-1:-1:-1;;;;;;;;;;;632:1374:2;;;-1:-1:-1;;;;;;;;;;;632:1374:2;785:42:155;632:1374:2;;;;;;-1:-1:-1;;;;;;;;;;;632:1374:2;;;-1:-1:-1;;;;;;;;;;;632:1374:2;865:42:155;632:1374:2;;;;;;-1:-1:-1;;;;;;;;;;;632:1374:2;;;-1:-1:-1;;;;;;;;;;;632:1374:2;1273:26:31;;1269:95;;632:1374:2;;;-1:-1:-1;;;;;;632:1374:2;;;;;;-1:-1:-1;632:1374:2;;;;;;;;;-1:-1:-1;;;;;632:1374:2;;;;3052:40:31;;-1:-1:-1;3052:40:31;632:1374:2;;-1:-1:-1;;;;;632:1374:2;;;;1594:20:21;632:1374:2;;;;;;;;;;;-1:-1:-1;632:1374:2;;;;;;;;;;;-1:-1:-1;632:1374:2;;;;;;;;;;;;;;-1:-1:-1;632:1374:2;;;;;;;;;;;;;;;;;;;1594:20:21;632:1374:2;;;;-1:-1:-1;;;;;632:1374:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:1374:2;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2177:3:23;632:1374:2;;;2148:27:23;1594:20:21;2148:27:23;;;;-1:-1:-1;;;;;;;;;;;632:1374:2;;;-1:-1:-1;;;13977:74:159;;;;;632:1374:2;;;-1:-1:-1;;;632:1374:2;;;;;;;;;;13977:74:159;;632:1374:2;;-1:-1:-1;;;;;;;632:1374:2;13977:74:159;;;;;;;-1:-1:-1;13977:74:159;;;2177:3:23;-1:-1:-1;;632:1374:2;;;2245:21:23;632:1374:2;;;;;;;;-1:-1:-1;;;;;;;;;;;632:1374:2;-1:-1:-1;;;;;632:1374:2;;15870:41:159;;;;;-1:-1:-1;632:1374:2;13977:74:159;632:1374:2;;;;;;;;;;;;15870:41:159;;13977:74;15870:41;;632:1374:2;370135:4:160;632:1374:2;;;;15870:41:159;;;;;;;632:1374:2;15870:41:159;;;2177:3:23;;632:1374:2;;;;;;;;2139:7:23;;632:1374:2;;;;-1:-1:-1;632:1374:2;;13977:74:159;632:1374:2;;-1:-1:-1;632:1374:2;15870:41:159;-1:-1:-1;15870:41:159;;;:::i;:::-;;;;;632:1374:2;;;-1:-1:-1;632:1374:2;;;;;15870:41:159;-1:-1:-1;632:1374:2;;13977:74:159;;;;632:1374:2;13977:74:159;;;;;;;;;632:1374:2;13977:74:159;;;:::i;:::-;;;632:1374:2;;;;;13977:74:159;;;;;;;-1:-1:-1;13977:74:159;;2148:27:23;1594:20:21;632:1374:2;2341:50:23;632:1374:2;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:1374:2;;;;;;;;;;;-1:-1:-1;632:1374:2;;-1:-1:-1;632:1374:2;;-1:-1:-1;632:1374:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:1374:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:1374:2;;;;;;;;;-1:-1:-1;632:1374:2;;;;;;;;-1:-1:-1;632:1374:2;;;;;-1:-1:-1;632:1374:2;;;;;;;;;;;;-1:-1:-1;632:1374:2;;;;;-1:-1:-1;632:1374:2;;;;;-1:-1:-1;632:1374:2;;;;;;;;;;1594:20:21;-1:-1:-1;632:1374:2;;-1:-1:-1;632:1374:2;;-1:-1:-1;632:1374:2;;;;;;;;;;;;;;;;;;;;;1594:20:21;632:1374:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:20:21;-1:-1:-1;632:1374:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:1374:2;;;;;;;;;-1:-1:-1;632:1374:2;;;;;;;;;;;1269:95:31;1322:31;;;-1:-1:-1;1322:31:31;-1:-1:-1;1322:31:31;632:1374:2;;-1:-1:-1;1322:31:31;632:1374:2;;;;;;;-1:-1:-1;;;;;632:1374:2;;;;;;;:::o;:::-;;;;;-1:-1:-1;;632:1374:2;;;;-1:-1:-1;;;;;632:1374:2;;;;;;;;;;:::o;:::-;;;;;;;;;;;;-1:-1:-1;;;;;632:1374:2;;;;;;;;;;;-1:-1:-1;;632:1374:2;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;632:1374:2;;;;;;;;;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c90816306fdde031461095257508063095ea7b31461092b57806318160ddd1461090157806323b872dd146108d25780632893c5b014610711578063313ce567146106f657806367a74a28146106d957806370a08231146106a1578063715018a61461063e57806379ba5097146105b95780637b7e0a5a1461059c5780638da5cb5b1461057557806395d89b41146104695780639a094352146104085780639dbead421461029f578063a5184baf1461025c578063a9059cbb1461022b578063b32c1001146101f1578063dd62ed3e146101a1578063e30c3978146101795763f2fde38b14610103575f80fd5b346101755760203660031901126101755761011c610a2e565b610124611221565b60018060a01b0316806bffffffffffffffffffffffff60a01b600154161760015560018060a01b035f54167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227005f80a3005b5f80fd5b34610175575f366003190112610175576001546040516001600160a01b039091168152602090f35b34610175576040366003190112610175576101ba610a2e565b6101c2610a44565b6001600160a01b039182165f908152600560209081526040808320949093168252928352819020549051908152f35b346101755761021f61021361021961020836610a88565b949192943691610e24565b90611234565b90610b05565b50602060405160018152f35b34610175576040366003190112610175576020610252610249610a2e565b60243590610e6a565b6040519015158152f35b3461017557602036600319011261017557600435600654811015610290575f526008602052602060405f2054604051908152f35b63d65c1f3360e01b5f5260045ffd5b346101755760203660031901126101755760043567ffffffffffffffff811680910361017557335f52600460205260405f205480156103f4575b5f805160206115e083398151915254604051638c14cc2160e01b8152600481019290925260248201839052600160f81b6044830152602090829060649082905f906001600160a01b03165af180156103e9575f906103b5575b6103569150335f5260046020528060405f205561034f30826114bc565b33906114bc565b6001549067ffffffffffffffff8260a01c160367ffffffffffffffff81116103a15767ffffffffffffffff60a01b1990911660a09190911b67ffffffffffffffff60a01b1617600155005b634e487b7160e01b5f52601160045260245ffd5b506020813d6020116103e1575b816103cf60209383610acf565b81010312610175576103569051610332565b3d91506103c2565b6040513d5f823e3d90fd5b505f6020610400611589565b9150506102d9565b3461017557608036600319011261017557610421610a2e565b610429610a44565b906064359167ffffffffffffffff83116101755761046361045b61045461021f953690600401610a5a565b3691610e24565b604435611234565b91610b5a565b34610175575f366003190112610175576040515f6003548060011c9060018116801561056b575b6020831081146105575782855290811561053357506001146104d5575b6104d1836104bd81850382610acf565b604051918291602083526020830190610a0a565b0390f35b91905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f905b808210610519575090915081016020016104bd6104ad565b919260018160209254838588010152019101909291610501565b60ff191660208086019190915291151560051b840190910191506104bd90506104ad565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610490565b34610175575f366003190112610175575f546040516001600160a01b039091168152602090f35b346101755761021f6102136105b361020836610a88565b90610e6a565b34610175575f36600319011261017557600154336001600160a01b039091160361062b57600180546001600160a01b03199081169091555f805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b63118cdaa760e01b5f523360045260245ffd5b34610175575f36600319011261017557610656611221565b600180546001600160a01b03199081169091555f80549182168155906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610175576020366003190112610175576001600160a01b036106c2610a2e565b165f526004602052602060405f2054604051908152f35b34610175575f366003190112610175576020600654604051908152f35b34610175575f36600319011261017557602060405160068152f35b346101755760403660031901126101755761072a610a2e565b60243567ffffffffffffffff811680910361017557610747611221565b6001600160a01b0382165f818152600460205260408120549193909180156108c0575b5f805160206115e08339815191525460405163f953e42760e01b8152600481019290925260248201859052600160f81b6044830152909260209184916064918391906001600160a01b03165af180156103e9575f9061088c575b6107e69250845f5260046020528060405f20556107e130826114bc565b6114bc565b815f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602060405183198152a3600154908067ffffffffffffffff8360a01c16019067ffffffffffffffff82116103a15767ffffffffffffffff60a01b1990921660a09190911b67ffffffffffffffff60a01b16176001556040519081527f9109de113672aaca72ede8bc906f7aafabee865311ac020fb15c71edf94a0a0190602090a2005b506020823d6020116108b8575b816108a660209383610acf565b81010312610175576107e691516107c4565b3d9150610899565b5060206108cb611589565b905061076a565b346101755760603660031901126101755760206102526108f0610a2e565b6108f8610a44565b60443591610b5a565b34610175575f36600319011261017557602067ffffffffffffffff60015460a01c16604051908152f35b34610175576040366003190112610175576020610252610949610a2e565b60243590610b05565b34610175575f366003190112610175575f6002548060011c90600181168015610a00575b6020831081146105575782855290811561053357506001146109a2576104d1836104bd81850382610acf565b91905060025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace915f905b8082106109e6575090915081016020016104bd6104ad565b9192600181602092548385880101520191019092916109ce565b91607f1691610976565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361017557565b602435906001600160a01b038216820361017557565b9181601f840112156101755782359167ffffffffffffffff8311610175576020838186019501011161017557565b6060600319820112610175576004356001600160a01b03811681036101755791602435916044359067ffffffffffffffff821161017557610acb91600401610a5a565b9091565b90601f8019910116810190811067ffffffffffffffff821117610af157604052565b634e487b7160e01b5f52604160045260245ffd5b90610b1a90610b1381610f33565b8233610fe5565b6040515f1981526001600160a01b039091169033907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590602090a3600190565b91610b6481610f33565b6001600160a01b0383165f81815260056020908152604080832033845290915290205493909290610b958584611347565b9360ff7f00000000000000000000000000000000000000000000000000000000000000001694856002116102905760076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5460025f9081527fb7c774451310d1be4108bc180d1b52823cb0ee0274a6c0081bcaf94f115fb96d54909391610c20919084611537565b9083526004602052610c36604084205487611347565b96602060018060a01b035f805160206115e083398151915254166024604051809781936309c00ffd60e11b83528d60048401525af19384156103e9575f94610def575b505f805160206115e083398151915254604051630ccd46b160e31b81526004810195909552602485018490525f6044860181905260209186916064918391906001600160a01b03165af19384156103e9575f94610dbb575b5060011161029057610cf6610d0a9160209460015f526007865260405f205490611537565b610cff816113fa565b5061034f85826114bc565b606460018060a01b035f805160206115e08339815191525416965f6040519889948593630ccd46b160e31b8552600485015260248401528160448401525af19384156103e9575f94610d83575b50610d79610d7286610d6c86610d7e99611427565b87611537565b3383610fe5565b611062565b600190565b9493506020853d602011610db3575b81610d9f60209383610acf565b810103126101755793519293610d79610d57565b3d9150610d92565b9093506020813d602011610de7575b81610dd760209383610acf565b810103126101755751925f610cd1565b3d9150610dca565b93506020843d602011610e1c575b81610e0a60209383610acf565b81010312610175579251926020610c79565b3d9150610dfd565b92919267ffffffffffffffff8211610af15760405191610e4e601f8201601f191660200184610acf565b829481845281830111610175578281602093845f960137010152565b90610e7481610f33565b335f526004602052610e8a60405f205482611347565b9060ff7f0000000000000000000000000000000000000000000000000000000000000000166001116102905760076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5460015f527fb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b82854610d7e9491610f2d918391610f19919087611537565b610f22816113fa565b506107e133826114bc565b33611062565b7fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60054604051632fd514cd60e11b81526004810192909252336024830152602090829060449082906001600160a01b03165afa9081156103e9575f91610faa575b5015610f9b57565b632fa38b3f60e01b5f5260045ffd5b90506020813d602011610fdd575b81610fc560209383610acf565b8101031261017557518015158103610175575f610f93565b3d9150610fb8565b6001600160a01b038116939290841561104f576001600160a01b03831694851561103c579061103a94956107e1925f52600560205260405f20905f526020528260405f205561103430846114bc565b826114bc565b565b85634a1406b160e11b5f5260045260245ffd5b8463e602df0560e01b5f5260045260245ffd5b91926001600160a01b0383169290831561120e576001600160a01b0383169485156111fb579061109a91611094611589565b91611537565b91845f5260046020525f602060408220548581156111eb575b86156111dd575b5f805160206115e08339815191525460405163f953e42760e01b8152600480820194909452848101909301919091526001600160f81b0319841660448301529092839160649183916001600160a01b03165af19081156103e9575f916111a7575b5092611142611154928561116c9650885f5260046020528060405f20556107e130826114bc565b845f52600460205260405f2054611427565b835f5260046020528060405f20556107e130826114bc565b6006545f1981019081116103a15760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91604051908152a3565b9390506020843d6020116111d5575b816111c360209383610acf565b8101031261017557925161114261111b565b3d91506111b6565b506111e6611589565b6110ba565b90506111f5611589565b906110b3565b8563ec442f0560e01b5f5260045260245ffd5b83634b637e8f60e11b5f5260045260245ffd5b5f546001600160a01b0316330361062b57565b6112839160209160018060a01b035f805160206115e08339815191525416905f6040518096819582946302e817ff60e41b84526004840152336024840152608060448401526084830190610a0a565b600560f81b606483015203925af19081156103e9575f91611315575b507fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600546001600160a01b0316803b15610175576040516346ce4e4960e11b815260048101839052336024820152905f908290604490829084905af180156103e957611308575090565b5f61131291610acf565b90565b90506020813d60201161133f575b8161133060209383610acf565b8101031261017557515f61129f565b3d9150611323565b9081156113ea575b80156113d8575b602090606460018060a01b035f805160206115e08339815191525416935f60405195869485936334a6d7b960e11b8552600485015260248401528160448401525af19081156103e9575f916113a9575090565b90506020813d6020116113d0575b816113c460209383610acf565b81010312610175575190565b3d91506113b7565b5060206113e3611589565b9050611356565b90506113f4611589565b9061134f565b60065491905f1983146103a15761103a9060018401600655835f5260086020528060405f205530906114bc565b6020905f9281156114ac575b801561149e575b5f805160206115e083398151915254604051638c14cc2160e01b8152600480820194909452848101909301919091526001600160f81b0319841660448301529092839160649183916001600160a01b03165af19081156103e9575f916113a9575090565b506114a7611589565b61143a565b90506114b6611589565b90611433565b7fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600546001600160a01b031691823b1561017557604051631974142760e21b815260048101929092526001600160a01b03166024820152905f908290604490829084905af180156103e95761152d5750565b5f61103a91610acf565b9060646020925f60018060a01b035f805160206115e08339815191525416604051968795869463cb3b940760e01b86526004860152602485015260448401525af19081156103e9575f916113a9575090565b5f805160206115e083398151915254604051631ce2e8d760e31b81525f60048201819052600560f81b60248301529091602091839160449183916001600160a01b03165af19081156103e9575f916113a957509056feed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea601a26469706673582212201e8339d0877312bd7f448fbccec00bffd7bd0bb4ebd4cab0fc7c7fffcfdbcd5a64736f6c634300081a0033","sourceMap":"632:1374:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:1374:2;;;;;;:::i;:::-;1500:62:31;;:::i;:::-;632:1374:2;;;;;;;;;;1738:24:32;632:1374:2;;;1738:24:32;632:1374:2;;;;;;;;;1777:43:32;632:1374:2;1777:43:32;;632:1374:2;;;;;;;;;;;-1:-1:-1;;632:1374:2;;;;;;;;-1:-1:-1;;;;;632:1374:2;;;;;;;;;;;;;;-1:-1:-1;;632:1374:2;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;632:1374:2;;;;;;;7824:11:17;632:1374:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1877:61:17;632:1374:2;1894:43:17;632:1374:2;;;:::i;:::-;;;;;;;;:::i;:::-;1894:43:17;;:::i;:::-;1877:61;;:::i;:::-;;632:1374:2;;;1955:4:17;632:1374:2;;;;;;;;;-1:-1:-1;;632:1374:2;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;632:1374:2;;;;;;8215:13:23;632:1374:2;8204:24:23;;;8200:81;;632:1374:2;;8303:18:23;632:1374:2;;;;;;;;;;;;;8200:81:23;8251:19;;;632:1374:2;8251:19:23;632:1374:2;;8251:19:23;632:1374:2;;;;;;-1:-1:-1;;632:1374:2;;;;;;;;;;;;;;1258:10;632:1374;;;;;;;;;2482:22:160;;212168:64;;632:1374:2;-1:-1:-1;;;;;;;;;;;632:1374:2;;;-1:-1:-1;;;5706:65:159;;632:1374:2;5706:65:159;;632:1374:2;;;;;;;;;;-1:-1:-1;;;632:1374:2;;;;;;;;;;;;;;-1:-1:-1;;;;;632:1374:2;5706:65:159;;;;;;632:1374:2;5706:65:159;;;632:1374:2;370021:7:160;5697:74:159;;1258:10:2;632:1374;;;;;;;;;;370832:13:160;370840:4;370832:13;;:::i;:::-;1258:10:2;370021:7:160;;:::i;:::-;212301:4;632:1374:2;;;;;;;;;;;;;-1:-1:-1;;;;632:1374:2;;;;;;;;-1:-1:-1;;;632:1374:2;;212301:4:160;632:1374:2;;;;;;;;;;;;;;5706:65:159;;632:1374:2;5706:65:159;;632:1374:2;5706:65:159;;;;;;632:1374:2;5706:65:159;;;:::i;:::-;;;632:1374:2;;;;370021:7:160;632:1374:2;;5706:65:159;;;;;-1:-1:-1;5706:65:159;;;632:1374:2;;;;;;;;;212168:64:160;344922:44;632:1374:2;;344922:44:160;;:::i;:::-;212168:64;;;;;632:1374:2;;;;;;-1:-1:-1;;632:1374:2;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;3273:43:17;632:1374:2;;3250:67:17;632:1374:2;;;;;;:::i;:::-;;;;:::i;:::-;;;3273:43:17;:::i;:::-;3250:67;;:::i;632:1374:2:-;;;;;;-1:-1:-1;;632:1374:2;;;;;;;4609:7:17;632:1374:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;4609:7:17;632:1374:2;;;;;;;;;;;;-1:-1:-1;632:1374:2;;-1:-1:-1;632:1374:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:1374:2;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:1374:2;;-1:-1:-1;632:1374:2;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:1374:2;;;;;;;;-1:-1:-1;;;;;632:1374:2;;;;;;;;;;;;2512:57:17;632:1374:2;2525:43:17;632:1374:2;;;:::i;2525:43:17:-;2512:57;;:::i;632:1374:2:-;;;;;;-1:-1:-1;;632:1374:2;;;;;;735:10:49;-1:-1:-1;;;;;632:1374:2;;;2339:24:32;2335:96;;1311:13;632:1374:2;;-1:-1:-1;;;;;;632:1374:2;;;;;;-1:-1:-1;632:1374:2;;735:10:49;632:1374:2;;;;;;;-1:-1:-1;;;;;632:1374:2;;3052:40:31;;-1:-1:-1;3052:40:31;632:1374:2;2335:96:32;2386:34;;;632:1374:2;2386:34:32;735:10:49;632:1374:2;;;;2386:34:32;632:1374:2;;;;;;-1:-1:-1;;632:1374:2;;;;1500:62:31;;:::i;:::-;2093:20:32;632:1374:2;;-1:-1:-1;;;;;;632:1374:2;;;;;;-1:-1:-1;632:1374:2;;;;;;;-1:-1:-1;;;;;;632:1374:2;3052:40:31;-1:-1:-1;;3052:40:31;632:1374:2;;;;;;;-1:-1:-1;;632:1374:2;;;;-1:-1:-1;;;;;632:1374:2;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;632:1374:2;;;;;8596:13:23;632:1374:2;;;;;;;;;;;;;-1:-1:-1;;632:1374:2;;;;;;;4295:1:17;632:1374:2;;;;;;;;;-1:-1:-1;;632:1374:2;;;;;;:::i;:::-;;;;;;;;;;;1500:62:31;;:::i;:::-;-1:-1:-1;;;;;632:1374:2;;;;;;;;;;;;;;;;;2482:22:160;;211624:64;;632:1374:2;-1:-1:-1;;;;;;;;;;;632:1374:2;;;-1:-1:-1;;;5329:65:159;;632:1374:2;5329:65:159;;632:1374:2;;;;;;;;;;-1:-1:-1;;;632:1374:2;;;;;;;;;;;;;;;-1:-1:-1;;;;;632:1374:2;5329:65:159;;;;;;632:1374:2;5329:65:159;;;632:1374:2;370021:7:160;5320:74:159;;632:1374:2;;;;;;;;;;;370832:13:160;370840:4;370832:13;;:::i;:::-;370021:7;:::i;:::-;632:1374:2;;5502:43:17;632:1374:2;;;950:17:17;;632:1374:2;;5502:43:17;211757:4:160;632:1374:2;;;;;;;;;;;;;;;-1:-1:-1;;;;632:1374:2;;;;;;;;-1:-1:-1;;;632:1374:2;;211757:4:160;632:1374:2;;;;;;1682:16:22;;632:1374:2;;1682:16:22;632:1374:2;5329:65:159;;632:1374:2;5329:65:159;;632:1374:2;5329:65:159;;;;;;632:1374:2;5329:65:159;;;:::i;:::-;;;632:1374:2;;;;370021:7:160;632:1374:2;;5329:65:159;;;;;-1:-1:-1;5329:65:159;;211624:64:160;344922:44;632:1374:2;344922:44:160;;:::i;:::-;211624:64;;;;632:1374:2;;;;;;-1:-1:-1;;632:1374:2;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;632:1374:2;;;;;;4775:12:17;632:1374:2;;;;;;;;;;;;;;;;-1:-1:-1;;632:1374:2;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;632:1374:2;;;;;4448:5:17;632:1374:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;4448:5:17;632:1374:2;;;;;;;;;;;;-1:-1:-1;632:1374:2;;-1:-1:-1;632:1374:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;632:1374:2;;;;;;;;-1:-1:-1;;632:1374:2;;;;:::o;:::-;;;;-1:-1:-1;;;;;632:1374:2;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;632:1374:2;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;632:1374:2;;;;;;;-1:-1:-1;;;;;632:1374:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;632:1374:2;;;;;-1:-1:-1;632:1374:2;2037:282:17;;2231:6;2037:282;2153:6;;;:::i;:::-;2186:10;;2231:6;:::i;:::-;632:1374:2;;-1:-1:-1;;632:1374:2;;-1:-1:-1;;;;;632:1374:2;;;;2186:10:17;;2253:38;;632:1374:2;;2253:38:17;2308:4;2037:282;:::o;2315:337:21:-;;2454:6;;;:::i;:::-;-1:-1:-1;;;;;632:1374:2;;-1:-1:-1;632:1374:2;;;7824:11:17;632:1374:2;;;;;;;;2489:10:21;632:1374:2;;;;;;;;;;;;3633:33:21;632:1374:2;3633:33:21;;:::i;:::-;3695:75;632:1374:2;6306:25:23;632:1374:2;6294:37:23;;3736:32:21;6294:37:23;6290:94;;6429:21;632:1374:2;;;;3736:32:21;-1:-1:-1;632:1374:2;;;;;-1:-1:-1;;632:1374:2;325937:72:160;;632:1374:2;325937:72:160;;:::i;:::-;632:1374:2;;;3877:9:21;632:1374:2;;3861:33:21;632:1374:2;;;;3861:33:21;;:::i;:::-;632:1374:2;;;;;;;-1:-1:-1;;;;;;;;;;;632:1374:2;;12663:47:159;632:1374:2;;;;;;;;;12663:47:159;;;3877:9:21;12663:47:159;;632:1374:2;12663:47:159;;;;;;;-1:-1:-1;12663:47:159;;;2315:337:21;-1:-1:-1;;;;;;;;;;;;632:1374:2;;;-1:-1:-1;;;6980:68:159;;3877:9:21;6980:68:159;;632:1374:2;;;;12663:47:159;632:1374:2;;;;;-1:-1:-1;632:1374:2;;;;;;;;;;6980:68:159;;632:1374:2;;-1:-1:-1;;;;;;632:1374:2;6980:68:159;;;;;;;-1:-1:-1;6980:68:159;;;2315:337:21;3203:37:23;632:1374:2;3203:37:23;3199:94;;325937:72:160;370021:7;632:1374:2;;;;-1:-1:-1;632:1374:2;6429:21:23;632:1374:2;;;-1:-1:-1;632:1374:2;;325937:72:160;;:::i;:::-;4370:21:21;;;:::i;:::-;;370021:7:160;;;;:::i;:::-;6980:68:159;632:1374:2;;;;;-1:-1:-1;;;;;;;;;;;632:1374:2;;;-1:-1:-1;632:1374:2;;;;;;;;;;6980:68:159;;3877:9:21;6980:68:159;;632:1374:2;12663:47:159;632:1374:2;;;;;;;;6980:68:159;;;;;;;-1:-1:-1;6980:68:159;;;2315:337:21;4597:34;4569:81;325937:72:160;4597:34:21;;;2609:14;4597:34;;:::i;:::-;325937:72:160;;:::i;:::-;2489:10:21;4569:81;;:::i;:::-;2609:14;:::i;:::-;632:1374:2;2315:337:21;:::o;6980:68:159:-;;;;632:1374:2;6980:68:159;;632:1374:2;6980:68:159;;;;;;632:1374:2;6980:68:159;;;:::i;:::-;;;632:1374:2;;;;;;6980:68:159;;4569:81:21;6980:68:159;;;;;-1:-1:-1;6980:68:159;;;;;;632:1374:2;6980:68:159;;632:1374:2;6980:68:159;;;;;;632:1374:2;6980:68:159;;;:::i;:::-;;;632:1374:2;;;;;6980:68:159;;;;;;;-1:-1:-1;6980:68:159;;12663:47;;;632:1374:2;12663:47:159;;632:1374:2;12663:47:159;;;;;;632:1374:2;12663:47:159;;;:::i;:::-;;;632:1374:2;;;;;;;;12663:47:159;;;;;-1:-1:-1;12663:47:159;;632:1374:2;;;;;;;;;;;;;;;;-1:-1:-1;;632:1374:2;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;632:1374:2;;;;;;:::o;1691:548:21:-;;1812:6;;;:::i;:::-;1935:10;-1:-1:-1;632:1374:2;1925:9:21;632:1374:2;;1909:38:21;632:1374:2;-1:-1:-1;632:1374:2;;1909:38:21;;:::i;:::-;1976:70;632:1374:2;6306:25:23;632:1374:2;2013:31:21;6294:37:23;6290:94;;6429:21;632:1374:2;;;;2013:31:21;-1:-1:-1;632:1374:2;;;2199:11:21;;632:1374:2;370021:7:160;;632:1374:2;;325937:72:160;;632:1374:2;325937:72:160;;:::i;:::-;2056:21:21;;;:::i;:::-;;370021:7:160;1935:10:21;370021:7:160;;:::i;:::-;1935:10:21;2199:11;:::i;7864:178:17:-;4586:62:159;632:1374:2;;;-1:-1:-1;;;16241:45:159;;;;;632:1374:2;;;;368839:10:160;632:1374:2;;;;16241:45:159;;632:1374:2;;;;;;-1:-1:-1;;;;;632:1374:2;16241:45:159;;;;;;;-1:-1:-1;16241:45:159;;;7864:178:17;7951:29;;7947:89;;7864:178::o;7947:89::-;8003:22;;;-1:-1:-1;8003:22:17;16241:45:159;-1:-1:-1;8003:22:17;16241:45:159;;;;;;;;;;;;;;;;;:::i;:::-;;;632:1374:2;;;;;;;;;;;;16241:45:159;;;;;;-1:-1:-1;16241:45:159;;4800:431:17;-1:-1:-1;;;;;632:1374:2;;;4800:431:17;;4897:19;;4893:84;;-1:-1:-1;;;;;632:1374:2;;;4991:21:17;;4987:87;;632:1374:2;370021:7:160;632:1374:2;;370021:7:160;632:1374:2;4914:1:17;632:1374:2;5084:11:17;632:1374:2;;;4914:1:17;632:1374:2;5084:27:17;-1:-1:-1;632:1374:2;;;;;-1:-1:-1;632:1374:2;;370832:13:160;370840:4;370832:13;;:::i;:::-;370021:7;;:::i;:::-;4800:431:17:o;4987:87::-;5035:28;;;;4914:1;5035:28;;632:1374:2;;4914:1:17;5035:28;4893:84;4939:27;;;;4914:1;4939:27;;632:1374:2;;4914:1:17;4939:27;3034:276:21;;;-1:-1:-1;;;;;632:1374:2;;;3034:276:21;6337:18:17;;6333:80;;-1:-1:-1;;;;;632:1374:2;;;6427:16:17;;6423:78;;344922:44:160;325937:72;344922:44;;;:::i;:::-;325937:72;;:::i;:::-;632:1374:2;;6353:1:17;632:1374:2;6716:9:17;632:1374:2;;6353:1:17;632:1374:2;;;;;6707:38:17;;2482:22:160;196412:64;;3034:276:21;2482:22:160;;196485:64;;3034:276:21;-1:-1:-1;;;;;;;;;;;632:1374:2;;;-1:-1:-1;;;5329:65:159;;6716:9:17;5329:65:159;;;632:1374:2;;;;;;;;;;;;;;-1:-1:-1;;;;;;632:1374:2;;;;;;;;;;;;;;-1:-1:-1;;;;;632:1374:2;5329:65:159;;;;;;;6353:1:17;5329:65:159;;;3034:276:21;5320:74:159;;370021:7:160;6894:40:17;5320:74:159;;370021:7:160;5320:74:159;632:1374:2;;6353:1:17;632:1374:2;6716:9:17;632:1374:2;;;;6353:1:17;632:1374:2;;370832:13:160;370840:4;370832:13;;:::i;370021:7::-;632:1374:2;6353:1:17;632:1374:2;6716:9:17;632:1374:2;;;6353:1:17;632:1374:2;;6894:40:17;:::i;:::-;632:1374:2;6353:1:17;632:1374:2;6716:9:17;632:1374:2;;;;6353:1:17;632:1374:2;;370832:13:160;370840:4;370832:13;;:::i;370021:7::-;8596:13:23;632:1374:2;-1:-1:-1;;632:1374:2;;;;;;;;3261:42:21;632:1374:2;;;;;;3261:42:21;3034:276::o;5329:65:159:-;;;;632:1374:2;5329:65:159;;632:1374:2;5329:65:159;;;;;;632:1374:2;5329:65:159;;;:::i;:::-;;;632:1374:2;;;;;;370021:7:160;5329:65:159;;;;;-1:-1:-1;5329:65:159;;196485:64:160;344922:44;;;:::i;:::-;196485:64;;196412;344922:44;;;;:::i;:::-;196412:64;;;6423:78:17;6466:24;;;;6353:1;6466:24;;632:1374:2;;6353:1:17;6466:24;6333:80;6378:24;;;;6353:1;6378:24;;632:1374:2;;6353:1:17;6378:24;1796:162:31;1710:6;632:1374:2;-1:-1:-1;;;;;632:1374:2;735:10:49;1855:23:31;1851:101;;1796:162::o;344561:198:160:-;632:1374:2;344561:198:160;632:1374:2;344561:198:160;632:1374:2;;;;;-1:-1:-1;;;;;;;;;;;632:1374:2;;;-1:-1:-1;632:1374:2;;;;;;;;;;;13336:164:159;;;;;632:1374:2;13428:10:159;632:1374:2;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;632:1374:2;;;;13336:164:159;;;;;;;;;-1:-1:-1;13336:164:159;;;344561:198:160;-1:-1:-1;4586:62:159;632:1374:2;-1:-1:-1;;;;;632:1374:2;13510:53:159;;;;;632:1374:2;;-1:-1:-1;;;13510:53:159;;13336:164;13510:53;;632:1374:2;;;13428:10:159;632:1374:2;;;;;-1:-1:-1;;632:1374:2;;;;;;-1:-1:-1;;13510:53:159;;;;;;;;344662:90:160;344561:198;:::o;13510:53:159:-;-1:-1:-1;13510:53:159;;;:::i;:::-;344561:198:160;:::o;13336:164:159:-;;;632:1374:2;13336:164:159;;632:1374:2;13336:164:159;;;;;;632:1374:2;13336:164:159;;;:::i;:::-;;;632:1374:2;;;;;13336:164:159;;;;;;-1:-1:-1;13336:164:159;;199848:293:160;;2482:22;;199917:64;;199848:293;2482:22;;199990:64;;199848:293;632:1374:2;;11129:64:159;632:1374:2;;;;;-1:-1:-1;;;;;;;;;;;632:1374:2;;;-1:-1:-1;632:1374:2;;;;;;;;;;11129:64:159;;;;;632:1374:2;;;;;;;;;;11129:64:159;;;;;;;-1:-1:-1;11129:64:159;;;200063:71:160;199848:293;:::o;11129:64:159:-;;;632:1374:2;11129:64:159;;632:1374:2;11129:64:159;;;;;;632:1374:2;11129:64:159;;;:::i;:::-;;;632:1374:2;;;;;199848:293:160;:::o;11129:64:159:-;;;-1:-1:-1;11129:64:159;;199990::160;344922:44;632:1374:2;344922:44:160;;:::i;:::-;199990:64;;;;199917;344922:44;;;;:::i;:::-;199917:64;;;6796:231:23;6897:13;632:1374:2;;6796:231:23;-1:-1:-1;;632:1374:2;;;;370832:13:160;632:1374:2;;;;6897:13:23;632:1374:2;;-1:-1:-1;632:1374:2;6945:18:23;632:1374:2;;;;-1:-1:-1;632:1374:2;;370840:4:160;370832:13;;:::i;196694:299::-;5706:65:159;196694:299:160;-1:-1:-1;196694:299:160;2482:22;;196766:64;;196694:299;2482:22;;196839:64;;196694:299;-1:-1:-1;;;;;;;;;;;632:1374:2;;;-1:-1:-1;;;5706:65:159;;;;;;632:1374:2;;;;;;;;;;;;;;-1:-1:-1;;;;;;632:1374:2;;;;;;;;;;;;;;-1:-1:-1;;;;;632:1374:2;5706:65:159;;;;;;;-1:-1:-1;5706:65:159;;;5697:74;196694:299:160;:::o;196839:64::-;344922:44;;;:::i;:::-;196839:64;;196766;344922:44;;;;:::i;:::-;196766:64;;;15747:171:159;4586:62;632:1374:2;-1:-1:-1;;;;;632:1374:2;;15870:41:159;;;;;632:1374:2;;-1:-1:-1;;;15870:41:159;;;;;632:1374:2;;;;-1:-1:-1;;;;;632:1374:2;;;;;;-1:-1:-1;;632:1374:2;;;;;;-1:-1:-1;;15870:41:159;;;;;;;;15747:171;:::o;15870:41::-;-1:-1:-1;15870:41:159;;;:::i;12887:258::-;;13062:76;632:1374:2;12887:258:159;-1:-1:-1;632:1374:2;;;;;-1:-1:-1;;;;;;;;;;;632:1374:2;;;;;;;;;;;;13062:76:159;;;;;632:1374:2;;;;;;;;;13062:76:159;;;;;;;-1:-1:-1;13062:76:159;;;13053:85;12887:258;:::o;13815:243::-;-1:-1:-1;;;;;;;;;;;632:1374:2;;;-1:-1:-1;;;13977:74:159;;632:1374:2;13977:74:159;;;632:1374:2;;;-1:-1:-1;;;632:1374:2;;;;;;;;;;13977:74:159;;632:1374:2;;-1:-1:-1;;;;;632:1374:2;13977:74:159;;;;;;;632:1374:2;13977:74:159;;;13968:83;13815:243;:::o","linkReferences":{},"immutableReferences":{"6572":[{"start":2970,"length":32},{"start":3727,"length":32}]}},"methodIdentifiers":{"acceptOwnership()":"79ba5097","allowance(address,address)":"dd62ed3e","approve(address,bytes32,bytes)":"b32c1001","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint64)":"9dbead42","decimals()":"313ce567","errorGetCounter()":"67a74a28","getErrorCodeForTransferId(uint256)":"a5184baf","mint(address,uint64)":"2893c5b0","name()":"06fdde03","owner()":"8da5cb5b","pendingOwner()":"e30c3978","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,bytes32,bytes)":"7b7e0a5a","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,bytes32,bytes)":"9a094352","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorIndexInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorIndexIsNull\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TFHESenderNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TotalNumberErrorCodesEqualToZero\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"placeholder\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"transferId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"euint64\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"euint64\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"einput\",\"name\":\"encryptedAmount\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"inputProof\",\"type\":\"bytes\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"euint64\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"errorGetCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"errorsCount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"transferId\",\"type\":\"uint256\"}],\"name\":\"getErrorCodeForTransferId\",\"outputs\":[{\"internalType\":\"euint8\",\"name\":\"errorCode\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"einput\",\"name\":\"encryptedAmount\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"inputProof\",\"type\":\"bytes\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"euint64\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"euint64\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"einput\",\"name\":\"encryptedAmount\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"inputProof\",\"type\":\"bytes\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"It allows an owner to mint tokens and users to burn tokens. Mint amounts are public.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"params\":{\"owner\":\"Owner address.\",\"placeholder\":\"Placeholder.\",\"spender\":\"Spender address.\"}},\"Transfer(address,address,uint256)\":{\"params\":{\"from\":\"Sender address.\",\"to\":\"Receiver address.\",\"transferId\":\"If the implementation does not support error handling, it must be set to a default placeholder (typically equal to max(uint256). However, it must be set to a transferId if the implementation supports encrypted error handling.\"}}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"constructor\":{\"params\":{\"name_\":\"Name of the token.\",\"owner_\":\"Owner address.\",\"symbol_\":\"Symbol.\"}},\"getErrorCodeForTransferId(uint256)\":{\"params\":{\"transferId\":\"Transfer id. It can be read from the `Transfer` event.\"},\"returns\":{\"errorCode\":\" Encrypted error code.\"}},\"mint(address,uint64)\":{\"params\":{\"amount\":\"Amount of tokens to mint.\",\"to\":\"Address to mint tokens to.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer.\"}},\"title\":\"ConfidentialERC20WithErrorsMintable.\",\"version\":1},\"userdoc\":{\"errors\":{\"ErrorIndexInvalid()\":[{\"notice\":\"Returned if the error index is invalid.\"}],\"ErrorIndexIsNull()\":[{\"notice\":\"Returned if the error index is null.\"}],\"TFHESenderNotAllowed()\":[{\"notice\":\"Returned when the `sender` is not allowed to access a value.\"}],\"TotalNumberErrorCodesEqualToZero()\":[{\"notice\":\"Returned if the total number of errors is equal to zero.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"notice\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}.\"},\"Burn(address,uint64)\":{\"notice\":\"Emitted when `amount` tokens are minted to one account (`to`).\"},\"Mint(address,uint64)\":{\"notice\":\"Emitted when `amount` tokens are minted to one account (`to`).\"},\"Transfer(address,address,uint256)\":{\"notice\":\"Emitted when tokens are moved from one account (`from`) to another (`to`).\"}},\"kind\":\"user\",\"methods\":{\"allowance(address,address)\":{\"notice\":\"See {IConfidentialERC20-allowance}.\"},\"approve(address,bytes32,bytes)\":{\"notice\":\"See {IConfidentialERC20-approve}.\"},\"approve(address,uint256)\":{\"notice\":\"See {IConfidentialERC20-approve}.\"},\"balanceOf(address)\":{\"notice\":\"See {IConfidentialERC20-balanceOf}.\"},\"decimals()\":{\"notice\":\"See {IConfidentialERC20-decimals}.\"},\"getErrorCodeForTransferId(uint256)\":{\"notice\":\"Return the error for a transfer id.\"},\"mint(address,uint64)\":{\"notice\":\"Mint tokens.\"},\"name()\":{\"notice\":\"See {IConfidentialERC20-name}.\"},\"symbol()\":{\"notice\":\"See {IConfidentialERC20-symbol}.\"},\"totalSupply()\":{\"notice\":\"See {IConfidentialERC20-totalSupply}.\"},\"transfer(address,bytes32,bytes)\":{\"notice\":\"See {IConfidentialERC20-transfer}.\"},\"transfer(address,uint256)\":{\"notice\":\"See {IConfidentialERC20-transfer}.\"},\"transferFrom(address,address,bytes32,bytes)\":{\"notice\":\"See {IConfidentialERC20-transferFrom}.\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"See {IConfidentialERC20-transferFrom}.\"}},\"notice\":\"This contract inherits ConfidentialERC20WithErrorsMintable.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol\":\"ConfidentialERC20WithErrorsMintableBurnable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@chainlink/=lib/chainlink/\",\":@ensdomains/=lib/v4-core/node_modules/@ensdomains/\",\":@httpz-contracts/=lib/httpz-contracts/contracts/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/universal-router/=lib/universal-router.git/\",\":@uniswap/v2-core/=lib/v2-core/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/\",\":@uniswap/v4-core/=lib/v4-core/\",\":@uniswap/v4-periphery/=lib/v4-periphery/\",\":chainlink/=lib/chainlink/\",\":ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":fhevm-contracts/=node_modules/fhevm-contracts/\",\":fhevm-core-contracts/=node_modules/fhevm-core-contracts/\",\":fhevm/=node_modules/fhevm/\",\":forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":httpz-contracts/=lib/httpz-contracts/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":permit2/=lib/permit2/\",\":solmate/=lib/permit2/lib/solmate/\",\":universal-router.git/=lib/universal-router.git/\",\":v2-core/=lib/v2-core/contracts/\",\":v3-core/=lib/v3-core/\",\":v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/\",\":v4-core/=lib/v4-core/src/\",\":v4-periphery/=lib/v4-periphery/\"],\"viaIR\":true},\"sources\":{\"contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol\":{\"keccak256\":\"0x6f947e91a3369017e4d0147ac44ea39c6f8ffa4a5307d8339481f4e88355a62d\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://27794b1340f9299d7be061aacde65075fca40a1d722e8c5181cee22f257eeb25\",\"dweb:/ipfs/QmT3DReokqZhMtDcEDpkTgf1zG5cZELzPEZDjrqpfEXjWC\"]},\"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol\":{\"keccak256\":\"0x8b45e5bb2fd9212f99e61b4d25b9c9d5ed7cb1a9a684aac34f752c568ef16c76\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://1ca71bb5bfbb2f8a0779f8394baeea01680619637abddb572017d05d96862591\",\"dweb:/ipfs/QmPCzGBE1m6WtDZxrVL5jzkduNaS7fjtYovUWdnzN34qjh\"]},\"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol\":{\"keccak256\":\"0xe016a085f72ca3cf6d78ec1cb2182a398106cb7d425e984776a9caab0bad2569\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://3e79dc5075469d660908f5f8b6d0c863b14459d60a0b06fb786d58de8cf30a94\",\"dweb:/ipfs/QmePGRGtoWBnQ8T6ZRyZgiwVh4r67kcmWejwKgjyYN4AAY\"]},\"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol\":{\"keccak256\":\"0xfe322c8f9a8e4fba881715901a5bafd2efa23394ecbc9ec84282818baeff0a07\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://13dba831528dd16408b7abab23eac0664a2a3e5ecbfe5e58e6e321cf2921668a\",\"dweb:/ipfs/QmPq4YeugbayWfeBJR8H7s4jHsnZkACQX2xbdNQ4sdvZrk\"]},\"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol\":{\"keccak256\":\"0xecc6289a9791bef254911393b51d2bfbddc5650ede7fbe7b5cc2b8d3eb01d7a6\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://7463278a20bc5d7fd8b7ec2cb8e592b2d1e0afcf8b59d35d6929d18661d4b38c\",\"dweb:/ipfs/QmTKPoABwNDmK7g7vkti1AkTpkUBHu3iX3zsXQsEuSiqBM\"]},\"lib/httpz-contracts/contracts/utils/EncryptedErrors.sol\":{\"keccak256\":\"0x0b8d08f392884add1af672018359e8980ee0b5e1662fe5e36eb31f053d1d4505\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://2903dd49a88b36aba2e8a45548b6a68d203887356ebdf452b10e0148954ba1a5\",\"dweb:/ipfs/QmTRuP4QXagoV2cLr2ctzFtNK7FK1cDXMYm4feMoMsYoWG\"]},\"lib/httpz-contracts/contracts/utils/TFHEErrors.sol\":{\"keccak256\":\"0x5fef7c2d7d4449d724a2800b37dfcc61e2b635f2747378ce222b9187425f2d13\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://7c2ef113faaec2d74c8d958f80687d0b676082d6231720917aaa8aa934d689a3\",\"dweb:/ipfs/QmNn474JDQ5zvVDwEuicJs6Xq8YEXWGZLoW4KeTWDVG31f\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol\":{\"keccak256\":\"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0\",\"dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/fhevm/config/ZamaFHEVMConfig.sol\":{\"keccak256\":\"0x41782f4c707b81399916544fa2e7be94a695fa4ba468542732d29d3e383c0315\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://45a95a55c4bbb3418c2133cba6ed21a9444bb4e38d38b32cc707b7493cece2ca\",\"dweb:/ipfs/QmVU8EKmZgscdM43RgXD4EgbVMhQxBusTmBren3pbn1pUW\"]},\"node_modules/fhevm/lib/Impl.sol\":{\"keccak256\":\"0x89d4968cd956a8931f1a8a177b3bef1c6cf88a03665083db74430add50b88f21\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://aaaef2c82d56dacfb08946842ea1ce26757d13f3251de62fa79222232dfcb43c\",\"dweb:/ipfs/QmQ6QZPxJw9jb3qjRYCX7pMQVoYogjTsYgmdEnB3EnwFRy\"]},\"node_modules/fhevm/lib/TFHE.sol\":{\"keccak256\":\"0x221799c8332f83ab65a0b71746409f0c2c89f1cd8d9ba4091d967c667e1df734\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://2dba387fbc612a2ee64063b0ee6c27304b3944423d11045acc50abd84577fb5f\",\"dweb:/ipfs/QmThptDGnpd8PuncFk1rnQoCzEqwUED622yC9xZgFhwY59\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[],"type":"error","name":"ErrorIndexInvalid"},{"inputs":[],"type":"error","name":"ErrorIndexIsNull"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"TFHESenderNotAllowed"},{"inputs":[],"type":"error","name":"TotalNumberErrorCodesEqualToZero"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"placeholder","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint64","name":"amount","type":"uint64","indexed":false}],"type":"event","name":"Burn","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint64","name":"amount","type":"uint64","indexed":false}],"type":"event","name":"Mint","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferStarted","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"transferId","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"acceptOwnership"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"euint64","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"euint64","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"einput","name":"encryptedAmount","type":"bytes32"},{"internalType":"bytes","name":"inputProof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"euint64","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"amount","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"errorGetCounter","outputs":[{"internalType":"uint256","name":"errorsCount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"transferId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getErrorCodeForTransferId","outputs":[{"internalType":"euint8","name":"errorCode","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint64","name":"amount","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"einput","name":"encryptedAmount","type":"bytes32"},{"internalType":"bytes","name":"inputProof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"euint64","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"euint64","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"einput","name":"encryptedAmount","type":"bytes32"},{"internalType":"bytes","name":"inputProof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"constructor":{"params":{"name_":"Name of the token.","owner_":"Owner address.","symbol_":"Symbol."}},"getErrorCodeForTransferId(uint256)":{"params":{"transferId":"Transfer id. It can be read from the `Transfer` event."},"returns":{"errorCode":" Encrypted error code."}},"mint(address,uint64)":{"params":{"amount":"Amount of tokens to mint.","to":"Address to mint tokens to."}},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer."}},"version":1},"userdoc":{"kind":"user","methods":{"allowance(address,address)":{"notice":"See {IConfidentialERC20-allowance}."},"approve(address,bytes32,bytes)":{"notice":"See {IConfidentialERC20-approve}."},"approve(address,uint256)":{"notice":"See {IConfidentialERC20-approve}."},"balanceOf(address)":{"notice":"See {IConfidentialERC20-balanceOf}."},"decimals()":{"notice":"See {IConfidentialERC20-decimals}."},"getErrorCodeForTransferId(uint256)":{"notice":"Return the error for a transfer id."},"mint(address,uint64)":{"notice":"Mint tokens."},"name()":{"notice":"See {IConfidentialERC20-name}."},"symbol()":{"notice":"See {IConfidentialERC20-symbol}."},"totalSupply()":{"notice":"See {IConfidentialERC20-totalSupply}."},"transfer(address,bytes32,bytes)":{"notice":"See {IConfidentialERC20-transfer}."},"transfer(address,uint256)":{"notice":"See {IConfidentialERC20-transfer}."},"transferFrom(address,address,bytes32,bytes)":{"notice":"See {IConfidentialERC20-transferFrom}."},"transferFrom(address,address,uint256)":{"notice":"See {IConfidentialERC20-transferFrom}."}},"version":1}},"settings":{"remappings":["@chainlink/=lib/chainlink/","@ensdomains/=lib/v4-core/node_modules/@ensdomains/","@httpz-contracts/=lib/httpz-contracts/contracts/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@uniswap/universal-router/=lib/universal-router.git/","@uniswap/v2-core/=lib/v2-core/","@uniswap/v3-core/=lib/v3-core/","@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/","@uniswap/v4-core/=lib/v4-core/","@uniswap/v4-periphery/=lib/v4-periphery/","chainlink/=lib/chainlink/","ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","eth-gas-reporter/=node_modules/eth-gas-reporter/","fhevm-contracts/=node_modules/fhevm-contracts/","fhevm-core-contracts/=node_modules/fhevm-core-contracts/","fhevm/=node_modules/fhevm/","forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","httpz-contracts/=lib/httpz-contracts/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","permit2/=lib/permit2/","solmate/=lib/permit2/lib/solmate/","universal-router.git/=lib/universal-router.git/","v2-core/=lib/v2-core/contracts/","v3-core/=lib/v3-core/","v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/","v4-core/=lib/v4-core/src/","v4-periphery/=lib/v4-periphery/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol":"ConfidentialERC20WithErrorsMintableBurnable"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol":{"keccak256":"0x6f947e91a3369017e4d0147ac44ea39c6f8ffa4a5307d8339481f4e88355a62d","urls":["bzz-raw://27794b1340f9299d7be061aacde65075fca40a1d722e8c5181cee22f257eeb25","dweb:/ipfs/QmT3DReokqZhMtDcEDpkTgf1zG5cZELzPEZDjrqpfEXjWC"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol":{"keccak256":"0x8b45e5bb2fd9212f99e61b4d25b9c9d5ed7cb1a9a684aac34f752c568ef16c76","urls":["bzz-raw://1ca71bb5bfbb2f8a0779f8394baeea01680619637abddb572017d05d96862591","dweb:/ipfs/QmPCzGBE1m6WtDZxrVL5jzkduNaS7fjtYovUWdnzN34qjh"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol":{"keccak256":"0xe016a085f72ca3cf6d78ec1cb2182a398106cb7d425e984776a9caab0bad2569","urls":["bzz-raw://3e79dc5075469d660908f5f8b6d0c863b14459d60a0b06fb786d58de8cf30a94","dweb:/ipfs/QmePGRGtoWBnQ8T6ZRyZgiwVh4r67kcmWejwKgjyYN4AAY"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol":{"keccak256":"0xfe322c8f9a8e4fba881715901a5bafd2efa23394ecbc9ec84282818baeff0a07","urls":["bzz-raw://13dba831528dd16408b7abab23eac0664a2a3e5ecbfe5e58e6e321cf2921668a","dweb:/ipfs/QmPq4YeugbayWfeBJR8H7s4jHsnZkACQX2xbdNQ4sdvZrk"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol":{"keccak256":"0xecc6289a9791bef254911393b51d2bfbddc5650ede7fbe7b5cc2b8d3eb01d7a6","urls":["bzz-raw://7463278a20bc5d7fd8b7ec2cb8e592b2d1e0afcf8b59d35d6929d18661d4b38c","dweb:/ipfs/QmTKPoABwNDmK7g7vkti1AkTpkUBHu3iX3zsXQsEuSiqBM"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/utils/EncryptedErrors.sol":{"keccak256":"0x0b8d08f392884add1af672018359e8980ee0b5e1662fe5e36eb31f053d1d4505","urls":["bzz-raw://2903dd49a88b36aba2e8a45548b6a68d203887356ebdf452b10e0148954ba1a5","dweb:/ipfs/QmTRuP4QXagoV2cLr2ctzFtNK7FK1cDXMYm4feMoMsYoWG"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/utils/TFHEErrors.sol":{"keccak256":"0x5fef7c2d7d4449d724a2800b37dfcc61e2b635f2747378ce222b9187425f2d13","urls":["bzz-raw://7c2ef113faaec2d74c8d958f80687d0b676082d6231720917aaa8aa934d689a3","dweb:/ipfs/QmNn474JDQ5zvVDwEuicJs6Xq8YEXWGZLoW4KeTWDVG31f"],"license":"BSD-3-Clause-Clear"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol":{"keccak256":"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c","urls":["bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0","dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/fhevm/config/ZamaFHEVMConfig.sol":{"keccak256":"0x41782f4c707b81399916544fa2e7be94a695fa4ba468542732d29d3e383c0315","urls":["bzz-raw://45a95a55c4bbb3418c2133cba6ed21a9444bb4e38d38b32cc707b7493cece2ca","dweb:/ipfs/QmVU8EKmZgscdM43RgXD4EgbVMhQxBusTmBren3pbn1pUW"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/lib/Impl.sol":{"keccak256":"0x89d4968cd956a8931f1a8a177b3bef1c6cf88a03665083db74430add50b88f21","urls":["bzz-raw://aaaef2c82d56dacfb08946842ea1ce26757d13f3251de62fa79222232dfcb43c","dweb:/ipfs/QmQ6QZPxJw9jb3qjRYCX7pMQVoYogjTsYgmdEnB3EnwFRy"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/lib/TFHE.sol":{"keccak256":"0x221799c8332f83ab65a0b71746409f0c2c89f1cd8d9ba4091d967c667e1df734","urls":["bzz-raw://2dba387fbc612a2ee64063b0ee6c27304b3944423d11045acc50abd84577fb5f","dweb:/ipfs/QmThptDGnpd8PuncFk1rnQoCzEqwUED622yC9xZgFhwY59"],"license":"BSD-3-Clause-Clear"}},"version":1},"id":2} \ No newline at end of file diff --git a/out/ConfidentialERC20WithErrorsWrapped.sol/ConfidentialERC20WithErrorsWrapped.json b/out/ConfidentialERC20WithErrorsWrapped.sol/ConfidentialERC20WithErrorsWrapped.json index aea7c29..e39dbf2 100644 --- a/out/ConfidentialERC20WithErrorsWrapped.sol/ConfidentialERC20WithErrorsWrapped.json +++ b/out/ConfidentialERC20WithErrorsWrapped.sol/ConfidentialERC20WithErrorsWrapped.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"},{"name":"erc20_","type":"address","internalType":"address"},{"name":"maxDecryptionDelay_","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"ERC20_TOKEN","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20Metadata"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"euint64"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"euint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"encryptedAmount","type":"bytes32","internalType":"einput"},{"name":"inputProof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"euint64"}],"stateMutability":"view"},{"type":"function","name":"callbackUnwrap","inputs":[{"name":"requestId","type":"uint256","internalType":"uint256"},{"name":"canUnwrap","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"errorGetCounter","inputs":[],"outputs":[{"name":"errorsCount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getErrorCodeForTransferId","inputs":[{"name":"transferId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"errorCode","type":"uint256","internalType":"euint8"}],"stateMutability":"view"},{"type":"function","name":"isAccountRestricted","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"isRestricted","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"encryptedAmount","type":"bytes32","internalType":"einput"},{"name":"inputProof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"euint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"euint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"encryptedAmount","type":"bytes32","internalType":"einput"},{"name":"inputProof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"unwrap","inputs":[{"name":"amount","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unwrapRequests","inputs":[{"name":"requestId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"account","type":"address","internalType":"address"},{"name":"amount","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"wrap","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"placeholder","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"transferId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Unwrap","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"UnwrapFailNotEnoughBalance","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"UnwrapFailTransferFail","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Wrap","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"error","name":"AmountTooHigh","inputs":[]},{"type":"error","name":"CannotTransferOrUnwrap","inputs":[]},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"ErrorIndexInvalid","inputs":[]},{"type":"error","name":"ErrorIndexIsNull","inputs":[]},{"type":"error","name":"MaxDecryptionDelayTooHigh","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"TFHESenderNotAllowed","inputs":[]},{"type":"error","name":"TotalNumberErrorCodesEqualToZero","inputs":[]}],"bytecode":{"object":"0x60c08060405234610278576122fd803803809161001c82856104ec565b83398101906080818303126102785780516001600160401b038111610278578261004791830161050f565b602082015190926001600160401b0382116102785761006791830161050f565b604082015190916001600160a01b03821691829003610278576060015183516001600160401b0381116103fd57600154600181811c911680156104e2575b60208210146103df57601f811161047f575b50602094601f821160011461041c579481929394955f92610411575b50508160011b915f199060031b1c1916176001555b82516001600160401b0381116103fd57600254600181811c911680156103f3575b60208210146103df57601f811161037c575b506020601f821160011461031957819293945f9261030e575b50508160011b915f199060031b1c1916176002555b5f5b60ff8116600281116102af577fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60154604051631ce2e8d760e31b815260048101839052600160f91b6024820152929190602090849060449082905f906001600160a01b03165af192831561026d575f9361027c575b505f9081526006602052604090208290557fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600546001600160a01b031691823b15610278575f92604484926040519586938492631974142760e21b845260048401523060248401525af191821561026d5760ff9261025d575b501660ff81146102495760010161014b565b634e487b7160e01b5f52601160045260245ffd5b5f610267916104ec565b5f610237565b6040513d5f823e3d90fd5b5f80fd5b9092506020813d82116102a7575b81610297602093836104ec565b810103126102785751915f6101bf565b3d915061028a565b620151808385600260805260a052116102ff57604051611d989081610565823960805181818161121c0152611595015260a05181818161010f015281816101820152818161090a01526114d40152f35b63049587e360e41b5f5260045ffd5b015190505f80610134565b601f1982169060025f52805f20915f5b8181106103645750958360019596971061034c575b505050811b01600255610149565b01515f1960f88460031b161c191690555f808061033e565b9192602060018192868b015181550194019201610329565b60025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace601f830160051c810191602084106103d5575b601f0160051c01905b8181106103ca575061011b565b5f81556001016103bd565b90915081906103b4565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610109565b634e487b7160e01b5f52604160045260245ffd5b015190505f806100d3565b601f1982169560015f52805f20915f5b8881106104675750836001959697981061044f575b505050811b016001556100e8565b01515f1960f88460031b161c191690555f8080610441565b9192602060018192868501518155019401920161042c565b60015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f830160051c810191602084106104d8575b601f0160051c01905b8181106104cd57506100b7565b5f81556001016104c0565b90915081906104b7565b90607f16906100a5565b601f909101601f19168101906001600160401b038211908210176103fd57604052565b81601f82011215610278578051906001600160401b0382116103fd5760405192610543601f8401601f1916602001856104ec565b8284526020838301011161027857815f9260208093018386015e830101529056fe6080806040526004361015610012575f80fd5b5f905f3560e01c90816306fdde0314610fbc57508063095ea7b314610f9557806318160ddd14610f7057806323b872dd14610f41578063313ce56714610f1c57806367a74a2814610eff57806370a0823114610ec75780637b7e0a5a14610eaa57806395d89b4114610da25780639a09435214610d42578063a5184baf14610cff578063a9059cbb14610cce578063b32c100114610c94578063b820e6ce14610815578063d99c2a72146107c5578063dc412e83146104ca578063dd62ed3e14610477578063e6e0950514610438578063ea598cb0146101415763efc4c631146100fa575f80fd5b3461013e578060031936011261013e576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b80fd5b503461013e57602036600319011261013e576040516323b872dd60e01b602082810191825233602484015230604484015260043560648085018290528452927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169285916101b8608482611166565b519082855af11561042d5782513d6104245750803b155b6104125760206004916040519283809263313ce56760e01b82525afa9081156103a357610215916102109185916103e3575b5061020a6114bf565b90611639565b61164d565b9081156103cf57046001600160401b0381116103c0576001600160401b0316338252600360205281604081205480156103ae575b5f80516020611d438339815191525460405163f953e42760e01b8152600481019290925260248201849052600160f81b6044830152909160209183916064918391906001600160a01b03165af180156103a357839061036b575b6102c7915033845260036020528060408520556102c03082611c12565b3390611c12565b6040515f198152827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203393a38154816001600160401b038216016001600160401b038111610357576001600160401b0316906001600160401b0319161782556040519081527f20925aeb4fb032b41fb6819a065d482a8e6c281370fc218281522cc25182536b60203392a280f35b634e487b7160e01b84526011600452602484fd5b506020813d60201161039b575b8161038560209383611166565b81010312610397576102c790516102a3565b5f80fd5b3d9150610378565b6040513d85823e3d90fd5b5060206103b9611ccc565b9050610249565b63fd7850ad60e01b8252600482fd5b634e487b7160e01b83526012600452602483fd5b610405915060203d60201161040b575b6103fd8183611166565b8101906114a6565b5f610201565b503d6103f3565b635274afe760e01b8352600452602482fd5b600114156101cf565b6040513d84823e3d90fd5b503461013e57602036600319011261013e5760209060ff906040906001600160a01b03610463611098565b168152601284522054166040519015158152f35b503461013e57604036600319011261013e576040610493611098565b9161049c6110ae565b9260018060a01b031681526004602052209060018060a01b03165f52602052602060405f2054604051908152f35b5034610397576020366003190112610397576004356001600160401b038116809103610397575f906104fb33611b1b565b338252601260205260408220600160ff198254161790553382526003602052604082205480156107b3575b5f80516020611d438339815191525460405163052896f160e01b8152600481019290925260248201839052600160f81b6044830152909260209184916064918391906001600160a01b03165af19182156107a8575f92610774575b5060408051926105918285611166565b6001845260208401601f1983013682378451156107605752606442019283421161074c575f80516020611d23833981519152546001600160a01b0316803b15610397575f8351809263155f840160e21b8252602060048301528183816105fa6024820189611b4a565b03925af180156107425761072b575b507f93ab6e17f2c461cce6ea5d4ec117e51dda77a64affc2b2c05f8cd440def0e700548251634c0d927760e01b815260a060048201529460209286926001600160a01b0316918391899183916106639060a4840190611b4a565b90635c10736760e11b6024840152836044840152606483015282608483015203925af19283156107215784936106ed575b508051926106a184611137565b33845260208085019384529085526013905283209151825491516001600160e01b03199092166001600160a01b03919091161760a09190911b67ffffffffffffffff60a01b1617905580f35b9092506020813d602011610719575b8161070960209383611166565b810103126103975751915f610694565b3d91506106fc565b81513d86823e3d90fd5b6107389195505f90611166565b5f93610663610609565b83513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b9091506020813d6020116107a0575b8161079060209383611166565b810103126103975751905f610581565b3d9150610783565b6040513d5f823e3d90fd5b5060206107be611ccc565b9050610526565b34610397576020366003190112610397576004355f908152601360209081526040918290205482516001600160a01b038216815260a09190911c6001600160401b031691810191909152f35b0390f35b34610397576040366003190112610397576024356004358115158203610397577f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c610c855760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d7f93ab6e17f2c461cce6ea5d4ec117e51dda77a64affc2b2c05f8cd440def0e700546001600160a01b0316330361039757805f52601360205260405f2091604051926108ca84611137565b546001600160a01b03811680855260a09190911c6001600160401b0316602085018181529290919015610c39575050805160405163313ce56760e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316916001600160401b031690602081600481865afa9081156107a85761096491610210915f91610c1a575061020a6114bf565b9081810291818304149015171561074c57602090604460018060a01b038751165f604051958694859363a9059cbb60e01b8552600485015260248401525af19081610bed575b50610a475782519051604080516001600160a01b0390931683526001600160401b0390911660208301527f936799e3a22b0bdb5ef05df98e796a4835cff5297075fdb001414e53f5e302a791a15b5f5260136020525f604081205560018060a01b039051165f52601260205260405f2060ff1981541690555f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d005b825181516001600160a01b039091165f81815260036020526040902054916001600160401b03168215610bd9575b5f80516020611d4383398151915254604051638c14cc2160e01b815260048101949094526024840191909152600160f81b6044840152602090839060649082905f906001600160a01b03165af19182156107a8575f92610ba3575b50610af681835f94508185526003602052806040862055610af13082611c12565b611c12565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602060405184198152a36001600160401b038151165f54906001600160401b038216036001600160401b03811161074c576001600160401b0316906001600160401b031916175f557f0bbd89dc609b4c985f78b075c0f9271cf66dd34e7e08bb2437a103a6ba9a8db760206001600160401b0360018060a01b03865116935116604051908152a26109f8565b91506020823d602011610bd1575b81610bbe60209383611166565b8101031261039757905190610af6610ad0565b3d9150610bb1565b91506020610be5611ccc565b929050610a75565b610c0e9060203d602011610c13575b610c068183611166565b81019061165e565b6109aa565b503d610bfc565b610c33915060203d60201161040b576103fd8183611166565b88610201565b604080516001600160a01b039290921682526001600160401b039290921660208201527f48a802dbfec664d2280b2ebd5e5ed95ebbc1c96453297d67cbf0c721884fac9e9250a16109f8565b633ee5aeb560e01b5f5260045ffd5b3461039757610cc2610cb6610cbc610cab366110f1565b94919294369161152b565b9061193e565b90611187565b50602060405160018152f35b34610397576040366003190112610397576020610cf5610cec611098565b60243590611570565b6040519015158152f35b3461039757602036600319011261039757600435600554811015610d33575f526007602052602060405f2054604051908152f35b63d65c1f3360e01b5f5260045ffd5b3461039757608036600319011261039757610d5b611098565b610d636110ae565b90606435916001600160401b03831161039757610d9c610d94610d8d610cc29536906004016110c4565b369161152b565b60443561193e565b916111dc565b34610397575f366003190112610397576040515f6002548060011c90600181168015610ea0575b602083108114610e8c57828552908115610e685750600114610e0a575b61081183610df681850382611166565b604051918291602083526020830190611074565b91905060025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace915f905b808210610e4e57509091508101602001610df6610de6565b919260018160209254838588010152019101909291610e36565b60ff191660208086019190915291151560051b84019091019150610df69050610de6565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610dc9565b3461039757610cc2610cb6610ec1610cab366110f1565b90611570565b34610397576020366003190112610397576001600160a01b03610ee8611098565b165f526003602052602060405f2054604051908152f35b34610397575f366003190112610397576020600554604051908152f35b34610397575f366003190112610397576020610f366114bf565b60ff60405191168152f35b34610397576060366003190112610397576020610cf5610f5f611098565b610f676110ae565b604435916111dc565b34610397575f3660031901126103975760206001600160401b035f5416604051908152f35b34610397576040366003190112610397576020610cf5610fb3611098565b60243590611187565b34610397575f366003190112610397575f6001548060011c9060018116801561106a575b602083108114610e8c57828552908115610e68575060011461100c5761081183610df681850382611166565b91905060015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6915f905b80821061105057509091508101602001610df6610de6565b919260018160209254838588010152019101909291611038565b91607f1691610fe0565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361039757565b602435906001600160a01b038216820361039757565b9181601f84011215610397578235916001600160401b038311610397576020838186019501011161039757565b6060600319820112610397576004356001600160a01b0381168103610397579160243591604435906001600160401b03821161039757611133916004016110c4565b9091565b604081019081106001600160401b0382111761115257604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b0382111761115257604052565b9061119c9061119581611676565b82336116f9565b6040515f1981526001600160a01b039091169033907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590602090a3600190565b916111e681611676565b6001600160a01b0383165f818152600460209081526040808320338452909152902054939092906112178584611a3b565b9360ff7f0000000000000000000000000000000000000000000000000000000000000000169485600211610d335760066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85460025f9081527f8819ef417987f8ae7a81f42cdfb18815282fe989326fbff903d13cf0e03ace29549093916112a2919084611c7a565b90835260036020526112b8604084205487611a3b565b96602060018060a01b035f80516020611d4383398151915254166024604051809781936309c00ffd60e11b83528d60048401525af19384156107a8575f94611471575b505f80516020611d4383398151915254604051630ccd46b160e31b81526004810195909552602485018490525f6044860181905260209186916064918391906001600160a01b03165af19384156107a8575f9461143d575b50600111610d335761137861138c9160209460015f526006865260405f205490611c7a565b61138181611aee565b506102c08582611c12565b606460018060a01b035f80516020611d438339815191525416965f6040519889948593630ccd46b160e31b8552600485015260248401528160448401525af19384156107a8575f94611405575b506113fb6113f4866113ee8661140099611b7d565b87611c7a565b33836116f9565b611776565b600190565b9493506020853d602011611435575b8161142160209383611166565b8101031261039757935192936113fb6113d9565b3d9150611414565b9093506020813d602011611469575b8161145960209383611166565b810103126103975751925f611353565b3d915061144c565b93506020843d60201161149e575b8161148c60209383611166565b810103126103975792519260206112fb565b3d915061147f565b90816020910312610397575160ff811681036103975790565b60405163313ce56760e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156107a8575f9161150f575090565b611528915060203d60201161040b576103fd8183611166565b90565b9291926001600160401b0382116111525760405191611554601f8201601f191660200184611166565b829481845281830111610397578281602093845f960137010152565b9061157a81611676565b335f52600360205261159060405f205482611a3b565b9060ff7f000000000000000000000000000000000000000000000000000000000000000016600111610d335760066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85460015f527f3e5fec24aa4dc4e5aee2e025e51e1392c72a2500577559fae9665c6d52bd6a3154611400949161163391839161161f919087611c7a565b61162881611aee565b50610af13382611c12565b33611776565b9060ff8091169116039060ff821161074c57565b60ff16604d811161074c57600a0a90565b90816020910312610397575180151581036103975790565b5f80516020611d2383398151915254604051632fd514cd60e11b81526004810192909252336024830152602090829060449082906001600160a01b03165afa9081156107a8575f916116da575b50156116cb57565b632fa38b3f60e01b5f5260045ffd5b6116f3915060203d602011610c1357610c068183611166565b5f6116c3565b6001600160a01b0381169392908415611763576001600160a01b038316948515611750579061174e9495610af1925f52600460205260405f20905f526020528260405f20556117483084611c12565b82611c12565b565b85634a1406b160e11b5f5260045260245ffd5b8463e602df0560e01b5f5260045260245ffd5b92919261178281611b1b565b6001600160a01b03811692831561192b576001600160a01b03831694851561191857906117b7916117b1611ccc565b91611c7a565b91845f5260036020525f60206040822054858115611908575b86156118fa575b5f80516020611d438339815191525460405163f953e42760e01b8152600480820194909452848101909301919091526001600160f81b0319841660448301529092839160649183916001600160a01b03165af19081156107a8575f916118c4575b509261185f61187192856118899650885f5260036020528060405f2055610af13082611c12565b845f52600360205260405f2054611b7d565b835f5260036020528060405f2055610af13082611c12565b6005545f19810190811161074c5760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91604051908152a3565b9390506020843d6020116118f2575b816118e060209383611166565b8101031261039757925161185f611838565b3d91506118d3565b50611903611ccc565b6117d7565b9050611912611ccc565b906117d0565b8563ec442f0560e01b5f5260045260245ffd5b83634b637e8f60e11b5f5260045260245ffd5b61198d9160209160018060a01b035f80516020611d438339815191525416905f6040518096819582946302e817ff60e41b84526004840152336024840152608060448401526084830190611074565b600560f81b606483015203925af19081156107a8575f91611a09575b505f80516020611d23833981519152546001600160a01b0316803b15610397576040516346ce4e4960e11b815260048101839052336024820152905f908290604490829084905af180156107a8576119ff575090565b5f61152891611166565b90506020813d602011611a33575b81611a2460209383611166565b8101031261039757515f6119a9565b3d9150611a17565b908115611ade575b8015611acc575b602090606460018060a01b035f80516020611d438339815191525416935f60405195869485936334a6d7b960e11b8552600485015260248401528160448401525af19081156107a8575f91611a9d575090565b90506020813d602011611ac4575b81611ab860209383611166565b81010312610397575190565b3d9150611aab565b506020611ad7611ccc565b9050611a4a565b9050611ae8611ccc565b90611a43565b60055491905f19831461074c5761174e9060018401600555835f5260076020528060405f20553090611c12565b6001600160a01b03165f9081526012602052604090205460ff16611b3b57565b63adf54df960e01b5f5260045ffd5b90602080835192838152019201905f5b818110611b675750505090565b8251845260209384019390920191600101611b5a565b6020905f928115611c02575b8015611bf4575b5f80516020611d4383398151915254604051638c14cc2160e01b8152600480820194909452848101909301919091526001600160f81b0319841660448301529092839160649183916001600160a01b03165af19081156107a8575f91611a9d575090565b50611bfd611ccc565b611b90565b9050611c0c611ccc565b90611b89565b5f80516020611d23833981519152546001600160a01b031691823b1561039757604051631974142760e21b815260048101929092526001600160a01b03166024820152905f908290604490829084905af180156107a857611c705750565b5f61174e91611166565b9060646020925f60018060a01b035f80516020611d438339815191525416604051968795869463cb3b940760e01b86526004860152602485015260448401525af19081156107a8575f91611a9d575090565b5f80516020611d4383398151915254604051631ce2e8d760e31b81525f60048201819052600560f81b60248301529091602091839160449183916001600160a01b03165af19081156107a8575f91611a9d57509056feed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea601a2646970667358221220440bb99857af784c5e7bab6a26631bca77de11a1703afcb98be571897328751564736f6c634300081a0033","sourceMap":"631:4656:2:-:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;631:4656:2;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;631:4656:2;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;631:4656:2;;;;;;;;;;;;;-1:-1:-1;;;;;631:4656:2;;;;;;;;;;;;;;;;-1:-1:-1;631:4656:2;;;;;;;;;;;-1:-1:-1;631:4656:2;;;;;;;;;;;;;;;;-1:-1:-1;631:4656:2;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;631:4656:2;;;;1594:20:18;631:4656:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;631:4656:2;;;;;;;;;;;;;;;;;;;1594:20:18;631:4656:2;;-1:-1:-1;2177:3:20;631:4656:2;;;1594:20:18;2148:27:20;;;;13991:21:156;631:4656:2;;;-1:-1:-1;;;13977:74:156;;;;;631:4656:2;;;-1:-1:-1;;;631:4656:2;;;;;;;;;;;13977:74:156;;631:4656:2;;-1:-1:-1;;;;;;;631:4656:2;13977:74:156;;;;;;;-1:-1:-1;13977:74:156;;;2177:3:20;-1:-1:-1;;631:4656:2;;;2245:21:20;631:4656:2;;;;;;;;4586:62:156;631:4656:2;-1:-1:-1;;;;;631:4656:2;;15870:41:156;;;;;-1:-1:-1;631:4656:2;13977:74:156;631:4656:2;;;;;;;;;;;;15870:41:156;;13977:74;15870:41;;631:4656:2;370135:4:157;631:4656:2;;;;15870:41:156;;;;;;;631:4656:2;15870:41:156;;;2177:3:20;;631:4656:2;;;;;;;;2139:7:20;;631:4656:2;;;;-1:-1:-1;631:4656:2;;13977:74:156;631:4656:2;;-1:-1:-1;631:4656:2;15870:41:156;-1:-1:-1;15870:41:156;;;:::i;:::-;;;;;631:4656:2;;;-1:-1:-1;631:4656:2;;;;;15870:41:156;-1:-1:-1;631:4656:2;;13977:74:156;;;;631:4656:2;13977:74:156;;;;;;;;;631:4656:2;13977:74:156;;;:::i;:::-;;;631:4656:2;;;;;13977:74:156;;;;;;;-1:-1:-1;13977:74:156;;2148:27:20;1632:6:2;2148:27:20;;1594:20:18;631:4656:2;2341:50:20;1508:36:2;;1610:28;1606:93;;631:4656;;;;;;;;;;;;;;;;;;;1508:36;631:4656;;;;;;;;;;;;;;;;;;;;;1606:93;1661:27;;;-1:-1:-1;1661:27:2;13977:74:156;-1:-1:-1;1661:27:2;631:4656;;;;-1:-1:-1;631:4656:2;;;;;;;;;;1594:20:18;-1:-1:-1;631:4656:2;;-1:-1:-1;631:4656:2;;-1:-1:-1;631:4656:2;;;;;;;;;;;;;;;;;;;;;;;1594:20:18;631:4656:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:20:18;-1:-1:-1;631:4656:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;631:4656:2;;;;;;;;;-1:-1:-1;631:4656:2;;;;;;;;-1:-1:-1;631:4656:2;;;;;-1:-1:-1;631:4656:2;;;;;;;;;;;;-1:-1:-1;631:4656:2;;;;;-1:-1:-1;631:4656:2;;;;;-1:-1:-1;631:4656:2;;;;;;;;;;;-1:-1:-1;631:4656:2;;-1:-1:-1;631:4656:2;;-1:-1:-1;631:4656:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;631:4656:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;631:4656:2;;;;;;;;;-1:-1:-1;631:4656:2;;;;;;;;;;;;;;;;-1:-1:-1;;631:4656:2;;;;-1:-1:-1;;;;;631:4656:2;;;;;;;;;;:::o;:::-;;;;;;;;;;;;-1:-1:-1;;;;;631:4656:2;;;;;;;;;;;-1:-1:-1;;631:4656:2;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;631:4656:2;;;;;;;;;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f905f3560e01c90816306fdde0314610fbc57508063095ea7b314610f9557806318160ddd14610f7057806323b872dd14610f41578063313ce56714610f1c57806367a74a2814610eff57806370a0823114610ec75780637b7e0a5a14610eaa57806395d89b4114610da25780639a09435214610d42578063a5184baf14610cff578063a9059cbb14610cce578063b32c100114610c94578063b820e6ce14610815578063d99c2a72146107c5578063dc412e83146104ca578063dd62ed3e14610477578063e6e0950514610438578063ea598cb0146101415763efc4c631146100fa575f80fd5b3461013e578060031936011261013e576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b80fd5b503461013e57602036600319011261013e576040516323b872dd60e01b602082810191825233602484015230604484015260043560648085018290528452927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169285916101b8608482611166565b519082855af11561042d5782513d6104245750803b155b6104125760206004916040519283809263313ce56760e01b82525afa9081156103a357610215916102109185916103e3575b5061020a6114bf565b90611639565b61164d565b9081156103cf57046001600160401b0381116103c0576001600160401b0316338252600360205281604081205480156103ae575b5f80516020611d438339815191525460405163f953e42760e01b8152600481019290925260248201849052600160f81b6044830152909160209183916064918391906001600160a01b03165af180156103a357839061036b575b6102c7915033845260036020528060408520556102c03082611c12565b3390611c12565b6040515f198152827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203393a38154816001600160401b038216016001600160401b038111610357576001600160401b0316906001600160401b0319161782556040519081527f20925aeb4fb032b41fb6819a065d482a8e6c281370fc218281522cc25182536b60203392a280f35b634e487b7160e01b84526011600452602484fd5b506020813d60201161039b575b8161038560209383611166565b81010312610397576102c790516102a3565b5f80fd5b3d9150610378565b6040513d85823e3d90fd5b5060206103b9611ccc565b9050610249565b63fd7850ad60e01b8252600482fd5b634e487b7160e01b83526012600452602483fd5b610405915060203d60201161040b575b6103fd8183611166565b8101906114a6565b5f610201565b503d6103f3565b635274afe760e01b8352600452602482fd5b600114156101cf565b6040513d84823e3d90fd5b503461013e57602036600319011261013e5760209060ff906040906001600160a01b03610463611098565b168152601284522054166040519015158152f35b503461013e57604036600319011261013e576040610493611098565b9161049c6110ae565b9260018060a01b031681526004602052209060018060a01b03165f52602052602060405f2054604051908152f35b5034610397576020366003190112610397576004356001600160401b038116809103610397575f906104fb33611b1b565b338252601260205260408220600160ff198254161790553382526003602052604082205480156107b3575b5f80516020611d438339815191525460405163052896f160e01b8152600481019290925260248201839052600160f81b6044830152909260209184916064918391906001600160a01b03165af19182156107a8575f92610774575b5060408051926105918285611166565b6001845260208401601f1983013682378451156107605752606442019283421161074c575f80516020611d23833981519152546001600160a01b0316803b15610397575f8351809263155f840160e21b8252602060048301528183816105fa6024820189611b4a565b03925af180156107425761072b575b507f93ab6e17f2c461cce6ea5d4ec117e51dda77a64affc2b2c05f8cd440def0e700548251634c0d927760e01b815260a060048201529460209286926001600160a01b0316918391899183916106639060a4840190611b4a565b90635c10736760e11b6024840152836044840152606483015282608483015203925af19283156107215784936106ed575b508051926106a184611137565b33845260208085019384529085526013905283209151825491516001600160e01b03199092166001600160a01b03919091161760a09190911b67ffffffffffffffff60a01b1617905580f35b9092506020813d602011610719575b8161070960209383611166565b810103126103975751915f610694565b3d91506106fc565b81513d86823e3d90fd5b6107389195505f90611166565b5f93610663610609565b83513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b9091506020813d6020116107a0575b8161079060209383611166565b810103126103975751905f610581565b3d9150610783565b6040513d5f823e3d90fd5b5060206107be611ccc565b9050610526565b34610397576020366003190112610397576004355f908152601360209081526040918290205482516001600160a01b038216815260a09190911c6001600160401b031691810191909152f35b0390f35b34610397576040366003190112610397576024356004358115158203610397577f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c610c855760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d7f93ab6e17f2c461cce6ea5d4ec117e51dda77a64affc2b2c05f8cd440def0e700546001600160a01b0316330361039757805f52601360205260405f2091604051926108ca84611137565b546001600160a01b03811680855260a09190911c6001600160401b0316602085018181529290919015610c39575050805160405163313ce56760e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316916001600160401b031690602081600481865afa9081156107a85761096491610210915f91610c1a575061020a6114bf565b9081810291818304149015171561074c57602090604460018060a01b038751165f604051958694859363a9059cbb60e01b8552600485015260248401525af19081610bed575b50610a475782519051604080516001600160a01b0390931683526001600160401b0390911660208301527f936799e3a22b0bdb5ef05df98e796a4835cff5297075fdb001414e53f5e302a791a15b5f5260136020525f604081205560018060a01b039051165f52601260205260405f2060ff1981541690555f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d005b825181516001600160a01b039091165f81815260036020526040902054916001600160401b03168215610bd9575b5f80516020611d4383398151915254604051638c14cc2160e01b815260048101949094526024840191909152600160f81b6044840152602090839060649082905f906001600160a01b03165af19182156107a8575f92610ba3575b50610af681835f94508185526003602052806040862055610af13082611c12565b611c12565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602060405184198152a36001600160401b038151165f54906001600160401b038216036001600160401b03811161074c576001600160401b0316906001600160401b031916175f557f0bbd89dc609b4c985f78b075c0f9271cf66dd34e7e08bb2437a103a6ba9a8db760206001600160401b0360018060a01b03865116935116604051908152a26109f8565b91506020823d602011610bd1575b81610bbe60209383611166565b8101031261039757905190610af6610ad0565b3d9150610bb1565b91506020610be5611ccc565b929050610a75565b610c0e9060203d602011610c13575b610c068183611166565b81019061165e565b6109aa565b503d610bfc565b610c33915060203d60201161040b576103fd8183611166565b88610201565b604080516001600160a01b039290921682526001600160401b039290921660208201527f48a802dbfec664d2280b2ebd5e5ed95ebbc1c96453297d67cbf0c721884fac9e9250a16109f8565b633ee5aeb560e01b5f5260045ffd5b3461039757610cc2610cb6610cbc610cab366110f1565b94919294369161152b565b9061193e565b90611187565b50602060405160018152f35b34610397576040366003190112610397576020610cf5610cec611098565b60243590611570565b6040519015158152f35b3461039757602036600319011261039757600435600554811015610d33575f526007602052602060405f2054604051908152f35b63d65c1f3360e01b5f5260045ffd5b3461039757608036600319011261039757610d5b611098565b610d636110ae565b90606435916001600160401b03831161039757610d9c610d94610d8d610cc29536906004016110c4565b369161152b565b60443561193e565b916111dc565b34610397575f366003190112610397576040515f6002548060011c90600181168015610ea0575b602083108114610e8c57828552908115610e685750600114610e0a575b61081183610df681850382611166565b604051918291602083526020830190611074565b91905060025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace915f905b808210610e4e57509091508101602001610df6610de6565b919260018160209254838588010152019101909291610e36565b60ff191660208086019190915291151560051b84019091019150610df69050610de6565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610dc9565b3461039757610cc2610cb6610ec1610cab366110f1565b90611570565b34610397576020366003190112610397576001600160a01b03610ee8611098565b165f526003602052602060405f2054604051908152f35b34610397575f366003190112610397576020600554604051908152f35b34610397575f366003190112610397576020610f366114bf565b60ff60405191168152f35b34610397576060366003190112610397576020610cf5610f5f611098565b610f676110ae565b604435916111dc565b34610397575f3660031901126103975760206001600160401b035f5416604051908152f35b34610397576040366003190112610397576020610cf5610fb3611098565b60243590611187565b34610397575f366003190112610397575f6001548060011c9060018116801561106a575b602083108114610e8c57828552908115610e68575060011461100c5761081183610df681850382611166565b91905060015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6915f905b80821061105057509091508101602001610df6610de6565b919260018160209254838588010152019101909291611038565b91607f1691610fe0565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361039757565b602435906001600160a01b038216820361039757565b9181601f84011215610397578235916001600160401b038311610397576020838186019501011161039757565b6060600319820112610397576004356001600160a01b0381168103610397579160243591604435906001600160401b03821161039757611133916004016110c4565b9091565b604081019081106001600160401b0382111761115257604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b0382111761115257604052565b9061119c9061119581611676565b82336116f9565b6040515f1981526001600160a01b039091169033907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590602090a3600190565b916111e681611676565b6001600160a01b0383165f818152600460209081526040808320338452909152902054939092906112178584611a3b565b9360ff7f0000000000000000000000000000000000000000000000000000000000000000169485600211610d335760066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85460025f9081527f8819ef417987f8ae7a81f42cdfb18815282fe989326fbff903d13cf0e03ace29549093916112a2919084611c7a565b90835260036020526112b8604084205487611a3b565b96602060018060a01b035f80516020611d4383398151915254166024604051809781936309c00ffd60e11b83528d60048401525af19384156107a8575f94611471575b505f80516020611d4383398151915254604051630ccd46b160e31b81526004810195909552602485018490525f6044860181905260209186916064918391906001600160a01b03165af19384156107a8575f9461143d575b50600111610d335761137861138c9160209460015f526006865260405f205490611c7a565b61138181611aee565b506102c08582611c12565b606460018060a01b035f80516020611d438339815191525416965f6040519889948593630ccd46b160e31b8552600485015260248401528160448401525af19384156107a8575f94611405575b506113fb6113f4866113ee8661140099611b7d565b87611c7a565b33836116f9565b611776565b600190565b9493506020853d602011611435575b8161142160209383611166565b8101031261039757935192936113fb6113d9565b3d9150611414565b9093506020813d602011611469575b8161145960209383611166565b810103126103975751925f611353565b3d915061144c565b93506020843d60201161149e575b8161148c60209383611166565b810103126103975792519260206112fb565b3d915061147f565b90816020910312610397575160ff811681036103975790565b60405163313ce56760e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156107a8575f9161150f575090565b611528915060203d60201161040b576103fd8183611166565b90565b9291926001600160401b0382116111525760405191611554601f8201601f191660200184611166565b829481845281830111610397578281602093845f960137010152565b9061157a81611676565b335f52600360205261159060405f205482611a3b565b9060ff7f000000000000000000000000000000000000000000000000000000000000000016600111610d335760066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85460015f527f3e5fec24aa4dc4e5aee2e025e51e1392c72a2500577559fae9665c6d52bd6a3154611400949161163391839161161f919087611c7a565b61162881611aee565b50610af13382611c12565b33611776565b9060ff8091169116039060ff821161074c57565b60ff16604d811161074c57600a0a90565b90816020910312610397575180151581036103975790565b5f80516020611d2383398151915254604051632fd514cd60e11b81526004810192909252336024830152602090829060449082906001600160a01b03165afa9081156107a8575f916116da575b50156116cb57565b632fa38b3f60e01b5f5260045ffd5b6116f3915060203d602011610c1357610c068183611166565b5f6116c3565b6001600160a01b0381169392908415611763576001600160a01b038316948515611750579061174e9495610af1925f52600460205260405f20905f526020528260405f20556117483084611c12565b82611c12565b565b85634a1406b160e11b5f5260045260245ffd5b8463e602df0560e01b5f5260045260245ffd5b92919261178281611b1b565b6001600160a01b03811692831561192b576001600160a01b03831694851561191857906117b7916117b1611ccc565b91611c7a565b91845f5260036020525f60206040822054858115611908575b86156118fa575b5f80516020611d438339815191525460405163f953e42760e01b8152600480820194909452848101909301919091526001600160f81b0319841660448301529092839160649183916001600160a01b03165af19081156107a8575f916118c4575b509261185f61187192856118899650885f5260036020528060405f2055610af13082611c12565b845f52600360205260405f2054611b7d565b835f5260036020528060405f2055610af13082611c12565b6005545f19810190811161074c5760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91604051908152a3565b9390506020843d6020116118f2575b816118e060209383611166565b8101031261039757925161185f611838565b3d91506118d3565b50611903611ccc565b6117d7565b9050611912611ccc565b906117d0565b8563ec442f0560e01b5f5260045260245ffd5b83634b637e8f60e11b5f5260045260245ffd5b61198d9160209160018060a01b035f80516020611d438339815191525416905f6040518096819582946302e817ff60e41b84526004840152336024840152608060448401526084830190611074565b600560f81b606483015203925af19081156107a8575f91611a09575b505f80516020611d23833981519152546001600160a01b0316803b15610397576040516346ce4e4960e11b815260048101839052336024820152905f908290604490829084905af180156107a8576119ff575090565b5f61152891611166565b90506020813d602011611a33575b81611a2460209383611166565b8101031261039757515f6119a9565b3d9150611a17565b908115611ade575b8015611acc575b602090606460018060a01b035f80516020611d438339815191525416935f60405195869485936334a6d7b960e11b8552600485015260248401528160448401525af19081156107a8575f91611a9d575090565b90506020813d602011611ac4575b81611ab860209383611166565b81010312610397575190565b3d9150611aab565b506020611ad7611ccc565b9050611a4a565b9050611ae8611ccc565b90611a43565b60055491905f19831461074c5761174e9060018401600555835f5260076020528060405f20553090611c12565b6001600160a01b03165f9081526012602052604090205460ff16611b3b57565b63adf54df960e01b5f5260045ffd5b90602080835192838152019201905f5b818110611b675750505090565b8251845260209384019390920191600101611b5a565b6020905f928115611c02575b8015611bf4575b5f80516020611d4383398151915254604051638c14cc2160e01b8152600480820194909452848101909301919091526001600160f81b0319841660448301529092839160649183916001600160a01b03165af19081156107a8575f91611a9d575090565b50611bfd611ccc565b611b90565b9050611c0c611ccc565b90611b89565b5f80516020611d23833981519152546001600160a01b031691823b1561039757604051631974142760e21b815260048101929092526001600160a01b03166024820152905f908290604490829084905af180156107a857611c705750565b5f61174e91611166565b9060646020925f60018060a01b035f80516020611d438339815191525416604051968795869463cb3b940760e01b86526004860152602485015260448401525af19081156107a8575f91611a9d575090565b5f80516020611d4383398151915254604051631ce2e8d760e31b81525f60048201819052600560f81b60248301529091602091839160449183916001600160a01b03165af19081156107a8575f91611a9d57509056feed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea601a2646970667358221220440bb99857af784c5e7bab6a26631bca77de11a1703afcb98be571897328751564736f6c634300081a0033","sourceMap":"631:4656:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1001:43;-1:-1:-1;;;;;631:4656:2;;;;;;;;;;;;;;;;-1:-1:-1;;631:4656:2;;;;;;-1:-1:-1;;;631:4656:2;1745:53:41;;;;;;2696:10:2;1745:53:41;;;631:4656:2;2716:4;631:4656;;;;;;;;;;;;;1745:53:41;;631:4656:2;2667:11;-1:-1:-1;;;;;631:4656:2;;;;1745:53:41;;631:4656:2;1745:53:41;:::i;:::-;7823:421;;;;;;;;;;;;8258:15;;8276:26;;;:31;8258:68;8254:146;;631:4656:2;;;;;;;;;;;;2783:22;;;;;;;;;2776:43;2783:22;:35;:22;;;;;8258:68:41;2808:10:2;;;:::i;:::-;2783:35;;:::i;:::-;2776:43;:::i;:::-;631:4656;;;;;;-1:-1:-1;;;;;2835:33:2;;2831:86;;-1:-1:-1;;;;;631:4656:2;2696:10;631:4656;;5817:9:14;631:4656:2;;;;;;;2482:22:157;;211624:64;;8258:68:41;-1:-1:-1;;;;;;;;;;;631:4656:2;;;-1:-1:-1;;;5329:65:156;;631:4656:2;5329:65:156;;631:4656:2;;;;;;;;;;-1:-1:-1;;;631:4656:2;;;;;;;;;;;;;;;-1:-1:-1;;;;;631:4656:2;5329:65:156;;;;;;;;;;8258:68:41;370021:7:157;5320:74:156;;2696:10:2;631:4656;;5817:9:14;631:4656:2;;;;;;;370832:13:157;2716:4:2;370832:13:157;;:::i;:::-;2696:10:2;370021:7:157;;:::i;:::-;631:4656:2;;950:17:14;;631:4656:2;;2696:10;5502:43:14;631:4656:2;2696:10;5502:43:14;;631:4656:2;;;-1:-1:-1;;;;;631:4656:2;;;-1:-1:-1;;;;;631:4656:2;;;;-1:-1:-1;;;;;631:4656:2;;-1:-1:-1;;;;;631:4656:2;;;;;;;;;;3073:30;631:4656;2696:10;3073:30;;631:4656;;;-1:-1:-1;;;631:4656:2;;;;;1745:53:41;631:4656:2;;5329:65:156;;631:4656:2;5329:65:156;;631:4656:2;5329:65:156;;;;;;631:4656:2;5329:65:156;;;:::i;:::-;;;631:4656:2;;;;370021:7:157;631:4656:2;;5329:65:156;;631:4656:2;-1:-1:-1;631:4656:2;;5329:65:156;;;-1:-1:-1;5329:65:156;;;631:4656:2;;;;;;;;;211624:64:157;344922:44;631:4656:2;344922:44:157;;:::i;:::-;211624:64;;;;2831:86:2;-1:-1:-1;;;2891:15:2;;631:4656;2891:15;;631:4656;-1:-1:-1;;;631:4656:2;;;;;1745:53:41;631:4656:2;;2783:22;;;;631:4656;2783:22;631:4656;2783:22;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;8254:146:41;-1:-1:-1;;;8349:40:41;;631:4656:2;;1745:53:41;8349:40;;8258:68;631:4656:2;8310:16:41;;8258:68;;7823:421;631:4656:2;7823:421:41;;;;;;;;631:4656:2;;;;;;;-1:-1:-1;;631:4656:2;;;;;;;;;;-1:-1:-1;;;;;631:4656:2;;:::i;:::-;;;;1110:72;631:4656;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;631:4656:2;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;7824:27:14;631:4656:2;;;;;;-1:-1:-1;631:4656:2;;;;;-1:-1:-1;631:4656:2;;;;;;;;;;;;;;;-1:-1:-1;;631:4656:2;;;;;;-1:-1:-1;;;;;631:4656:2;;;;;;;;1926:10;;;;:::i;:::-;;631:4656;;2051:19;631:4656;;;;;2085:4;631:4656;;;;;;;;1926:10;631:4656;;2133:9;631:4656;;;;;;2482:22:157;;217843:64;;631:4656:2;-1:-1:-1;;;;;;;;;;;631:4656:2;;;-1:-1:-1;;;10379:64:156;;631:4656:2;10379:64:156;;631:4656:2;;;;;;;;;;-1:-1:-1;;;631:4656:2;;;;;;;;;;10379:64:156;;631:4656:2;;;-1:-1:-1;;;;;631:4656:2;10379:64:156;;;;;;;631:4656:2;10379:64:156;;;631:4656:2;;;;;;;;;;:::i;:::-;2085:4;631:4656;;;;;-1:-1:-1;;631:4656:2;;;;;;;;;;;10379:64:156;2359:15:2;631:4656;2359:15;;;631:4656;;;-1:-1:-1;;;;;;;;;;;631:4656:2;-1:-1:-1;;;;;631:4656:2;3173:49:155;;;;;631:4656:2;;;;;;;;3173:49:155;;631:4656:2;;3173:49:155;;631:4656:2;;;;;;;;;;:::i;:::-;3173:49:155;;;;;;;;;;631:4656:2;-1:-1:-1;1020:58:155;631:4656:2;;;-1:-1:-1;;;3304:209:155;;631:4656:2;;3304:209:155;;631:4656:2;;;;;;-1:-1:-1;;;;;631:4656:2;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;10379:64:156;631:4656:2;;;;;;;;3304:209:155;;;;;;;;;;;;;631:4656:2;;;;;;;;:::i;:::-;1926:10;631:4656;;;2427:52;;;631:4656;;;;;;2399:14;631:4656;;;;;;;;;;-1:-1:-1;;;;;;631:4656:2;;;-1:-1:-1;;;;;631:4656:2;;;;;;;;;;-1:-1:-1;;;631:4656:2;;;;;;3304:209:155;;;;631:4656:2;3304:209:155;;631:4656:2;3304:209:155;;;;;;631:4656:2;3304:209:155;;;:::i;:::-;;;631:4656:2;;;;;3304:209:155;;;;;;;-1:-1:-1;3304:209:155;;;631:4656:2;;;;;;;;;3173:49:155;;;;;631:4656:2;3173:49:155;;:::i;:::-;631:4656:2;;;3173:49:155;;;631:4656:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10379:64:156;;;;631:4656:2;10379:64:156;;631:4656:2;10379:64:156;;;;;;631:4656:2;10379:64:156;;;:::i;:::-;;;631:4656:2;;;;;10379:64:156;;;;;;;-1:-1:-1;10379:64:156;;;631:4656:2;;;;;;;;;217843:64:157;344922:44;631:4656:2;344922:44:157;;:::i;:::-;217843:64;;;;631:4656:2;;;;;;-1:-1:-1;;631:4656:2;;;;;;;;;;1255:79;631:4656;;;;;;;;;;;;-1:-1:-1;;;;;631:4656:2;;;;;;;;;-1:-1:-1;;;;;631:4656:2;;;;;;;;;;;;;;;;;;;-1:-1:-1;;631:4656:2;;;;;;;;;;;;;;;637:66:50;3321:69:53;1413:93:50;;631:4656:2;637:66:50;3550:68:53;1020:58:155;631:4656:2;-1:-1:-1;;;;;631:4656:2;208:10:154;:46;631:4656:2;;;;;3556:14;631:4656;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;631:4656:2;;;;;;;;;;-1:-1:-1;;;;;631:4656:2;;;;;;;;;;;3592:695;;;-1:-1:-1;;631:4656:2;;;;-1:-1:-1;;;3726:22:2;;:11;-1:-1:-1;;;;;631:4656:2;;-1:-1:-1;;;;;631:4656:2;;;;;;;3726:22;;;;;;;3719:43;3726:22;:35;:22;631:4656;3726:22;;;3751:10;;;:::i;3719:43::-;631:4656;;;;;;;;;;;;;;;;;3782:58;631:4656;;;;;;;;;;;;;;;;;;;3782:58;;631:4656;3782:58;;631:4656;;;;;3782:58;;;;;;3592:695;-1:-1:-1;3778:392:2;;631:4656;;;;;;;-1:-1:-1;;;;;631:4656:2;;;;;-1:-1:-1;;;;;631:4656:2;;;;;;;4088:67;;;3778:392;631:4656;;3556:14;631:4656;;;;;;;;;;;;;;;;;4346:19;631:4656;;;;;;;;;;;;;637:66:50;3550:68:53;631:4656:2;3778:392;631:4656;;;;-1:-1:-1;;;;;631:4656:2;;;;;;;5054:9;631:4656;;;;;;;-1:-1:-1;;;;;631:4656:2;2482:22:157;;212168:64;;3778:392:2;-1:-1:-1;;;;;;;;;;;631:4656:2;;;-1:-1:-1;;;5706:65:156;;631:4656:2;5706:65:156;;631:4656:2;;;;;;;;;;;-1:-1:-1;;;631:4656:2;;;;;;;;;;;;;;-1:-1:-1;;;;;631:4656:2;5706:65:156;;;;;;;631:4656:2;5706:65:156;;;3778:392:2;5697:74:156;370021:7:157;5697:74:156;;631:4656:2;5697:74:156;631:4656:2;;;;5054:9;631:4656;;;;;;;370832:13:157;370840:4;370832:13;;:::i;:::-;370021:7;:::i;:::-;5235:43:2;631:4656;;;950:17:14;;631:4656:2;;5235:43;-1:-1:-1;;;;;631:4656:2;;;;;;-1:-1:-1;;;;;631:4656:2;;;-1:-1:-1;;;;;631:4656:2;;;;-1:-1:-1;;;;;631:4656:2;;-1:-1:-1;;;;;631:4656:2;;;;;3992:51;631:4656;-1:-1:-1;;;;;631:4656:2;;;;;;;;;;;;;;;;3992:51;3778:392;;5706:65:156;;;631:4656:2;5706:65:156;;631:4656:2;5706:65:156;;;;;;631:4656:2;5706:65:156;;;:::i;:::-;;;631:4656:2;;;;;;;370021:7:157;5706:65:156;;;;;-1:-1:-1;5706:65:156;;212168:64:157;344922:44;;631:4656:2;344922:44:157;;:::i;:::-;212168:64;;;;;3782:58:2;;;631:4656;3782:58;631:4656;3782:58;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;3726:22;;;;631:4656;3726:22;631:4656;3726:22;;;;;;;:::i;:::-;;;;3592:695;631:4656;;;-1:-1:-1;;;;;631:4656:2;;;;;;-1:-1:-1;;;;;631:4656:2;;;;;;;;4205:71;;-1:-1:-1;4205:71:2;3592:695;;1413:93:50;1465:30;;;631:4656:2;1465:30:50;631:4656:2;;1465:30:50;631:4656:2;;;;1877:61:14;631:4656:2;1894:43:14;631:4656:2;;;:::i;:::-;;;;;;;;:::i;:::-;1894:43:14;;:::i;:::-;1877:61;;:::i;:::-;;631:4656:2;;;1955:4:14;631:4656:2;;;;;;;;;-1:-1:-1;;631:4656:2;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;631:4656:2;;;;;;8215:13:20;631:4656:2;8204:24:20;;;8200:81;;631:4656:2;;8303:18:20;631:4656:2;;;;;;;;;;;;;8200:81:20;8251:19;;;631:4656:2;8251:19:20;631:4656:2;;8251:19:20;631:4656:2;;;;;;-1:-1:-1;;631:4656:2;;;;;;:::i;:::-;;;:::i;:::-;;;;;-1:-1:-1;;;;;631:4656:2;;;;3273:43:14;631:4656:2;;3250:67:14;631:4656:2;;;;;;:::i;:::-;;;;:::i;:::-;;;3273:43:14;:::i;:::-;3250:67;;:::i;631:4656:2:-;;;;;;-1:-1:-1;;631:4656:2;;;;;;;4609:7:14;631:4656:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;4609:7:14;631:4656:2;;;;;;;;;;;;-1:-1:-1;631:4656:2;;-1:-1:-1;631:4656:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;631:4656:2;;;;;;;;;;;;;;;;;;;;-1:-1:-1;631:4656:2;;-1:-1:-1;631:4656:2;;;;;;;;;;;;;;;;;;;;;;;;;2512:57:14;631:4656:2;2525:43:14;631:4656:2;;;:::i;2525:43:14:-;2512:57;;:::i;631:4656:2:-;;;;;;-1:-1:-1;;631:4656:2;;;;-1:-1:-1;;;;;631:4656:2;;:::i;:::-;;;;4125:9:14;631:4656:2;;;;;;;;;;;;;;;;;;;-1:-1:-1;;631:4656:2;;;;;8596:13:20;631:4656:2;;;;;;;;;;;;;-1:-1:-1;;631:4656:2;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;631:4656:2;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;631:4656:2;;;;;-1:-1:-1;;;;;631:4656:2;;;;;;;;;;;;;;;-1:-1:-1;;631:4656:2;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;631:4656:2;;;;;4448:5:14;631:4656:2;;4448:5:14;631:4656:2;;4448:5:14;631:4656:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;4448:5:14;631:4656:2;;;;;;;;;;;;-1:-1:-1;631:4656:2;;-1:-1:-1;631:4656:2;;;;;;;;;;4448:5:14;631:4656:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;631:4656:2;;;;;;;;-1:-1:-1;;631:4656:2;;;;:::o;:::-;;;;-1:-1:-1;;;;;631:4656:2;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;631:4656:2;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;631:4656:2;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;631:4656:2;;;;;;;-1:-1:-1;;;;;631:4656:2;;;;;;;;;;;;;-1:-1:-1;;;;;631:4656:2;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;631:4656:2;;;;;;;:::o;:::-;;;;-1:-1:-1;631:4656:2;;;;;-1:-1:-1;631:4656:2;;;;;;;;;;;;;;-1:-1:-1;;;;;631:4656:2;;;;;;;:::o;2037:282:14:-;;2231:6;2037:282;2153:6;;;:::i;:::-;2186:10;;2231:6;:::i;:::-;631:4656:2;;-1:-1:-1;;631:4656:2;;-1:-1:-1;;;;;631:4656:2;;;;2186:10:14;;2253:38;;631:4656:2;;2253:38:14;2308:4;2037:282;:::o;2315:337:18:-;;2454:6;;;:::i;:::-;-1:-1:-1;;;;;631:4656:2;;-1:-1:-1;631:4656:2;;;7824:11:14;631:4656:2;;;;;;;;2489:10:18;631:4656:2;;;;;;;;;;;;3633:33:18;631:4656:2;3633:33:18;;:::i;:::-;3695:75;631:4656:2;6306:25:20;631:4656:2;6294:37:20;;3736:32:18;6294:37:20;6290:94;;6429:21;631:4656:2;;;;3736:32:18;-1:-1:-1;631:4656:2;;;;;-1:-1:-1;;631:4656:2;325937:72:157;;631:4656:2;325937:72:157;;:::i;:::-;631:4656:2;;;;;;3861:33:18;631:4656:2;;;;3861:33:18;;:::i;:::-;631:4656:2;;;;;;;-1:-1:-1;;;;;;;;;;;631:4656:2;;12663:47:156;631:4656:2;;;;;;;;;12663:47:156;;;7824:11:14;12663:47:156;;631:4656:2;12663:47:156;;;;;;;-1:-1:-1;12663:47:156;;;2315:337:18;-1:-1:-1;;;;;;;;;;;;631:4656:2;;;-1:-1:-1;;;6980:68:156;;7824:11:14;6980:68:156;;631:4656:2;;;;12663:47:156;631:4656:2;;;;;-1:-1:-1;631:4656:2;;;;;;;;;;6980:68:156;;631:4656:2;;-1:-1:-1;;;;;;631:4656:2;6980:68:156;;;;;;;-1:-1:-1;6980:68:156;;;2315:337:18;3203:37:20;631:4656:2;3203:37:20;3199:94;;325937:72:157;370021:7;631:4656:2;;;;-1:-1:-1;631:4656:2;6429:21:20;631:4656:2;;;-1:-1:-1;631:4656:2;;325937:72:157;;:::i;:::-;4370:21:18;;;:::i;:::-;;370021:7:157;;;;:::i;:::-;6980:68:156;631:4656:2;;;;;-1:-1:-1;;;;;;;;;;;631:4656:2;;;-1:-1:-1;631:4656:2;;;;;;;;;;6980:68:156;;7824:11:14;6980:68:156;;631:4656:2;12663:47:156;631:4656:2;;;;;;;;6980:68:156;;;;;;;-1:-1:-1;6980:68:156;;;2315:337:18;4597:34;4569:81;325937:72:157;4597:34:18;;;2609:14;4597:34;;:::i;:::-;325937:72:157;;:::i;:::-;2489:10:18;4569:81;;:::i;:::-;2609:14;:::i;:::-;631:4656:2;2315:337:18;:::o;6980:68:156:-;;;;631:4656:2;6980:68:156;;631:4656:2;6980:68:156;;;;;;631:4656:2;6980:68:156;;;:::i;:::-;;;631:4656:2;;;;;;6980:68:156;;4569:81:18;6980:68:156;;;;;-1:-1:-1;6980:68:156;;;;;;631:4656:2;6980:68:156;;631:4656:2;6980:68:156;;;;;;631:4656:2;6980:68:156;;;:::i;:::-;;;631:4656:2;;;;;6980:68:156;;;;;;;-1:-1:-1;6980:68:156;;12663:47;;;631:4656:2;12663:47:156;;631:4656:2;12663:47:156;;;;;;631:4656:2;12663:47:156;;;:::i;:::-;;;631:4656:2;;;;;;;;12663:47:156;;;;;-1:-1:-1;12663:47:156;;631:4656:2;;;;;;;;;;;;;;;;;;:::o;4577:103::-;631:4656;;-1:-1:-1;;;4651:22:2;;;631:4656;4651:22;631:4656;4651:11;-1:-1:-1;;;;;631:4656:2;4651:22;;;;;;;-1:-1:-1;4651:22:2;;;4644:29;4577:103;:::o;4651:22::-;;;;;;;;;;;;;;:::i;:::-;4577:103;:::o;631:4656::-;;;;-1:-1:-1;;;;;631:4656:2;;;;;;;;;;;-1:-1:-1;;631:4656:2;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;631:4656:2;;;;;;:::o;1691:548:18:-;;1812:6;;;:::i;:::-;1935:10;-1:-1:-1;631:4656:2;1925:9:18;631:4656:2;;1909:38:18;631:4656:2;-1:-1:-1;631:4656:2;;1909:38:18;;:::i;:::-;1976:70;631:4656:2;6306:25:20;631:4656:2;2013:31:18;6294:37:20;6290:94;;6429:21;631:4656:2;;;;2013:31:18;-1:-1:-1;631:4656:2;;;2199:11:18;;631:4656:2;370021:7:157;;631:4656:2;;325937:72:157;;631:4656:2;325937:72:157;;:::i;:::-;2056:21:18;;;:::i;:::-;;370021:7:157;1935:10:18;370021:7:157;;:::i;:::-;1935:10:18;2199:11;:::i;631:4656:2:-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;7864:178:14:-;-1:-1:-1;;;;;;;;;;;631:4656:2;;;-1:-1:-1;;;16241:45:156;;;;;631:4656:2;;;;368839:10:157;631:4656:2;;;;16241:45:156;;631:4656:2;;;;;;-1:-1:-1;;;;;631:4656:2;16241:45:156;;;;;;;-1:-1:-1;16241:45:156;;;7864:178:14;7951:29;;7947:89;;7864:178::o;7947:89::-;8003:22;;;-1:-1:-1;8003:22:14;16241:45:156;-1:-1:-1;8003:22:14;16241:45:156;;;;;;;;;;;;;;:::i;:::-;;;;4800:431:14;-1:-1:-1;;;;;631:4656:2;;;4800:431:14;;4897:19;;4893:84;;-1:-1:-1;;;;;631:4656:2;;;4991:21:14;;4987:87;;631:4656:2;370021:7:157;631:4656:2;;370021:7:157;631:4656:2;4914:1:14;631:4656:2;5084:11:14;631:4656:2;;;4914:1:14;631:4656:2;5084:27:14;-1:-1:-1;631:4656:2;;;;;-1:-1:-1;631:4656:2;;370832:13:157;370840:4;370832:13;;:::i;:::-;370021:7;;:::i;:::-;4800:431:14:o;4987:87::-;5035:28;;;;4914:1;5035:28;;631:4656:2;;4914:1:14;5035:28;4893:84;4939:27;;;;4914:1;4939:27;;631:4656:2;;4914:1:14;4939:27;3034:276:18;;;;4861:4:2;;;:::i;:::-;-1:-1:-1;;;;;631:4656:2;;;6337:18:14;;6333:80;;-1:-1:-1;;;;;631:4656:2;;;6427:16:14;;6423:78;;344922:44:157;325937:72;344922:44;;;:::i;:::-;325937:72;;:::i;:::-;631:4656:2;;6353:1:14;631:4656:2;6716:9:14;631:4656:2;;6353:1:14;631:4656:2;;;;;6707:38:14;;2482:22:157;196412:64;;3034:276:18;2482:22:157;;196485:64;;3034:276:18;-1:-1:-1;;;;;;;;;;;631:4656:2;;;-1:-1:-1;;;5329:65:156;;;;;;631:4656:2;;;;;;;;;;;;;;-1:-1:-1;;;;;;631:4656:2;;;;;;;;;;;;;;-1:-1:-1;;;;;631:4656:2;5329:65:156;;;;;;;6353:1:14;5329:65:156;;;3034:276:18;5320:74:156;;370021:7:157;6894:40:14;5320:74:156;;370021:7:157;5320:74:156;631:4656:2;;6353:1:14;631:4656:2;6716:9:14;631:4656:2;;;;6353:1:14;631:4656:2;;370832:13:157;370840:4;370832:13;;:::i;370021:7::-;631:4656:2;6353:1:14;631:4656:2;6716:9:14;631:4656:2;;;6353:1:14;631:4656:2;;6894:40:14;:::i;:::-;631:4656:2;6353:1:14;631:4656:2;6716:9:14;631:4656:2;;;;6353:1:14;631:4656:2;;370832:13:157;370840:4;370832:13;;:::i;370021:7::-;811:1;631:4656:2;-1:-1:-1;;631:4656:2;;;;;;;;3261:42:18;631:4656:2;;;;;;3261:42:18;3034:276::o;5329:65:156:-;;;;631:4656:2;5329:65:156;;631:4656:2;5329:65:156;;;;;;631:4656:2;5329:65:156;;;:::i;:::-;;;631:4656:2;;;;;;370021:7:157;5329:65:156;;;;;-1:-1:-1;5329:65:156;;196485:64:157;344922:44;;;:::i;:::-;196485:64;;196412;344922:44;;;;:::i;:::-;196412:64;;;6423:78:14;6466:24;;;;6353:1;6466:24;;631:4656:2;;6353:1:14;6466:24;6333:80;6378:24;;;;6353:1;6378:24;;631:4656:2;;6353:1:14;6378:24;344561:198:157;631:4656:2;344561:198:157;631:4656:2;344561:198:157;631:4656:2;;;;;-1:-1:-1;;;;;;;;;;;631:4656:2;;;-1:-1:-1;631:4656:2;;;;;;;;;;;13336:164:156;;;;;631:4656:2;13428:10:156;631:4656:2;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;631:4656:2;;;;13336:164:156;;;;;;;;;-1:-1:-1;13336:164:156;;;344561:198:157;-1:-1:-1;;;;;;;;;;;;631:4656:2;-1:-1:-1;;;;;631:4656:2;13510:53:156;;;;;631:4656:2;;-1:-1:-1;;;13510:53:156;;13336:164;13510:53;;631:4656:2;;;13428:10:156;631:4656:2;;;;;-1:-1:-1;;631:4656:2;;;;;;-1:-1:-1;;13510:53:156;;;;;;;;344662:90:157;344561:198;:::o;13510:53:156:-;-1:-1:-1;13510:53:156;;;:::i;13336:164::-;;;631:4656:2;13336:164:156;;631:4656:2;13336:164:156;;;;;;631:4656:2;13336:164:156;;;:::i;:::-;;;631:4656:2;;;;;13336:164:156;;;;;;-1:-1:-1;13336:164:156;;199848:293:157;;2482:22;;199917:64;;199848:293;2482:22;;199990:64;;199848:293;631:4656:2;;11129:64:156;631:4656:2;;;;;-1:-1:-1;;;;;;;;;;;631:4656:2;;;-1:-1:-1;631:4656:2;;;;;;;;;;11129:64:156;;;;;631:4656:2;;;;;;;;;;11129:64:156;;;;;;;-1:-1:-1;11129:64:156;;;200063:71:157;199848:293;:::o;11129:64:156:-;;;631:4656:2;11129:64:156;;631:4656:2;11129:64:156;;;;;;631:4656:2;11129:64:156;;;:::i;:::-;;;631:4656:2;;;;;199848:293:157;:::o;11129:64:156:-;;;-1:-1:-1;11129:64:156;;199990::157;344922:44;631:4656:2;344922:44:157;;:::i;:::-;199990:64;;;;199917;344922:44;;;;:::i;:::-;199917:64;;;6796:231:20;6897:13;631:4656:2;;6796:231:20;-1:-1:-1;;631:4656:2;;;;370832:13:157;631:4656:2;;;;6897:13:20;631:4656:2;;-1:-1:-1;631:4656:2;6945:18:20;631:4656:2;;;;-1:-1:-1;631:4656:2;;370840:4:157;370832:13;;:::i;4401:170:2:-;-1:-1:-1;;;;;631:4656:2;-1:-1:-1;631:4656:2;;;4479:19;631:4656;;;;;;;;4475:90;;4401:170::o;4475:90::-;4530:24;;;-1:-1:-1;4530:24:2;;-1:-1:-1;4530:24:2;631:4656;;;;;;;;;;;;;;-1:-1:-1;631:4656:2;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;196694:299:157;5706:65:156;196694:299:157;-1:-1:-1;196694:299:157;2482:22;;196766:64;;196694:299;2482:22;;196839:64;;196694:299;-1:-1:-1;;;;;;;;;;;631:4656:2;;;-1:-1:-1;;;5706:65:156;;;;;;631:4656:2;;;;;;;;;;;;;;-1:-1:-1;;;;;;631:4656:2;;;;;;;;;;;;;;-1:-1:-1;;;;;631:4656:2;5706:65:156;;;;;;;-1:-1:-1;5706:65:156;;;5697:74;196694:299:157;:::o;196839:64::-;344922:44;;;:::i;:::-;196839:64;;196766;344922:44;;;;:::i;:::-;196766:64;;;15747:171:156;-1:-1:-1;;;;;;;;;;;631:4656:2;-1:-1:-1;;;;;631:4656:2;;15870:41:156;;;;;631:4656:2;;-1:-1:-1;;;15870:41:156;;;;;631:4656:2;;;;-1:-1:-1;;;;;631:4656:2;;;;;;-1:-1:-1;;631:4656:2;;;;;;-1:-1:-1;;15870:41:156;;;;;;;;15747:171;:::o;15870:41::-;-1:-1:-1;15870:41:156;;;:::i;12887:258::-;;13062:76;631:4656:2;12887:258:156;-1:-1:-1;631:4656:2;;;;;-1:-1:-1;;;;;;;;;;;631:4656:2;;;;;;;;;;;;13062:76:156;;;;;631:4656:2;;;;;;;;;13062:76:156;;;;;;;-1:-1:-1;13062:76:156;;;13053:85;12887:258;:::o;13815:243::-;-1:-1:-1;;;;;;;;;;;631:4656:2;;;-1:-1:-1;;;13977:74:156;;631:4656:2;13977:74:156;;;631:4656:2;;;-1:-1:-1;;;631:4656:2;;;;;;;;;;13977:74:156;;631:4656:2;;-1:-1:-1;;;;;631:4656:2;13977:74:156;;;;;;;631:4656:2;13977:74:156;;;13968:83;13815:243;:::o","linkReferences":{},"immutableReferences":{"1428":[{"start":271,"length":32},{"start":386,"length":32},{"start":2314,"length":32},{"start":5332,"length":32}],"7195":[{"start":4636,"length":32},{"start":5525,"length":32}]}},"methodIdentifiers":{"ERC20_TOKEN()":"efc4c631","allowance(address,address)":"dd62ed3e","approve(address,bytes32,bytes)":"b32c1001","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","callbackUnwrap(uint256,bool)":"b820e6ce","decimals()":"313ce567","errorGetCounter()":"67a74a28","getErrorCodeForTransferId(uint256)":"a5184baf","isAccountRestricted(address)":"e6e09505","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,bytes32,bytes)":"7b7e0a5a","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,bytes32,bytes)":"9a094352","transferFrom(address,address,uint256)":"23b872dd","unwrap(uint64)":"dc412e83","unwrapRequests(uint256)":"d99c2a72","wrap(uint256)":"ea598cb0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"erc20_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxDecryptionDelay_\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AmountTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotTransferOrUnwrap\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorIndexInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorIndexIsNull\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxDecryptionDelayTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TFHESenderNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TotalNumberErrorCodesEqualToZero\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"placeholder\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"transferId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"Unwrap\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"UnwrapFailNotEnoughBalance\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"UnwrapFailTransferFail\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"Wrap\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ERC20_TOKEN\",\"outputs\":[{\"internalType\":\"contract IERC20Metadata\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"euint64\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"euint64\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"einput\",\"name\":\"encryptedAmount\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"inputProof\",\"type\":\"bytes\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"euint64\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"canUnwrap\",\"type\":\"bool\"}],\"name\":\"callbackUnwrap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"errorGetCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"errorsCount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"transferId\",\"type\":\"uint256\"}],\"name\":\"getErrorCodeForTransferId\",\"outputs\":[{\"internalType\":\"euint8\",\"name\":\"errorCode\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isAccountRestricted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isRestricted\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"einput\",\"name\":\"encryptedAmount\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"inputProof\",\"type\":\"bytes\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"euint64\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"euint64\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"einput\",\"name\":\"encryptedAmount\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"inputProof\",\"type\":\"bytes\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"unwrap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"}],\"name\":\"unwrapRequests\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"wrap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"params\":{\"owner\":\"Owner address.\",\"placeholder\":\"Placeholder.\",\"spender\":\"Spender address.\"}},\"Transfer(address,address,uint256)\":{\"params\":{\"from\":\"Sender address.\",\"to\":\"Receiver address.\",\"transferId\":\"If the implementation does not support error handling, it must be set to a default placeholder (typically equal to max(uint256). However, it must be set to a transferId if the implementation supports encrypted error handling.\"}},\"Unwrap(address,uint64)\":{\"params\":{\"account\":\"Address of the account that unwraps tokens.\",\"amount\":\"Amount to unwrap.\"}},\"UnwrapFailNotEnoughBalance(address,uint64)\":{\"params\":{\"account\":\"Address of the account that tried to unwrap.\",\"amount\":\"Amount to unwrap.\"}},\"UnwrapFailTransferFail(address,uint64)\":{\"params\":{\"account\":\"Address of the account that tried to unwrap.\",\"amount\":\"Amount to unwrap.\"}},\"Wrap(address,uint64)\":{\"params\":{\"account\":\"Address of the account that wraps tokens.\",\"amount\":\"Amount to wrap.\"}}},\"kind\":\"dev\",\"methods\":{\"callbackUnwrap(uint256,bool)\":{\"params\":{\"canUnwrap\":\"Whether it can be unwrapped.\",\"requestId\":\"Request id.\"}},\"getErrorCodeForTransferId(uint256)\":{\"params\":{\"transferId\":\"Transfer id. It can be read from the `Transfer` event.\"},\"returns\":{\"errorCode\":\" Encrypted error code.\"}},\"unwrap(uint64)\":{\"params\":{\"amount\":\"Amount to unwrap.\"}},\"wrap(uint256)\":{\"params\":{\"amount\":\"Amount to wrap.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"AmountTooHigh()\":[{\"notice\":\"Returned if the amount is greater than 2**64.\"}],\"CannotTransferOrUnwrap()\":[{\"notice\":\"Returned if user cannot transfer or mint.\"}],\"ErrorIndexInvalid()\":[{\"notice\":\"Returned if the error index is invalid.\"}],\"ErrorIndexIsNull()\":[{\"notice\":\"Returned if the error index is null.\"}],\"MaxDecryptionDelayTooHigh()\":[{\"notice\":\"Returned if the maximum decryption delay is higher than 1 day.\"}],\"TFHESenderNotAllowed()\":[{\"notice\":\"Returned when the `sender` is not allowed to access a value.\"}],\"TotalNumberErrorCodesEqualToZero()\":[{\"notice\":\"Returned if the total number of errors is equal to zero.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"notice\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}.\"},\"Transfer(address,address,uint256)\":{\"notice\":\"Emitted when tokens are moved from one account (`from`) to another (`to`).\"},\"Unwrap(address,uint64)\":{\"notice\":\"Emitted when token is unwrapped.\"},\"UnwrapFailNotEnoughBalance(address,uint64)\":{\"notice\":\"Emitted if unwrap fails due to lack of funds.\"},\"UnwrapFailTransferFail(address,uint64)\":{\"notice\":\"Emitted if unwrap fails due to fail transfer.\"},\"Wrap(address,uint64)\":{\"notice\":\"Emitted when token is wrapped.\"}},\"kind\":\"user\",\"methods\":{\"ERC20_TOKEN()\":{\"notice\":\"ERC20 token that is wrapped.\"},\"allowance(address,address)\":{\"notice\":\"See {IConfidentialERC20-allowance}.\"},\"approve(address,bytes32,bytes)\":{\"notice\":\"See {IConfidentialERC20-approve}.\"},\"approve(address,uint256)\":{\"notice\":\"See {IConfidentialERC20-approve}.\"},\"balanceOf(address)\":{\"notice\":\"See {IConfidentialERC20-balanceOf}.\"},\"callbackUnwrap(uint256,bool)\":{\"notice\":\"Callback function for the gateway.\"},\"decimals()\":{\"notice\":\"See {IConfidentialERC20-decimals}.\"},\"getErrorCodeForTransferId(uint256)\":{\"notice\":\"Return the error for a transfer id.\"},\"isAccountRestricted(address)\":{\"notice\":\"Tracks whether the account can move funds.\"},\"name()\":{\"notice\":\"See {IConfidentialERC20-name}.\"},\"symbol()\":{\"notice\":\"See {IConfidentialERC20-symbol}.\"},\"totalSupply()\":{\"notice\":\"See {IConfidentialERC20-totalSupply}.\"},\"transfer(address,bytes32,bytes)\":{\"notice\":\"See {IConfidentialERC20-transfer}.\"},\"transfer(address,uint256)\":{\"notice\":\"See {IConfidentialERC20-transfer}.\"},\"transferFrom(address,address,bytes32,bytes)\":{\"notice\":\"See {IConfidentialERC20-transferFrom}.\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"See {IConfidentialERC20-transferFrom}.\"},\"unwrap(uint64)\":{\"notice\":\"Unwrap ConfidentialERC20 tokens to standard ERC20 tokens.\"},\"unwrapRequests(uint256)\":{\"notice\":\"Tracks the unwrap request to a unique request id.\"},\"wrap(uint256)\":{\"notice\":\"Wrap ERC20 tokens to an encrypted format.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ERC20Encryption/ConfidentialERC20WithErrorsWrapped.sol\":\"ConfidentialERC20WithErrorsWrapped\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@chainlink/=lib/chainlink/\",\":@ensdomains/=lib/v4-core/node_modules/@ensdomains/\",\":@httpz-contracts/=lib/httpz-contracts/contracts/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/universal-router/=lib/universal-router.git/\",\":@uniswap/v2-core/=lib/v2-core/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/\",\":@uniswap/v4-core/=lib/v4-core/\",\":@uniswap/v4-periphery/=lib/v4-periphery/\",\":chainlink/=lib/chainlink/\",\":ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":fhevm-contracts/=node_modules/fhevm-contracts/\",\":fhevm-core-contracts/=node_modules/fhevm-core-contracts/\",\":fhevm/=node_modules/fhevm/\",\":forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":httpz-contracts/=lib/httpz-contracts/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":permit2/=lib/permit2/\",\":solmate/=lib/permit2/lib/solmate/\",\":universal-router.git/=lib/universal-router.git/\",\":v2-core/=lib/v2-core/contracts/\",\":v3-core/=lib/v3-core/\",\":v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/\",\":v4-core/=lib/v4-core/src/\",\":v4-periphery/=lib/v4-periphery/\"],\"viaIR\":true},\"sources\":{\"contracts/ERC20Encryption/ConfidentialERC20WithErrorsWrapped.sol\":{\"keccak256\":\"0xb663d8df9afddc4ea27c24e893b00df774475852dff3f70064161fcdf14f5628\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a19c179384889016ab8061d809b37b78f13257b363f0d3c6910dc0c62d261b3\",\"dweb:/ipfs/QmaA6ddxxLYEqpwUAfCJCH2JENXAEuKGNSf9w7zG9WmQwR\"]},\"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol\":{\"keccak256\":\"0x8b45e5bb2fd9212f99e61b4d25b9c9d5ed7cb1a9a684aac34f752c568ef16c76\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://1ca71bb5bfbb2f8a0779f8394baeea01680619637abddb572017d05d96862591\",\"dweb:/ipfs/QmPCzGBE1m6WtDZxrVL5jzkduNaS7fjtYovUWdnzN34qjh\"]},\"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol\":{\"keccak256\":\"0xe016a085f72ca3cf6d78ec1cb2182a398106cb7d425e984776a9caab0bad2569\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://3e79dc5075469d660908f5f8b6d0c863b14459d60a0b06fb786d58de8cf30a94\",\"dweb:/ipfs/QmePGRGtoWBnQ8T6ZRyZgiwVh4r67kcmWejwKgjyYN4AAY\"]},\"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20Wrapped.sol\":{\"keccak256\":\"0x72c5379fb2a7e1701a4686f60831bfc474350a42f0660aea815a5ce910cba38b\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://118fac79c89e142247e94763a1ca1235c307a67b37d68fa45d94125bc85c2cb8\",\"dweb:/ipfs/QmcE9P74NQQKnmW9vdtGb8KrWgJWH6K3bNTdrMxrPi716c\"]},\"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol\":{\"keccak256\":\"0xfe322c8f9a8e4fba881715901a5bafd2efa23394ecbc9ec84282818baeff0a07\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://13dba831528dd16408b7abab23eac0664a2a3e5ecbfe5e58e6e321cf2921668a\",\"dweb:/ipfs/QmPq4YeugbayWfeBJR8H7s4jHsnZkACQX2xbdNQ4sdvZrk\"]},\"lib/httpz-contracts/contracts/utils/EncryptedErrors.sol\":{\"keccak256\":\"0x0b8d08f392884add1af672018359e8980ee0b5e1662fe5e36eb31f053d1d4505\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://2903dd49a88b36aba2e8a45548b6a68d203887356ebdf452b10e0148954ba1a5\",\"dweb:/ipfs/QmTRuP4QXagoV2cLr2ctzFtNK7FK1cDXMYm4feMoMsYoWG\"]},\"lib/httpz-contracts/contracts/utils/TFHEErrors.sol\":{\"keccak256\":\"0x5fef7c2d7d4449d724a2800b37dfcc61e2b635f2747378ce222b9187425f2d13\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://7c2ef113faaec2d74c8d958f80687d0b676082d6231720917aaa8aa934d689a3\",\"dweb:/ipfs/QmNn474JDQ5zvVDwEuicJs6Xq8YEXWGZLoW4KeTWDVG31f\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x4ea01544758fd2c7045961904686bfe232d2220a04ecaa2d6b08dac17827febf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fabe6bef5167ae741dd8c22d7f81d3f9120bd61b290762a2e8f176712567d329\",\"dweb:/ipfs/QmSnEitJ6xmf1SSAUeZozD7Gx7h8bNnX3a1ZBzqeivsvVg\"]},\"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol\":{\"keccak256\":\"0x534bf5c25d6003a8ce50b400d20fa460c03169ad7baa90d47a912917c36dfe2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc0cc39c40ea23d3c46e8517e19ebdd877719d3159fa032f2a91802cdd205c79\",\"dweb:/ipfs/QmSoNh7HTkD4TJcBkBKSGSPMMpLUZKE7s9f2G6mjdaJywg\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889\",\"dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/fhevm/gateway/GatewayCaller.sol\":{\"keccak256\":\"0xd19fd7715f0c5b479bf0cd8e3108cc8da7deae2d4fc7fb5ab089ebf2d76a0652\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://6386c509464cefe5a41903ca837da46a21b8042d13ccde656158efc48cd70ea8\",\"dweb:/ipfs/QmUn7C6aZwKmEmKsphBshBezXXGZtLMyfaeZAyuZoRsBWU\"]},\"node_modules/fhevm/gateway/lib/Gateway.sol\":{\"keccak256\":\"0x9585a649e3001a4b8768ab6e2597b416f680bcc537309cd50b60e023e9791318\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://a1b055bfb067cc247d4bd60b5f8348f667cbe79717a5753cd6412955277345d0\",\"dweb:/ipfs/QmTveBaQg9GUdtrrxcR4RsiyAEmoEKGL4gn6E1gThR1ph5\"]},\"node_modules/fhevm/lib/Impl.sol\":{\"keccak256\":\"0x89d4968cd956a8931f1a8a177b3bef1c6cf88a03665083db74430add50b88f21\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://aaaef2c82d56dacfb08946842ea1ce26757d13f3251de62fa79222232dfcb43c\",\"dweb:/ipfs/QmQ6QZPxJw9jb3qjRYCX7pMQVoYogjTsYgmdEnB3EnwFRy\"]},\"node_modules/fhevm/lib/TFHE.sol\":{\"keccak256\":\"0x221799c8332f83ab65a0b71746409f0c2c89f1cd8d9ba4091d967c667e1df734\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://2dba387fbc612a2ee64063b0ee6c27304b3944423d11045acc50abd84577fb5f\",\"dweb:/ipfs/QmThptDGnpd8PuncFk1rnQoCzEqwUED622yC9xZgFhwY59\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"address","name":"erc20_","type":"address"},{"internalType":"uint256","name":"maxDecryptionDelay_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AmountTooHigh"},{"inputs":[],"type":"error","name":"CannotTransferOrUnwrap"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[],"type":"error","name":"ErrorIndexInvalid"},{"inputs":[],"type":"error","name":"ErrorIndexIsNull"},{"inputs":[],"type":"error","name":"MaxDecryptionDelayTooHigh"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"TFHESenderNotAllowed"},{"inputs":[],"type":"error","name":"TotalNumberErrorCodesEqualToZero"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"placeholder","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"transferId","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint64","name":"amount","type":"uint64","indexed":false}],"type":"event","name":"Unwrap","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false},{"internalType":"uint64","name":"amount","type":"uint64","indexed":false}],"type":"event","name":"UnwrapFailNotEnoughBalance","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false},{"internalType":"uint64","name":"amount","type":"uint64","indexed":false}],"type":"event","name":"UnwrapFailTransferFail","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint64","name":"amount","type":"uint64","indexed":false}],"type":"event","name":"Wrap","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"ERC20_TOKEN","outputs":[{"internalType":"contract IERC20Metadata","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"euint64","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"euint64","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"einput","name":"encryptedAmount","type":"bytes32"},{"internalType":"bytes","name":"inputProof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"euint64","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"},{"internalType":"bool","name":"canUnwrap","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"callbackUnwrap"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"errorGetCounter","outputs":[{"internalType":"uint256","name":"errorsCount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"transferId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getErrorCodeForTransferId","outputs":[{"internalType":"euint8","name":"errorCode","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isAccountRestricted","outputs":[{"internalType":"bool","name":"isRestricted","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"einput","name":"encryptedAmount","type":"bytes32"},{"internalType":"bytes","name":"inputProof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"euint64","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"euint64","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"einput","name":"encryptedAmount","type":"bytes32"},{"internalType":"bytes","name":"inputProof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"amount","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"unwrap"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"}],"stateMutability":"view","type":"function","name":"unwrapRequests","outputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint64","name":"amount","type":"uint64"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"wrap"}],"devdoc":{"kind":"dev","methods":{"callbackUnwrap(uint256,bool)":{"params":{"canUnwrap":"Whether it can be unwrapped.","requestId":"Request id."}},"getErrorCodeForTransferId(uint256)":{"params":{"transferId":"Transfer id. It can be read from the `Transfer` event."},"returns":{"errorCode":" Encrypted error code."}},"unwrap(uint64)":{"params":{"amount":"Amount to unwrap."}},"wrap(uint256)":{"params":{"amount":"Amount to wrap."}}},"version":1},"userdoc":{"kind":"user","methods":{"ERC20_TOKEN()":{"notice":"ERC20 token that is wrapped."},"allowance(address,address)":{"notice":"See {IConfidentialERC20-allowance}."},"approve(address,bytes32,bytes)":{"notice":"See {IConfidentialERC20-approve}."},"approve(address,uint256)":{"notice":"See {IConfidentialERC20-approve}."},"balanceOf(address)":{"notice":"See {IConfidentialERC20-balanceOf}."},"callbackUnwrap(uint256,bool)":{"notice":"Callback function for the gateway."},"decimals()":{"notice":"See {IConfidentialERC20-decimals}."},"getErrorCodeForTransferId(uint256)":{"notice":"Return the error for a transfer id."},"isAccountRestricted(address)":{"notice":"Tracks whether the account can move funds."},"name()":{"notice":"See {IConfidentialERC20-name}."},"symbol()":{"notice":"See {IConfidentialERC20-symbol}."},"totalSupply()":{"notice":"See {IConfidentialERC20-totalSupply}."},"transfer(address,bytes32,bytes)":{"notice":"See {IConfidentialERC20-transfer}."},"transfer(address,uint256)":{"notice":"See {IConfidentialERC20-transfer}."},"transferFrom(address,address,bytes32,bytes)":{"notice":"See {IConfidentialERC20-transferFrom}."},"transferFrom(address,address,uint256)":{"notice":"See {IConfidentialERC20-transferFrom}."},"unwrap(uint64)":{"notice":"Unwrap ConfidentialERC20 tokens to standard ERC20 tokens."},"unwrapRequests(uint256)":{"notice":"Tracks the unwrap request to a unique request id."},"wrap(uint256)":{"notice":"Wrap ERC20 tokens to an encrypted format."}},"version":1}},"settings":{"remappings":["@chainlink/=lib/chainlink/","@ensdomains/=lib/v4-core/node_modules/@ensdomains/","@httpz-contracts/=lib/httpz-contracts/contracts/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@uniswap/universal-router/=lib/universal-router.git/","@uniswap/v2-core/=lib/v2-core/","@uniswap/v3-core/=lib/v3-core/","@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/","@uniswap/v4-core/=lib/v4-core/","@uniswap/v4-periphery/=lib/v4-periphery/","chainlink/=lib/chainlink/","ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","eth-gas-reporter/=node_modules/eth-gas-reporter/","fhevm-contracts/=node_modules/fhevm-contracts/","fhevm-core-contracts/=node_modules/fhevm-core-contracts/","fhevm/=node_modules/fhevm/","forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","httpz-contracts/=lib/httpz-contracts/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","permit2/=lib/permit2/","solmate/=lib/permit2/lib/solmate/","universal-router.git/=lib/universal-router.git/","v2-core/=lib/v2-core/contracts/","v3-core/=lib/v3-core/","v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/","v4-core/=lib/v4-core/src/","v4-periphery/=lib/v4-periphery/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/ERC20Encryption/ConfidentialERC20WithErrorsWrapped.sol":"ConfidentialERC20WithErrorsWrapped"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/ERC20Encryption/ConfidentialERC20WithErrorsWrapped.sol":{"keccak256":"0xb663d8df9afddc4ea27c24e893b00df774475852dff3f70064161fcdf14f5628","urls":["bzz-raw://8a19c179384889016ab8061d809b37b78f13257b363f0d3c6910dc0c62d261b3","dweb:/ipfs/QmaA6ddxxLYEqpwUAfCJCH2JENXAEuKGNSf9w7zG9WmQwR"],"license":"MIT"},"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol":{"keccak256":"0x8b45e5bb2fd9212f99e61b4d25b9c9d5ed7cb1a9a684aac34f752c568ef16c76","urls":["bzz-raw://1ca71bb5bfbb2f8a0779f8394baeea01680619637abddb572017d05d96862591","dweb:/ipfs/QmPCzGBE1m6WtDZxrVL5jzkduNaS7fjtYovUWdnzN34qjh"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol":{"keccak256":"0xe016a085f72ca3cf6d78ec1cb2182a398106cb7d425e984776a9caab0bad2569","urls":["bzz-raw://3e79dc5075469d660908f5f8b6d0c863b14459d60a0b06fb786d58de8cf30a94","dweb:/ipfs/QmePGRGtoWBnQ8T6ZRyZgiwVh4r67kcmWejwKgjyYN4AAY"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20Wrapped.sol":{"keccak256":"0x72c5379fb2a7e1701a4686f60831bfc474350a42f0660aea815a5ce910cba38b","urls":["bzz-raw://118fac79c89e142247e94763a1ca1235c307a67b37d68fa45d94125bc85c2cb8","dweb:/ipfs/QmcE9P74NQQKnmW9vdtGb8KrWgJWH6K3bNTdrMxrPi716c"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol":{"keccak256":"0xfe322c8f9a8e4fba881715901a5bafd2efa23394ecbc9ec84282818baeff0a07","urls":["bzz-raw://13dba831528dd16408b7abab23eac0664a2a3e5ecbfe5e58e6e321cf2921668a","dweb:/ipfs/QmPq4YeugbayWfeBJR8H7s4jHsnZkACQX2xbdNQ4sdvZrk"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/utils/EncryptedErrors.sol":{"keccak256":"0x0b8d08f392884add1af672018359e8980ee0b5e1662fe5e36eb31f053d1d4505","urls":["bzz-raw://2903dd49a88b36aba2e8a45548b6a68d203887356ebdf452b10e0148954ba1a5","dweb:/ipfs/QmTRuP4QXagoV2cLr2ctzFtNK7FK1cDXMYm4feMoMsYoWG"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/utils/TFHEErrors.sol":{"keccak256":"0x5fef7c2d7d4449d724a2800b37dfcc61e2b635f2747378ce222b9187425f2d13","urls":["bzz-raw://7c2ef113faaec2d74c8d958f80687d0b676082d6231720917aaa8aa934d689a3","dweb:/ipfs/QmNn474JDQ5zvVDwEuicJs6Xq8YEXWGZLoW4KeTWDVG31f"],"license":"BSD-3-Clause-Clear"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330","urls":["bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf","dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x4ea01544758fd2c7045961904686bfe232d2220a04ecaa2d6b08dac17827febf","urls":["bzz-raw://fabe6bef5167ae741dd8c22d7f81d3f9120bd61b290762a2e8f176712567d329","dweb:/ipfs/QmSnEitJ6xmf1SSAUeZozD7Gx7h8bNnX3a1ZBzqeivsvVg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol":{"keccak256":"0x534bf5c25d6003a8ce50b400d20fa460c03169ad7baa90d47a912917c36dfe2b","urls":["bzz-raw://cc0cc39c40ea23d3c46e8517e19ebdd877719d3159fa032f2a91802cdd205c79","dweb:/ipfs/QmSoNh7HTkD4TJcBkBKSGSPMMpLUZKE7s9f2G6mjdaJywg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1","urls":["bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889","dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"node_modules/fhevm/gateway/GatewayCaller.sol":{"keccak256":"0xd19fd7715f0c5b479bf0cd8e3108cc8da7deae2d4fc7fb5ab089ebf2d76a0652","urls":["bzz-raw://6386c509464cefe5a41903ca837da46a21b8042d13ccde656158efc48cd70ea8","dweb:/ipfs/QmUn7C6aZwKmEmKsphBshBezXXGZtLMyfaeZAyuZoRsBWU"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/gateway/lib/Gateway.sol":{"keccak256":"0x9585a649e3001a4b8768ab6e2597b416f680bcc537309cd50b60e023e9791318","urls":["bzz-raw://a1b055bfb067cc247d4bd60b5f8348f667cbe79717a5753cd6412955277345d0","dweb:/ipfs/QmTveBaQg9GUdtrrxcR4RsiyAEmoEKGL4gn6E1gThR1ph5"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/lib/Impl.sol":{"keccak256":"0x89d4968cd956a8931f1a8a177b3bef1c6cf88a03665083db74430add50b88f21","urls":["bzz-raw://aaaef2c82d56dacfb08946842ea1ce26757d13f3251de62fa79222232dfcb43c","dweb:/ipfs/QmQ6QZPxJw9jb3qjRYCX7pMQVoYogjTsYgmdEnB3EnwFRy"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/lib/TFHE.sol":{"keccak256":"0x221799c8332f83ab65a0b71746409f0c2c89f1cd8d9ba4091d967c667e1df734","urls":["bzz-raw://2dba387fbc612a2ee64063b0ee6c27304b3944423d11045acc50abd84577fb5f","dweb:/ipfs/QmThptDGnpd8PuncFk1rnQoCzEqwUED622yC9xZgFhwY59"],"license":"BSD-3-Clause-Clear"}},"version":1},"id":2} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"erc20_","type":"address","internalType":"address"},{"name":"maxDecryptionDelay_","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"ERC20_TOKEN","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20Metadata"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"euint64"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"euint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"encryptedAmount","type":"bytes32","internalType":"einput"},{"name":"inputProof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"euint64"}],"stateMutability":"view"},{"type":"function","name":"callbackUnwrap","inputs":[{"name":"requestId","type":"uint256","internalType":"uint256"},{"name":"canUnwrap","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"errorGetCounter","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getErrorCodeForTransferId","inputs":[{"name":"transferId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"euint8"}],"stateMutability":"nonpayable"},{"type":"function","name":"isAccountRestricted","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"isRestricted","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"encryptedAmount","type":"bytes32","internalType":"einput"},{"name":"inputProof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"euint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"euint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"encryptedAmount","type":"bytes32","internalType":"einput"},{"name":"inputProof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"unwrap","inputs":[{"name":"amount","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unwrapRequests","inputs":[{"name":"requestId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"account","type":"address","internalType":"address"},{"name":"amount","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"wrap","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"placeholder","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"transferId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Unwrap","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"UnwrapFailNotEnoughBalance","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"UnwrapFailTransferFail","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Wrap","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"error","name":"AmountTooHigh","inputs":[]},{"type":"error","name":"CannotTransferOrUnwrap","inputs":[]},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"ErrorIndexInvalid","inputs":[]},{"type":"error","name":"ErrorIndexIsNull","inputs":[]},{"type":"error","name":"MaxDecryptionDelayTooHigh","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"TFHESenderNotAllowed","inputs":[]},{"type":"error","name":"TotalNumberErrorCodesEqualToZero","inputs":[]}],"bytecode":{"object":"0x60c0806040523461047e5760408161260b803803809161001f828561073a565b83398101031261047e5780516001600160a01b038116919082900361047e57602001516040516306fdde0360e01b815291905f83600481855afa801561047357602d6100ab916020955f91610705575b506040519586916c021b7b73334b232b73a34b0b61609d1b828401528051918291018484015e81015f838201520301601f19810185528461073a565b6040516395d89b4160e01b8152915f83600481845afa92831561047357600160208095610105935f916106e3575b506040519681889251918291018484015e8101606360f81b838201520301601e1981018652018461073a565b83516001600160401b0381116105f457600154600181811c911680156106d9575b60208210146105d657601f8111610676575b50602094601f8211600114610613579481929394955f92610608575b50508160011b915f199060031b1c1916176001555b8251926001600160401b0384116105f457600254600181811c911680156105ea575b60208210146105d657601f8111610573575b50602090601f851160011461050a576201518094915f91836104ff575b50508160011b915f199060031b1c1916176002555b5f60606040516101de8161071f565b8281528260208201528260408201520152739d6891a6240d6130c54ae243d8005063d05fe14b60606040516102128161071f565b73fee8407e2f5e3ee68ad77cae98c434e637f516e580825273687408ab54661ba0b4aef3a44156c616c6955e076020830181905273fb03be574d14c256d56f09a198b586bdfc0a9de26040840181905293909201939093527fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60080546001600160a01b031990811690941790555f805160206125eb8339815191528054841690911790557fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea6028054831690911790557fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60380548216739d6891a6240d6130c54ae243d8005063d05fe14b1790557f93ab6e17f2c461cce6ea5d4ec117e51dda77a64affc2b2c05f8cd440def0e70080549091167333347831500f1e73f0cccbb95c9f86b94d7b1123179055608052116104f0575f5b60ff811690600282116104b5575f805160206125eb83398151915254604051631ce2e8d760e31b815260048101849052600160f91b60248201529290602090849060449082905f906001600160a01b03165af1928315610473575f93610482575b505f9081526012602052604090208290557fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600546001600160a01b031691823b1561047e575f92604484926040519586938492631974142760e21b845260048401523060248401525af19182156104735760ff92610463575b501660ff811461044f57600101610364565b634e487b7160e01b5f52601160045260245ffd5b5f61046d9161073a565b5f61043d565b6040513d5f823e3d90fd5b5f80fd5b9092506020813d82116104ad575b8161049d6020938361073a565b8101031261047e5751915f6103c5565b3d9150610490565b600260a052604051611e1c90816107cf823960805181818161010f015281816101820152610901015260a051818181611430015261181a0152f35b63049587e360e41b5f5260045ffd5b015190505f806101ba565b90601f1985169160025f52815f20925f5b81811061055b575091600193918762015180989410610543575b505050811b016002556101cf565b01515f1960f88460031b161c191690555f8080610535565b9293602060018192878601518155019501930161051b565b60025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace601f860160051c810191602087106105cc575b601f0160051c01905b8181106105c1575061019d565b5f81556001016105b4565b90915081906105ab565b634e487b7160e01b5f52602260045260245ffd5b90607f169061018b565b634e487b7160e01b5f52604160045260245ffd5b015190505f80610154565b601f1982169560015f52805f20915f5b88811061065e57508360019596979810610646575b505050811b01600155610169565b01515f1960f88460031b161c191690555f8080610638565b91926020600181928685015181550194019201610623565b60015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f830160051c810191602084106106cf575b601f0160051c01905b8181106106c45750610138565b5f81556001016106b7565b90915081906106ae565b90607f1690610126565b6106ff91503d805f833e6106f7818361073a565b81019061075d565b5f6100d9565b61071991503d805f833e6106f7818361073a565b5f61006f565b608081019081106001600160401b038211176105f457604052565b601f909101601f19168101906001600160401b038211908210176105f457604052565b60208183031261047e578051906001600160401b03821161047e570181601f8201121561047e578051906001600160401b0382116105f457604051926107ad601f8401601f19166020018561073a565b8284526020838301011161047e57815f9260208093018386015e830101529056fe6080806040526004361015610012575f80fd5b5f905f3560e01c90816306fdde031461102257508063095ea7b314610ffb57806318160ddd14610fd657806323b872dd14610fa7578063313ce56714610f8c57806367a74a2814610f6f57806370a0823114610f375780637b7e0a5a14610f1a57806395d89b4114610e125780639a09435214610db2578063a5184baf14610cfc578063a9059cbb14610cca578063b32c100114610c8f578063b820e6ce1461080b578063d99c2a72146107bc578063dc412e83146104c1578063dd62ed3e1461046e578063e6e095051461042f578063ea598cb0146101415763efc4c631146100fa575f80fd5b3461013e578060031936011261013e576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b80fd5b503461013e57602036600319011261013e576040516323b872dd60e01b602082810191825233602484015230604484015260043560648085018290528452927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169285916101b86084826111cc565b519082855af1156104245782513d61041b5750803b155b6104095760206004916040519283809263313ce56760e01b82525afa90811561039a5761020c916102079185916103da575b506112a0565b6112c7565b9081156103c657046001600160401b0381116103b7576001600160401b0316338252600360205281604081205480156103a5575b5f80516020611dc78339815191525460405163f953e42760e01b8152600481019290925260248201849052600160f81b6044830152909160209183916064918391906001600160a01b03165af1801561039a578390610362575b6102be915033845260036020528060408520556102b73082611b4e565b3390611b4e565b6040515f198152827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203393a38154816001600160401b038216016001600160401b03811161034e576001600160401b0316906001600160401b0319161782556040519081527f20925aeb4fb032b41fb6819a065d482a8e6c281370fc218281522cc25182536b60203392a280f35b634e487b7160e01b84526011600452602484fd5b506020813d602011610392575b8161037c602093836111cc565b8101031261038e576102be905161029a565b5f80fd5b3d915061036f565b6040513d85823e3d90fd5b5060206103b0611bb6565b9050610240565b63fd7850ad60e01b8252600482fd5b634e487b7160e01b83526012600452602483fd5b6103fc915060203d602011610402575b6103f481836111cc565b810190611287565b5f610201565b503d6103ea565b635274afe760e01b8352600452602482fd5b600114156101cf565b6040513d84823e3d90fd5b503461013e57602036600319011261013e5760209060ff906040906001600160a01b0361045a6110fe565b168152600f84522054166040519015158152f35b503461013e57604036600319011261013e57604061048a6110fe565b91610493611114565b9260018060a01b031681526004602052209060018060a01b03165f52602052602060405f2054604051908152f35b503461013e57602036600319011261013e57806004356001600160401b0381168091036107b9576104f1336118f2565b338252600f60205260408220600160ff198254161790553382526003602052604082205480156107a7575b5f80516020611dc78339815191525460405163052896f160e01b8152600481019290925260248201839052600160f81b6044830152909260209184916064918391906001600160a01b03165af191821561039a578392610773575b50604080519261058782856111cc565b6001845260208401601f19830136823784511561075f5752606442019283421161074b575f80516020611da78339815191525485906001600160a01b0316803b1561074757818451809263155f840160e21b8252602060048301528183816105f2602482018a611921565b03925af1801561073d57610724575b50507f93ab6e17f2c461cce6ea5d4ec117e51dda77a64affc2b2c05f8cd440def0e700548251634c0d927760e01b815260a060048201529460209286926001600160a01b03169183918991839161065c9060a4840190611921565b90635c10736760e11b6024840152836044840152606483015282608483015203925af192831561071a5784936106e6575b5080519261069a8461119d565b33845260208085019384529085526010905283209151825491516001600160e01b03199092166001600160a01b03919091161760a09190911b67ffffffffffffffff60a01b1617905580f35b9092506020813d602011610712575b81610702602093836111cc565b8101031261038e5751915f61068d565b3d91506106f5565b81513d86823e3d90fd5b8161072e916111cc565b61073957845f610601565b8480fd5b84513d84823e3d90fd5b5080fd5b634e487b7160e01b85526011600452602485fd5b634e487b7160e01b86526032600452602486fd5b9091506020813d60201161079f575b8161078f602093836111cc565b8101031261038e5751905f610577565b3d9150610782565b5060206107b2611bb6565b905061051c565b50fd5b503461013e57602036600319011261013e576004358152601060209081526040918290205482516001600160a01b038216815260a09190911c6001600160401b031691810191909152f35b0390f35b503461013e57604036600319011261013e576024356004358115158203610c7c577f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c610c805760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d7f93ab6e17f2c461cce6ea5d4ec117e51dda77a64affc2b2c05f8cd440def0e700546001600160a01b03163303610c7c5780835260106020526040832091604051926108c18461119d565b546001600160a01b03811680855260a09190911c6001600160401b0316602085018181529290919015610c30575050805160405163313ce56760e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316916001600160401b031690602081600481865afa908115610c2557610958916102079189916103da57506112a0565b90818102918183041490151715610b9957602090604460018060a01b0387511688604051958694859363a9059cbb60e01b8552600485015260248401525af19081610bf8575b50610a3e5782519051604080516001600160a01b0390931683526001600160401b0390911660208301527f936799e3a22b0bdb5ef05df98e796a4835cff5297075fdb001414e53f5e302a791a15b825260106020908152604080842084905591516001600160a01b03168352600f90528120805460ff19169055807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b825181516001600160a01b039091168086526003602052604086205486926001600160401b03168115610be4575b5f80516020611dc783398151915254604051638c14cc2160e01b815260048101939093526024830191909152600160f81b60448301526020908290606490829087906001600160a01b03165af190811561039a578391610bad575b508181610aec92508185526003602052806040862055610ae73082611b4e565b611b4e565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60206040515f198152a36001600160401b038151168454906001600160401b038216036001600160401b038111610b99576001600160401b0316906001600160401b0319161784557f0bbd89dc609b4c985f78b075c0f9271cf66dd34e7e08bb2437a103a6ba9a8db760206001600160401b0360018060a01b03865116935116604051908152a26109ec565b634e487b7160e01b86526011600452602486fd5b9250506020823d602011610bdc575b81610bc9602093836111cc565b8101031261038e57905185919081610ac7565b3d9150610bbc565b90506020610bf0611bb6565b919050610a6c565b610c199060203d602011610c1e575b610c1181836111cc565b8101906112d8565b61099e565b503d610c07565b6040513d89823e3d90fd5b604080516001600160a01b039290921682526001600160401b039290921660208201527f48a802dbfec664d2280b2ebd5e5ed95ebbc1c96453297d67cbf0c721884fac9e9250a16109ec565b8280fd5b633ee5aeb560e01b8352600483fd5b503461013e57610cbe610cb2610cb8610ca736611157565b949192943691611242565b906116ba565b906111ed565b50602060405160018152f35b503461013e57604036600319011261013e576020610cf2610ce96110fe565b602435906117ba565b6040519015158152f35b3461038e57602036600319011261038e57600435601154811015610da3575f908152601360205260409020545f80516020611da7833981519152546001600160a01b031690813b1561038e576040516346ce4e4960e11b815260048101829052336024820152915f908390604490829084905af1918215610d9857602092610d88575b50604051908152f35b5f610d92916111cc565b5f610d7f565b6040513d5f823e3d90fd5b63d65c1f3360e01b5f5260045ffd5b3461038e57608036600319011261038e57610dcb6110fe565b610dd3611114565b90606435916001600160401b03831161038e57610e0c610e04610dfd610cbe95369060040161112a565b3691611242565b6044356116ba565b916113f0565b3461038e575f36600319011261038e576040515f6002548060011c90600181168015610f10575b602083108114610efc57828552908115610ed85750600114610e7a575b61080783610e66818503826111cc565b6040519182916020835260208301906110da565b91905060025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace915f905b808210610ebe57509091508101602001610e66610e56565b919260018160209254838588010152019101909291610ea6565b60ff191660208086019190915291151560051b84019091019150610e669050610e56565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610e39565b3461038e57610cbe610cb2610f31610ca736611157565b906117ba565b3461038e57602036600319011261038e576001600160a01b03610f586110fe565b165f526003602052602060405f2054604051908152f35b3461038e575f36600319011261038e576020601154604051908152f35b3461038e575f36600319011261038e57602060405160068152f35b3461038e57606036600319011261038e576020610cf2610fc56110fe565b610fcd611114565b604435916113f0565b3461038e575f36600319011261038e5760206001600160401b035f5416604051908152f35b3461038e57604036600319011261038e576020610cf26110196110fe565b602435906111ed565b3461038e575f36600319011261038e575f6001548060011c906001811680156110d0575b602083108114610efc57828552908115610ed857506001146110725761080783610e66818503826111cc565b91905060015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6915f905b8082106110b657509091508101602001610e66610e56565b91926001816020925483858801015201910190929161109e565b91607f1691611046565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361038e57565b602435906001600160a01b038216820361038e57565b9181601f8401121561038e578235916001600160401b03831161038e576020838186019501011161038e57565b606060031982011261038e576004356001600160a01b038116810361038e579160243591604435906001600160401b03821161038e576111999160040161112a565b9091565b604081019081106001600160401b038211176111b857604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b038211176111b857604052565b90611202906111fb816112f0565b8233611373565b6040515f1981526001600160a01b039091169033907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590602090a3600190565b9291926001600160401b0382116111b8576040519161126b601f8201601f1916602001846111cc565b82948184528183011161038e578281602093845f960137010152565b9081602091031261038e575160ff8116810361038e5790565b60ff6005199116019060ff82116112b357565b634e487b7160e01b5f52601160045260245ffd5b60ff16604d81116112b357600a0a90565b9081602091031261038e5751801515810361038e5790565b5f80516020611da783398151915254604051632fd514cd60e11b81526004810192909252336024830152602090829060449082906001600160a01b03165afa908115610d98575f91611354575b501561134557565b632fa38b3f60e01b5f5260045ffd5b61136d915060203d602011610c1e57610c1181836111cc565b5f61133d565b6001600160a01b03811693929084156113dd576001600160a01b0383169485156113ca57906113c89495610ae7925f52600460205260405f20905f526020528260405f20556113c23084611b4e565b82611b4e565b565b85634a1406b160e11b5f5260045260245ffd5b8463e602df0560e01b5f5260045260245ffd5b916113fa816112f0565b6001600160a01b0383165f8181526004602090815260408083203384529091529020549390929061142b8584611c3b565b9360ff7f0000000000000000000000000000000000000000000000000000000000000000169485600211610da35760126020527f7e7fa33969761a458e04f477e039a608702b4f924981d6653935a8319a08ad7b5460025f9081527f8e1fee8c88a9e04123b21e90cae2727a7715bf522a1e46eb5934ccd05203a6b2549093916114b6919084611d54565b90835260036020526114cc604084205487611c3b565b96602060018060a01b035f80516020611dc783398151915254166024604051809781936309c00ffd60e11b83528d60048401525af1938415610d98575f94611685575b505f80516020611dc783398151915254604051630ccd46b160e31b81526004810195909552602485018490525f6044860181905260209186916064918391906001600160a01b03165af1938415610d98575f94611651575b50600111610da35761158c6115a09160209460015f526012865260405f205490611d54565b61159581611b25565b506102b78582611b4e565b606460018060a01b035f80516020611dc78339815191525416965f6040519889948593630ccd46b160e31b8552600485015260248401528160448401525af1938415610d98575f94611619575b5061160f611608866116028661161499611cbf565b87611d54565b3383611373565b611954565b600190565b9493506020853d602011611649575b81611635602093836111cc565b8101031261038e579351929361160f6115ed565b3d9150611628565b9093506020813d60201161167d575b8161166d602093836111cc565b8101031261038e5751925f611567565b3d9150611660565b93506020843d6020116116b2575b816116a0602093836111cc565b8101031261038e57925192602061150f565b3d9150611693565b6117099160209160018060a01b035f80516020611dc78339815191525416905f6040518096819582946302e817ff60e41b845260048401523360248401526080604484015260848301906110da565b600560f81b606483015203925af1908115610d98575f91611788575b505f80516020611da7833981519152546001600160a01b0316803b1561038e576040516346ce4e4960e11b815260048101839052336024820152905f908290604490829084905af18015610d985761177b575090565b5f611785916111cc565b90565b90506020813d6020116117b2575b816117a3602093836111cc565b8101031261038e57515f611725565b3d9150611796565b905f906117c6816112f0565b5f80516020611dc783398151915254604051631ce2e8d760e31b815260016004820152602481018490529260209184916044918391906001600160a01b03165af1918215610d98575f926118be575b5060ff7f000000000000000000000000000000000000000000000000000000000000000016600111610da35760126020527f7e7fa33969761a458e04f477e039a608702b4f924981d6653935a8319a08ad7b5460015f527f71a67924699a20698523213e55fe499d539379d7769cd5567e2c45d583f815a35461161494916118b89183916118a4919087611d54565b6118ad81611b25565b50610ae73382611b4e565b33611954565b9091506020813d6020116118ea575b816118da602093836111cc565b8101031261038e5751905f611815565b3d91506118cd565b6001600160a01b03165f908152600f602052604090205460ff1661191257565b63adf54df960e01b5f5260045ffd5b90602080835192838152019201905f5b81811061193e5750505090565b8251845260209384019390920191600101611931565b929192611960816118f2565b611969816118f2565b6001600160a01b038116928315611b12576001600160a01b038316948515611aff579061199e91611998611bb6565b91611d54565b91845f5260036020525f60206040822054858115611aef575b8615611ae1575b5f80516020611dc78339815191525460405163f953e42760e01b8152600480820194909452848101909301919091526001600160f81b0319841660448301529092839160649183916001600160a01b03165af1908115610d98575f91611aab575b5092611a46611a589285611a709650885f5260036020528060405f2055610ae73082611b4e565b845f52600360205260405f2054611cbf565b835f5260036020528060405f2055610ae73082611b4e565b6011545f1981019081116112b35760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91604051908152a3565b9390506020843d602011611ad9575b81611ac7602093836111cc565b8101031261038e579251611a46611a1f565b3d9150611aba565b50611aea611bb6565b6119be565b9050611af9611bb6565b906119b7565b8563ec442f0560e01b5f5260045260245ffd5b83634b637e8f60e11b5f5260045260245ffd5b60115491905f1983146112b3576113c89060018401601155835f5260136020528060405f205530905b5f80516020611da7833981519152546001600160a01b031691823b1561038e57604051631974142760e21b815260048101929092526001600160a01b03166024820152905f908290604490829084905af18015610d9857611bac5750565b5f6113c8916111cc565b5f80516020611dc783398151915254604051631ce2e8d760e31b81525f60048201819052600560f81b60248301529091602091839160449183916001600160a01b03165af1908115610d98575f91611c0c575090565b90506020813d602011611c33575b81611c27602093836111cc565b8101031261038e575190565b3d9150611c1a565b908115611caf575b8015611c9d575b602090606460018060a01b035f80516020611dc78339815191525416935f60405195869485936334a6d7b960e11b8552600485015260248401528160448401525af1908115610d98575f91611c0c575090565b506020611ca8611bb6565b9050611c4a565b9050611cb9611bb6565b90611c43565b6020905f928115611d44575b8015611d36575b5f80516020611dc783398151915254604051638c14cc2160e01b8152600480820194909452848101909301919091526001600160f81b0319841660448301529092839160649183916001600160a01b03165af1908115610d98575f91611c0c575090565b50611d3f611bb6565b611cd2565b9050611d4e611bb6565b90611ccb565b9060646020925f60018060a01b035f80516020611dc78339815191525416604051968795869463cb3b940760e01b86526004860152602485015260448401525af1908115610d98575f91611c0c57509056feed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea601a2646970667358221220c9673aa9058ab6ea758aab9eb225a63e9a65bbc455431239ee1ab5b1a69cd6db64736f6c634300081a0033ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea601","sourceMap":"1199:2401:3:-:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;1199:2401:3;;;;;;;;;;;;;;-1:-1:-1;;;1872:29:3;;1199:2401;;-1:-1:-1;1199:2401:3;1872:29;1199:2401;;1872:29;;;;;;1199:2401;1838:64;1872:29;1199:2401;1872:29;-1:-1:-1;1872:29:3;;;-1:-1:-1;1199:2401:3;;;1838:64;;;-1:-1:-1;;;1838:64:3;;;1199:2401;;;;;;;;;;;;;-1:-1:-1;1199:2401:3;;;;1838:64;;;;;;;;;;:::i;:::-;1199:2401;;-1:-1:-1;;;1941:31:3;;1199:2401;-1:-1:-1;1199:2401:3;1872:29;1199:2401;;1941:31;;;;;;;1199:2401;;1941:31;;1924:54;1941:31;-1:-1:-1;1941:31:3;;;-1:-1:-1;1199:2401:3;;;;;;;;;;;;1924:54;;;1199:2401;;;-1:-1:-1;;;1199:2401:3;;;;1924:54;;;;;;;;;;;:::i;:::-;1199:2401;;-1:-1:-1;;;;;1199:2401:3;;;;;;;;;;;;;;;;-1:-1:-1;1199:2401:3;;;;;;;;;;;-1:-1:-1;1199:2401:3;;;;;;;;;;;;;;;;-1:-1:-1;1199:2401:3;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1199:2401:3;;;;1059:20:4;1199:2401:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2918:6:5;;1199:2401:3;-1:-1:-1;;1199:2401:3;;;;;;;;;;;;;;;;;;;1059:20:4;1199:2401:3;;-1:-1:-1;1199:2401:3;;;;;;:::i;:::-;;;;;;;;;;;;;;;;865:42:155;1199:2401:3;;;;;;:::i;:::-;625:42:155;1199:2401:3;;;706:42:155;1199:2401:3;577:345:155;;1199:2401:3;;;785:42:155;1199:2401:3;577:345:155;;1199:2401:3;;;577:345:155;;;;1199:2401:3;;;;4586:62:159;1199:2401:3;;-1:-1:-1;;;;;;1199:2401:3;;;;;;;;-1:-1:-1;;;;;;;;;;;1199:2401:3;;;;;;;;;4903:19:159;1199:2401:3;;;;;;;;;4964:20:159;1199:2401:3;;;;865:42:155;1199:2401:3;;;1020:58:158;1199:2401:3;;;;;455:42:156;1199:2401:3;;;;2793:36:5;2896:28;2892:93;;-1:-1:-1;2177:3:23;1199:2401:3;;;2148:27:23;1059:20:4;2148:27:23;;;;-1:-1:-1;;;;;;;;;;;1199:2401:3;;;-1:-1:-1;;;13977:74:159;;1872:29:3;13977:74:159;;1199:2401:3;;;-1:-1:-1;;;1199:2401:3;;;;;;;;;;13977:74:159;;1199:2401:3;;-1:-1:-1;;;;;;;1199:2401:3;13977:74:159;;;;;;;-1:-1:-1;13977:74:159;;;2177:3:23;-1:-1:-1;;1199:2401:3;;;2245:21:23;1199:2401:3;;;;;;;;4586:62:159;1199:2401:3;-1:-1:-1;;;;;1199:2401:3;;15870:41:159;;;;;-1:-1:-1;1199:2401:3;13977:74:159;1199:2401:3;;;;;;;;;;;;15870:41:159;;1872:29:3;15870:41:159;;1199:2401:3;370135:4:160;1199:2401:3;;;;15870:41:159;;;;;;;1199:2401:3;15870:41:159;;;2177:3:23;;1199:2401:3;;;;;;;;2139:7:23;;1199:2401:3;;;;-1:-1:-1;1199:2401:3;;1872:29;1199:2401;;-1:-1:-1;1199:2401:3;15870:41:159;-1:-1:-1;15870:41:159;;;:::i;:::-;;;;;1199:2401:3;;;-1:-1:-1;1199:2401:3;;;;;15870:41:159;-1:-1:-1;1199:2401:3;;13977:74:159;;;;1199:2401:3;13977:74:159;;;;;;;;;1199:2401:3;13977:74:159;;;:::i;:::-;;;1199:2401:3;;;;;13977:74:159;;;;;;;-1:-1:-1;13977:74:159;;2148:27:23;1059:20:4;2341:50:23;;1199:2401:3;;;;;;;;;;;;;;;;;;;;;;;;2341:50:23;1199:2401:3;;;;;;;;;;;2892:93:5;2947:27;;;-1:-1:-1;2947:27:5;1872:29:3;-1:-1:-1;2947:27:5;1199:2401:3;;;;-1:-1:-1;1199:2401:3;;;;;1838:64;;;1199:2401;;;1059:20:4;-1:-1:-1;1199:2401:3;;-1:-1:-1;1199:2401:3;;-1:-1:-1;1199:2401:3;;;;;;;;;;;;2918:6:5;1199:2401:3;;;;;;;;;;;;1059:20:4;1199:2401:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1059:20:4;-1:-1:-1;1199:2401:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1199:2401:3;;;;;;;;;-1:-1:-1;1199:2401:3;;;;;;;;-1:-1:-1;1199:2401:3;;1872:29;1199:2401;;-1:-1:-1;1199:2401:3;;;;;;;;;;;;-1:-1:-1;1199:2401:3;;1872:29;1199:2401;;-1:-1:-1;1199:2401:3;;;;;-1:-1:-1;1199:2401:3;;;;;1838:64;;1199:2401;;;;-1:-1:-1;1199:2401:3;;-1:-1:-1;1199:2401:3;;-1:-1:-1;1199:2401:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1199:2401:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1199:2401:3;;;;;;;;;-1:-1:-1;1199:2401:3;;;;;;;;;;;1941:31;;;;;;-1:-1:-1;1941:31:3;;;;;;:::i;:::-;;;;;:::i;:::-;;;;1872:29;;;;;;-1:-1:-1;1872:29:3;;;;;;:::i;:::-;;;;1199:2401;;;;;;;-1:-1:-1;;;;;1199:2401:3;;;;;;;:::o;:::-;;;;;-1:-1:-1;;1199:2401:3;;;;-1:-1:-1;;;;;1199:2401:3;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1199:2401:3;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1199:2401:3;;;;;;;;1838:64;1199:2401;;-1:-1:-1;;1199:2401:3;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1199:2401:3;;;;;;;;;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f905f3560e01c90816306fdde031461102257508063095ea7b314610ffb57806318160ddd14610fd657806323b872dd14610fa7578063313ce56714610f8c57806367a74a2814610f6f57806370a0823114610f375780637b7e0a5a14610f1a57806395d89b4114610e125780639a09435214610db2578063a5184baf14610cfc578063a9059cbb14610cca578063b32c100114610c8f578063b820e6ce1461080b578063d99c2a72146107bc578063dc412e83146104c1578063dd62ed3e1461046e578063e6e095051461042f578063ea598cb0146101415763efc4c631146100fa575f80fd5b3461013e578060031936011261013e576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b80fd5b503461013e57602036600319011261013e576040516323b872dd60e01b602082810191825233602484015230604484015260043560648085018290528452927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169285916101b86084826111cc565b519082855af1156104245782513d61041b5750803b155b6104095760206004916040519283809263313ce56760e01b82525afa90811561039a5761020c916102079185916103da575b506112a0565b6112c7565b9081156103c657046001600160401b0381116103b7576001600160401b0316338252600360205281604081205480156103a5575b5f80516020611dc78339815191525460405163f953e42760e01b8152600481019290925260248201849052600160f81b6044830152909160209183916064918391906001600160a01b03165af1801561039a578390610362575b6102be915033845260036020528060408520556102b73082611b4e565b3390611b4e565b6040515f198152827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203393a38154816001600160401b038216016001600160401b03811161034e576001600160401b0316906001600160401b0319161782556040519081527f20925aeb4fb032b41fb6819a065d482a8e6c281370fc218281522cc25182536b60203392a280f35b634e487b7160e01b84526011600452602484fd5b506020813d602011610392575b8161037c602093836111cc565b8101031261038e576102be905161029a565b5f80fd5b3d915061036f565b6040513d85823e3d90fd5b5060206103b0611bb6565b9050610240565b63fd7850ad60e01b8252600482fd5b634e487b7160e01b83526012600452602483fd5b6103fc915060203d602011610402575b6103f481836111cc565b810190611287565b5f610201565b503d6103ea565b635274afe760e01b8352600452602482fd5b600114156101cf565b6040513d84823e3d90fd5b503461013e57602036600319011261013e5760209060ff906040906001600160a01b0361045a6110fe565b168152600f84522054166040519015158152f35b503461013e57604036600319011261013e57604061048a6110fe565b91610493611114565b9260018060a01b031681526004602052209060018060a01b03165f52602052602060405f2054604051908152f35b503461013e57602036600319011261013e57806004356001600160401b0381168091036107b9576104f1336118f2565b338252600f60205260408220600160ff198254161790553382526003602052604082205480156107a7575b5f80516020611dc78339815191525460405163052896f160e01b8152600481019290925260248201839052600160f81b6044830152909260209184916064918391906001600160a01b03165af191821561039a578392610773575b50604080519261058782856111cc565b6001845260208401601f19830136823784511561075f5752606442019283421161074b575f80516020611da78339815191525485906001600160a01b0316803b1561074757818451809263155f840160e21b8252602060048301528183816105f2602482018a611921565b03925af1801561073d57610724575b50507f93ab6e17f2c461cce6ea5d4ec117e51dda77a64affc2b2c05f8cd440def0e700548251634c0d927760e01b815260a060048201529460209286926001600160a01b03169183918991839161065c9060a4840190611921565b90635c10736760e11b6024840152836044840152606483015282608483015203925af192831561071a5784936106e6575b5080519261069a8461119d565b33845260208085019384529085526010905283209151825491516001600160e01b03199092166001600160a01b03919091161760a09190911b67ffffffffffffffff60a01b1617905580f35b9092506020813d602011610712575b81610702602093836111cc565b8101031261038e5751915f61068d565b3d91506106f5565b81513d86823e3d90fd5b8161072e916111cc565b61073957845f610601565b8480fd5b84513d84823e3d90fd5b5080fd5b634e487b7160e01b85526011600452602485fd5b634e487b7160e01b86526032600452602486fd5b9091506020813d60201161079f575b8161078f602093836111cc565b8101031261038e5751905f610577565b3d9150610782565b5060206107b2611bb6565b905061051c565b50fd5b503461013e57602036600319011261013e576004358152601060209081526040918290205482516001600160a01b038216815260a09190911c6001600160401b031691810191909152f35b0390f35b503461013e57604036600319011261013e576024356004358115158203610c7c577f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c610c805760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d7f93ab6e17f2c461cce6ea5d4ec117e51dda77a64affc2b2c05f8cd440def0e700546001600160a01b03163303610c7c5780835260106020526040832091604051926108c18461119d565b546001600160a01b03811680855260a09190911c6001600160401b0316602085018181529290919015610c30575050805160405163313ce56760e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316916001600160401b031690602081600481865afa908115610c2557610958916102079189916103da57506112a0565b90818102918183041490151715610b9957602090604460018060a01b0387511688604051958694859363a9059cbb60e01b8552600485015260248401525af19081610bf8575b50610a3e5782519051604080516001600160a01b0390931683526001600160401b0390911660208301527f936799e3a22b0bdb5ef05df98e796a4835cff5297075fdb001414e53f5e302a791a15b825260106020908152604080842084905591516001600160a01b03168352600f90528120805460ff19169055807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b825181516001600160a01b039091168086526003602052604086205486926001600160401b03168115610be4575b5f80516020611dc783398151915254604051638c14cc2160e01b815260048101939093526024830191909152600160f81b60448301526020908290606490829087906001600160a01b03165af190811561039a578391610bad575b508181610aec92508185526003602052806040862055610ae73082611b4e565b611b4e565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60206040515f198152a36001600160401b038151168454906001600160401b038216036001600160401b038111610b99576001600160401b0316906001600160401b0319161784557f0bbd89dc609b4c985f78b075c0f9271cf66dd34e7e08bb2437a103a6ba9a8db760206001600160401b0360018060a01b03865116935116604051908152a26109ec565b634e487b7160e01b86526011600452602486fd5b9250506020823d602011610bdc575b81610bc9602093836111cc565b8101031261038e57905185919081610ac7565b3d9150610bbc565b90506020610bf0611bb6565b919050610a6c565b610c199060203d602011610c1e575b610c1181836111cc565b8101906112d8565b61099e565b503d610c07565b6040513d89823e3d90fd5b604080516001600160a01b039290921682526001600160401b039290921660208201527f48a802dbfec664d2280b2ebd5e5ed95ebbc1c96453297d67cbf0c721884fac9e9250a16109ec565b8280fd5b633ee5aeb560e01b8352600483fd5b503461013e57610cbe610cb2610cb8610ca736611157565b949192943691611242565b906116ba565b906111ed565b50602060405160018152f35b503461013e57604036600319011261013e576020610cf2610ce96110fe565b602435906117ba565b6040519015158152f35b3461038e57602036600319011261038e57600435601154811015610da3575f908152601360205260409020545f80516020611da7833981519152546001600160a01b031690813b1561038e576040516346ce4e4960e11b815260048101829052336024820152915f908390604490829084905af1918215610d9857602092610d88575b50604051908152f35b5f610d92916111cc565b5f610d7f565b6040513d5f823e3d90fd5b63d65c1f3360e01b5f5260045ffd5b3461038e57608036600319011261038e57610dcb6110fe565b610dd3611114565b90606435916001600160401b03831161038e57610e0c610e04610dfd610cbe95369060040161112a565b3691611242565b6044356116ba565b916113f0565b3461038e575f36600319011261038e576040515f6002548060011c90600181168015610f10575b602083108114610efc57828552908115610ed85750600114610e7a575b61080783610e66818503826111cc565b6040519182916020835260208301906110da565b91905060025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace915f905b808210610ebe57509091508101602001610e66610e56565b919260018160209254838588010152019101909291610ea6565b60ff191660208086019190915291151560051b84019091019150610e669050610e56565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610e39565b3461038e57610cbe610cb2610f31610ca736611157565b906117ba565b3461038e57602036600319011261038e576001600160a01b03610f586110fe565b165f526003602052602060405f2054604051908152f35b3461038e575f36600319011261038e576020601154604051908152f35b3461038e575f36600319011261038e57602060405160068152f35b3461038e57606036600319011261038e576020610cf2610fc56110fe565b610fcd611114565b604435916113f0565b3461038e575f36600319011261038e5760206001600160401b035f5416604051908152f35b3461038e57604036600319011261038e576020610cf26110196110fe565b602435906111ed565b3461038e575f36600319011261038e575f6001548060011c906001811680156110d0575b602083108114610efc57828552908115610ed857506001146110725761080783610e66818503826111cc565b91905060015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6915f905b8082106110b657509091508101602001610e66610e56565b91926001816020925483858801015201910190929161109e565b91607f1691611046565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361038e57565b602435906001600160a01b038216820361038e57565b9181601f8401121561038e578235916001600160401b03831161038e576020838186019501011161038e57565b606060031982011261038e576004356001600160a01b038116810361038e579160243591604435906001600160401b03821161038e576111999160040161112a565b9091565b604081019081106001600160401b038211176111b857604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b038211176111b857604052565b90611202906111fb816112f0565b8233611373565b6040515f1981526001600160a01b039091169033907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590602090a3600190565b9291926001600160401b0382116111b8576040519161126b601f8201601f1916602001846111cc565b82948184528183011161038e578281602093845f960137010152565b9081602091031261038e575160ff8116810361038e5790565b60ff6005199116019060ff82116112b357565b634e487b7160e01b5f52601160045260245ffd5b60ff16604d81116112b357600a0a90565b9081602091031261038e5751801515810361038e5790565b5f80516020611da783398151915254604051632fd514cd60e11b81526004810192909252336024830152602090829060449082906001600160a01b03165afa908115610d98575f91611354575b501561134557565b632fa38b3f60e01b5f5260045ffd5b61136d915060203d602011610c1e57610c1181836111cc565b5f61133d565b6001600160a01b03811693929084156113dd576001600160a01b0383169485156113ca57906113c89495610ae7925f52600460205260405f20905f526020528260405f20556113c23084611b4e565b82611b4e565b565b85634a1406b160e11b5f5260045260245ffd5b8463e602df0560e01b5f5260045260245ffd5b916113fa816112f0565b6001600160a01b0383165f8181526004602090815260408083203384529091529020549390929061142b8584611c3b565b9360ff7f0000000000000000000000000000000000000000000000000000000000000000169485600211610da35760126020527f7e7fa33969761a458e04f477e039a608702b4f924981d6653935a8319a08ad7b5460025f9081527f8e1fee8c88a9e04123b21e90cae2727a7715bf522a1e46eb5934ccd05203a6b2549093916114b6919084611d54565b90835260036020526114cc604084205487611c3b565b96602060018060a01b035f80516020611dc783398151915254166024604051809781936309c00ffd60e11b83528d60048401525af1938415610d98575f94611685575b505f80516020611dc783398151915254604051630ccd46b160e31b81526004810195909552602485018490525f6044860181905260209186916064918391906001600160a01b03165af1938415610d98575f94611651575b50600111610da35761158c6115a09160209460015f526012865260405f205490611d54565b61159581611b25565b506102b78582611b4e565b606460018060a01b035f80516020611dc78339815191525416965f6040519889948593630ccd46b160e31b8552600485015260248401528160448401525af1938415610d98575f94611619575b5061160f611608866116028661161499611cbf565b87611d54565b3383611373565b611954565b600190565b9493506020853d602011611649575b81611635602093836111cc565b8101031261038e579351929361160f6115ed565b3d9150611628565b9093506020813d60201161167d575b8161166d602093836111cc565b8101031261038e5751925f611567565b3d9150611660565b93506020843d6020116116b2575b816116a0602093836111cc565b8101031261038e57925192602061150f565b3d9150611693565b6117099160209160018060a01b035f80516020611dc78339815191525416905f6040518096819582946302e817ff60e41b845260048401523360248401526080604484015260848301906110da565b600560f81b606483015203925af1908115610d98575f91611788575b505f80516020611da7833981519152546001600160a01b0316803b1561038e576040516346ce4e4960e11b815260048101839052336024820152905f908290604490829084905af18015610d985761177b575090565b5f611785916111cc565b90565b90506020813d6020116117b2575b816117a3602093836111cc565b8101031261038e57515f611725565b3d9150611796565b905f906117c6816112f0565b5f80516020611dc783398151915254604051631ce2e8d760e31b815260016004820152602481018490529260209184916044918391906001600160a01b03165af1918215610d98575f926118be575b5060ff7f000000000000000000000000000000000000000000000000000000000000000016600111610da35760126020527f7e7fa33969761a458e04f477e039a608702b4f924981d6653935a8319a08ad7b5460015f527f71a67924699a20698523213e55fe499d539379d7769cd5567e2c45d583f815a35461161494916118b89183916118a4919087611d54565b6118ad81611b25565b50610ae73382611b4e565b33611954565b9091506020813d6020116118ea575b816118da602093836111cc565b8101031261038e5751905f611815565b3d91506118cd565b6001600160a01b03165f908152600f602052604090205460ff1661191257565b63adf54df960e01b5f5260045ffd5b90602080835192838152019201905f5b81811061193e5750505090565b8251845260209384019390920191600101611931565b929192611960816118f2565b611969816118f2565b6001600160a01b038116928315611b12576001600160a01b038316948515611aff579061199e91611998611bb6565b91611d54565b91845f5260036020525f60206040822054858115611aef575b8615611ae1575b5f80516020611dc78339815191525460405163f953e42760e01b8152600480820194909452848101909301919091526001600160f81b0319841660448301529092839160649183916001600160a01b03165af1908115610d98575f91611aab575b5092611a46611a589285611a709650885f5260036020528060405f2055610ae73082611b4e565b845f52600360205260405f2054611cbf565b835f5260036020528060405f2055610ae73082611b4e565b6011545f1981019081116112b35760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91604051908152a3565b9390506020843d602011611ad9575b81611ac7602093836111cc565b8101031261038e579251611a46611a1f565b3d9150611aba565b50611aea611bb6565b6119be565b9050611af9611bb6565b906119b7565b8563ec442f0560e01b5f5260045260245ffd5b83634b637e8f60e11b5f5260045260245ffd5b60115491905f1983146112b3576113c89060018401601155835f5260136020528060405f205530905b5f80516020611da7833981519152546001600160a01b031691823b1561038e57604051631974142760e21b815260048101929092526001600160a01b03166024820152905f908290604490829084905af18015610d9857611bac5750565b5f6113c8916111cc565b5f80516020611dc783398151915254604051631ce2e8d760e31b81525f60048201819052600560f81b60248301529091602091839160449183916001600160a01b03165af1908115610d98575f91611c0c575090565b90506020813d602011611c33575b81611c27602093836111cc565b8101031261038e575190565b3d9150611c1a565b908115611caf575b8015611c9d575b602090606460018060a01b035f80516020611dc78339815191525416935f60405195869485936334a6d7b960e11b8552600485015260248401528160448401525af1908115610d98575f91611c0c575090565b506020611ca8611bb6565b9050611c4a565b9050611cb9611bb6565b90611c43565b6020905f928115611d44575b8015611d36575b5f80516020611dc783398151915254604051638c14cc2160e01b8152600480820194909452848101909301919091526001600160f81b0319841660448301529092839160649183916001600160a01b03165af1908115610d98575f91611c0c575090565b50611d3f611bb6565b611cd2565b9050611d4e611bb6565b90611ccb565b9060646020925f60018060a01b035f80516020611dc78339815191525416604051968795869463cb3b940760e01b86526004860152602485015260448401525af1908115610d98575f91611c0c57509056feed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea601a2646970667358221220c9673aa9058ab6ea758aab9eb225a63e9a65bbc455431239ee1ab5b1a69cd6db64736f6c634300081a0033","sourceMap":"1199:2401:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1472:43:5;-1:-1:-1;;;;;1199:2401:3;;;;;;;;;;;;;;;;-1:-1:-1;;1199:2401:3;;;;;;-1:-1:-1;;;1199:2401:3;1745:53:44;;;;;;4042:10:5;1745:53:44;;;1199:2401:3;4062:4:5;1199:2401:3;;;;;;;;;;;;;1745:53:44;;1199:2401:3;4013:11:5;-1:-1:-1;;;;;1199:2401:3;;;;1745:53:44;;1199:2401:3;1745:53:44;:::i;:::-;7823:421;;;;;;;;;;;;8258:15;;8276:26;;;:31;8258:68;8254:146;;1199:2401:3;;;;;;;;;;;;4129:22:5;;;;;;;;;4122:43;4129:22;:35;:22;;;;;8258:68:44;4129:35:5;;:::i;:::-;4122:43;:::i;:::-;1199:2401:3;;;;;;-1:-1:-1;;;;;4181:33:5;;4177:86;;-1:-1:-1;;;;;1199:2401:3;4042:10:5;1199:2401:3;;5817:9:17;1199:2401:3;;;;;;;2482:22:160;;211624:64;;8258:68:44;-1:-1:-1;;;;;;;;;;;1199:2401:3;;;-1:-1:-1;;;5329:65:159;;1199:2401:3;5329:65:159;;1199:2401:3;;;;;;;;;;-1:-1:-1;;;1199:2401:3;;;;;;;;;;;;;;;-1:-1:-1;;;;;1199:2401:3;5329:65:159;;;;;;;;;;8258:68:44;370724:7:160;5320:74:159;;4042:10:5;1199:2401:3;;5817:9:17;1199:2401:3;;;;;;;370832:13:160;4062:4:5;370832:13:160;;:::i;:::-;4042:10:5;370724:7:160;;:::i;:::-;1199:2401:3;;950:17:17;;1199:2401:3;;4042:10:5;5502:43:17;1199:2401:3;4042:10:5;5502:43:17;;1199:2401:3;;;-1:-1:-1;;;;;1199:2401:3;;;-1:-1:-1;;;;;1199:2401:3;;;;-1:-1:-1;;;;;1199:2401:3;;-1:-1:-1;;;;;1199:2401:3;;;;;;;;;;4419:30:5;1199:2401:3;4042:10:5;4419:30;;1199:2401:3;;;-1:-1:-1;;;1199:2401:3;;;;;1745:53:44;1199:2401:3;;5329:65:159;;1199:2401:3;5329:65:159;;1199:2401:3;5329:65:159;;;;;;1199:2401:3;5329:65:159;;;:::i;:::-;;;1199:2401:3;;;;370724:7:160;1199:2401:3;;5329:65:159;;1199:2401:3;-1:-1:-1;1199:2401:3;;5329:65:159;;;-1:-1:-1;5329:65:159;;;1199:2401:3;;;;;;;;;211624:64:160;344922:44;1199:2401:3;344922:44:160;;:::i;:::-;211624:64;;;;4177:86:5;-1:-1:-1;;;4237:15:5;;1199:2401:3;4237:15:5;;1199:2401:3;-1:-1:-1;;;1199:2401:3;;;;;1745:53:44;1199:2401:3;;4129:22:5;;;;1199:2401:3;4129:22:5;1199:2401:3;4129:22:5;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;8254:146:44;-1:-1:-1;;;8349:40:44;;1199:2401:3;;1745:53:44;8349:40;;8258:68;1199:2401:3;8310:16:44;;8258:68;;7823:421;1199:2401:3;7823:421:44;;;;;;;;1199:2401:3;;;;;;;-1:-1:-1;;1199:2401:3;;;;;;;;;;-1:-1:-1;;;;;1199:2401:3;;:::i;:::-;;;;1581:72:5;1199:2401:3;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1199:2401:3;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;7824:27:17;1199:2401:3;;;;;;-1:-1:-1;1199:2401:3;;;;;-1:-1:-1;1199:2401:3;;;;;;;;;;;;;;;-1:-1:-1;;1199:2401:3;;;;;;;-1:-1:-1;;;;;1199:2401:3;;;;;;;3212:10:5;;;:::i;:::-;;1199:2401:3;;3337:19:5;1199:2401:3;;;;;3371:4:5;1199:2401:3;;;;;;;;3212:10:5;1199:2401:3;;3419:9:5;1199:2401:3;;;;;;2482:22:160;;217843:64;;1199:2401:3;-1:-1:-1;;;;;;;;;;;1199:2401:3;;;-1:-1:-1;;;10379:64:159;;1199:2401:3;10379:64:159;;1199:2401:3;;;;;;;;;;-1:-1:-1;;;1199:2401:3;;;;;;;;;;10379:64:159;;1199:2401:3;;;-1:-1:-1;;;;;1199:2401:3;10379:64:159;;;;;;;;;;;1199:2401:3;;;;;;;;;;:::i;:::-;3371:4:5;1199:2401:3;;;;;-1:-1:-1;;1199:2401:3;;;;;;;;;;;10379:64:159;3682:15:5;1199:2401:3;3682:15:5;;;1199:2401:3;;;-1:-1:-1;;;;;;;;;;;1199:2401:3;;;-1:-1:-1;;;;;1199:2401:3;3173:49:158;;;;;1199:2401:3;;;;;;;;3173:49:158;;1199:2401:3;;3173:49:158;;1199:2401:3;;;;;;;;;;:::i;:::-;3173:49:158;;;;;;;;;;1199:2401:3;-1:-1:-1;;1020:58:158;1199:2401:3;;;-1:-1:-1;;;3304:209:158;;1199:2401:3;;3304:209:158;;1199:2401:3;;;;;;-1:-1:-1;;;;;1199:2401:3;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;10379:64:159;1199:2401:3;;;;;;;;3304:209:158;;;;;;;;;;;;;1199:2401:3;;;;;;;;:::i;:::-;3212:10:5;1199:2401:3;;;3771:54:5;;;1199:2401:3;;;;;;3743:14:5;1199:2401:3;;;;;;;;;;-1:-1:-1;;;;;;1199:2401:3;;;-1:-1:-1;;;;;1199:2401:3;;;;;;;;;;-1:-1:-1;;;1199:2401:3;;;;;;3304:209:158;;;;1199:2401:3;3304:209:158;;1199:2401:3;3304:209:158;;;;;;1199:2401:3;3304:209:158;;;:::i;:::-;;;1199:2401:3;;;;;3304:209:158;;;;;;;-1:-1:-1;3304:209:158;;;1199:2401:3;;;;;;;;;3173:49:158;;;;;:::i;:::-;1199:2401:3;;3173:49:158;;;;1199:2401:3;;;;3173:49:158;1199:2401:3;;;;;;;;;3173:49:158;1199:2401:3;;;;-1:-1:-1;;;1199:2401:3;;;;;;;;;-1:-1:-1;;;1199:2401:3;;;;;;;;10379:64:159;;;;1199:2401:3;10379:64:159;;1199:2401:3;10379:64:159;;;;;;1199:2401:3;10379:64:159;;;:::i;:::-;;;1199:2401:3;;;;;10379:64:159;;;;;;;-1:-1:-1;10379:64:159;;217843::160;344922:44;1199:2401:3;344922:44:160;;:::i;:::-;217843:64;;;;1199:2401:3;;;;;;;;;;-1:-1:-1;;1199:2401:3;;;;;;;;1726:79:5;1199:2401:3;;;;;;;;;;;;-1:-1:-1;;;;;1199:2401:3;;;;;;;;;-1:-1:-1;;;;;1199:2401:3;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1199:2401:3;;;;;;;;;;;;;;;637:66:53;3321:69:56;1413:93:53;;1199:2401:3;637:66:53;3550:68:56;1020:58:158;1199:2401:3;-1:-1:-1;;;;;1199:2401:3;208:10:157;:46;1199:2401:3;;;;;4778:14:5;1199:2401:3;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;1199:2401:3;;;;;;;;;;-1:-1:-1;;;;;1199:2401:3;;;;;;;;;;;4814:695:5;;;-1:-1:-1;;1199:2401:3;;;;-1:-1:-1;;;4948:22:5;;:11;-1:-1:-1;;;;;1199:2401:3;;-1:-1:-1;;;;;1199:2401:3;;;;;;;4948:22:5;;;;;;;4941:43;4948:22;:35;:22;;;;;:35;;:::i;4941:43::-;1199:2401:3;;;;;;;;;;;;;;;;;5004:58:5;1199:2401:3;;;;;;;;;;;;;;;;;;;5004:58:5;;1199:2401:3;5004:58:5;;1199:2401:3;;;;;5004:58:5;;;;;;4814:695;-1:-1:-1;5000:392:5;;1199:2401:3;;;;;;;-1:-1:-1;;;;;1199:2401:3;;;;;-1:-1:-1;;;;;1199:2401:3;;;;;;;5310:67:5;;;5000:392;1199:2401:3;;4778:14:5;1199:2401:3;;;;;;;;;;;;;-1:-1:-1;;;;;1199:2401:3;;;5568:19:5;1199:2401:3;;;;;;-1:-1:-1;;1199:2401:3;;;;637:66:53;3550:68:56;1199:2401:3;;5000:392:5;1199:2401:3;;;;-1:-1:-1;;;;;1199:2401:3;;;;;;6177:9:5;1199:2401:3;;;;;;;;-1:-1:-1;;;;;1199:2401:3;2482:22:160;;212168:64;;5000:392:5;-1:-1:-1;;;;;;;;;;;1199:2401:3;;;-1:-1:-1;;;5706:65:159;;1199:2401:3;5706:65:159;;1199:2401:3;;;;;;;;;;;-1:-1:-1;;;1199:2401:3;;;;;;;;;;;;;;-1:-1:-1;;;;;1199:2401:3;5706:65:159;;;;;;;;;;;5000:392:5;5697:74:159;;;370724:7:160;5697:74:159;1199:2401:3;;;;6177:9:5;1199:2401:3;;;;;;;370832:13:160;370840:4;370832:13;;:::i;:::-;370724:7;:::i;:::-;6358:43:5;1199:2401:3;;;950:17:17;;1199:2401:3;;6358:43:5;-1:-1:-1;;;;;1199:2401:3;;;;;;-1:-1:-1;;;;;1199:2401:3;;;-1:-1:-1;;;;;1199:2401:3;;;;-1:-1:-1;;;;;1199:2401:3;;-1:-1:-1;;;;;1199:2401:3;;;;;5214:51:5;1199:2401:3;-1:-1:-1;;;;;1199:2401:3;;;;;;;;;;;;;;;;5214:51:5;5000:392;;1199:2401:3;-1:-1:-1;;;1199:2401:3;;;;;;;;5706:65:159;;;;1199:2401:3;5706:65:159;;1199:2401:3;5706:65:159;;;;;;1199:2401:3;5706:65:159;;;:::i;:::-;;;1199:2401:3;;;;;;;;;;5706:65:159;;;;;-1:-1:-1;5706:65:159;;212168:64:160;344922:44;;1199:2401:3;344922:44:160;;:::i;:::-;212168:64;;;;;5004:58:5;;;1199:2401:3;5004:58:5;1199:2401:3;5004:58:5;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;4948:22;1199:2401:3;;;;;;;;;4814:695:5;1199:2401:3;;;-1:-1:-1;;;;;1199:2401:3;;;;;;-1:-1:-1;;;;;1199:2401:3;;;;;;;;5427:71:5;;-1:-1:-1;5427:71:5;4814:695;;1199:2401:3;;;;1413:93:53;-1:-1:-1;;;1465:30:53;;1199:2401:3;1465:30:53;;1199:2401:3;;;;;1877:61:17;1199:2401:3;1894:43:17;1199:2401:3;;;:::i;:::-;;;;;;;;:::i;:::-;1894:43:17;;:::i;:::-;1877:61;;:::i;:::-;;1199:2401:3;;;1955:4:17;1199:2401:3;;;;;;;;;;-1:-1:-1;;1199:2401:3;;;;;2803:54;1199:2401;;:::i;:::-;;;2803:54;;:::i;:::-;1199:2401;;;;;;;;;;;;;;-1:-1:-1;;1199:2401:3;;;;;;8215:13:23;1199:2401:3;8204:24:23;;;8200:81;;1199:2401:3;;;;8303:18:23;1199:2401:3;;;;;;-1:-1:-1;;;;;;;;;;;1199:2401:3;-1:-1:-1;;;;;1199:2401:3;;15684:50:159;;;;;1199:2401:3;;-1:-1:-1;;;15684:50:159;;1199:2401:3;15684:50:159;;1199:2401:3;;;2499:10:4;1199:2401:3;;;;;-1:-1:-1;;1199:2401:3;;;;;;-1:-1:-1;;15684:50:159;;;;;;;1199:2401:3;15684:50:159;;;1199:2401:3;;;;;;;;15684:50:159;1199:2401:3;15684:50:159;;;:::i;:::-;1199:2401:3;15684:50:159;;;1199:2401:3;;;;;;;;;8200:81:23;8251:19;;;1199:2401:3;8251:19:23;1199:2401:3;;8251:19:23;1199:2401:3;;;;;;-1:-1:-1;;1199:2401:3;;;;;;:::i;:::-;;;:::i;:::-;;;;;-1:-1:-1;;;;;1199:2401:3;;;;3273:43:17;1199:2401:3;;3080:64;1199:2401;;;;;;:::i;:::-;;;;:::i;:::-;;;3273:43:17;:::i;:::-;3080:64:3;;:::i;1199:2401::-;;;;;;-1:-1:-1;;1199:2401:3;;;;;;;4609:7:17;1199:2401:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;4609:7:17;1199:2401:3;;;;;;;;;;;;-1:-1:-1;1199:2401:3;;-1:-1:-1;1199:2401:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1199:2401:3;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1199:2401:3;;-1:-1:-1;1199:2401:3;;;;;;;;;;;;;;;;;;;;;;;;;2803:54;1199:2401;2525:43:17;1199:2401:3;;;:::i;2525:43:17:-;2803:54:3;;:::i;1199:2401::-;;;;;;-1:-1:-1;;1199:2401:3;;;;-1:-1:-1;;;;;1199:2401:3;;:::i;:::-;;;;4125:9:17;1199:2401:3;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1199:2401:3;;;;;8596:13:23;1199:2401:3;;;;;;;;;;;;;-1:-1:-1;;1199:2401:3;;;;;;;4295:1:17;1199:2401:3;;;;;;;;;-1:-1:-1;;1199:2401:3;;;;;3080:64;1199:2401;;:::i;:::-;;;:::i;:::-;;;3080:64;;:::i;1199:2401::-;;;;;;-1:-1:-1;;1199:2401:3;;;;;-1:-1:-1;;;;;1199:2401:3;;;;;;;;;;;;;;;-1:-1:-1;;1199:2401:3;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;1199:2401:3;;;;;4448:5:17;1199:2401:3;;4448:5:17;1199:2401:3;;4448:5:17;1199:2401:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;4448:5:17;1199:2401:3;;;;;;;;;;;;-1:-1:-1;1199:2401:3;;-1:-1:-1;1199:2401:3;;;;;;;;;;4448:5:17;1199:2401:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1199:2401:3;;;;;;;;-1:-1:-1;;1199:2401:3;;;;:::o;:::-;;;;-1:-1:-1;;;;;1199:2401:3;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1199:2401:3;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1199:2401:3;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;1199:2401:3;;;;;;;-1:-1:-1;;;;;1199:2401:3;;;;;;;;;;;;;-1:-1:-1;;;;;1199:2401:3;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1199:2401:3;;;;;;;:::o;:::-;;;;-1:-1:-1;1199:2401:3;;;;;-1:-1:-1;1199:2401:3;;;;;;;;;;;;;;-1:-1:-1;;;;;1199:2401:3;;;;;;;:::o;2037:282:17:-;;2231:6;2037:282;2153:6;;;:::i;:::-;2186:10;;2231:6;:::i;:::-;1199:2401:3;;-1:-1:-1;;1199:2401:3;;-1:-1:-1;;;;;1199:2401:3;;;;2186:10:17;;2253:38;;1199:2401:3;;2253:38:17;2308:4;2037:282;:::o;1199:2401:3:-;;;;-1:-1:-1;;;;;1199:2401:3;;;;;;;;;;;-1:-1:-1;;1199:2401:3;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1199:2401:3;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;7864:178:17:-;-1:-1:-1;;;;;;;;;;;1199:2401:3;;;-1:-1:-1;;;16241:45:159;;;;;1199:2401:3;;;;368839:10:160;1199:2401:3;;;;16241:45:159;;1199:2401:3;;;;;;-1:-1:-1;;;;;1199:2401:3;16241:45:159;;;;;;;-1:-1:-1;16241:45:159;;;7864:178:17;7951:29;;7947:89;;7864:178::o;7947:89::-;8003:22;;;-1:-1:-1;8003:22:17;16241:45:159;-1:-1:-1;8003:22:17;16241:45:159;;;;;;;;;;;;;;:::i;:::-;;;;4800:431:17;-1:-1:-1;;;;;1199:2401:3;;;4800:431:17;;4897:19;;4893:84;;-1:-1:-1;;;;;1199:2401:3;;;4991:21:17;;4987:87;;1199:2401:3;370724:7:160;1199:2401:3;;370724:7:160;1199:2401:3;4914:1:17;1199:2401:3;5084:11:17;1199:2401:3;;;4914:1:17;1199:2401:3;5084:27:17;-1:-1:-1;1199:2401:3;;;;;-1:-1:-1;1199:2401:3;;370832:13:160;370840:4;370832:13;;:::i;:::-;370724:7;;:::i;:::-;4800:431:17:o;4987:87::-;5035:28;;;;4914:1;5035:28;;1199:2401:3;;4914:1:17;5035:28;4893:84;4939:27;;;;4914:1;4939:27;;1199:2401:3;;4914:1:17;4939:27;1760:337:4;;1899:6;;;:::i;:::-;-1:-1:-1;;;;;1199:2401:3;;-1:-1:-1;1199:2401:3;;;7824:11:17;1199:2401:3;;;;;;;;1934:10:4;1199:2401:3;;;;;;;;;;;;3156:33:4;1199:2401:3;3156:33:4;;:::i;:::-;3218:75;1199:2401:3;6306:25:23;1199:2401:3;6294:37:23;;3259:32:4;6294:37:23;6290:94;;6429:21;1199:2401:3;;;;3259:32:4;-1:-1:-1;1199:2401:3;;;;;-1:-1:-1;;1199:2401:3;324889:70:160;;1199:2401:3;324889:70:160;;:::i;:::-;1199:2401:3;;;;;;3384:33:4;1199:2401:3;;;;3384:33:4;;:::i;:::-;1199:2401:3;;;;;;;-1:-1:-1;;;;;;;;;;;1199:2401:3;;12663:47:159;1199:2401:3;;;;;;;;;12663:47:159;;;7824:11:17;12663:47:159;;1199:2401:3;12663:47:159;;;;;;;-1:-1:-1;12663:47:159;;;1760:337:4;-1:-1:-1;;;;;;;;;;;;1199:2401:3;;;-1:-1:-1;;;6980:68:159;;7824:11:17;6980:68:159;;1199:2401:3;;;;12663:47:159;1199:2401:3;;;;;-1:-1:-1;1199:2401:3;;;;;;;;;;6980:68:159;;1199:2401:3;;-1:-1:-1;;;;;;1199:2401:3;6980:68:159;;;;;;;-1:-1:-1;6980:68:159;;;1760:337:4;3203:37:23;1199:2401:3;3203:37:23;3199:94;;324889:70:160;370724:7;1199:2401:3;;;;-1:-1:-1;1199:2401:3;6429:21:23;1199:2401:3;;;-1:-1:-1;1199:2401:3;;324889:70:160;;:::i;:::-;3893:21:4;;;:::i;:::-;;370724:7:160;;;;:::i;:::-;6980:68:159;1199:2401:3;;;;;-1:-1:-1;;;;;;;;;;;1199:2401:3;;;-1:-1:-1;1199:2401:3;;;;;;;;;;6980:68:159;;7824:11:17;6980:68:159;;1199:2401:3;12663:47:159;1199:2401:3;;;;;;;;6980:68:159;;;;;;;-1:-1:-1;6980:68:159;;;1760:337:4;4120:34;4092:81;324889:70:160;4120:34:4;;;2054:14;4120:34;;:::i;:::-;324889:70:160;;:::i;:::-;1934:10:4;4092:81;;:::i;:::-;2054:14;:::i;:::-;1199:2401:3;1760:337:4;:::o;6980:68:159:-;;;;1199:2401:3;6980:68:159;;1199:2401:3;6980:68:159;;;;;;1199:2401:3;6980:68:159;;;:::i;:::-;;;1199:2401:3;;;;;;6980:68:159;;4092:81:4;6980:68:159;;;;;-1:-1:-1;6980:68:159;;;;;;1199:2401:3;6980:68:159;;1199:2401:3;6980:68:159;;;;;;1199:2401:3;6980:68:159;;;:::i;:::-;;;1199:2401:3;;;;;6980:68:159;;;;;;;-1:-1:-1;6980:68:159;;12663:47;;;1199:2401:3;12663:47:159;;1199:2401:3;12663:47:159;;;;;;1199:2401:3;12663:47:159;;;:::i;:::-;;;1199:2401:3;;;;;;;;12663:47:159;;;;;-1:-1:-1;12663:47:159;;344561:198:160;1199:2401:3;344561:198:160;1199:2401:3;344561:198:160;1199:2401:3;;;;;-1:-1:-1;;;;;;;;;;;1199:2401:3;;;-1:-1:-1;1199:2401:3;;;;;;;;;;;13336:164:159;;;;;1199:2401:3;13428:10:159;1199:2401:3;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;1199:2401:3;;;;13336:164:159;;;;;;;;;-1:-1:-1;13336:164:159;;;344561:198:160;-1:-1:-1;;;;;;;;;;;;1199:2401:3;-1:-1:-1;;;;;1199:2401:3;13510:53:159;;;;;1199:2401:3;;-1:-1:-1;;;13510:53:159;;13336:164;13510:53;;1199:2401:3;;;13428:10:159;1199:2401:3;;;;;-1:-1:-1;;1199:2401:3;;;;;;-1:-1:-1;;13510:53:159;;;;;;;;344662:90:160;344561:198;:::o;13510:53:159:-;-1:-1:-1;13510:53:159;;;:::i;:::-;344561:198:160;:::o;13336:164:159:-;;;1199:2401:3;13336:164:159;;1199:2401:3;13336:164:159;;;;;;1199:2401:3;13336:164:159;;;:::i;:::-;;;1199:2401:3;;;;;13336:164:159;;;;;;-1:-1:-1;13336:164:159;;1156:528:4;;1199:2401:3;1156:528:4;1277:6;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1199:2401:3;;;-1:-1:-1;;;13977:74:159;;1199:2401:3;13977:74:159;;;1199:2401:3;;;;;;;;;;;;13977:74:159;;1199:2401:3;;;-1:-1:-1;;;;;1199:2401:3;13977:74:159;;;;;;;1199:2401:3;13977:74:159;;;1156:528:4;13968:83:159;1199:2401:3;6306:25:23;1199:2401:3;1387:4:4;6294:37:23;6290:94;;6429:21;1199:2401:3;;;;1387:4:4;-1:-1:-1;1199:2401:3;;;1644:11:4;;1199:2401:3;370724:7:160;;1199:2401:3;;324889:70:160;;1199:2401:3;324889:70:160;;:::i;:::-;1501:21:4;;;:::i;:::-;;370724:7:160;1554:10:4;370724:7:160;;:::i;:::-;1554:10:4;1644:11;:::i;13977:74:159:-;;;;1199:2401:3;13977:74:159;;1199:2401:3;13977:74:159;;;;;;1199:2401:3;13977:74:159;;;:::i;:::-;;;1199:2401:3;;;;;13977:74:159;;;;;;;-1:-1:-1;13977:74:159;;5623:170:5;-1:-1:-1;;;;;1199:2401:3;-1:-1:-1;1199:2401:3;;;5701:19:5;1199:2401:3;;;;;;;;5697:90:5;;5623:170::o;5697:90::-;5752:24;;;-1:-1:-1;5752:24:5;;-1:-1:-1;5752:24:5;1199:2401:3;;;;;;;;;;;;;;-1:-1:-1;1199:2401:3;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;3157:336;;;;3394:4;;;:::i;:::-;5984::5;;;:::i;:::-;-1:-1:-1;;;;;1199:2401:3;;;6337:18:17;;6333:80;;-1:-1:-1;;;;;1199:2401:3;;;6427:16:17;;6423:78;;344922:44:160;324889:70;344922:44;;;:::i;:::-;324889:70;;:::i;:::-;1199:2401:3;;6353:1:17;1199:2401:3;6716:9:17;1199:2401:3;;6353:1:17;1199:2401:3;;;;;6707:38:17;;2482:22:160;196412:64;;3157:336:3;2482:22:160;;196485:64;;3157:336:3;-1:-1:-1;;;;;;;;;;;1199:2401:3;;;-1:-1:-1;;;5329:65:159;;;;;;1199:2401:3;;;;;;;;;;;;;;-1:-1:-1;;;;;;1199:2401:3;;;;;;;;;;;;;;-1:-1:-1;;;;;1199:2401:3;5329:65:159;;;;;;;6353:1:17;5329:65:159;;;3157:336:3;5320:74:159;;370724:7:160;6894:40:17;5320:74:159;;370724:7:160;5320:74:159;1199:2401:3;;6353:1:17;1199:2401:3;6716:9:17;1199:2401:3;;;;6353:1:17;1199:2401:3;;370832:13:160;370840:4;370832:13;;:::i;370724:7::-;1199:2401:3;6353:1:17;1199:2401:3;6716:9:17;1199:2401:3;;;6353:1:17;1199:2401:3;;6894:40:17;:::i;:::-;1199:2401:3;6353:1:17;1199:2401:3;6716:9:17;1199:2401:3;;;;6353:1:17;1199:2401:3;;370832:13:160;370840:4;370832:13;;:::i;370724:7::-;8596:13:23;1199:2401:3;-1:-1:-1;;1199:2401:3;;;;;;;;2784:42:4;1199:2401:3;;;;;;2784:42:4;3157:336:3:o;5329:65:159:-;;;;1199:2401:3;5329:65:159;;1199:2401:3;5329:65:159;;;;;;1199:2401:3;5329:65:159;;;:::i;:::-;;;1199:2401:3;;;;;;370724:7:160;5329:65:159;;;;;-1:-1:-1;5329:65:159;;196485:64:160;344922:44;;;:::i;:::-;196485:64;;196412;344922:44;;;;:::i;:::-;196412:64;;;6423:78:17;6466:24;;;;6353:1;6466:24;;1199:2401:3;;6353:1:17;6466:24;6333:80;6378:24;;;;6353:1;6378:24;;1199:2401:3;;6353:1:17;6378:24;6796:231:23;6897:13;1199:2401:3;;6796:231:23;-1:-1:-1;;1199:2401:3;;;;370832:13:160;1199:2401:3;;;;6897:13:23;1199:2401:3;;-1:-1:-1;1199:2401:3;6945:18:23;1199:2401:3;;;;-1:-1:-1;1199:2401:3;;370840:4:160;370832:13;15747:171:159;-1:-1:-1;;;;;;;;;;;1199:2401:3;-1:-1:-1;;;;;1199:2401:3;;15870:41:159;;;;;1199:2401:3;;-1:-1:-1;;;15870:41:159;;;;;1199:2401:3;;;;-1:-1:-1;;;;;1199:2401:3;;;;;;-1:-1:-1;;1199:2401:3;;;;;;-1:-1:-1;;15870:41:159;;;;;;;;15747:171;:::o;15870:41::-;-1:-1:-1;15870:41:159;;;:::i;13815:243::-;-1:-1:-1;;;;;;;;;;;1199:2401:3;;;-1:-1:-1;;;13977:74:159;;1199:2401:3;13977:74:159;;;1199:2401:3;;;-1:-1:-1;;;1199:2401:3;;;;;;;;;;13977:74:159;;1199:2401:3;;-1:-1:-1;;;;;1199:2401:3;13977:74:159;;;;;;;1199:2401:3;13977:74:159;;;13968:83;13815:243;:::o;13977:74::-;;;1199:2401:3;13977:74:159;;1199:2401:3;13977:74:159;;;;;;1199:2401:3;13977:74:159;;;:::i;:::-;;;1199:2401:3;;;;;13815:243:159;:::o;13977:74::-;;;-1:-1:-1;13977:74:159;;199848:293:160;;2482:22;;199917:64;;199848:293;2482:22;;199990:64;;199848:293;1199:2401:3;;11129:64:159;1199:2401:3;;;;;-1:-1:-1;;;;;;;;;;;1199:2401:3;;;-1:-1:-1;1199:2401:3;;;;;;;;;;11129:64:159;;;;;1199:2401:3;;;;;;;;;;11129:64:159;;;;;;;-1:-1:-1;11129:64:159;;;200063:71:160;199848:293;:::o;199990:64::-;344922:44;1199:2401:3;344922:44:160;;:::i;:::-;199990:64;;;;199917;344922:44;;;;:::i;:::-;199917:64;;;196694:299;5706:65:159;196694:299:160;-1:-1:-1;196694:299:160;2482:22;;196766:64;;196694:299;2482:22;;196839:64;;196694:299;-1:-1:-1;;;;;;;;;;;1199:2401:3;;;-1:-1:-1;;;5706:65:159;;;;;;1199:2401:3;;;;;;;;;;;;;;-1:-1:-1;;;;;;1199:2401:3;;;;;;;;;;;;;;-1:-1:-1;;;;;1199:2401:3;5706:65:159;;;;;;;-1:-1:-1;5706:65:159;;;5697:74;196694:299:160;:::o;196839:64::-;344922:44;;;:::i;:::-;196839:64;;196766;344922:44;;;;:::i;:::-;196766:64;;;12887:258:159;;13062:76;1199:2401:3;12887:258:159;-1:-1:-1;1199:2401:3;;;;;-1:-1:-1;;;;;;;;;;;1199:2401:3;;;;;;;;;;;;13062:76:159;;;;;1199:2401:3;;;;;;;;;13062:76:159;;;;;;;-1:-1:-1;13062:76:159;;;13053:85;12887:258;:::o","linkReferences":{},"immutableReferences":{"2048":[{"start":271,"length":32},{"start":386,"length":32},{"start":2305,"length":32}],"6572":[{"start":5168,"length":32},{"start":6170,"length":32}]}},"methodIdentifiers":{"ERC20_TOKEN()":"efc4c631","allowance(address,address)":"dd62ed3e","approve(address,bytes32,bytes)":"b32c1001","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","callbackUnwrap(uint256,bool)":"b820e6ce","decimals()":"313ce567","errorGetCounter()":"67a74a28","getErrorCodeForTransferId(uint256)":"a5184baf","isAccountRestricted(address)":"e6e09505","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,bytes32,bytes)":"7b7e0a5a","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,bytes32,bytes)":"9a094352","transferFrom(address,address,uint256)":"23b872dd","unwrap(uint64)":"dc412e83","unwrapRequests(uint256)":"d99c2a72","wrap(uint256)":"ea598cb0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"erc20_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxDecryptionDelay_\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AmountTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotTransferOrUnwrap\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorIndexInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorIndexIsNull\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxDecryptionDelayTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TFHESenderNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TotalNumberErrorCodesEqualToZero\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"placeholder\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"transferId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"Unwrap\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"UnwrapFailNotEnoughBalance\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"UnwrapFailTransferFail\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"Wrap\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ERC20_TOKEN\",\"outputs\":[{\"internalType\":\"contract IERC20Metadata\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"euint64\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"euint64\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"einput\",\"name\":\"encryptedAmount\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"inputProof\",\"type\":\"bytes\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"euint64\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"canUnwrap\",\"type\":\"bool\"}],\"name\":\"callbackUnwrap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"errorGetCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"transferId\",\"type\":\"uint256\"}],\"name\":\"getErrorCodeForTransferId\",\"outputs\":[{\"internalType\":\"euint8\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isAccountRestricted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isRestricted\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"einput\",\"name\":\"encryptedAmount\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"inputProof\",\"type\":\"bytes\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"euint64\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"euint64\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"einput\",\"name\":\"encryptedAmount\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"inputProof\",\"type\":\"bytes\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"unwrap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"}],\"name\":\"unwrapRequests\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"wrap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"params\":{\"owner\":\"Owner address.\",\"placeholder\":\"Placeholder.\",\"spender\":\"Spender address.\"}},\"Transfer(address,address,uint256)\":{\"params\":{\"from\":\"Sender address.\",\"to\":\"Receiver address.\",\"transferId\":\"If the implementation does not support error handling, it must be set to a default placeholder (typically equal to max(uint256). However, it must be set to a transferId if the implementation supports encrypted error handling.\"}},\"Unwrap(address,uint64)\":{\"params\":{\"account\":\"Address of the account that unwraps tokens.\",\"amount\":\"Amount to unwrap.\"}},\"UnwrapFailNotEnoughBalance(address,uint64)\":{\"params\":{\"account\":\"Address of the account that tried to unwrap.\",\"amount\":\"Amount to unwrap.\"}},\"UnwrapFailTransferFail(address,uint64)\":{\"params\":{\"account\":\"Address of the account that tried to unwrap.\",\"amount\":\"Amount to unwrap.\"}},\"Wrap(address,uint64)\":{\"params\":{\"account\":\"Address of the account that wraps tokens.\",\"amount\":\"Amount to wrap.\"}}},\"kind\":\"dev\",\"methods\":{\"callbackUnwrap(uint256,bool)\":{\"params\":{\"canUnwrap\":\"Whether it can be unwrapped.\",\"requestId\":\"Request id.\"}},\"constructor\":{\"params\":{\"erc20_\":\"ERC20 token address to be wrapped.\",\"maxDecryptionDelay_\":\"Maximum decryption delay allowed.\"}},\"getErrorCodeForTransferId(uint256)\":{\"params\":{\"transferId\":\"Transfer id. It can be read from the `Transfer` event.\"},\"returns\":{\"_0\":\"errorCode Encrypted error code.\"}},\"unwrap(uint64)\":{\"params\":{\"amount\":\"Amount to unwrap.\"}},\"wrap(uint256)\":{\"params\":{\"amount\":\"Amount to wrap.\"}}},\"title\":\"ConfidentialERC20Final\",\"version\":1},\"userdoc\":{\"errors\":{\"AmountTooHigh()\":[{\"notice\":\"Returned if the amount is greater than 2**64.\"}],\"CannotTransferOrUnwrap()\":[{\"notice\":\"Returned if user cannot transfer or mint.\"}],\"ErrorIndexInvalid()\":[{\"notice\":\"Returned if the error index is invalid.\"}],\"ErrorIndexIsNull()\":[{\"notice\":\"Returned if the error index is null.\"}],\"MaxDecryptionDelayTooHigh()\":[{\"notice\":\"Returned if the maximum decryption delay is higher than 1 day.\"}],\"TFHESenderNotAllowed()\":[{\"notice\":\"Returned when the `sender` is not allowed to access a value.\"}],\"TotalNumberErrorCodesEqualToZero()\":[{\"notice\":\"Returned if the total number of errors is equal to zero.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"notice\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}.\"},\"Transfer(address,address,uint256)\":{\"notice\":\"Emitted when tokens are moved from one account (`from`) to another (`to`).\"},\"Unwrap(address,uint64)\":{\"notice\":\"Emitted when token is unwrapped.\"},\"UnwrapFailNotEnoughBalance(address,uint64)\":{\"notice\":\"Emitted if unwrap fails due to lack of funds.\"},\"UnwrapFailTransferFail(address,uint64)\":{\"notice\":\"Emitted if unwrap fails due to fail transfer.\"},\"Wrap(address,uint64)\":{\"notice\":\"Emitted when token is wrapped.\"}},\"kind\":\"user\",\"methods\":{\"ERC20_TOKEN()\":{\"notice\":\"ERC20 token that is wrapped.\"},\"allowance(address,address)\":{\"notice\":\"See {IConfidentialERC20-allowance}.\"},\"approve(address,bytes32,bytes)\":{\"notice\":\"See {IConfidentialERC20-approve}.\"},\"approve(address,uint256)\":{\"notice\":\"See {IConfidentialERC20-approve}.\"},\"balanceOf(address)\":{\"notice\":\"See {IConfidentialERC20-balanceOf}.\"},\"callbackUnwrap(uint256,bool)\":{\"notice\":\"Callback function for the gateway.\"},\"constructor\":{\"notice\":\"Initializes the contract with the ERC20 token address and max decryption delay.\"},\"decimals()\":{\"notice\":\"See {IConfidentialERC20-decimals}.\"},\"getErrorCodeForTransferId(uint256)\":{\"notice\":\"Return the error for a transfer id.\"},\"isAccountRestricted(address)\":{\"notice\":\"Tracks whether the account can move funds.\"},\"name()\":{\"notice\":\"See {IConfidentialERC20-name}.\"},\"symbol()\":{\"notice\":\"See {IConfidentialERC20-symbol}.\"},\"totalSupply()\":{\"notice\":\"See {IConfidentialERC20-totalSupply}.\"},\"transfer(address,bytes32,bytes)\":{\"notice\":\"See {IConfidentialERC20-transfer}.\"},\"transferFrom(address,address,bytes32,bytes)\":{\"notice\":\"See {IConfidentialERC20-transferFrom}.\"},\"unwrap(uint64)\":{\"notice\":\"Unwrap ConfidentialERC20 tokens to standard ERC20 tokens.\"},\"unwrapRequests(uint256)\":{\"notice\":\"Tracks the unwrap request to a unique request id.\"},\"wrap(uint256)\":{\"notice\":\"Wrap ERC20 tokens to an encrypted format.\"}},\"notice\":\"A concrete contract combining wrapping/unwrapping functionality with encrypted error support.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ERC20Encryption/ConfidentialERC20WithErrorsWrapped.sol\":\"ConfidentialERC20WithErrorsWrapped\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@chainlink/=lib/chainlink/\",\":@ensdomains/=lib/v4-core/node_modules/@ensdomains/\",\":@httpz-contracts/=lib/httpz-contracts/contracts/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/universal-router/=lib/universal-router.git/\",\":@uniswap/v2-core/=lib/v2-core/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/\",\":@uniswap/v4-core/=lib/v4-core/\",\":@uniswap/v4-periphery/=lib/v4-periphery/\",\":chainlink/=lib/chainlink/\",\":ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":fhevm-contracts/=node_modules/fhevm-contracts/\",\":fhevm-core-contracts/=node_modules/fhevm-core-contracts/\",\":fhevm/=node_modules/fhevm/\",\":forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":httpz-contracts/=lib/httpz-contracts/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":permit2/=lib/permit2/\",\":solmate/=lib/permit2/lib/solmate/\",\":universal-router.git/=lib/universal-router.git/\",\":v2-core/=lib/v2-core/contracts/\",\":v3-core/=lib/v3-core/\",\":v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/\",\":v4-core/=lib/v4-core/src/\",\":v4-periphery/=lib/v4-periphery/\"],\"viaIR\":true},\"sources\":{\"contracts/ERC20Encryption/ConfidentialERC20Base.sol\":{\"keccak256\":\"0xa622900eae5b1f80c956ec16afec6e4ef6af141d7973b6d52167a86ae988272c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://45dcc2e65f2b601bf132eaae21b1ed2e5dd67c9644e6edcf856ea3274444b04e\",\"dweb:/ipfs/QmR4XvcnxE3JBfPNpLcyvPssdBqtMTd76gm6BWczaSMi9D\"]},\"contracts/ERC20Encryption/ConfidentialERC20WithErrorsWrapped.sol\":{\"keccak256\":\"0x6780cf12626fab34cbe430892929cb2827f948ed6fb613dfb55dda036ced8697\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc3c67659beeff5d21d110cd711c731a52a88293bf120b582f72f2fe4da7bf2d\",\"dweb:/ipfs/QmNbQ9EehknmU6Fui2QpnTSTj7Ft9sbWc95nz3x62fe2Jh\"]},\"contracts/ERC20Encryption/CustomConfidentialERC20WithErrors.sol\":{\"keccak256\":\"0x48800ae20f96fc6ff85e8428faf7c314eceefa7a1349fc3f42479ba82d658431\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://6ab1d91f86b98bcf65f7af820157a9d7cd923f51e60df7897c1e9858f3e3a433\",\"dweb:/ipfs/QmUt2mtzHAHDp2bvkSiXpZdM9okz4mJKFTHjU2YwPjxvxd\"]},\"contracts/ERC20Encryption/CustomConfidentialERC20Wrapped.sol\":{\"keccak256\":\"0xe3f6e6a47070a54952ac2dd5e008c7997322a16e72f4114a2ec48f45e3bc8cea\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://8b47026e8a91b2a0212d621e0b2a8452e7402636f7fbbfe857d8cb6809b9310d\",\"dweb:/ipfs/QmPYT4Q68jt5Yac6x2tdWHrDcBnjLdkY5JqPnLcCpswQxo\"]},\"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol\":{\"keccak256\":\"0x8b45e5bb2fd9212f99e61b4d25b9c9d5ed7cb1a9a684aac34f752c568ef16c76\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://1ca71bb5bfbb2f8a0779f8394baeea01680619637abddb572017d05d96862591\",\"dweb:/ipfs/QmPCzGBE1m6WtDZxrVL5jzkduNaS7fjtYovUWdnzN34qjh\"]},\"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol\":{\"keccak256\":\"0xe016a085f72ca3cf6d78ec1cb2182a398106cb7d425e984776a9caab0bad2569\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://3e79dc5075469d660908f5f8b6d0c863b14459d60a0b06fb786d58de8cf30a94\",\"dweb:/ipfs/QmePGRGtoWBnQ8T6ZRyZgiwVh4r67kcmWejwKgjyYN4AAY\"]},\"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20Wrapped.sol\":{\"keccak256\":\"0x72c5379fb2a7e1701a4686f60831bfc474350a42f0660aea815a5ce910cba38b\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://118fac79c89e142247e94763a1ca1235c307a67b37d68fa45d94125bc85c2cb8\",\"dweb:/ipfs/QmcE9P74NQQKnmW9vdtGb8KrWgJWH6K3bNTdrMxrPi716c\"]},\"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol\":{\"keccak256\":\"0xfe322c8f9a8e4fba881715901a5bafd2efa23394ecbc9ec84282818baeff0a07\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://13dba831528dd16408b7abab23eac0664a2a3e5ecbfe5e58e6e321cf2921668a\",\"dweb:/ipfs/QmPq4YeugbayWfeBJR8H7s4jHsnZkACQX2xbdNQ4sdvZrk\"]},\"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol\":{\"keccak256\":\"0xecc6289a9791bef254911393b51d2bfbddc5650ede7fbe7b5cc2b8d3eb01d7a6\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://7463278a20bc5d7fd8b7ec2cb8e592b2d1e0afcf8b59d35d6929d18661d4b38c\",\"dweb:/ipfs/QmTKPoABwNDmK7g7vkti1AkTpkUBHu3iX3zsXQsEuSiqBM\"]},\"lib/httpz-contracts/contracts/utils/EncryptedErrors.sol\":{\"keccak256\":\"0x0b8d08f392884add1af672018359e8980ee0b5e1662fe5e36eb31f053d1d4505\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://2903dd49a88b36aba2e8a45548b6a68d203887356ebdf452b10e0148954ba1a5\",\"dweb:/ipfs/QmTRuP4QXagoV2cLr2ctzFtNK7FK1cDXMYm4feMoMsYoWG\"]},\"lib/httpz-contracts/contracts/utils/TFHEErrors.sol\":{\"keccak256\":\"0x5fef7c2d7d4449d724a2800b37dfcc61e2b635f2747378ce222b9187425f2d13\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://7c2ef113faaec2d74c8d958f80687d0b676082d6231720917aaa8aa934d689a3\",\"dweb:/ipfs/QmNn474JDQ5zvVDwEuicJs6Xq8YEXWGZLoW4KeTWDVG31f\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol\":{\"keccak256\":\"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0\",\"dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x4ea01544758fd2c7045961904686bfe232d2220a04ecaa2d6b08dac17827febf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fabe6bef5167ae741dd8c22d7f81d3f9120bd61b290762a2e8f176712567d329\",\"dweb:/ipfs/QmSnEitJ6xmf1SSAUeZozD7Gx7h8bNnX3a1ZBzqeivsvVg\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol\":{\"keccak256\":\"0x534bf5c25d6003a8ce50b400d20fa460c03169ad7baa90d47a912917c36dfe2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc0cc39c40ea23d3c46e8517e19ebdd877719d3159fa032f2a91802cdd205c79\",\"dweb:/ipfs/QmSoNh7HTkD4TJcBkBKSGSPMMpLUZKE7s9f2G6mjdaJywg\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889\",\"dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/fhevm/config/ZamaFHEVMConfig.sol\":{\"keccak256\":\"0x41782f4c707b81399916544fa2e7be94a695fa4ba468542732d29d3e383c0315\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://45a95a55c4bbb3418c2133cba6ed21a9444bb4e38d38b32cc707b7493cece2ca\",\"dweb:/ipfs/QmVU8EKmZgscdM43RgXD4EgbVMhQxBusTmBren3pbn1pUW\"]},\"node_modules/fhevm/config/ZamaGatewayConfig.sol\":{\"keccak256\":\"0xbed8bc18db61ffeb5ee31f577ab636d8563df27554e0ca66c53534f0bd82ffbd\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://53601967f9e914b25cf91a325b100d5b3cbb9aec92d12443062a51fe5a578b7d\",\"dweb:/ipfs/QmNbviWrrPrx3snoLWqW5GyBnH99tSX3iYXEJ5ezk9XbtL\"]},\"node_modules/fhevm/gateway/GatewayCaller.sol\":{\"keccak256\":\"0xd19fd7715f0c5b479bf0cd8e3108cc8da7deae2d4fc7fb5ab089ebf2d76a0652\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://6386c509464cefe5a41903ca837da46a21b8042d13ccde656158efc48cd70ea8\",\"dweb:/ipfs/QmUn7C6aZwKmEmKsphBshBezXXGZtLMyfaeZAyuZoRsBWU\"]},\"node_modules/fhevm/gateway/lib/Gateway.sol\":{\"keccak256\":\"0x9585a649e3001a4b8768ab6e2597b416f680bcc537309cd50b60e023e9791318\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://a1b055bfb067cc247d4bd60b5f8348f667cbe79717a5753cd6412955277345d0\",\"dweb:/ipfs/QmTveBaQg9GUdtrrxcR4RsiyAEmoEKGL4gn6E1gThR1ph5\"]},\"node_modules/fhevm/lib/Impl.sol\":{\"keccak256\":\"0x89d4968cd956a8931f1a8a177b3bef1c6cf88a03665083db74430add50b88f21\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://aaaef2c82d56dacfb08946842ea1ce26757d13f3251de62fa79222232dfcb43c\",\"dweb:/ipfs/QmQ6QZPxJw9jb3qjRYCX7pMQVoYogjTsYgmdEnB3EnwFRy\"]},\"node_modules/fhevm/lib/TFHE.sol\":{\"keccak256\":\"0x221799c8332f83ab65a0b71746409f0c2c89f1cd8d9ba4091d967c667e1df734\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://2dba387fbc612a2ee64063b0ee6c27304b3944423d11045acc50abd84577fb5f\",\"dweb:/ipfs/QmThptDGnpd8PuncFk1rnQoCzEqwUED622yC9xZgFhwY59\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"erc20_","type":"address"},{"internalType":"uint256","name":"maxDecryptionDelay_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AmountTooHigh"},{"inputs":[],"type":"error","name":"CannotTransferOrUnwrap"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[],"type":"error","name":"ErrorIndexInvalid"},{"inputs":[],"type":"error","name":"ErrorIndexIsNull"},{"inputs":[],"type":"error","name":"MaxDecryptionDelayTooHigh"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"TFHESenderNotAllowed"},{"inputs":[],"type":"error","name":"TotalNumberErrorCodesEqualToZero"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"placeholder","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"transferId","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint64","name":"amount","type":"uint64","indexed":false}],"type":"event","name":"Unwrap","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false},{"internalType":"uint64","name":"amount","type":"uint64","indexed":false}],"type":"event","name":"UnwrapFailNotEnoughBalance","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false},{"internalType":"uint64","name":"amount","type":"uint64","indexed":false}],"type":"event","name":"UnwrapFailTransferFail","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint64","name":"amount","type":"uint64","indexed":false}],"type":"event","name":"Wrap","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"ERC20_TOKEN","outputs":[{"internalType":"contract IERC20Metadata","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"euint64","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"euint64","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"einput","name":"encryptedAmount","type":"bytes32"},{"internalType":"bytes","name":"inputProof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"euint64","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"},{"internalType":"bool","name":"canUnwrap","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"callbackUnwrap"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"errorGetCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"transferId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"getErrorCodeForTransferId","outputs":[{"internalType":"euint8","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isAccountRestricted","outputs":[{"internalType":"bool","name":"isRestricted","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"einput","name":"encryptedAmount","type":"bytes32"},{"internalType":"bytes","name":"inputProof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"euint64","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"euint64","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"einput","name":"encryptedAmount","type":"bytes32"},{"internalType":"bytes","name":"inputProof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"amount","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"unwrap"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"}],"stateMutability":"view","type":"function","name":"unwrapRequests","outputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint64","name":"amount","type":"uint64"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"wrap"}],"devdoc":{"kind":"dev","methods":{"callbackUnwrap(uint256,bool)":{"params":{"canUnwrap":"Whether it can be unwrapped.","requestId":"Request id."}},"constructor":{"params":{"erc20_":"ERC20 token address to be wrapped.","maxDecryptionDelay_":"Maximum decryption delay allowed."}},"getErrorCodeForTransferId(uint256)":{"params":{"transferId":"Transfer id. It can be read from the `Transfer` event."},"returns":{"_0":"errorCode Encrypted error code."}},"unwrap(uint64)":{"params":{"amount":"Amount to unwrap."}},"wrap(uint256)":{"params":{"amount":"Amount to wrap."}}},"version":1},"userdoc":{"kind":"user","methods":{"ERC20_TOKEN()":{"notice":"ERC20 token that is wrapped."},"allowance(address,address)":{"notice":"See {IConfidentialERC20-allowance}."},"approve(address,bytes32,bytes)":{"notice":"See {IConfidentialERC20-approve}."},"approve(address,uint256)":{"notice":"See {IConfidentialERC20-approve}."},"balanceOf(address)":{"notice":"See {IConfidentialERC20-balanceOf}."},"callbackUnwrap(uint256,bool)":{"notice":"Callback function for the gateway."},"constructor":{"notice":"Initializes the contract with the ERC20 token address and max decryption delay."},"decimals()":{"notice":"See {IConfidentialERC20-decimals}."},"getErrorCodeForTransferId(uint256)":{"notice":"Return the error for a transfer id."},"isAccountRestricted(address)":{"notice":"Tracks whether the account can move funds."},"name()":{"notice":"See {IConfidentialERC20-name}."},"symbol()":{"notice":"See {IConfidentialERC20-symbol}."},"totalSupply()":{"notice":"See {IConfidentialERC20-totalSupply}."},"transfer(address,bytes32,bytes)":{"notice":"See {IConfidentialERC20-transfer}."},"transferFrom(address,address,bytes32,bytes)":{"notice":"See {IConfidentialERC20-transferFrom}."},"unwrap(uint64)":{"notice":"Unwrap ConfidentialERC20 tokens to standard ERC20 tokens."},"unwrapRequests(uint256)":{"notice":"Tracks the unwrap request to a unique request id."},"wrap(uint256)":{"notice":"Wrap ERC20 tokens to an encrypted format."}},"version":1}},"settings":{"remappings":["@chainlink/=lib/chainlink/","@ensdomains/=lib/v4-core/node_modules/@ensdomains/","@httpz-contracts/=lib/httpz-contracts/contracts/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@uniswap/universal-router/=lib/universal-router.git/","@uniswap/v2-core/=lib/v2-core/","@uniswap/v3-core/=lib/v3-core/","@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/","@uniswap/v4-core/=lib/v4-core/","@uniswap/v4-periphery/=lib/v4-periphery/","chainlink/=lib/chainlink/","ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","eth-gas-reporter/=node_modules/eth-gas-reporter/","fhevm-contracts/=node_modules/fhevm-contracts/","fhevm-core-contracts/=node_modules/fhevm-core-contracts/","fhevm/=node_modules/fhevm/","forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","httpz-contracts/=lib/httpz-contracts/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","permit2/=lib/permit2/","solmate/=lib/permit2/lib/solmate/","universal-router.git/=lib/universal-router.git/","v2-core/=lib/v2-core/contracts/","v3-core/=lib/v3-core/","v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/","v4-core/=lib/v4-core/src/","v4-periphery/=lib/v4-periphery/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/ERC20Encryption/ConfidentialERC20WithErrorsWrapped.sol":"ConfidentialERC20WithErrorsWrapped"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/ERC20Encryption/ConfidentialERC20Base.sol":{"keccak256":"0xa622900eae5b1f80c956ec16afec6e4ef6af141d7973b6d52167a86ae988272c","urls":["bzz-raw://45dcc2e65f2b601bf132eaae21b1ed2e5dd67c9644e6edcf856ea3274444b04e","dweb:/ipfs/QmR4XvcnxE3JBfPNpLcyvPssdBqtMTd76gm6BWczaSMi9D"],"license":"MIT"},"contracts/ERC20Encryption/ConfidentialERC20WithErrorsWrapped.sol":{"keccak256":"0x6780cf12626fab34cbe430892929cb2827f948ed6fb613dfb55dda036ced8697","urls":["bzz-raw://dc3c67659beeff5d21d110cd711c731a52a88293bf120b582f72f2fe4da7bf2d","dweb:/ipfs/QmNbQ9EehknmU6Fui2QpnTSTj7Ft9sbWc95nz3x62fe2Jh"],"license":"MIT"},"contracts/ERC20Encryption/CustomConfidentialERC20WithErrors.sol":{"keccak256":"0x48800ae20f96fc6ff85e8428faf7c314eceefa7a1349fc3f42479ba82d658431","urls":["bzz-raw://6ab1d91f86b98bcf65f7af820157a9d7cd923f51e60df7897c1e9858f3e3a433","dweb:/ipfs/QmUt2mtzHAHDp2bvkSiXpZdM9okz4mJKFTHjU2YwPjxvxd"],"license":"BSD-3-Clause-Clear"},"contracts/ERC20Encryption/CustomConfidentialERC20Wrapped.sol":{"keccak256":"0xe3f6e6a47070a54952ac2dd5e008c7997322a16e72f4114a2ec48f45e3bc8cea","urls":["bzz-raw://8b47026e8a91b2a0212d621e0b2a8452e7402636f7fbbfe857d8cb6809b9310d","dweb:/ipfs/QmPYT4Q68jt5Yac6x2tdWHrDcBnjLdkY5JqPnLcCpswQxo"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol":{"keccak256":"0x8b45e5bb2fd9212f99e61b4d25b9c9d5ed7cb1a9a684aac34f752c568ef16c76","urls":["bzz-raw://1ca71bb5bfbb2f8a0779f8394baeea01680619637abddb572017d05d96862591","dweb:/ipfs/QmPCzGBE1m6WtDZxrVL5jzkduNaS7fjtYovUWdnzN34qjh"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol":{"keccak256":"0xe016a085f72ca3cf6d78ec1cb2182a398106cb7d425e984776a9caab0bad2569","urls":["bzz-raw://3e79dc5075469d660908f5f8b6d0c863b14459d60a0b06fb786d58de8cf30a94","dweb:/ipfs/QmePGRGtoWBnQ8T6ZRyZgiwVh4r67kcmWejwKgjyYN4AAY"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20Wrapped.sol":{"keccak256":"0x72c5379fb2a7e1701a4686f60831bfc474350a42f0660aea815a5ce910cba38b","urls":["bzz-raw://118fac79c89e142247e94763a1ca1235c307a67b37d68fa45d94125bc85c2cb8","dweb:/ipfs/QmcE9P74NQQKnmW9vdtGb8KrWgJWH6K3bNTdrMxrPi716c"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol":{"keccak256":"0xfe322c8f9a8e4fba881715901a5bafd2efa23394ecbc9ec84282818baeff0a07","urls":["bzz-raw://13dba831528dd16408b7abab23eac0664a2a3e5ecbfe5e58e6e321cf2921668a","dweb:/ipfs/QmPq4YeugbayWfeBJR8H7s4jHsnZkACQX2xbdNQ4sdvZrk"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol":{"keccak256":"0xecc6289a9791bef254911393b51d2bfbddc5650ede7fbe7b5cc2b8d3eb01d7a6","urls":["bzz-raw://7463278a20bc5d7fd8b7ec2cb8e592b2d1e0afcf8b59d35d6929d18661d4b38c","dweb:/ipfs/QmTKPoABwNDmK7g7vkti1AkTpkUBHu3iX3zsXQsEuSiqBM"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/utils/EncryptedErrors.sol":{"keccak256":"0x0b8d08f392884add1af672018359e8980ee0b5e1662fe5e36eb31f053d1d4505","urls":["bzz-raw://2903dd49a88b36aba2e8a45548b6a68d203887356ebdf452b10e0148954ba1a5","dweb:/ipfs/QmTRuP4QXagoV2cLr2ctzFtNK7FK1cDXMYm4feMoMsYoWG"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/utils/TFHEErrors.sol":{"keccak256":"0x5fef7c2d7d4449d724a2800b37dfcc61e2b635f2747378ce222b9187425f2d13","urls":["bzz-raw://7c2ef113faaec2d74c8d958f80687d0b676082d6231720917aaa8aa934d689a3","dweb:/ipfs/QmNn474JDQ5zvVDwEuicJs6Xq8YEXWGZLoW4KeTWDVG31f"],"license":"BSD-3-Clause-Clear"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol":{"keccak256":"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c","urls":["bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0","dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330","urls":["bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf","dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x4ea01544758fd2c7045961904686bfe232d2220a04ecaa2d6b08dac17827febf","urls":["bzz-raw://fabe6bef5167ae741dd8c22d7f81d3f9120bd61b290762a2e8f176712567d329","dweb:/ipfs/QmSnEitJ6xmf1SSAUeZozD7Gx7h8bNnX3a1ZBzqeivsvVg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol":{"keccak256":"0x534bf5c25d6003a8ce50b400d20fa460c03169ad7baa90d47a912917c36dfe2b","urls":["bzz-raw://cc0cc39c40ea23d3c46e8517e19ebdd877719d3159fa032f2a91802cdd205c79","dweb:/ipfs/QmSoNh7HTkD4TJcBkBKSGSPMMpLUZKE7s9f2G6mjdaJywg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1","urls":["bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889","dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"node_modules/fhevm/config/ZamaFHEVMConfig.sol":{"keccak256":"0x41782f4c707b81399916544fa2e7be94a695fa4ba468542732d29d3e383c0315","urls":["bzz-raw://45a95a55c4bbb3418c2133cba6ed21a9444bb4e38d38b32cc707b7493cece2ca","dweb:/ipfs/QmVU8EKmZgscdM43RgXD4EgbVMhQxBusTmBren3pbn1pUW"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/config/ZamaGatewayConfig.sol":{"keccak256":"0xbed8bc18db61ffeb5ee31f577ab636d8563df27554e0ca66c53534f0bd82ffbd","urls":["bzz-raw://53601967f9e914b25cf91a325b100d5b3cbb9aec92d12443062a51fe5a578b7d","dweb:/ipfs/QmNbviWrrPrx3snoLWqW5GyBnH99tSX3iYXEJ5ezk9XbtL"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/gateway/GatewayCaller.sol":{"keccak256":"0xd19fd7715f0c5b479bf0cd8e3108cc8da7deae2d4fc7fb5ab089ebf2d76a0652","urls":["bzz-raw://6386c509464cefe5a41903ca837da46a21b8042d13ccde656158efc48cd70ea8","dweb:/ipfs/QmUn7C6aZwKmEmKsphBshBezXXGZtLMyfaeZAyuZoRsBWU"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/gateway/lib/Gateway.sol":{"keccak256":"0x9585a649e3001a4b8768ab6e2597b416f680bcc537309cd50b60e023e9791318","urls":["bzz-raw://a1b055bfb067cc247d4bd60b5f8348f667cbe79717a5753cd6412955277345d0","dweb:/ipfs/QmTveBaQg9GUdtrrxcR4RsiyAEmoEKGL4gn6E1gThR1ph5"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/lib/Impl.sol":{"keccak256":"0x89d4968cd956a8931f1a8a177b3bef1c6cf88a03665083db74430add50b88f21","urls":["bzz-raw://aaaef2c82d56dacfb08946842ea1ce26757d13f3251de62fa79222232dfcb43c","dweb:/ipfs/QmQ6QZPxJw9jb3qjRYCX7pMQVoYogjTsYgmdEnB3EnwFRy"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/lib/TFHE.sol":{"keccak256":"0x221799c8332f83ab65a0b71746409f0c2c89f1cd8d9ba4091d967c667e1df734","urls":["bzz-raw://2dba387fbc612a2ee64063b0ee6c27304b3944423d11045acc50abd84577fb5f","dweb:/ipfs/QmThptDGnpd8PuncFk1rnQoCzEqwUED622yC9xZgFhwY59"],"license":"BSD-3-Clause-Clear"}},"version":1},"id":3} \ No newline at end of file diff --git a/out/ConfidentialIndexFund.sol/ConfidentialIndexFund.json b/out/ConfidentialIndexFund.sol/ConfidentialIndexFund.json index e280124..405717d 100644 --- a/out/ConfidentialIndexFund.sol/ConfidentialIndexFund.json +++ b/out/ConfidentialIndexFund.sol/ConfidentialIndexFund.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_indexTokens","type":"address[]","internalType":"address[]"},{"name":"_stablecoin","type":"address","internalType":"address"},{"name":"_decypheredStablecoin","type":"address","internalType":"address"},{"name":"_indexFundFactory","type":"address","internalType":"address"},{"name":"_indexFundToken","type":"address","internalType":"address"},{"name":"_marketDataFetcher","type":"address","internalType":"address"},{"name":"_swapsManagerProxy","type":"address","internalType":"address"},{"name":"_initialSharePrice","type":"uint256","internalType":"uint256"},{"name":"_poolKeys","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"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"burnShares","inputs":[{"name":"encryptedAmount","type":"bytes32","internalType":"einput"},{"name":"encryptedRedeemIndexTokens","type":"bytes32","internalType":"einput"},{"name":"inputProof","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"burnSharesCallback","inputs":[{"name":"requestID","type":"uint256","internalType":"uint256"},{"name":"transferErrorCode","type":"uint8","internalType":"uint8"},{"name":"decryptedAmount","type":"uint64","internalType":"uint64"},{"name":"redeemIndexTokens","type":"bool","internalType":"bool"},{"name":"hasUserEnoughSharesToBurn","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"computeShareValue","inputs":[],"outputs":[{"name":"shareValue","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getIndexFundToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IndexFundToken"}],"stateMutability":"view"},{"type":"function","name":"getIndexTokens","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getStablecoin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ConfidentialERC20WithErrorsWrapped"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mintShares","inputs":[{"name":"encryptedAmount","type":"bytes32","internalType":"einput"},{"name":"inputProof","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mintSharesCallback","inputs":[{"name":"requestID","type":"uint256","internalType":"uint256"},{"name":"transferErrorCode","type":"uint8","internalType":"uint8"},{"name":"decryptedAmount","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sendFeesToProtocolOwner","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"BurnSwapsPerformed","inputs":[],"anonymous":false},{"type":"event","name":"FeeCollected","inputs":[{"name":"feeAmount","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"IndexTokensRedeemed","inputs":[],"anonymous":false},{"type":"event","name":"MintSwapsPerformed","inputs":[],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SharesBurned","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SharesMinted","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AmountToSwapTooBig","inputs":[{"name":"amountToSwap","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InsufficientAllowance","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SharesToBurnAmountTooBig","inputs":[{"name":"amountToBurn","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SharesToMintAmountTooBig","inputs":[{"name":"amountToMint","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"TransferFailed","inputs":[]},{"type":"error","name":"UserShareBalanceTooSmall","inputs":[{"name":"user","type":"address","internalType":"address"},{"name":"amountToBurn","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x61014080604052346105ff57613028803803809161001d8285610743565b8339810190610120818303126105ff5780516001600160401b0381116105ff5781019082601f830112156105ff5781519061005782610766565b926100656040519485610743565b828452602084016020819460051b830101918683116105ff57602001905b828210610710575050506100996020820161077d565b916100a66040830161077d565b926100b36060840161077d565b936100c06080850161077d565b906100cd60a0860161077d565b926100da60c0870161077d565b60e087015161010088015190979196916001600160401b0382116105ff5701988a601f8b0112156105ff5789519a6101118c610766565b9a61011f6040519c8d610743565b8c8c5260208c0191602060a0849f02830101918183116105ff57602001925b8284106106775750505050600180555f606060405161015c81610728565b8281528260208201528260408201520152739d6891a6240d6130c54ae243d8005063d05fe14b606060405161019081610728565b73fee8407e2f5e3ee68ad77cae98c434e637f516e580825273687408ab54661ba0b4aef3a44156c616c6955e076020830181905273fb03be574d14c256d56f09a198b586bdfc0a9de26040840181905293909201939093527fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60080546001600160a01b031990811690941790557fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea6018054841690911790557fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea6028054831690911790557fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60380548216739d6891a6240d6130c54ae243d8005063d05fe14b1790557f93ab6e17f2c461cce6ea5d4ec117e51dda77a64affc2b2c05f8cd440def0e70080549091167333347831500f1e73f0cccbb95c9f86b94d7b112317905551906001600160401b0382116105b9576801000000000000000082116105b957600c5482600c55808310610633575b50600c5f5260205f205f5b838110610616578c8c600460208e8e8e8e8e8e8e60018060a01b03166101005260018060a01b0316610120528460e05260018060a01b031660805260018060a01b031660a05260c052600e5560405192838092638da5cb5b60e01b825260018060a01b03165afa90811561060b575f916105cd575b50601080546001600160a01b0319166001600160a01b039290921691909117905551906801000000000000000082116105b957600d5482600d55808310610539575b5090600d5f5260205f205f925b8284106104a0576040516128969081610792823960805181818161019201528181610c93015281816114cf0152818161195101526119a2015260a05181818161040101528181610ac901528181610e2301526119c6015260c05181818161052e01528181610f3d0152818161110b0152611162015260e05181610b1e0152610100518181816106220152818161093501528181610a1e01528181610a6a01528181610f070152611d3a0152610120518161206a0152f35b8051805183546001600160a01b039182166001600160a01b0319918216178555602080840151600180880180546040880151606089015160b81b62ffffff60b81b1662ffffff60a01b60a09290921b919091169488166001600160d01b031990921691909117939093179290921790915560809094015160028701805491909416921691909117909155940193600390920191016103e9565b806003029060038204036105a557826003026003810484036105a557600d5f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb591820191015b81811061058d57506103dc565b805f600392555f60018201555f600282015501610580565b634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52604160045260245ffd5b90506020813d602011610603575b816105e860209383610743565b810103126105ff576105f99061077d565b8361039a565b5f80fd5b3d91506105db565b6040513d5f823e3d90fd5b82516001600160a01b031681830155602090920191600101610325565b600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c79081019083015b81811061066c575061031a565b5f815560010161065f565b60a0848303126105ff576040519060a082016001600160401b038111838210176105b9576040526106a78561077d565b82526106b56020860161077d565b6020830152604085015162ffffff811681036105ff57604083015260608501518060020b81036105ff5760608301526080850151906001600160a01b03821682036105ff5782602092608060a095015281520193019261013e565b6020809161071d8461077d565b815201910190610083565b608081019081106001600160401b038211176105b957604052565b601f909101601f19168101906001600160401b038211908210176105b957604052565b6001600160401b0381116105b95760051b60200190565b51906001600160a01b03821682036105ff5756fe6080806040526004361015610012575f80fd5b5f905f3560e01c90816301ffc9a7146121675750806305d7d94b14611ffd578063248a9ca314611fcb5780632f2ff15d14611f9a57806335c995ec14611cca57806336568abe14611c9157806338f250ec14611c1b5780634148fc4f1461198057806375696e7f1461193b5780639134867c1461138c57806391d148541461135057806397771de514610980578063a217fddf14610964578063b6f673121461091f578063d547741f146108e65763fcb74a45146100ce575f80fd5b346108e35760a03660031901126108e3576100e761220d565b6100ef61221d565b906064359182151583036108df57608435918215928315036108db5761011361247b565b5f80516020612821833981519152546001600160a01b031633036108db5760ff166108cc576001600160401b0316916001600160401b0383116108b85760043584526009602052610170610177604086206040519283809261237f565b0382612233565b6001600160a01b0390610189906122eb565b5116916108a1577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169184833b1561089d5785604051634edf56a160e11b81528660048201528181602481838a5af180156106e857610888575b505084337fdb79cc492679ef2624944d6ed3cdbad5b974b5550de330ae18922f2944eec78a8880a385805b600c5481101561088057610229816123bf565b905460039190911b1c6001600160a01b03168015610838576040516370a0823160e01b8152306004820152602081602481855afa801561082d57899185916107f3575b5090610277916123f0565b6040516318160ddd60e01b8152906020826004818c5afa9182156107e8576102b1926001600160401b039187916107ba575b501690612411565b861561034f57906044602092604051958693849263a9059cbb60e01b84528a600485015260248401525af191821561034457600192610318575b507ee2d681c483528119b71f74ebcd6ad9dd9ca7fd71ea2245aa2362e27d3f2eb68880a15b018690610216565b6103389060203d811161033d575b6103308183612233565b810190612268565b6102eb565b503d610326565b6040513d8a823e3d90fd5b918094935061035e91506123bf565b60018060a01b0391549060031b1c1660125461ff0061038260ff8360081c1661244e565b60081b169061ff001916176012558089526014602052604089206103a7838254612330565b9055601254600260ff8260081c16146103c7575b50505090600190610310565b61ff0019166012558089526014602052604089205491816107545760125b604051630681320d60e51b8152600481018490526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610749578c91610718575b506009810290808204600914901517156106f35790610467600a6104608761046d956123f0565b0491612403565b90612411565b926001600160801b03811161070757506104868561245f565b5092603c4201918242116106f3578b949392916001600160801b03809260405196630abff6dd60e11b885260018060a01b038154166004890152600181015460018060a01b03811660248a015262ffffff8160a01c1660448a015260b81c60020b6064890152600260018060a01b039101541660848801521660a48601521660c484015260e48301526001610104830152610124820152602081610144818560018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19081156106e85782916106b2575b506105699192612330565b917f875fc5b1c93e96a85172e0d2b74fcdb6f314c3460e99e6a7da8743bc8b75e37c8280a18261059d575b91905f806103bb565b5f8051602061284183398151915254604051631ce2e8d760e31b815260048101859052600560f81b60248201529260209184916044918391906001600160a01b03165af191821561034457889261067a575b506040516323b872dd60e01b815230600482015233602482015260448101929092526020826064818b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19182156103445760019261065c575b50879150610594565b6106739060203d811161033d576103308183612233565b505f610653565b91506020823d82116106aa575b8161069460209383612233565b810103126106a65790519060206105ef565b5f80fd5b3d9150610687565b9150506020813d82116106e0575b816106cd60209383612233565b810103126106a65751879061056961055e565b3d91506106c0565b6040513d84823e3d90fd5b634e487b7160e01b8c52601160045260248cfd5b628af7f560e11b8b5260045260248afd5b90506020813d8211610741575b8161073260209383612233565b810103126106a657515f610439565b3d9150610725565b6040513d8e823e3d90fd5b60405163313ce56760e01b8152602081600481865afa80156107af5760ff918c91610781575b50166103e5565b6107a2915060203d81116107a8575b61079a8183612233565b8101906123d7565b5f61077a565b503d610790565b6040513d8d823e3d90fd5b6107db915060203d81116107e1575b6107d38183612233565b81019061242f565b5f6102a9565b503d6107c9565b6040513d87823e3d90fd5b945050506020833d8211610825575b8161080f60209383612233565b810103126106a657610277888a9451909161026c565b3d9150610802565b6040513d86823e3d90fd5b61084288476123f0565b6040516318160ddd60e01b8152906020826004818c5afa9182156107e85761087b926001600160401b039187916107ba57501690612411565b6102b1565b506001805580f35b8161089291612233565b61089d57855f6101eb565b8580fd5b6044848484637655665160e11b8352600452602452fd5b632dd1ea2160e11b84526004839052602484fd5b6312171d8360e31b8452600484fd5b8480fd5b8380fd5b80fd5b50346108e35761091b6108f8366121ba565b90610916610911825f525f602052600160405f20015490565b61249b565b6125e3565b5080f35b50346108e357806003193601126108e3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346108e357806003193601126108e357602090604051908152f35b50346108e35760603660031901126108e35761099a61220d565b6109a261221d565b6109aa61247b565b5f80516020612821833981519152546001600160a01b03163303610d32576004358352600960205260ff6101706109ea604086206040519283809261237f565b6001600160a01b03906109fc906122eb565b51169216611341576001600160401b0316906001600160401b03821161132d577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163b15610d325760405163dc412e8360e01b81526004810183905283908181602481837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af180156106e857611318575b5050604051630a7c1bd560e21b81526020600482015290838280610ac56024820161233d565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa91821561082d5784908593611279575b50600f819055604051634d1b7c9960e11b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015610fa3578690611245575b610b60915085612411565b610b6c81601154612330565b601155807fc472cb3a7a659a876494d66b3063145f279701771d6150b9329c31611ed6405c8780a28403938411611231578251600c5481036111ba5790835193610bb5856122d4565b94610bc36040519687612233565b808652610bd2601f19916122d4565b0136602087013786916201518042019165ffffffffffff8342119316935b8581106110ae5750505050505060125460ff610c0d81831661244e565b169060ff191617601255835b600c54811015610c665780610c306001928561231c565b51610c3a826123bf565b848060a01b0391549060031b1c1687526013602052610c5e60408820918254612330565b905501610c19565b848285601254600260ff821614610d3a575b50610c8e6001600160401b0391600e5490612411565b1690827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b15610d36578180916044604051809481936302893c5b60e41b83528860048401528960248401525af180156106e857610d1d575b50807f6332ddaa8a69b5eb2524ec7ca317b7c2b01ecf678d584031415f81270977b8fc91a36001805580f35b81610d2791612233565b610d32578284610cf1565b8280fd5b5080fd5b60ff19166012559042603c81011090835b600c5481101561107357610d5e816123bf565b905460039190911b1c6001600160a01b031690610d7a8161245f565b506040519260a084018481106001600160401b0382111761105f5760405260018060a01b038254168452600182015491602085019260018060a01b0381168452604086019162ffffff8260a01c168352606087019160b81c60020b8252600260018060a01b03910154169160808701928352838b52601360205260408b20549380155f14611011576012905b604051630681320d60e51b815260048101919091526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115611006578d91610fd5575b50600981029080820460091490151715610fc15790610467600a61046088610e82956123f0565b946001600160801b038511610fae57896106f357604051630abff6dd60e11b815297516001600160a01b0390811660048a0152905181166024890152905162ffffff166044880152905160020b60648701529051811660848601526001600160801b0391821660a4860152911660c484015242603c0160e484015260016101048401527f0000000000000000000000000000000000000000000000000000000000000000811661012484015260209083906101449082908a907f0000000000000000000000000000000000000000000000000000000000000000165af1918215610fa357600192610f75575b5001610d4b565b610f959060203d8111610f9c575b610f8d8183612233565b8101906122c5565b5086610f6e565b503d610f83565b6040513d88823e3d90fd5b628af7f560e11b8c52600485905260248cfd5b634e487b7160e01b8d52601160045260248dfd5b90506020813d8211610ffe575b81610fef60209383612233565b810103126106a657518d610e5b565b3d9150610fe2565b6040513d8f823e3d90fd5b60405163313ce56760e01b81528c90602081600481865afa9081156106e85760ff9291611041575b501690610e06565b611059915060203d81116107a85761079a8183612233565b8e611039565b634e487b7160e01b89526041600452602489fd5b50916001600160401b039150610c8e907f79154593ad5827af96f232d8b081e8d48c8bad62e5314fd67880b9880b4812408580a19150610c78565b6110cb836110c66110bf848661231c565b518c6123f0565b612411565b6110d5828a61231c565b526110df816123bf565b90546001600160a01b0360039290921b1c81169085906110ff848c61231c565b5116906106f3578b91907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163b15610d325760405163267b14bd60e01b815260048101929092526024820152604481018790528181606481837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af180156106e8576111a1575b5050600101610bf0565b816111ab91612233565b6111b657895f611197565b8980fd5b60405162461bcd60e51b815260206004820152604360248201527f446973726570616e6379206265747765656e206e756d626572206f66206d617260448201527f6b6574206361707320616e64206e756d626572206f6620696e64657820746f6b606482015262656e7360e81b608482015260a490fd5b634e487b7160e01b85526011600452602485fd5b506020813d602011611271575b8161125f60209383612233565b810103126106a657610b609051610b55565b3d9150611252565b9250503d8085843e61128b8184612233565b8201916040818403126108db578051906020810151906001600160401b03821161131457019280601f8501121561089d5783516112c7816122d4565b946112d56040519687612233565b81865260208087019260051b82010192831161131057602001905b828210611300575050505f610b03565b81518152602091820191016112f0565b8780fd5b8680fd5b8161132291612233565b610d3257825f610a9f565b63dcba2f6b60e01b83526004829052602483fd5b6312171d8360e31b8352600483fd5b50346108e3576040611361366121ba565b9290815280602052209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b50346108e35760603660031901126108e3576044356001600160401b038111610d36576113ed6020806113c560a49436906004016121e0565b93906113cf61247b565b6113e56113dd368784612280565b600435612663565b943691612280565b60018060a01b035f80516020612841833981519152541690866040519687809581946302e817ff60e41b83526024356004840152336024840152608060448401528051918291826084860152018484015e83838284010152836064830152601f801991011681010301925af19182156119305783926118fc575b505f805160206128018339815191525483906001600160a01b0316803b15610d36578180916044604051809481936346ce4e4960e11b83528960048401523360248401525af180156106e8576118e7575b50506040516370a0823160e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316929091602083602481875afa9283156107e85785936118b3575b5082819382156118a3575b15611891575b602090606460018060a01b035f805160206128418339815191525416958860405197889485936334a6d7b960e11b8552600485015260248401528160448401525af19283156107e857859361185d575b506040516323b872dd60e01b81523360048201523060248201526044810182905260208160648189895af18015610fa357611840575b50604051630cf4e94560e31b8152602081600481885afa908115610fa357869161180e575b505f1981019081116117fa5760209060246040518097819363a5184baf60e01b835260048301525afa9384156107e85785946117c6575b506040519361161460a086612233565b600485526080366020870137611629856122eb565b526116338461230c565b528251600210156117b257606083015281516003101561179e576080820152606442019081421161178a575f805160206128018339815191525483906001600160a01b0316803b15610d365781604051809263155f840160e21b8252602060048301528183816116a6602482018a61255b565b03925af180156106e857611775575b50505f8051602061282183398151915254604051634c0d927760e01b815260a060048201529260209284926001600160a01b0316918391879183916116fe9060a484019061255b565b9063fcb74a4560e01b6024840152836044840152606483015282608483015203925af180156106e8578290611741575b61173a9150339061258e565b6001805580f35b506020813d60201161176d575b8161175b60209383612233565b810103126106a65761173a905161172e565b3d915061174e565b8161177f91612233565b610d3257825f6116b5565b634e487b7160e01b83526011600452602483fd5b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b84526032600452602484fd5b9093506020813d6020116117f2575b816117e260209383612233565b810103126106a65751925f611604565b3d91506117d5565b634e487b7160e01b86526011600452602486fd5b90506020813d602011611838575b8161182960209383612233565b810103126106a657515f6115cd565b3d915061181c565b6118589060203d60201161033d576103308183612233565b6115a8565b9092506020813d602011611889575b8161187960209383612233565b810103126106a65751915f611572565b3d915061186c565b50602061189c61277b565b9050611522565b93506118ad61277b565b9361151c565b9092506020813d6020116118df575b816118cf60209383612233565b810103126108db5751915f611511565b3d91506118c2565b816118f191612233565b610d3257825f6114b8565b9091506020813d602011611928575b8161191860209383612233565b810103126106a65751905f611467565b3d915061190b565b6040513d85823e3d90fd5b50346108e357806003193601126108e3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346108e357806003193601126108e357600c54819081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116907f000000000000000000000000000000000000000000000000000000000000000016835b8385106119fa57602086604051908152f35b909192939450611a09856123bf565b9054604051630681320d60e51b815260039290921b1c6001600160a01b0316600482015290602082602481865afa8015611b33578790611be9575b602492506020611a53886123bf565b90546040516370a0823160e01b81523060048201529586929091839160031b1c6001600160a01b03165afa928315610344578893611bb6575b5087611a97886123bf565b905460039190911b1c6001600160a01b0316611b3e5750611aca90610467611ac4611ad0956012936123f0565b91612403565b90612330565b6040516318160ddd60e01b8152602081600481875afa8015611b33576001600160401b03611b0a916001938a91611b15575b501683612411565b9501939291906119e8565b611b2d915060203d81116107e1576107d38183612233565b5f611b02565b6040513d89823e3d90fd5b9060046020611b4c8a6123bf565b905460405163313ce56760e01b81529384929091839160031b1c6001600160a01b03165afa90811561193057611ad09560ff61046793611ac493611aca9791611b98575b5016936123f0565b611bb0915060203d81116107a85761079a8183612233565b5f611b90565b9092506020813d8211611be1575b81611bd160209383612233565b810103126106a65751915f611a8c565b3d9150611bc4565b506020823d8211611c13575b81611c0260209383612233565b810103126106a65760249151611a44565b3d9150611bf5565b50346108e357806003193601126108e35760405190611c4482611c3d8161233d565b0383612233565b604051918291602083016020845282518091526020604085019301915b818110611c6f575050500390f35b82516001600160a01b0316845285945060209384019390920191600101611c61565b50346108e357611ca0366121ba565b90336001600160a01b03831603611cbb579061091b916125e3565b63334bd91960e11b8352600483fd5b50346106a65760403660031901126106a6576024356001600160401b0381116106a6576113dd611d01611d109236906004016121e0565b611d0961247b565b3691612280565b6040516323b872dd60e01b8152336004820152306024820152604481018290526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691906020816064815f875af18015611ef857611f7d575b50604051630cf4e94560e31b8152602081600481865afa908115611ef8575f91611f4b575b505f198101908111611f035760209060246040518095819363a5184baf60e01b835260048301525afa918215611ef8575f92611f17575b5060405191611ddd606084612233565b600283526040366020850137611df2836122eb565b52611dfc8261230c565b526064420190814211611f03575f80516020612801833981519152546001600160a01b0316803b156106a6575f604051809263155f840160e21b825260206004830152818381611e4f602482018961255b565b03925af18015611ef857611ee1575b505f8051602061282183398151915254604051634c0d927760e01b815260a060048201529260209284926001600160a01b031691839187918391611ea69060a484019061255b565b906397771de560e01b6024840152836044840152606483015282608483015203925af180156106e85782906117415761173a9150339061258e565b611eee9193505f90612233565b5f91611ea6611e5e565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b9091506020813d602011611f43575b81611f3360209383612233565b810103126106a65751905f611dcd565b3d9150611f26565b90506020813d602011611f75575b81611f6660209383612233565b810103126106a657515f611d96565b3d9150611f59565b611f959060203d60201161033d576103308183612233565b611d71565b346106a657611fc9611fab366121ba565b90611fc4610911825f525f602052600160405f20015490565b6124d3565b005b346106a65760203660031901126106a6576020611ff56004355f525f602052600160405f20015490565b604051908152f35b346106a6575f3660031901126106a6576010546001600160a01b0316330361210b5761202761247b565b601154156120d4575f601181905560105460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529160209183916044918391907f0000000000000000000000000000000000000000000000000000000000000000165af1908115611ef8575f916120b5575b50156120a65760018055005b6312171d8360e31b5f5260045ffd5b6120ce915060203d60201161033d576103308183612233565b8161209a565b60405162461bcd60e51b815260206004820152600f60248201526e139bc81999595cc81d1bc81cd95b99608a1b6044820152606490fd5b60405162461bcd60e51b815260206004820152602e60248201527f4f6e6c79207468652070726f746f636f6c206f776e65722063616e2063616c6c60448201526d103a3434b990333ab731ba34b7b760911b6064820152608490fd5b346106a65760203660031901126106a6576004359063ffffffff60e01b82168092036106a657602091637965db0b60e01b81149081156121a9575b5015158152f35b6301ffc9a760e01b149050836121a2565b60409060031901126106a657600435906024356001600160a01b03811681036106a65790565b9181601f840112156106a6578235916001600160401b0383116106a657602083818601950101116106a657565b6024359060ff821682036106a657565b604435906001600160401b03821682036106a657565b90601f801991011681019081106001600160401b0382111761225457604052565b634e487b7160e01b5f52604160045260245ffd5b908160209103126106a6575180151581036106a65790565b9291926001600160401b03821161225457604051916122a9601f8201601f191660200184612233565b8294818452818301116106a6578281602093845f960137010152565b908160209103126106a6575190565b6001600160401b0381116122545760051b60200190565b8051156122f85760200190565b634e487b7160e01b5f52603260045260245ffd5b8051600110156122f85760400190565b80518210156122f85760209160051b010190565b91908201809211611f0357565b6020600c54918281520190600c5f5260205f20905f5b8181106123605750505090565b82546001600160a01b0316845260209093019260019283019201612353565b90602082549182815201915f5260205f20905f5b8181106123a05750505090565b82546001600160a01b0316845260209093019260019283019201612393565b600c548110156122f857600c5f5260205f2001905f90565b908160209103126106a6575160ff811681036106a65790565b81810292918115918404141715611f0357565b604d8111611f0357600a0a90565b811561241b570490565b634e487b7160e01b5f52601260045260245ffd5b908160209103126106a657516001600160401b03811681036106a65790565b60ff1660ff8114611f035760010190565b600d548110156122f857600d5f52600360205f20910201905f90565b60026001541461248c576002600155565b633ee5aeb560e01b5f5260045ffd5b5f8181526020818152604080832033845290915290205460ff16156124bd5750565b63e2517d3f60e01b5f523360045260245260445ffd5b5f818152602081815260408083206001600160a01b038616845290915290205460ff16612555575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b50505f90565b90602080835192838152019201905f5b8181106125785750505090565b825184526020938401939092019160010161256b565b5f52600960205260405f208054906801000000000000000082101561225457600182018082558210156122f8575f5260205f20019060018060a01b03166bffffffffffffffffffffffff60a01b825416179055565b5f818152602081815260408083206001600160a01b038616845290915290205460ff1615612555575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6020929183915f8051602061284183398151915254905f60a46040518098819682956302e817ff60e41b84526004840152336024840152608060448401528051918291826084860152018484015e8181018301849052600560f81b6064830152601f01601f191681010301926001600160a01b03165af1918215611ef8575f92612747575b505f80516020612801833981519152546001600160a01b031682813b156106a6575f916044839260405194859384926346ce4e4960e11b845260048401523360248401525af18015611ef85761273b5750565b5f61274591612233565b565b9091506020813d602011612773575b8161276360209383612233565b810103126106a65751905f6126e8565b3d9150612756565b5f8051602061284183398151915254604051631ce2e8d760e31b81525f60048201819052600560f81b60248301529091602091839160449183916001600160a01b03165af1908115611ef8575f916127d1575090565b90506020813d6020116127f8575b816127ec60209383612233565b810103126106a6575190565b3d91506127df56feed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60093ab6e17f2c461cce6ea5d4ec117e51dda77a64affc2b2c05f8cd440def0e700ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea601a26469706673582212202d5adb8a4eaf65046494fa4d63316753f73b7e9a9fe0c816cc85ebe231ae718764736f6c634300081a0033","sourceMap":"1563:16448:0:-:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;1563:16448:0;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1563:16448:0;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1563:16448:0;;;;;;:::i;:::-;;;;;;;;;;;;;;;;865:42:152;1563:16448:0;;;;;;:::i;:::-;625:42:152;1563:16448:0;;;706:42:152;1563:16448:0;577:345:152;;1563:16448:0;;;785:42:152;1563:16448:0;577:345:152;;1563:16448:0;;;577:345:152;;;;1563:16448:0;;;;4586:62:156;1563:16448:0;;-1:-1:-1;;;;;;1563:16448:0;;;;;;;;4838:21:156;1563:16448:0;;;;;;;;;4903:19:156;1563:16448:0;;;;;;;;;4964:20:156;1563:16448:0;;;;865:42:152;1563:16448:0;;;1020:58:155;1563:16448:0;;;;;455:42:153;1563:16448:0;;;;;-1:-1:-1;;;;;1563:16448:0;;;;;;;;;4542:26;1563:16448;;4542:26;1563:16448;;;;;;;;4542:26;-1:-1:-1;1563:16448:0;;-1:-1:-1;1563:16448:0;-1:-1:-1;1563:16448:0;;;;;;;;4985:43;1563:16448;;;;;;;;;;;;;;;4578:60;1563:16448;;;;;;;4648:51;4709:36;1563:16448;4709:36;1563:16448;;;;;;;4755:48;1563:16448;;;;;;;4813:57;1563:16448;4880:38;4928:31;1563:16448;;;;;;;;;;4985:43;;1563:16448;;;;;;4985:43;;;;;;;-1:-1:-1;4985:43:0;;;1563:16448;-1:-1:-1;4969:59:0;1563:16448;;-1:-1:-1;;;;;;1563:16448:0;-1:-1:-1;;;;;1563:16448:0;;;;;;;;;;;;;;;;;5038:20;1563:16448;;5038:20;1563:16448;;;;;;;;;5038:20;-1:-1:-1;1563:16448:0;;-1:-1:-1;1563:16448:0;-1:-1:-1;1563:16448:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1563:16448:0;;;-1:-1:-1;;;;;;1563:16448:0;;;;;;;;;;;-1:-1:-1;1563:16448:0;;;;;;;;;;;;;;;-1:-1:-1;;;1563:16448:0;-1:-1:-1;;;1563:16448:0;;;;;;;;;;;;-1:-1:-1;;;;;;1563:16448:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4964:20:156;1563:16448:0;;;;;;;;;4964:20:156;1563:16448:0;;4964:20:156;1563:16448:0;;;;;;4964:20:156;1563:16448:0;4964:20:156;1563:16448:0;;;;;;5038:20;-1:-1:-1;1563:16448:0;;;;;;;;;;;;;;;;;;-1:-1:-1;4964:20:156;1563:16448:0;;-1:-1:-1;1563:16448:0;;;;-1:-1:-1;1563:16448:0;;;;;;;;;;;-1:-1:-1;1563:16448:0;;4985:43;1563:16448;;-1:-1:-1;1563:16448:0;;;;;-1:-1:-1;1563:16448:0;;4985:43;1563:16448;;-1:-1:-1;1563:16448:0;4985:43;;;1563:16448;4985:43;;1563:16448;4985:43;;;;;;1563:16448;4985:43;;;:::i;:::-;;;1563:16448;;;;;;;:::i;:::-;4985:43;;;1563:16448;-1:-1:-1;1563:16448:0;;4985:43;;;-1:-1:-1;4985:43:0;;;1563:16448;;;-1:-1:-1;1563:16448:0;;;;;;;;-1:-1:-1;;;;;1563:16448:0;;;;;;;;;;;;;;;4542:26;-1:-1:-1;1563:16448:0;;;;;;;;;;;;;;;;;;-1:-1:-1;1563:16448:0;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1563:16448:0;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1563:16448:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1563:16448:0;;;;;;;:::o;:::-;;;;;-1:-1:-1;;1563:16448:0;;;;-1:-1:-1;;;;;1563:16448:0;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1563:16448:0;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1563:16448:0;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f905f3560e01c90816301ffc9a7146121675750806305d7d94b14611ffd578063248a9ca314611fcb5780632f2ff15d14611f9a57806335c995ec14611cca57806336568abe14611c9157806338f250ec14611c1b5780634148fc4f1461198057806375696e7f1461193b5780639134867c1461138c57806391d148541461135057806397771de514610980578063a217fddf14610964578063b6f673121461091f578063d547741f146108e65763fcb74a45146100ce575f80fd5b346108e35760a03660031901126108e3576100e761220d565b6100ef61221d565b906064359182151583036108df57608435918215928315036108db5761011361247b565b5f80516020612821833981519152546001600160a01b031633036108db5760ff166108cc576001600160401b0316916001600160401b0383116108b85760043584526009602052610170610177604086206040519283809261237f565b0382612233565b6001600160a01b0390610189906122eb565b5116916108a1577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169184833b1561089d5785604051634edf56a160e11b81528660048201528181602481838a5af180156106e857610888575b505084337fdb79cc492679ef2624944d6ed3cdbad5b974b5550de330ae18922f2944eec78a8880a385805b600c5481101561088057610229816123bf565b905460039190911b1c6001600160a01b03168015610838576040516370a0823160e01b8152306004820152602081602481855afa801561082d57899185916107f3575b5090610277916123f0565b6040516318160ddd60e01b8152906020826004818c5afa9182156107e8576102b1926001600160401b039187916107ba575b501690612411565b861561034f57906044602092604051958693849263a9059cbb60e01b84528a600485015260248401525af191821561034457600192610318575b507ee2d681c483528119b71f74ebcd6ad9dd9ca7fd71ea2245aa2362e27d3f2eb68880a15b018690610216565b6103389060203d811161033d575b6103308183612233565b810190612268565b6102eb565b503d610326565b6040513d8a823e3d90fd5b918094935061035e91506123bf565b60018060a01b0391549060031b1c1660125461ff0061038260ff8360081c1661244e565b60081b169061ff001916176012558089526014602052604089206103a7838254612330565b9055601254600260ff8260081c16146103c7575b50505090600190610310565b61ff0019166012558089526014602052604089205491816107545760125b604051630681320d60e51b8152600481018490526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610749578c91610718575b506009810290808204600914901517156106f35790610467600a6104608761046d956123f0565b0491612403565b90612411565b926001600160801b03811161070757506104868561245f565b5092603c4201918242116106f3578b949392916001600160801b03809260405196630abff6dd60e11b885260018060a01b038154166004890152600181015460018060a01b03811660248a015262ffffff8160a01c1660448a015260b81c60020b6064890152600260018060a01b039101541660848801521660a48601521660c484015260e48301526001610104830152610124820152602081610144818560018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19081156106e85782916106b2575b506105699192612330565b917f875fc5b1c93e96a85172e0d2b74fcdb6f314c3460e99e6a7da8743bc8b75e37c8280a18261059d575b91905f806103bb565b5f8051602061284183398151915254604051631ce2e8d760e31b815260048101859052600560f81b60248201529260209184916044918391906001600160a01b03165af191821561034457889261067a575b506040516323b872dd60e01b815230600482015233602482015260448101929092526020826064818b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19182156103445760019261065c575b50879150610594565b6106739060203d811161033d576103308183612233565b505f610653565b91506020823d82116106aa575b8161069460209383612233565b810103126106a65790519060206105ef565b5f80fd5b3d9150610687565b9150506020813d82116106e0575b816106cd60209383612233565b810103126106a65751879061056961055e565b3d91506106c0565b6040513d84823e3d90fd5b634e487b7160e01b8c52601160045260248cfd5b628af7f560e11b8b5260045260248afd5b90506020813d8211610741575b8161073260209383612233565b810103126106a657515f610439565b3d9150610725565b6040513d8e823e3d90fd5b60405163313ce56760e01b8152602081600481865afa80156107af5760ff918c91610781575b50166103e5565b6107a2915060203d81116107a8575b61079a8183612233565b8101906123d7565b5f61077a565b503d610790565b6040513d8d823e3d90fd5b6107db915060203d81116107e1575b6107d38183612233565b81019061242f565b5f6102a9565b503d6107c9565b6040513d87823e3d90fd5b945050506020833d8211610825575b8161080f60209383612233565b810103126106a657610277888a9451909161026c565b3d9150610802565b6040513d86823e3d90fd5b61084288476123f0565b6040516318160ddd60e01b8152906020826004818c5afa9182156107e85761087b926001600160401b039187916107ba57501690612411565b6102b1565b506001805580f35b8161089291612233565b61089d57855f6101eb565b8580fd5b6044848484637655665160e11b8352600452602452fd5b632dd1ea2160e11b84526004839052602484fd5b6312171d8360e31b8452600484fd5b8480fd5b8380fd5b80fd5b50346108e35761091b6108f8366121ba565b90610916610911825f525f602052600160405f20015490565b61249b565b6125e3565b5080f35b50346108e357806003193601126108e3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346108e357806003193601126108e357602090604051908152f35b50346108e35760603660031901126108e35761099a61220d565b6109a261221d565b6109aa61247b565b5f80516020612821833981519152546001600160a01b03163303610d32576004358352600960205260ff6101706109ea604086206040519283809261237f565b6001600160a01b03906109fc906122eb565b51169216611341576001600160401b0316906001600160401b03821161132d577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163b15610d325760405163dc412e8360e01b81526004810183905283908181602481837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af180156106e857611318575b5050604051630a7c1bd560e21b81526020600482015290838280610ac56024820161233d565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa91821561082d5784908593611279575b50600f819055604051634d1b7c9960e11b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015610fa3578690611245575b610b60915085612411565b610b6c81601154612330565b601155807fc472cb3a7a659a876494d66b3063145f279701771d6150b9329c31611ed6405c8780a28403938411611231578251600c5481036111ba5790835193610bb5856122d4565b94610bc36040519687612233565b808652610bd2601f19916122d4565b0136602087013786916201518042019165ffffffffffff8342119316935b8581106110ae5750505050505060125460ff610c0d81831661244e565b169060ff191617601255835b600c54811015610c665780610c306001928561231c565b51610c3a826123bf565b848060a01b0391549060031b1c1687526013602052610c5e60408820918254612330565b905501610c19565b848285601254600260ff821614610d3a575b50610c8e6001600160401b0391600e5490612411565b1690827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b15610d36578180916044604051809481936302893c5b60e41b83528860048401528960248401525af180156106e857610d1d575b50807f6332ddaa8a69b5eb2524ec7ca317b7c2b01ecf678d584031415f81270977b8fc91a36001805580f35b81610d2791612233565b610d32578284610cf1565b8280fd5b5080fd5b60ff19166012559042603c81011090835b600c5481101561107357610d5e816123bf565b905460039190911b1c6001600160a01b031690610d7a8161245f565b506040519260a084018481106001600160401b0382111761105f5760405260018060a01b038254168452600182015491602085019260018060a01b0381168452604086019162ffffff8260a01c168352606087019160b81c60020b8252600260018060a01b03910154169160808701928352838b52601360205260408b20549380155f14611011576012905b604051630681320d60e51b815260048101919091526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115611006578d91610fd5575b50600981029080820460091490151715610fc15790610467600a61046088610e82956123f0565b946001600160801b038511610fae57896106f357604051630abff6dd60e11b815297516001600160a01b0390811660048a0152905181166024890152905162ffffff166044880152905160020b60648701529051811660848601526001600160801b0391821660a4860152911660c484015242603c0160e484015260016101048401527f0000000000000000000000000000000000000000000000000000000000000000811661012484015260209083906101449082908a907f0000000000000000000000000000000000000000000000000000000000000000165af1918215610fa357600192610f75575b5001610d4b565b610f959060203d8111610f9c575b610f8d8183612233565b8101906122c5565b5086610f6e565b503d610f83565b6040513d88823e3d90fd5b628af7f560e11b8c52600485905260248cfd5b634e487b7160e01b8d52601160045260248dfd5b90506020813d8211610ffe575b81610fef60209383612233565b810103126106a657518d610e5b565b3d9150610fe2565b6040513d8f823e3d90fd5b60405163313ce56760e01b81528c90602081600481865afa9081156106e85760ff9291611041575b501690610e06565b611059915060203d81116107a85761079a8183612233565b8e611039565b634e487b7160e01b89526041600452602489fd5b50916001600160401b039150610c8e907f79154593ad5827af96f232d8b081e8d48c8bad62e5314fd67880b9880b4812408580a19150610c78565b6110cb836110c66110bf848661231c565b518c6123f0565b612411565b6110d5828a61231c565b526110df816123bf565b90546001600160a01b0360039290921b1c81169085906110ff848c61231c565b5116906106f3578b91907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163b15610d325760405163267b14bd60e01b815260048101929092526024820152604481018790528181606481837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af180156106e8576111a1575b5050600101610bf0565b816111ab91612233565b6111b657895f611197565b8980fd5b60405162461bcd60e51b815260206004820152604360248201527f446973726570616e6379206265747765656e206e756d626572206f66206d617260448201527f6b6574206361707320616e64206e756d626572206f6620696e64657820746f6b606482015262656e7360e81b608482015260a490fd5b634e487b7160e01b85526011600452602485fd5b506020813d602011611271575b8161125f60209383612233565b810103126106a657610b609051610b55565b3d9150611252565b9250503d8085843e61128b8184612233565b8201916040818403126108db578051906020810151906001600160401b03821161131457019280601f8501121561089d5783516112c7816122d4565b946112d56040519687612233565b81865260208087019260051b82010192831161131057602001905b828210611300575050505f610b03565b81518152602091820191016112f0565b8780fd5b8680fd5b8161132291612233565b610d3257825f610a9f565b63dcba2f6b60e01b83526004829052602483fd5b6312171d8360e31b8352600483fd5b50346108e3576040611361366121ba565b9290815280602052209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b50346108e35760603660031901126108e3576044356001600160401b038111610d36576113ed6020806113c560a49436906004016121e0565b93906113cf61247b565b6113e56113dd368784612280565b600435612663565b943691612280565b60018060a01b035f80516020612841833981519152541690866040519687809581946302e817ff60e41b83526024356004840152336024840152608060448401528051918291826084860152018484015e83838284010152836064830152601f801991011681010301925af19182156119305783926118fc575b505f805160206128018339815191525483906001600160a01b0316803b15610d36578180916044604051809481936346ce4e4960e11b83528960048401523360248401525af180156106e8576118e7575b50506040516370a0823160e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316929091602083602481875afa9283156107e85785936118b3575b5082819382156118a3575b15611891575b602090606460018060a01b035f805160206128418339815191525416958860405197889485936334a6d7b960e11b8552600485015260248401528160448401525af19283156107e857859361185d575b506040516323b872dd60e01b81523360048201523060248201526044810182905260208160648189895af18015610fa357611840575b50604051630cf4e94560e31b8152602081600481885afa908115610fa357869161180e575b505f1981019081116117fa5760209060246040518097819363a5184baf60e01b835260048301525afa9384156107e85785946117c6575b506040519361161460a086612233565b600485526080366020870137611629856122eb565b526116338461230c565b528251600210156117b257606083015281516003101561179e576080820152606442019081421161178a575f805160206128018339815191525483906001600160a01b0316803b15610d365781604051809263155f840160e21b8252602060048301528183816116a6602482018a61255b565b03925af180156106e857611775575b50505f8051602061282183398151915254604051634c0d927760e01b815260a060048201529260209284926001600160a01b0316918391879183916116fe9060a484019061255b565b9063fcb74a4560e01b6024840152836044840152606483015282608483015203925af180156106e8578290611741575b61173a9150339061258e565b6001805580f35b506020813d60201161176d575b8161175b60209383612233565b810103126106a65761173a905161172e565b3d915061174e565b8161177f91612233565b610d3257825f6116b5565b634e487b7160e01b83526011600452602483fd5b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b84526032600452602484fd5b9093506020813d6020116117f2575b816117e260209383612233565b810103126106a65751925f611604565b3d91506117d5565b634e487b7160e01b86526011600452602486fd5b90506020813d602011611838575b8161182960209383612233565b810103126106a657515f6115cd565b3d915061181c565b6118589060203d60201161033d576103308183612233565b6115a8565b9092506020813d602011611889575b8161187960209383612233565b810103126106a65751915f611572565b3d915061186c565b50602061189c61277b565b9050611522565b93506118ad61277b565b9361151c565b9092506020813d6020116118df575b816118cf60209383612233565b810103126108db5751915f611511565b3d91506118c2565b816118f191612233565b610d3257825f6114b8565b9091506020813d602011611928575b8161191860209383612233565b810103126106a65751905f611467565b3d915061190b565b6040513d85823e3d90fd5b50346108e357806003193601126108e3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346108e357806003193601126108e357600c54819081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116907f000000000000000000000000000000000000000000000000000000000000000016835b8385106119fa57602086604051908152f35b909192939450611a09856123bf565b9054604051630681320d60e51b815260039290921b1c6001600160a01b0316600482015290602082602481865afa8015611b33578790611be9575b602492506020611a53886123bf565b90546040516370a0823160e01b81523060048201529586929091839160031b1c6001600160a01b03165afa928315610344578893611bb6575b5087611a97886123bf565b905460039190911b1c6001600160a01b0316611b3e5750611aca90610467611ac4611ad0956012936123f0565b91612403565b90612330565b6040516318160ddd60e01b8152602081600481875afa8015611b33576001600160401b03611b0a916001938a91611b15575b501683612411565b9501939291906119e8565b611b2d915060203d81116107e1576107d38183612233565b5f611b02565b6040513d89823e3d90fd5b9060046020611b4c8a6123bf565b905460405163313ce56760e01b81529384929091839160031b1c6001600160a01b03165afa90811561193057611ad09560ff61046793611ac493611aca9791611b98575b5016936123f0565b611bb0915060203d81116107a85761079a8183612233565b5f611b90565b9092506020813d8211611be1575b81611bd160209383612233565b810103126106a65751915f611a8c565b3d9150611bc4565b506020823d8211611c13575b81611c0260209383612233565b810103126106a65760249151611a44565b3d9150611bf5565b50346108e357806003193601126108e35760405190611c4482611c3d8161233d565b0383612233565b604051918291602083016020845282518091526020604085019301915b818110611c6f575050500390f35b82516001600160a01b0316845285945060209384019390920191600101611c61565b50346108e357611ca0366121ba565b90336001600160a01b03831603611cbb579061091b916125e3565b63334bd91960e11b8352600483fd5b50346106a65760403660031901126106a6576024356001600160401b0381116106a6576113dd611d01611d109236906004016121e0565b611d0961247b565b3691612280565b6040516323b872dd60e01b8152336004820152306024820152604481018290526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691906020816064815f875af18015611ef857611f7d575b50604051630cf4e94560e31b8152602081600481865afa908115611ef8575f91611f4b575b505f198101908111611f035760209060246040518095819363a5184baf60e01b835260048301525afa918215611ef8575f92611f17575b5060405191611ddd606084612233565b600283526040366020850137611df2836122eb565b52611dfc8261230c565b526064420190814211611f03575f80516020612801833981519152546001600160a01b0316803b156106a6575f604051809263155f840160e21b825260206004830152818381611e4f602482018961255b565b03925af18015611ef857611ee1575b505f8051602061282183398151915254604051634c0d927760e01b815260a060048201529260209284926001600160a01b031691839187918391611ea69060a484019061255b565b906397771de560e01b6024840152836044840152606483015282608483015203925af180156106e85782906117415761173a9150339061258e565b611eee9193505f90612233565b5f91611ea6611e5e565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b9091506020813d602011611f43575b81611f3360209383612233565b810103126106a65751905f611dcd565b3d9150611f26565b90506020813d602011611f75575b81611f6660209383612233565b810103126106a657515f611d96565b3d9150611f59565b611f959060203d60201161033d576103308183612233565b611d71565b346106a657611fc9611fab366121ba565b90611fc4610911825f525f602052600160405f20015490565b6124d3565b005b346106a65760203660031901126106a6576020611ff56004355f525f602052600160405f20015490565b604051908152f35b346106a6575f3660031901126106a6576010546001600160a01b0316330361210b5761202761247b565b601154156120d4575f601181905560105460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529160209183916044918391907f0000000000000000000000000000000000000000000000000000000000000000165af1908115611ef8575f916120b5575b50156120a65760018055005b6312171d8360e31b5f5260045ffd5b6120ce915060203d60201161033d576103308183612233565b8161209a565b60405162461bcd60e51b815260206004820152600f60248201526e139bc81999595cc81d1bc81cd95b99608a1b6044820152606490fd5b60405162461bcd60e51b815260206004820152602e60248201527f4f6e6c79207468652070726f746f636f6c206f776e65722063616e2063616c6c60448201526d103a3434b990333ab731ba34b7b760911b6064820152608490fd5b346106a65760203660031901126106a6576004359063ffffffff60e01b82168092036106a657602091637965db0b60e01b81149081156121a9575b5015158152f35b6301ffc9a760e01b149050836121a2565b60409060031901126106a657600435906024356001600160a01b03811681036106a65790565b9181601f840112156106a6578235916001600160401b0383116106a657602083818601950101116106a657565b6024359060ff821682036106a657565b604435906001600160401b03821682036106a657565b90601f801991011681019081106001600160401b0382111761225457604052565b634e487b7160e01b5f52604160045260245ffd5b908160209103126106a6575180151581036106a65790565b9291926001600160401b03821161225457604051916122a9601f8201601f191660200184612233565b8294818452818301116106a6578281602093845f960137010152565b908160209103126106a6575190565b6001600160401b0381116122545760051b60200190565b8051156122f85760200190565b634e487b7160e01b5f52603260045260245ffd5b8051600110156122f85760400190565b80518210156122f85760209160051b010190565b91908201809211611f0357565b6020600c54918281520190600c5f5260205f20905f5b8181106123605750505090565b82546001600160a01b0316845260209093019260019283019201612353565b90602082549182815201915f5260205f20905f5b8181106123a05750505090565b82546001600160a01b0316845260209093019260019283019201612393565b600c548110156122f857600c5f5260205f2001905f90565b908160209103126106a6575160ff811681036106a65790565b81810292918115918404141715611f0357565b604d8111611f0357600a0a90565b811561241b570490565b634e487b7160e01b5f52601260045260245ffd5b908160209103126106a657516001600160401b03811681036106a65790565b60ff1660ff8114611f035760010190565b600d548110156122f857600d5f52600360205f20910201905f90565b60026001541461248c576002600155565b633ee5aeb560e01b5f5260045ffd5b5f8181526020818152604080832033845290915290205460ff16156124bd5750565b63e2517d3f60e01b5f523360045260245260445ffd5b5f818152602081815260408083206001600160a01b038616845290915290205460ff16612555575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b50505f90565b90602080835192838152019201905f5b8181106125785750505090565b825184526020938401939092019160010161256b565b5f52600960205260405f208054906801000000000000000082101561225457600182018082558210156122f8575f5260205f20019060018060a01b03166bffffffffffffffffffffffff60a01b825416179055565b5f818152602081815260408083206001600160a01b038616845290915290205460ff1615612555575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6020929183915f8051602061284183398151915254905f60a46040518098819682956302e817ff60e41b84526004840152336024840152608060448401528051918291826084860152018484015e8181018301849052600560f81b6064830152601f01601f191681010301926001600160a01b03165af1918215611ef8575f92612747575b505f80516020612801833981519152546001600160a01b031682813b156106a6575f916044839260405194859384926346ce4e4960e11b845260048401523360248401525af18015611ef85761273b5750565b5f61274591612233565b565b9091506020813d602011612773575b8161276360209383612233565b810103126106a65751905f6126e8565b3d9150612756565b5f8051602061284183398151915254604051631ce2e8d760e31b81525f60048201819052600560f81b60248301529091602091839160449183916001600160a01b03165af1908115611ef8575f916127d1575090565b90506020813d6020116127f8575b816127ec60209383612233565b810103126106a6575190565b3d91506127df56feed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60093ab6e17f2c461cce6ea5d4ec117e51dda77a64affc2b2c05f8cd440def0e700ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea601a26469706673582212202d5adb8a4eaf65046494fa4d63316753f73b7e9a9fe0c816cc85ebe231ae718764736f6c634300081a0033","sourceMap":"1563:16448:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14628:67;1563:16448;14628:67;;;1563:16448;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1563:16448:0;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2466:103:49;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1563:16448:0;-1:-1:-1;;;;;1563:16448:0;208:10:154;:46;1563:16448:0;;;;11154:86;;-1:-1:-1;;;;;1563:16448:0;11254:44;-1:-1:-1;;;;;11254:44:0;;11250:123;;1563:16448;;;;3632:13:154;1563:16448:0;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;-1:-1:-1;;;;;1563:16448:0;11460:9;;;:::i;:::-;1563:16448;;11479:111;;;11637:14;-1:-1:-1;;;;;1563:16448:0;;11599:28;11637:36;;;;;1563:16448;;;;;;11637:36;;;1563:16448;11637:36;;3040:16;11637:36;;1563:16448;11637:36;;;;;;;;;;;1563:16448;208:10:154;;;;11688:41:0;;;;11744:13;;11783:3;11763:11;1563:16448;11759:22;;;;;11818:14;;;:::i;:::-;1563:16448;;;;;;;;-1:-1:-1;;;;;1563:16448:0;11897:19;;1563:16448;;;;-1:-1:-1;;;11985:38:0;;12017:4;1563:16448;11985:38;;1563:16448;;;;;11985:38;;;;;;;;;;;;;11893:397;11985:56;;;;;:::i;:::-;1563:16448;;-1:-1:-1;;;12045:28:0;;1563:16448;;;;;12045:28;;;;;;;;11984:89;12045:28;-1:-1:-1;;;;;12045:28:0;;;;;11893:397;1563:16448;;11984:89;;:::i;:::-;12395:1923;;;;1563:16448;;;;;;;;;;;;;;12436:55;;;1563:16448;12436:55;;1563:16448;;;;;12436:55;;;;;;;1563:16448;12436:55;;;12395:1923;12514:21;;;;;12395:1923;1563:16448;11744:13;;;;12436:55;;;1563:16448;12436:55;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;1563:16448;;;;;;;;;12395:1923;12608:14;;;;;;;;;:::i;:::-;1563:16448;;;;;;;;;;;;12640:38;1563:16448;;12640:38;1563:16448;;;;;12640:38;:::i;:::-;1563:16448;;;;;;;;12640:38;1563:16448;;;;12696:30;1563:16448;;;;;12696:84;1563:16448;;;12696:84;:::i;:::-;1563:16448;;12640:38;1563:16448;12842:1;1563:16448;;;;;12802:41;12798:1506;;12395:1923;;;;;1563:16448;12395:1923;;;12798:1506;-1:-1:-1;;1563:16448:0;12640:38;1563:16448;;;;12696:30;1563:16448;;;;;;;13077:37;1563:16448;;12640:38;13073:212;1563:16448;;-1:-1:-1;;;13327:76:0;;1563:16448;13327:76;;1563:16448;;;;;;;13346:17;-1:-1:-1;;;;;1563:16448:0;13327:76;;;;;;;;;;;13073:212;1563:16448;3632:13:154;1563:16448:0;;;;;;3632:13:154;1563:16448:0;;;;;;;13449:34;13493:14;13487:2;13449:34;;13448:60;13449:34;;:::i;:::-;1563:16448;13493:14;;:::i;:::-;13448:60;;:::i;:::-;13535:38;-1:-1:-1;;;;;13535:38:0;;13531:137;;13776:11;;;;:::i;:::-;13920:15;;13938:9;13920:15;1563:16448;13920:15;;;1563:16448;;;;;;;;-1:-1:-1;;;;;1563:16448:0;;;;;;;;13714:334;;1563:16448;;;;;;;;;13714:334;;1563:16448;;;;;;;;;;;;;;;;3040:16;;1563:16448;3040:16;;1563:16448;;;2970:17;3040:16;;12842:1;3040:16;1563:16448;;;2970:17;12842:1;1563:16448;;;;;;;;;;;;;;;;;2970:17;1563:16448;;;;2970:17;1563:16448;;;;;;;;;;;;;;;13714:334;1563:16448;;;;;;;13727:17;1563:16448;13714:334;;;;;;;;;;;13073:212;13690:358;;;;;:::i;:::-;14076:20;;;;;14123:24;14119:167;;13073:212;12798:1506;;;;;;14119:167;-1:-1:-1;;;;;;;;;;;1563:16448:0;;;-1:-1:-1;;;13977:74:156;;1563:16448:0;13977:74:156;;1563:16448:0;;;-1:-1:-1;;;1563:16448:0;;;;;;;;;;;;;;-1:-1:-1;;;;;1563:16448:0;13977:74:156;;;;;;;;;;;14119:167:0;-1:-1:-1;1563:16448:0;;-1:-1:-1;;;14175:88:0;;14207:4;1563:16448;14175:88;;1563:16448;208:10:154;1563:16448:0;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14175:10:0;1563:16448;14175:88;;;;;;;1563:16448;14175:88;;;14119:167;;;;;;;14175:88;;;1563:16448;14175:88;;;;;;;;;:::i;:::-;;;;;13977:74:156;;;1563:16448:0;13977:74:156;;;;;;;;;1563:16448:0;13977:74:156;;;:::i;:::-;;;1563:16448:0;;;;;;;;13977:74:156;;1563:16448:0;-1:-1:-1;1563:16448:0;;13977:74:156;;;-1:-1:-1;13977:74:156;;13714:334:0;;;;1563:16448;13714:334;;;;;;;;;1563:16448;13714:334;;;:::i;:::-;;;1563:16448;;;;;;;13690:358;13714:334;;;;;-1:-1:-1;13714:334:0;;;1563:16448;;;;;;;;;;-1:-1:-1;;;1563:16448:0;;;;;;;;13531:137;-1:-1:-1;;;13608:37:0;;1563:16448;;;10201:42;13608:37;13327:76;;;1563:16448;13327:76;;;;;;;;;1563:16448;13327:76;;;:::i;:::-;;;1563:16448;;;;;13327:76;;;;;;-1:-1:-1;13327:76:0;;;1563:16448;;;;;;;;;13073:212;1563:16448;;-1:-1:-1;;;13221:41:0;;1563:16448;;;;13221:41;;;;;;;1563:16448;13221:41;;;;;13073:212;1563:16448;;13073:212;;13221:41;;;;1563:16448;13221:41;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1563:16448;;;;;;;;;12045:28;;;;1563:16448;12045:28;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1563:16448;;;;;;;;;11985:38;;;;;1563:16448;11985:38;;;;;;;;;1563:16448;11985:38;;;:::i;:::-;;;1563:16448;;;;11985:56;1563:16448;;;;11985:38;;;;;;;-1:-1:-1;11985:38:0;;;1563:16448;;;;;;;;;11893:397;12204:39;:21;;:39;:::i;:::-;1563:16448;;-1:-1:-1;;;12247:28:0;;1563:16448;;;;;12247:28;;;;;;;;12203:72;12247:28;-1:-1:-1;;;;;12247:28:0;;;;;1563:16448;;12203:72;;:::i;:::-;11893:397;;11759:22;;1563:16448;;;;;11637:36;;;;;:::i;:::-;1563:16448;;11637:36;;;;1563:16448;;;;11479:111;1563:16448;11532:47;;;;;;;;1563:16448;;;3040:16;11532:47;11250:123;-1:-1:-1;;;11321:41:0;;1563:16448;3040:16;;;1563:16448;11321:41;;11154:86;-1:-1:-1;;;11213:16:0;;1563:16448;16400:16;11213;1563:16448;;;;;;;;;;;;;;;;4747:26:26;1563:16448:0;;;:::i;:::-;4717:18:26;2475:4;4717:18;;3901:6;1563:16448:0;3901:6:26;1563:16448:0;;3901:22:26;1563:16448:0;3901:6:26;1563:16448:0;3901:22:26;1563:16448:0;3810:120:26;;4717:18;2475:4;:::i;:::-;4747:26;:::i;:::-;;1563:16448:0;;;;;;;;;;;;;;;;;15887:10;-1:-1:-1;;;;;1563:16448:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1563:16448:0;;;;;;:::i;:::-;;;:::i;:::-;2466:103:49;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1563:16448:0;-1:-1:-1;;;;;1563:16448:0;208:10:154;:46;1563:16448:0;;;;;;3632:13:154;1563:16448:0;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1563:16448:0;8029:9;;;:::i;:::-;1563:16448;;;;8133:86;;-1:-1:-1;;;;;1563:16448:0;8233:44;-1:-1:-1;;;;;8233:44:0;;8229:123;;8361:10;-1:-1:-1;;;;;1563:16448:0;8361:34;;;;1563:16448;;-1:-1:-1;;;8361:34:0;;1563:16448;8361:34;;3040:16;;;1563:16448;;;;;;;8361:10;-1:-1:-1;;;;;1563:16448:0;8361:34;;;;;;;;1563:16448;-1:-1:-1;;1563:16448:0;;-1:-1:-1;;;8479:69:0;;1563:16448;;8479:69;;3040:16;1563:16448;3040:16;1563:16448;;3040:16;1563:16448;3040:16;;;:::i;:::-;8479:69;1563:16448;8498:17;-1:-1:-1;;;;;1563:16448:0;8479:69;;;;;;;;1563:16448;;8479:69;;;1563:16448;-1:-1:-1;8558:42:0;1563:16448;;;;;-1:-1:-1;;;8632:47:0;;1563:16448;;;;8649:16;-1:-1:-1;;;;;1563:16448:0;8632:47;;;;;;;;;;1563:16448;8709:28;;;;;:::i;:::-;8747:26;1563:16448;8747:26;1563:16448;8747:26;:::i;:::-;;1563:16448;8788:23;;;;;1563:16448;;;;;;;;;8536:11;1563:16448;17338:38;;1563:16448;;;;;17506:32;1563:16448;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;17553:13;17929:15;17947:6;17929:15;1563:16448;17929:15;1563:16448;17929:15;;1563:16448;;;17548:431;17568:20;;;;;;3040:16;;;;;;9027:38;3040:16;1563:16448;9027:38;1563:16448;;;9027:38;:::i;:::-;1563:16448;3040:16;;;;;9027:38;3040:16;9081:13;9120:3;8536:11;1563:16448;9096:22;;;;;9194:26;;1563:16448;9194:26;;;:::i;:::-;3040:16;9175:14;;;:::i;:::-;1563:16448;;;;;;;;;;;;;;9139:35;1563:16448;;9139:81;1563:16448;;;;;;9139:81;:::i;:::-;1563:16448;;;9081:13;;9096:22;;;;9027:38;3040:16;9284:1;1563:16448;;;9244:41;9240:1399;;9076:155;1563:16448;10678:25;-1:-1:-1;;;;;1563:16448:0;10693:10;1563:16448;10678:25;;:::i;:::-;1563:16448;;;10730:14;-1:-1:-1;;;;;1563:16448:0;10715:55;;;;;1563:16448;;;;;;;;;;;;;10715:55;;;1563:16448;10715:55;;1563:16448;2970:17;1563:16448;2970:17;;3040:16;10715:55;;;;;;;;9076:155;10785:32;;;;;1563:16448;;;;;10715:55;;;;;:::i;:::-;1563:16448;;10715:55;;;;1563:16448;;;;10715:55;1563:16448;;;9240:1399;-1:-1:-1;;3040:16:0;9027:38;3040:16;;17929:15;10481:9;1563:16448;;-1:-1:-1;1563:16448:0;9360:13;9399:3;8536:11;1563:16448;9375:22;;;;;9456:14;;;:::i;:::-;1563:16448;;;;;;;;-1:-1:-1;;;;;1563:16448:0;;9513:11;;;:::i;:::-;1563:16448;;;;3040:16;1563:16448;;;;;-1:-1:-1;;;;;1563:16448:0;;;;;;;;;;;;3040:16;;1563:16448;3040:16;;1563:16448;3040:16;;;;1563:16448;3040:16;;1563:16448;;;;;;;;3040:16;;1563:16448;3040:16;;;;;;;;;;1563:16448;3040:16;;;;;9284:1;3040:16;;;9284:1;1563:16448;;;;;3040:16;;;1563:16448;3040:16;;;;;;;1563:16448;;;9139:35;1563:16448;;;;;;9654:16;9692:37;;9688:196;1563:16448;;;9027:38;9688:196;;1563:16448;;-1:-1:-1;;;9922:76:0;;1563:16448;9922:76;;1563:16448;;;;;;;;8498:17;-1:-1:-1;;;;;1563:16448:0;9922:76;;;;;;;;;;;9688:196;1563:16448;3632:13:154;1563:16448:0;;;;;;3632:13:154;1563:16448:0;;;;;;;10040:39;10089:14;10083:2;10040:39;;10039:65;10040:39;;:::i;10039:65::-;10127:43;-1:-1:-1;;;;;10127:43:0;;10123:139;;1563:16448;;;;;-1:-1:-1;;;10280:295:0;;2970:17;;-1:-1:-1;;;;;1563:16448:0;;;;10280:295;;1563:16448;2970:17;;1563:16448;;;2970:17;;1563:16448;2970:17;;3040:16;;1563:16448;2970:17;;;;;9284:1;3040:16;17812:156;2970:17;;;;;1563:16448;;2970:17;;;1563:16448;-1:-1:-1;;;;;1563:16448:0;;;2970:17;;;;1563:16448;;2970:17;;;;17929:15;10481:9;1563:16448;2970:17;;;1563:16448;;2970:17;;;1563:16448;8361:10;1563:16448;;2970:17;;;1563:16448;;;;;10280:295;;1563:16448;;;;17825:17;1563:16448;10280:295;;;;;;;1563:16448;10280:295;;;9688:196;9399:3;1563:16448;9360:13;;10280:295;;;1563:16448;10280:295;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;1563:16448;;;;;;;;;10123:139;-1:-1:-1;;;10201:42:0;;1563:16448;;;;;10201:42;;1563:16448;-1:-1:-1;;;1563:16448:0;;8747:26;1563:16448;;;;;9922:76;;;1563:16448;9922:76;;;;;;;;;1563:16448;9922:76;;;:::i;:::-;;;1563:16448;;;;;9922:76;;;;;;-1:-1:-1;9922:76:0;;;1563:16448;;;;;;;;;9688:196;1563:16448;;-1:-1:-1;;;9824:41:0;;1563:16448;;;;;;9824:41;;;;;;;;1563:16448;9824:41;;;;9688:196;1563:16448;;9688:196;;;9824:41;;;;1563:16448;9824:41;;;;;;;;;:::i;:::-;;;;1563:16448;-1:-1:-1;;;1563:16448:0;;;;;;;;9375:22;;;-1:-1:-1;;;;;9375:22:0;;10678:25;9375:22;10608:20;;;;9240:1399;;;;17590:3;17673:52;17688:13;17674:27;17688:13;;;;:::i;:::-;3040:16;17674:27;;:::i;:::-;17673:52;:::i;:::-;17660:65;;;;:::i;:::-;1563:16448;17885:14;;;:::i;:::-;1563:16448;;-1:-1:-1;;;;;1563:16448:0;;;;;;;;;;;17909:10;;;;:::i;:::-;3040:16;1563:16448;;;;;;;17825:17;-1:-1:-1;;;;;1563:16448:0;17812:156;;;;1563:16448;;-1:-1:-1;;;17812:156:0;;1563:16448;17812:156;;1563:16448;;;;;;;;;;;;;;;;17812:156;1563:16448;;17825:17;-1:-1:-1;;;;;1563:16448:0;17812:156;;;;;;;;17590:3;;;1563:16448;;17553:13;;17812:156;;;;;:::i;:::-;1563:16448;;17812:156;;;;1563:16448;;;;;;;-1:-1:-1;;;1563:16448:0;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1563:16448:0;;;;;;;;-1:-1:-1;;;1563:16448:0;;8747:26;1563:16448;;;;;8632:47;;1563:16448;8632:47;;1563:16448;8632:47;;;;;;1563:16448;8632:47;;;:::i;:::-;;;1563:16448;;;;8709:28;1563:16448;;8632:47;;;;;-1:-1:-1;8632:47:0;;8479:69;;;;;;;;;;;;;:::i;:::-;;;3040:16;1563:16448;3040:16;;;;;;1563:16448;;3040:16;1563:16448;3040:16;;;;-1:-1:-1;;;;;3040:16:0;;;;;;;;;;;;;;;;;;;:::i;:::-;1563:16448;;;;;;;:::i;:::-;3040:16;;;1563:16448;3040:16;;;;;;;;;;;;;;1563:16448;3040:16;;;;;;;;8479:69;;;;;;3040:16;1563:16448;;3040:16;;1563:16448;3040:16;;;;;;;;1563:16448;;;3040:16;1563:16448;;;8361:34;;;;;:::i;:::-;1563:16448;;8361:34;;;;8229:123;-1:-1:-1;;;8300:41:0;;1563:16448;3040:16;;;1563:16448;8300:41;;8133:86;-1:-1:-1;;;8192:16:0;;1563:16448;16400:16;8192;1563:16448;;;;;;;;;:::i;:::-;;;;;;;;;2954:29:26;1563:16448:0;;;;;;-1:-1:-1;1563:16448:0;;;;;;-1:-1:-1;1563:16448:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;1563:16448:0;;;;;;-1:-1:-1;;;;;1563:16448:0;;;;;;;;;;;;;;;:::i;:::-;2466:103:49;;;;:::i;:::-;344682:69:157;1563:16448:0;;;;;:::i;:::-;;;344682:69:157;:::i;:::-;1563:16448:0;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;;;;;;;1563:16448:0;;;;;;;;;;;;;;;13336:164:156;;1563:16448:0;;;13336:164:156;;1563:16448:0;13428:10:156;1563:16448:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13336:164:156;;;;;;;;;;;;;;1563:16448:0;-1:-1:-1;;;;;;;;;;;;1563:16448:0;;;-1:-1:-1;;;;;1563:16448:0;13510:53:156;;;;;1563:16448:0;;;;;;;;;;;;;13510:53:156;;;1563:16448:0;13510:53:156;;1563:16448:0;13428:10:156;1563:16448:0;;;;13510:53:156;;;;;;;;1563:16448:0;-1:-1:-1;;1563:16448:0;;-1:-1:-1;;;6878:36:0;;13428:10:156;1563:16448:0;6878:36;;1563:16448;6878:14;-1:-1:-1;;;;;1563:16448:0;;;;;;;;;6878:36;;;;;;;;;;;1563:16448;6959:43;;;2482:22:157;;;199917:64;;1563:16448:0;2482:22:157;199990:64;;1563:16448:0;;;;;;;;;-1:-1:-1;;;;;;;;;;;1563:16448:0;;;;;;;;;;;;;;11129:64:156;;1563:16448:0;11129:64:156;;1563:16448:0;;;;;;;;;;11129:64:156;;;;;;;;;;;1563:16448:0;-1:-1:-1;1563:16448:0;;-1:-1:-1;;;7089:62:0;;13428:10:156;1563:16448:0;7089:62;;1563:16448;7137:4;1563:16448;;;;;;;;;;;;;;7089:62;;;;;;;;;;1563:16448;-1:-1:-1;1563:16448:0;;-1:-1:-1;;;7187:32:0;;1563:16448;;;;7187:32;;;;;;;;;;;;1563:16448;-1:-1:-1;;;1563:16448:0;;;;;;;;;;;;;;;;;;;7260:57;;1563:16448;7260:57;;1563:16448;7260:57;;;;;;;;;;;1563:16448;;;;;;;;;:::i;:::-;;;;;;;;;;7377:45;;;:::i;:::-;1563:16448;7432:34;;;:::i;:::-;1563:16448;;;7480:1;1563:16448;;;;;;;;;;7535:1;1563:16448;;;;;;;;;7694:15;1563:16448;7694:15;;;1563:16448;;;-1:-1:-1;;;;;;;;;;;1563:16448:0;;;-1:-1:-1;;;;;1563:16448:0;3173:49:155;;;;;1563:16448:0;;;;;;;;3173:49:155;;1563:16448:0;;3173:49:155;;1563:16448:0;;;;;;;;;;:::i;:::-;3173:49:155;;;;;;;;;;1563:16448:0;-1:-1:-1;;;;;;;;;;;;;1563:16448:0;;;-1:-1:-1;;;3304:209:155;;1563:16448:0;;3304:209:155;;1563:16448:0;;;;;;-1:-1:-1;;;;;1563:16448:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3304:209:155;;;;;;;;;;;;1563:16448:0;7761:10;3292:221:155;;13428:10:156;7761::0;;:::i;:::-;1563:16448;;;;;3304:209:155;;1563:16448:0;3304:209:155;;1563:16448:0;3304:209:155;;;;;;1563:16448:0;3304:209:155;;;:::i;:::-;;;1563:16448:0;;;;7761:10;1563:16448;;3304:209:155;;;;;-1:-1:-1;3304:209:155;;3173:49;;;;;:::i;:::-;1563:16448:0;;3173:49:155;;;;1563:16448:0;-1:-1:-1;;;1563:16448:0;;;;;;;;;-1:-1:-1;;;1563:16448:0;;;;;;;;;-1:-1:-1;;;1563:16448:0;;;;;;;;7260:57;;;;1563:16448;7260:57;;1563:16448;7260:57;;;;;;1563:16448;7260:57;;;:::i;:::-;;;1563:16448;;;;;7260:57;;;;;;;-1:-1:-1;7260:57:0;;1563:16448;-1:-1:-1;;;1563:16448:0;;;;;;;;7187:32;;;1563:16448;7187:32;;1563:16448;7187:32;;;;;;1563:16448;7187:32;;;:::i;:::-;;;1563:16448;;;;;7187:32;;;;;;-1:-1:-1;7187:32:0;;7089:62;;;1563:16448;7089:62;1563:16448;7089:62;;;;;;;:::i;:::-;;;11129:64:156;;;;1563:16448:0;11129:64:156;;1563:16448:0;11129:64:156;;;;;;1563:16448:0;11129:64:156;;;:::i;:::-;;;1563:16448:0;;;;;11129:64:156;;;;;;;-1:-1:-1;11129:64:156;;199990::157;344922:44;1563:16448:0;344922:44:157;;:::i;:::-;199990:64;;;;199917;344922:44;;;;:::i;:::-;199917:64;;;6878:36:0;;;;1563:16448;6878:36;;1563:16448;6878:36;;;;;;1563:16448;6878:36;;;:::i;:::-;;;1563:16448;;;;;6878:36;;;;;;;-1:-1:-1;6878:36:0;;13510:53:156;;;;;:::i;:::-;1563:16448:0;;13510:53:156;;;;13336:164;;;;1563:16448:0;13336:164:156;;1563:16448:0;13336:164:156;;;;;;1563:16448:0;13336:164:156;;;:::i;:::-;;;1563:16448:0;;;;;13336:164:156;;;;;;;-1:-1:-1;13336:164:156;;;1563:16448:0;;;;;;;;;;;;;;;;;;;;;;;;15625:14;-1:-1:-1;;;;;1563:16448:0;;;;;;;;;;;;;;;;;;;14568:11;1563:16448;14482:18;;;;-1:-1:-1;;;;;15116:14:0;1563:16448;;;14647:17;1563:16448;14482:18;14564:22;;;;;;14628:67;1563:16448;;;;;;;14588:3;14680:14;;;;;;;;;:::i;:::-;1563:16448;;;;-1:-1:-1;;;14628:67:0;;1563:16448;;;;;;-1:-1:-1;;;;;1563:16448:0;;14628:67;;1563:16448;;14628:67;1563:16448;14628:67;1563:16448;14628:67;;;;;;;;;;;14588:3;14628:67;14738:14;;14628:67;14738:14;;;:::i;:::-;1563:16448;;;;-1:-1:-1;;;14731:47:0;;14772:4;1563:16448;14731:47;;1563:16448;;;;;;;;;;;-1:-1:-1;;;;;1563:16448:0;14731:47;;;;;;;;;;;14588:3;14792:21;14831:14;;;;:::i;:::-;1563:16448;;;;;;;;-1:-1:-1;;;;;1563:16448:0;;;14879:18;15026:50;14879:18;15056:19;15027:24;15012:64;14879:18;14895:2;14827:172;15027:24;:::i;:::-;15056:19;;:::i;15026:50::-;15012:64;;:::i;:::-;1563:16448;;-1:-1:-1;;;15116:28:0;;14628:67;1563:16448;;;15116:28;;;;;;;-1:-1:-1;;;;;15103:41:0;15116:28;1563:16448;15116:28;;;;;14827:172;1563:16448;;15103:41;;:::i;:::-;14588:3;1563:16448;14549:13;;;;;;15116:28;;;;14628:67;15116:28;;;;;;;;;:::i;:::-;;;;;1563:16448;;;;;;;;;14827:172;14958:14;1563:16448;14628:67;14958:14;;;:::i;:::-;1563:16448;;;;-1:-1:-1;;;14952:32:0;;1563:16448;;;;;;;;;;-1:-1:-1;;;;;1563:16448:0;14952:32;;;;;;;15012:64;14952:32;1563:16448;15056:19;14952:32;15027:24;14952:32;15026:50;14952:32;;;;14827:172;1563:16448;;14827:172;15027:24;:::i;14952:32::-;;;;14628:67;14952:32;;;;;;;;;:::i;:::-;;;;14731:47;;;;14628:67;14731:47;;;;;;;;;1563:16448;14731:47;;;:::i;:::-;;;1563:16448;;;;;14731:47;;;;;;;-1:-1:-1;14731:47:0;;14628:67;;;;;;;;;;;;1563:16448;14628:67;;;:::i;:::-;;;1563:16448;;;;14628:67;1563:16448;;14628:67;;;;;-1:-1:-1;14628:67:0;;1563:16448;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1563:16448:0;;;;;-1:-1:-1;1563:16448:0;;;;;;;;;;;;;;;;;;;;;:::i;:::-;735:10:46;;-1:-1:-1;;;;;1563:16448:0;;5421:34:26;5417:102;;5529:37;;;;:::i;5417:102::-;-1:-1:-1;;;5478:30:26;;1563:16448:0;5478:30:26;;1563:16448:0;;;;;;;-1:-1:-1;;1563:16448:0;;;;;;-1:-1:-1;;;;;1563:16448:0;;;;;;344682:69:157;1563:16448:0;;;;;;:::i;:::-;2466:103:49;;:::i;:::-;1563:16448:0;;;:::i;344682:69:157:-;1563:16448:0;;-1:-1:-1;;;5594:58:0;;5618:10;1563:16448;5594:58;;1563:16448;5638:4;1563:16448;;;;;;;;;;-1:-1:-1;;;;;5594:10:0;1563:16448;;;;;;;-1:-1:-1;1563:16448:0;5594:58;;;;;;;;1563:16448;-1:-1:-1;1563:16448:0;;-1:-1:-1;;;5688:28:0;;1563:16448;;;;5688:28;;;;;;;;1563:16448;5688:28;;;1563:16448;-1:-1:-1;;;1563:16448:0;;;;;;;;;;;;;;;;;;;5757:53;;1563:16448;5757:53;;1563:16448;5757:53;;;;;;;1563:16448;5757:53;;;1563:16448;;;;;;;;;:::i;:::-;5858:1;1563:16448;;;;;;;;5870:45;;;:::i;:::-;1563:16448;5925:34;;;:::i;:::-;1563:16448;6087:3;6069:15;1563:16448;6069:15;;;1563:16448;;;-1:-1:-1;;;;;;;;;;;1563:16448:0;-1:-1:-1;;;;;1563:16448:0;3173:49:155;;;;;1563:16448:0;;;;;;;;3173:49:155;;1563:16448:0;;3173:49:155;;1563:16448:0;;;;;;;;;;:::i;:::-;3173:49:155;;;;;;;;;;1563:16448:0;-1:-1:-1;;;;;;;;;;;;1563:16448:0;;;-1:-1:-1;;;3304:209:155;;1563:16448:0;;3304:209:155;;1563:16448:0;;;;;;-1:-1:-1;;;;;1563:16448:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;6087:3;1563:16448;;;;;;;;3304:209:155;;;;;;;;;;;;6136:10:0;3292:221:155;;5618:10:0;6136;;:::i;3173:49:155:-;;;;;1563:16448:0;3173:49:155;;:::i;:::-;1563:16448:0;;;3173:49:155;;;1563:16448:0;;;;;;;;;;;;;;;;;;;;;5757:53;;;;1563:16448;5757:53;;1563:16448;5757:53;;;;;;1563:16448;5757:53;;;:::i;:::-;;;1563:16448;;;;;5757:53;;;;;;;-1:-1:-1;5757:53:0;;5688:28;;;1563:16448;5688:28;;1563:16448;5688:28;;;;;;1563:16448;5688:28;;;:::i;:::-;;;1563:16448;;;;;5688:28;;;;;;-1:-1:-1;5688:28:0;;5594:58;;;1563:16448;5594:58;1563:16448;5594:58;;;;;;;:::i;:::-;;;1563:16448;;;;4330:25:26;1563:16448:0;;;:::i;:::-;4300:18:26;2475:4;4300:18;;3901:6;1563:16448:0;3901:6:26;1563:16448:0;;3901:22:26;1563:16448:0;3901:6:26;1563:16448:0;3901:22:26;1563:16448:0;3810:120:26;;2475:4;4330:25;:::i;:::-;1563:16448:0;;;;;;;-1:-1:-1;;1563:16448:0;;;;;;;;3901:6:26;1563:16448:0;3901:6:26;1563:16448:0;;3901:22:26;1563:16448:0;3901:6:26;1563:16448:0;3901:22:26;1563:16448:0;3810:120:26;;1563:16448:0;;;;;;;;;;;;;-1:-1:-1;;1563:16448:0;;;;3364:13;1563:16448;-1:-1:-1;;;;;1563:16448:0;3350:10;:27;1563:16448;;2466:103:49;;:::i;:::-;16174:13:0;1563:16448;16174:17;1563:16448;;;16174:13;1563:16448;;;3364:13;1563:16448;;;-1:-1:-1;;;16318:59:0;;-1:-1:-1;;;;;1563:16448:0;;;;16318:59;;1563:16448;;;;;;;;;;;;16318:59;;1563:16448;;;16318:20;1563:16448;16318:59;;;;;;;1563:16448;16318:59;;;1563:16448;16317:60;;16313:114;;1857:1:49;1563:16448:0;;;16313:114;16400:16;;;1563:16448;16400:16;1563:16448;;16400:16;16318:59;;;;1563:16448;16318:59;1563:16448;16318:59;;;;;;;:::i;:::-;;;;1563:16448;;;-1:-1:-1;;;1563:16448:0;;;;;;;;;;;;-1:-1:-1;;;1563:16448:0;;;;;;;;;;-1:-1:-1;;;1563:16448:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;1563:16448:0;;;;;;;;;;;;;-1:-1:-1;;1563:16448:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2673:47:26;;;:87;;;;1563:16448:0;;;;;;;2673:87:26;-1:-1:-1;;;862:40:54;;-1:-1:-1;2673:87:26;;;1563:16448:0;;;;;;;;;;;;;;-1:-1:-1;;;;;1563:16448:0;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1563:16448:0;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1563:16448:0;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1563:16448:0;;;;;;;:::o;:::-;;;;-1:-1:-1;1563:16448:0;;;;;-1:-1:-1;1563:16448:0;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1563:16448:0;;;;;;;;;;;-1:-1:-1;;1563:16448:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1563:16448:0;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1563:16448:0;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;5719:1;1563:16448;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;15393:11;1563:16448;;;;;;;15393:11;-1:-1:-1;1563:16448:0;;-1:-1:-1;1563:16448:0;;-1:-1:-1;1563:16448:0;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1563:16448:0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1563:16448:0;;-1:-1:-1;1563:16448:0;;-1:-1:-1;1563:16448:0;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1563:16448:0;;;;;;;;;;;;;;;;;14568:11;1563:16448;;;;;;14568:11;-1:-1:-1;1563:16448:0;;-1:-1:-1;1563:16448:0;;;-1:-1:-1;1563:16448:0;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1563:16448:0;;;;;;;:::o;3040:16::-;1563:16448;;;3040:16;;;;;;;:::o;:::-;9513:8;1563:16448;3040:16;;;;;9513:8;-1:-1:-1;1563:16448:0;3040:16;1563:16448;-1:-1:-1;1563:16448:0;3040:16;;;;-1:-1:-1;3040:16:0;:::o;2575:307:49:-;1899:1;2702:7;1563:16448:0;2702:18:49;2698:86;;1899:1;2702:7;1563:16448:0;2575:307:49:o;2698:86::-;2743:30;;;-1:-1:-1;2743:30:49;;-1:-1:-1;2743:30:49;3199:103:26;2954:6;1563:16448:0;;;;;;;;;;;735:10:46;1563:16448:0;;;;;;;;;;3519:23:26;3515:108;;3199:103;:::o;3515:108::-;3565:47;;;2954:6;3565:47;735:10:46;3565:47:26;1563:16448:0;;;;2954:6:26;3565:47;6179:316;1563:16448:0;;;;;;;;;;;;-1:-1:-1;;;;;1563:16448:0;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1563:16448:0;;;;;;;;;;;;;;;-1:-1:-1;;3040:16:0;1563:16448;3040:16;1563:16448;;735:10:46;;1563:16448:0;;6370:40:26;;1563:16448:0;6370:40:26;6347:4;6424:11;:::o;6272:217::-;6466:12;;1563:16448:0;6466:12:26;:::o;1563:16448:0:-;;;;;;;;;;;;;;-1:-1:-1;1563:16448:0;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;1791:128:154;-1:-1:-1;1563:16448:0;1873:13:154;1563:16448:0;;;-1:-1:-1;1563:16448:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1563:16448:0;;-1:-1:-1;1563:16448:0;;;;;;;;;;;;;;;;;;1791:128:154:o;6730:317:26:-;1563:16448:0;;;;;;;;;;;;-1:-1:-1;;;;;1563:16448:0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1563:16448:0;;;;;;;;;;;;;;;-1:-1:-1;;3040:16:0;1563:16448;;735:10:46;;1563:16448:0;;6922:40:26;;1563:16448:0;6922:40:26;1563:16448:0;6976:11:26;:::o;13151:419:156:-;1563:16448:0;13151:419:156;;;;-1:-1:-1;;;;;;;;;;;1563:16448:0;;-1:-1:-1;1563:16448:0;;;;;;;;;;;;13336:164:156;;;;;1563:16448:0;13428:10:156;1563:16448:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1563:16448:0;;;;;;-1:-1:-1;;1563:16448:0;;;13336:164:156;;;-1:-1:-1;;;;;1563:16448:0;13336:164:156;;;;;;;-1:-1:-1;13336:164:156;;;13151:419;-1:-1:-1;;;;;;;;;;;;1563:16448:0;-1:-1:-1;;;;;1563:16448:0;13327:173:156;13510:53;;;;;-1:-1:-1;1563:16448:0;;;;;;;;;;;;;;13510:53:156;;13336:164;13510:53;;1563:16448:0;13428:10:156;1563:16448:0;;;;13510:53:156;;;;;;;;13151:419;:::o;13510:53::-;-1:-1:-1;13510:53:156;;;:::i;:::-;13151:419::o;13336:164::-;;;;1563:16448:0;13336:164:156;;1563:16448:0;13336:164:156;;;;;;1563:16448:0;13336:164:156;;;:::i;:::-;;;1563:16448:0;;;;;13336:164:156;;;;;;;-1:-1:-1;13336:164:156;;13815:243;-1:-1:-1;;;;;;;;;;;1563:16448:0;;;-1:-1:-1;;;13977:74:156;;1563:16448:0;13977:74:156;;;1563:16448:0;;;-1:-1:-1;;;1563:16448:0;;;;;;;;;;13977:74:156;;1563:16448:0;;-1:-1:-1;;;;;1563:16448:0;13977:74:156;;;;;;;1563:16448:0;13977:74:156;;;13968:83;13815:243;:::o;13977:74::-;;;1563:16448:0;13977:74:156;;1563:16448:0;13977:74:156;;;;;;1563:16448:0;13977:74:156;;;:::i;:::-;;;1563:16448:0;;;;;13815:243:156;:::o;13977:74::-;;;-1:-1:-1;13977:74:156;","linkReferences":{},"immutableReferences":{"63":[{"start":402,"length":32},{"start":3219,"length":32},{"start":5327,"length":32},{"start":6481,"length":32},{"start":6562,"length":32}],"66":[{"start":1025,"length":32},{"start":2761,"length":32},{"start":3619,"length":32},{"start":6598,"length":32}],"68":[{"start":1326,"length":32},{"start":3901,"length":32},{"start":4363,"length":32},{"start":4450,"length":32}],"70":[{"start":2846,"length":32}],"73":[{"start":1570,"length":32},{"start":2357,"length":32},{"start":2590,"length":32},{"start":2666,"length":32},{"start":3847,"length":32},{"start":7482,"length":32}],"76":[{"start":8298,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","burnShares(bytes32,bytes32,bytes)":"9134867c","burnSharesCallback(uint256,uint8,uint64,bool,bool)":"fcb74a45","computeShareValue()":"4148fc4f","getIndexFundToken()":"75696e7f","getIndexTokens()":"38f250ec","getRoleAdmin(bytes32)":"248a9ca3","getStablecoin()":"b6f67312","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","mintShares(bytes32,bytes)":"35c995ec","mintSharesCallback(uint256,uint8,uint64)":"97771de5","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","sendFeesToProtocolOwner()":"05d7d94b","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_indexTokens\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"_stablecoin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_decypheredStablecoin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_indexFundFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_indexFundToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_marketDataFetcher\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_swapsManagerProxy\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_initialSharePrice\",\"type\":\"uint256\"},{\"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\":\"_poolKeys\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToSwap\",\"type\":\"uint256\"}],\"name\":\"AmountToSwapTooBig\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToBurn\",\"type\":\"uint256\"}],\"name\":\"SharesToBurnAmountTooBig\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToMint\",\"type\":\"uint256\"}],\"name\":\"SharesToMintAmountTooBig\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountToBurn\",\"type\":\"uint256\"}],\"name\":\"UserShareBalanceTooSmall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"BurnSwapsPerformed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"}],\"name\":\"FeeCollected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"IndexTokensRedeemed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"MintSwapsPerformed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SharesBurned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SharesMinted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"einput\",\"name\":\"encryptedAmount\",\"type\":\"bytes32\"},{\"internalType\":\"einput\",\"name\":\"encryptedRedeemIndexTokens\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"inputProof\",\"type\":\"bytes\"}],\"name\":\"burnShares\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestID\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"transferErrorCode\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"decryptedAmount\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"redeemIndexTokens\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"hasUserEnoughSharesToBurn\",\"type\":\"bool\"}],\"name\":\"burnSharesCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"computeShareValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shareValue\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIndexFundToken\",\"outputs\":[{\"internalType\":\"contract IndexFundToken\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIndexTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStablecoin\",\"outputs\":[{\"internalType\":\"contract ConfidentialERC20WithErrorsWrapped\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"einput\",\"name\":\"encryptedAmount\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"inputProof\",\"type\":\"bytes\"}],\"name\":\"mintShares\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestID\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"transferErrorCode\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"decryptedAmount\",\"type\":\"uint64\"}],\"name\":\"mintSharesCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sendFeesToProtocolOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"burnShares(bytes32,bytes32,bytes)\":{\"details\":\"Function implementation is pending.\",\"params\":{\"encryptedAmount\":\"The encrypted amount of shares to be burned.\",\"encryptedRedeemIndexTokens\":\"The encrypted flag indicating whether to redeem index tokens.\",\"inputProof\":\"The proof for the encrypted amount.\"}},\"constructor\":{\"params\":{\"_decypheredStablecoin\":\"Address of the transparent version of the stablecoin.\",\"_indexFundFactory\":\"Address of the factory contract that deploys the index fund.\",\"_indexFundToken\":\"Address of the token contract representing the index fund shares.\",\"_indexTokens\":\"Array of token addresses that compose the index.\",\"_initialSharePrice\":\"Initial share price (in stablecoin units).\",\"_marketDataFetcher\":\"Address of the protocol market data fetcher.\",\"_poolKeys\":\"Array of pool keys used for token swaps.\",\"_stablecoin\":\"Address of the stablecoin used for deposits.\",\"_swapsManagerProxy\":\"Address of the proxy used to manage token swaps.\"}},\"getIndexFundToken()\":{\"returns\":{\"_0\":\"The IndexFundToken contract.\"}},\"getIndexTokens()\":{\"returns\":{\"_0\":\"An array of addresses representing the index tokens.\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getStablecoin()\":{\"returns\":{\"_0\":\"The IERC20 stablecoin contract.\"}},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"mintShares(bytes32,bytes)\":{\"details\":\"Handles fee deduction, token swaps, and share minting. It fetches market data and calculates swap amounts based on token market caps.\",\"params\":{\"encryptedAmount\":\"The encrypted amount of stablecoin the user is depositing.\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"sendFeesToProtocolOwner()\":{\"details\":\"Only callable by the protocol owner and protected against reentrancy.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"title\":\"IndexFund\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"burnShares(bytes32,bytes32,bytes)\":{\"notice\":\"Burns a specified amount of index fund shares.\"},\"computeShareValue()\":{\"notice\":\"Computes the current value per share based on market data.\"},\"getIndexFundToken()\":{\"notice\":\"Retrieves the index fund token contract instance.\"},\"getIndexTokens()\":{\"notice\":\"Retrieves the list of index token addresses.\"},\"getStablecoin()\":{\"notice\":\"Retrieves the stablecoin contract used by the index fund.\"},\"mintShares(bytes32,bytes)\":{\"notice\":\"Mints new index fund shares by depositing a specified amount of stablecoin.\"},\"sendFeesToProtocolOwner()\":{\"notice\":\"Transfers the collected fees to the protocol owner.\"}},\"notice\":\"This contract implements an index fund where users can mint shares by depositing stablecoin.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ConfidentialIndexFund.sol\":\"ConfidentialIndexFund\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@chainlink/=lib/chainlink/\",\":@ensdomains/=lib/v4-core/node_modules/@ensdomains/\",\":@httpz-contracts/=lib/httpz-contracts/contracts/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/universal-router/=lib/universal-router.git/\",\":@uniswap/v2-core/=lib/v2-core/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/\",\":@uniswap/v4-core/=lib/v4-core/\",\":@uniswap/v4-periphery/=lib/v4-periphery/\",\":chainlink/=lib/chainlink/\",\":ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":fhevm-contracts/=node_modules/fhevm-contracts/\",\":fhevm-core-contracts/=node_modules/fhevm-core-contracts/\",\":fhevm/=node_modules/fhevm/\",\":forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":httpz-contracts/=lib/httpz-contracts/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":permit2/=lib/permit2/\",\":solmate/=lib/permit2/lib/solmate/\",\":universal-router.git/=lib/universal-router.git/\",\":v2-core/=lib/v2-core/contracts/\",\":v3-core/=lib/v3-core/\",\":v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/\",\":v4-core/=lib/v4-core/src/\",\":v4-periphery/=lib/v4-periphery/\"],\"viaIR\":true},\"sources\":{\"contracts/ConfidentialIndexFund.sol\":{\"keccak256\":\"0xf62f83a51f7ea367de12060b0e59b9e6b29d4ffa8ee96d78be95ea89fe3cc7bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://32de52e65aed4946dc982aa71f5fe44f7180c2acf7dc35cbfb430e27c67f9268\",\"dweb:/ipfs/QmNwahRXDsPAss1bTjCzztHnFCrsgHQHsaKu4B2e8KjLRr\"]},\"contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol\":{\"keccak256\":\"0x08ddec3305fabf65ffe2c18949b1b18f4ce0aeafd7bb8f68faecf4da9bfa18ab\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://e73a281abe6706aa53fc031839d0fcb73c028f0be2c2ad5428aa4880ca072805\",\"dweb:/ipfs/QmZc9KQXzYstBAKKPye7w5W3jBX1a56G9kCAPs58nkHvFg\"]},\"contracts/ERC20Encryption/ConfidentialERC20WithErrorsWrapped.sol\":{\"keccak256\":\"0xb663d8df9afddc4ea27c24e893b00df774475852dff3f70064161fcdf14f5628\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a19c179384889016ab8061d809b37b78f13257b363f0d3c6910dc0c62d261b3\",\"dweb:/ipfs/QmaA6ddxxLYEqpwUAfCJCH2JENXAEuKGNSf9w7zG9WmQwR\"]},\"contracts/IndexFundFactory.sol\":{\"keccak256\":\"0x874beb76d89c637595dd74734a0f89052c94ae41bd0df19ad00a674f74b79d45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87c4d8dfa8a3b627f7f0f1b3011780bf014b79867b84e48edf7857cc99ddc115\",\"dweb:/ipfs/QmPe4RkpmtHHmX9fq92yz5FWtKuNr7d6HYiJn7E8UyobXu\"]},\"contracts/IndexFundToken.sol\":{\"keccak256\":\"0x42961a70f9142f4e63aaf154379b9023cacca1fd43b6514678eaee59f8fb9890\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://ef1350bcd4141746855a9226d633ad4ac1be64c24d8b5ca8a1e09a7c0064d191\",\"dweb:/ipfs/QmVAK66Y1euBYi18MuSRsUP642x7BhoFQFEkQaUifPvdAX\"]},\"contracts/interfaces/IIndexFund.sol\":{\"keccak256\":\"0x1d9c8fd5bded96f70982cc51fb43db3438989a87fa1513cee239d3e6773489e7\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://c627498c9d3ebda35fac237c30a8151fc2f7a6b1bf39443e4ca9be2766d3d4f2\",\"dweb:/ipfs/QmShbn35ZYr12d5TChnDsu9u6YtC8EDivzVZp5tFc6bVoM\"]},\"contracts/interfaces/IIndexFundFactory.sol\":{\"keccak256\":\"0xdaee28098d25d209508346539130902d9e08f32b24aa18fe915c50a829dd62ac\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://1c6a9ccf80750ad63e7a5cdff241d17130ab3e66e41e6647b10504abbf37fb76\",\"dweb:/ipfs/QmRFJFDzeATHcLQCU6yXxVDThzm2xRZaGDZXFaCZK4aVs8\"]},\"contracts/interfaces/IMarketDataFetcher.sol\":{\"keccak256\":\"0xa5343d6d80de89e9e259d51e9fd50444de43f61f6da31c26ad6f49029a47481a\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://e7fb90369df691fd542180e13cc7a881b46ef86dc1fdac4622d19cb292059112\",\"dweb:/ipfs/QmUnvC7eyCdg83tARSBSoEDPKjZHJZ4mKFWdPwSycki3KL\"]},\"contracts/interfaces/ISwapsManager.sol\":{\"keccak256\":\"0xa98bd09c0946399a4f4ae05e713b3207593528df54e8695a4aa4db885b47e894\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://eca854b1cf38859c81648a4bc824aa8e8e7a6347a3b902ceff0d2eb98cff384d\",\"dweb:/ipfs/QmTFzfKREewMg1xjbuCU5DDPbq8Wi1euCzpE2xJ8RAeJi8\"]},\"contracts/marketData/MarketDataFetcher.sol\":{\"keccak256\":\"0xa756f8531752b5c71493a2c2ff98b3eb75add8b08f925d85313a1ee0c74f4268\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d16ae4cd7db8402c01772c5e11d68616e572f6d1f52167b3ca3749d3844a2d6\",\"dweb:/ipfs/QmbcxnqiDkBNhBCRQd9w7qjU2nC7nTUw9QGqWPiVoZ5DRP\"]},\"contracts/swaps/SwapsManager.sol\":{\"keccak256\":\"0xbf9c74550a5d7f91c56cb8832f5240c1f3e96316ddc67d9391409f1799234071\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c8df81cc2c3fc11287e39be63e97601a943caa10f753add2e05e867ca3171e\",\"dweb:/ipfs/QmVE1svFQVypEFKwSbCbEfVVL5jovsocpKidNSoyFD9g4j\"]},\"lib/chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol\":{\"keccak256\":\"0x257a8d28fa83d3d942547c8e129ef465e4b5f3f31171e7be4739a4c98da6b4f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d39e11b1dc7b9b8ccdabbc9be442ab7cda4a81c748f57e316dcb1bcb4a28bf9\",\"dweb:/ipfs/QmaG6vz6W6iEUBsbHSBob5mdcitYxWjoygxREHpsJHfWrS\"]},\"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol\":{\"keccak256\":\"0x8b45e5bb2fd9212f99e61b4d25b9c9d5ed7cb1a9a684aac34f752c568ef16c76\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://1ca71bb5bfbb2f8a0779f8394baeea01680619637abddb572017d05d96862591\",\"dweb:/ipfs/QmPCzGBE1m6WtDZxrVL5jzkduNaS7fjtYovUWdnzN34qjh\"]},\"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20Wrapped.sol\":{\"keccak256\":\"0x7e178a03b7f034532497a8b762069fff0808277befc880e4a3236938ba1380a7\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://7250476c961801e579719fd0201a3ff6bfdc79e8324db34d5ec0c6cecc281281\",\"dweb:/ipfs/QmNsTR2Rk2FRS3cTNf7WeN3UzPZy6HSj1SFV3Nuwz8Rpzi\"]},\"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol\":{\"keccak256\":\"0xe016a085f72ca3cf6d78ec1cb2182a398106cb7d425e984776a9caab0bad2569\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://3e79dc5075469d660908f5f8b6d0c863b14459d60a0b06fb786d58de8cf30a94\",\"dweb:/ipfs/QmePGRGtoWBnQ8T6ZRyZgiwVh4r67kcmWejwKgjyYN4AAY\"]},\"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20Wrapped.sol\":{\"keccak256\":\"0x72c5379fb2a7e1701a4686f60831bfc474350a42f0660aea815a5ce910cba38b\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://118fac79c89e142247e94763a1ca1235c307a67b37d68fa45d94125bc85c2cb8\",\"dweb:/ipfs/QmcE9P74NQQKnmW9vdtGb8KrWgJWH6K3bNTdrMxrPi716c\"]},\"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol\":{\"keccak256\":\"0xfe322c8f9a8e4fba881715901a5bafd2efa23394ecbc9ec84282818baeff0a07\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://13dba831528dd16408b7abab23eac0664a2a3e5ecbfe5e58e6e321cf2921668a\",\"dweb:/ipfs/QmPq4YeugbayWfeBJR8H7s4jHsnZkACQX2xbdNQ4sdvZrk\"]},\"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol\":{\"keccak256\":\"0xecc6289a9791bef254911393b51d2bfbddc5650ede7fbe7b5cc2b8d3eb01d7a6\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://7463278a20bc5d7fd8b7ec2cb8e592b2d1e0afcf8b59d35d6929d18661d4b38c\",\"dweb:/ipfs/QmTKPoABwNDmK7g7vkti1AkTpkUBHu3iX3zsXQsEuSiqBM\"]},\"lib/httpz-contracts/contracts/utils/EncryptedErrors.sol\":{\"keccak256\":\"0x0b8d08f392884add1af672018359e8980ee0b5e1662fe5e36eb31f053d1d4505\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://2903dd49a88b36aba2e8a45548b6a68d203887356ebdf452b10e0148954ba1a5\",\"dweb:/ipfs/QmTRuP4QXagoV2cLr2ctzFtNK7FK1cDXMYm4feMoMsYoWG\"]},\"lib/httpz-contracts/contracts/utils/TFHEErrors.sol\":{\"keccak256\":\"0x5fef7c2d7d4449d724a2800b37dfcc61e2b635f2747378ce222b9187425f2d13\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://7c2ef113faaec2d74c8d958f80687d0b676082d6231720917aaa8aa934d689a3\",\"dweb:/ipfs/QmNn474JDQ5zvVDwEuicJs6Xq8YEXWGZLoW4KeTWDVG31f\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xd861907d1168dcaec2a7846edbaed12feb8bad2d6781dba987be01374f90b495\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12ff809243040419e2fc2aa7ef0aaa60b3e6ebc901553ba1de970ceeef208c4c\",\"dweb:/ipfs/QmX2dwMVNrQAahqVzEx94gqcVB6Z8ovifPYdEfHZzj7aEb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol\":{\"keccak256\":\"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0\",\"dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x8decfa54cec979c824b044b8128cd91d713f72c71fd7dfa54974624d8c949898\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://271f914261a19d87117a777e0924ada545c16191ef9b00cc40b0134fc14ebc70\",\"dweb:/ipfs/QmdvVNWHGHQrGGPonZJs5NuzTevTjZRM2zayKrDJf7WBA2\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x6ef9389a2c07bc40d8a7ba48914724ab2c108fac391ce12314f01321813e6368\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7a5cb39b1e6df68f4dd9a5e76e853d745a74ffb3dfd7df4ae4d2ace6992a171\",\"dweb:/ipfs/QmPbzKR19rdM8X3PLQjsmHRepUKhvoZnedSR63XyGtXZib\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x4ea01544758fd2c7045961904686bfe232d2220a04ecaa2d6b08dac17827febf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fabe6bef5167ae741dd8c22d7f81d3f9120bd61b290762a2e8f176712567d329\",\"dweb:/ipfs/QmSnEitJ6xmf1SSAUeZozD7Gx7h8bNnX3a1ZBzqeivsvVg\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff\",\"dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaaa1d17c1129b127a4a401db2fbd72960e2671474be3d08cae71ccdc42f7624c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb2f27cd3952aa667e198fba0d9b7bcec52fbb12c16f013c25fe6fb52b29cc0e\",\"dweb:/ipfs/QmeuohBFoeyDPZA9JNCTEDz3VBfBD4EABWuWXVhHAuEpKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]},\"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol\":{\"keccak256\":\"0x534bf5c25d6003a8ce50b400d20fa460c03169ad7baa90d47a912917c36dfe2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc0cc39c40ea23d3c46e8517e19ebdd877719d3159fa032f2a91802cdd205c79\",\"dweb:/ipfs/QmSoNh7HTkD4TJcBkBKSGSPMMpLUZKE7s9f2G6mjdaJywg\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x44f87e91783e88415bde66f1a63f6c7f0076f2d511548820407d5c95643ac56c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://13a51bc2b23827744dcf5bad10c69e72528cf015a6fe48c93632cdb2c0eb1251\",\"dweb:/ipfs/QmZwPA47Yqgje1qtkdEFEja8ntTahMStYzKf5q3JRnaR7d\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889\",\"dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/permit2/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0xcdfd8db76b2a3415620e4d18cc5545f3d50de792dbf2c3dd5adb40cbe6f94b10\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://57b3ab70cde374af1cf2c9888636e8de6cf660f087b1c9abd805e9271e19fa35\",\"dweb:/ipfs/QmNrLDBAHYFjpjSd12jerm1AdBkDqEYUUaXgnT854BUZ97\"]},\"lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0xbadf3d708cf532b12f75f78a1d423135954b63774a6d4ba15914a551d348db8a\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://88ac8256bd520d1b8e6f9c4ac9e8777bffdc4a6c8afb1a848f596665779a55b4\",\"dweb:/ipfs/QmXx7X1dxe6f5VM91vgQ5BA4r2eF97GWDcQDrgHytcvfjU\"]},\"lib/permit2/src/interfaces/IAllowanceTransfer.sol\":{\"keccak256\":\"0x37f0ac203b6ef605c9533e1a739477e8e9dcea90710b40e645a367f8a21ace29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0104d72aeaec1cd66cc232e7de7b7ead08608efcc179491b8a66387614670b0\",\"dweb:/ipfs/QmfAZDyuNC9FXXbnJUwqHNwmAK6uRrXxtWEytLsxjskPsN\"]},\"lib/permit2/src/interfaces/IEIP712.sol\":{\"keccak256\":\"0xfdccf2b9639070803cd0e4198427fb0df3cc452ca59bd3b8a0d957a9a4254138\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f7c936ac42ce89e827db905a1544397f8bdf46db34cdb6aa1b90dea42fdb4c72\",\"dweb:/ipfs/QmVgurxo1N31qZqkPBirw9Z7S9tLYmv6jSwQp8R8ur2cBk\"]},\"lib/permit2/src/interfaces/IPermit2.sol\":{\"keccak256\":\"0xaa631cc9f53e699301d94233007110a345e6779011def484e8dd97b8fe0af771\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc0502cf19c9c18f320a3001201e89e350393b75837f6b7971de18b2de06f30d\",\"dweb:/ipfs/QmT9SfhdJ7VJNNrf94g4H5usyi7ShqWGx7Cqsz9jZTjX96\"]},\"lib/permit2/src/interfaces/ISignatureTransfer.sol\":{\"keccak256\":\"0xe6df9966f8841dc3958ee86169c89de97e7f614c81c28b9dc947b12d732df64e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d4eafdee7f48c3be8350a94eb6edd0bfb2af2c105df65787a77174f356c0317\",\"dweb:/ipfs/QmY1j2adeeAhNpn6cUuthemxGCdLXHTfyMh9yTKsY4mZ2d\"]},\"lib/permit2/src/libraries/SafeCast160.sol\":{\"keccak256\":\"0x8a34e2beac108d74f89510c949983212b5f09307a93ee9e17a9d50e93f6bc8e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828697f9567ce617c5c1c8f76b6bcd250e93aea2c4f3ee188be6dff8443c19e7\",\"dweb:/ipfs/QmafxeSPhUc9gGtNDLAw26oZooC5XNLhDMxHxYhJxL5Nwi\"]},\"lib/universal-router.git/contracts/UniversalRouter.sol\":{\"keccak256\":\"0x5c7515720fa9b429bc83f0044f3a02cdd065fe1773b9fd32151dc5ff9042d368\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://dd77517f3a73a07fdff8f3a52c268afca749a678ea11442140d401eb102f4404\",\"dweb:/ipfs/QmeJiwCtgF1rMB7Foi6PrqWEaXktztPGQfHoAsw1BRhLU3\"]},\"lib/universal-router.git/contracts/base/Dispatcher.sol\":{\"keccak256\":\"0x1564339a5163c5d27f06a64f994a7457b061aa0f5046377bcc5078cd6907cc5d\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://82dc3ed71c19d6e5d1f72304e62e360954fc40a4d92a2a94e862c5474490d58d\",\"dweb:/ipfs/QmcNamJcGijcEetbHWVJHNjSE2WCyQsmEGEGDg9ZNwqSjR\"]},\"lib/universal-router.git/contracts/base/Lock.sol\":{\"keccak256\":\"0x92f953dda0d671178d054eeb3915b70f8ba80be33df8670a9146af4a4bc2c6ac\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://f73faac9532c8a8870d31bcef68a0dde387579d7b755c342b3352a54a4b63682\",\"dweb:/ipfs/QmXLvJb6vxfrUG84ASLhEf7tL62MN3oxkp7aXUxemrZTy3\"]},\"lib/universal-router.git/contracts/interfaces/IUniversalRouter.sol\":{\"keccak256\":\"0x2525b52d1edf5df89bfd093c5b933b9e8f65236f44f58096763a6c87a5cafb63\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5cc0fcfedd6b32586099ee0f6781bb81da99175c65013c06bb6f61a125babb18\",\"dweb:/ipfs/QmcEkSzkjkPpp3YyJZaY232TjuNU4Pw6CSiTWz7sk2Sq5D\"]},\"lib/universal-router.git/contracts/libraries/Commands.sol\":{\"keccak256\":\"0xa08ae7be62972a4f17779257641065d41fa5cc2d5fc7050e5e5b76fbda9e6a9f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0b94d73c5cd54aba5e1ad4ccfc33df13c1b04417f53fda188275fc15f95f02f2\",\"dweb:/ipfs/QmNpigDf9g9AAbFr27gug5hAZjb6iuFekRqXonC6upoEcp\"]},\"lib/universal-router.git/contracts/libraries/Constants.sol\":{\"keccak256\":\"0xb668498f11a4bb576a0a61c183da7ca348249dd9176c57dcb6532912b1b49b0e\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://87d8588baf0b7b72faec637843c7623ac416d45e0f7719d0a635afe7981b2cf2\",\"dweb:/ipfs/QmSu7Jr8JM6mab2dddk1UaiPhyLZvsA8iLxC9MEcBUaMzT\"]},\"lib/universal-router.git/contracts/libraries/Locker.sol\":{\"keccak256\":\"0xfccb45f77b5c66f0f417d803b4b3f7ae97206d8d850a383ab7d97f25d0617cc0\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b47f3f4e74961f8e9d918c2cc3514cb8d097caee6ab2c20c10735235dec440ec\",\"dweb:/ipfs/QmfTWUjP7g7zTw67C2RvoMhWRX6ExLNV3UYSb5LqfE4bqC\"]},\"lib/universal-router.git/contracts/libraries/MaxInputAmount.sol\":{\"keccak256\":\"0x2dd6efbcaf9991c852e29a726f9876a0a6d08f2271912e69efa5c6a5e8034739\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://949ebd746eee3589d1e466c738884bd3532043d9e8a7b77c1521a098ba3c69b6\",\"dweb:/ipfs/QmZC9idgGQDfLksqfz41FrcsVXhqkfRZCZH9MJXQkQavt6\"]},\"lib/universal-router.git/contracts/modules/MigratorImmutables.sol\":{\"keccak256\":\"0x666d1622a10509c69b679df9d175a3e0c176a62b9e18d1cee7634219aded8f68\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a88e472495d32648ba3e7964c4c88b68853b49540f40afbaf2ede6822372b49f\",\"dweb:/ipfs/QmQoaWbCpwFYCnRgehM7ruYaa7za8fBghT5aQCRCPYJr1V\"]},\"lib/universal-router.git/contracts/modules/Payments.sol\":{\"keccak256\":\"0x19a103b3269ee2f7bc28a6e1850091b2087dd2558662494d1104ac8e5ac68524\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://ba64c600f57bb13672a5549b6dba11ae4dfe49f688c24eadb3289dcc87d226a8\",\"dweb:/ipfs/QmWkmVyeai1WeymuWqEk1fQE5R2frrQQjJv81cytrKvFuA\"]},\"lib/universal-router.git/contracts/modules/PaymentsImmutables.sol\":{\"keccak256\":\"0x9ca2535b69b15d3bdb7a15871c5bca83f5536cffb0191c64f4c6a2db4a154338\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://dc85fb3ddd19481bf0d1a8a9f5d9631b396d86344a33e30b4c4ab6cd58d51169\",\"dweb:/ipfs/QmeEGFqfHFUo1Mu6tRfCjvVGJYyoDu29ZspZgxxcj6ykvq\"]},\"lib/universal-router.git/contracts/modules/Permit2Payments.sol\":{\"keccak256\":\"0x887ec1f57144cd91a1b86d5a7b1d1119146f41dae6865e6fd0e849801e968628\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://08b713e82f3f192976902497e1c02dd60bf7e90c83a471eb4c7ac7710b086f95\",\"dweb:/ipfs/QmWJSGZ9Dj7FmFCnDWpDdL5fx76JYDgYWhggXCroxV7cjX\"]},\"lib/universal-router.git/contracts/modules/V3ToV4Migrator.sol\":{\"keccak256\":\"0x5ee3774b749b9a8d851dc6074c8de8c61f408a4cfd829c47c753840c839ba91c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://337e17b84f4fdad7e32be0e482e7b2471d7f927ba3b3174cae38cf2509d97443\",\"dweb:/ipfs/QmbzgdyxAC5vpvWRGaemn3Qn7DRbNDjHSH3KbHSDPwJ8LY\"]},\"lib/universal-router.git/contracts/modules/uniswap/UniswapImmutables.sol\":{\"keccak256\":\"0xb810727f5e734a30871ff1d83d8c96d99150f1ce77bb39e032aec6254ca43cd0\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5eb9df8b6c81f8e33b8a6bace294ed0d81c541988f7ba42027e3041eff32e1bd\",\"dweb:/ipfs/QmVPSWBv7WegGySGV4BoewKKx7iAetHsjydxQyKk3dh5yw\"]},\"lib/universal-router.git/contracts/modules/uniswap/v2/UniswapV2Library.sol\":{\"keccak256\":\"0x829d48c1b69d2e1bc078a57aae8d87dc31d920b01c62d6268d20d517fd24150c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b87236ea4c1e64c12434f31abbd658ca3fc510ebe65be731d84d3ce8efa71c32\",\"dweb:/ipfs/QmUerjg5Ebt3pfQZtk2sArUy414gQtHwvFNgsQNe4PhxbN\"]},\"lib/universal-router.git/contracts/modules/uniswap/v2/V2SwapRouter.sol\":{\"keccak256\":\"0x0fcb6ad6c4d5a7b25054dd9951432b2b41cb2c0077e6bc7ca0d0416115ef2326\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://124b1dd54d27914306bdd1021e171111f0ae622fffb2974ccdee24eab31b359d\",\"dweb:/ipfs/QmfKr2sbxdc31aPWv9d6ETA4GyfqHiKVZRKqhREnMkR5j9\"]},\"lib/universal-router.git/contracts/modules/uniswap/v3/BytesLib.sol\":{\"keccak256\":\"0xc3c23e83afd06781c4a0a5c418c20c40611e71d049766eb70987007ce372656e\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://c62989beb75edad6de18c31be31eb68f0c3fb15c5f9e9bb380221afc6785fda5\",\"dweb:/ipfs/QmVEsp5yivbmjP7HcXS5kJ1XJY5Uic3J3y4zjpwD1SNySD\"]},\"lib/universal-router.git/contracts/modules/uniswap/v3/V3Path.sol\":{\"keccak256\":\"0xf6abbf4c7cd0975ddabb0ddb641ea9ae3b0cc1dd9a1cabf5e7cc271a974eabc2\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1e0987fc9b81c65eada64cb65f981680c2054e489a6049d397b5ecbbf4c9a0a9\",\"dweb:/ipfs/QmW7mbbHsfc2GLy2GkCUv3VwXV93y6UFtKDD7E9QEtzFH7\"]},\"lib/universal-router.git/contracts/modules/uniswap/v3/V3SwapRouter.sol\":{\"keccak256\":\"0x31fe8777a6de583c54a0f09ec11d318c253b7fe50c7a2af1608b2b89a03ca660\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://780219ff0d6d333727655719d31d61ce345cdbca7f906467a2d00e3162b3c0aa\",\"dweb:/ipfs/QmbauA5Kvj7m9P9hxe4hhnLY5w2TEXMMnCc9oWehVgj2jo\"]},\"lib/universal-router.git/contracts/modules/uniswap/v4/V4SwapRouter.sol\":{\"keccak256\":\"0x68b7666641ad5ba227b500c9845c4bc71eaaac6556d97d31d123fce41b51969a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://40a99bb5e9e407ad6741f5c210ac23a32950e7567c73f21975444e9729fc6cfb\",\"dweb:/ipfs/QmUK98HjyQ7NDGR36DD9owjLDk7ujEj5b5uKt9zjUsCFG5\"]},\"lib/universal-router.git/contracts/types/RouterParameters.sol\":{\"keccak256\":\"0x9efe9912d44e56cff8fc23e1411c80b47ffc9f5c0ad5ca5c66ab77a1b7ddfcbf\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://473acf49dc1be1ca997ad20258124e26e03b3cef15412a8827ecf9b52e4cef21\",\"dweb:/ipfs/QmaGR2QL6im4XYJpubqhUuP82nFytemX7wwEk4cXECJYJN\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56\",\"dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0xa72de315bd655a0fd5043ff97c7fd3868a1b5b1986afd75c6f5f8fd0f904985f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8838e68aba9caf2b2cb13bd4cb661b1f9c167cca4dfcd50ac72ae96691392df\",\"dweb:/ipfs/QmfLq3cmsSQTuLLxiF4bgceaf2jx8CoiVXQd7BZXGgJG1E\"]},\"lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol\":{\"keccak256\":\"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b\",\"urls\":[\"bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf\",\"dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH\"]},\"lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"lib/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652\",\"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"lib/v3-core/contracts/libraries/SafeCast.sol\":{\"keccak256\":\"0x4c12bf820c0b011f5490a209960ca34dd8af34660ef9e01de0438393d15e3fd8\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://fed11489e218e55d087d42b4f350a30e10cd2aedec8f432bd3cc712f648d5869\",\"dweb:/ipfs/QmWfRnRxyXwHUDcTQPazxYYk5jxErGeQqdvnYtyg5nBPbU\"]},\"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\":\"0x4c9571aed0c2b6ef11832545554fc11ffdb03746daaf5c73683c00600bfc7ec0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e78b34b58ce9de91b91943b4f3cc3ce121d0b151e123e8a600ac5ef64d91db6c\",\"dweb:/ipfs/QmRkaQnPCYwLrXgbpGujJTx32PaZK63KSPJJV1XmnQuCMb\"]},\"lib/v4-core/src/interfaces/IPoolManager.sol\":{\"keccak256\":\"0x3534f00531038e77ab8a7fc4d0a6e0993ee53fb7a396b1324ad917318ea46cea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4a7e771828dc40848485b568a1cf514f553ace6653f4f4d1ad3f3e9cdb6c27\",\"dweb:/ipfs/QmTjzQ7KVYnrEWtxPER2E4MXzycgcznfzSDsZtd5turk5V\"]},\"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/CurrencyReserves.sol\":{\"keccak256\":\"0x1576616129933fcdf3b684cea33cffd9c95e18fafbd2832a8c48ac3d8526d4c3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://33b050efb9b81803b18f562271e7cca2ec5362c4d505860d6419b4a345636725\",\"dweb:/ipfs/QmQtFtTwKZ5pFVGD2ENDUXvp7ECFvzqeCuJ1miJcUHdmiX\"]},\"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/Lock.sol\":{\"keccak256\":\"0x9338be4b5695f1da5f3d3f7a3eeaf7a356c1045458289586ac0cbe9cef77c6d5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://485ec42ed6155469d612a9a0c18068ebfbad74448792a338a435503de3ef1b2c\",\"dweb:/ipfs/QmVnnv5u74MYatfRmBgrcfFYQcsMAJMG9jQ6ju8UiydKNF\"]},\"lib/v4-core/src/libraries/NonzeroDeltaCount.sol\":{\"keccak256\":\"0x0666ebd5d3528d7d52c48538296367a4cff97a578cf13365c51983fae3219b87\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://d27f1be3bd09d85c53d3e6a539dd6529ddd8b2b764ccb47fd7765fc81f9add59\",\"dweb:/ipfs/QmQdZujNXhKEXQBkKtF5jbdvo1yXMqPDUoBBaF9S5u3Kpm\"]},\"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/libraries/TransientStateLibrary.sol\":{\"keccak256\":\"0x7d1e0875747bd89b32c25f1a48da2766e5f4aff1f671ad5f3c0c07ebbbcb946a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d76cfeb1cb60595b41ecc51c8a12fb4bf63a7fc733d0b1a2e3adb55abeb1f9d5\",\"dweb:/ipfs/Qmb8oX7DtsRpw3tTtdWZwGhauj1evq43d3PLwe4nSDAKkV\"]},\"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-periphery/src/V4Router.sol\":{\"keccak256\":\"0x8ede1e538ae9b74984c52347a3bbaee7b3d69f00ed9b3a6db1f1bd6e058a2326\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e370416fa9681ad124414e2b2fb57a5455e15dd873c9e61c964177ae5c2d544\",\"dweb:/ipfs/QmWrM97ezNB9CpawqhkwpubXHcXUbMFWKYEbD3D6EyAe1w\"]},\"lib/v4-periphery/src/base/BaseActionsRouter.sol\":{\"keccak256\":\"0xca1ee500f88951ad351d18ba2adfb5fe23abef6d502f234ce5748a3497674a4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f03ab458be27c29cef1b7ace5b11517d3fef8bf6131af7dd80d6297c224cf71\",\"dweb:/ipfs/QmYoH6o8yeRzbeLoaMG9TjS8q2Fw7T1h4vXvvMnp3XfsUa\"]},\"lib/v4-periphery/src/base/DeltaResolver.sol\":{\"keccak256\":\"0x94a2da2be5c924df65a8e1e29f585bbe4c37777fedd43b45989c66d509a4a83c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42bba590f6e817fd56328b74ae99bfdc4df57386d0a69ee22b9108341953ed36\",\"dweb:/ipfs/QmdusastK7FWYouLz9gvV5J3z8MQbNKLJNNHTrc1vi7DWw\"]},\"lib/v4-periphery/src/base/ImmutableState.sol\":{\"keccak256\":\"0x1867c9fa2f9b4fa73bab0fcdc9d19ccef4eeac552273d8b84a170cd1cc90350a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af2d699b439e13b599632fddfe82718aebd41055fba7c075f186675c588d1337\",\"dweb:/ipfs/Qmc111gckSKb9aESn3wRFLeLiS4KGujaUcaYJgRnCRfwQU\"]},\"lib/v4-periphery/src/base/SafeCallback.sol\":{\"keccak256\":\"0xd78b583df1b9ee06d58e83b84fc9f08971389b34dd34bc13db072e0c13c710da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0a47f4bcd6060c4462153b9a7c52a60a460ace91acb6ddd5492eab28ec26173\",\"dweb:/ipfs/QmdRCTRS1dhFjWEy6z577j4xz9J5HPfHBwcNzAic8G59oT\"]},\"lib/v4-periphery/src/interfaces/IEIP712_v4.sol\":{\"keccak256\":\"0xd7f7115476e307a0bfc32a0f0a0f5434e9e5ca62a6c5af1e18b75e48161bb408\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1600b953556da38a7adc5ad2a2925ec5fb138fecf8eec48743646543195b736\",\"dweb:/ipfs/QmarZi2aiLVAfHXgnDWV1cCFiZk2DdPW7KJnWHqzuRChJR\"]},\"lib/v4-periphery/src/interfaces/IERC721Permit_v4.sol\":{\"keccak256\":\"0x103adbba724ef536abc536fe8a4d7dc12880724c562109b69f2adce4a91fa017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06f51b5a5a218e0bc866a83e7821be53c9db9de0ca921f16abd3d13ea0eab69d\",\"dweb:/ipfs/QmbnhLy992hpQZyphTkj7fpr6jKKVva2AzfmLiDZEuqHAk\"]},\"lib/v4-periphery/src/interfaces/IImmutableState.sol\":{\"keccak256\":\"0x36ab3100e87457ecf04887f4f540e34fd7f21d8e3b83880cb679239e60b7b06b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f290c7ce8e4832608d637a51b13dff95abecf6549485448e647a11c8ed01341\",\"dweb:/ipfs/QmfD1R6mTp8j4EjQXmQZW3vCh11EYFjnvoaw8rXRP27mMq\"]},\"lib/v4-periphery/src/interfaces/IMulticall_v4.sol\":{\"keccak256\":\"0x336bec303f7ff86497d2679464c5adad5040f412b3d0769ce5e1d2a42f7e2c08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7734f047d98d331c8abc51ad9f358ceee0a6dcae8d89ac49084b84de0d2d42e7\",\"dweb:/ipfs/QmWij2h7mU36LsXhb9P6pkYXrSCua4ixeWaVFSrsEcEmPQ\"]},\"lib/v4-periphery/src/interfaces/INotifier.sol\":{\"keccak256\":\"0xfdc5187a98240a1691aae98b7dd2444d4c2bfb4746f3c34de9f3d18399c17c5e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://683af56401ec4f8817e8dfe150e7b3febaf0baaf40efe8d0d0475f735275f746\",\"dweb:/ipfs/QmRQ6S3nFnSc2jjDcQTvUJdTf4xKPojmvCkpvgyr6qTuVV\"]},\"lib/v4-periphery/src/interfaces/IPermit2Forwarder.sol\":{\"keccak256\":\"0xfad472937280e861125ff12aa6f9c2cf7440fbb20a2cc29485c24662ad4279c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31bfbc331f5972fc373d9469fd1ca1d14818db3275f21b7b590f20820cb4439d\",\"dweb:/ipfs/QmX3Bv9wfYpAFZKBcxKsQSXUrSC8mqNBdzh6XVMS72aNx9\"]},\"lib/v4-periphery/src/interfaces/IPoolInitializer_v4.sol\":{\"keccak256\":\"0x2e4feda94650a2642039e0309ffdec480ee050bc40864bf5e1dba42bb4dc9e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://964c178b4da8bab9ef898b94bb26d7c17cc44c5cf20485f55dcf5e9c7e1b1d92\",\"dweb:/ipfs/QmVd2c3SYteyr5xZgUS4sDAiZF43dLwVAEKdCfvQbkZpRJ\"]},\"lib/v4-periphery/src/interfaces/IPositionManager.sol\":{\"keccak256\":\"0x62dfa0cbee8314ee7e6787db8bc1d364245c340f940875ac7ff11e89d074fc7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26f560c77d8a187bf93a710b827e3167eab3446922192fa8f92f208da2103834\",\"dweb:/ipfs/Qmbzp5gSYdTpMBF9aAb2GraxMEQZb5LRJCyg8VaRUyjTFc\"]},\"lib/v4-periphery/src/interfaces/ISubscriber.sol\":{\"keccak256\":\"0x34ceadec4a63019680e543fe73197f198a55c825d86e18f327840354760b57e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31734feafe1fe162a0702ddf862fcc3bd97505931afb3c685033c0185d898051\",\"dweb:/ipfs/QmQEANYVyaXTNzXKcjUVfPhLU71Bix5vxQH75BpPWMkWgw\"]},\"lib/v4-periphery/src/interfaces/IUnorderedNonce.sol\":{\"keccak256\":\"0xd7f32fee74dc7d1a3b078ca1263961baccaa6bf434c79e8fe0e092e30c3e0ec3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7d1e92d89d5f49c84aa82f3b259678c2c97a4473b22d753ca4411a6b0cec36d\",\"dweb:/ipfs/QmNZoQyminStaAdaLqoDLoWaBU5QWrWjXFjmBm4aFhzL8i\"]},\"lib/v4-periphery/src/interfaces/IV4Router.sol\":{\"keccak256\":\"0xc4133fae25e61cc2447d7331729f6035322d7c1fe26b39b225422bf98cc63459\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c24ff8428504e973e947a059f96289a66c520cd7f8ef47a3224f9cb6abdaf25\",\"dweb:/ipfs/QmVqxYnngWXXcCiuTC143vTEJrjZK5NXWB92pjvVbuJBQ5\"]},\"lib/v4-periphery/src/interfaces/external/IWETH9.sol\":{\"keccak256\":\"0xe88abf12501ac275619aec0687240a07d26968aecbbcdfea88ba8bbd5d6e5e14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7097065d4492b4eccb1a73f99af1e5bec45404c6b973b8f5965c4c91403f5f92\",\"dweb:/ipfs/QmZK8oEqmjmTqhBoh3D3fBpyKGkUEFnptY8xwH9xpNjDm2\"]},\"lib/v4-periphery/src/libraries/ActionConstants.sol\":{\"keccak256\":\"0x3d6f0e5b4a7b1e60bad93e73dce5db67fb66bebef11c31ed8355014a79aa03b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6dfa42e24b1b5c7f66e75304ab034fbb6768518eb2410ccfff8b3defdd1658f2\",\"dweb:/ipfs/QmQQ7fud9mmv7PEWPAQiNzeZhNkWf28Z6nCHc2e6WJFfa7\"]},\"lib/v4-periphery/src/libraries/Actions.sol\":{\"keccak256\":\"0x8efd4b8b289177ee27e557d9d0a5a9f973d66fe1eb1ef8959d316b11987ca830\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07fe35f194eb99465028f0546359befea574d844da53767d32f22b233c3bcc98\",\"dweb:/ipfs/Qmc19631uFxABTHAbGrDrroexi9GdyxWntaum1v8npPYz5\"]},\"lib/v4-periphery/src/libraries/BipsLibrary.sol\":{\"keccak256\":\"0x37ebf99f5d086d9d9f6e7cecbf4d62167f47c63c30248cfcb921e828f0d7a359\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4f8e68a66bb6c166d72cdba6ed6fb83a93f713b79c2c572e8058084eb90ab6c\",\"dweb:/ipfs/QmY32FxtSBRf9PJzNUVzXqFY4i2ApTPHTUMpCBGovd2zo3\"]},\"lib/v4-periphery/src/libraries/CalldataDecoder.sol\":{\"keccak256\":\"0x26df49e13fb5410fd4db253cca877dfdfb3a1ba03e394d054c0e0514a88a56e5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72a0c98c52171708f332f83d517deeb97fdd50ecf28f2510e1866e54593a6ff8\",\"dweb:/ipfs/QmY4LiDUfSKGj86nML7B6a8euiPciUqwYehasAyAVnMCHq\"]},\"lib/v4-periphery/src/libraries/PathKey.sol\":{\"keccak256\":\"0xbbd79ffefe045f025263e389539021266fb4d371463aefba405e1ff1d3fcf9bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d1c47b81a01218be46ee79f0a8837095479b94dc5cfd18abbf2006709f0ea89\",\"dweb:/ipfs/QmRb6CQ13Zp7f3WF5jbZtsF2szhxpPgcuWs9mjwQXxzqtg\"]},\"lib/v4-periphery/src/libraries/PositionInfoLibrary.sol\":{\"keccak256\":\"0xc5ddf96bd088bc87ea50a20f907fc932fb28397a42682a301b268a11b7f34078\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7dfeb4dc747537240f8167243e8066b6f5f08057386fb8bda93f82973fc18ad6\",\"dweb:/ipfs/Qmby9DAAaHj8hjsMUnqY3vjqCHKGAKrT5EULMmeGcjbbGx\"]},\"node_modules/fhevm/config/ZamaFHEVMConfig.sol\":{\"keccak256\":\"0x41782f4c707b81399916544fa2e7be94a695fa4ba468542732d29d3e383c0315\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://45a95a55c4bbb3418c2133cba6ed21a9444bb4e38d38b32cc707b7493cece2ca\",\"dweb:/ipfs/QmVU8EKmZgscdM43RgXD4EgbVMhQxBusTmBren3pbn1pUW\"]},\"node_modules/fhevm/config/ZamaGatewayConfig.sol\":{\"keccak256\":\"0xbed8bc18db61ffeb5ee31f577ab636d8563df27554e0ca66c53534f0bd82ffbd\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://53601967f9e914b25cf91a325b100d5b3cbb9aec92d12443062a51fe5a578b7d\",\"dweb:/ipfs/QmNbviWrrPrx3snoLWqW5GyBnH99tSX3iYXEJ5ezk9XbtL\"]},\"node_modules/fhevm/gateway/GatewayCaller.sol\":{\"keccak256\":\"0xd19fd7715f0c5b479bf0cd8e3108cc8da7deae2d4fc7fb5ab089ebf2d76a0652\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://6386c509464cefe5a41903ca837da46a21b8042d13ccde656158efc48cd70ea8\",\"dweb:/ipfs/QmUn7C6aZwKmEmKsphBshBezXXGZtLMyfaeZAyuZoRsBWU\"]},\"node_modules/fhevm/gateway/lib/Gateway.sol\":{\"keccak256\":\"0x9585a649e3001a4b8768ab6e2597b416f680bcc537309cd50b60e023e9791318\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://a1b055bfb067cc247d4bd60b5f8348f667cbe79717a5753cd6412955277345d0\",\"dweb:/ipfs/QmTveBaQg9GUdtrrxcR4RsiyAEmoEKGL4gn6E1gThR1ph5\"]},\"node_modules/fhevm/lib/Impl.sol\":{\"keccak256\":\"0x89d4968cd956a8931f1a8a177b3bef1c6cf88a03665083db74430add50b88f21\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://aaaef2c82d56dacfb08946842ea1ce26757d13f3251de62fa79222232dfcb43c\",\"dweb:/ipfs/QmQ6QZPxJw9jb3qjRYCX7pMQVoYogjTsYgmdEnB3EnwFRy\"]},\"node_modules/fhevm/lib/TFHE.sol\":{\"keccak256\":\"0x221799c8332f83ab65a0b71746409f0c2c89f1cd8d9ba4091d967c667e1df734\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://2dba387fbc612a2ee64063b0ee6c27304b3944423d11045acc50abd84577fb5f\",\"dweb:/ipfs/QmThptDGnpd8PuncFk1rnQoCzEqwUED622yC9xZgFhwY59\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address[]","name":"_indexTokens","type":"address[]"},{"internalType":"address","name":"_stablecoin","type":"address"},{"internalType":"address","name":"_decypheredStablecoin","type":"address"},{"internalType":"address","name":"_indexFundFactory","type":"address"},{"internalType":"address","name":"_indexFundToken","type":"address"},{"internalType":"address","name":"_marketDataFetcher","type":"address"},{"internalType":"address","name":"_swapsManagerProxy","type":"address"},{"internalType":"uint256","name":"_initialSharePrice","type":"uint256"},{"internalType":"struct PoolKey[]","name":"_poolKeys","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"}]}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"uint256","name":"amountToSwap","type":"uint256"}],"type":"error","name":"AmountToSwapTooBig"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"InsufficientAllowance"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint256","name":"amountToBurn","type":"uint256"}],"type":"error","name":"SharesToBurnAmountTooBig"},{"inputs":[{"internalType":"uint256","name":"amountToMint","type":"uint256"}],"type":"error","name":"SharesToMintAmountTooBig"},{"inputs":[],"type":"error","name":"TransferFailed"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"amountToBurn","type":"uint256"}],"type":"error","name":"UserShareBalanceTooSmall"},{"inputs":[],"type":"event","name":"BurnSwapsPerformed","anonymous":false},{"inputs":[{"internalType":"uint256","name":"feeAmount","type":"uint256","indexed":true}],"type":"event","name":"FeeCollected","anonymous":false},{"inputs":[],"type":"event","name":"IndexTokensRedeemed","anonymous":false},{"inputs":[],"type":"event","name":"MintSwapsPerformed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"user","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":true}],"type":"event","name":"SharesBurned","anonymous":false},{"inputs":[{"internalType":"address","name":"user","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":true}],"type":"event","name":"SharesMinted","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"einput","name":"encryptedAmount","type":"bytes32"},{"internalType":"einput","name":"encryptedRedeemIndexTokens","type":"bytes32"},{"internalType":"bytes","name":"inputProof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"burnShares"},{"inputs":[{"internalType":"uint256","name":"requestID","type":"uint256"},{"internalType":"uint8","name":"transferErrorCode","type":"uint8"},{"internalType":"uint64","name":"decryptedAmount","type":"uint64"},{"internalType":"bool","name":"redeemIndexTokens","type":"bool"},{"internalType":"bool","name":"hasUserEnoughSharesToBurn","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"burnSharesCallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"computeShareValue","outputs":[{"internalType":"uint256","name":"shareValue","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getIndexFundToken","outputs":[{"internalType":"contract IndexFundToken","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getIndexTokens","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getStablecoin","outputs":[{"internalType":"contract ConfidentialERC20WithErrorsWrapped","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"einput","name":"encryptedAmount","type":"bytes32"},{"internalType":"bytes","name":"inputProof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mintShares"},{"inputs":[{"internalType":"uint256","name":"requestID","type":"uint256"},{"internalType":"uint8","name":"transferErrorCode","type":"uint8"},{"internalType":"uint64","name":"decryptedAmount","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"mintSharesCallback"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"sendFeesToProtocolOwner"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"burnShares(bytes32,bytes32,bytes)":{"details":"Function implementation is pending.","params":{"encryptedAmount":"The encrypted amount of shares to be burned.","encryptedRedeemIndexTokens":"The encrypted flag indicating whether to redeem index tokens.","inputProof":"The proof for the encrypted amount."}},"constructor":{"params":{"_decypheredStablecoin":"Address of the transparent version of the stablecoin.","_indexFundFactory":"Address of the factory contract that deploys the index fund.","_indexFundToken":"Address of the token contract representing the index fund shares.","_indexTokens":"Array of token addresses that compose the index.","_initialSharePrice":"Initial share price (in stablecoin units).","_marketDataFetcher":"Address of the protocol market data fetcher.","_poolKeys":"Array of pool keys used for token swaps.","_stablecoin":"Address of the stablecoin used for deposits.","_swapsManagerProxy":"Address of the proxy used to manage token swaps."}},"getIndexFundToken()":{"returns":{"_0":"The IndexFundToken contract."}},"getIndexTokens()":{"returns":{"_0":"An array of addresses representing the index tokens."}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"getStablecoin()":{"returns":{"_0":"The IERC20 stablecoin contract."}},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"mintShares(bytes32,bytes)":{"details":"Handles fee deduction, token swaps, and share minting. It fetches market data and calculates swap amounts based on token market caps.","params":{"encryptedAmount":"The encrypted amount of stablecoin the user is depositing."}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"sendFeesToProtocolOwner()":{"details":"Only callable by the protocol owner and protected against reentrancy."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"burnShares(bytes32,bytes32,bytes)":{"notice":"Burns a specified amount of index fund shares."},"computeShareValue()":{"notice":"Computes the current value per share based on market data."},"getIndexFundToken()":{"notice":"Retrieves the index fund token contract instance."},"getIndexTokens()":{"notice":"Retrieves the list of index token addresses."},"getStablecoin()":{"notice":"Retrieves the stablecoin contract used by the index fund."},"mintShares(bytes32,bytes)":{"notice":"Mints new index fund shares by depositing a specified amount of stablecoin."},"sendFeesToProtocolOwner()":{"notice":"Transfers the collected fees to the protocol owner."}},"version":1}},"settings":{"remappings":["@chainlink/=lib/chainlink/","@ensdomains/=lib/v4-core/node_modules/@ensdomains/","@httpz-contracts/=lib/httpz-contracts/contracts/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@uniswap/universal-router/=lib/universal-router.git/","@uniswap/v2-core/=lib/v2-core/","@uniswap/v3-core/=lib/v3-core/","@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/","@uniswap/v4-core/=lib/v4-core/","@uniswap/v4-periphery/=lib/v4-periphery/","chainlink/=lib/chainlink/","ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","eth-gas-reporter/=node_modules/eth-gas-reporter/","fhevm-contracts/=node_modules/fhevm-contracts/","fhevm-core-contracts/=node_modules/fhevm-core-contracts/","fhevm/=node_modules/fhevm/","forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","httpz-contracts/=lib/httpz-contracts/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","permit2/=lib/permit2/","solmate/=lib/permit2/lib/solmate/","universal-router.git/=lib/universal-router.git/","v2-core/=lib/v2-core/contracts/","v3-core/=lib/v3-core/","v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/","v4-core/=lib/v4-core/src/","v4-periphery/=lib/v4-periphery/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/ConfidentialIndexFund.sol":"ConfidentialIndexFund"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/ConfidentialIndexFund.sol":{"keccak256":"0xf62f83a51f7ea367de12060b0e59b9e6b29d4ffa8ee96d78be95ea89fe3cc7bb","urls":["bzz-raw://32de52e65aed4946dc982aa71f5fe44f7180c2acf7dc35cbfb430e27c67f9268","dweb:/ipfs/QmNwahRXDsPAss1bTjCzztHnFCrsgHQHsaKu4B2e8KjLRr"],"license":"MIT"},"contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol":{"keccak256":"0x08ddec3305fabf65ffe2c18949b1b18f4ce0aeafd7bb8f68faecf4da9bfa18ab","urls":["bzz-raw://e73a281abe6706aa53fc031839d0fcb73c028f0be2c2ad5428aa4880ca072805","dweb:/ipfs/QmZc9KQXzYstBAKKPye7w5W3jBX1a56G9kCAPs58nkHvFg"],"license":"BSD-3-Clause-Clear"},"contracts/ERC20Encryption/ConfidentialERC20WithErrorsWrapped.sol":{"keccak256":"0xb663d8df9afddc4ea27c24e893b00df774475852dff3f70064161fcdf14f5628","urls":["bzz-raw://8a19c179384889016ab8061d809b37b78f13257b363f0d3c6910dc0c62d261b3","dweb:/ipfs/QmaA6ddxxLYEqpwUAfCJCH2JENXAEuKGNSf9w7zG9WmQwR"],"license":"MIT"},"contracts/IndexFundFactory.sol":{"keccak256":"0x874beb76d89c637595dd74734a0f89052c94ae41bd0df19ad00a674f74b79d45","urls":["bzz-raw://87c4d8dfa8a3b627f7f0f1b3011780bf014b79867b84e48edf7857cc99ddc115","dweb:/ipfs/QmPe4RkpmtHHmX9fq92yz5FWtKuNr7d6HYiJn7E8UyobXu"],"license":"MIT"},"contracts/IndexFundToken.sol":{"keccak256":"0x42961a70f9142f4e63aaf154379b9023cacca1fd43b6514678eaee59f8fb9890","urls":["bzz-raw://ef1350bcd4141746855a9226d633ad4ac1be64c24d8b5ca8a1e09a7c0064d191","dweb:/ipfs/QmVAK66Y1euBYi18MuSRsUP642x7BhoFQFEkQaUifPvdAX"],"license":"BSD-3-Clause-Clear"},"contracts/interfaces/IIndexFund.sol":{"keccak256":"0x1d9c8fd5bded96f70982cc51fb43db3438989a87fa1513cee239d3e6773489e7","urls":["bzz-raw://c627498c9d3ebda35fac237c30a8151fc2f7a6b1bf39443e4ca9be2766d3d4f2","dweb:/ipfs/QmShbn35ZYr12d5TChnDsu9u6YtC8EDivzVZp5tFc6bVoM"],"license":"BSD-3-Clause-Clear"},"contracts/interfaces/IIndexFundFactory.sol":{"keccak256":"0xdaee28098d25d209508346539130902d9e08f32b24aa18fe915c50a829dd62ac","urls":["bzz-raw://1c6a9ccf80750ad63e7a5cdff241d17130ab3e66e41e6647b10504abbf37fb76","dweb:/ipfs/QmRFJFDzeATHcLQCU6yXxVDThzm2xRZaGDZXFaCZK4aVs8"],"license":"BSD-3-Clause-Clear"},"contracts/interfaces/IMarketDataFetcher.sol":{"keccak256":"0xa5343d6d80de89e9e259d51e9fd50444de43f61f6da31c26ad6f49029a47481a","urls":["bzz-raw://e7fb90369df691fd542180e13cc7a881b46ef86dc1fdac4622d19cb292059112","dweb:/ipfs/QmUnvC7eyCdg83tARSBSoEDPKjZHJZ4mKFWdPwSycki3KL"],"license":"BSD-3-Clause-Clear"},"contracts/interfaces/ISwapsManager.sol":{"keccak256":"0xa98bd09c0946399a4f4ae05e713b3207593528df54e8695a4aa4db885b47e894","urls":["bzz-raw://eca854b1cf38859c81648a4bc824aa8e8e7a6347a3b902ceff0d2eb98cff384d","dweb:/ipfs/QmTFzfKREewMg1xjbuCU5DDPbq8Wi1euCzpE2xJ8RAeJi8"],"license":"BSD-3-Clause-Clear"},"contracts/marketData/MarketDataFetcher.sol":{"keccak256":"0xa756f8531752b5c71493a2c2ff98b3eb75add8b08f925d85313a1ee0c74f4268","urls":["bzz-raw://2d16ae4cd7db8402c01772c5e11d68616e572f6d1f52167b3ca3749d3844a2d6","dweb:/ipfs/QmbcxnqiDkBNhBCRQd9w7qjU2nC7nTUw9QGqWPiVoZ5DRP"],"license":"MIT"},"contracts/swaps/SwapsManager.sol":{"keccak256":"0xbf9c74550a5d7f91c56cb8832f5240c1f3e96316ddc67d9391409f1799234071","urls":["bzz-raw://35c8df81cc2c3fc11287e39be63e97601a943caa10f753add2e05e867ca3171e","dweb:/ipfs/QmVE1svFQVypEFKwSbCbEfVVL5jovsocpKidNSoyFD9g4j"],"license":"MIT"},"lib/chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol":{"keccak256":"0x257a8d28fa83d3d942547c8e129ef465e4b5f3f31171e7be4739a4c98da6b4f0","urls":["bzz-raw://6d39e11b1dc7b9b8ccdabbc9be442ab7cda4a81c748f57e316dcb1bcb4a28bf9","dweb:/ipfs/QmaG6vz6W6iEUBsbHSBob5mdcitYxWjoygxREHpsJHfWrS"],"license":"MIT"},"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol":{"keccak256":"0x8b45e5bb2fd9212f99e61b4d25b9c9d5ed7cb1a9a684aac34f752c568ef16c76","urls":["bzz-raw://1ca71bb5bfbb2f8a0779f8394baeea01680619637abddb572017d05d96862591","dweb:/ipfs/QmPCzGBE1m6WtDZxrVL5jzkduNaS7fjtYovUWdnzN34qjh"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20Wrapped.sol":{"keccak256":"0x7e178a03b7f034532497a8b762069fff0808277befc880e4a3236938ba1380a7","urls":["bzz-raw://7250476c961801e579719fd0201a3ff6bfdc79e8324db34d5ec0c6cecc281281","dweb:/ipfs/QmNsTR2Rk2FRS3cTNf7WeN3UzPZy6HSj1SFV3Nuwz8Rpzi"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol":{"keccak256":"0xe016a085f72ca3cf6d78ec1cb2182a398106cb7d425e984776a9caab0bad2569","urls":["bzz-raw://3e79dc5075469d660908f5f8b6d0c863b14459d60a0b06fb786d58de8cf30a94","dweb:/ipfs/QmePGRGtoWBnQ8T6ZRyZgiwVh4r67kcmWejwKgjyYN4AAY"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20Wrapped.sol":{"keccak256":"0x72c5379fb2a7e1701a4686f60831bfc474350a42f0660aea815a5ce910cba38b","urls":["bzz-raw://118fac79c89e142247e94763a1ca1235c307a67b37d68fa45d94125bc85c2cb8","dweb:/ipfs/QmcE9P74NQQKnmW9vdtGb8KrWgJWH6K3bNTdrMxrPi716c"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol":{"keccak256":"0xfe322c8f9a8e4fba881715901a5bafd2efa23394ecbc9ec84282818baeff0a07","urls":["bzz-raw://13dba831528dd16408b7abab23eac0664a2a3e5ecbfe5e58e6e321cf2921668a","dweb:/ipfs/QmPq4YeugbayWfeBJR8H7s4jHsnZkACQX2xbdNQ4sdvZrk"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol":{"keccak256":"0xecc6289a9791bef254911393b51d2bfbddc5650ede7fbe7b5cc2b8d3eb01d7a6","urls":["bzz-raw://7463278a20bc5d7fd8b7ec2cb8e592b2d1e0afcf8b59d35d6929d18661d4b38c","dweb:/ipfs/QmTKPoABwNDmK7g7vkti1AkTpkUBHu3iX3zsXQsEuSiqBM"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/utils/EncryptedErrors.sol":{"keccak256":"0x0b8d08f392884add1af672018359e8980ee0b5e1662fe5e36eb31f053d1d4505","urls":["bzz-raw://2903dd49a88b36aba2e8a45548b6a68d203887356ebdf452b10e0148954ba1a5","dweb:/ipfs/QmTRuP4QXagoV2cLr2ctzFtNK7FK1cDXMYm4feMoMsYoWG"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/utils/TFHEErrors.sol":{"keccak256":"0x5fef7c2d7d4449d724a2800b37dfcc61e2b635f2747378ce222b9187425f2d13","urls":["bzz-raw://7c2ef113faaec2d74c8d958f80687d0b676082d6231720917aaa8aa934d689a3","dweb:/ipfs/QmNn474JDQ5zvVDwEuicJs6Xq8YEXWGZLoW4KeTWDVG31f"],"license":"BSD-3-Clause-Clear"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xd861907d1168dcaec2a7846edbaed12feb8bad2d6781dba987be01374f90b495","urls":["bzz-raw://12ff809243040419e2fc2aa7ef0aaa60b3e6ebc901553ba1de970ceeef208c4c","dweb:/ipfs/QmX2dwMVNrQAahqVzEx94gqcVB6Z8ovifPYdEfHZzj7aEb"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308","urls":["bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80","dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606","urls":["bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1","dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol":{"keccak256":"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c","urls":["bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0","dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x8decfa54cec979c824b044b8128cd91d713f72c71fd7dfa54974624d8c949898","urls":["bzz-raw://271f914261a19d87117a777e0924ada545c16191ef9b00cc40b0134fc14ebc70","dweb:/ipfs/QmdvVNWHGHQrGGPonZJs5NuzTevTjZRM2zayKrDJf7WBA2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x6ef9389a2c07bc40d8a7ba48914724ab2c108fac391ce12314f01321813e6368","urls":["bzz-raw://b7a5cb39b1e6df68f4dd9a5e76e853d745a74ffb3dfd7df4ae4d2ace6992a171","dweb:/ipfs/QmPbzKR19rdM8X3PLQjsmHRepUKhvoZnedSR63XyGtXZib"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330","urls":["bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf","dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x4ea01544758fd2c7045961904686bfe232d2220a04ecaa2d6b08dac17827febf","urls":["bzz-raw://fabe6bef5167ae741dd8c22d7f81d3f9120bd61b290762a2e8f176712567d329","dweb:/ipfs/QmSnEitJ6xmf1SSAUeZozD7Gx7h8bNnX3a1ZBzqeivsvVg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de","urls":["bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff","dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xaaa1d17c1129b127a4a401db2fbd72960e2671474be3d08cae71ccdc42f7624c","urls":["bzz-raw://cb2f27cd3952aa667e198fba0d9b7bcec52fbb12c16f013c25fe6fb52b29cc0e","dweb:/ipfs/QmeuohBFoeyDPZA9JNCTEDz3VBfBD4EABWuWXVhHAuEpKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3","urls":["bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a","dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol":{"keccak256":"0x534bf5c25d6003a8ce50b400d20fa460c03169ad7baa90d47a912917c36dfe2b","urls":["bzz-raw://cc0cc39c40ea23d3c46e8517e19ebdd877719d3159fa032f2a91802cdd205c79","dweb:/ipfs/QmSoNh7HTkD4TJcBkBKSGSPMMpLUZKE7s9f2G6mjdaJywg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x44f87e91783e88415bde66f1a63f6c7f0076f2d511548820407d5c95643ac56c","urls":["bzz-raw://13a51bc2b23827744dcf5bad10c69e72528cf015a6fe48c93632cdb2c0eb1251","dweb:/ipfs/QmZwPA47Yqgje1qtkdEFEja8ntTahMStYzKf5q3JRnaR7d"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1","urls":["bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889","dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/permit2/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0xcdfd8db76b2a3415620e4d18cc5545f3d50de792dbf2c3dd5adb40cbe6f94b10","urls":["bzz-raw://57b3ab70cde374af1cf2c9888636e8de6cf660f087b1c9abd805e9271e19fa35","dweb:/ipfs/QmNrLDBAHYFjpjSd12jerm1AdBkDqEYUUaXgnT854BUZ97"],"license":"AGPL-3.0-only"},"lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol":{"keccak256":"0xbadf3d708cf532b12f75f78a1d423135954b63774a6d4ba15914a551d348db8a","urls":["bzz-raw://88ac8256bd520d1b8e6f9c4ac9e8777bffdc4a6c8afb1a848f596665779a55b4","dweb:/ipfs/QmXx7X1dxe6f5VM91vgQ5BA4r2eF97GWDcQDrgHytcvfjU"],"license":"AGPL-3.0-only"},"lib/permit2/src/interfaces/IAllowanceTransfer.sol":{"keccak256":"0x37f0ac203b6ef605c9533e1a739477e8e9dcea90710b40e645a367f8a21ace29","urls":["bzz-raw://e0104d72aeaec1cd66cc232e7de7b7ead08608efcc179491b8a66387614670b0","dweb:/ipfs/QmfAZDyuNC9FXXbnJUwqHNwmAK6uRrXxtWEytLsxjskPsN"],"license":"MIT"},"lib/permit2/src/interfaces/IEIP712.sol":{"keccak256":"0xfdccf2b9639070803cd0e4198427fb0df3cc452ca59bd3b8a0d957a9a4254138","urls":["bzz-raw://f7c936ac42ce89e827db905a1544397f8bdf46db34cdb6aa1b90dea42fdb4c72","dweb:/ipfs/QmVgurxo1N31qZqkPBirw9Z7S9tLYmv6jSwQp8R8ur2cBk"],"license":"MIT"},"lib/permit2/src/interfaces/IPermit2.sol":{"keccak256":"0xaa631cc9f53e699301d94233007110a345e6779011def484e8dd97b8fe0af771","urls":["bzz-raw://fc0502cf19c9c18f320a3001201e89e350393b75837f6b7971de18b2de06f30d","dweb:/ipfs/QmT9SfhdJ7VJNNrf94g4H5usyi7ShqWGx7Cqsz9jZTjX96"],"license":"MIT"},"lib/permit2/src/interfaces/ISignatureTransfer.sol":{"keccak256":"0xe6df9966f8841dc3958ee86169c89de97e7f614c81c28b9dc947b12d732df64e","urls":["bzz-raw://3d4eafdee7f48c3be8350a94eb6edd0bfb2af2c105df65787a77174f356c0317","dweb:/ipfs/QmY1j2adeeAhNpn6cUuthemxGCdLXHTfyMh9yTKsY4mZ2d"],"license":"MIT"},"lib/permit2/src/libraries/SafeCast160.sol":{"keccak256":"0x8a34e2beac108d74f89510c949983212b5f09307a93ee9e17a9d50e93f6bc8e9","urls":["bzz-raw://828697f9567ce617c5c1c8f76b6bcd250e93aea2c4f3ee188be6dff8443c19e7","dweb:/ipfs/QmafxeSPhUc9gGtNDLAw26oZooC5XNLhDMxHxYhJxL5Nwi"],"license":"MIT"},"lib/universal-router.git/contracts/UniversalRouter.sol":{"keccak256":"0x5c7515720fa9b429bc83f0044f3a02cdd065fe1773b9fd32151dc5ff9042d368","urls":["bzz-raw://dd77517f3a73a07fdff8f3a52c268afca749a678ea11442140d401eb102f4404","dweb:/ipfs/QmeJiwCtgF1rMB7Foi6PrqWEaXktztPGQfHoAsw1BRhLU3"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/base/Dispatcher.sol":{"keccak256":"0x1564339a5163c5d27f06a64f994a7457b061aa0f5046377bcc5078cd6907cc5d","urls":["bzz-raw://82dc3ed71c19d6e5d1f72304e62e360954fc40a4d92a2a94e862c5474490d58d","dweb:/ipfs/QmcNamJcGijcEetbHWVJHNjSE2WCyQsmEGEGDg9ZNwqSjR"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/base/Lock.sol":{"keccak256":"0x92f953dda0d671178d054eeb3915b70f8ba80be33df8670a9146af4a4bc2c6ac","urls":["bzz-raw://f73faac9532c8a8870d31bcef68a0dde387579d7b755c342b3352a54a4b63682","dweb:/ipfs/QmXLvJb6vxfrUG84ASLhEf7tL62MN3oxkp7aXUxemrZTy3"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/interfaces/IUniversalRouter.sol":{"keccak256":"0x2525b52d1edf5df89bfd093c5b933b9e8f65236f44f58096763a6c87a5cafb63","urls":["bzz-raw://5cc0fcfedd6b32586099ee0f6781bb81da99175c65013c06bb6f61a125babb18","dweb:/ipfs/QmcEkSzkjkPpp3YyJZaY232TjuNU4Pw6CSiTWz7sk2Sq5D"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/libraries/Commands.sol":{"keccak256":"0xa08ae7be62972a4f17779257641065d41fa5cc2d5fc7050e5e5b76fbda9e6a9f","urls":["bzz-raw://0b94d73c5cd54aba5e1ad4ccfc33df13c1b04417f53fda188275fc15f95f02f2","dweb:/ipfs/QmNpigDf9g9AAbFr27gug5hAZjb6iuFekRqXonC6upoEcp"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/libraries/Constants.sol":{"keccak256":"0xb668498f11a4bb576a0a61c183da7ca348249dd9176c57dcb6532912b1b49b0e","urls":["bzz-raw://87d8588baf0b7b72faec637843c7623ac416d45e0f7719d0a635afe7981b2cf2","dweb:/ipfs/QmSu7Jr8JM6mab2dddk1UaiPhyLZvsA8iLxC9MEcBUaMzT"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/libraries/Locker.sol":{"keccak256":"0xfccb45f77b5c66f0f417d803b4b3f7ae97206d8d850a383ab7d97f25d0617cc0","urls":["bzz-raw://b47f3f4e74961f8e9d918c2cc3514cb8d097caee6ab2c20c10735235dec440ec","dweb:/ipfs/QmfTWUjP7g7zTw67C2RvoMhWRX6ExLNV3UYSb5LqfE4bqC"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/libraries/MaxInputAmount.sol":{"keccak256":"0x2dd6efbcaf9991c852e29a726f9876a0a6d08f2271912e69efa5c6a5e8034739","urls":["bzz-raw://949ebd746eee3589d1e466c738884bd3532043d9e8a7b77c1521a098ba3c69b6","dweb:/ipfs/QmZC9idgGQDfLksqfz41FrcsVXhqkfRZCZH9MJXQkQavt6"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/MigratorImmutables.sol":{"keccak256":"0x666d1622a10509c69b679df9d175a3e0c176a62b9e18d1cee7634219aded8f68","urls":["bzz-raw://a88e472495d32648ba3e7964c4c88b68853b49540f40afbaf2ede6822372b49f","dweb:/ipfs/QmQoaWbCpwFYCnRgehM7ruYaa7za8fBghT5aQCRCPYJr1V"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/Payments.sol":{"keccak256":"0x19a103b3269ee2f7bc28a6e1850091b2087dd2558662494d1104ac8e5ac68524","urls":["bzz-raw://ba64c600f57bb13672a5549b6dba11ae4dfe49f688c24eadb3289dcc87d226a8","dweb:/ipfs/QmWkmVyeai1WeymuWqEk1fQE5R2frrQQjJv81cytrKvFuA"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/PaymentsImmutables.sol":{"keccak256":"0x9ca2535b69b15d3bdb7a15871c5bca83f5536cffb0191c64f4c6a2db4a154338","urls":["bzz-raw://dc85fb3ddd19481bf0d1a8a9f5d9631b396d86344a33e30b4c4ab6cd58d51169","dweb:/ipfs/QmeEGFqfHFUo1Mu6tRfCjvVGJYyoDu29ZspZgxxcj6ykvq"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/Permit2Payments.sol":{"keccak256":"0x887ec1f57144cd91a1b86d5a7b1d1119146f41dae6865e6fd0e849801e968628","urls":["bzz-raw://08b713e82f3f192976902497e1c02dd60bf7e90c83a471eb4c7ac7710b086f95","dweb:/ipfs/QmWJSGZ9Dj7FmFCnDWpDdL5fx76JYDgYWhggXCroxV7cjX"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/V3ToV4Migrator.sol":{"keccak256":"0x5ee3774b749b9a8d851dc6074c8de8c61f408a4cfd829c47c753840c839ba91c","urls":["bzz-raw://337e17b84f4fdad7e32be0e482e7b2471d7f927ba3b3174cae38cf2509d97443","dweb:/ipfs/QmbzgdyxAC5vpvWRGaemn3Qn7DRbNDjHSH3KbHSDPwJ8LY"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/UniswapImmutables.sol":{"keccak256":"0xb810727f5e734a30871ff1d83d8c96d99150f1ce77bb39e032aec6254ca43cd0","urls":["bzz-raw://5eb9df8b6c81f8e33b8a6bace294ed0d81c541988f7ba42027e3041eff32e1bd","dweb:/ipfs/QmVPSWBv7WegGySGV4BoewKKx7iAetHsjydxQyKk3dh5yw"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v2/UniswapV2Library.sol":{"keccak256":"0x829d48c1b69d2e1bc078a57aae8d87dc31d920b01c62d6268d20d517fd24150c","urls":["bzz-raw://b87236ea4c1e64c12434f31abbd658ca3fc510ebe65be731d84d3ce8efa71c32","dweb:/ipfs/QmUerjg5Ebt3pfQZtk2sArUy414gQtHwvFNgsQNe4PhxbN"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v2/V2SwapRouter.sol":{"keccak256":"0x0fcb6ad6c4d5a7b25054dd9951432b2b41cb2c0077e6bc7ca0d0416115ef2326","urls":["bzz-raw://124b1dd54d27914306bdd1021e171111f0ae622fffb2974ccdee24eab31b359d","dweb:/ipfs/QmfKr2sbxdc31aPWv9d6ETA4GyfqHiKVZRKqhREnMkR5j9"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v3/BytesLib.sol":{"keccak256":"0xc3c23e83afd06781c4a0a5c418c20c40611e71d049766eb70987007ce372656e","urls":["bzz-raw://c62989beb75edad6de18c31be31eb68f0c3fb15c5f9e9bb380221afc6785fda5","dweb:/ipfs/QmVEsp5yivbmjP7HcXS5kJ1XJY5Uic3J3y4zjpwD1SNySD"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v3/V3Path.sol":{"keccak256":"0xf6abbf4c7cd0975ddabb0ddb641ea9ae3b0cc1dd9a1cabf5e7cc271a974eabc2","urls":["bzz-raw://1e0987fc9b81c65eada64cb65f981680c2054e489a6049d397b5ecbbf4c9a0a9","dweb:/ipfs/QmW7mbbHsfc2GLy2GkCUv3VwXV93y6UFtKDD7E9QEtzFH7"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v3/V3SwapRouter.sol":{"keccak256":"0x31fe8777a6de583c54a0f09ec11d318c253b7fe50c7a2af1608b2b89a03ca660","urls":["bzz-raw://780219ff0d6d333727655719d31d61ce345cdbca7f906467a2d00e3162b3c0aa","dweb:/ipfs/QmbauA5Kvj7m9P9hxe4hhnLY5w2TEXMMnCc9oWehVgj2jo"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v4/V4SwapRouter.sol":{"keccak256":"0x68b7666641ad5ba227b500c9845c4bc71eaaac6556d97d31d123fce41b51969a","urls":["bzz-raw://40a99bb5e9e407ad6741f5c210ac23a32950e7567c73f21975444e9729fc6cfb","dweb:/ipfs/QmUK98HjyQ7NDGR36DD9owjLDk7ujEj5b5uKt9zjUsCFG5"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/types/RouterParameters.sol":{"keccak256":"0x9efe9912d44e56cff8fc23e1411c80b47ffc9f5c0ad5ca5c66ab77a1b7ddfcbf","urls":["bzz-raw://473acf49dc1be1ca997ad20258124e26e03b3cef15412a8827ecf9b52e4cef21","dweb:/ipfs/QmaGR2QL6im4XYJpubqhUuP82nFytemX7wwEk4cXECJYJN"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IERC721Permit.sol":{"keccak256":"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4","urls":["bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471","dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL"],"license":"GPL-2.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol":{"keccak256":"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984","urls":["bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56","dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW"],"license":"GPL-2.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol":{"keccak256":"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d","urls":["bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f","dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127"],"license":"GPL-2.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryPayments.sol":{"keccak256":"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274","urls":["bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407","dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp"],"license":"GPL-2.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPoolInitializer.sol":{"keccak256":"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862","urls":["bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f","dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu"],"license":"GPL-2.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/libraries/PoolAddress.sol":{"keccak256":"0xa72de315bd655a0fd5043ff97c7fd3868a1b5b1986afd75c6f5f8fd0f904985f","urls":["bzz-raw://a8838e68aba9caf2b2cb13bd4cb661b1f9c167cca4dfcd50ac72ae96691392df","dweb:/ipfs/QmfLq3cmsSQTuLLxiF4bgceaf2jx8CoiVXQd7BZXGgJG1E"],"license":"GPL-2.0-or-later"},"lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol":{"keccak256":"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b","urls":["bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf","dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH"],"license":null},"lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol":{"keccak256":"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1","urls":["bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5","dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol":{"keccak256":"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69","urls":["bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652","dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol":{"keccak256":"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634","urls":["bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5","dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol":{"keccak256":"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5","urls":["bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7","dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol":{"keccak256":"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd","urls":["bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03","dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol":{"keccak256":"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7","urls":["bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047","dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol":{"keccak256":"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235","urls":["bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735","dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol":{"keccak256":"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f","urls":["bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f","dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/libraries/SafeCast.sol":{"keccak256":"0x4c12bf820c0b011f5490a209960ca34dd8af34660ef9e01de0438393d15e3fd8","urls":["bzz-raw://fed11489e218e55d087d42b4f350a30e10cd2aedec8f432bd3cc712f648d5869","dweb:/ipfs/QmWfRnRxyXwHUDcTQPazxYYk5jxErGeQqdvnYtyg5nBPbU"],"license":"GPL-2.0-or-later"},"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":"0x4c9571aed0c2b6ef11832545554fc11ffdb03746daaf5c73683c00600bfc7ec0","urls":["bzz-raw://e78b34b58ce9de91b91943b4f3cc3ce121d0b151e123e8a600ac5ef64d91db6c","dweb:/ipfs/QmRkaQnPCYwLrXgbpGujJTx32PaZK63KSPJJV1XmnQuCMb"],"license":"MIT"},"lib/v4-core/src/interfaces/IPoolManager.sol":{"keccak256":"0x3534f00531038e77ab8a7fc4d0a6e0993ee53fb7a396b1324ad917318ea46cea","urls":["bzz-raw://0a4a7e771828dc40848485b568a1cf514f553ace6653f4f4d1ad3f3e9cdb6c27","dweb:/ipfs/QmTjzQ7KVYnrEWtxPER2E4MXzycgcznfzSDsZtd5turk5V"],"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/CurrencyReserves.sol":{"keccak256":"0x1576616129933fcdf3b684cea33cffd9c95e18fafbd2832a8c48ac3d8526d4c3","urls":["bzz-raw://33b050efb9b81803b18f562271e7cca2ec5362c4d505860d6419b4a345636725","dweb:/ipfs/QmQtFtTwKZ5pFVGD2ENDUXvp7ECFvzqeCuJ1miJcUHdmiX"],"license":"BUSL-1.1"},"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/Lock.sol":{"keccak256":"0x9338be4b5695f1da5f3d3f7a3eeaf7a356c1045458289586ac0cbe9cef77c6d5","urls":["bzz-raw://485ec42ed6155469d612a9a0c18068ebfbad74448792a338a435503de3ef1b2c","dweb:/ipfs/QmVnnv5u74MYatfRmBgrcfFYQcsMAJMG9jQ6ju8UiydKNF"],"license":"BUSL-1.1"},"lib/v4-core/src/libraries/NonzeroDeltaCount.sol":{"keccak256":"0x0666ebd5d3528d7d52c48538296367a4cff97a578cf13365c51983fae3219b87","urls":["bzz-raw://d27f1be3bd09d85c53d3e6a539dd6529ddd8b2b764ccb47fd7765fc81f9add59","dweb:/ipfs/QmQdZujNXhKEXQBkKtF5jbdvo1yXMqPDUoBBaF9S5u3Kpm"],"license":"BUSL-1.1"},"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/libraries/TransientStateLibrary.sol":{"keccak256":"0x7d1e0875747bd89b32c25f1a48da2766e5f4aff1f671ad5f3c0c07ebbbcb946a","urls":["bzz-raw://d76cfeb1cb60595b41ecc51c8a12fb4bf63a7fc733d0b1a2e3adb55abeb1f9d5","dweb:/ipfs/Qmb8oX7DtsRpw3tTtdWZwGhauj1evq43d3PLwe4nSDAKkV"],"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-periphery/src/V4Router.sol":{"keccak256":"0x8ede1e538ae9b74984c52347a3bbaee7b3d69f00ed9b3a6db1f1bd6e058a2326","urls":["bzz-raw://8e370416fa9681ad124414e2b2fb57a5455e15dd873c9e61c964177ae5c2d544","dweb:/ipfs/QmWrM97ezNB9CpawqhkwpubXHcXUbMFWKYEbD3D6EyAe1w"],"license":"MIT"},"lib/v4-periphery/src/base/BaseActionsRouter.sol":{"keccak256":"0xca1ee500f88951ad351d18ba2adfb5fe23abef6d502f234ce5748a3497674a4c","urls":["bzz-raw://1f03ab458be27c29cef1b7ace5b11517d3fef8bf6131af7dd80d6297c224cf71","dweb:/ipfs/QmYoH6o8yeRzbeLoaMG9TjS8q2Fw7T1h4vXvvMnp3XfsUa"],"license":"MIT"},"lib/v4-periphery/src/base/DeltaResolver.sol":{"keccak256":"0x94a2da2be5c924df65a8e1e29f585bbe4c37777fedd43b45989c66d509a4a83c","urls":["bzz-raw://42bba590f6e817fd56328b74ae99bfdc4df57386d0a69ee22b9108341953ed36","dweb:/ipfs/QmdusastK7FWYouLz9gvV5J3z8MQbNKLJNNHTrc1vi7DWw"],"license":"MIT"},"lib/v4-periphery/src/base/ImmutableState.sol":{"keccak256":"0x1867c9fa2f9b4fa73bab0fcdc9d19ccef4eeac552273d8b84a170cd1cc90350a","urls":["bzz-raw://af2d699b439e13b599632fddfe82718aebd41055fba7c075f186675c588d1337","dweb:/ipfs/Qmc111gckSKb9aESn3wRFLeLiS4KGujaUcaYJgRnCRfwQU"],"license":"MIT"},"lib/v4-periphery/src/base/SafeCallback.sol":{"keccak256":"0xd78b583df1b9ee06d58e83b84fc9f08971389b34dd34bc13db072e0c13c710da","urls":["bzz-raw://c0a47f4bcd6060c4462153b9a7c52a60a460ace91acb6ddd5492eab28ec26173","dweb:/ipfs/QmdRCTRS1dhFjWEy6z577j4xz9J5HPfHBwcNzAic8G59oT"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IEIP712_v4.sol":{"keccak256":"0xd7f7115476e307a0bfc32a0f0a0f5434e9e5ca62a6c5af1e18b75e48161bb408","urls":["bzz-raw://b1600b953556da38a7adc5ad2a2925ec5fb138fecf8eec48743646543195b736","dweb:/ipfs/QmarZi2aiLVAfHXgnDWV1cCFiZk2DdPW7KJnWHqzuRChJR"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IERC721Permit_v4.sol":{"keccak256":"0x103adbba724ef536abc536fe8a4d7dc12880724c562109b69f2adce4a91fa017","urls":["bzz-raw://06f51b5a5a218e0bc866a83e7821be53c9db9de0ca921f16abd3d13ea0eab69d","dweb:/ipfs/QmbnhLy992hpQZyphTkj7fpr6jKKVva2AzfmLiDZEuqHAk"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IImmutableState.sol":{"keccak256":"0x36ab3100e87457ecf04887f4f540e34fd7f21d8e3b83880cb679239e60b7b06b","urls":["bzz-raw://7f290c7ce8e4832608d637a51b13dff95abecf6549485448e647a11c8ed01341","dweb:/ipfs/QmfD1R6mTp8j4EjQXmQZW3vCh11EYFjnvoaw8rXRP27mMq"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IMulticall_v4.sol":{"keccak256":"0x336bec303f7ff86497d2679464c5adad5040f412b3d0769ce5e1d2a42f7e2c08","urls":["bzz-raw://7734f047d98d331c8abc51ad9f358ceee0a6dcae8d89ac49084b84de0d2d42e7","dweb:/ipfs/QmWij2h7mU36LsXhb9P6pkYXrSCua4ixeWaVFSrsEcEmPQ"],"license":"MIT"},"lib/v4-periphery/src/interfaces/INotifier.sol":{"keccak256":"0xfdc5187a98240a1691aae98b7dd2444d4c2bfb4746f3c34de9f3d18399c17c5e","urls":["bzz-raw://683af56401ec4f8817e8dfe150e7b3febaf0baaf40efe8d0d0475f735275f746","dweb:/ipfs/QmRQ6S3nFnSc2jjDcQTvUJdTf4xKPojmvCkpvgyr6qTuVV"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IPermit2Forwarder.sol":{"keccak256":"0xfad472937280e861125ff12aa6f9c2cf7440fbb20a2cc29485c24662ad4279c5","urls":["bzz-raw://31bfbc331f5972fc373d9469fd1ca1d14818db3275f21b7b590f20820cb4439d","dweb:/ipfs/QmX3Bv9wfYpAFZKBcxKsQSXUrSC8mqNBdzh6XVMS72aNx9"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IPoolInitializer_v4.sol":{"keccak256":"0x2e4feda94650a2642039e0309ffdec480ee050bc40864bf5e1dba42bb4dc9e98","urls":["bzz-raw://964c178b4da8bab9ef898b94bb26d7c17cc44c5cf20485f55dcf5e9c7e1b1d92","dweb:/ipfs/QmVd2c3SYteyr5xZgUS4sDAiZF43dLwVAEKdCfvQbkZpRJ"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IPositionManager.sol":{"keccak256":"0x62dfa0cbee8314ee7e6787db8bc1d364245c340f940875ac7ff11e89d074fc7e","urls":["bzz-raw://26f560c77d8a187bf93a710b827e3167eab3446922192fa8f92f208da2103834","dweb:/ipfs/Qmbzp5gSYdTpMBF9aAb2GraxMEQZb5LRJCyg8VaRUyjTFc"],"license":"MIT"},"lib/v4-periphery/src/interfaces/ISubscriber.sol":{"keccak256":"0x34ceadec4a63019680e543fe73197f198a55c825d86e18f327840354760b57e7","urls":["bzz-raw://31734feafe1fe162a0702ddf862fcc3bd97505931afb3c685033c0185d898051","dweb:/ipfs/QmQEANYVyaXTNzXKcjUVfPhLU71Bix5vxQH75BpPWMkWgw"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IUnorderedNonce.sol":{"keccak256":"0xd7f32fee74dc7d1a3b078ca1263961baccaa6bf434c79e8fe0e092e30c3e0ec3","urls":["bzz-raw://e7d1e92d89d5f49c84aa82f3b259678c2c97a4473b22d753ca4411a6b0cec36d","dweb:/ipfs/QmNZoQyminStaAdaLqoDLoWaBU5QWrWjXFjmBm4aFhzL8i"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IV4Router.sol":{"keccak256":"0xc4133fae25e61cc2447d7331729f6035322d7c1fe26b39b225422bf98cc63459","urls":["bzz-raw://3c24ff8428504e973e947a059f96289a66c520cd7f8ef47a3224f9cb6abdaf25","dweb:/ipfs/QmVqxYnngWXXcCiuTC143vTEJrjZK5NXWB92pjvVbuJBQ5"],"license":"MIT"},"lib/v4-periphery/src/interfaces/external/IWETH9.sol":{"keccak256":"0xe88abf12501ac275619aec0687240a07d26968aecbbcdfea88ba8bbd5d6e5e14","urls":["bzz-raw://7097065d4492b4eccb1a73f99af1e5bec45404c6b973b8f5965c4c91403f5f92","dweb:/ipfs/QmZK8oEqmjmTqhBoh3D3fBpyKGkUEFnptY8xwH9xpNjDm2"],"license":"MIT"},"lib/v4-periphery/src/libraries/ActionConstants.sol":{"keccak256":"0x3d6f0e5b4a7b1e60bad93e73dce5db67fb66bebef11c31ed8355014a79aa03b3","urls":["bzz-raw://6dfa42e24b1b5c7f66e75304ab034fbb6768518eb2410ccfff8b3defdd1658f2","dweb:/ipfs/QmQQ7fud9mmv7PEWPAQiNzeZhNkWf28Z6nCHc2e6WJFfa7"],"license":"MIT"},"lib/v4-periphery/src/libraries/Actions.sol":{"keccak256":"0x8efd4b8b289177ee27e557d9d0a5a9f973d66fe1eb1ef8959d316b11987ca830","urls":["bzz-raw://07fe35f194eb99465028f0546359befea574d844da53767d32f22b233c3bcc98","dweb:/ipfs/Qmc19631uFxABTHAbGrDrroexi9GdyxWntaum1v8npPYz5"],"license":"MIT"},"lib/v4-periphery/src/libraries/BipsLibrary.sol":{"keccak256":"0x37ebf99f5d086d9d9f6e7cecbf4d62167f47c63c30248cfcb921e828f0d7a359","urls":["bzz-raw://c4f8e68a66bb6c166d72cdba6ed6fb83a93f713b79c2c572e8058084eb90ab6c","dweb:/ipfs/QmY32FxtSBRf9PJzNUVzXqFY4i2ApTPHTUMpCBGovd2zo3"],"license":"MIT"},"lib/v4-periphery/src/libraries/CalldataDecoder.sol":{"keccak256":"0x26df49e13fb5410fd4db253cca877dfdfb3a1ba03e394d054c0e0514a88a56e5","urls":["bzz-raw://72a0c98c52171708f332f83d517deeb97fdd50ecf28f2510e1866e54593a6ff8","dweb:/ipfs/QmY4LiDUfSKGj86nML7B6a8euiPciUqwYehasAyAVnMCHq"],"license":"MIT"},"lib/v4-periphery/src/libraries/PathKey.sol":{"keccak256":"0xbbd79ffefe045f025263e389539021266fb4d371463aefba405e1ff1d3fcf9bc","urls":["bzz-raw://2d1c47b81a01218be46ee79f0a8837095479b94dc5cfd18abbf2006709f0ea89","dweb:/ipfs/QmRb6CQ13Zp7f3WF5jbZtsF2szhxpPgcuWs9mjwQXxzqtg"],"license":"MIT"},"lib/v4-periphery/src/libraries/PositionInfoLibrary.sol":{"keccak256":"0xc5ddf96bd088bc87ea50a20f907fc932fb28397a42682a301b268a11b7f34078","urls":["bzz-raw://7dfeb4dc747537240f8167243e8066b6f5f08057386fb8bda93f82973fc18ad6","dweb:/ipfs/Qmby9DAAaHj8hjsMUnqY3vjqCHKGAKrT5EULMmeGcjbbGx"],"license":"MIT"},"node_modules/fhevm/config/ZamaFHEVMConfig.sol":{"keccak256":"0x41782f4c707b81399916544fa2e7be94a695fa4ba468542732d29d3e383c0315","urls":["bzz-raw://45a95a55c4bbb3418c2133cba6ed21a9444bb4e38d38b32cc707b7493cece2ca","dweb:/ipfs/QmVU8EKmZgscdM43RgXD4EgbVMhQxBusTmBren3pbn1pUW"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/config/ZamaGatewayConfig.sol":{"keccak256":"0xbed8bc18db61ffeb5ee31f577ab636d8563df27554e0ca66c53534f0bd82ffbd","urls":["bzz-raw://53601967f9e914b25cf91a325b100d5b3cbb9aec92d12443062a51fe5a578b7d","dweb:/ipfs/QmNbviWrrPrx3snoLWqW5GyBnH99tSX3iYXEJ5ezk9XbtL"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/gateway/GatewayCaller.sol":{"keccak256":"0xd19fd7715f0c5b479bf0cd8e3108cc8da7deae2d4fc7fb5ab089ebf2d76a0652","urls":["bzz-raw://6386c509464cefe5a41903ca837da46a21b8042d13ccde656158efc48cd70ea8","dweb:/ipfs/QmUn7C6aZwKmEmKsphBshBezXXGZtLMyfaeZAyuZoRsBWU"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/gateway/lib/Gateway.sol":{"keccak256":"0x9585a649e3001a4b8768ab6e2597b416f680bcc537309cd50b60e023e9791318","urls":["bzz-raw://a1b055bfb067cc247d4bd60b5f8348f667cbe79717a5753cd6412955277345d0","dweb:/ipfs/QmTveBaQg9GUdtrrxcR4RsiyAEmoEKGL4gn6E1gThR1ph5"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/lib/Impl.sol":{"keccak256":"0x89d4968cd956a8931f1a8a177b3bef1c6cf88a03665083db74430add50b88f21","urls":["bzz-raw://aaaef2c82d56dacfb08946842ea1ce26757d13f3251de62fa79222232dfcb43c","dweb:/ipfs/QmQ6QZPxJw9jb3qjRYCX7pMQVoYogjTsYgmdEnB3EnwFRy"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/lib/TFHE.sol":{"keccak256":"0x221799c8332f83ab65a0b71746409f0c2c89f1cd8d9ba4091d967c667e1df734","urls":["bzz-raw://2dba387fbc612a2ee64063b0ee6c27304b3944423d11045acc50abd84577fb5f","dweb:/ipfs/QmThptDGnpd8PuncFk1rnQoCzEqwUED622yC9xZgFhwY59"],"license":"BSD-3-Clause-Clear"}},"version":1},"id":0} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_indexTokens","type":"address[]","internalType":"address[]"},{"name":"_stablecoin","type":"address","internalType":"address"},{"name":"_decypheredStablecoin","type":"address","internalType":"address"},{"name":"_indexFundFactory","type":"address","internalType":"address"},{"name":"_marketDataFetcher","type":"address","internalType":"address"},{"name":"_swapsManagerProxy","type":"address","internalType":"address"},{"name":"_initialSharePrice","type":"uint256","internalType":"uint256"},{"name":"_poolKeys","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":"_numberOfSwapsToBatch","type":"uint8","internalType":"uint8"},{"name":"currentIndexFundsCount","type":"uint96","internalType":"uint96"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"burnShares","inputs":[{"name":"encryptedAmount","type":"bytes32","internalType":"einput"},{"name":"encryptedRedeemIndexTokens","type":"bytes32","internalType":"einput"},{"name":"inputProof","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"burnSharesCallback","inputs":[{"name":"requestID","type":"uint256","internalType":"uint256"},{"name":"transferErrorCode","type":"uint8","internalType":"uint8"},{"name":"decryptedAmount","type":"uint64","internalType":"uint64"},{"name":"redeemIndexTokens","type":"bool","internalType":"bool"},{"name":"hasUserEnoughSharesToBurn","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"callbackTriggers","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"finishMintShares","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"finishRedeemInStablecoinCase","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getIndexFundToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IndexFundToken"}],"stateMutability":"view"},{"type":"function","name":"getIndexTokens","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getPendingStablecoinRedeemAmount","inputs":[],"outputs":[{"name":"pendingStablecoinRedeemAmount","type":"uint256","internalType":"euint64"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getSharePrice","inputs":[],"outputs":[{"name":"sharePrice","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getStablecoin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ConfidentialERC20WithErrorsWrapped"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initRedeemAfterBurn","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mintCallbackTriggers","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"mintShares","inputs":[{"name":"encryptedAmount","type":"bytes32","internalType":"einput"},{"name":"inputProof","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mintSharesCallback","inputs":[{"name":"requestID","type":"uint256","internalType":"uint256"},{"name":"transferErrorCode","type":"uint8","internalType":"uint8"},{"name":"decryptedAmount","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sendFeesToProtocolOwner","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"updateSharePrice","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"BurnSwapsPerformed","inputs":[],"anonymous":false},{"type":"event","name":"EncryptedStablecoinTransfer","inputs":[{"name":"from","type":"uint256","indexed":true,"internalType":"eaddress"},{"name":"to","type":"uint256","indexed":true,"internalType":"eaddress"},{"name":"amount","type":"uint256","indexed":true,"internalType":"euint64"}],"anonymous":false},{"type":"event","name":"FeeCollected","inputs":[{"name":"user","type":"uint256","indexed":false,"internalType":"eaddress"},{"name":"feeAmount","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"IndexTokensRedeemed","inputs":[],"anonymous":false},{"type":"event","name":"MintSwapsPerformed","inputs":[],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SharesBurned","inputs":[{"name":"user","type":"uint256","indexed":true,"internalType":"eaddress"},{"name":"amount","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SharesMintRevertedAmountTooBig","inputs":[],"anonymous":false},{"type":"event","name":"SharesMinted","inputs":[{"name":"user","type":"uint256","indexed":true,"internalType":"eaddress"},{"name":"amount","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SharesToMintAmountBiggerThanMax","inputs":[{"name":"minter","type":"uint256","indexed":false,"internalType":"eaddress"},{"name":"amountToBurn","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AmountToSwapTooBig","inputs":[{"name":"amountToSwap","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"EncryptedTransferFailed","inputs":[{"name":"token","type":"uint256","internalType":"eaddress"},{"name":"from","type":"uint256","internalType":"eaddress"},{"name":"to","type":"uint256","internalType":"eaddress"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InsufficientAllowance","inputs":[{"name":"allower","type":"uint256","internalType":"eaddress"},{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"NoPendingWithdrawal","inputs":[{"name":"user","type":"uint256","internalType":"eaddress"}]},{"type":"error","name":"NotEnoughSwapsToBatch","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SharesToBurnAmountBiggerThanMax","inputs":[{"name":"burner","type":"uint256","internalType":"eaddress"},{"name":"amountToBurn","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"TransferFailed","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"from","type":"uint256","internalType":"eaddress"},{"name":"to","type":"uint256","internalType":"eaddress"},{"name":"amount","type":"uint256","internalType":"euint256"}]},{"type":"error","name":"UserShareBalanceTooSmall","inputs":[{"name":"user","type":"uint256","internalType":"eaddress"},{"name":"amountToBurn","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x6080806040523461075a5761504c803803809161001c8285610832565b833981016101408282031261075a5781516001600160401b03811161075a57820181601f8201121561075a57805161005381610855565b916100616040519384610832565b818352602083016020819360051b8301019185831161075a57602001905b8282106107ff575050506100956020850161086c565b6100a16040860161086c565b916100ae6060870161086c565b936100bb6080880161086c565b956100c860a0890161086c565b60c089015160e08a01519098906001600160401b03811161075a578a019280601f8501121561075a578351906100fd82610855565b9461010b6040519687610832565b8286526020860191602060a08495028301019181831161075a57602001925b82841061076657505050506101008b01519a60ff8c168c0361075a5761012001516001600160601b03811699908a900361075a57600180555f606060405161017181610817565b8281528260208201528260408201520152739d6891a6240d6130c54ae243d8005063d05fe14b60606040516101a581610817565b73fee8407e2f5e3ee68ad77cae98c434e637f516e580825273687408ab54661ba0b4aef3a44156c616c6955e07602080840182905273fb03be574d14c256d56f09a198b586bdfc0a9de2604080860182905295909401959095527fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60080546001600160a01b031990811690931790557fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea6018054831690911790557fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea602805482169092179091557fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60380548216739d6891a6240d6130c54ae243d8005063d05fe14b1790557f93ab6e17f2c461cce6ea5d4ec117e51dda77a64affc2b2c05f8cd440def0e70080549091167333347831500f1e73f0cccbb95c9f86b94d7b112317905551638da5cb5b60e01b81526001600160a01b039290921695919081600481895afa90811561058f575f91610728575b50601a80546001600160a01b0319166001600160a01b0392909216919091179055519068010000000000000000821161059a57600e5482600e558083106106a8575b50600e5f5260205f205f915b83831061060f575050601080546001600160a01b03199081166001600160a01b0395861617909155600f80548216959094169490941790925550506013805462010000600160d01b03191662010000600160d01b031790556011805490911691909117905551906001600160401b03821161059a5768010000000000000000821161059a57600d5482600d558083106105cb575b50600d5f5260205f205f5b8381106105ae57601680546001600160a01b038781166001600160a01b031992831617909255601780549289169290911691909117905588886020806104ee60236104bd8d6104b8602f610472836108bf565b6040519889916d24b73232bc233ab7322a37b5b2b760911b82840152605f60f81b602e8401528051918291018484015e81015f838201520301601f198101885287610832565b6108bf565b6040519384916212519560ea1b828401528051918291018484015e81015f838201520301601f198101835282610832565b60405191611ea991828401906001600160401b0382118583101761059a576105286105369386956131a38739604084526040840190610880565b916020818403910152610880565b03905ff0801561058f57601880546001600160a01b0319166001600160a01b0392909216919091179055601955600f805460ff60a01b191660a09290921b60ff60a01b1691909117905560405161276c9081610a378239f35b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b82516001600160a01b03168183015560209092019160010161041f565b600d5f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb59081019083015b8181106106045750610414565b5f81556001016105f7565b8051805183546001600160a01b039182166001600160a01b0319918216178555602080840151600180880180546040880151606089015160b81b62ffffff60b81b1662ffffff60a01b60a09290921b919091169488166001600160d01b03199092169190911793909317929092179091556080909401516002870180549190941692169190911790915593019260039092019101610380565b80600302906003820403610714578260030260038104840361071457600e5f527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd91820191015b8181106106fc5750610374565b805f600392555f60018201555f6002820155016106ef565b634e487b7160e01b5f52601160045260245ffd5b90506020813d60201161075e575b8161074360209383610832565b8101031261075a576107549061086c565b5f610332565b5f80fd5b3d9150610736565b60a08483031261075a576040519060a082016001600160401b0381118382101761059a576040526107968561086c565b82526107a46020860161086c565b6020830152604085015162ffffff8116810361075a57604083015260608501518060020b810361075a5760608301526080850151906001600160a01b038216820361075a5782602092608060a095015281520193019261012a565b6020809161080c8461086c565b81520191019061007f565b608081019081106001600160401b0382111761059a57604052565b601f909101601f19168101906001600160401b0382119082101761059a57604052565b6001600160401b03811161059a5760051b60200190565b51906001600160a01b038216820361075a57565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6001600160401b03811161059a57601f01601f191660200190565b805f917a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000821015610a0e575b806d04ee2d6d415b85acef8100000000600a9210156109f3575b662386f26fc100008110156109df575b6305f5e1008110156109ce575b6127108110156109bf575b60648110156109b1575b10156109a6575b600a6021600184019361094b856108a4565b946109596040519687610832565b808652610968601f19916108a4565b013660208701378401015b5f1901916f181899199a1a9b1b9c1cb0b131b232b360811b8282061a83530480156109a157600a9091610973565b505090565b600190910190610939565b606460029104930192610932565b61271060049104930192610928565b6305f5e1006008910493019261091d565b662386f26fc1000060109104930192610910565b6d04ee2d6d415b85acef810000000060209104930192610900565b50604091507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000081046108e656fe6080806040526004361015610012575f80fd5b5f905f3560e01c90816301ffc9a714611d565750806305d7d94b14611bc5578063248a9ca314611b935780632f2ff15d14611b545780633352a629146119f557806335c995ec1461165257806336568abe1461160d578063372df775146115e657806338f250ec1461157f5780635b1dac601461156157806375696e7f1461153857806376b150151461151f5780638fe01f0b146115015780639134867c14610f1057806391d1485414610ec757806397771de514610c71578063a217fddf14610c55578063b6f6731214610c2c578063b7064d99146108d8578063c3d02d96146108bb578063d547741f14610874578063e61681ef146105365763fcb74a451461011b575f80fd5b346105335760a036600319011261053357610134611e02565b61013c611e12565b90606435908115928315809303610464576084359182159283150361043c57610163612283565b5f805160206126f7833981519152546001600160a01b0316330361043c57601f546001810180911161051f57601f5560ff166104b5576001600160401b038060135460901c1691169081116104965760043585526009602052604085206001600160a01b03906101db906101d690611f52565b611eba565b511691610477576101ea611fc1565b60185485906001600160a01b0316803b1561047357818091602460405180948193634edf56a160e11b83528860048401525af180156104685761044f575b505061023333612433565b9080604051927f3acb72c06eaa137bacda5d4c12b12db324ae4cec48c4d80544122a8ffb28e28c8880a36318a5f69160e11b8252600c60048301526024820152848160448173__$4bd4e058d5e733e11ce3933a38e00d3f30$__5af490811561044457859161039d575b50818552601b602052604085208151916001600160401b03831161038957600160401b8311610389578154838355808410610363575b5060200190865260208620865b83811061034f57505050508352601c602052604083209060ff8019835416911617905561030f575b6001805580f35b60135460ff8160081c1660ff811461033b57600161ff00910160081b169061ff00191617601355610308565b634e487b7160e01b83526011600452602483fd5b6001906020845194019381840155016102e0565b828852836020892091820191015b81811061037e57506102d3565b888155600101610371565b634e487b7160e01b87526041600452602487fd5b90503d8086833e6103ae8183611e28565b81019060208183031261043c578051906001600160401b03821161044057019080601f8301121561043c578151916001600160401b038311610389578260051b9060208201936104016040519586611e28565b845260208085019282010192831161043857602001905b828210610428575050505f61029d565b8151815260209182019101610418565b8780fd5b8580fd5b8680fd5b6040513d87823e3d90fd5b8161045991611e28565b61046457845f610228565b8480fd5b6040513d84823e3d90fd5b5080fd5b8490610484604493612433565b633721f7cb60e01b8352600452602452fd5b846044916104a333612433565b6353d6b89960e11b8352600452602452fd5b6018546104ca906001600160a01b0316612433565b61051b6104d633612433565b926104e030612433565b604051948594638443530d60e01b86526004860192936001600160401b03919594606093608086019786526020860152604085015216910152565b0390fd5b634e487b7160e01b87526011600452602487fd5b80fd5b503461053357602036600319011261053357610550611dbf565b6001600160a01b038116808352601e60205260408320549091906001600160401b0316801561082f57828452601e60205260408420805467ffffffffffffffff1916905560165484906001600160a01b0316803b156104735781809160246040518094819363dc412e8360e01b83528860048401525af180156104685761081a575b5073__$4bd4e058d5e733e11ce3933a38e00d3f30$__6040519263304e078360e01b8452600c60048501526024840152604083604481845af4801561046857829383916107e1575b507faf7c505ee772ec188af7067e1f73db08ab028e3d564273442b907742b9c41fa0602061064787612433565b604051908152a260ff6013541660ff600f5460a01c161461076c575b505061066d611fc1565b6019548015610719576106896001600160401b03918693611fa3565b169260018060a01b036018541690813b156107155782916044839260405194859384926302893c5b60e41b845260048401528960248401525af1801561046857610700575b50506106d990612433565b7f0a7d587acc3bafe631c58ed4a25eda1e905acfb47594d1b86b332ae63df225948380a380f35b8161070a91611e28565b61071557825f6106ce565b8280fd5b60405162461bcd60e51b815260206004820152602560248201527f5368617265207072696365206d7573742062652067726561746572207468616e604482015264207a65726f60d81b6064820152608490fd5b803b1561047357816024916040519283809263a52cd1cb60e01b8252600c60048301525af48015610468576107c8575b50807f79154593ad5827af96f232d8b081e8d48c8bad62e5314fd67880b9880b48124091a1835f610663565b816107d291611e28565b6107dd57835f61079c565b8380fd5b9350506040833d604011610812575b816107fd60409383611e28565b8101031261047357602083519301515f61061a565b3d91506107f0565b8161082491611e28565b6107dd57835f6105d2565b60405162461bcd60e51b815260206004820152601d60248201527f4e6f2070656e64696e67206d696e7420666f72207468697320757365720000006044820152606490fd5b5034610533576040366003190112610533576108b7600435610894611da9565b906108b26108ad825f525f602052600160405f20015490565b6122a3565b6123b3565b5080f35b503461053357806003193601126105335760208054604051908152f35b5034610533578060031936011261053357338152601b602052604081205415610c1157338152601b602052604081206040518082602082945493848152019085526020852092855b818110610bf857505061093592500382611e28565b338252601c6020528160ff604082205416338252601b6020526040822080549083815581610bd8575b505015610a2f575060ff60135460081c1660ff600f5460a01c1611610a2057819073__$4bd4e058d5e733e11ce3933a38e00d3f30$__803b15610a1c576109d19183916040518080958194630881151960e01b8352600c6004840152336024840152606060448401526064830190612250565b03915af4801561046857610a07575b50807ee2d681c483528119b71f74ebcd6ad9dd9ca7fd71ea2245aa2362e27d3f2eb691a180f35b81610a1191611e28565b61053357805f6109e0565b5050fd5b634cc203a560e11b8252600482fd5b610a6a91602060018060a01b03601654169160405180958192632e128d5b60e11b8352600c6004840152604060248401526044830190612250565b038173__$4bd4e058d5e733e11ce3933a38e00d3f30$__5af4928315610468578293610b9d575b5060175460165460405163095ea7b360e01b81526001600160a01b0391821660048201526024810186905291602091839160449183918891165af18015610b9257610b65575b50803b1561047357818091602460405180948193630ea598cb60e41b83528860048401525af1801561046857610b50575b5050610b139061250f565b338252601d6020526040822055338152601d602052610b36336040832054612682565b338152601d602052610b4d60408220543090612682565b80f35b81610b5a91611e28565b61047357815f610b08565b610b869060203d602011610b8b575b610b7e8183611e28565b810190611e5d565b610ad7565b503d610b74565b6040513d85823e3d90fd5b915091506020813d602011610bd0575b81610bba60209383611e28565b81010312610bcc57829051915f610a91565b5f80fd5b3d9150610bad565b835260208320908101905b8181101561095e579283558492600101610be3565b8454835260019485019486945060209093019201610920565b602490610c1d33612433565b63cd7a4aa560e01b8252600452fd5b50346105335780600319360112610533576016546040516001600160a01b039091168152602090f35b5034610533578060031936011261053357602090604051908152f35b503461053357606036600319011261053357610c8b611e02565b610c93611e12565b90610c9c612283565b5f805160206126f7833981519152546001600160a01b031633036107155760205460018101809111610eb3576020556004358352600960205260018060a01b03610ceb6101d660408620611f52565b51169060ff60018060a01b03601654169116610ea9578390610d0c83612433565b6001600160401b03610d1d30612433565b951694610d298661250f565b917ffdda383f98b7ae2bbc9363df5694616f2c7890613a6dc6e80c9328c1186d95ef8580a46001600160401b0360135460901c168411610d86575b5052601e60205260408220906001600160401b03198254161790556001805580f35b610d8f8461250f565b5f805160206126d7833981519152546001600160a01b0316803b156107dd576040516346ce4e4960e11b8152600481018390526001600160a01b03841660248201529084908290604490829084905af1908115610e89578491610e94575b505060405163a9059cbb60e01b81526001600160a01b038516600482015260248101919091529160209183916044918391905af18015610e8957610e6c575b507f6f59438bec28ae7fde9ad29d1b94c360525f0ffd036127ccc684c82eb8cbc7a26040610e5983612433565b8151908152846020820152a1825f610d64565b610e849060203d602011610b8b57610b7e8183611e28565b610e2c565b6040513d86823e3d90fd5b81610e9e91611e28565b61071557825f610ded565b6104ca9150612433565b634e487b7160e01b84526011600452602484fd5b5034610533576040366003190112610533576040610ee3611da9565b91600435815280602052209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b5034610533576060366003190112610533576044356001600160401b03811161047357610f71602080610f4960a4943690600401611dd5565b9390610f53612283565b610f69610f61368784611e75565b600435612565565b943691611e75565b60018060a01b035f80516020612717833981519152541690866040519687809581946302e817ff60e41b83526024356004840152336024840152608060448401528051918291826084860152018484015e83838284010152836064830152601f801991011681010301925af1918215610b925783926114cd575b505f805160206126d78339815191525483906001600160a01b0316803b15610473576040516346ce4e4960e11b8152600481018590523360248201529082908290604490829084905af18015610468576114b8575b50506018546040516306e928fd60e01b81523360048201526001600160a01b0390911692909160208360248188885af1928315610444578593611484575b508281938215611474575b15611462575b602090606460018060a01b035f805160206127178339815191525416958860405197889485936334a6d7b960e11b8552600485015260248401528160448401525af192831561044457859361142e575b505f805160206126d78339815191525485906001600160a01b0316803b15610473576040516346ce4e4960e11b8152600481018490526001600160a01b03871660248201529082908290604490829084905af1801561046857611419575b50506040516323b872dd60e01b81523360048201523060248201526044810182905260208160648189895af180156113f1576113fc575b50604051630cf4e94560e31b8152602081600481885afa9081156113f15786916113bf575b505f1981019081116113ab5760209060246040518097819363a5184baf60e01b835260048301525afa938415610444578594611377575b50604051936111e060a086611e28565b6004855260803660208701376111f585611eba565b526111ff84611edb565b5282516002101561136357606083015281516003101561134f576080820152606442019081421161033b575f805160206126d78339815191525483906001600160a01b0316803b156104735781604051809263155f840160e21b825260206004830152818381611272602482018a612250565b03925af180156104685761133a575b50505f805160206126f783398151915254604051634c0d927760e01b815260a060048201529260209284926001600160a01b0316918391879183916112ca9060a4840190612250565b9063fcb74a4560e01b6024840152836044840152606483015282608483015203925af18015610468578290611306575b61030891503390612363565b506020813d602011611332575b8161132060209383611e28565b81010312610bcc5761030890516112fa565b3d9150611313565b8161134491611e28565b61071557825f611281565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b84526032600452602484fd5b9093506020813d6020116113a3575b8161139360209383611e28565b81010312610bcc5751925f6111d0565b3d9150611386565b634e487b7160e01b86526011600452602486fd5b90506020813d6020116113e9575b816113da60209383611e28565b81010312610bcc57515f611199565b3d91506113cd565b6040513d88823e3d90fd5b6114149060203d602011610b8b57610b7e8183611e28565b611174565b8161142391611e28565b61046457845f61113d565b9092506020813d60201161145a575b8161144a60209383611e28565b81010312610bcc5751915f6110df565b3d915061143d565b50602061146d6124b9565b905061108f565b935061147e6124b9565b93611089565b9092506020813d6020116114b0575b816114a060209383611e28565b810103126104645751915f61107e565b3d9150611493565b816114c291611e28565b61071557825f611040565b9091506020813d6020116114f9575b816114e960209383611e28565b81010312610bcc5751905f610feb565b3d91506114dc565b50346105335780600319360112610533576020601f54604051908152f35b5034610533578060031936011261053357610b4d611fc1565b50346105335780600319360112610533576018546040516001600160a01b039091168152602090f35b50346105335780600319360112610533576020601954604051908152f35b5034610533578060031936011261053357611598611eff565b90604051918291602083016020845282518091526020604085019301915b8181106115c4575050500390f35b82516001600160a01b03168452859450602093840193909201916001016115b6565b50346105335780600319360112610533576040602091338152601d83522054604051908152f35b503461053357604036600319011261053357611627611da9565b336001600160a01b03821603611643576108b7906004356123b3565b63334bd91960e11b8252600482fd5b5034610533576040366003190112610533576024356001600160401b03811161047357906116a861168a610f61933690600401611dd5565b9390611694612283565b6016546001600160a01b0316943691611e75565b5f805160206126d7833981519152546001600160a01b0316803b15610715576040516346ce4e4960e11b8152600481018390526001600160a01b03851660248201529083908290604490829084905af18015610b92579083916119e0575b50506040516323b872dd60e01b81523360048201523060248201526044810182905260208160648186885af18015610b92576119c3575b50604051630cf4e94560e31b8152602081600481875afa908115610b92578391611991575b501561195857604051630cf4e94560e31b8152602081600481875afa908115610b92578391611926575b505f19810190811161033b5782936024602092604051958693849263a5184baf60e01b845260048401525af1918215610b925783926118f2575b50604051916117d6606084611e28565b6002835260403660208501376117eb83611eba565b526117f582611edb565b52606442019081421161033b575f805160206126d78339815191525483906001600160a01b0316803b156104735781604051809263155f840160e21b82526020600483015281838161184a602482018a612250565b03925af18015610468576118dd575b50505f805160206126f783398151915254604051634c0d927760e01b815260a060048201529260209284926001600160a01b0316918391879183916118a29060a4840190612250565b906397771de560e01b6024840152836044840152606483015282608483015203925af180156104685782906113065761030891503390612363565b816118e791611e28565b61071557825f611859565b9091506020813d60201161191e575b8161190e60209383611e28565b81010312610bcc5751905f6117c6565b3d9150611901565b90506020813d602011611950575b8161194160209383611e28565b81010312610bcc57515f61178c565b3d9150611934565b60405162461bcd60e51b8152602060048201526011602482015270139bc8195c9c9bdc881c9958dbdc991959607a1b6044820152606490fd5b90506020813d6020116119bb575b816119ac60209383611e28565b81010312610bcc57515f611762565b3d915061199f565b6119db9060203d602011610b8b57610b7e8183611e28565b61173d565b816119ea91611e28565b61047357815f611706565b5034610bcc576020366003190112610bcc57611a0f611dbf565b6001600160a01b0381165f818152601d60205260409020549190611a316124b9565b5f918252601d6020526040909120556016545f805160206126d7833981519152546001600160a01b03918216929116803b15610bcc576040516346ce4e4960e11b8152600481018590526001600160a01b0384166024820152905f908290604490829084905af18015611b4957611b2a575b5060405163a9059cbb60e01b81526001600160a01b03909116600482015260248101929092526020908290818581604481015b03925af1801561046857611b0d575b507f875fc5b1c93e96a85172e0d2b74fcdb6f314c3460e99e6a7da8743bc8b75e37c8180a180f35b611b259060203d602011610b8b57610b7e8183611e28565b611ae5565b611ad69391945091611b3e5f602094611e28565b5f9491935091611aa3565b6040513d5f823e3d90fd5b34610bcc576040366003190112610bcc57611b91600435611b73611da9565b90611b8c6108ad825f525f602052600160405f20015490565b6122db565b005b34610bcc576020366003190112610bcc576020611bbd6004355f525f602052600160405f20015490565b604051908152f35b34610bcc575f366003190112610bcc57601a546001600160a01b03163303611cfa57611bef612283565b6012548015611cc357601754601a5460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810193909352602091839160449183915f91165af1908115611b49575f91611ca4575b5015611c50575f60125560018055005b60405162461bcd60e51b815260206004820152602660248201527f4661696c656420746f2073656e64206665657320746f2070726f746f636f6c2060448201526537bbb732b91760d11b6064820152608490fd5b611cbd915060203d602011610b8b57610b7e8183611e28565b81611c40565b60405162461bcd60e51b815260206004820152600f60248201526e139bc81999595cc81d1bc81cd95b99608a1b6044820152606490fd5b60405162461bcd60e51b815260206004820152602e60248201527f4f6e6c79207468652070726f746f636f6c206f776e65722063616e2063616c6c60448201526d103a3434b990333ab731ba34b7b760911b6064820152608490fd5b34610bcc576020366003190112610bcc576004359063ffffffff60e01b8216809203610bcc57602091637965db0b60e01b8114908115611d98575b5015158152f35b6301ffc9a760e01b14905083611d91565b602435906001600160a01b0382168203610bcc57565b600435906001600160a01b0382168203610bcc57565b9181601f84011215610bcc578235916001600160401b038311610bcc5760208381860195010111610bcc57565b6024359060ff82168203610bcc57565b604435906001600160401b0382168203610bcc57565b90601f801991011681019081106001600160401b03821117611e4957604052565b634e487b7160e01b5f52604160045260245ffd5b90816020910312610bcc57518015158103610bcc5790565b9291926001600160401b038211611e495760405191611e9e601f8201601f191660200184611e28565b829481845281830111610bcc578281602093845f960137010152565b805115611ec75760200190565b634e487b7160e01b5f52603260045260245ffd5b805160011015611ec75760400190565b8051821015611ec75760209160051b010190565b60405190600d548083528260208101600d5f5260205f20925f5b818110611f30575050611f2e92500383611e28565b565b84546001600160a01b0316835260019485019487945060209093019201611f19565b90604051918281549182825260208201905f5260205f20925f5b818110611f81575050611f2e92500383611e28565b84546001600160a01b0316835260019485019487945060209093019201611f6c565b8115611fad570490565b634e487b7160e01b5f52601260045260245ffd5b5f90611fcb611eff565b6010545f936001600160a01b03909116905b8251851015612194576001600160a01b03611ff88685611eeb565b51604051630681320d60e51b815291166004820152602081602481865afa8015611b49575f90612162575b6024915060206001600160a01b0361203b8988611eeb565b5116604051938480926370a0823160e01b82523060048301525afa918215611b49575f9261212e575b5060049060206001600160a01b0361207c8a89611eeb565b51166040519384809263313ce56760e01b82525afa918215611b49575f926120f1575b508281029281840414901517156120dd5760ff1690604d82116120dd576120c991600a0a90611fa3565b81018091116120dd57600190940193611fdd565b634e487b7160e01b5f52601160045260245ffd5b9091506020813d8211612126575b8161210c60209383611e28565b81010312610bcc575160ff81168103610bcc57905f61209f565b3d91506120ff565b9091506020813d821161215a575b8161214960209383611e28565b81010312610bcc5751906004612064565b3d915061213c565b506020813d821161218c575b8161217b60209383611e28565b81010312610bcc5760249051612023565b3d915061216e565b6018546040516318160ddd60e01b81529495509093925060209150829060049082906001600160a01b03165afa8015611b49575f90612207575b6001600160401b03915016806121e2575050565b620f4240820291808304620f424014901517156120dd5761220291611fa3565b601955565b506020813d602011612248575b8161222160209383611e28565b81010312610bcc57516001600160401b0381168103610bcc576001600160401b03906121ce565b3d9150612214565b90602080835192838152019201905f5b81811061226d5750505090565b8251845260209384019390920191600101612260565b600260015414612294576002600155565b633ee5aeb560e01b5f5260045ffd5b5f8181526020818152604080832033845290915290205460ff16156122c55750565b63e2517d3f60e01b5f523360045260245260445ffd5b5f818152602081815260408083206001600160a01b038616845290915290205460ff1661235d575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b50505f90565b5f52600960205260405f20805490600160401b821015611e495760018201808255821015611ec7575f5260205f20019060018060a01b03166bffffffffffffffffffffffff60a01b825416179055565b5f818152602081815260408083206001600160a01b038616845290915290205460ff161561235d575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b5f8051602061271783398151915254604051631ce2e8d760e31b81526001600160a01b039283166004820152600760f81b602482015291602091839160449183915f91165af1908115611b49575f9161248a575090565b90506020813d6020116124b1575b816124a560209383611e28565b81010312610bcc575190565b3d9150612498565b5f8051602061271783398151915254604051631ce2e8d760e31b81525f60048201819052600560f81b60248301529091602091839160449183916001600160a01b03165af1908115611b49575f9161248a575090565b5f8051602061271783398151915254604051631ce2e8d760e31b81526004810192909252600560f81b6024830152602090829060449082905f906001600160a01b03165af1908115611b49575f9161248a575090565b6020929183915f8051602061271783398151915254905f60a46040518098819682956302e817ff60e41b84526004840152336024840152608060448401528051918291826084860152018484015e8181018301849052600560f81b6064830152601f01601f191681010301926001600160a01b03165af1918215611b49575f9261264e575b505f805160206126d78339815191525482906001600160a01b0316803b15610bcc576040516346ce4e4960e11b815260048101929092523360248301525f908290818381604481015b03925af18015611b49576126445750565b5f611f2e91611e28565b9091506020813d60201161267a575b8161266a60209383611e28565b81010312610bcc5751905f6125ea565b3d915061265d565b5f805160206126d7833981519152546001600160a01b031691823b15610bcc57604051631974142760e21b815260048101929092526001600160a01b03166024820152905f9082908183816044810161263356feed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60093ab6e17f2c461cce6ea5d4ec117e51dda77a64affc2b2c05f8cd440def0e700ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea601a26469706673582212201f550efbdf5179924f2462a8892f1e579b339bcb2bd95aef86c10a38c1b1248564736f6c634300081a003360a0806040523461040957611ea9803803809161001c828561066b565b83398101906040818303126104095780516001600160401b038111610409578261004791830161068e565b60208201519092906001600160401b03811161040957610067920161068e565b5f606060405161007681610650565b8281528260208201528260408201520152739d6891a6240d6130c54ae243d8005063d05fe14b60606040516100aa81610650565b73fee8407e2f5e3ee68ad77cae98c434e637f516e5815273687408ab54661ba0b4aef3a44156c616c6955e07602082015273fb03be574d14c256d56f09a198b586bdfc0a9de26040820152015273fee8407e2f5e3ee68ad77cae98c434e637f516e560018060a01b03195f80516020611e298339815191525416175f80516020611e298339815191525573687408ab54661ba0b4aef3a44156c616c6955e0760018060a01b03195f80516020611e698339815191525416175f80516020611e698339815191525573fb03be574d14c256d56f09a198b586bdfc0a9de260018060a01b03195f80516020611e898339815191525416175f80516020611e8983398151915255739d6891a6240d6130c54ae243d8005063d05fe14b60018060a01b03195f80516020611e498339815191525416175f80516020611e4983398151915255331561063d57600180546001600160a01b03199081169091555f805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a381516001600160401b03811161055057600254600181811c91168015610633575b602082101461053257601f81116105d0575b50602092601f821160011461056f57928192935f92610564575b50508160011b915f199060031b1c1916176002555b80516001600160401b03811161055057600354600181811c91168015610546575b602082101461053257601f81116104cf575b50602091601f821160011461046f579181925f92610464575b50508160011b915f199060031b1c1916176003555b5f5b60ff81169060028211610440575f80516020611e6983398151915254604051631ce2e8d760e31b815260048101849052600160f91b60248201529290602090849060449082905f906001600160a01b03165af19283156103fe575f9361040d575b505f9081526007602052604090208290555f80516020611e29833981519152546001600160a01b031691823b15610409575f92604484926040519586938492631974142760e21b845260048401523060248401525af19182156103fe5760ff926103ee575b501660ff81146103da57600101610302565b634e487b7160e01b5f52601160045260245ffd5b5f6103f89161066b565b5f6103c8565b6040513d5f823e3d90fd5b5f80fd5b9092506020813d8211610438575b816104286020938361066b565b810103126104095751915f610363565b3d915061041b565b600260805260405161174590816106e48239608051818181610c8d0152610f910152f35b015190505f806102eb565b601f1982169260035f52805f20915f5b8581106104b75750836001951061049f575b505050811b01600355610300565b01515f1960f88460031b161c191690555f8080610491565b9192602060018192868501518155019401920161047f565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c81019160208410610528575b601f0160051c01905b81811061051d57506102d2565b5f8155600101610510565b9091508190610507565b634e487b7160e01b5f52602260045260245ffd5b90607f16906102c0565b634e487b7160e01b5f52604160045260245ffd5b015190505f8061028a565b601f1982169360025f52805f20915f5b8681106105b857508360019596106105a0575b505050811b0160025561029f565b01515f1960f88460031b161c191690555f8080610592565b9192602060018192868501518155019401920161057f565b60025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace601f830160051c81019160208410610629575b601f0160051c01905b81811061061e5750610270565b5f8155600101610611565b9091508190610608565b90607f169061025e565b631e4fbdf760e01b5f525f60045260245ffd5b608081019081106001600160401b0382111761055057604052565b601f909101601f19168101906001600160401b0382119082101761055057604052565b81601f82011215610409578051906001600160401b03821161055057604051926106c2601f8401601f19166020018561066b565b8284526020838301011161040957815f9260208093018386015e830101529056fe6080806040526004361015610012575f80fd5b5f905f3560e01c90816306e928fd14610a575750806306fdde031461099a578063095ea7b31461097257806318160ddd1461094757806323b872dd146109175780632893c5b014610734578063313ce5671461071857806367a74a28146106fa57806370a08231146106c1578063715018a61461065c57806379ba5097146105d75780637b7e0a5a146105b95780638da5cb5b1461059257806395d89b41146104815780639a0943521461041f5780639dbead42146102ac578063a5184baf14610268578063a9059cbb14610236578063b32c1001146101fb578063dd62ed3e146101a8578063e30c39781461017f5763f2fde38b14610110575f80fd5b3461017c57602036600319011261017c57610129610afd565b610131611324565b600180546001600160a01b0319166001600160a01b0392831690811790915582549091167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b80fd5b503461017c578060031936011261017c576001546040516001600160a01b039091168152602090f35b503461017c57604036600319011261017c5760406101c4610afd565b916101cd610b13565b9260018060a01b031681526005602052209060018060a01b03165f52602052602060405f2054604051908152f35b503461017c5761022a61021e61022461021336610b7b565b949192943691610f26565b9061134a565b90610bf8565b50602060405160018152f35b503461017c57604036600319011261017c57602061025e610255610afd565b60243590610f6c565b6040519015158152f35b503461017c57602036600319011261017c5760043560065481101561029d578160409160209352600883522054604051908152f35b63d65c1f3360e01b8252600482fd5b503461017c57602036600319011261017c5760043567ffffffffffffffff811680910361041b5733825260046020528160408120548015610409575b5f805160206116f083398151915254604051638c14cc2160e01b8152600481019290925260248201849052600160f81b6044830152909160209183916064918391906001600160a01b03165af180156103fe5783906103c6575b6103669150338452600460205280604085205561035f30826115bf565b33906115bf565b6001549067ffffffffffffffff8260a01c160367ffffffffffffffff81116103b25767ffffffffffffffff60a01b1990911660a09190911b67ffffffffffffffff60a01b161760015580f35b634e487b7160e01b83526011600452602483fd5b506020813d6020116103f6575b816103e060209383610bc2565b810103126103f2576103669051610342565b5f80fd5b3d91506103d3565b6040513d85823e3d90fd5b506020610414611679565b90506102e8565b5080fd5b503461017c57608036600319011261017c57610439610afd565b610441610b13565b6064359267ffffffffffffffff841161017c575061047b61047361046c61022a953690600401610b4d565b3691610f26565b60443561134a565b91610c4d565b503461017c578060031936011261017c576040519080600354908160011c91600181168015610588575b6020841081146105745783865290811561054d57506001146104f0575b6104ec846104d881860382610bc2565b604051918291602083526020830190610b29565b0390f35b600381527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b939250905b808210610533575090915081016020016104d8826104c8565b91926001816020925483858801015201910190929161051a565b60ff191660208087019190915292151560051b850190920192506104d891508390506104c8565b634e487b7160e01b83526022600452602483fd5b92607f16926104ab565b503461017c578060031936011261017c57546040516001600160a01b039091168152602090f35b503461017c5761022a61021e6105d161021336610b7b565b90610f6c565b503461017c578060031936011261017c57600154336001600160a01b039091160361064957600180546001600160a01b0319908116909155815433918116821783556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b63118cdaa760e01b815233600452602490fd5b503461017c578060031936011261017c57610675611324565b600180546001600160a01b03199081169091558154908116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461017c57602036600319011261017c576020906040906001600160a01b036106e9610afd565b168152600483522054604051908152f35b503461017c578060031936011261017c576020600654604051908152f35b503461017c578060031936011261017c57602060405160068152f35b503461017c57604036600319011261017c5761074e610afd565b60243567ffffffffffffffff81168091036109135761076b611324565b6001600160a01b03821680845260046020526040842054909284918015610901575b5f805160206116f08339815191525460405163f953e42760e01b8152600481019290925260248201859052600160f81b6044830152909260209184916064918391906001600160a01b03165af180156108f65785906108c2575b6108099250848652600460205280604087205561080430826115bf565b6115bf565b81837fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60206040515f198152a36001548167ffffffffffffffff8260a01c160167ffffffffffffffff81116108ae5767ffffffffffffffff60a01b1990911660a09190911b67ffffffffffffffff60a01b16176001556040519081527f9109de113672aaca72ede8bc906f7aafabee865311ac020fb15c71edf94a0a0190602090a280f35b634e487b7160e01b85526011600452602485fd5b506020823d6020116108ee575b816108dc60209383610bc2565b810103126103f25761080991516107e7565b3d91506108cf565b6040513d87823e3d90fd5b50602061090c611679565b905061078d565b8280fd5b503461017c57606036600319011261017c57602061025e610936610afd565b61093e610b13565b60443591610c4d565b503461017c578060031936011261017c57602067ffffffffffffffff60015460a01c16604051908152f35b503461017c57604036600319011261017c57602061025e610991610afd565b60243590610bf8565b503461017c578060031936011261017c576040519080600254908160011c91600181168015610a4d575b6020841081146105745783865290811561054d57506001146109f0576104ec846104d881860382610bc2565b600281527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace939250905b808210610a33575090915081016020016104d8826104c8565b919260018160209254838588010152019101909291610a1a565b92607f16926109c4565b346103f25760203660031901126103f2576001600160a01b03610a78610afd565b165f908152600460205260409020545f805160206116d0833981519152546001600160a01b0316803b156103f2576346ce4e4960e11b8352600483018290523360248401525f908390604490829084905af1918215610af257602092610ae2575b50604051908152f35b5f610aec91610bc2565b5f610ad9565b6040513d5f823e3d90fd5b600435906001600160a01b03821682036103f257565b602435906001600160a01b03821682036103f257565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9181601f840112156103f25782359167ffffffffffffffff83116103f257602083818601950101116103f257565b60606003198201126103f2576004356001600160a01b03811681036103f25791602435916044359067ffffffffffffffff82116103f257610bbe91600401610b4d565b9091565b90601f8019910116810190811067ffffffffffffffff821117610be457604052565b634e487b7160e01b5f52604160045260245ffd5b90610c0d90610c0681611035565b82336110d4565b6040515f1981526001600160a01b039091169033907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590602090a3600190565b91610c5781611035565b6001600160a01b0383165f81815260056020908152604080832033845290915290205493909290610c88858461144a565b9360ff7f0000000000000000000000000000000000000000000000000000000000000000169485600211610eae5760076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5460025f9081527fb7c774451310d1be4108bc180d1b52823cb0ee0274a6c0081bcaf94f115fb96d54909391610d13919084611627565b9083526004602052610d2960408420548761144a565b96602060018060a01b035f805160206116f083398151915254166024604051809781936309c00ffd60e11b83528d60048401525af1938415610af2575f94610ef1575b505f805160206116f083398151915254604051630ccd46b160e31b81526004810195909552602485018490525f6044860181905260209186916064918391906001600160a01b03165af1938415610af2575f94610ebd575b50600111610eae57610de9610dfd9160209460015f526007865260405f205490611627565b610df2816114fd565b5061035f85826115bf565b606460018060a01b035f805160206116f08339815191525416965f6040519889948593630ccd46b160e31b8552600485015260248401528160448401525af1938415610af2575f94610e76575b50610e6c610e6586610e5f86610e719961152a565b87611627565b33836110d4565b611151565b600190565b9493506020853d602011610ea6575b81610e9260209383610bc2565b810103126103f25793519293610e6c610e4a565b3d9150610e85565b63d65c1f3360e01b5f5260045ffd5b9093506020813d602011610ee9575b81610ed960209383610bc2565b810103126103f25751925f610dc4565b3d9150610ecc565b93506020843d602011610f1e575b81610f0c60209383610bc2565b810103126103f2579251926020610d6c565b3d9150610eff565b92919267ffffffffffffffff8211610be45760405191610f50601f8201601f191660200184610bc2565b8294818452818301116103f2578281602093845f960137010152565b90610f7681611035565b335f526004602052610f8c60405f20548261144a565b9060ff7f000000000000000000000000000000000000000000000000000000000000000016600111610eae5760076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5460015f527fb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b82854610e71949161102f91839161101b919087611627565b611024816114fd565b5061080433826115bf565b33611151565b5f805160206116d083398151915254604051632fd514cd60e11b81526004810192909252336024830152602090829060449082906001600160a01b03165afa908115610af2575f91611099575b501561108a57565b632fa38b3f60e01b5f5260045ffd5b90506020813d6020116110cc575b816110b460209383610bc2565b810103126103f2575180151581036103f2575f611082565b3d91506110a7565b6001600160a01b038116939290841561113e576001600160a01b03831694851561112b57906111299495610804925f52600560205260405f20905f526020528260405f205561112330846115bf565b826115bf565b565b85634a1406b160e11b5f5260045260245ffd5b8463e602df0560e01b5f5260045260245ffd5b91926001600160a01b03831692908315611311576001600160a01b0383169485156112fe579061118991611183611679565b91611627565b91845f5260046020525f602060408220548581156112ee575b86156112e0575b5f805160206116f08339815191525460405163f953e42760e01b8152600480820194909452848101909301919091526001600160f81b0319841660448301529092839160649183916001600160a01b03165af1908115610af2575f916112aa575b5092611231611243928561125b9650885f5260046020528060405f205561080430826115bf565b845f52600460205260405f205461152a565b835f5260046020528060405f205561080430826115bf565b6006545f1981019081116112965760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91604051908152a3565b634e487b7160e01b5f52601160045260245ffd5b9390506020843d6020116112d8575b816112c660209383610bc2565b810103126103f257925161123161120a565b3d91506112b9565b506112e9611679565b6111a9565b90506112f8611679565b906111a2565b8563ec442f0560e01b5f5260045260245ffd5b83634b637e8f60e11b5f5260045260245ffd5b5f546001600160a01b0316330361133757565b63118cdaa760e01b5f523360045260245ffd5b6113999160209160018060a01b035f805160206116f08339815191525416905f6040518096819582946302e817ff60e41b84526004840152336024840152608060448401526084830190610b29565b600560f81b606483015203925af1908115610af2575f91611418575b505f805160206116d0833981519152546001600160a01b0316803b156103f2576040516346ce4e4960e11b815260048101839052336024820152905f908290604490829084905af18015610af25761140b575090565b5f61141591610bc2565b90565b90506020813d602011611442575b8161143360209383610bc2565b810103126103f257515f6113b5565b3d9150611426565b9081156114ed575b80156114db575b602090606460018060a01b035f805160206116f08339815191525416935f60405195869485936334a6d7b960e11b8552600485015260248401528160448401525af1908115610af2575f916114ac575090565b90506020813d6020116114d3575b816114c760209383610bc2565b810103126103f2575190565b3d91506114ba565b5060206114e6611679565b9050611459565b90506114f7611679565b90611452565b60065491905f198314611296576111299060018401600655835f5260086020528060405f205530906115bf565b6020905f9281156115af575b80156115a1575b5f805160206116f083398151915254604051638c14cc2160e01b8152600480820194909452848101909301919091526001600160f81b0319841660448301529092839160649183916001600160a01b03165af1908115610af2575f916114ac575090565b506115aa611679565b61153d565b90506115b9611679565b90611536565b5f805160206116d0833981519152546001600160a01b031691823b156103f257604051631974142760e21b815260048101929092526001600160a01b03166024820152905f908290604490829084905af18015610af25761161d5750565b5f61112991610bc2565b9060646020925f60018060a01b035f805160206116f08339815191525416604051968795869463cb3b940760e01b86526004860152602485015260448401525af1908115610af2575f916114ac575090565b5f805160206116f083398151915254604051631ce2e8d760e31b81525f60048201819052600560f81b60248301529091602091839160449183916001600160a01b03165af1908115610af2575f916114ac57509056feed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea601a26469706673582212202b1b5bfaadc0ea53faaa823bd15c2e09954c17af5930a1ebcb6731558fc86c8764736f6c634300081a0033ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea603ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea601ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea602","sourceMap":"1707:16659:0:-:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1707:16659:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1707:16659:0;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1707:16659:0;;;;;;;;;;;;-1:-1:-1;1707:16659:0;;;;;;:::i;:::-;;;;;;;;;;;;;;;;865:42:155;1707:16659:0;;;;;;:::i;:::-;625:42:155;1707:16659:0;;;706:42:155;1707:16659:0;577:345:155;;;1707:16659:0;;;785:42:155;1707:16659:0;577:345:155;;;1707:16659:0;;;577:345:155;;;;1707:16659:0;;;;4586:62:159;1707:16659:0;;-1:-1:-1;;;;;;1707:16659:0;;;;;;;;4838:21:159;1707:16659:0;;;;;;;;;4903:19:159;1707:16659:0;;;;;;;;;;4964:20:159;1707:16659:0;;;;865:42:155;1707:16659:0;;;1020:58:158;1707:16659:0;;;;;455:42:156;1707:16659:0;;;;-1:-1:-1;;;3811:43:0;;-1:-1:-1;;;;;1707:16659:0;;;;;;;;3811:43;1707:16659;;3811:43;;;;;;;-1:-1:-1;3811:43:0;;;1707:16659;-1:-1:-1;3795:59:0;1707:16659;;-1:-1:-1;;;;;;1707:16659:0;-1:-1:-1;;;;;1707:16659:0;;;;;;;;;;;;;;;;;3865:23;1707:16659;;3865:23;1707:16659;;;;;;;;3865:23;-1:-1:-1;1707:16659:0;;-1:-1:-1;1707:16659:0;-1:-1:-1;1707:16659:0;;;;;;;-1:-1:-1;;3910:32:0;1707:16659;;-1:-1:-1;;;;;;1707:16659:0;;;-1:-1:-1;;;;;1707:16659:0;;;;;;;3992:32;1707:16659;;;;;;;;;;;;;;;-1:-1:-1;;4055:33:0;1707:16659;;-1:-1:-1;;;;;;1707:16659:0;-1:-1:-1;;;;;1707:16659:0;;;4188:31;1707:16659;;;;;;;;;;;;;-1:-1:-1;;;;;1707:16659:0;;;;;;;;;4249:26;1707:16659;;4249:26;1707:16659;;;;;;;;4249:26;-1:-1:-1;1707:16659:0;;-1:-1:-1;1707:16659:0;-1:-1:-1;1707:16659:0;;;;;;4300:25;1707:16659;;-1:-1:-1;;;;;1707:16659:0;;;-1:-1:-1;;;;;;1707:16659:0;;;;;;;4385:34;1707:16659;;;;;;;;;;;;;;;;;;;;;4637:40;1707:16659;;;4561:40;1707:16659;4561:40;:::i;:::-;1707:16659;;;;;-1:-1:-1;;;1707:16659:0;;;;-1:-1:-1;;;1707:16659:0;;;;;;;;;;;;;;;;-1:-1:-1;1707:16659:0;;;;;;;;;;;;;;:::i;:::-;4637:40;:::i;:::-;1707:16659;;;;;-1:-1:-1;;;1707:16659:0;;;;;;;;;;;;;;;;-1:-1:-1;1707:16659:0;;;;;;;;;;;;;;:::i;:::-;;;;4492:196;;;;;;-1:-1:-1;;;;;4492:196:0;;;;;;;;1707:16659;;4492:196;;;;;;1707:16659;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;4492:196;;-1:-1:-1;4492:196:0;;;;;4460:29;1707:16659;;-1:-1:-1;;;;;;1707:16659:0;-1:-1:-1;;;;;1707:16659:0;;;;;;;;;;4698:25;1707:16659;3992:32;1707:16659;;-1:-1:-1;;;;1707:16659:0;;;;;;-1:-1:-1;;;1707:16659:0;;;;;;;;;;;;;;;;4492:196;1707:16659;;;-1:-1:-1;1707:16659:0;;;;;4492:196;1707:16659;;;-1:-1:-1;1707:16659:0;;3811:43;1707:16659;;-1:-1:-1;1707:16659:0;;;;-1:-1:-1;;;;;1707:16659:0;;;;;;;;;;;;;;;4249:26;-1:-1:-1;1707:16659:0;;;;;;;;;;;;;;;;;;-1:-1:-1;1707:16659:0;;;;;;;;;;;;;-1:-1:-1;;;;;1707:16659:0;;;-1:-1:-1;;;;;;1707:16659:0;;;;;;;;;;;-1:-1:-1;1707:16659:0;;;;;;;;;;;;;;;-1:-1:-1;;;1707:16659:0;-1:-1:-1;;;1707:16659:0;;;;;;;;;;;;-1:-1:-1;;;;;;1707:16659:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4964:20:159;1707:16659:0;;;;;;;;;4964:20:159;1707:16659:0;;4964:20:159;1707:16659:0;;;;;;4964:20:159;1707:16659:0;4964:20:159;1707:16659:0;;;;;;3865:23;-1:-1:-1;1707:16659:0;;;;;;;;;;;;;;;;;;-1:-1:-1;4964:20:159;1707:16659:0;;-1:-1:-1;1707:16659:0;;;;-1:-1:-1;1707:16659:0;;;;;;;;;;;-1:-1:-1;1707:16659:0;;3811:43;1707:16659;;-1:-1:-1;1707:16659:0;3811:43;;;1707:16659;3811:43;;1707:16659;3811:43;;;;;;1707:16659;3811:43;;;:::i;:::-;;;1707:16659;;;;;;;:::i;:::-;3811:43;;;1707:16659;-1:-1:-1;1707:16659:0;;3811:43;;;-1:-1:-1;3811:43:0;;1707:16659;;;;;;;;;;;;;;-1:-1:-1;;;;;1707:16659:0;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1707:16659:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1707:16659:0;;;;;;;:::o;:::-;;;;;-1:-1:-1;;1707:16659:0;;;;-1:-1:-1;;;;;1707:16659:0;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1707:16659:0;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1707:16659:0;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1707:16659:0;;;;;;;;-1:-1:-1;;1707:16659:0;;;;:::o;:::-;-1:-1:-1;;;;;1707:16659:0;;;;;;-1:-1:-1;;1707:16659:0;;;;:::o;987:632:55:-;1109:17;-1:-1:-1;25444:17:59;25453:8;25444:17;;;25440:103;;987:632:55;25560:17:59;25569:8;26140:7;25560:17;;;25556:103;;987:632:55;25685:8:59;25676:17;;;25672:103;;987:632:55;25801:7:59;25792:16;;;25788:100;;987:632:55;25914:7:59;25905:16;;;25901:100;;987:632:55;26027:7:59;26018:16;;;26014:100;;987:632:55;26131:16:59;;26127:66;;987:632:55;26140:7:59;1224:92:55;1129:1;1707:16659:0;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;1224:92:55;;;1329:247;-1:-1:-1;;1707:16659:0;;-1:-1:-1;;;1383:111:55;;;;1707:16659:0;1383:111:55;1707:16659:0;1544:10:55;;1540:21;;26140:7:59;1329:247:55;;;;1540:21;1556:5;;987:632;:::o;26127:66:59:-;26177:1;1707:16659:0;;;;26127:66:59;;26014:100;26027:7;26098:1;1707:16659:0;;;;26014:100:59;;;25901;25914:7;25985:1;1707:16659:0;;;;25901:100:59;;;25788;25801:7;25872:1;1707:16659:0;;;;25788:100:59;;;25672:103;25685:8;25758:2;1707:16659:0;;;;25672:103:59;;;25556;25569:8;25642:2;1707:16659:0;;;;25556:103:59;;;25440;-1:-1:-1;25526:2:59;;-1:-1:-1;25453:8:59;1707:16659:0;;25440:103:59;","linkReferences":{"contracts/lib/IndexFundStateManagement.sol":{"IndexFundStateManagement":[{"start":3249,"length":20},{"start":4108,"length":20},{"start":5048,"length":20},{"start":5285,"length":20}]}}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f905f3560e01c90816301ffc9a714611d565750806305d7d94b14611bc5578063248a9ca314611b935780632f2ff15d14611b545780633352a629146119f557806335c995ec1461165257806336568abe1461160d578063372df775146115e657806338f250ec1461157f5780635b1dac601461156157806375696e7f1461153857806376b150151461151f5780638fe01f0b146115015780639134867c14610f1057806391d1485414610ec757806397771de514610c71578063a217fddf14610c55578063b6f6731214610c2c578063b7064d99146108d8578063c3d02d96146108bb578063d547741f14610874578063e61681ef146105365763fcb74a451461011b575f80fd5b346105335760a036600319011261053357610134611e02565b61013c611e12565b90606435908115928315809303610464576084359182159283150361043c57610163612283565b5f805160206126f7833981519152546001600160a01b0316330361043c57601f546001810180911161051f57601f5560ff166104b5576001600160401b038060135460901c1691169081116104965760043585526009602052604085206001600160a01b03906101db906101d690611f52565b611eba565b511691610477576101ea611fc1565b60185485906001600160a01b0316803b1561047357818091602460405180948193634edf56a160e11b83528860048401525af180156104685761044f575b505061023333612433565b9080604051927f3acb72c06eaa137bacda5d4c12b12db324ae4cec48c4d80544122a8ffb28e28c8880a36318a5f69160e11b8252600c60048301526024820152848160448173__$4bd4e058d5e733e11ce3933a38e00d3f30$__5af490811561044457859161039d575b50818552601b602052604085208151916001600160401b03831161038957600160401b8311610389578154838355808410610363575b5060200190865260208620865b83811061034f57505050508352601c602052604083209060ff8019835416911617905561030f575b6001805580f35b60135460ff8160081c1660ff811461033b57600161ff00910160081b169061ff00191617601355610308565b634e487b7160e01b83526011600452602483fd5b6001906020845194019381840155016102e0565b828852836020892091820191015b81811061037e57506102d3565b888155600101610371565b634e487b7160e01b87526041600452602487fd5b90503d8086833e6103ae8183611e28565b81019060208183031261043c578051906001600160401b03821161044057019080601f8301121561043c578151916001600160401b038311610389578260051b9060208201936104016040519586611e28565b845260208085019282010192831161043857602001905b828210610428575050505f61029d565b8151815260209182019101610418565b8780fd5b8580fd5b8680fd5b6040513d87823e3d90fd5b8161045991611e28565b61046457845f610228565b8480fd5b6040513d84823e3d90fd5b5080fd5b8490610484604493612433565b633721f7cb60e01b8352600452602452fd5b846044916104a333612433565b6353d6b89960e11b8352600452602452fd5b6018546104ca906001600160a01b0316612433565b61051b6104d633612433565b926104e030612433565b604051948594638443530d60e01b86526004860192936001600160401b03919594606093608086019786526020860152604085015216910152565b0390fd5b634e487b7160e01b87526011600452602487fd5b80fd5b503461053357602036600319011261053357610550611dbf565b6001600160a01b038116808352601e60205260408320549091906001600160401b0316801561082f57828452601e60205260408420805467ffffffffffffffff1916905560165484906001600160a01b0316803b156104735781809160246040518094819363dc412e8360e01b83528860048401525af180156104685761081a575b5073__$4bd4e058d5e733e11ce3933a38e00d3f30$__6040519263304e078360e01b8452600c60048501526024840152604083604481845af4801561046857829383916107e1575b507faf7c505ee772ec188af7067e1f73db08ab028e3d564273442b907742b9c41fa0602061064787612433565b604051908152a260ff6013541660ff600f5460a01c161461076c575b505061066d611fc1565b6019548015610719576106896001600160401b03918693611fa3565b169260018060a01b036018541690813b156107155782916044839260405194859384926302893c5b60e41b845260048401528960248401525af1801561046857610700575b50506106d990612433565b7f0a7d587acc3bafe631c58ed4a25eda1e905acfb47594d1b86b332ae63df225948380a380f35b8161070a91611e28565b61071557825f6106ce565b8280fd5b60405162461bcd60e51b815260206004820152602560248201527f5368617265207072696365206d7573742062652067726561746572207468616e604482015264207a65726f60d81b6064820152608490fd5b803b1561047357816024916040519283809263a52cd1cb60e01b8252600c60048301525af48015610468576107c8575b50807f79154593ad5827af96f232d8b081e8d48c8bad62e5314fd67880b9880b48124091a1835f610663565b816107d291611e28565b6107dd57835f61079c565b8380fd5b9350506040833d604011610812575b816107fd60409383611e28565b8101031261047357602083519301515f61061a565b3d91506107f0565b8161082491611e28565b6107dd57835f6105d2565b60405162461bcd60e51b815260206004820152601d60248201527f4e6f2070656e64696e67206d696e7420666f72207468697320757365720000006044820152606490fd5b5034610533576040366003190112610533576108b7600435610894611da9565b906108b26108ad825f525f602052600160405f20015490565b6122a3565b6123b3565b5080f35b503461053357806003193601126105335760208054604051908152f35b5034610533578060031936011261053357338152601b602052604081205415610c1157338152601b602052604081206040518082602082945493848152019085526020852092855b818110610bf857505061093592500382611e28565b338252601c6020528160ff604082205416338252601b6020526040822080549083815581610bd8575b505015610a2f575060ff60135460081c1660ff600f5460a01c1611610a2057819073__$4bd4e058d5e733e11ce3933a38e00d3f30$__803b15610a1c576109d19183916040518080958194630881151960e01b8352600c6004840152336024840152606060448401526064830190612250565b03915af4801561046857610a07575b50807ee2d681c483528119b71f74ebcd6ad9dd9ca7fd71ea2245aa2362e27d3f2eb691a180f35b81610a1191611e28565b61053357805f6109e0565b5050fd5b634cc203a560e11b8252600482fd5b610a6a91602060018060a01b03601654169160405180958192632e128d5b60e11b8352600c6004840152604060248401526044830190612250565b038173__$4bd4e058d5e733e11ce3933a38e00d3f30$__5af4928315610468578293610b9d575b5060175460165460405163095ea7b360e01b81526001600160a01b0391821660048201526024810186905291602091839160449183918891165af18015610b9257610b65575b50803b1561047357818091602460405180948193630ea598cb60e41b83528860048401525af1801561046857610b50575b5050610b139061250f565b338252601d6020526040822055338152601d602052610b36336040832054612682565b338152601d602052610b4d60408220543090612682565b80f35b81610b5a91611e28565b61047357815f610b08565b610b869060203d602011610b8b575b610b7e8183611e28565b810190611e5d565b610ad7565b503d610b74565b6040513d85823e3d90fd5b915091506020813d602011610bd0575b81610bba60209383611e28565b81010312610bcc57829051915f610a91565b5f80fd5b3d9150610bad565b835260208320908101905b8181101561095e579283558492600101610be3565b8454835260019485019486945060209093019201610920565b602490610c1d33612433565b63cd7a4aa560e01b8252600452fd5b50346105335780600319360112610533576016546040516001600160a01b039091168152602090f35b5034610533578060031936011261053357602090604051908152f35b503461053357606036600319011261053357610c8b611e02565b610c93611e12565b90610c9c612283565b5f805160206126f7833981519152546001600160a01b031633036107155760205460018101809111610eb3576020556004358352600960205260018060a01b03610ceb6101d660408620611f52565b51169060ff60018060a01b03601654169116610ea9578390610d0c83612433565b6001600160401b03610d1d30612433565b951694610d298661250f565b917ffdda383f98b7ae2bbc9363df5694616f2c7890613a6dc6e80c9328c1186d95ef8580a46001600160401b0360135460901c168411610d86575b5052601e60205260408220906001600160401b03198254161790556001805580f35b610d8f8461250f565b5f805160206126d7833981519152546001600160a01b0316803b156107dd576040516346ce4e4960e11b8152600481018390526001600160a01b03841660248201529084908290604490829084905af1908115610e89578491610e94575b505060405163a9059cbb60e01b81526001600160a01b038516600482015260248101919091529160209183916044918391905af18015610e8957610e6c575b507f6f59438bec28ae7fde9ad29d1b94c360525f0ffd036127ccc684c82eb8cbc7a26040610e5983612433565b8151908152846020820152a1825f610d64565b610e849060203d602011610b8b57610b7e8183611e28565b610e2c565b6040513d86823e3d90fd5b81610e9e91611e28565b61071557825f610ded565b6104ca9150612433565b634e487b7160e01b84526011600452602484fd5b5034610533576040366003190112610533576040610ee3611da9565b91600435815280602052209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b5034610533576060366003190112610533576044356001600160401b03811161047357610f71602080610f4960a4943690600401611dd5565b9390610f53612283565b610f69610f61368784611e75565b600435612565565b943691611e75565b60018060a01b035f80516020612717833981519152541690866040519687809581946302e817ff60e41b83526024356004840152336024840152608060448401528051918291826084860152018484015e83838284010152836064830152601f801991011681010301925af1918215610b925783926114cd575b505f805160206126d78339815191525483906001600160a01b0316803b15610473576040516346ce4e4960e11b8152600481018590523360248201529082908290604490829084905af18015610468576114b8575b50506018546040516306e928fd60e01b81523360048201526001600160a01b0390911692909160208360248188885af1928315610444578593611484575b508281938215611474575b15611462575b602090606460018060a01b035f805160206127178339815191525416958860405197889485936334a6d7b960e11b8552600485015260248401528160448401525af192831561044457859361142e575b505f805160206126d78339815191525485906001600160a01b0316803b15610473576040516346ce4e4960e11b8152600481018490526001600160a01b03871660248201529082908290604490829084905af1801561046857611419575b50506040516323b872dd60e01b81523360048201523060248201526044810182905260208160648189895af180156113f1576113fc575b50604051630cf4e94560e31b8152602081600481885afa9081156113f15786916113bf575b505f1981019081116113ab5760209060246040518097819363a5184baf60e01b835260048301525afa938415610444578594611377575b50604051936111e060a086611e28565b6004855260803660208701376111f585611eba565b526111ff84611edb565b5282516002101561136357606083015281516003101561134f576080820152606442019081421161033b575f805160206126d78339815191525483906001600160a01b0316803b156104735781604051809263155f840160e21b825260206004830152818381611272602482018a612250565b03925af180156104685761133a575b50505f805160206126f783398151915254604051634c0d927760e01b815260a060048201529260209284926001600160a01b0316918391879183916112ca9060a4840190612250565b9063fcb74a4560e01b6024840152836044840152606483015282608483015203925af18015610468578290611306575b61030891503390612363565b506020813d602011611332575b8161132060209383611e28565b81010312610bcc5761030890516112fa565b3d9150611313565b8161134491611e28565b61071557825f611281565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b84526032600452602484fd5b9093506020813d6020116113a3575b8161139360209383611e28565b81010312610bcc5751925f6111d0565b3d9150611386565b634e487b7160e01b86526011600452602486fd5b90506020813d6020116113e9575b816113da60209383611e28565b81010312610bcc57515f611199565b3d91506113cd565b6040513d88823e3d90fd5b6114149060203d602011610b8b57610b7e8183611e28565b611174565b8161142391611e28565b61046457845f61113d565b9092506020813d60201161145a575b8161144a60209383611e28565b81010312610bcc5751915f6110df565b3d915061143d565b50602061146d6124b9565b905061108f565b935061147e6124b9565b93611089565b9092506020813d6020116114b0575b816114a060209383611e28565b810103126104645751915f61107e565b3d9150611493565b816114c291611e28565b61071557825f611040565b9091506020813d6020116114f9575b816114e960209383611e28565b81010312610bcc5751905f610feb565b3d91506114dc565b50346105335780600319360112610533576020601f54604051908152f35b5034610533578060031936011261053357610b4d611fc1565b50346105335780600319360112610533576018546040516001600160a01b039091168152602090f35b50346105335780600319360112610533576020601954604051908152f35b5034610533578060031936011261053357611598611eff565b90604051918291602083016020845282518091526020604085019301915b8181106115c4575050500390f35b82516001600160a01b03168452859450602093840193909201916001016115b6565b50346105335780600319360112610533576040602091338152601d83522054604051908152f35b503461053357604036600319011261053357611627611da9565b336001600160a01b03821603611643576108b7906004356123b3565b63334bd91960e11b8252600482fd5b5034610533576040366003190112610533576024356001600160401b03811161047357906116a861168a610f61933690600401611dd5565b9390611694612283565b6016546001600160a01b0316943691611e75565b5f805160206126d7833981519152546001600160a01b0316803b15610715576040516346ce4e4960e11b8152600481018390526001600160a01b03851660248201529083908290604490829084905af18015610b92579083916119e0575b50506040516323b872dd60e01b81523360048201523060248201526044810182905260208160648186885af18015610b92576119c3575b50604051630cf4e94560e31b8152602081600481875afa908115610b92578391611991575b501561195857604051630cf4e94560e31b8152602081600481875afa908115610b92578391611926575b505f19810190811161033b5782936024602092604051958693849263a5184baf60e01b845260048401525af1918215610b925783926118f2575b50604051916117d6606084611e28565b6002835260403660208501376117eb83611eba565b526117f582611edb565b52606442019081421161033b575f805160206126d78339815191525483906001600160a01b0316803b156104735781604051809263155f840160e21b82526020600483015281838161184a602482018a612250565b03925af18015610468576118dd575b50505f805160206126f783398151915254604051634c0d927760e01b815260a060048201529260209284926001600160a01b0316918391879183916118a29060a4840190612250565b906397771de560e01b6024840152836044840152606483015282608483015203925af180156104685782906113065761030891503390612363565b816118e791611e28565b61071557825f611859565b9091506020813d60201161191e575b8161190e60209383611e28565b81010312610bcc5751905f6117c6565b3d9150611901565b90506020813d602011611950575b8161194160209383611e28565b81010312610bcc57515f61178c565b3d9150611934565b60405162461bcd60e51b8152602060048201526011602482015270139bc8195c9c9bdc881c9958dbdc991959607a1b6044820152606490fd5b90506020813d6020116119bb575b816119ac60209383611e28565b81010312610bcc57515f611762565b3d915061199f565b6119db9060203d602011610b8b57610b7e8183611e28565b61173d565b816119ea91611e28565b61047357815f611706565b5034610bcc576020366003190112610bcc57611a0f611dbf565b6001600160a01b0381165f818152601d60205260409020549190611a316124b9565b5f918252601d6020526040909120556016545f805160206126d7833981519152546001600160a01b03918216929116803b15610bcc576040516346ce4e4960e11b8152600481018590526001600160a01b0384166024820152905f908290604490829084905af18015611b4957611b2a575b5060405163a9059cbb60e01b81526001600160a01b03909116600482015260248101929092526020908290818581604481015b03925af1801561046857611b0d575b507f875fc5b1c93e96a85172e0d2b74fcdb6f314c3460e99e6a7da8743bc8b75e37c8180a180f35b611b259060203d602011610b8b57610b7e8183611e28565b611ae5565b611ad69391945091611b3e5f602094611e28565b5f9491935091611aa3565b6040513d5f823e3d90fd5b34610bcc576040366003190112610bcc57611b91600435611b73611da9565b90611b8c6108ad825f525f602052600160405f20015490565b6122db565b005b34610bcc576020366003190112610bcc576020611bbd6004355f525f602052600160405f20015490565b604051908152f35b34610bcc575f366003190112610bcc57601a546001600160a01b03163303611cfa57611bef612283565b6012548015611cc357601754601a5460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810193909352602091839160449183915f91165af1908115611b49575f91611ca4575b5015611c50575f60125560018055005b60405162461bcd60e51b815260206004820152602660248201527f4661696c656420746f2073656e64206665657320746f2070726f746f636f6c2060448201526537bbb732b91760d11b6064820152608490fd5b611cbd915060203d602011610b8b57610b7e8183611e28565b81611c40565b60405162461bcd60e51b815260206004820152600f60248201526e139bc81999595cc81d1bc81cd95b99608a1b6044820152606490fd5b60405162461bcd60e51b815260206004820152602e60248201527f4f6e6c79207468652070726f746f636f6c206f776e65722063616e2063616c6c60448201526d103a3434b990333ab731ba34b7b760911b6064820152608490fd5b34610bcc576020366003190112610bcc576004359063ffffffff60e01b8216809203610bcc57602091637965db0b60e01b8114908115611d98575b5015158152f35b6301ffc9a760e01b14905083611d91565b602435906001600160a01b0382168203610bcc57565b600435906001600160a01b0382168203610bcc57565b9181601f84011215610bcc578235916001600160401b038311610bcc5760208381860195010111610bcc57565b6024359060ff82168203610bcc57565b604435906001600160401b0382168203610bcc57565b90601f801991011681019081106001600160401b03821117611e4957604052565b634e487b7160e01b5f52604160045260245ffd5b90816020910312610bcc57518015158103610bcc5790565b9291926001600160401b038211611e495760405191611e9e601f8201601f191660200184611e28565b829481845281830111610bcc578281602093845f960137010152565b805115611ec75760200190565b634e487b7160e01b5f52603260045260245ffd5b805160011015611ec75760400190565b8051821015611ec75760209160051b010190565b60405190600d548083528260208101600d5f5260205f20925f5b818110611f30575050611f2e92500383611e28565b565b84546001600160a01b0316835260019485019487945060209093019201611f19565b90604051918281549182825260208201905f5260205f20925f5b818110611f81575050611f2e92500383611e28565b84546001600160a01b0316835260019485019487945060209093019201611f6c565b8115611fad570490565b634e487b7160e01b5f52601260045260245ffd5b5f90611fcb611eff565b6010545f936001600160a01b03909116905b8251851015612194576001600160a01b03611ff88685611eeb565b51604051630681320d60e51b815291166004820152602081602481865afa8015611b49575f90612162575b6024915060206001600160a01b0361203b8988611eeb565b5116604051938480926370a0823160e01b82523060048301525afa918215611b49575f9261212e575b5060049060206001600160a01b0361207c8a89611eeb565b51166040519384809263313ce56760e01b82525afa918215611b49575f926120f1575b508281029281840414901517156120dd5760ff1690604d82116120dd576120c991600a0a90611fa3565b81018091116120dd57600190940193611fdd565b634e487b7160e01b5f52601160045260245ffd5b9091506020813d8211612126575b8161210c60209383611e28565b81010312610bcc575160ff81168103610bcc57905f61209f565b3d91506120ff565b9091506020813d821161215a575b8161214960209383611e28565b81010312610bcc5751906004612064565b3d915061213c565b506020813d821161218c575b8161217b60209383611e28565b81010312610bcc5760249051612023565b3d915061216e565b6018546040516318160ddd60e01b81529495509093925060209150829060049082906001600160a01b03165afa8015611b49575f90612207575b6001600160401b03915016806121e2575050565b620f4240820291808304620f424014901517156120dd5761220291611fa3565b601955565b506020813d602011612248575b8161222160209383611e28565b81010312610bcc57516001600160401b0381168103610bcc576001600160401b03906121ce565b3d9150612214565b90602080835192838152019201905f5b81811061226d5750505090565b8251845260209384019390920191600101612260565b600260015414612294576002600155565b633ee5aeb560e01b5f5260045ffd5b5f8181526020818152604080832033845290915290205460ff16156122c55750565b63e2517d3f60e01b5f523360045260245260445ffd5b5f818152602081815260408083206001600160a01b038616845290915290205460ff1661235d575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b50505f90565b5f52600960205260405f20805490600160401b821015611e495760018201808255821015611ec7575f5260205f20019060018060a01b03166bffffffffffffffffffffffff60a01b825416179055565b5f818152602081815260408083206001600160a01b038616845290915290205460ff161561235d575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b5f8051602061271783398151915254604051631ce2e8d760e31b81526001600160a01b039283166004820152600760f81b602482015291602091839160449183915f91165af1908115611b49575f9161248a575090565b90506020813d6020116124b1575b816124a560209383611e28565b81010312610bcc575190565b3d9150612498565b5f8051602061271783398151915254604051631ce2e8d760e31b81525f60048201819052600560f81b60248301529091602091839160449183916001600160a01b03165af1908115611b49575f9161248a575090565b5f8051602061271783398151915254604051631ce2e8d760e31b81526004810192909252600560f81b6024830152602090829060449082905f906001600160a01b03165af1908115611b49575f9161248a575090565b6020929183915f8051602061271783398151915254905f60a46040518098819682956302e817ff60e41b84526004840152336024840152608060448401528051918291826084860152018484015e8181018301849052600560f81b6064830152601f01601f191681010301926001600160a01b03165af1918215611b49575f9261264e575b505f805160206126d78339815191525482906001600160a01b0316803b15610bcc576040516346ce4e4960e11b815260048101929092523360248301525f908290818381604481015b03925af18015611b49576126445750565b5f611f2e91611e28565b9091506020813d60201161267a575b8161266a60209383611e28565b81010312610bcc5751905f6125ea565b3d915061265d565b5f805160206126d7833981519152546001600160a01b031691823b15610bcc57604051631974142760e21b815260048101929092526001600160a01b03166024820152905f9082908183816044810161263356feed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60093ab6e17f2c461cce6ea5d4ec117e51dda77a64affc2b2c05f8cd440def0e700ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea601a26469706673582212201f550efbdf5179924f2462a8892f1e579b339bcb2bd95aef86c10a38c1b1248564736f6c634300081a0033","sourceMap":"1707:16659:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2472:35;1707:16659;2472:35;;;1707:16659;;;;;;;;;;;;;;;;;;-1:-1:-1;;1707:16659:0;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;2466:103:52;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1707:16659:0;-1:-1:-1;;;;;1707:16659:0;208:10:157;:46;1707:16659:0;;14102:21;1707:16659;;;;;;;;;14102:21;1707:16659;;;14217:306;;-1:-1:-1;;;;;1707:16659:0;14554:41;1707:16659;;;;;;14536:59;;;14532:174;;1707:16659;;;;3632:13:157;1707:16659:0;;;;;-1:-1:-1;;;;;1707:16659:0;14793:9;;1707:16659;;;:::i;:::-;14793:9;:::i;:::-;1707:16659;;14812:128;;;;;:::i;:::-;14977:29;1707:16659;;;-1:-1:-1;;;;;1707:16659:0;14977:51;;;;;1707:16659;;;;;;;;;;;;;14977:51;;;1707:16659;14977:51;;1707:16659;14977:51;;;;;;;;1707:16659;208:10:157;;15056:27:0;208:10:157;15056:27:0;:::i;:::-;1707:16659;;;;15043:58;;;;;-1:-1:-1;;;15157:66:0;;14554:14;1707:16659;15157:66;;1707:16659;;;;;15157:49;:66;1707:16659;15157:66;:49;:66;;;;;;;;;;;1707:16659;;;;;15233:30;1707:16659;;;;;;;;-1:-1:-1;;;;;1707:16659:0;;;;-1:-1:-1;;;1707:16659:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15308:36;1707:16659;;;;;;;;;;;;;;;;;15380:102;;1707:16659;;;;;;15380:102;14554:41;1707:16659;;;;;;;;;;;;;;;;;;;;;;;14554:41;1707:16659;15380:102;;1707:16659;-1:-1:-1;;;1707:16659:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1707:16659:0;;;;;;;;15157:66;;;;;;;;;;;;:::i;:::-;;;1707:16659;;;;;;;;;;;-1:-1:-1;;;;;1707:16659:0;;;;;;;14102:21;1707:16659;;;;;;;;;-1:-1:-1;;;;;1707:16659:0;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;15157:66;;;;;;1707:16659;;;;;;;;;;;;;;;;;;;;;;;;;15157:66;1707:16659;;;;;;;;;14977:51;;;;;:::i;:::-;1707:16659;;14977:51;;;;1707:16659;;;;14977:51;1707:16659;;;;;;;;;14977:51;1707:16659;;;14812:128;14890:21;;;1707:16659;14890:21;;:::i;:::-;-1:-1:-1;;;14865:64:0;;1707:16659;;;;14865:64;14532:174;208:10:157;1707:16659:0;208:10:157;14650:27:0;208:10:157;14650:27:0;:::i;:::-;-1:-1:-1;;;14618:77:0;;1707:16659;;;;14618:77;14217:306;14341:29;1707:16659;14317:55;;-1:-1:-1;;;;;1707:16659:0;14317:55;:::i;:::-;14276:236;14390:27;208:10:157;14390:27:0;:::i;:::-;14459:4;14435:30;14459:4;14435:30;:::i;:::-;1707:16659;;11641:217;;;;;;14276:236;;1707:16659;14276:236;;1707:16659;;-1:-1:-1;;;;;1707:16659:0;;;;;;;;;;;;;;;;;;;;;;;;14276:236;;;;1707:16659;-1:-1:-1;;;1707:16659:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;1707:16659:0;;;;;;:::i;:::-;-1:-1:-1;;;;;1707:16659:0;;;;;12870:23;1707:16659;;;;;;;;;-1:-1:-1;;;;;1707:16659:0;12917:19;;1707:16659;;;;;12870:23;1707:16659;;;;;;;-1:-1:-1;;1707:16659:0;;;17063:25;1707:16659;;;-1:-1:-1;;;;;1707:16659:0;13096:34;;;;;1707:16659;;;13096:34;1707:16659;;;;;;;;;13096:34;;;1707:16659;13096:34;;1707:16659;13096:34;;;;;;;;1707:16659;13187:36;;1707:16659;;;;;;13187:53;;:14;1707:16659;13187:53;;1707:16659;13096:34;1707:16659;;;;13187:53;;;;;;;;;;;1707:16659;;13187:53;;;1707:16659;13268:21;13255:49;1707:16659;13268:21;;;:::i;:::-;1707:16659;;;;;13255:49;1707:16659;13318:51;1707:16659;;;13373:35;1707:16659;;;;13318:90;13314:195;;1707:16659;13314:195;;;;:::i;:::-;13554:25;1707:16659;13554:29;;1707:16659;;13664:40;-1:-1:-1;;;;;13664:40:0;;;;:::i;:::-;1707:16659;;;;;;;13730:29;1707:16659;;13715:70;;;;;;1707:16659;;13187:53;1707:16659;;;;;;;;;;;;13715:70;;1707:16659;13715:70;;1707:16659;;13096:34;1707:16659;;;13715:70;;;;;;;;1707:16659;13813:21;;;;;:::i;:::-;13800:49;;;;1707:16659;;13715:70;;;;;:::i;:::-;1707:16659;;13715:70;;;;1707:16659;;;;;;;-1:-1:-1;;;1707:16659:0;;;;;;;;13096:34;1707:16659;;;;13187:53;1707:16659;;;-1:-1:-1;;;1707:16659:0;;;;;;;13314:195;13424:35;;;;;1707:16659;13096:34;1707:16659;;;;;;;;;;13424:35;;13187:14;1707:16659;13424:35;;1707:16659;13424:35;;;;;;;;13314:195;13478:20;;;;;13314:195;;;;13424:35;;;;;:::i;:::-;1707:16659;;13424:35;;;;1707:16659;;;;13187:53;;;;1707:16659;13187:53;;1707:16659;13187:53;;;;;;1707:16659;13187:53;;;:::i;:::-;;;1707:16659;;;;;;;;;;13187:53;;;;;;-1:-1:-1;13187:53:0;;13096:34;;;;;:::i;:::-;1707:16659;;13096:34;;;;1707:16659;;;-1:-1:-1;;;1707:16659:0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1707:16659:0;;;;4747:26:29;1707:16659:0;;;;:::i;:::-;4717:18:29;2475:4;4717:18;;3901:6;1707:16659:0;3901:6:29;1707:16659:0;;3901:22:29;1707:16659:0;3901:6:29;1707:16659:0;3901:22:29;1707:16659:0;3810:120:29;;4717:18;2475:4;:::i;:::-;4747:26;:::i;:::-;;1707:16659:0;;;;;;;;;;;;;;;2472:35;1707:16659;;;;;;;;;;;;;;;;;;;;;8362:10;1707:16659;;8386:30;1707:16659;;;;;;8386:48;8382:128;;8362:10;1707:16659;;8386:30;1707:16659;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8362:10;1707:16659;;8636:36;1707:16659;;;;;;;;;8362:10;1707:16659;;8386:30;1707:16659;;;;;;;;;;;;;;;-1:-1:-1;;8742:1120:0;;;1707:16659;;8783:51;1707:16659;;;;;8837:35;1707:16659;;;;-1:-1:-1;8779:158:0;;8950:35;;;:69;;;;;1707:16659;;;;;;;;;;;;;;8950:69;;8783:14;1707:16659;8950:69;;1707:16659;8362:10;1707:16659;;;;;;;;;;;;;;:::i;:::-;8950:69;;;;;;;;;;8742:1120;9038:21;;;;;1707:16659;;8950:69;;;;;:::i;:::-;1707:16659;;8950:69;;;;;1707:16659;;;8779:158;-1:-1:-1;;;8899:23:0;;1707:16659;8899:23;;8742:1120;1707:16659;;;;;;;;9138:25;1707:16659;;;;;;;;;;;;9208:61;;9138:14;1707:16659;9208:61;;1707:16659;;;;;;;;;;;:::i;:::-;9208:61;:33;;:61;;;;;;;;;;;8742:1120;-1:-1:-1;9303:34:0;1707:16659;9138:25;1707:16659;;;-1:-1:-1;;;9417:49:0;;-1:-1:-1;;;;;1707:16659:0;;;;9417:49;;1707:16659;;;;;;;;;;;;;;;;;;;9417:49;;;;;;;;8742:1120;9480:37;;;;;;1707:16659;;;;;;;;;;;;;9480:37;;;1707:16659;9480:37;;1707:16659;9480:37;;;;;;;;8742:1120;344922:44:160;;;;;:::i;:::-;8362:10:0;1707:16659;;9622:31;1707:16659;;;;;;8362:10;1707:16659;;9622:31;1707:16659;;370724:7:160;8362:10:0;1707:16659;;;;370724:7:160;:::i;:::-;8362:10:0;1707:16659;;9622:31;1707:16659;;370832:13:160;1707:16659:0;;;;370840:4:160;370832:13;;:::i;:::-;1707:16659:0;;9480:37;;;;;:::i;:::-;1707:16659;;9480:37;;;;9417:49;;;1707:16659;9417:49;1707:16659;9417:49;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;1707:16659;;;;;;;;;9208:61;;;;;1707:16659;9208:61;;1707:16659;9208:61;;;;;;1707:16659;9208:61;;;:::i;:::-;;;1707:16659;;;;;;;9208:61;;;;1707:16659;-1:-1:-1;1707:16659:0;;9208:61;;;-1:-1:-1;9208:61:0;;1707:16659;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1707:16659:0;;;;;;;;8382:128;1707:16659;8362:10;8477:21;8362:10;8477:21;:::i;:::-;-1:-1:-1;;;8457:42:0;;1707:16659;;8457:42;1707:16659;;;;;;;;;;;;;17063:25;1707:16659;;;-1:-1:-1;;;;;1707:16659:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1707:16659:0;;;;;;:::i;:::-;;;:::i;:::-;2466:103:52;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1707:16659:0;-1:-1:-1;;;;;1707:16659:0;208:10:157;:46;1707:16659:0;;;;;;;;;;;;;;;;;;3632:13:157;1707:16659:0;;;;;;;11406:9;1707:16659;;;;;:::i;11406:9::-;1707:16659;;;;;;;;;17063:25;1707:16659;;;;11582:287;;11924:21;;;;;:::i;:::-;-1:-1:-1;;;;;11947:30:0;11971:4;11947:30;:::i;:::-;1707:16659;;344922:44:160;;;;:::i;:::-;11883:137:0;;;;;-1:-1:-1;;;;;12052:41:0;1707:16659;;;;12034:59;;12030:415;;1707:16659;;;12454:23;1707:16659;;;;;;-1:-1:-1;;;;;1707:16659:0;;;;;;;;;;;;12030:415;344922:44:160;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1707:16659:0;-1:-1:-1;;;;;1707:16659:0;15684:50:159;;;;;1707:16659:0;;-1:-1:-1;;;15684:50:159;;1707:16659:0;15684:50:159;;1707:16659:0;;;-1:-1:-1;;;;;1707:16659:0;;;;;;;;;;;;;;;;;15684:50:159;;;;;;;;;;;12030:415:0;-1:-1:-1;;1707:16659:0;;-1:-1:-1;;;12311:33:0;;-1:-1:-1;;;;;1707:16659:0;;;12311:33;;1707:16659;;;;;;;;;;;;;;;;;;12311:33;;;;;;;;12030:415;12395:21;12363:71;1707:16659;12395:21;;;:::i;:::-;1707:16659;;12363:71;1707:16659;;;;;;;12363:71;12030:415;;;;12311:33;;;1707:16659;12311:33;1707:16659;12311:33;;;;;;;:::i;:::-;;;;1707:16659;;;;;;;;;15684:50:159;;;;;:::i;:::-;1707:16659:0;;15684:50:159;;;;11582:287:0;11682:36;;;;:::i;1707:16659::-;-1:-1:-1;;;1707:16659:0;;;;;;;;;;;;;;;-1:-1:-1;;1707:16659:0;;;;;;;:::i;:::-;;;;;;;;;;2954:29:29;1707:16659:0;;;;;;-1:-1:-1;1707:16659:0;;;;;;-1:-1:-1;1707:16659:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;1707:16659:0;;;;;;-1:-1:-1;;;;;1707:16659:0;;;;;;;;;;;;;;;:::i;:::-;2466:103:52;;;;:::i;:::-;344682:69:160;1707:16659:0;;;;;:::i;:::-;;;344682:69:160;:::i;:::-;1707:16659:0;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;;;;;;;1707:16659:0;;;;;;;;;;;;;;;13336:164:159;;1707:16659:0;;;13336:164:159;;1707:16659:0;13428:10:159;1707:16659:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13336:164:159;;;;;;;;;;;;;;1707:16659:0;-1:-1:-1;;;;;;;;;;;;1707:16659:0;;;-1:-1:-1;;;;;1707:16659:0;13510:53:159;;;;;1707:16659:0;;-1:-1:-1;;;13510:53:159;;1707:16659:0;13510:53:159;;1707:16659:0;;;13428:10:159;1707:16659:0;;;;;;;;;;;;;;;13510:53:159;;;;;;;;1707:16659:0;-1:-1:-1;;6900:29:0;1707:16659;;;-1:-1:-1;;;6977:41:0;;13428:10:159;1707:16659:0;6977:41;;1707:16659;-1:-1:-1;;;;;1707:16659:0;;;;;;;;;;6977:41;1707:16659;6977:41;;;;;;;;;;;1707:16659;7063:43;;;2482:22:160;;;199917:64;;1707:16659:0;2482:22:160;199990:64;;1707:16659:0;;;;;;;;;-1:-1:-1;;;;;;;;;;;1707:16659:0;;;;;;;;;;;;;;11129:64:159;;1707:16659:0;11129:64:159;;1707:16659:0;;;;;;;;;;11129:64:159;;;;;;;;;;;1707:16659:0;-1:-1:-1;;;;;;;;;;;;1707:16659:0;;;-1:-1:-1;;;;;1707:16659:0;15684:50:159;;;;;1707:16659:0;;-1:-1:-1;;;15684:50:159;;1707:16659:0;15684:50:159;;1707:16659:0;;;-1:-1:-1;;;;;1707:16659:0;;;;;;;;;;;;;;;;;15684:50:159;;;;;;;;1707:16659:0;-1:-1:-1;;1707:16659:0;;-1:-1:-1;;;7255:62:0;;13428:10:159;1707:16659:0;7255:62;;1707:16659;7303:4;1707:16659;;;;;;;;;;;;;;7255:62;;;;;;;;;;1707:16659;-1:-1:-1;1707:16659:0;;-1:-1:-1;;;7353:32:0;;1707:16659;;;;7353:32;;;;;;;;;;;;1707:16659;-1:-1:-1;;;1707:16659:0;;;;;;;;;;;;;;;;;;;7426:57;;1707:16659;7426:57;;1707:16659;7426:57;;;;;;;;;;;1707:16659;;;;;;;;;:::i;:::-;;;;;;;;;;7543:45;;;:::i;:::-;1707:16659;7598:34;;;:::i;:::-;1707:16659;;;7646:1;1707:16659;;;;;;;;;;7701:1;1707:16659;;;;;;;;;7860:15;1707:16659;7860:15;;;1707:16659;;;-1:-1:-1;;;;;;;;;;;1707:16659:0;;;-1:-1:-1;;;;;1707:16659:0;3173:49:158;;;;;1707:16659:0;;;;;;;;3173:49:158;;1707:16659:0;;3173:49:158;;1707:16659:0;;;;;;;;;;:::i;:::-;3173:49:158;;;;;;;;;;1707:16659:0;-1:-1:-1;;;;;;;;;;;;;1707:16659:0;;;-1:-1:-1;;;3304:209:158;;1707:16659:0;;3304:209:158;;1707:16659:0;;;;;;-1:-1:-1;;;;;1707:16659:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3304:209:158;;;;;;;;;;;;1707:16659:0;7927:10;3292:221:158;;13428:10:159;7927::0;;:::i;3304:209:158:-;;1707:16659:0;3304:209:158;;1707:16659:0;3304:209:158;;;;;;1707:16659:0;3304:209:158;;;:::i;:::-;;;1707:16659:0;;;;7927:10;1707:16659;;3304:209:158;;;;;-1:-1:-1;3304:209:158;;3173:49;;;;;:::i;:::-;1707:16659:0;;3173:49:158;;;;1707:16659:0;-1:-1:-1;;;1707:16659:0;;;;;;;;;-1:-1:-1;;;1707:16659:0;;;;;;;;7426:57;;;;1707:16659;7426:57;;1707:16659;7426:57;;;;;;1707:16659;7426:57;;;:::i;:::-;;;1707:16659;;;;;7426:57;;;;;;;-1:-1:-1;7426:57:0;;1707:16659;-1:-1:-1;;;1707:16659:0;;;;;;;;7353:32;;;1707:16659;7353:32;;1707:16659;7353:32;;;;;;1707:16659;7353:32;;;:::i;:::-;;;1707:16659;;;;;7353:32;;;;;;-1:-1:-1;7353:32:0;;;1707:16659;;;;;;;;;7255:62;;;1707:16659;7255:62;1707:16659;7255:62;;;;;;;:::i;:::-;;;15684:50:159;;;;;:::i;:::-;1707:16659:0;;15684:50:159;;;;11129:64;;;;1707:16659:0;11129:64:159;;1707:16659:0;11129:64:159;;;;;;1707:16659:0;11129:64:159;;;:::i;:::-;;;1707:16659:0;;;;;11129:64:159;;;;;;;-1:-1:-1;11129:64:159;;199990::160;344922:44;1707:16659:0;344922:44:160;;:::i;:::-;199990:64;;;;199917;344922:44;;;;:::i;:::-;199917:64;;;6977:41:0;;;;1707:16659;6977:41;;1707:16659;6977:41;;;;;;1707:16659;6977:41;;;:::i;:::-;;;1707:16659;;;;;6977:41;;;;;;;-1:-1:-1;6977:41:0;;13510:53:159;;;;;:::i;:::-;1707:16659:0;;13510:53:159;;;;13336:164;;;;1707:16659:0;13336:164:159;;1707:16659:0;13336:164:159;;;;;;1707:16659:0;13336:164:159;;;:::i;:::-;;;1707:16659:0;;;;;13336:164:159;;;;;;;-1:-1:-1;13336:164:159;;1707:16659:0;;;;;;;;;;;;;;2434:31;1707:16659;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;16786:29;1707:16659;;;-1:-1:-1;;;;;1707:16659:0;;;;;;;;;;;;;;;;;;;;;;17249:25;1707:16659;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1707:16659:0;;;;;-1:-1:-1;1707:16659:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;17670:10;;1707:16659;;17638:31;1707:16659;;;;;;;;;;;;;;;;;-1:-1:-1;;1707:16659:0;;;;;;:::i;:::-;735:10:49;-1:-1:-1;;;;;1707:16659:0;;5421:34:29;5417:102;;5529:37;1707:16659:0;;;5529:37:29;:::i;5417:102::-;-1:-1:-1;;;5478:30:29;;1707:16659:0;5478:30:29;;1707:16659:0;;;;;;;-1:-1:-1;;1707:16659:0;;;;;;-1:-1:-1;;;;;1707:16659:0;;;;;344682:69:160;1707:16659:0;;;;;;;;:::i;:::-;2466:103:52;;;;:::i;:::-;5387:25:0;1707:16659;-1:-1:-1;;;;;1707:16659:0;;;;;:::i;344682:69:160:-;-1:-1:-1;;;;;;;;;;;1707:16659:0;-1:-1:-1;;;;;1707:16659:0;15684:50:159;;;;;1707:16659:0;;-1:-1:-1;;;15684:50:159;;1707:16659:0;15684:50:159;;1707:16659:0;;;-1:-1:-1;;;;;1707:16659:0;;;;;;;;;;;;;;;;;15684:50:159;;;;;;;;;;;1707:16659:0;-1:-1:-1;;1707:16659:0;;-1:-1:-1;;;5550:58:0;;5574:10;1707:16659;5550:58;;1707:16659;5594:4;1707:16659;;;;;;;;;;;;;;5550:58;;;;;;;;;;1707:16659;-1:-1:-1;1707:16659:0;;-1:-1:-1;;;5626:28:0;;1707:16659;;;;5626:28;;;;;;;;;;;;1707:16659;5626:32;;1707:16659;;;;-1:-1:-1;;;5716:28:0;;1707:16659;;;;5716:28;;;;;;;;;;;;1707:16659;-1:-1:-1;;;1707:16659:0;;;;;;;;;;;;;;;;;;;;;;5785:53;;1707:16659;5785:53;;1707:16659;5785:53;;;;;;;;;;;1707:16659;;;;;;;;;:::i;:::-;5885:1;1707:16659;;;;;;;;5897:45;;;:::i;:::-;1707:16659;5952:34;;;:::i;:::-;1707:16659;6114:3;6096:15;1707:16659;6096:15;;;1707:16659;;;-1:-1:-1;;;;;;;;;;;1707:16659:0;;;-1:-1:-1;;;;;1707:16659:0;3173:49:158;;;;;1707:16659:0;;;;;;;;3173:49:158;;1707:16659:0;;3173:49:158;;1707:16659:0;;;;;;;;;;:::i;:::-;3173:49:158;;;;;;;;;;1707:16659:0;-1:-1:-1;;;;;;;;;;;;;1707:16659:0;;;-1:-1:-1;;;3304:209:158;;1707:16659:0;;3304:209:158;;1707:16659:0;;;;;;-1:-1:-1;;;;;1707:16659:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;6114:3;1707:16659;;;;;;;;3304:209:158;;;;;;;;;;;;6163:10:0;3292:221:158;;5574:10:0;6163;;:::i;3173:49:158:-;;;;;:::i;:::-;1707:16659:0;;3173:49:158;;;;5785:53:0;;;;1707:16659;5785:53;;1707:16659;5785:53;;;;;;1707:16659;5785:53;;;:::i;:::-;;;1707:16659;;;;;5785:53;;;;;;;-1:-1:-1;5785:53:0;;5716:28;;;1707:16659;5716:28;;1707:16659;5716:28;;;;;;1707:16659;5716:28;;;:::i;:::-;;;1707:16659;;;;;5716:28;;;;;;-1:-1:-1;5716:28:0;;1707:16659;;;-1:-1:-1;;;1707:16659:0;;;;;;;;;;;;-1:-1:-1;;;1707:16659:0;;;;;;;5626:28;;;1707:16659;5626:28;;1707:16659;5626:28;;;;;;1707:16659;5626:28;;;:::i;:::-;;;1707:16659;;;;;5626:28;;;;;;-1:-1:-1;5626:28:0;;5550:58;;;1707:16659;5550:58;1707:16659;5550:58;;;;;;;:::i;:::-;;;15684:50:159;;;;;:::i;:::-;1707:16659:0;;15684:50:159;;;;1707:16659:0;;;;;;;-1:-1:-1;;1707:16659:0;;;;;;:::i;:::-;-1:-1:-1;;;;;1707:16659:0;;;;;;10281:31;1707:16659;;;;;;;;344922:44:160;;:::i;:::-;1707:16659:0;;;;10281:31;1707:16659;;;;;;;17063:25;1707:16659;-1:-1:-1;;;;;;;;;;;1707:16659:0;-1:-1:-1;;;;;1707:16659:0;;;;;;15684:50:159;;;;;1707:16659:0;;-1:-1:-1;;;15684:50:159;;1707:16659:0;15684:50:159;;1707:16659:0;;;-1:-1:-1;;;;;1707:16659:0;;;;;;;-1:-1:-1;;1707:16659:0;;;;;;-1:-1:-1;;15684:50:159;;;;;;;;1707:16659:0;-1:-1:-1;1707:16659:0;;-1:-1:-1;;;10549:56:0;;-1:-1:-1;;;;;1707:16659:0;;;;10549:56;;1707:16659;;;;;;;;;;;;;;;;;;10549:56;;;;;;;;;;;1707:16659;10620:20;;;;;1707:16659;;10549:56;;;1707:16659;10549:56;1707:16659;10549:56;;;;;;;:::i;:::-;;;15684:50:159;10549:56:0;15684:50:159;;;;;;1707:16659:0;;15684:50:159;;:::i;:::-;1707:16659:0;15684:50:159;;;;;;;;1707:16659:0;;;;;;;;;;;;;;;-1:-1:-1;;1707:16659:0;;;;4330:25:29;1707:16659:0;;;;:::i;:::-;4300:18:29;2475:4;4300:18;;3901:6;1707:16659:0;3901:6:29;1707:16659:0;;3901:22:29;1707:16659:0;3901:6:29;1707:16659:0;3901:22:29;1707:16659:0;3810:120:29;;2475:4;4330:25;:::i;:::-;1707:16659:0;;;;;;;-1:-1:-1;;1707:16659:0;;;;;;;;3901:6:29;1707:16659:0;3901:6:29;1707:16659:0;;3901:22:29;1707:16659:0;3901:6:29;1707:16659:0;3901:22:29;1707:16659:0;3810:120:29;;1707:16659:0;;;;;;;;;;;;;-1:-1:-1;;1707:16659:0;;;;2583:13;1707:16659;-1:-1:-1;;;;;1707:16659:0;2569:10;:27;1707:16659;;2466:103:52;;:::i;:::-;17958:28:0;1707:16659;17958:32;;1707:16659;;18113:34;1707:16659;2583:13;1707:16659;;;-1:-1:-1;;;18178:73:0;;-1:-1:-1;;;;;1707:16659:0;;;;18178:73;;1707:16659;;;;;;;;18178:73;;1707:16659;;;;;;-1:-1:-1;;1707:16659:0;18178:73;;;;;;;1707:16659;18178:73;;;1707:16659;;;;;;17958:28;1707:16659;1857:1:52;1707:16659:0;;;;;;-1:-1:-1;;;1707:16659:0;;18178:73;1707:16659;;;;;;;;;;;;;;-1:-1:-1;;;1707:16659:0;;;;;;;18178:73;;;;;;;;;;;;;;:::i;:::-;;;;1707:16659;;;-1:-1:-1;;;1707:16659:0;;;;;;;;;;;;-1:-1:-1;;;1707:16659:0;;;;;;;;;;-1:-1:-1;;;1707:16659:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;1707:16659:0;;;;;;;;;;;;;-1:-1:-1;;1707:16659:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2673:47:29;;;:87;;;;1707:16659:0;;;;;;;2673:87:29;-1:-1:-1;;;862:40:57;;-1:-1:-1;2673:87:29;;;1707:16659:0;;;;-1:-1:-1;;;;;1707:16659:0;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1707:16659:0;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1707:16659:0;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1707:16659:0;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1707:16659:0;;;;;;;:::o;:::-;;;;-1:-1:-1;1707:16659:0;;;;;-1:-1:-1;1707:16659:0;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1707:16659:0;;;;;;;;;;;-1:-1:-1;;1707:16659:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1707:16659:0;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;5747:1;1707:16659;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;16539:26;1707:16659;;;;;;;;16539:26;-1:-1:-1;1707:16659:0;;-1:-1:-1;1707:16659:0;;-1:-1:-1;1707:16659:0;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;;;;;1707:16659:0;;;;;;;;;;-1:-1:-1;1707:16659:0;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1707:16659:0;;-1:-1:-1;1707:16659:0;;-1:-1:-1;1707:16659:0;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1707:16659:0;;;;;;;;;;-1:-1:-1;1707:16659:0;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;15584:723;15650:1;1707:16659;;;:::i;:::-;15831:32;1707:16659;15650:1;;-1:-1:-1;;;;;1707:16659:0;;;;15772:3;1707:16659;;15748:22;;;;;-1:-1:-1;;;;;15879:14:0;;;;:::i;:::-;1707:16659;;;-1:-1:-1;;;15812:82:0;;1707:16659;;15831:32;15812:82;;1707:16659;15812:82;1707:16659;15812:82;1707:16659;15812:82;;;;;;;15650:1;15812:82;;;15772:3;15812:82;;-1:-1:-1;15812:82:0;-1:-1:-1;;;;;15937:14:0;;;;:::i;:::-;1707:16659;;;;;;;;;;;15930:47;;15971:4;15831:32;15930:47;;1707:16659;15930:47;;;;;;;15650:1;15930:47;;;15772:3;-1:-1:-1;15831:32:0;;15812:82;-1:-1:-1;;;;;16009:14:0;;;;:::i;:::-;1707:16659;;;;;;;;;;;16003:32;;;;;;;;;15650:1;16003:32;;;15772:3;16065:24;1707:16659;;;;;;;;;;;;;;;;;;;;;;16064:40;1707:16659;;;16064:40;;:::i;:::-;1707:16659;;;;;;;;16049:56;15772:3;1707:16659;15733:13;;;1707:16659;;;;15650:1;1707:16659;;15831:32;1707:16659;15812:82;15650:1;1707:16659;16003:32;;;;15812:82;16003:32;;;;;;;;;15812:82;16003:32;;;:::i;:::-;;;1707:16659;;;;;;;;;;;;16003:32;;;;;;;-1:-1:-1;16003:32:0;;15930:47;;;;15812:82;15930:47;;;;;;;;;1707:16659;15930:47;;;:::i;:::-;;;1707:16659;;;;;;15831:32;15930:47;;;;;-1:-1:-1;15930:47:0;;15812:82;;;;;;;;;;;;1707:16659;15812:82;;;:::i;:::-;;;1707:16659;;;;15812:82;1707:16659;;15812:82;;;;;-1:-1:-1;15812:82:0;;15748:22;16142:29;1707:16659;;;-1:-1:-1;;;16142:43:0;;15748:22;;-1:-1:-1;15748:22:0;;1707:16659;-1:-1:-1;15812:82:0;;-1:-1:-1;1707:16659:0;;15831:32;;1707:16659;;-1:-1:-1;;;;;1707:16659:0;16142:43;;;;;;15650:1;16142:43;;;15728:388;-1:-1:-1;;;;;1707:16659:0;;;16199:10;16195:106;;15584:723;;:::o;16195:106::-;2166:3;1707:16659;;;;;;2166:3;1707:16659;;;;;;;16253:37;;;:::i;:::-;16225:25;1707:16659;15584:723::o;16142:43::-;;15812:82;16142:43;;15812:82;16142:43;;;;;;15812:82;16142:43;;;:::i;:::-;;;1707:16659;;;;;-1:-1:-1;;;;;1707:16659:0;;;;;;-1:-1:-1;;;;;16142:43:0;;;;;;-1:-1:-1;16142:43:0;;1707:16659;;;;;;;;;;;;;;-1:-1:-1;1707:16659:0;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;2575:307:52;1899:1;2702:7;1707:16659:0;2702:18:52;2698:86;;1899:1;2702:7;1707:16659:0;2575:307:52:o;2698:86::-;2743:30;;;-1:-1:-1;2743:30:52;;-1:-1:-1;2743:30:52;3199:103:29;2954:6;1707:16659:0;;;;;;;;;;;735:10:49;1707:16659:0;;;;;;;;;;3519:23:29;3515:108;;3199:103;:::o;3515:108::-;3565:47;;;2954:6;3565:47;735:10:49;3565:47:29;1707:16659:0;;;;2954:6:29;3565:47;6179:316;1707:16659:0;;;;;;;;;;;;-1:-1:-1;;;;;1707:16659:0;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1707:16659:0;;;;;;;;;;;;;;;-1:-1:-1;;1707:16659:0;;;;;735:10:49;;1707:16659:0;;6370:40:29;;1707:16659:0;6370:40:29;6347:4;6424:11;:::o;6272:217::-;6466:12;;1707:16659:0;6466:12:29;:::o;1791:128:157:-;-1:-1:-1;1707:16659:0;1873:13:157;1707:16659:0;;;-1:-1:-1;1707:16659:0;;;;-1:-1:-1;;;1707:16659:0;;;;;;;;;;;;;;;;-1:-1:-1;1707:16659:0;;-1:-1:-1;1707:16659:0;;;;;;;;;;;;;;;;;;1791:128:157:o;6730:317:29:-;1707:16659:0;;;;;;;;;;;;-1:-1:-1;;;;;1707:16659:0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1707:16659:0;;;;;;;;;;;;;;;-1:-1:-1;;1707:16659:0;;;735:10:49;;1707:16659:0;;6922:40:29;;1707:16659:0;6922:40:29;1707:16659:0;6976:11:29;:::o;350416:156:160:-;-1:-1:-1;;;;;;;;;;;1707:16659:0;;;-1:-1:-1;;;13977:74:159;;-1:-1:-1;;;;;1707:16659:0;;;13977:74:159;;;1707:16659:0;-1:-1:-1;;;1707:16659:0;;;;;;;;;13977:74:159;;1707:16659:0;;-1:-1:-1;;1707:16659:0;13977:74:159;;;;;;;-1:-1:-1;13977:74:159;;;13968:83;350416:156:160;:::o;13977:74:159:-;;;1707:16659:0;13977:74:159;;1707:16659:0;13977:74:159;;;;;;1707:16659:0;13977:74:159;;;:::i;:::-;;;1707:16659:0;;;;;350416:156:160;:::o;13977:74:159:-;;;-1:-1:-1;13977:74:159;;13815:243;-1:-1:-1;;;;;;;;;;;1707:16659:0;;;-1:-1:-1;;;13977:74:159;;1707:16659:0;13977:74:159;;;1707:16659:0;;;-1:-1:-1;;;1707:16659:0;;;;;;;;;;13977:74:159;;1707:16659:0;;-1:-1:-1;;;;;1707:16659:0;13977:74:159;;;;;;;1707:16659:0;13977:74:159;;;13968:83;13815:243;:::o;:::-;-1:-1:-1;;;;;;;;;;;1707:16659:0;;;-1:-1:-1;;;13977:74:159;;;;;1707:16659:0;;;;-1:-1:-1;;;1707:16659:0;;;;;;;;13977:74:159;;1707:16659:0;;-1:-1:-1;;;;;;;1707:16659:0;13977:74:159;;;;;;;-1:-1:-1;13977:74:159;;;13968:83;13815:243;:::o;13151:419::-;1707:16659:0;13151:419:159;;;;-1:-1:-1;;;;;;;;;;;1707:16659:0;;-1:-1:-1;1707:16659:0;;;;;;;;;;;;13336:164:159;;;;;1707:16659:0;13428:10:159;1707:16659:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1707:16659:0;;;;;;-1:-1:-1;;1707:16659:0;;;13336:164:159;;;-1:-1:-1;;;;;1707:16659:0;13336:164:159;;;;;;;-1:-1:-1;13336:164:159;;;13151:419;-1:-1:-1;;;;;;;;;;;;1707:16659:0;13327:173:159;;-1:-1:-1;;;;;1707:16659:0;13510:53:159;;;;;1707:16659:0;;-1:-1:-1;;;13510:53:159;;13336:164;13510:53;;1707:16659:0;;;;13428:10:159;1707:16659:0;;;;-1:-1:-1;;1707:16659:0;;;-1:-1:-1;1707:16659:0;;;;13510:53:159;;;;;;;;;;;13151:419;:::o;13510:53::-;-1:-1:-1;13510:53:159;;;:::i;13336:164::-;;;;1707:16659:0;13336:164:159;;1707:16659:0;13336:164:159;;;;;;1707:16659:0;13336:164:159;;;:::i;:::-;;;1707:16659:0;;;;;13336:164:159;;;;;;;-1:-1:-1;13336:164:159;;15747:171;-1:-1:-1;;;;;;;;;;;1707:16659:0;-1:-1:-1;;;;;1707:16659:0;;15870:41:159;;;;;1707:16659:0;;-1:-1:-1;;;15870:41:159;;;;;1707:16659:0;;;;-1:-1:-1;;;;;1707:16659:0;;;;;;-1:-1:-1;;1707:16659:0;;;-1:-1:-1;1707:16659:0;;;;15870:41:159;1707:16659:0","linkReferences":{"contracts/lib/IndexFundStateManagement.sol":{"IndexFundStateManagement":[{"start":634,"length":20},{"start":1493,"length":20},{"start":2433,"length":20},{"start":2670,"length":20}]}}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","burnShares(bytes32,bytes32,bytes)":"9134867c","burnSharesCallback(uint256,uint8,uint64,bool,bool)":"fcb74a45","callbackTriggers()":"8fe01f0b","finishMintShares(address)":"e61681ef","finishRedeemInStablecoinCase(address)":"3352a629","getIndexFundToken()":"75696e7f","getIndexTokens()":"38f250ec","getPendingStablecoinRedeemAmount()":"372df775","getRoleAdmin(bytes32)":"248a9ca3","getSharePrice()":"5b1dac60","getStablecoin()":"b6f67312","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initRedeemAfterBurn()":"b7064d99","mintCallbackTriggers()":"c3d02d96","mintShares(bytes32,bytes)":"35c995ec","mintSharesCallback(uint256,uint8,uint64)":"97771de5","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","sendFeesToProtocolOwner()":"05d7d94b","supportsInterface(bytes4)":"01ffc9a7","updateSharePrice()":"76b15015"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_indexTokens\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"_stablecoin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_decypheredStablecoin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_indexFundFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_marketDataFetcher\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_swapsManagerProxy\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_initialSharePrice\",\"type\":\"uint256\"},{\"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\":\"_poolKeys\",\"type\":\"tuple[]\"},{\"internalType\":\"uint8\",\"name\":\"_numberOfSwapsToBatch\",\"type\":\"uint8\"},{\"internalType\":\"uint96\",\"name\":\"currentIndexFundsCount\",\"type\":\"uint96\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToSwap\",\"type\":\"uint256\"}],\"name\":\"AmountToSwapTooBig\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"eaddress\",\"name\":\"token\",\"type\":\"uint256\"},{\"internalType\":\"eaddress\",\"name\":\"from\",\"type\":\"uint256\"},{\"internalType\":\"eaddress\",\"name\":\"to\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"EncryptedTransferFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"eaddress\",\"name\":\"allower\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"eaddress\",\"name\":\"user\",\"type\":\"uint256\"}],\"name\":\"NoPendingWithdrawal\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughSwapsToBatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"eaddress\",\"name\":\"burner\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountToBurn\",\"type\":\"uint256\"}],\"name\":\"SharesToBurnAmountBiggerThanMax\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"eaddress\",\"name\":\"from\",\"type\":\"uint256\"},{\"internalType\":\"eaddress\",\"name\":\"to\",\"type\":\"uint256\"},{\"internalType\":\"euint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TransferFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"eaddress\",\"name\":\"user\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountToBurn\",\"type\":\"uint256\"}],\"name\":\"UserShareBalanceTooSmall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"BurnSwapsPerformed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"eaddress\",\"name\":\"from\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"eaddress\",\"name\":\"to\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"euint64\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"EncryptedStablecoinTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"eaddress\",\"name\":\"user\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"}],\"name\":\"FeeCollected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"IndexTokensRedeemed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"MintSwapsPerformed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"eaddress\",\"name\":\"user\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SharesBurned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"SharesMintRevertedAmountTooBig\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"eaddress\",\"name\":\"user\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SharesMinted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"eaddress\",\"name\":\"minter\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountToBurn\",\"type\":\"uint256\"}],\"name\":\"SharesToMintAmountBiggerThanMax\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"einput\",\"name\":\"encryptedAmount\",\"type\":\"bytes32\"},{\"internalType\":\"einput\",\"name\":\"encryptedRedeemIndexTokens\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"inputProof\",\"type\":\"bytes\"}],\"name\":\"burnShares\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestID\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"transferErrorCode\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"decryptedAmount\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"redeemIndexTokens\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"hasUserEnoughSharesToBurn\",\"type\":\"bool\"}],\"name\":\"burnSharesCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"callbackTriggers\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"finishMintShares\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"finishRedeemInStablecoinCase\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIndexFundToken\",\"outputs\":[{\"internalType\":\"contract IndexFundToken\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIndexTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPendingStablecoinRedeemAmount\",\"outputs\":[{\"internalType\":\"euint64\",\"name\":\"pendingStablecoinRedeemAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSharePrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"sharePrice\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStablecoin\",\"outputs\":[{\"internalType\":\"contract ConfidentialERC20WithErrorsWrapped\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initRedeemAfterBurn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mintCallbackTriggers\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"einput\",\"name\":\"encryptedAmount\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"inputProof\",\"type\":\"bytes\"}],\"name\":\"mintShares\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestID\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"transferErrorCode\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"decryptedAmount\",\"type\":\"uint64\"}],\"name\":\"mintSharesCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sendFeesToProtocolOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateSharePrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"burnShares(bytes32,bytes32,bytes)\":{\"details\":\"Function implementation is pending.\",\"params\":{\"encryptedAmount\":\"The encrypted amount of shares to be burned.\",\"encryptedRedeemIndexTokens\":\"The encrypted flag indicating whether to redeem index tokens.\",\"inputProof\":\"The proof for the encrypted amount.\"}},\"constructor\":{\"params\":{\"_decypheredStablecoin\":\"Address of the transparent version of the stablecoin.\",\"_indexFundFactory\":\"Address of the factory contract that deploys the index fund.\",\"_indexTokens\":\"Array of token addresses that compose the index.\",\"_initialSharePrice\":\"Initial share price (in stablecoin units).\",\"_marketDataFetcher\":\"Address of the protocol market data fetcher.\",\"_poolKeys\":\"Array of pool keys used for token swaps.\",\"_stablecoin\":\"Address of the stablecoin used for deposits.\",\"_swapsManagerProxy\":\"Address of the proxy used to manage token swaps.\",\"currentIndexFundsCount\":\"Current index funds count coming from the factory\"}},\"finishMintShares(address)\":{\"details\":\"This function handles the unwrapping of stablecoin and processing of swaps after the callback.\",\"params\":{\"user\":\"The address of the user who initiated the mint\"}},\"finishRedeemInStablecoinCase(address)\":{\"details\":\"This function transfers the encrypted stablecoin amount that was prepared in initRedeemAfterBurn.\",\"params\":{\"user\":\"The address of the user to receive the stablecoin\"}},\"getIndexFundToken()\":{\"returns\":{\"_0\":\"The IndexFundToken contract.\"}},\"getIndexTokens()\":{\"returns\":{\"_0\":\"An array of addresses representing the index tokens.\"}},\"getPendingStablecoinRedeemAmount()\":{\"returns\":{\"pendingStablecoinRedeemAmount\":\"The encrypted amount of stablecoin pending for redemption\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getStablecoin()\":{\"returns\":{\"_0\":\"The IERC20 stablecoin contract.\"}},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initRedeemAfterBurn()\":{\"details\":\"This function handles both index token redemption and stablecoin redemption paths. For stablecoin redemption, it processes swaps and prepares the stablecoin for transfer. For index token redemption, it sends the tokens back directly.\"},\"mintShares(bytes32,bytes)\":{\"details\":\"Handles fee deduction, token swaps, and share minting. It fetches market data and calculates swap amounts based on token market caps.\",\"params\":{\"encryptedAmount\":\"The encrypted amount of stablecoin the user is depositing.\",\"inputProof\":\"The proof for the encrypted amount.\"}},\"mintSharesCallback(uint256,uint8,uint64)\":{\"details\":\"This function is called by the gateway after decryption of the mint amount. It handles the actual minting of shares and processing of the stablecoin deposit.\",\"params\":{\"decryptedAmount\":\"The decrypted amount of stablecoin to mint shares for\",\"requestID\":\"The ID of the decryption request\",\"transferErrorCode\":\"The error code from the stablecoin transfer\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"sendFeesToProtocolOwner()\":{\"details\":\"Only callable by the protocol owner and protected against reentrancy.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"title\":\"IndexFund\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"burnShares(bytes32,bytes32,bytes)\":{\"notice\":\"Burns a specified amount of index fund shares.\"},\"finishMintShares(address)\":{\"notice\":\"Completes the mint shares process by processing the decrypted amount.\"},\"finishRedeemInStablecoinCase(address)\":{\"notice\":\"Completes the stablecoin redemption process by transferring the stablecoin to the user.\"},\"getIndexFundToken()\":{\"notice\":\"Retrieves the index fund token contract instance.\"},\"getIndexTokens()\":{\"notice\":\"Retrieves the list of index token addresses.\"},\"getPendingStablecoinRedeemAmount()\":{\"notice\":\"Retrieves the pending stablecoin amount for redemption for the caller.\"},\"getSharePrice()\":{\"notice\":\"Retrieves the current share price\"},\"getStablecoin()\":{\"notice\":\"Retrieves the stablecoin contract used by the index fund.\"},\"initRedeemAfterBurn()\":{\"notice\":\"Initiates the redemption process after burning shares.\"},\"mintShares(bytes32,bytes)\":{\"notice\":\"Mints new index fund shares by depositing a specified amount of stablecoin.\"},\"mintSharesCallback(uint256,uint8,uint64)\":{\"notice\":\"Callback function for the mint shares operation.\"},\"sendFeesToProtocolOwner()\":{\"notice\":\"Transfers the collected fees to the protocol owner.\"},\"updateSharePrice()\":{\"notice\":\"Computes the current value per share based on market data.\"}},\"notice\":\"This contract implements an index fund where users can mint shares by depositing stablecoin.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ConfidentialIndexFund.sol\":\"ConfidentialIndexFund\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@chainlink/=lib/chainlink/\",\":@ensdomains/=lib/v4-core/node_modules/@ensdomains/\",\":@httpz-contracts/=lib/httpz-contracts/contracts/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/universal-router/=lib/universal-router.git/\",\":@uniswap/v2-core/=lib/v2-core/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/\",\":@uniswap/v4-core/=lib/v4-core/\",\":@uniswap/v4-periphery/=lib/v4-periphery/\",\":chainlink/=lib/chainlink/\",\":ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":fhevm-contracts/=node_modules/fhevm-contracts/\",\":fhevm-core-contracts/=node_modules/fhevm-core-contracts/\",\":fhevm/=node_modules/fhevm/\",\":forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":httpz-contracts/=lib/httpz-contracts/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":permit2/=lib/permit2/\",\":solmate/=lib/permit2/lib/solmate/\",\":universal-router.git/=lib/universal-router.git/\",\":v2-core/=lib/v2-core/contracts/\",\":v3-core/=lib/v3-core/\",\":v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/\",\":v4-core/=lib/v4-core/src/\",\":v4-periphery/=lib/v4-periphery/\"],\"viaIR\":true},\"sources\":{\"contracts/ConfidentialIndexFund.sol\":{\"keccak256\":\"0xac792e087c3600604af05e0abfa3db9fef4e71daf884885606115c672efcc5b7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9454f480f9154f76c365622aa59a1fd9ea36a9b409df31bf13fe6d35e63f64d3\",\"dweb:/ipfs/QmYz5knj2ptBvsdocjk7it2qiv968uytuVmBeHDsvz13xe\"]},\"contracts/ERC20Encryption/ConfidentialERC20Base.sol\":{\"keccak256\":\"0xa622900eae5b1f80c956ec16afec6e4ef6af141d7973b6d52167a86ae988272c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://45dcc2e65f2b601bf132eaae21b1ed2e5dd67c9644e6edcf856ea3274444b04e\",\"dweb:/ipfs/QmR4XvcnxE3JBfPNpLcyvPssdBqtMTd76gm6BWczaSMi9D\"]},\"contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol\":{\"keccak256\":\"0x6f947e91a3369017e4d0147ac44ea39c6f8ffa4a5307d8339481f4e88355a62d\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://27794b1340f9299d7be061aacde65075fca40a1d722e8c5181cee22f257eeb25\",\"dweb:/ipfs/QmT3DReokqZhMtDcEDpkTgf1zG5cZELzPEZDjrqpfEXjWC\"]},\"contracts/ERC20Encryption/ConfidentialERC20WithErrorsWrapped.sol\":{\"keccak256\":\"0x6780cf12626fab34cbe430892929cb2827f948ed6fb613dfb55dda036ced8697\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc3c67659beeff5d21d110cd711c731a52a88293bf120b582f72f2fe4da7bf2d\",\"dweb:/ipfs/QmNbQ9EehknmU6Fui2QpnTSTj7Ft9sbWc95nz3x62fe2Jh\"]},\"contracts/ERC20Encryption/CustomConfidentialERC20WithErrors.sol\":{\"keccak256\":\"0x48800ae20f96fc6ff85e8428faf7c314eceefa7a1349fc3f42479ba82d658431\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://6ab1d91f86b98bcf65f7af820157a9d7cd923f51e60df7897c1e9858f3e3a433\",\"dweb:/ipfs/QmUt2mtzHAHDp2bvkSiXpZdM9okz4mJKFTHjU2YwPjxvxd\"]},\"contracts/ERC20Encryption/CustomConfidentialERC20Wrapped.sol\":{\"keccak256\":\"0xe3f6e6a47070a54952ac2dd5e008c7997322a16e72f4114a2ec48f45e3bc8cea\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://8b47026e8a91b2a0212d621e0b2a8452e7402636f7fbbfe857d8cb6809b9310d\",\"dweb:/ipfs/QmPYT4Q68jt5Yac6x2tdWHrDcBnjLdkY5JqPnLcCpswQxo\"]},\"contracts/IndexFundFactory.sol\":{\"keccak256\":\"0xac7c7b569f43f6d43dc939fc92cdb0067fe040b9c2defce170ab50e2e9634c7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://414818a35254065d728f62d25c432da2c0d027cfa8731e1a74acb9f82b6521b3\",\"dweb:/ipfs/QmPpiFCykJKzoGcW69GXekSkDxN6pfUKaT2jnHZnufKkni\"]},\"contracts/IndexFundToken.sol\":{\"keccak256\":\"0x6d1e6a25f9d42b8d6a080a35f7a3b5349abae3f4a30c136f907cc52778a0fe27\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://1d81c68b7233cba175382a539bfbcfaf92b06197add787b3b429ec98c65c4669\",\"dweb:/ipfs/QmYEwXLUeBFNnK8ZZxYo3pVJe7hZrEMitxbGyrrotbU4yt\"]},\"contracts/interfaces/IIndexFund.sol\":{\"keccak256\":\"0xd9ef0b82a5fbc651233fa570e20487052da9bc9e608d7fec5c54c3259b64b0db\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://2fa0a193b577c89a809b110a6a770068cf8e7c86807d1022b10a44304ada1f90\",\"dweb:/ipfs/QmewwyiHG7fnHucV1zLT5iYLzNiV4ryaBMqMoPmPRgD6WW\"]},\"contracts/interfaces/IIndexFundFactory.sol\":{\"keccak256\":\"0xdaee28098d25d209508346539130902d9e08f32b24aa18fe915c50a829dd62ac\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://1c6a9ccf80750ad63e7a5cdff241d17130ab3e66e41e6647b10504abbf37fb76\",\"dweb:/ipfs/QmRFJFDzeATHcLQCU6yXxVDThzm2xRZaGDZXFaCZK4aVs8\"]},\"contracts/interfaces/IMarketDataFetcher.sol\":{\"keccak256\":\"0xa5343d6d80de89e9e259d51e9fd50444de43f61f6da31c26ad6f49029a47481a\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://e7fb90369df691fd542180e13cc7a881b46ef86dc1fdac4622d19cb292059112\",\"dweb:/ipfs/QmUnvC7eyCdg83tARSBSoEDPKjZHJZ4mKFWdPwSycki3KL\"]},\"contracts/interfaces/ISwapsManager.sol\":{\"keccak256\":\"0xa98bd09c0946399a4f4ae05e713b3207593528df54e8695a4aa4db885b47e894\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://eca854b1cf38859c81648a4bc824aa8e8e7a6347a3b902ceff0d2eb98cff384d\",\"dweb:/ipfs/QmTFzfKREewMg1xjbuCU5DDPbq8Wi1euCzpE2xJ8RAeJi8\"]},\"contracts/lib/IndexFundStateManagement.sol\":{\"keccak256\":\"0x6d55232bd5d80e0082f0adda3f052e62708e9ca7f18e7c439ed775b3ec7cdc43\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89733fef5a9b8efdee13a4a91f518503f9ed3e7449e3debf4ba864f363d0fb21\",\"dweb:/ipfs/QmQ8yyTYoLymoERKzmb6iK6K1ehcpuo4ZbbjQyX5M1t3j1\"]},\"contracts/marketData/MarketDataFetcher.sol\":{\"keccak256\":\"0x982be5c64a69b4e8bac986e1c18affd3686ec1a6dcff4b515c5918b924508997\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf5b5e27288f2a9fa156ecfec63fa84eb13a2b66cf84b17bb26097cd69bc7b7f\",\"dweb:/ipfs/QmW4NcWKfwuyRadWvYe6vB3xyw5pHKLtoNSbjaBG2j13NN\"]},\"contracts/swaps/SwapsManager.sol\":{\"keccak256\":\"0x3d4d9b33ac2e97bafbe46a47fba285246649b3b75473b809706de58bba6abcf5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37ce21e2eca2ebcc4b971680a20cf20d2b6cc929c45b0dc5b5746dc705d77b40\",\"dweb:/ipfs/QmUfrJ5Pzjh8bpM1uCtECD9dHS8jBMrG4T68ufMccXeQvs\"]},\"lib/chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol\":{\"keccak256\":\"0x257a8d28fa83d3d942547c8e129ef465e4b5f3f31171e7be4739a4c98da6b4f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d39e11b1dc7b9b8ccdabbc9be442ab7cda4a81c748f57e316dcb1bcb4a28bf9\",\"dweb:/ipfs/QmaG6vz6W6iEUBsbHSBob5mdcitYxWjoygxREHpsJHfWrS\"]},\"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol\":{\"keccak256\":\"0x8b45e5bb2fd9212f99e61b4d25b9c9d5ed7cb1a9a684aac34f752c568ef16c76\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://1ca71bb5bfbb2f8a0779f8394baeea01680619637abddb572017d05d96862591\",\"dweb:/ipfs/QmPCzGBE1m6WtDZxrVL5jzkduNaS7fjtYovUWdnzN34qjh\"]},\"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20Wrapped.sol\":{\"keccak256\":\"0x7e178a03b7f034532497a8b762069fff0808277befc880e4a3236938ba1380a7\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://7250476c961801e579719fd0201a3ff6bfdc79e8324db34d5ec0c6cecc281281\",\"dweb:/ipfs/QmNsTR2Rk2FRS3cTNf7WeN3UzPZy6HSj1SFV3Nuwz8Rpzi\"]},\"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol\":{\"keccak256\":\"0xe016a085f72ca3cf6d78ec1cb2182a398106cb7d425e984776a9caab0bad2569\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://3e79dc5075469d660908f5f8b6d0c863b14459d60a0b06fb786d58de8cf30a94\",\"dweb:/ipfs/QmePGRGtoWBnQ8T6ZRyZgiwVh4r67kcmWejwKgjyYN4AAY\"]},\"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20Wrapped.sol\":{\"keccak256\":\"0x72c5379fb2a7e1701a4686f60831bfc474350a42f0660aea815a5ce910cba38b\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://118fac79c89e142247e94763a1ca1235c307a67b37d68fa45d94125bc85c2cb8\",\"dweb:/ipfs/QmcE9P74NQQKnmW9vdtGb8KrWgJWH6K3bNTdrMxrPi716c\"]},\"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol\":{\"keccak256\":\"0xfe322c8f9a8e4fba881715901a5bafd2efa23394ecbc9ec84282818baeff0a07\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://13dba831528dd16408b7abab23eac0664a2a3e5ecbfe5e58e6e321cf2921668a\",\"dweb:/ipfs/QmPq4YeugbayWfeBJR8H7s4jHsnZkACQX2xbdNQ4sdvZrk\"]},\"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol\":{\"keccak256\":\"0xecc6289a9791bef254911393b51d2bfbddc5650ede7fbe7b5cc2b8d3eb01d7a6\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://7463278a20bc5d7fd8b7ec2cb8e592b2d1e0afcf8b59d35d6929d18661d4b38c\",\"dweb:/ipfs/QmTKPoABwNDmK7g7vkti1AkTpkUBHu3iX3zsXQsEuSiqBM\"]},\"lib/httpz-contracts/contracts/utils/EncryptedErrors.sol\":{\"keccak256\":\"0x0b8d08f392884add1af672018359e8980ee0b5e1662fe5e36eb31f053d1d4505\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://2903dd49a88b36aba2e8a45548b6a68d203887356ebdf452b10e0148954ba1a5\",\"dweb:/ipfs/QmTRuP4QXagoV2cLr2ctzFtNK7FK1cDXMYm4feMoMsYoWG\"]},\"lib/httpz-contracts/contracts/utils/TFHEErrors.sol\":{\"keccak256\":\"0x5fef7c2d7d4449d724a2800b37dfcc61e2b635f2747378ce222b9187425f2d13\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://7c2ef113faaec2d74c8d958f80687d0b676082d6231720917aaa8aa934d689a3\",\"dweb:/ipfs/QmNn474JDQ5zvVDwEuicJs6Xq8YEXWGZLoW4KeTWDVG31f\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xd861907d1168dcaec2a7846edbaed12feb8bad2d6781dba987be01374f90b495\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12ff809243040419e2fc2aa7ef0aaa60b3e6ebc901553ba1de970ceeef208c4c\",\"dweb:/ipfs/QmX2dwMVNrQAahqVzEx94gqcVB6Z8ovifPYdEfHZzj7aEb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol\":{\"keccak256\":\"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0\",\"dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x8decfa54cec979c824b044b8128cd91d713f72c71fd7dfa54974624d8c949898\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://271f914261a19d87117a777e0924ada545c16191ef9b00cc40b0134fc14ebc70\",\"dweb:/ipfs/QmdvVNWHGHQrGGPonZJs5NuzTevTjZRM2zayKrDJf7WBA2\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x6ef9389a2c07bc40d8a7ba48914724ab2c108fac391ce12314f01321813e6368\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7a5cb39b1e6df68f4dd9a5e76e853d745a74ffb3dfd7df4ae4d2ace6992a171\",\"dweb:/ipfs/QmPbzKR19rdM8X3PLQjsmHRepUKhvoZnedSR63XyGtXZib\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x4ea01544758fd2c7045961904686bfe232d2220a04ecaa2d6b08dac17827febf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fabe6bef5167ae741dd8c22d7f81d3f9120bd61b290762a2e8f176712567d329\",\"dweb:/ipfs/QmSnEitJ6xmf1SSAUeZozD7Gx7h8bNnX3a1ZBzqeivsvVg\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff\",\"dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaaa1d17c1129b127a4a401db2fbd72960e2671474be3d08cae71ccdc42f7624c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb2f27cd3952aa667e198fba0d9b7bcec52fbb12c16f013c25fe6fb52b29cc0e\",\"dweb:/ipfs/QmeuohBFoeyDPZA9JNCTEDz3VBfBD4EABWuWXVhHAuEpKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]},\"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol\":{\"keccak256\":\"0x534bf5c25d6003a8ce50b400d20fa460c03169ad7baa90d47a912917c36dfe2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc0cc39c40ea23d3c46e8517e19ebdd877719d3159fa032f2a91802cdd205c79\",\"dweb:/ipfs/QmSoNh7HTkD4TJcBkBKSGSPMMpLUZKE7s9f2G6mjdaJywg\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x44f87e91783e88415bde66f1a63f6c7f0076f2d511548820407d5c95643ac56c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://13a51bc2b23827744dcf5bad10c69e72528cf015a6fe48c93632cdb2c0eb1251\",\"dweb:/ipfs/QmZwPA47Yqgje1qtkdEFEja8ntTahMStYzKf5q3JRnaR7d\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889\",\"dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/permit2/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0xcdfd8db76b2a3415620e4d18cc5545f3d50de792dbf2c3dd5adb40cbe6f94b10\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://57b3ab70cde374af1cf2c9888636e8de6cf660f087b1c9abd805e9271e19fa35\",\"dweb:/ipfs/QmNrLDBAHYFjpjSd12jerm1AdBkDqEYUUaXgnT854BUZ97\"]},\"lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0xbadf3d708cf532b12f75f78a1d423135954b63774a6d4ba15914a551d348db8a\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://88ac8256bd520d1b8e6f9c4ac9e8777bffdc4a6c8afb1a848f596665779a55b4\",\"dweb:/ipfs/QmXx7X1dxe6f5VM91vgQ5BA4r2eF97GWDcQDrgHytcvfjU\"]},\"lib/permit2/src/interfaces/IAllowanceTransfer.sol\":{\"keccak256\":\"0x37f0ac203b6ef605c9533e1a739477e8e9dcea90710b40e645a367f8a21ace29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0104d72aeaec1cd66cc232e7de7b7ead08608efcc179491b8a66387614670b0\",\"dweb:/ipfs/QmfAZDyuNC9FXXbnJUwqHNwmAK6uRrXxtWEytLsxjskPsN\"]},\"lib/permit2/src/interfaces/IEIP712.sol\":{\"keccak256\":\"0xfdccf2b9639070803cd0e4198427fb0df3cc452ca59bd3b8a0d957a9a4254138\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f7c936ac42ce89e827db905a1544397f8bdf46db34cdb6aa1b90dea42fdb4c72\",\"dweb:/ipfs/QmVgurxo1N31qZqkPBirw9Z7S9tLYmv6jSwQp8R8ur2cBk\"]},\"lib/permit2/src/interfaces/IPermit2.sol\":{\"keccak256\":\"0xaa631cc9f53e699301d94233007110a345e6779011def484e8dd97b8fe0af771\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc0502cf19c9c18f320a3001201e89e350393b75837f6b7971de18b2de06f30d\",\"dweb:/ipfs/QmT9SfhdJ7VJNNrf94g4H5usyi7ShqWGx7Cqsz9jZTjX96\"]},\"lib/permit2/src/interfaces/ISignatureTransfer.sol\":{\"keccak256\":\"0xe6df9966f8841dc3958ee86169c89de97e7f614c81c28b9dc947b12d732df64e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d4eafdee7f48c3be8350a94eb6edd0bfb2af2c105df65787a77174f356c0317\",\"dweb:/ipfs/QmY1j2adeeAhNpn6cUuthemxGCdLXHTfyMh9yTKsY4mZ2d\"]},\"lib/permit2/src/libraries/SafeCast160.sol\":{\"keccak256\":\"0x8a34e2beac108d74f89510c949983212b5f09307a93ee9e17a9d50e93f6bc8e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828697f9567ce617c5c1c8f76b6bcd250e93aea2c4f3ee188be6dff8443c19e7\",\"dweb:/ipfs/QmafxeSPhUc9gGtNDLAw26oZooC5XNLhDMxHxYhJxL5Nwi\"]},\"lib/universal-router.git/contracts/UniversalRouter.sol\":{\"keccak256\":\"0x5c7515720fa9b429bc83f0044f3a02cdd065fe1773b9fd32151dc5ff9042d368\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://dd77517f3a73a07fdff8f3a52c268afca749a678ea11442140d401eb102f4404\",\"dweb:/ipfs/QmeJiwCtgF1rMB7Foi6PrqWEaXktztPGQfHoAsw1BRhLU3\"]},\"lib/universal-router.git/contracts/base/Dispatcher.sol\":{\"keccak256\":\"0x1564339a5163c5d27f06a64f994a7457b061aa0f5046377bcc5078cd6907cc5d\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://82dc3ed71c19d6e5d1f72304e62e360954fc40a4d92a2a94e862c5474490d58d\",\"dweb:/ipfs/QmcNamJcGijcEetbHWVJHNjSE2WCyQsmEGEGDg9ZNwqSjR\"]},\"lib/universal-router.git/contracts/base/Lock.sol\":{\"keccak256\":\"0x92f953dda0d671178d054eeb3915b70f8ba80be33df8670a9146af4a4bc2c6ac\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://f73faac9532c8a8870d31bcef68a0dde387579d7b755c342b3352a54a4b63682\",\"dweb:/ipfs/QmXLvJb6vxfrUG84ASLhEf7tL62MN3oxkp7aXUxemrZTy3\"]},\"lib/universal-router.git/contracts/interfaces/IUniversalRouter.sol\":{\"keccak256\":\"0x2525b52d1edf5df89bfd093c5b933b9e8f65236f44f58096763a6c87a5cafb63\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5cc0fcfedd6b32586099ee0f6781bb81da99175c65013c06bb6f61a125babb18\",\"dweb:/ipfs/QmcEkSzkjkPpp3YyJZaY232TjuNU4Pw6CSiTWz7sk2Sq5D\"]},\"lib/universal-router.git/contracts/libraries/Commands.sol\":{\"keccak256\":\"0xa08ae7be62972a4f17779257641065d41fa5cc2d5fc7050e5e5b76fbda9e6a9f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0b94d73c5cd54aba5e1ad4ccfc33df13c1b04417f53fda188275fc15f95f02f2\",\"dweb:/ipfs/QmNpigDf9g9AAbFr27gug5hAZjb6iuFekRqXonC6upoEcp\"]},\"lib/universal-router.git/contracts/libraries/Constants.sol\":{\"keccak256\":\"0xb668498f11a4bb576a0a61c183da7ca348249dd9176c57dcb6532912b1b49b0e\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://87d8588baf0b7b72faec637843c7623ac416d45e0f7719d0a635afe7981b2cf2\",\"dweb:/ipfs/QmSu7Jr8JM6mab2dddk1UaiPhyLZvsA8iLxC9MEcBUaMzT\"]},\"lib/universal-router.git/contracts/libraries/Locker.sol\":{\"keccak256\":\"0xfccb45f77b5c66f0f417d803b4b3f7ae97206d8d850a383ab7d97f25d0617cc0\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b47f3f4e74961f8e9d918c2cc3514cb8d097caee6ab2c20c10735235dec440ec\",\"dweb:/ipfs/QmfTWUjP7g7zTw67C2RvoMhWRX6ExLNV3UYSb5LqfE4bqC\"]},\"lib/universal-router.git/contracts/libraries/MaxInputAmount.sol\":{\"keccak256\":\"0x2dd6efbcaf9991c852e29a726f9876a0a6d08f2271912e69efa5c6a5e8034739\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://949ebd746eee3589d1e466c738884bd3532043d9e8a7b77c1521a098ba3c69b6\",\"dweb:/ipfs/QmZC9idgGQDfLksqfz41FrcsVXhqkfRZCZH9MJXQkQavt6\"]},\"lib/universal-router.git/contracts/modules/MigratorImmutables.sol\":{\"keccak256\":\"0x666d1622a10509c69b679df9d175a3e0c176a62b9e18d1cee7634219aded8f68\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a88e472495d32648ba3e7964c4c88b68853b49540f40afbaf2ede6822372b49f\",\"dweb:/ipfs/QmQoaWbCpwFYCnRgehM7ruYaa7za8fBghT5aQCRCPYJr1V\"]},\"lib/universal-router.git/contracts/modules/Payments.sol\":{\"keccak256\":\"0x19a103b3269ee2f7bc28a6e1850091b2087dd2558662494d1104ac8e5ac68524\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://ba64c600f57bb13672a5549b6dba11ae4dfe49f688c24eadb3289dcc87d226a8\",\"dweb:/ipfs/QmWkmVyeai1WeymuWqEk1fQE5R2frrQQjJv81cytrKvFuA\"]},\"lib/universal-router.git/contracts/modules/PaymentsImmutables.sol\":{\"keccak256\":\"0x9ca2535b69b15d3bdb7a15871c5bca83f5536cffb0191c64f4c6a2db4a154338\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://dc85fb3ddd19481bf0d1a8a9f5d9631b396d86344a33e30b4c4ab6cd58d51169\",\"dweb:/ipfs/QmeEGFqfHFUo1Mu6tRfCjvVGJYyoDu29ZspZgxxcj6ykvq\"]},\"lib/universal-router.git/contracts/modules/Permit2Payments.sol\":{\"keccak256\":\"0x887ec1f57144cd91a1b86d5a7b1d1119146f41dae6865e6fd0e849801e968628\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://08b713e82f3f192976902497e1c02dd60bf7e90c83a471eb4c7ac7710b086f95\",\"dweb:/ipfs/QmWJSGZ9Dj7FmFCnDWpDdL5fx76JYDgYWhggXCroxV7cjX\"]},\"lib/universal-router.git/contracts/modules/V3ToV4Migrator.sol\":{\"keccak256\":\"0x5ee3774b749b9a8d851dc6074c8de8c61f408a4cfd829c47c753840c839ba91c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://337e17b84f4fdad7e32be0e482e7b2471d7f927ba3b3174cae38cf2509d97443\",\"dweb:/ipfs/QmbzgdyxAC5vpvWRGaemn3Qn7DRbNDjHSH3KbHSDPwJ8LY\"]},\"lib/universal-router.git/contracts/modules/uniswap/UniswapImmutables.sol\":{\"keccak256\":\"0xb810727f5e734a30871ff1d83d8c96d99150f1ce77bb39e032aec6254ca43cd0\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5eb9df8b6c81f8e33b8a6bace294ed0d81c541988f7ba42027e3041eff32e1bd\",\"dweb:/ipfs/QmVPSWBv7WegGySGV4BoewKKx7iAetHsjydxQyKk3dh5yw\"]},\"lib/universal-router.git/contracts/modules/uniswap/v2/UniswapV2Library.sol\":{\"keccak256\":\"0x829d48c1b69d2e1bc078a57aae8d87dc31d920b01c62d6268d20d517fd24150c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b87236ea4c1e64c12434f31abbd658ca3fc510ebe65be731d84d3ce8efa71c32\",\"dweb:/ipfs/QmUerjg5Ebt3pfQZtk2sArUy414gQtHwvFNgsQNe4PhxbN\"]},\"lib/universal-router.git/contracts/modules/uniswap/v2/V2SwapRouter.sol\":{\"keccak256\":\"0x0fcb6ad6c4d5a7b25054dd9951432b2b41cb2c0077e6bc7ca0d0416115ef2326\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://124b1dd54d27914306bdd1021e171111f0ae622fffb2974ccdee24eab31b359d\",\"dweb:/ipfs/QmfKr2sbxdc31aPWv9d6ETA4GyfqHiKVZRKqhREnMkR5j9\"]},\"lib/universal-router.git/contracts/modules/uniswap/v3/BytesLib.sol\":{\"keccak256\":\"0xc3c23e83afd06781c4a0a5c418c20c40611e71d049766eb70987007ce372656e\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://c62989beb75edad6de18c31be31eb68f0c3fb15c5f9e9bb380221afc6785fda5\",\"dweb:/ipfs/QmVEsp5yivbmjP7HcXS5kJ1XJY5Uic3J3y4zjpwD1SNySD\"]},\"lib/universal-router.git/contracts/modules/uniswap/v3/V3Path.sol\":{\"keccak256\":\"0xf6abbf4c7cd0975ddabb0ddb641ea9ae3b0cc1dd9a1cabf5e7cc271a974eabc2\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1e0987fc9b81c65eada64cb65f981680c2054e489a6049d397b5ecbbf4c9a0a9\",\"dweb:/ipfs/QmW7mbbHsfc2GLy2GkCUv3VwXV93y6UFtKDD7E9QEtzFH7\"]},\"lib/universal-router.git/contracts/modules/uniswap/v3/V3SwapRouter.sol\":{\"keccak256\":\"0x31fe8777a6de583c54a0f09ec11d318c253b7fe50c7a2af1608b2b89a03ca660\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://780219ff0d6d333727655719d31d61ce345cdbca7f906467a2d00e3162b3c0aa\",\"dweb:/ipfs/QmbauA5Kvj7m9P9hxe4hhnLY5w2TEXMMnCc9oWehVgj2jo\"]},\"lib/universal-router.git/contracts/modules/uniswap/v4/V4SwapRouter.sol\":{\"keccak256\":\"0x68b7666641ad5ba227b500c9845c4bc71eaaac6556d97d31d123fce41b51969a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://40a99bb5e9e407ad6741f5c210ac23a32950e7567c73f21975444e9729fc6cfb\",\"dweb:/ipfs/QmUK98HjyQ7NDGR36DD9owjLDk7ujEj5b5uKt9zjUsCFG5\"]},\"lib/universal-router.git/contracts/types/RouterParameters.sol\":{\"keccak256\":\"0x9efe9912d44e56cff8fc23e1411c80b47ffc9f5c0ad5ca5c66ab77a1b7ddfcbf\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://473acf49dc1be1ca997ad20258124e26e03b3cef15412a8827ecf9b52e4cef21\",\"dweb:/ipfs/QmaGR2QL6im4XYJpubqhUuP82nFytemX7wwEk4cXECJYJN\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56\",\"dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0xa72de315bd655a0fd5043ff97c7fd3868a1b5b1986afd75c6f5f8fd0f904985f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8838e68aba9caf2b2cb13bd4cb661b1f9c167cca4dfcd50ac72ae96691392df\",\"dweb:/ipfs/QmfLq3cmsSQTuLLxiF4bgceaf2jx8CoiVXQd7BZXGgJG1E\"]},\"lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol\":{\"keccak256\":\"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b\",\"urls\":[\"bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf\",\"dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH\"]},\"lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"lib/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652\",\"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"lib/v3-core/contracts/libraries/SafeCast.sol\":{\"keccak256\":\"0x4c12bf820c0b011f5490a209960ca34dd8af34660ef9e01de0438393d15e3fd8\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://fed11489e218e55d087d42b4f350a30e10cd2aedec8f432bd3cc712f648d5869\",\"dweb:/ipfs/QmWfRnRxyXwHUDcTQPazxYYk5jxErGeQqdvnYtyg5nBPbU\"]},\"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\":\"0x4c9571aed0c2b6ef11832545554fc11ffdb03746daaf5c73683c00600bfc7ec0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e78b34b58ce9de91b91943b4f3cc3ce121d0b151e123e8a600ac5ef64d91db6c\",\"dweb:/ipfs/QmRkaQnPCYwLrXgbpGujJTx32PaZK63KSPJJV1XmnQuCMb\"]},\"lib/v4-core/src/interfaces/IPoolManager.sol\":{\"keccak256\":\"0x3534f00531038e77ab8a7fc4d0a6e0993ee53fb7a396b1324ad917318ea46cea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4a7e771828dc40848485b568a1cf514f553ace6653f4f4d1ad3f3e9cdb6c27\",\"dweb:/ipfs/QmTjzQ7KVYnrEWtxPER2E4MXzycgcznfzSDsZtd5turk5V\"]},\"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/CurrencyReserves.sol\":{\"keccak256\":\"0x1576616129933fcdf3b684cea33cffd9c95e18fafbd2832a8c48ac3d8526d4c3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://33b050efb9b81803b18f562271e7cca2ec5362c4d505860d6419b4a345636725\",\"dweb:/ipfs/QmQtFtTwKZ5pFVGD2ENDUXvp7ECFvzqeCuJ1miJcUHdmiX\"]},\"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/Lock.sol\":{\"keccak256\":\"0x9338be4b5695f1da5f3d3f7a3eeaf7a356c1045458289586ac0cbe9cef77c6d5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://485ec42ed6155469d612a9a0c18068ebfbad74448792a338a435503de3ef1b2c\",\"dweb:/ipfs/QmVnnv5u74MYatfRmBgrcfFYQcsMAJMG9jQ6ju8UiydKNF\"]},\"lib/v4-core/src/libraries/NonzeroDeltaCount.sol\":{\"keccak256\":\"0x0666ebd5d3528d7d52c48538296367a4cff97a578cf13365c51983fae3219b87\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://d27f1be3bd09d85c53d3e6a539dd6529ddd8b2b764ccb47fd7765fc81f9add59\",\"dweb:/ipfs/QmQdZujNXhKEXQBkKtF5jbdvo1yXMqPDUoBBaF9S5u3Kpm\"]},\"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/libraries/TransientStateLibrary.sol\":{\"keccak256\":\"0x7d1e0875747bd89b32c25f1a48da2766e5f4aff1f671ad5f3c0c07ebbbcb946a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d76cfeb1cb60595b41ecc51c8a12fb4bf63a7fc733d0b1a2e3adb55abeb1f9d5\",\"dweb:/ipfs/Qmb8oX7DtsRpw3tTtdWZwGhauj1evq43d3PLwe4nSDAKkV\"]},\"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-periphery/src/V4Router.sol\":{\"keccak256\":\"0x8ede1e538ae9b74984c52347a3bbaee7b3d69f00ed9b3a6db1f1bd6e058a2326\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e370416fa9681ad124414e2b2fb57a5455e15dd873c9e61c964177ae5c2d544\",\"dweb:/ipfs/QmWrM97ezNB9CpawqhkwpubXHcXUbMFWKYEbD3D6EyAe1w\"]},\"lib/v4-periphery/src/base/BaseActionsRouter.sol\":{\"keccak256\":\"0xca1ee500f88951ad351d18ba2adfb5fe23abef6d502f234ce5748a3497674a4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f03ab458be27c29cef1b7ace5b11517d3fef8bf6131af7dd80d6297c224cf71\",\"dweb:/ipfs/QmYoH6o8yeRzbeLoaMG9TjS8q2Fw7T1h4vXvvMnp3XfsUa\"]},\"lib/v4-periphery/src/base/DeltaResolver.sol\":{\"keccak256\":\"0x94a2da2be5c924df65a8e1e29f585bbe4c37777fedd43b45989c66d509a4a83c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42bba590f6e817fd56328b74ae99bfdc4df57386d0a69ee22b9108341953ed36\",\"dweb:/ipfs/QmdusastK7FWYouLz9gvV5J3z8MQbNKLJNNHTrc1vi7DWw\"]},\"lib/v4-periphery/src/base/ImmutableState.sol\":{\"keccak256\":\"0x1867c9fa2f9b4fa73bab0fcdc9d19ccef4eeac552273d8b84a170cd1cc90350a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af2d699b439e13b599632fddfe82718aebd41055fba7c075f186675c588d1337\",\"dweb:/ipfs/Qmc111gckSKb9aESn3wRFLeLiS4KGujaUcaYJgRnCRfwQU\"]},\"lib/v4-periphery/src/base/SafeCallback.sol\":{\"keccak256\":\"0xd78b583df1b9ee06d58e83b84fc9f08971389b34dd34bc13db072e0c13c710da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0a47f4bcd6060c4462153b9a7c52a60a460ace91acb6ddd5492eab28ec26173\",\"dweb:/ipfs/QmdRCTRS1dhFjWEy6z577j4xz9J5HPfHBwcNzAic8G59oT\"]},\"lib/v4-periphery/src/interfaces/IEIP712_v4.sol\":{\"keccak256\":\"0xd7f7115476e307a0bfc32a0f0a0f5434e9e5ca62a6c5af1e18b75e48161bb408\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1600b953556da38a7adc5ad2a2925ec5fb138fecf8eec48743646543195b736\",\"dweb:/ipfs/QmarZi2aiLVAfHXgnDWV1cCFiZk2DdPW7KJnWHqzuRChJR\"]},\"lib/v4-periphery/src/interfaces/IERC721Permit_v4.sol\":{\"keccak256\":\"0x103adbba724ef536abc536fe8a4d7dc12880724c562109b69f2adce4a91fa017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06f51b5a5a218e0bc866a83e7821be53c9db9de0ca921f16abd3d13ea0eab69d\",\"dweb:/ipfs/QmbnhLy992hpQZyphTkj7fpr6jKKVva2AzfmLiDZEuqHAk\"]},\"lib/v4-periphery/src/interfaces/IImmutableState.sol\":{\"keccak256\":\"0x36ab3100e87457ecf04887f4f540e34fd7f21d8e3b83880cb679239e60b7b06b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f290c7ce8e4832608d637a51b13dff95abecf6549485448e647a11c8ed01341\",\"dweb:/ipfs/QmfD1R6mTp8j4EjQXmQZW3vCh11EYFjnvoaw8rXRP27mMq\"]},\"lib/v4-periphery/src/interfaces/IMulticall_v4.sol\":{\"keccak256\":\"0x336bec303f7ff86497d2679464c5adad5040f412b3d0769ce5e1d2a42f7e2c08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7734f047d98d331c8abc51ad9f358ceee0a6dcae8d89ac49084b84de0d2d42e7\",\"dweb:/ipfs/QmWij2h7mU36LsXhb9P6pkYXrSCua4ixeWaVFSrsEcEmPQ\"]},\"lib/v4-periphery/src/interfaces/INotifier.sol\":{\"keccak256\":\"0xfdc5187a98240a1691aae98b7dd2444d4c2bfb4746f3c34de9f3d18399c17c5e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://683af56401ec4f8817e8dfe150e7b3febaf0baaf40efe8d0d0475f735275f746\",\"dweb:/ipfs/QmRQ6S3nFnSc2jjDcQTvUJdTf4xKPojmvCkpvgyr6qTuVV\"]},\"lib/v4-periphery/src/interfaces/IPermit2Forwarder.sol\":{\"keccak256\":\"0xfad472937280e861125ff12aa6f9c2cf7440fbb20a2cc29485c24662ad4279c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31bfbc331f5972fc373d9469fd1ca1d14818db3275f21b7b590f20820cb4439d\",\"dweb:/ipfs/QmX3Bv9wfYpAFZKBcxKsQSXUrSC8mqNBdzh6XVMS72aNx9\"]},\"lib/v4-periphery/src/interfaces/IPoolInitializer_v4.sol\":{\"keccak256\":\"0x2e4feda94650a2642039e0309ffdec480ee050bc40864bf5e1dba42bb4dc9e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://964c178b4da8bab9ef898b94bb26d7c17cc44c5cf20485f55dcf5e9c7e1b1d92\",\"dweb:/ipfs/QmVd2c3SYteyr5xZgUS4sDAiZF43dLwVAEKdCfvQbkZpRJ\"]},\"lib/v4-periphery/src/interfaces/IPositionManager.sol\":{\"keccak256\":\"0x62dfa0cbee8314ee7e6787db8bc1d364245c340f940875ac7ff11e89d074fc7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26f560c77d8a187bf93a710b827e3167eab3446922192fa8f92f208da2103834\",\"dweb:/ipfs/Qmbzp5gSYdTpMBF9aAb2GraxMEQZb5LRJCyg8VaRUyjTFc\"]},\"lib/v4-periphery/src/interfaces/ISubscriber.sol\":{\"keccak256\":\"0x34ceadec4a63019680e543fe73197f198a55c825d86e18f327840354760b57e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31734feafe1fe162a0702ddf862fcc3bd97505931afb3c685033c0185d898051\",\"dweb:/ipfs/QmQEANYVyaXTNzXKcjUVfPhLU71Bix5vxQH75BpPWMkWgw\"]},\"lib/v4-periphery/src/interfaces/IUnorderedNonce.sol\":{\"keccak256\":\"0xd7f32fee74dc7d1a3b078ca1263961baccaa6bf434c79e8fe0e092e30c3e0ec3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7d1e92d89d5f49c84aa82f3b259678c2c97a4473b22d753ca4411a6b0cec36d\",\"dweb:/ipfs/QmNZoQyminStaAdaLqoDLoWaBU5QWrWjXFjmBm4aFhzL8i\"]},\"lib/v4-periphery/src/interfaces/IV4Router.sol\":{\"keccak256\":\"0xc4133fae25e61cc2447d7331729f6035322d7c1fe26b39b225422bf98cc63459\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c24ff8428504e973e947a059f96289a66c520cd7f8ef47a3224f9cb6abdaf25\",\"dweb:/ipfs/QmVqxYnngWXXcCiuTC143vTEJrjZK5NXWB92pjvVbuJBQ5\"]},\"lib/v4-periphery/src/interfaces/external/IWETH9.sol\":{\"keccak256\":\"0xe88abf12501ac275619aec0687240a07d26968aecbbcdfea88ba8bbd5d6e5e14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7097065d4492b4eccb1a73f99af1e5bec45404c6b973b8f5965c4c91403f5f92\",\"dweb:/ipfs/QmZK8oEqmjmTqhBoh3D3fBpyKGkUEFnptY8xwH9xpNjDm2\"]},\"lib/v4-periphery/src/libraries/ActionConstants.sol\":{\"keccak256\":\"0x3d6f0e5b4a7b1e60bad93e73dce5db67fb66bebef11c31ed8355014a79aa03b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6dfa42e24b1b5c7f66e75304ab034fbb6768518eb2410ccfff8b3defdd1658f2\",\"dweb:/ipfs/QmQQ7fud9mmv7PEWPAQiNzeZhNkWf28Z6nCHc2e6WJFfa7\"]},\"lib/v4-periphery/src/libraries/Actions.sol\":{\"keccak256\":\"0x8efd4b8b289177ee27e557d9d0a5a9f973d66fe1eb1ef8959d316b11987ca830\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07fe35f194eb99465028f0546359befea574d844da53767d32f22b233c3bcc98\",\"dweb:/ipfs/Qmc19631uFxABTHAbGrDrroexi9GdyxWntaum1v8npPYz5\"]},\"lib/v4-periphery/src/libraries/BipsLibrary.sol\":{\"keccak256\":\"0x37ebf99f5d086d9d9f6e7cecbf4d62167f47c63c30248cfcb921e828f0d7a359\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4f8e68a66bb6c166d72cdba6ed6fb83a93f713b79c2c572e8058084eb90ab6c\",\"dweb:/ipfs/QmY32FxtSBRf9PJzNUVzXqFY4i2ApTPHTUMpCBGovd2zo3\"]},\"lib/v4-periphery/src/libraries/CalldataDecoder.sol\":{\"keccak256\":\"0x26df49e13fb5410fd4db253cca877dfdfb3a1ba03e394d054c0e0514a88a56e5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72a0c98c52171708f332f83d517deeb97fdd50ecf28f2510e1866e54593a6ff8\",\"dweb:/ipfs/QmY4LiDUfSKGj86nML7B6a8euiPciUqwYehasAyAVnMCHq\"]},\"lib/v4-periphery/src/libraries/PathKey.sol\":{\"keccak256\":\"0xbbd79ffefe045f025263e389539021266fb4d371463aefba405e1ff1d3fcf9bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d1c47b81a01218be46ee79f0a8837095479b94dc5cfd18abbf2006709f0ea89\",\"dweb:/ipfs/QmRb6CQ13Zp7f3WF5jbZtsF2szhxpPgcuWs9mjwQXxzqtg\"]},\"lib/v4-periphery/src/libraries/PositionInfoLibrary.sol\":{\"keccak256\":\"0xc5ddf96bd088bc87ea50a20f907fc932fb28397a42682a301b268a11b7f34078\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7dfeb4dc747537240f8167243e8066b6f5f08057386fb8bda93f82973fc18ad6\",\"dweb:/ipfs/Qmby9DAAaHj8hjsMUnqY3vjqCHKGAKrT5EULMmeGcjbbGx\"]},\"node_modules/fhevm/config/ZamaFHEVMConfig.sol\":{\"keccak256\":\"0x41782f4c707b81399916544fa2e7be94a695fa4ba468542732d29d3e383c0315\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://45a95a55c4bbb3418c2133cba6ed21a9444bb4e38d38b32cc707b7493cece2ca\",\"dweb:/ipfs/QmVU8EKmZgscdM43RgXD4EgbVMhQxBusTmBren3pbn1pUW\"]},\"node_modules/fhevm/config/ZamaGatewayConfig.sol\":{\"keccak256\":\"0xbed8bc18db61ffeb5ee31f577ab636d8563df27554e0ca66c53534f0bd82ffbd\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://53601967f9e914b25cf91a325b100d5b3cbb9aec92d12443062a51fe5a578b7d\",\"dweb:/ipfs/QmNbviWrrPrx3snoLWqW5GyBnH99tSX3iYXEJ5ezk9XbtL\"]},\"node_modules/fhevm/gateway/GatewayCaller.sol\":{\"keccak256\":\"0xd19fd7715f0c5b479bf0cd8e3108cc8da7deae2d4fc7fb5ab089ebf2d76a0652\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://6386c509464cefe5a41903ca837da46a21b8042d13ccde656158efc48cd70ea8\",\"dweb:/ipfs/QmUn7C6aZwKmEmKsphBshBezXXGZtLMyfaeZAyuZoRsBWU\"]},\"node_modules/fhevm/gateway/lib/Gateway.sol\":{\"keccak256\":\"0x9585a649e3001a4b8768ab6e2597b416f680bcc537309cd50b60e023e9791318\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://a1b055bfb067cc247d4bd60b5f8348f667cbe79717a5753cd6412955277345d0\",\"dweb:/ipfs/QmTveBaQg9GUdtrrxcR4RsiyAEmoEKGL4gn6E1gThR1ph5\"]},\"node_modules/fhevm/lib/Impl.sol\":{\"keccak256\":\"0x89d4968cd956a8931f1a8a177b3bef1c6cf88a03665083db74430add50b88f21\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://aaaef2c82d56dacfb08946842ea1ce26757d13f3251de62fa79222232dfcb43c\",\"dweb:/ipfs/QmQ6QZPxJw9jb3qjRYCX7pMQVoYogjTsYgmdEnB3EnwFRy\"]},\"node_modules/fhevm/lib/TFHE.sol\":{\"keccak256\":\"0x221799c8332f83ab65a0b71746409f0c2c89f1cd8d9ba4091d967c667e1df734\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://2dba387fbc612a2ee64063b0ee6c27304b3944423d11045acc50abd84577fb5f\",\"dweb:/ipfs/QmThptDGnpd8PuncFk1rnQoCzEqwUED622yC9xZgFhwY59\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address[]","name":"_indexTokens","type":"address[]"},{"internalType":"address","name":"_stablecoin","type":"address"},{"internalType":"address","name":"_decypheredStablecoin","type":"address"},{"internalType":"address","name":"_indexFundFactory","type":"address"},{"internalType":"address","name":"_marketDataFetcher","type":"address"},{"internalType":"address","name":"_swapsManagerProxy","type":"address"},{"internalType":"uint256","name":"_initialSharePrice","type":"uint256"},{"internalType":"struct PoolKey[]","name":"_poolKeys","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":"uint8","name":"_numberOfSwapsToBatch","type":"uint8"},{"internalType":"uint96","name":"currentIndexFundsCount","type":"uint96"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"uint256","name":"amountToSwap","type":"uint256"}],"type":"error","name":"AmountToSwapTooBig"},{"inputs":[{"internalType":"eaddress","name":"token","type":"uint256"},{"internalType":"eaddress","name":"from","type":"uint256"},{"internalType":"eaddress","name":"to","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"type":"error","name":"EncryptedTransferFailed"},{"inputs":[{"internalType":"eaddress","name":"allower","type":"uint256"},{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"InsufficientAllowance"},{"inputs":[{"internalType":"eaddress","name":"user","type":"uint256"}],"type":"error","name":"NoPendingWithdrawal"},{"inputs":[],"type":"error","name":"NotEnoughSwapsToBatch"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"eaddress","name":"burner","type":"uint256"},{"internalType":"uint256","name":"amountToBurn","type":"uint256"}],"type":"error","name":"SharesToBurnAmountBiggerThanMax"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"eaddress","name":"from","type":"uint256"},{"internalType":"eaddress","name":"to","type":"uint256"},{"internalType":"euint256","name":"amount","type":"uint256"}],"type":"error","name":"TransferFailed"},{"inputs":[{"internalType":"eaddress","name":"user","type":"uint256"},{"internalType":"uint256","name":"amountToBurn","type":"uint256"}],"type":"error","name":"UserShareBalanceTooSmall"},{"inputs":[],"type":"event","name":"BurnSwapsPerformed","anonymous":false},{"inputs":[{"internalType":"eaddress","name":"from","type":"uint256","indexed":true},{"internalType":"eaddress","name":"to","type":"uint256","indexed":true},{"internalType":"euint64","name":"amount","type":"uint256","indexed":true}],"type":"event","name":"EncryptedStablecoinTransfer","anonymous":false},{"inputs":[{"internalType":"eaddress","name":"user","type":"uint256","indexed":false},{"internalType":"uint256","name":"feeAmount","type":"uint256","indexed":true}],"type":"event","name":"FeeCollected","anonymous":false},{"inputs":[],"type":"event","name":"IndexTokensRedeemed","anonymous":false},{"inputs":[],"type":"event","name":"MintSwapsPerformed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"eaddress","name":"user","type":"uint256","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":true}],"type":"event","name":"SharesBurned","anonymous":false},{"inputs":[],"type":"event","name":"SharesMintRevertedAmountTooBig","anonymous":false},{"inputs":[{"internalType":"eaddress","name":"user","type":"uint256","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":true}],"type":"event","name":"SharesMinted","anonymous":false},{"inputs":[{"internalType":"eaddress","name":"minter","type":"uint256","indexed":false},{"internalType":"uint256","name":"amountToBurn","type":"uint256","indexed":false}],"type":"event","name":"SharesToMintAmountBiggerThanMax","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"einput","name":"encryptedAmount","type":"bytes32"},{"internalType":"einput","name":"encryptedRedeemIndexTokens","type":"bytes32"},{"internalType":"bytes","name":"inputProof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"burnShares"},{"inputs":[{"internalType":"uint256","name":"requestID","type":"uint256"},{"internalType":"uint8","name":"transferErrorCode","type":"uint8"},{"internalType":"uint64","name":"decryptedAmount","type":"uint64"},{"internalType":"bool","name":"redeemIndexTokens","type":"bool"},{"internalType":"bool","name":"hasUserEnoughSharesToBurn","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"burnSharesCallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"callbackTriggers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"finishMintShares"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"finishRedeemInStablecoinCase"},{"inputs":[],"stateMutability":"view","type":"function","name":"getIndexFundToken","outputs":[{"internalType":"contract IndexFundToken","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getIndexTokens","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getPendingStablecoinRedeemAmount","outputs":[{"internalType":"euint64","name":"pendingStablecoinRedeemAmount","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getSharePrice","outputs":[{"internalType":"uint256","name":"sharePrice","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getStablecoin","outputs":[{"internalType":"contract ConfidentialERC20WithErrorsWrapped","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"initRedeemAfterBurn"},{"inputs":[],"stateMutability":"view","type":"function","name":"mintCallbackTriggers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"einput","name":"encryptedAmount","type":"bytes32"},{"internalType":"bytes","name":"inputProof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mintShares"},{"inputs":[{"internalType":"uint256","name":"requestID","type":"uint256"},{"internalType":"uint8","name":"transferErrorCode","type":"uint8"},{"internalType":"uint64","name":"decryptedAmount","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"mintSharesCallback"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"sendFeesToProtocolOwner"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"updateSharePrice"}],"devdoc":{"kind":"dev","methods":{"burnShares(bytes32,bytes32,bytes)":{"details":"Function implementation is pending.","params":{"encryptedAmount":"The encrypted amount of shares to be burned.","encryptedRedeemIndexTokens":"The encrypted flag indicating whether to redeem index tokens.","inputProof":"The proof for the encrypted amount."}},"constructor":{"params":{"_decypheredStablecoin":"Address of the transparent version of the stablecoin.","_indexFundFactory":"Address of the factory contract that deploys the index fund.","_indexTokens":"Array of token addresses that compose the index.","_initialSharePrice":"Initial share price (in stablecoin units).","_marketDataFetcher":"Address of the protocol market data fetcher.","_poolKeys":"Array of pool keys used for token swaps.","_stablecoin":"Address of the stablecoin used for deposits.","_swapsManagerProxy":"Address of the proxy used to manage token swaps.","currentIndexFundsCount":"Current index funds count coming from the factory"}},"finishMintShares(address)":{"details":"This function handles the unwrapping of stablecoin and processing of swaps after the callback.","params":{"user":"The address of the user who initiated the mint"}},"finishRedeemInStablecoinCase(address)":{"details":"This function transfers the encrypted stablecoin amount that was prepared in initRedeemAfterBurn.","params":{"user":"The address of the user to receive the stablecoin"}},"getIndexFundToken()":{"returns":{"_0":"The IndexFundToken contract."}},"getIndexTokens()":{"returns":{"_0":"An array of addresses representing the index tokens."}},"getPendingStablecoinRedeemAmount()":{"returns":{"pendingStablecoinRedeemAmount":"The encrypted amount of stablecoin pending for redemption"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"getStablecoin()":{"returns":{"_0":"The IERC20 stablecoin contract."}},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initRedeemAfterBurn()":{"details":"This function handles both index token redemption and stablecoin redemption paths. For stablecoin redemption, it processes swaps and prepares the stablecoin for transfer. For index token redemption, it sends the tokens back directly."},"mintShares(bytes32,bytes)":{"details":"Handles fee deduction, token swaps, and share minting. It fetches market data and calculates swap amounts based on token market caps.","params":{"encryptedAmount":"The encrypted amount of stablecoin the user is depositing.","inputProof":"The proof for the encrypted amount."}},"mintSharesCallback(uint256,uint8,uint64)":{"details":"This function is called by the gateway after decryption of the mint amount. It handles the actual minting of shares and processing of the stablecoin deposit.","params":{"decryptedAmount":"The decrypted amount of stablecoin to mint shares for","requestID":"The ID of the decryption request","transferErrorCode":"The error code from the stablecoin transfer"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"sendFeesToProtocolOwner()":{"details":"Only callable by the protocol owner and protected against reentrancy."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"burnShares(bytes32,bytes32,bytes)":{"notice":"Burns a specified amount of index fund shares."},"finishMintShares(address)":{"notice":"Completes the mint shares process by processing the decrypted amount."},"finishRedeemInStablecoinCase(address)":{"notice":"Completes the stablecoin redemption process by transferring the stablecoin to the user."},"getIndexFundToken()":{"notice":"Retrieves the index fund token contract instance."},"getIndexTokens()":{"notice":"Retrieves the list of index token addresses."},"getPendingStablecoinRedeemAmount()":{"notice":"Retrieves the pending stablecoin amount for redemption for the caller."},"getSharePrice()":{"notice":"Retrieves the current share price"},"getStablecoin()":{"notice":"Retrieves the stablecoin contract used by the index fund."},"initRedeemAfterBurn()":{"notice":"Initiates the redemption process after burning shares."},"mintShares(bytes32,bytes)":{"notice":"Mints new index fund shares by depositing a specified amount of stablecoin."},"mintSharesCallback(uint256,uint8,uint64)":{"notice":"Callback function for the mint shares operation."},"sendFeesToProtocolOwner()":{"notice":"Transfers the collected fees to the protocol owner."},"updateSharePrice()":{"notice":"Computes the current value per share based on market data."}},"version":1}},"settings":{"remappings":["@chainlink/=lib/chainlink/","@ensdomains/=lib/v4-core/node_modules/@ensdomains/","@httpz-contracts/=lib/httpz-contracts/contracts/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@uniswap/universal-router/=lib/universal-router.git/","@uniswap/v2-core/=lib/v2-core/","@uniswap/v3-core/=lib/v3-core/","@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/","@uniswap/v4-core/=lib/v4-core/","@uniswap/v4-periphery/=lib/v4-periphery/","chainlink/=lib/chainlink/","ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","eth-gas-reporter/=node_modules/eth-gas-reporter/","fhevm-contracts/=node_modules/fhevm-contracts/","fhevm-core-contracts/=node_modules/fhevm-core-contracts/","fhevm/=node_modules/fhevm/","forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","httpz-contracts/=lib/httpz-contracts/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","permit2/=lib/permit2/","solmate/=lib/permit2/lib/solmate/","universal-router.git/=lib/universal-router.git/","v2-core/=lib/v2-core/contracts/","v3-core/=lib/v3-core/","v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/","v4-core/=lib/v4-core/src/","v4-periphery/=lib/v4-periphery/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/ConfidentialIndexFund.sol":"ConfidentialIndexFund"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/ConfidentialIndexFund.sol":{"keccak256":"0xac792e087c3600604af05e0abfa3db9fef4e71daf884885606115c672efcc5b7","urls":["bzz-raw://9454f480f9154f76c365622aa59a1fd9ea36a9b409df31bf13fe6d35e63f64d3","dweb:/ipfs/QmYz5knj2ptBvsdocjk7it2qiv968uytuVmBeHDsvz13xe"],"license":"MIT"},"contracts/ERC20Encryption/ConfidentialERC20Base.sol":{"keccak256":"0xa622900eae5b1f80c956ec16afec6e4ef6af141d7973b6d52167a86ae988272c","urls":["bzz-raw://45dcc2e65f2b601bf132eaae21b1ed2e5dd67c9644e6edcf856ea3274444b04e","dweb:/ipfs/QmR4XvcnxE3JBfPNpLcyvPssdBqtMTd76gm6BWczaSMi9D"],"license":"MIT"},"contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol":{"keccak256":"0x6f947e91a3369017e4d0147ac44ea39c6f8ffa4a5307d8339481f4e88355a62d","urls":["bzz-raw://27794b1340f9299d7be061aacde65075fca40a1d722e8c5181cee22f257eeb25","dweb:/ipfs/QmT3DReokqZhMtDcEDpkTgf1zG5cZELzPEZDjrqpfEXjWC"],"license":"BSD-3-Clause-Clear"},"contracts/ERC20Encryption/ConfidentialERC20WithErrorsWrapped.sol":{"keccak256":"0x6780cf12626fab34cbe430892929cb2827f948ed6fb613dfb55dda036ced8697","urls":["bzz-raw://dc3c67659beeff5d21d110cd711c731a52a88293bf120b582f72f2fe4da7bf2d","dweb:/ipfs/QmNbQ9EehknmU6Fui2QpnTSTj7Ft9sbWc95nz3x62fe2Jh"],"license":"MIT"},"contracts/ERC20Encryption/CustomConfidentialERC20WithErrors.sol":{"keccak256":"0x48800ae20f96fc6ff85e8428faf7c314eceefa7a1349fc3f42479ba82d658431","urls":["bzz-raw://6ab1d91f86b98bcf65f7af820157a9d7cd923f51e60df7897c1e9858f3e3a433","dweb:/ipfs/QmUt2mtzHAHDp2bvkSiXpZdM9okz4mJKFTHjU2YwPjxvxd"],"license":"BSD-3-Clause-Clear"},"contracts/ERC20Encryption/CustomConfidentialERC20Wrapped.sol":{"keccak256":"0xe3f6e6a47070a54952ac2dd5e008c7997322a16e72f4114a2ec48f45e3bc8cea","urls":["bzz-raw://8b47026e8a91b2a0212d621e0b2a8452e7402636f7fbbfe857d8cb6809b9310d","dweb:/ipfs/QmPYT4Q68jt5Yac6x2tdWHrDcBnjLdkY5JqPnLcCpswQxo"],"license":"BSD-3-Clause-Clear"},"contracts/IndexFundFactory.sol":{"keccak256":"0xac7c7b569f43f6d43dc939fc92cdb0067fe040b9c2defce170ab50e2e9634c7b","urls":["bzz-raw://414818a35254065d728f62d25c432da2c0d027cfa8731e1a74acb9f82b6521b3","dweb:/ipfs/QmPpiFCykJKzoGcW69GXekSkDxN6pfUKaT2jnHZnufKkni"],"license":"MIT"},"contracts/IndexFundToken.sol":{"keccak256":"0x6d1e6a25f9d42b8d6a080a35f7a3b5349abae3f4a30c136f907cc52778a0fe27","urls":["bzz-raw://1d81c68b7233cba175382a539bfbcfaf92b06197add787b3b429ec98c65c4669","dweb:/ipfs/QmYEwXLUeBFNnK8ZZxYo3pVJe7hZrEMitxbGyrrotbU4yt"],"license":"BSD-3-Clause-Clear"},"contracts/interfaces/IIndexFund.sol":{"keccak256":"0xd9ef0b82a5fbc651233fa570e20487052da9bc9e608d7fec5c54c3259b64b0db","urls":["bzz-raw://2fa0a193b577c89a809b110a6a770068cf8e7c86807d1022b10a44304ada1f90","dweb:/ipfs/QmewwyiHG7fnHucV1zLT5iYLzNiV4ryaBMqMoPmPRgD6WW"],"license":"BSD-3-Clause-Clear"},"contracts/interfaces/IIndexFundFactory.sol":{"keccak256":"0xdaee28098d25d209508346539130902d9e08f32b24aa18fe915c50a829dd62ac","urls":["bzz-raw://1c6a9ccf80750ad63e7a5cdff241d17130ab3e66e41e6647b10504abbf37fb76","dweb:/ipfs/QmRFJFDzeATHcLQCU6yXxVDThzm2xRZaGDZXFaCZK4aVs8"],"license":"BSD-3-Clause-Clear"},"contracts/interfaces/IMarketDataFetcher.sol":{"keccak256":"0xa5343d6d80de89e9e259d51e9fd50444de43f61f6da31c26ad6f49029a47481a","urls":["bzz-raw://e7fb90369df691fd542180e13cc7a881b46ef86dc1fdac4622d19cb292059112","dweb:/ipfs/QmUnvC7eyCdg83tARSBSoEDPKjZHJZ4mKFWdPwSycki3KL"],"license":"BSD-3-Clause-Clear"},"contracts/interfaces/ISwapsManager.sol":{"keccak256":"0xa98bd09c0946399a4f4ae05e713b3207593528df54e8695a4aa4db885b47e894","urls":["bzz-raw://eca854b1cf38859c81648a4bc824aa8e8e7a6347a3b902ceff0d2eb98cff384d","dweb:/ipfs/QmTFzfKREewMg1xjbuCU5DDPbq8Wi1euCzpE2xJ8RAeJi8"],"license":"BSD-3-Clause-Clear"},"contracts/lib/IndexFundStateManagement.sol":{"keccak256":"0x6d55232bd5d80e0082f0adda3f052e62708e9ca7f18e7c439ed775b3ec7cdc43","urls":["bzz-raw://89733fef5a9b8efdee13a4a91f518503f9ed3e7449e3debf4ba864f363d0fb21","dweb:/ipfs/QmQ8yyTYoLymoERKzmb6iK6K1ehcpuo4ZbbjQyX5M1t3j1"],"license":"MIT"},"contracts/marketData/MarketDataFetcher.sol":{"keccak256":"0x982be5c64a69b4e8bac986e1c18affd3686ec1a6dcff4b515c5918b924508997","urls":["bzz-raw://bf5b5e27288f2a9fa156ecfec63fa84eb13a2b66cf84b17bb26097cd69bc7b7f","dweb:/ipfs/QmW4NcWKfwuyRadWvYe6vB3xyw5pHKLtoNSbjaBG2j13NN"],"license":"MIT"},"contracts/swaps/SwapsManager.sol":{"keccak256":"0x3d4d9b33ac2e97bafbe46a47fba285246649b3b75473b809706de58bba6abcf5","urls":["bzz-raw://37ce21e2eca2ebcc4b971680a20cf20d2b6cc929c45b0dc5b5746dc705d77b40","dweb:/ipfs/QmUfrJ5Pzjh8bpM1uCtECD9dHS8jBMrG4T68ufMccXeQvs"],"license":"MIT"},"lib/chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol":{"keccak256":"0x257a8d28fa83d3d942547c8e129ef465e4b5f3f31171e7be4739a4c98da6b4f0","urls":["bzz-raw://6d39e11b1dc7b9b8ccdabbc9be442ab7cda4a81c748f57e316dcb1bcb4a28bf9","dweb:/ipfs/QmaG6vz6W6iEUBsbHSBob5mdcitYxWjoygxREHpsJHfWrS"],"license":"MIT"},"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol":{"keccak256":"0x8b45e5bb2fd9212f99e61b4d25b9c9d5ed7cb1a9a684aac34f752c568ef16c76","urls":["bzz-raw://1ca71bb5bfbb2f8a0779f8394baeea01680619637abddb572017d05d96862591","dweb:/ipfs/QmPCzGBE1m6WtDZxrVL5jzkduNaS7fjtYovUWdnzN34qjh"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20Wrapped.sol":{"keccak256":"0x7e178a03b7f034532497a8b762069fff0808277befc880e4a3236938ba1380a7","urls":["bzz-raw://7250476c961801e579719fd0201a3ff6bfdc79e8324db34d5ec0c6cecc281281","dweb:/ipfs/QmNsTR2Rk2FRS3cTNf7WeN3UzPZy6HSj1SFV3Nuwz8Rpzi"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol":{"keccak256":"0xe016a085f72ca3cf6d78ec1cb2182a398106cb7d425e984776a9caab0bad2569","urls":["bzz-raw://3e79dc5075469d660908f5f8b6d0c863b14459d60a0b06fb786d58de8cf30a94","dweb:/ipfs/QmePGRGtoWBnQ8T6ZRyZgiwVh4r67kcmWejwKgjyYN4AAY"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20Wrapped.sol":{"keccak256":"0x72c5379fb2a7e1701a4686f60831bfc474350a42f0660aea815a5ce910cba38b","urls":["bzz-raw://118fac79c89e142247e94763a1ca1235c307a67b37d68fa45d94125bc85c2cb8","dweb:/ipfs/QmcE9P74NQQKnmW9vdtGb8KrWgJWH6K3bNTdrMxrPi716c"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol":{"keccak256":"0xfe322c8f9a8e4fba881715901a5bafd2efa23394ecbc9ec84282818baeff0a07","urls":["bzz-raw://13dba831528dd16408b7abab23eac0664a2a3e5ecbfe5e58e6e321cf2921668a","dweb:/ipfs/QmPq4YeugbayWfeBJR8H7s4jHsnZkACQX2xbdNQ4sdvZrk"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol":{"keccak256":"0xecc6289a9791bef254911393b51d2bfbddc5650ede7fbe7b5cc2b8d3eb01d7a6","urls":["bzz-raw://7463278a20bc5d7fd8b7ec2cb8e592b2d1e0afcf8b59d35d6929d18661d4b38c","dweb:/ipfs/QmTKPoABwNDmK7g7vkti1AkTpkUBHu3iX3zsXQsEuSiqBM"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/utils/EncryptedErrors.sol":{"keccak256":"0x0b8d08f392884add1af672018359e8980ee0b5e1662fe5e36eb31f053d1d4505","urls":["bzz-raw://2903dd49a88b36aba2e8a45548b6a68d203887356ebdf452b10e0148954ba1a5","dweb:/ipfs/QmTRuP4QXagoV2cLr2ctzFtNK7FK1cDXMYm4feMoMsYoWG"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/utils/TFHEErrors.sol":{"keccak256":"0x5fef7c2d7d4449d724a2800b37dfcc61e2b635f2747378ce222b9187425f2d13","urls":["bzz-raw://7c2ef113faaec2d74c8d958f80687d0b676082d6231720917aaa8aa934d689a3","dweb:/ipfs/QmNn474JDQ5zvVDwEuicJs6Xq8YEXWGZLoW4KeTWDVG31f"],"license":"BSD-3-Clause-Clear"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xd861907d1168dcaec2a7846edbaed12feb8bad2d6781dba987be01374f90b495","urls":["bzz-raw://12ff809243040419e2fc2aa7ef0aaa60b3e6ebc901553ba1de970ceeef208c4c","dweb:/ipfs/QmX2dwMVNrQAahqVzEx94gqcVB6Z8ovifPYdEfHZzj7aEb"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308","urls":["bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80","dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606","urls":["bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1","dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol":{"keccak256":"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c","urls":["bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0","dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x8decfa54cec979c824b044b8128cd91d713f72c71fd7dfa54974624d8c949898","urls":["bzz-raw://271f914261a19d87117a777e0924ada545c16191ef9b00cc40b0134fc14ebc70","dweb:/ipfs/QmdvVNWHGHQrGGPonZJs5NuzTevTjZRM2zayKrDJf7WBA2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x6ef9389a2c07bc40d8a7ba48914724ab2c108fac391ce12314f01321813e6368","urls":["bzz-raw://b7a5cb39b1e6df68f4dd9a5e76e853d745a74ffb3dfd7df4ae4d2ace6992a171","dweb:/ipfs/QmPbzKR19rdM8X3PLQjsmHRepUKhvoZnedSR63XyGtXZib"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330","urls":["bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf","dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x4ea01544758fd2c7045961904686bfe232d2220a04ecaa2d6b08dac17827febf","urls":["bzz-raw://fabe6bef5167ae741dd8c22d7f81d3f9120bd61b290762a2e8f176712567d329","dweb:/ipfs/QmSnEitJ6xmf1SSAUeZozD7Gx7h8bNnX3a1ZBzqeivsvVg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de","urls":["bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff","dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xaaa1d17c1129b127a4a401db2fbd72960e2671474be3d08cae71ccdc42f7624c","urls":["bzz-raw://cb2f27cd3952aa667e198fba0d9b7bcec52fbb12c16f013c25fe6fb52b29cc0e","dweb:/ipfs/QmeuohBFoeyDPZA9JNCTEDz3VBfBD4EABWuWXVhHAuEpKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3","urls":["bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a","dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol":{"keccak256":"0x534bf5c25d6003a8ce50b400d20fa460c03169ad7baa90d47a912917c36dfe2b","urls":["bzz-raw://cc0cc39c40ea23d3c46e8517e19ebdd877719d3159fa032f2a91802cdd205c79","dweb:/ipfs/QmSoNh7HTkD4TJcBkBKSGSPMMpLUZKE7s9f2G6mjdaJywg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x44f87e91783e88415bde66f1a63f6c7f0076f2d511548820407d5c95643ac56c","urls":["bzz-raw://13a51bc2b23827744dcf5bad10c69e72528cf015a6fe48c93632cdb2c0eb1251","dweb:/ipfs/QmZwPA47Yqgje1qtkdEFEja8ntTahMStYzKf5q3JRnaR7d"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1","urls":["bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889","dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/permit2/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0xcdfd8db76b2a3415620e4d18cc5545f3d50de792dbf2c3dd5adb40cbe6f94b10","urls":["bzz-raw://57b3ab70cde374af1cf2c9888636e8de6cf660f087b1c9abd805e9271e19fa35","dweb:/ipfs/QmNrLDBAHYFjpjSd12jerm1AdBkDqEYUUaXgnT854BUZ97"],"license":"AGPL-3.0-only"},"lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol":{"keccak256":"0xbadf3d708cf532b12f75f78a1d423135954b63774a6d4ba15914a551d348db8a","urls":["bzz-raw://88ac8256bd520d1b8e6f9c4ac9e8777bffdc4a6c8afb1a848f596665779a55b4","dweb:/ipfs/QmXx7X1dxe6f5VM91vgQ5BA4r2eF97GWDcQDrgHytcvfjU"],"license":"AGPL-3.0-only"},"lib/permit2/src/interfaces/IAllowanceTransfer.sol":{"keccak256":"0x37f0ac203b6ef605c9533e1a739477e8e9dcea90710b40e645a367f8a21ace29","urls":["bzz-raw://e0104d72aeaec1cd66cc232e7de7b7ead08608efcc179491b8a66387614670b0","dweb:/ipfs/QmfAZDyuNC9FXXbnJUwqHNwmAK6uRrXxtWEytLsxjskPsN"],"license":"MIT"},"lib/permit2/src/interfaces/IEIP712.sol":{"keccak256":"0xfdccf2b9639070803cd0e4198427fb0df3cc452ca59bd3b8a0d957a9a4254138","urls":["bzz-raw://f7c936ac42ce89e827db905a1544397f8bdf46db34cdb6aa1b90dea42fdb4c72","dweb:/ipfs/QmVgurxo1N31qZqkPBirw9Z7S9tLYmv6jSwQp8R8ur2cBk"],"license":"MIT"},"lib/permit2/src/interfaces/IPermit2.sol":{"keccak256":"0xaa631cc9f53e699301d94233007110a345e6779011def484e8dd97b8fe0af771","urls":["bzz-raw://fc0502cf19c9c18f320a3001201e89e350393b75837f6b7971de18b2de06f30d","dweb:/ipfs/QmT9SfhdJ7VJNNrf94g4H5usyi7ShqWGx7Cqsz9jZTjX96"],"license":"MIT"},"lib/permit2/src/interfaces/ISignatureTransfer.sol":{"keccak256":"0xe6df9966f8841dc3958ee86169c89de97e7f614c81c28b9dc947b12d732df64e","urls":["bzz-raw://3d4eafdee7f48c3be8350a94eb6edd0bfb2af2c105df65787a77174f356c0317","dweb:/ipfs/QmY1j2adeeAhNpn6cUuthemxGCdLXHTfyMh9yTKsY4mZ2d"],"license":"MIT"},"lib/permit2/src/libraries/SafeCast160.sol":{"keccak256":"0x8a34e2beac108d74f89510c949983212b5f09307a93ee9e17a9d50e93f6bc8e9","urls":["bzz-raw://828697f9567ce617c5c1c8f76b6bcd250e93aea2c4f3ee188be6dff8443c19e7","dweb:/ipfs/QmafxeSPhUc9gGtNDLAw26oZooC5XNLhDMxHxYhJxL5Nwi"],"license":"MIT"},"lib/universal-router.git/contracts/UniversalRouter.sol":{"keccak256":"0x5c7515720fa9b429bc83f0044f3a02cdd065fe1773b9fd32151dc5ff9042d368","urls":["bzz-raw://dd77517f3a73a07fdff8f3a52c268afca749a678ea11442140d401eb102f4404","dweb:/ipfs/QmeJiwCtgF1rMB7Foi6PrqWEaXktztPGQfHoAsw1BRhLU3"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/base/Dispatcher.sol":{"keccak256":"0x1564339a5163c5d27f06a64f994a7457b061aa0f5046377bcc5078cd6907cc5d","urls":["bzz-raw://82dc3ed71c19d6e5d1f72304e62e360954fc40a4d92a2a94e862c5474490d58d","dweb:/ipfs/QmcNamJcGijcEetbHWVJHNjSE2WCyQsmEGEGDg9ZNwqSjR"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/base/Lock.sol":{"keccak256":"0x92f953dda0d671178d054eeb3915b70f8ba80be33df8670a9146af4a4bc2c6ac","urls":["bzz-raw://f73faac9532c8a8870d31bcef68a0dde387579d7b755c342b3352a54a4b63682","dweb:/ipfs/QmXLvJb6vxfrUG84ASLhEf7tL62MN3oxkp7aXUxemrZTy3"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/interfaces/IUniversalRouter.sol":{"keccak256":"0x2525b52d1edf5df89bfd093c5b933b9e8f65236f44f58096763a6c87a5cafb63","urls":["bzz-raw://5cc0fcfedd6b32586099ee0f6781bb81da99175c65013c06bb6f61a125babb18","dweb:/ipfs/QmcEkSzkjkPpp3YyJZaY232TjuNU4Pw6CSiTWz7sk2Sq5D"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/libraries/Commands.sol":{"keccak256":"0xa08ae7be62972a4f17779257641065d41fa5cc2d5fc7050e5e5b76fbda9e6a9f","urls":["bzz-raw://0b94d73c5cd54aba5e1ad4ccfc33df13c1b04417f53fda188275fc15f95f02f2","dweb:/ipfs/QmNpigDf9g9AAbFr27gug5hAZjb6iuFekRqXonC6upoEcp"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/libraries/Constants.sol":{"keccak256":"0xb668498f11a4bb576a0a61c183da7ca348249dd9176c57dcb6532912b1b49b0e","urls":["bzz-raw://87d8588baf0b7b72faec637843c7623ac416d45e0f7719d0a635afe7981b2cf2","dweb:/ipfs/QmSu7Jr8JM6mab2dddk1UaiPhyLZvsA8iLxC9MEcBUaMzT"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/libraries/Locker.sol":{"keccak256":"0xfccb45f77b5c66f0f417d803b4b3f7ae97206d8d850a383ab7d97f25d0617cc0","urls":["bzz-raw://b47f3f4e74961f8e9d918c2cc3514cb8d097caee6ab2c20c10735235dec440ec","dweb:/ipfs/QmfTWUjP7g7zTw67C2RvoMhWRX6ExLNV3UYSb5LqfE4bqC"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/libraries/MaxInputAmount.sol":{"keccak256":"0x2dd6efbcaf9991c852e29a726f9876a0a6d08f2271912e69efa5c6a5e8034739","urls":["bzz-raw://949ebd746eee3589d1e466c738884bd3532043d9e8a7b77c1521a098ba3c69b6","dweb:/ipfs/QmZC9idgGQDfLksqfz41FrcsVXhqkfRZCZH9MJXQkQavt6"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/MigratorImmutables.sol":{"keccak256":"0x666d1622a10509c69b679df9d175a3e0c176a62b9e18d1cee7634219aded8f68","urls":["bzz-raw://a88e472495d32648ba3e7964c4c88b68853b49540f40afbaf2ede6822372b49f","dweb:/ipfs/QmQoaWbCpwFYCnRgehM7ruYaa7za8fBghT5aQCRCPYJr1V"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/Payments.sol":{"keccak256":"0x19a103b3269ee2f7bc28a6e1850091b2087dd2558662494d1104ac8e5ac68524","urls":["bzz-raw://ba64c600f57bb13672a5549b6dba11ae4dfe49f688c24eadb3289dcc87d226a8","dweb:/ipfs/QmWkmVyeai1WeymuWqEk1fQE5R2frrQQjJv81cytrKvFuA"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/PaymentsImmutables.sol":{"keccak256":"0x9ca2535b69b15d3bdb7a15871c5bca83f5536cffb0191c64f4c6a2db4a154338","urls":["bzz-raw://dc85fb3ddd19481bf0d1a8a9f5d9631b396d86344a33e30b4c4ab6cd58d51169","dweb:/ipfs/QmeEGFqfHFUo1Mu6tRfCjvVGJYyoDu29ZspZgxxcj6ykvq"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/Permit2Payments.sol":{"keccak256":"0x887ec1f57144cd91a1b86d5a7b1d1119146f41dae6865e6fd0e849801e968628","urls":["bzz-raw://08b713e82f3f192976902497e1c02dd60bf7e90c83a471eb4c7ac7710b086f95","dweb:/ipfs/QmWJSGZ9Dj7FmFCnDWpDdL5fx76JYDgYWhggXCroxV7cjX"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/V3ToV4Migrator.sol":{"keccak256":"0x5ee3774b749b9a8d851dc6074c8de8c61f408a4cfd829c47c753840c839ba91c","urls":["bzz-raw://337e17b84f4fdad7e32be0e482e7b2471d7f927ba3b3174cae38cf2509d97443","dweb:/ipfs/QmbzgdyxAC5vpvWRGaemn3Qn7DRbNDjHSH3KbHSDPwJ8LY"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/UniswapImmutables.sol":{"keccak256":"0xb810727f5e734a30871ff1d83d8c96d99150f1ce77bb39e032aec6254ca43cd0","urls":["bzz-raw://5eb9df8b6c81f8e33b8a6bace294ed0d81c541988f7ba42027e3041eff32e1bd","dweb:/ipfs/QmVPSWBv7WegGySGV4BoewKKx7iAetHsjydxQyKk3dh5yw"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v2/UniswapV2Library.sol":{"keccak256":"0x829d48c1b69d2e1bc078a57aae8d87dc31d920b01c62d6268d20d517fd24150c","urls":["bzz-raw://b87236ea4c1e64c12434f31abbd658ca3fc510ebe65be731d84d3ce8efa71c32","dweb:/ipfs/QmUerjg5Ebt3pfQZtk2sArUy414gQtHwvFNgsQNe4PhxbN"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v2/V2SwapRouter.sol":{"keccak256":"0x0fcb6ad6c4d5a7b25054dd9951432b2b41cb2c0077e6bc7ca0d0416115ef2326","urls":["bzz-raw://124b1dd54d27914306bdd1021e171111f0ae622fffb2974ccdee24eab31b359d","dweb:/ipfs/QmfKr2sbxdc31aPWv9d6ETA4GyfqHiKVZRKqhREnMkR5j9"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v3/BytesLib.sol":{"keccak256":"0xc3c23e83afd06781c4a0a5c418c20c40611e71d049766eb70987007ce372656e","urls":["bzz-raw://c62989beb75edad6de18c31be31eb68f0c3fb15c5f9e9bb380221afc6785fda5","dweb:/ipfs/QmVEsp5yivbmjP7HcXS5kJ1XJY5Uic3J3y4zjpwD1SNySD"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v3/V3Path.sol":{"keccak256":"0xf6abbf4c7cd0975ddabb0ddb641ea9ae3b0cc1dd9a1cabf5e7cc271a974eabc2","urls":["bzz-raw://1e0987fc9b81c65eada64cb65f981680c2054e489a6049d397b5ecbbf4c9a0a9","dweb:/ipfs/QmW7mbbHsfc2GLy2GkCUv3VwXV93y6UFtKDD7E9QEtzFH7"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v3/V3SwapRouter.sol":{"keccak256":"0x31fe8777a6de583c54a0f09ec11d318c253b7fe50c7a2af1608b2b89a03ca660","urls":["bzz-raw://780219ff0d6d333727655719d31d61ce345cdbca7f906467a2d00e3162b3c0aa","dweb:/ipfs/QmbauA5Kvj7m9P9hxe4hhnLY5w2TEXMMnCc9oWehVgj2jo"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v4/V4SwapRouter.sol":{"keccak256":"0x68b7666641ad5ba227b500c9845c4bc71eaaac6556d97d31d123fce41b51969a","urls":["bzz-raw://40a99bb5e9e407ad6741f5c210ac23a32950e7567c73f21975444e9729fc6cfb","dweb:/ipfs/QmUK98HjyQ7NDGR36DD9owjLDk7ujEj5b5uKt9zjUsCFG5"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/types/RouterParameters.sol":{"keccak256":"0x9efe9912d44e56cff8fc23e1411c80b47ffc9f5c0ad5ca5c66ab77a1b7ddfcbf","urls":["bzz-raw://473acf49dc1be1ca997ad20258124e26e03b3cef15412a8827ecf9b52e4cef21","dweb:/ipfs/QmaGR2QL6im4XYJpubqhUuP82nFytemX7wwEk4cXECJYJN"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IERC721Permit.sol":{"keccak256":"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4","urls":["bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471","dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL"],"license":"GPL-2.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol":{"keccak256":"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984","urls":["bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56","dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW"],"license":"GPL-2.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol":{"keccak256":"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d","urls":["bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f","dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127"],"license":"GPL-2.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryPayments.sol":{"keccak256":"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274","urls":["bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407","dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp"],"license":"GPL-2.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPoolInitializer.sol":{"keccak256":"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862","urls":["bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f","dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu"],"license":"GPL-2.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/libraries/PoolAddress.sol":{"keccak256":"0xa72de315bd655a0fd5043ff97c7fd3868a1b5b1986afd75c6f5f8fd0f904985f","urls":["bzz-raw://a8838e68aba9caf2b2cb13bd4cb661b1f9c167cca4dfcd50ac72ae96691392df","dweb:/ipfs/QmfLq3cmsSQTuLLxiF4bgceaf2jx8CoiVXQd7BZXGgJG1E"],"license":"GPL-2.0-or-later"},"lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol":{"keccak256":"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b","urls":["bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf","dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH"],"license":null},"lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol":{"keccak256":"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1","urls":["bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5","dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol":{"keccak256":"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69","urls":["bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652","dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol":{"keccak256":"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634","urls":["bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5","dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol":{"keccak256":"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5","urls":["bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7","dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol":{"keccak256":"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd","urls":["bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03","dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol":{"keccak256":"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7","urls":["bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047","dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol":{"keccak256":"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235","urls":["bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735","dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol":{"keccak256":"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f","urls":["bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f","dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/libraries/SafeCast.sol":{"keccak256":"0x4c12bf820c0b011f5490a209960ca34dd8af34660ef9e01de0438393d15e3fd8","urls":["bzz-raw://fed11489e218e55d087d42b4f350a30e10cd2aedec8f432bd3cc712f648d5869","dweb:/ipfs/QmWfRnRxyXwHUDcTQPazxYYk5jxErGeQqdvnYtyg5nBPbU"],"license":"GPL-2.0-or-later"},"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":"0x4c9571aed0c2b6ef11832545554fc11ffdb03746daaf5c73683c00600bfc7ec0","urls":["bzz-raw://e78b34b58ce9de91b91943b4f3cc3ce121d0b151e123e8a600ac5ef64d91db6c","dweb:/ipfs/QmRkaQnPCYwLrXgbpGujJTx32PaZK63KSPJJV1XmnQuCMb"],"license":"MIT"},"lib/v4-core/src/interfaces/IPoolManager.sol":{"keccak256":"0x3534f00531038e77ab8a7fc4d0a6e0993ee53fb7a396b1324ad917318ea46cea","urls":["bzz-raw://0a4a7e771828dc40848485b568a1cf514f553ace6653f4f4d1ad3f3e9cdb6c27","dweb:/ipfs/QmTjzQ7KVYnrEWtxPER2E4MXzycgcznfzSDsZtd5turk5V"],"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/CurrencyReserves.sol":{"keccak256":"0x1576616129933fcdf3b684cea33cffd9c95e18fafbd2832a8c48ac3d8526d4c3","urls":["bzz-raw://33b050efb9b81803b18f562271e7cca2ec5362c4d505860d6419b4a345636725","dweb:/ipfs/QmQtFtTwKZ5pFVGD2ENDUXvp7ECFvzqeCuJ1miJcUHdmiX"],"license":"BUSL-1.1"},"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/Lock.sol":{"keccak256":"0x9338be4b5695f1da5f3d3f7a3eeaf7a356c1045458289586ac0cbe9cef77c6d5","urls":["bzz-raw://485ec42ed6155469d612a9a0c18068ebfbad74448792a338a435503de3ef1b2c","dweb:/ipfs/QmVnnv5u74MYatfRmBgrcfFYQcsMAJMG9jQ6ju8UiydKNF"],"license":"BUSL-1.1"},"lib/v4-core/src/libraries/NonzeroDeltaCount.sol":{"keccak256":"0x0666ebd5d3528d7d52c48538296367a4cff97a578cf13365c51983fae3219b87","urls":["bzz-raw://d27f1be3bd09d85c53d3e6a539dd6529ddd8b2b764ccb47fd7765fc81f9add59","dweb:/ipfs/QmQdZujNXhKEXQBkKtF5jbdvo1yXMqPDUoBBaF9S5u3Kpm"],"license":"BUSL-1.1"},"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/libraries/TransientStateLibrary.sol":{"keccak256":"0x7d1e0875747bd89b32c25f1a48da2766e5f4aff1f671ad5f3c0c07ebbbcb946a","urls":["bzz-raw://d76cfeb1cb60595b41ecc51c8a12fb4bf63a7fc733d0b1a2e3adb55abeb1f9d5","dweb:/ipfs/Qmb8oX7DtsRpw3tTtdWZwGhauj1evq43d3PLwe4nSDAKkV"],"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-periphery/src/V4Router.sol":{"keccak256":"0x8ede1e538ae9b74984c52347a3bbaee7b3d69f00ed9b3a6db1f1bd6e058a2326","urls":["bzz-raw://8e370416fa9681ad124414e2b2fb57a5455e15dd873c9e61c964177ae5c2d544","dweb:/ipfs/QmWrM97ezNB9CpawqhkwpubXHcXUbMFWKYEbD3D6EyAe1w"],"license":"MIT"},"lib/v4-periphery/src/base/BaseActionsRouter.sol":{"keccak256":"0xca1ee500f88951ad351d18ba2adfb5fe23abef6d502f234ce5748a3497674a4c","urls":["bzz-raw://1f03ab458be27c29cef1b7ace5b11517d3fef8bf6131af7dd80d6297c224cf71","dweb:/ipfs/QmYoH6o8yeRzbeLoaMG9TjS8q2Fw7T1h4vXvvMnp3XfsUa"],"license":"MIT"},"lib/v4-periphery/src/base/DeltaResolver.sol":{"keccak256":"0x94a2da2be5c924df65a8e1e29f585bbe4c37777fedd43b45989c66d509a4a83c","urls":["bzz-raw://42bba590f6e817fd56328b74ae99bfdc4df57386d0a69ee22b9108341953ed36","dweb:/ipfs/QmdusastK7FWYouLz9gvV5J3z8MQbNKLJNNHTrc1vi7DWw"],"license":"MIT"},"lib/v4-periphery/src/base/ImmutableState.sol":{"keccak256":"0x1867c9fa2f9b4fa73bab0fcdc9d19ccef4eeac552273d8b84a170cd1cc90350a","urls":["bzz-raw://af2d699b439e13b599632fddfe82718aebd41055fba7c075f186675c588d1337","dweb:/ipfs/Qmc111gckSKb9aESn3wRFLeLiS4KGujaUcaYJgRnCRfwQU"],"license":"MIT"},"lib/v4-periphery/src/base/SafeCallback.sol":{"keccak256":"0xd78b583df1b9ee06d58e83b84fc9f08971389b34dd34bc13db072e0c13c710da","urls":["bzz-raw://c0a47f4bcd6060c4462153b9a7c52a60a460ace91acb6ddd5492eab28ec26173","dweb:/ipfs/QmdRCTRS1dhFjWEy6z577j4xz9J5HPfHBwcNzAic8G59oT"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IEIP712_v4.sol":{"keccak256":"0xd7f7115476e307a0bfc32a0f0a0f5434e9e5ca62a6c5af1e18b75e48161bb408","urls":["bzz-raw://b1600b953556da38a7adc5ad2a2925ec5fb138fecf8eec48743646543195b736","dweb:/ipfs/QmarZi2aiLVAfHXgnDWV1cCFiZk2DdPW7KJnWHqzuRChJR"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IERC721Permit_v4.sol":{"keccak256":"0x103adbba724ef536abc536fe8a4d7dc12880724c562109b69f2adce4a91fa017","urls":["bzz-raw://06f51b5a5a218e0bc866a83e7821be53c9db9de0ca921f16abd3d13ea0eab69d","dweb:/ipfs/QmbnhLy992hpQZyphTkj7fpr6jKKVva2AzfmLiDZEuqHAk"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IImmutableState.sol":{"keccak256":"0x36ab3100e87457ecf04887f4f540e34fd7f21d8e3b83880cb679239e60b7b06b","urls":["bzz-raw://7f290c7ce8e4832608d637a51b13dff95abecf6549485448e647a11c8ed01341","dweb:/ipfs/QmfD1R6mTp8j4EjQXmQZW3vCh11EYFjnvoaw8rXRP27mMq"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IMulticall_v4.sol":{"keccak256":"0x336bec303f7ff86497d2679464c5adad5040f412b3d0769ce5e1d2a42f7e2c08","urls":["bzz-raw://7734f047d98d331c8abc51ad9f358ceee0a6dcae8d89ac49084b84de0d2d42e7","dweb:/ipfs/QmWij2h7mU36LsXhb9P6pkYXrSCua4ixeWaVFSrsEcEmPQ"],"license":"MIT"},"lib/v4-periphery/src/interfaces/INotifier.sol":{"keccak256":"0xfdc5187a98240a1691aae98b7dd2444d4c2bfb4746f3c34de9f3d18399c17c5e","urls":["bzz-raw://683af56401ec4f8817e8dfe150e7b3febaf0baaf40efe8d0d0475f735275f746","dweb:/ipfs/QmRQ6S3nFnSc2jjDcQTvUJdTf4xKPojmvCkpvgyr6qTuVV"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IPermit2Forwarder.sol":{"keccak256":"0xfad472937280e861125ff12aa6f9c2cf7440fbb20a2cc29485c24662ad4279c5","urls":["bzz-raw://31bfbc331f5972fc373d9469fd1ca1d14818db3275f21b7b590f20820cb4439d","dweb:/ipfs/QmX3Bv9wfYpAFZKBcxKsQSXUrSC8mqNBdzh6XVMS72aNx9"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IPoolInitializer_v4.sol":{"keccak256":"0x2e4feda94650a2642039e0309ffdec480ee050bc40864bf5e1dba42bb4dc9e98","urls":["bzz-raw://964c178b4da8bab9ef898b94bb26d7c17cc44c5cf20485f55dcf5e9c7e1b1d92","dweb:/ipfs/QmVd2c3SYteyr5xZgUS4sDAiZF43dLwVAEKdCfvQbkZpRJ"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IPositionManager.sol":{"keccak256":"0x62dfa0cbee8314ee7e6787db8bc1d364245c340f940875ac7ff11e89d074fc7e","urls":["bzz-raw://26f560c77d8a187bf93a710b827e3167eab3446922192fa8f92f208da2103834","dweb:/ipfs/Qmbzp5gSYdTpMBF9aAb2GraxMEQZb5LRJCyg8VaRUyjTFc"],"license":"MIT"},"lib/v4-periphery/src/interfaces/ISubscriber.sol":{"keccak256":"0x34ceadec4a63019680e543fe73197f198a55c825d86e18f327840354760b57e7","urls":["bzz-raw://31734feafe1fe162a0702ddf862fcc3bd97505931afb3c685033c0185d898051","dweb:/ipfs/QmQEANYVyaXTNzXKcjUVfPhLU71Bix5vxQH75BpPWMkWgw"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IUnorderedNonce.sol":{"keccak256":"0xd7f32fee74dc7d1a3b078ca1263961baccaa6bf434c79e8fe0e092e30c3e0ec3","urls":["bzz-raw://e7d1e92d89d5f49c84aa82f3b259678c2c97a4473b22d753ca4411a6b0cec36d","dweb:/ipfs/QmNZoQyminStaAdaLqoDLoWaBU5QWrWjXFjmBm4aFhzL8i"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IV4Router.sol":{"keccak256":"0xc4133fae25e61cc2447d7331729f6035322d7c1fe26b39b225422bf98cc63459","urls":["bzz-raw://3c24ff8428504e973e947a059f96289a66c520cd7f8ef47a3224f9cb6abdaf25","dweb:/ipfs/QmVqxYnngWXXcCiuTC143vTEJrjZK5NXWB92pjvVbuJBQ5"],"license":"MIT"},"lib/v4-periphery/src/interfaces/external/IWETH9.sol":{"keccak256":"0xe88abf12501ac275619aec0687240a07d26968aecbbcdfea88ba8bbd5d6e5e14","urls":["bzz-raw://7097065d4492b4eccb1a73f99af1e5bec45404c6b973b8f5965c4c91403f5f92","dweb:/ipfs/QmZK8oEqmjmTqhBoh3D3fBpyKGkUEFnptY8xwH9xpNjDm2"],"license":"MIT"},"lib/v4-periphery/src/libraries/ActionConstants.sol":{"keccak256":"0x3d6f0e5b4a7b1e60bad93e73dce5db67fb66bebef11c31ed8355014a79aa03b3","urls":["bzz-raw://6dfa42e24b1b5c7f66e75304ab034fbb6768518eb2410ccfff8b3defdd1658f2","dweb:/ipfs/QmQQ7fud9mmv7PEWPAQiNzeZhNkWf28Z6nCHc2e6WJFfa7"],"license":"MIT"},"lib/v4-periphery/src/libraries/Actions.sol":{"keccak256":"0x8efd4b8b289177ee27e557d9d0a5a9f973d66fe1eb1ef8959d316b11987ca830","urls":["bzz-raw://07fe35f194eb99465028f0546359befea574d844da53767d32f22b233c3bcc98","dweb:/ipfs/Qmc19631uFxABTHAbGrDrroexi9GdyxWntaum1v8npPYz5"],"license":"MIT"},"lib/v4-periphery/src/libraries/BipsLibrary.sol":{"keccak256":"0x37ebf99f5d086d9d9f6e7cecbf4d62167f47c63c30248cfcb921e828f0d7a359","urls":["bzz-raw://c4f8e68a66bb6c166d72cdba6ed6fb83a93f713b79c2c572e8058084eb90ab6c","dweb:/ipfs/QmY32FxtSBRf9PJzNUVzXqFY4i2ApTPHTUMpCBGovd2zo3"],"license":"MIT"},"lib/v4-periphery/src/libraries/CalldataDecoder.sol":{"keccak256":"0x26df49e13fb5410fd4db253cca877dfdfb3a1ba03e394d054c0e0514a88a56e5","urls":["bzz-raw://72a0c98c52171708f332f83d517deeb97fdd50ecf28f2510e1866e54593a6ff8","dweb:/ipfs/QmY4LiDUfSKGj86nML7B6a8euiPciUqwYehasAyAVnMCHq"],"license":"MIT"},"lib/v4-periphery/src/libraries/PathKey.sol":{"keccak256":"0xbbd79ffefe045f025263e389539021266fb4d371463aefba405e1ff1d3fcf9bc","urls":["bzz-raw://2d1c47b81a01218be46ee79f0a8837095479b94dc5cfd18abbf2006709f0ea89","dweb:/ipfs/QmRb6CQ13Zp7f3WF5jbZtsF2szhxpPgcuWs9mjwQXxzqtg"],"license":"MIT"},"lib/v4-periphery/src/libraries/PositionInfoLibrary.sol":{"keccak256":"0xc5ddf96bd088bc87ea50a20f907fc932fb28397a42682a301b268a11b7f34078","urls":["bzz-raw://7dfeb4dc747537240f8167243e8066b6f5f08057386fb8bda93f82973fc18ad6","dweb:/ipfs/Qmby9DAAaHj8hjsMUnqY3vjqCHKGAKrT5EULMmeGcjbbGx"],"license":"MIT"},"node_modules/fhevm/config/ZamaFHEVMConfig.sol":{"keccak256":"0x41782f4c707b81399916544fa2e7be94a695fa4ba468542732d29d3e383c0315","urls":["bzz-raw://45a95a55c4bbb3418c2133cba6ed21a9444bb4e38d38b32cc707b7493cece2ca","dweb:/ipfs/QmVU8EKmZgscdM43RgXD4EgbVMhQxBusTmBren3pbn1pUW"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/config/ZamaGatewayConfig.sol":{"keccak256":"0xbed8bc18db61ffeb5ee31f577ab636d8563df27554e0ca66c53534f0bd82ffbd","urls":["bzz-raw://53601967f9e914b25cf91a325b100d5b3cbb9aec92d12443062a51fe5a578b7d","dweb:/ipfs/QmNbviWrrPrx3snoLWqW5GyBnH99tSX3iYXEJ5ezk9XbtL"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/gateway/GatewayCaller.sol":{"keccak256":"0xd19fd7715f0c5b479bf0cd8e3108cc8da7deae2d4fc7fb5ab089ebf2d76a0652","urls":["bzz-raw://6386c509464cefe5a41903ca837da46a21b8042d13ccde656158efc48cd70ea8","dweb:/ipfs/QmUn7C6aZwKmEmKsphBshBezXXGZtLMyfaeZAyuZoRsBWU"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/gateway/lib/Gateway.sol":{"keccak256":"0x9585a649e3001a4b8768ab6e2597b416f680bcc537309cd50b60e023e9791318","urls":["bzz-raw://a1b055bfb067cc247d4bd60b5f8348f667cbe79717a5753cd6412955277345d0","dweb:/ipfs/QmTveBaQg9GUdtrrxcR4RsiyAEmoEKGL4gn6E1gThR1ph5"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/lib/Impl.sol":{"keccak256":"0x89d4968cd956a8931f1a8a177b3bef1c6cf88a03665083db74430add50b88f21","urls":["bzz-raw://aaaef2c82d56dacfb08946842ea1ce26757d13f3251de62fa79222232dfcb43c","dweb:/ipfs/QmQ6QZPxJw9jb3qjRYCX7pMQVoYogjTsYgmdEnB3EnwFRy"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/lib/TFHE.sol":{"keccak256":"0x221799c8332f83ab65a0b71746409f0c2c89f1cd8d9ba4091d967c667e1df734","urls":["bzz-raw://2dba387fbc612a2ee64063b0ee6c27304b3944423d11045acc50abd84577fb5f","dweb:/ipfs/QmThptDGnpd8PuncFk1rnQoCzEqwUED622yC9xZgFhwY59"],"license":"BSD-3-Clause-Clear"}},"version":1},"id":0} \ No newline at end of file diff --git a/out/CustomConfidentialERC20WithErrors.sol/CustomConfidentialERC20WithErrors.json b/out/CustomConfidentialERC20WithErrors.sol/CustomConfidentialERC20WithErrors.json new file mode 100644 index 0000000..a277579 --- /dev/null +++ b/out/CustomConfidentialERC20WithErrors.sol/CustomConfidentialERC20WithErrors.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"euint64"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"euint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"encryptedAmount","type":"bytes32","internalType":"einput"},{"name":"inputProof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"euint64"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"getErrorCodeForTransferId","inputs":[{"name":"transferId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"euint8"}],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"encryptedAmount","type":"bytes32","internalType":"einput"},{"name":"inputProof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"euint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"euint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"encryptedAmount","type":"bytes32","internalType":"einput"},{"name":"inputProof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"placeholder","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"transferId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"ErrorIndexInvalid","inputs":[]},{"type":"error","name":"ErrorIndexIsNull","inputs":[]},{"type":"error","name":"TFHESenderNotAllowed","inputs":[]},{"type":"error","name":"TotalNumberErrorCodesEqualToZero","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,bytes32,bytes)":"b32c1001","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","getErrorCodeForTransferId(uint256)":"a5184baf","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,bytes32,bytes)":"7b7e0a5a","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,bytes32,bytes)":"9a094352","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorIndexInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorIndexIsNull\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TFHESenderNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TotalNumberErrorCodesEqualToZero\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"placeholder\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"transferId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"euint64\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"euint64\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"einput\",\"name\":\"encryptedAmount\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"inputProof\",\"type\":\"bytes\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"euint64\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"transferId\",\"type\":\"uint256\"}],\"name\":\"getErrorCodeForTransferId\",\"outputs\":[{\"internalType\":\"euint8\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"einput\",\"name\":\"encryptedAmount\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"inputProof\",\"type\":\"bytes\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"euint64\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"euint64\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"einput\",\"name\":\"encryptedAmount\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"inputProof\",\"type\":\"bytes\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"params\":{\"owner\":\"Owner address.\",\"placeholder\":\"Placeholder.\",\"spender\":\"Spender address.\"}},\"Transfer(address,address,uint256)\":{\"params\":{\"from\":\"Sender address.\",\"to\":\"Receiver address.\",\"transferId\":\"If the implementation does not support error handling, it must be set to a default placeholder (typically equal to max(uint256). However, it must be set to a transferId if the implementation supports encrypted error handling.\"}}},\"kind\":\"dev\",\"methods\":{\"getErrorCodeForTransferId(uint256)\":{\"params\":{\"transferId\":\"Transfer id. It can be read from the `Transfer` event.\"},\"returns\":{\"_0\":\"errorCode Encrypted error code.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"ErrorIndexInvalid()\":[{\"notice\":\"Returned if the error index is invalid.\"}],\"ErrorIndexIsNull()\":[{\"notice\":\"Returned if the error index is null.\"}],\"TFHESenderNotAllowed()\":[{\"notice\":\"Returned when the `sender` is not allowed to access a value.\"}],\"TotalNumberErrorCodesEqualToZero()\":[{\"notice\":\"Returned if the total number of errors is equal to zero.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"notice\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}.\"},\"Transfer(address,address,uint256)\":{\"notice\":\"Emitted when tokens are moved from one account (`from`) to another (`to`).\"}},\"kind\":\"user\",\"methods\":{\"allowance(address,address)\":{\"notice\":\"See {IConfidentialERC20-allowance}.\"},\"approve(address,bytes32,bytes)\":{\"notice\":\"See {IConfidentialERC20-approve}.\"},\"approve(address,uint256)\":{\"notice\":\"See {IConfidentialERC20-approve}.\"},\"balanceOf(address)\":{\"notice\":\"See {IConfidentialERC20-balanceOf}.\"},\"decimals()\":{\"notice\":\"See {IConfidentialERC20-decimals}.\"},\"getErrorCodeForTransferId(uint256)\":{\"notice\":\"Return the error for a transfer id.\"},\"name()\":{\"notice\":\"See {IConfidentialERC20-name}.\"},\"symbol()\":{\"notice\":\"See {IConfidentialERC20-symbol}.\"},\"totalSupply()\":{\"notice\":\"See {IConfidentialERC20-totalSupply}.\"},\"transfer(address,bytes32,bytes)\":{\"notice\":\"See {IConfidentialERC20-transfer}.\"},\"transfer(address,uint256)\":{\"notice\":\"See {IConfidentialERC20-transfer}.\"},\"transferFrom(address,address,bytes32,bytes)\":{\"notice\":\"See {IConfidentialERC20-transferFrom}.\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"See {IConfidentialERC20-transferFrom}.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ERC20Encryption/CustomConfidentialERC20WithErrors.sol\":\"CustomConfidentialERC20WithErrors\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@chainlink/=lib/chainlink/\",\":@ensdomains/=lib/v4-core/node_modules/@ensdomains/\",\":@httpz-contracts/=lib/httpz-contracts/contracts/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/universal-router/=lib/universal-router.git/\",\":@uniswap/v2-core/=lib/v2-core/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/\",\":@uniswap/v4-core/=lib/v4-core/\",\":@uniswap/v4-periphery/=lib/v4-periphery/\",\":chainlink/=lib/chainlink/\",\":ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":fhevm-contracts/=node_modules/fhevm-contracts/\",\":fhevm-core-contracts/=node_modules/fhevm-core-contracts/\",\":fhevm/=node_modules/fhevm/\",\":forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":httpz-contracts/=lib/httpz-contracts/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":permit2/=lib/permit2/\",\":solmate/=lib/permit2/lib/solmate/\",\":universal-router.git/=lib/universal-router.git/\",\":v2-core/=lib/v2-core/contracts/\",\":v3-core/=lib/v3-core/\",\":v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/\",\":v4-core/=lib/v4-core/src/\",\":v4-periphery/=lib/v4-periphery/\"],\"viaIR\":true},\"sources\":{\"contracts/ERC20Encryption/ConfidentialERC20Base.sol\":{\"keccak256\":\"0xa622900eae5b1f80c956ec16afec6e4ef6af141d7973b6d52167a86ae988272c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://45dcc2e65f2b601bf132eaae21b1ed2e5dd67c9644e6edcf856ea3274444b04e\",\"dweb:/ipfs/QmR4XvcnxE3JBfPNpLcyvPssdBqtMTd76gm6BWczaSMi9D\"]},\"contracts/ERC20Encryption/CustomConfidentialERC20WithErrors.sol\":{\"keccak256\":\"0x48800ae20f96fc6ff85e8428faf7c314eceefa7a1349fc3f42479ba82d658431\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://6ab1d91f86b98bcf65f7af820157a9d7cd923f51e60df7897c1e9858f3e3a433\",\"dweb:/ipfs/QmUt2mtzHAHDp2bvkSiXpZdM9okz4mJKFTHjU2YwPjxvxd\"]},\"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol\":{\"keccak256\":\"0x8b45e5bb2fd9212f99e61b4d25b9c9d5ed7cb1a9a684aac34f752c568ef16c76\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://1ca71bb5bfbb2f8a0779f8394baeea01680619637abddb572017d05d96862591\",\"dweb:/ipfs/QmPCzGBE1m6WtDZxrVL5jzkduNaS7fjtYovUWdnzN34qjh\"]},\"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol\":{\"keccak256\":\"0xe016a085f72ca3cf6d78ec1cb2182a398106cb7d425e984776a9caab0bad2569\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://3e79dc5075469d660908f5f8b6d0c863b14459d60a0b06fb786d58de8cf30a94\",\"dweb:/ipfs/QmePGRGtoWBnQ8T6ZRyZgiwVh4r67kcmWejwKgjyYN4AAY\"]},\"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol\":{\"keccak256\":\"0xfe322c8f9a8e4fba881715901a5bafd2efa23394ecbc9ec84282818baeff0a07\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://13dba831528dd16408b7abab23eac0664a2a3e5ecbfe5e58e6e321cf2921668a\",\"dweb:/ipfs/QmPq4YeugbayWfeBJR8H7s4jHsnZkACQX2xbdNQ4sdvZrk\"]},\"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol\":{\"keccak256\":\"0xecc6289a9791bef254911393b51d2bfbddc5650ede7fbe7b5cc2b8d3eb01d7a6\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://7463278a20bc5d7fd8b7ec2cb8e592b2d1e0afcf8b59d35d6929d18661d4b38c\",\"dweb:/ipfs/QmTKPoABwNDmK7g7vkti1AkTpkUBHu3iX3zsXQsEuSiqBM\"]},\"lib/httpz-contracts/contracts/utils/EncryptedErrors.sol\":{\"keccak256\":\"0x0b8d08f392884add1af672018359e8980ee0b5e1662fe5e36eb31f053d1d4505\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://2903dd49a88b36aba2e8a45548b6a68d203887356ebdf452b10e0148954ba1a5\",\"dweb:/ipfs/QmTRuP4QXagoV2cLr2ctzFtNK7FK1cDXMYm4feMoMsYoWG\"]},\"lib/httpz-contracts/contracts/utils/TFHEErrors.sol\":{\"keccak256\":\"0x5fef7c2d7d4449d724a2800b37dfcc61e2b635f2747378ce222b9187425f2d13\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://7c2ef113faaec2d74c8d958f80687d0b676082d6231720917aaa8aa934d689a3\",\"dweb:/ipfs/QmNn474JDQ5zvVDwEuicJs6Xq8YEXWGZLoW4KeTWDVG31f\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol\":{\"keccak256\":\"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0\",\"dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/fhevm/config/ZamaFHEVMConfig.sol\":{\"keccak256\":\"0x41782f4c707b81399916544fa2e7be94a695fa4ba468542732d29d3e383c0315\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://45a95a55c4bbb3418c2133cba6ed21a9444bb4e38d38b32cc707b7493cece2ca\",\"dweb:/ipfs/QmVU8EKmZgscdM43RgXD4EgbVMhQxBusTmBren3pbn1pUW\"]},\"node_modules/fhevm/lib/Impl.sol\":{\"keccak256\":\"0x89d4968cd956a8931f1a8a177b3bef1c6cf88a03665083db74430add50b88f21\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://aaaef2c82d56dacfb08946842ea1ce26757d13f3251de62fa79222232dfcb43c\",\"dweb:/ipfs/QmQ6QZPxJw9jb3qjRYCX7pMQVoYogjTsYgmdEnB3EnwFRy\"]},\"node_modules/fhevm/lib/TFHE.sol\":{\"keccak256\":\"0x221799c8332f83ab65a0b71746409f0c2c89f1cd8d9ba4091d967c667e1df734\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://2dba387fbc612a2ee64063b0ee6c27304b3944423d11045acc50abd84577fb5f\",\"dweb:/ipfs/QmThptDGnpd8PuncFk1rnQoCzEqwUED622yC9xZgFhwY59\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[],"type":"error","name":"ErrorIndexInvalid"},{"inputs":[],"type":"error","name":"ErrorIndexIsNull"},{"inputs":[],"type":"error","name":"TFHESenderNotAllowed"},{"inputs":[],"type":"error","name":"TotalNumberErrorCodesEqualToZero"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"placeholder","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"transferId","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"euint64","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"euint64","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"einput","name":"encryptedAmount","type":"bytes32"},{"internalType":"bytes","name":"inputProof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"euint64","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"transferId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"getErrorCodeForTransferId","outputs":[{"internalType":"euint8","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"einput","name":"encryptedAmount","type":"bytes32"},{"internalType":"bytes","name":"inputProof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"euint64","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"euint64","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"einput","name":"encryptedAmount","type":"bytes32"},{"internalType":"bytes","name":"inputProof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"getErrorCodeForTransferId(uint256)":{"params":{"transferId":"Transfer id. It can be read from the `Transfer` event."},"returns":{"_0":"errorCode Encrypted error code."}}},"version":1},"userdoc":{"kind":"user","methods":{"allowance(address,address)":{"notice":"See {IConfidentialERC20-allowance}."},"approve(address,bytes32,bytes)":{"notice":"See {IConfidentialERC20-approve}."},"approve(address,uint256)":{"notice":"See {IConfidentialERC20-approve}."},"balanceOf(address)":{"notice":"See {IConfidentialERC20-balanceOf}."},"decimals()":{"notice":"See {IConfidentialERC20-decimals}."},"getErrorCodeForTransferId(uint256)":{"notice":"Return the error for a transfer id."},"name()":{"notice":"See {IConfidentialERC20-name}."},"symbol()":{"notice":"See {IConfidentialERC20-symbol}."},"totalSupply()":{"notice":"See {IConfidentialERC20-totalSupply}."},"transfer(address,bytes32,bytes)":{"notice":"See {IConfidentialERC20-transfer}."},"transfer(address,uint256)":{"notice":"See {IConfidentialERC20-transfer}."},"transferFrom(address,address,bytes32,bytes)":{"notice":"See {IConfidentialERC20-transferFrom}."},"transferFrom(address,address,uint256)":{"notice":"See {IConfidentialERC20-transferFrom}."}},"version":1}},"settings":{"remappings":["@chainlink/=lib/chainlink/","@ensdomains/=lib/v4-core/node_modules/@ensdomains/","@httpz-contracts/=lib/httpz-contracts/contracts/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@uniswap/universal-router/=lib/universal-router.git/","@uniswap/v2-core/=lib/v2-core/","@uniswap/v3-core/=lib/v3-core/","@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/","@uniswap/v4-core/=lib/v4-core/","@uniswap/v4-periphery/=lib/v4-periphery/","chainlink/=lib/chainlink/","ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","eth-gas-reporter/=node_modules/eth-gas-reporter/","fhevm-contracts/=node_modules/fhevm-contracts/","fhevm-core-contracts/=node_modules/fhevm-core-contracts/","fhevm/=node_modules/fhevm/","forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","httpz-contracts/=lib/httpz-contracts/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","permit2/=lib/permit2/","solmate/=lib/permit2/lib/solmate/","universal-router.git/=lib/universal-router.git/","v2-core/=lib/v2-core/contracts/","v3-core/=lib/v3-core/","v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/","v4-core/=lib/v4-core/src/","v4-periphery/=lib/v4-periphery/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/ERC20Encryption/CustomConfidentialERC20WithErrors.sol":"CustomConfidentialERC20WithErrors"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/ERC20Encryption/ConfidentialERC20Base.sol":{"keccak256":"0xa622900eae5b1f80c956ec16afec6e4ef6af141d7973b6d52167a86ae988272c","urls":["bzz-raw://45dcc2e65f2b601bf132eaae21b1ed2e5dd67c9644e6edcf856ea3274444b04e","dweb:/ipfs/QmR4XvcnxE3JBfPNpLcyvPssdBqtMTd76gm6BWczaSMi9D"],"license":"MIT"},"contracts/ERC20Encryption/CustomConfidentialERC20WithErrors.sol":{"keccak256":"0x48800ae20f96fc6ff85e8428faf7c314eceefa7a1349fc3f42479ba82d658431","urls":["bzz-raw://6ab1d91f86b98bcf65f7af820157a9d7cd923f51e60df7897c1e9858f3e3a433","dweb:/ipfs/QmUt2mtzHAHDp2bvkSiXpZdM9okz4mJKFTHjU2YwPjxvxd"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol":{"keccak256":"0x8b45e5bb2fd9212f99e61b4d25b9c9d5ed7cb1a9a684aac34f752c568ef16c76","urls":["bzz-raw://1ca71bb5bfbb2f8a0779f8394baeea01680619637abddb572017d05d96862591","dweb:/ipfs/QmPCzGBE1m6WtDZxrVL5jzkduNaS7fjtYovUWdnzN34qjh"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol":{"keccak256":"0xe016a085f72ca3cf6d78ec1cb2182a398106cb7d425e984776a9caab0bad2569","urls":["bzz-raw://3e79dc5075469d660908f5f8b6d0c863b14459d60a0b06fb786d58de8cf30a94","dweb:/ipfs/QmePGRGtoWBnQ8T6ZRyZgiwVh4r67kcmWejwKgjyYN4AAY"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol":{"keccak256":"0xfe322c8f9a8e4fba881715901a5bafd2efa23394ecbc9ec84282818baeff0a07","urls":["bzz-raw://13dba831528dd16408b7abab23eac0664a2a3e5ecbfe5e58e6e321cf2921668a","dweb:/ipfs/QmPq4YeugbayWfeBJR8H7s4jHsnZkACQX2xbdNQ4sdvZrk"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol":{"keccak256":"0xecc6289a9791bef254911393b51d2bfbddc5650ede7fbe7b5cc2b8d3eb01d7a6","urls":["bzz-raw://7463278a20bc5d7fd8b7ec2cb8e592b2d1e0afcf8b59d35d6929d18661d4b38c","dweb:/ipfs/QmTKPoABwNDmK7g7vkti1AkTpkUBHu3iX3zsXQsEuSiqBM"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/utils/EncryptedErrors.sol":{"keccak256":"0x0b8d08f392884add1af672018359e8980ee0b5e1662fe5e36eb31f053d1d4505","urls":["bzz-raw://2903dd49a88b36aba2e8a45548b6a68d203887356ebdf452b10e0148954ba1a5","dweb:/ipfs/QmTRuP4QXagoV2cLr2ctzFtNK7FK1cDXMYm4feMoMsYoWG"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/utils/TFHEErrors.sol":{"keccak256":"0x5fef7c2d7d4449d724a2800b37dfcc61e2b635f2747378ce222b9187425f2d13","urls":["bzz-raw://7c2ef113faaec2d74c8d958f80687d0b676082d6231720917aaa8aa934d689a3","dweb:/ipfs/QmNn474JDQ5zvVDwEuicJs6Xq8YEXWGZLoW4KeTWDVG31f"],"license":"BSD-3-Clause-Clear"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol":{"keccak256":"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c","urls":["bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0","dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/fhevm/config/ZamaFHEVMConfig.sol":{"keccak256":"0x41782f4c707b81399916544fa2e7be94a695fa4ba468542732d29d3e383c0315","urls":["bzz-raw://45a95a55c4bbb3418c2133cba6ed21a9444bb4e38d38b32cc707b7493cece2ca","dweb:/ipfs/QmVU8EKmZgscdM43RgXD4EgbVMhQxBusTmBren3pbn1pUW"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/lib/Impl.sol":{"keccak256":"0x89d4968cd956a8931f1a8a177b3bef1c6cf88a03665083db74430add50b88f21","urls":["bzz-raw://aaaef2c82d56dacfb08946842ea1ce26757d13f3251de62fa79222232dfcb43c","dweb:/ipfs/QmQ6QZPxJw9jb3qjRYCX7pMQVoYogjTsYgmdEnB3EnwFRy"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/lib/TFHE.sol":{"keccak256":"0x221799c8332f83ab65a0b71746409f0c2c89f1cd8d9ba4091d967c667e1df734","urls":["bzz-raw://2dba387fbc612a2ee64063b0ee6c27304b3944423d11045acc50abd84577fb5f","dweb:/ipfs/QmThptDGnpd8PuncFk1rnQoCzEqwUED622yC9xZgFhwY59"],"license":"BSD-3-Clause-Clear"}},"version":1},"id":4} \ No newline at end of file diff --git a/out/CustomConfidentialERC20WithErrorsMintable.sol/CustomConfidentialERC20WithErrorsMintable.json b/out/CustomConfidentialERC20WithErrorsMintable.sol/CustomConfidentialERC20WithErrorsMintable.json new file mode 100644 index 0000000..788b1db --- /dev/null +++ b/out/CustomConfidentialERC20WithErrorsMintable.sol/CustomConfidentialERC20WithErrorsMintable.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"},{"name":"owner_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"acceptOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"euint64"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"euint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"encryptedAmount","type":"bytes32","internalType":"einput"},{"name":"inputProof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"euint64"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"getErrorCodeForTransferId","inputs":[{"name":"transferId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"errorCode","type":"uint256","internalType":"euint8"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pendingOwner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"encryptedAmount","type":"bytes32","internalType":"einput"},{"name":"inputProof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"euint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"euint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"encryptedAmount","type":"bytes32","internalType":"einput"},{"name":"inputProof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"placeholder","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Mint","inputs":[{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferStarted","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"transferId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"ErrorIndexInvalid","inputs":[]},{"type":"error","name":"ErrorIndexIsNull","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"TFHESenderNotAllowed","inputs":[]},{"type":"error","name":"TotalNumberErrorCodesEqualToZero","inputs":[]}],"bytecode":{"object":"0x60a080604052346102c557611a33803803809161001c828561050c565b83398101906060818303126102c55780516001600160401b0381116102c5578261004791830161052f565b60208201519092906001600160401b0381116102c55760409161006b91840161052f565b9101516001600160a01b038116908190036102c55780156104f957600180546001600160a01b03199081169091555f8054918216831781556001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a381516001600160401b03811161040c57600254600181811c911680156104ef575b60208210146103ee57601f811161048c575b50602092601f821160011461042b57928192935f92610420575b50508160011b915f199060031b1c1916176002555b80516001600160401b03811161040c57600354600181811c91168015610402575b60208210146103ee57601f811161038b575b50602091601f821160011461032b579181925f92610320575b50508160011b915f199060031b1c1916176003555b5f5b60ff811690600282116102fc577fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60154604051631ce2e8d760e31b815260048101849052600160f91b60248201529290602090849060449082905f906001600160a01b03165af19283156102ba575f936102c9575b505f9081526007602052604090208290557fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600546001600160a01b031691823b156102c5575f92604484926040519586938492631974142760e21b845260048401523060248401525af19182156102ba5760ff926102aa575b501660ff811461029657600101610198565b634e487b7160e01b5f52601160045260245ffd5b5f6102b49161050c565b5f610284565b6040513d5f823e3d90fd5b5f80fd5b9092506020813d82116102f4575b816102e46020938361050c565b810103126102c55751915f61020c565b3d91506102d7565b60026080526040516114ae90816105858239608051818181610a1d0152610d190152f35b015190505f80610181565b601f1982169260035f52805f20915f5b8581106103735750836001951061035b575b505050811b01600355610196565b01515f1960f88460031b161c191690555f808061034d565b9192602060018192868501518155019401920161033b565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c810191602084106103e4575b601f0160051c01905b8181106103d95750610168565b5f81556001016103cc565b90915081906103c3565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610156565b634e487b7160e01b5f52604160045260245ffd5b015190505f80610120565b601f1982169360025f52805f20915f5b868110610474575083600195961061045c575b505050811b01600255610135565b01515f1960f88460031b161c191690555f808061044e565b9192602060018192868501518155019401920161043b565b60025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace601f830160051c810191602084106104e5575b601f0160051c01905b8181106104da5750610106565b5f81556001016104cd565b90915081906104c4565b90607f16906100f4565b631e4fbdf760e01b5f525f60045260245ffd5b601f909101601f19168101906001600160401b0382119082101761040c57604052565b81601f820112156102c5578051906001600160401b03821161040c5760405192610563601f8401601f19166020018561050c565b828452602083830101116102c557815f9260208093018386015e830101529056fe6080806040526004361015610012575f80fd5b5f3560e01c90816306fdde03146107d557508063095ea7b3146107ae57806318160ddd1461078457806323b872dd146107555780632893c5b014610575578063313ce5671461055a57806370a0823114610522578063715018a6146104bf57806379ba50971461043a5780637b7e0a5a1461041d5780638da5cb5b146103f657806395d89b41146102ea5780639a09435214610289578063a5184baf14610246578063a9059cbb14610215578063b32c1001146101db578063dd62ed3e1461018b578063e30c3978146101635763f2fde38b146100ed575f80fd5b3461015f57602036600319011261015f576101066108b1565b61010e6110ab565b60018060a01b0316806bffffffffffffffffffffffff60a01b600154161760015560018060a01b035f54167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227005f80a3005b5f80fd5b3461015f575f36600319011261015f576001546040516001600160a01b039091168152602090f35b3461015f57604036600319011261015f576101a46108b1565b6101ac6108c7565b6001600160a01b039182165f908152600560209081526040808320949093168252928352819020549051908152f35b3461015f576102096101fd6102036101f23661090b565b949192943691610cae565b906110be565b90610988565b50602060405160018152f35b3461015f57604036600319011261015f57602061023c6102336108b1565b60243590610cf4565b6040519015158152f35b3461015f57602036600319011261015f5760043560065481101561027a575f526008602052602060405f2054604051908152f35b63d65c1f3360e01b5f5260045ffd5b3461015f57608036600319011261015f576102a26108b1565b6102aa6108c7565b906064359167ffffffffffffffff831161015f576102e46102dc6102d56102099536906004016108dd565b3691610cae565b6044356110be565b916109dd565b3461015f575f36600319011261015f576040515f6003548060011c906001811680156103ec575b6020831081146103d8578285529081156103b45750600114610356575b6103528361033e81850382610952565b60405191829160208352602083019061088d565b0390f35b91905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f905b80821061039a5750909150810160200161033e61032e565b919260018160209254838588010152019101909291610382565b60ff191660208086019190915291151560051b8401909101915061033e905061032e565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610311565b3461015f575f36600319011261015f575f546040516001600160a01b039091168152602090f35b3461015f576102096101fd6104346101f23661090b565b90610cf4565b3461015f575f36600319011261015f57600154336001600160a01b03909116036104ac57600180546001600160a01b03199081169091555f805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b63118cdaa760e01b5f523360045260245ffd5b3461015f575f36600319011261015f576104d76110ab565b600180546001600160a01b03199081169091555f80549182168155906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461015f57602036600319011261015f576001600160a01b036105436108b1565b165f526004602052602060405f2054604051908152f35b3461015f575f36600319011261015f57602060405160068152f35b3461015f57604036600319011261015f5761058e6108b1565b60243567ffffffffffffffff811680910361015f576105ab6110ab565b6001600160a01b0382165f81815260046020526040812054919390918015610743575b5f805160206114598339815191525460405163f953e42760e01b8152600481019290925260248201859052600160f81b6044830152909260209184916064918391906001600160a01b03165af18015610738575f90610704575b61064a9250845f5260046020528060405f20556106453082611335565b611335565b815f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602060405183198152a3600154908067ffffffffffffffff8360a01c16019067ffffffffffffffff82116106f05767ffffffffffffffff60a01b1990921660a09190911b67ffffffffffffffff60a01b16176001556040519081527f9109de113672aaca72ede8bc906f7aafabee865311ac020fb15c71edf94a0a0190602090a2005b634e487b7160e01b5f52601160045260245ffd5b506020823d602011610730575b8161071e60209383610952565b8101031261015f5761064a9151610628565b3d9150610711565b6040513d5f823e3d90fd5b50602061074e611402565b90506105ce565b3461015f57606036600319011261015f57602061023c6107736108b1565b61077b6108c7565b604435916109dd565b3461015f575f36600319011261015f57602067ffffffffffffffff60015460a01c16604051908152f35b3461015f57604036600319011261015f57602061023c6107cc6108b1565b60243590610988565b3461015f575f36600319011261015f575f6002548060011c90600181168015610883575b6020831081146103d8578285529081156103b45750600114610825576103528361033e81850382610952565b91905060025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace915f905b8082106108695750909150810160200161033e61032e565b919260018160209254838588010152019101909291610851565b91607f16916107f9565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361015f57565b602435906001600160a01b038216820361015f57565b9181601f8401121561015f5782359167ffffffffffffffff831161015f576020838186019501011161015f57565b606060031982011261015f576004356001600160a01b038116810361015f5791602435916044359067ffffffffffffffff821161015f5761094e916004016108dd565b9091565b90601f8019910116810190811067ffffffffffffffff82111761097457604052565b634e487b7160e01b5f52604160045260245ffd5b9061099d9061099681610dbd565b8233610e6f565b6040515f1981526001600160a01b039091169033907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590602090a3600190565b916109e781610dbd565b6001600160a01b0383165f81815260056020908152604080832033845290915290205493909290610a1885846111d1565b9360ff7f000000000000000000000000000000000000000000000000000000000000000016948560021161027a5760076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5460025f9081527fb7c774451310d1be4108bc180d1b52823cb0ee0274a6c0081bcaf94f115fb96d54909391610aa39190846113b0565b9083526004602052610ab96040842054876111d1565b96602060018060a01b035f8051602061145983398151915254166024604051809781936309c00ffd60e11b83528d60048401525af1938415610738575f94610c79575b505f8051602061145983398151915254604051630ccd46b160e31b81526004810195909552602485018490525f6044860181905260209186916064918391906001600160a01b03165af1938415610738575f94610c45575b5060011161027a57610b79610b949160209460015f526007865260405f2054906113b0565b610b8281611284565b50610b8d8582611335565b3390611335565b606460018060a01b035f805160206114598339815191525416965f6040519889948593630ccd46b160e31b8552600485015260248401528160448401525af1938415610738575f94610c0d575b50610c03610bfc86610bf686610c08996112b1565b876113b0565b3383610e6f565b610eec565b600190565b9493506020853d602011610c3d575b81610c2960209383610952565b8101031261015f5793519293610c03610be1565b3d9150610c1c565b9093506020813d602011610c71575b81610c6160209383610952565b8101031261015f5751925f610b54565b3d9150610c54565b93506020843d602011610ca6575b81610c9460209383610952565b8101031261015f579251926020610afc565b3d9150610c87565b92919267ffffffffffffffff82116109745760405191610cd8601f8201601f191660200184610952565b82948184528183011161015f578281602093845f960137010152565b90610cfe81610dbd565b335f526004602052610d1460405f2054826111d1565b9060ff7f00000000000000000000000000000000000000000000000000000000000000001660011161027a5760076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5460015f527fb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b82854610c089491610db7918391610da39190876113b0565b610dac81611284565b506106453382611335565b33610eec565b7fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60054604051632fd514cd60e11b81526004810192909252336024830152602090829060449082906001600160a01b03165afa908115610738575f91610e34575b5015610e2557565b632fa38b3f60e01b5f5260045ffd5b90506020813d602011610e67575b81610e4f60209383610952565b8101031261015f5751801515810361015f575f610e1d565b3d9150610e42565b6001600160a01b0381169392908415610ed9576001600160a01b038316948515610ec65790610ec49495610645925f52600560205260405f20905f526020528260405f2055610ebe3084611335565b82611335565b565b85634a1406b160e11b5f5260045260245ffd5b8463e602df0560e01b5f5260045260245ffd5b91926001600160a01b03831692908315611098576001600160a01b0383169485156110855790610f2491610f1e611402565b916113b0565b91845f5260046020525f60206040822054858115611075575b8615611067575b5f805160206114598339815191525460405163f953e42760e01b8152600480820194909452848101909301919091526001600160f81b0319841660448301529092839160649183916001600160a01b03165af1908115610738575f91611031575b5092610fcc610fde9285610ff69650885f5260046020528060405f20556106453082611335565b845f52600460205260405f20546112b1565b835f5260046020528060405f20556106453082611335565b6006545f1981019081116106f05760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91604051908152a3565b9390506020843d60201161105f575b8161104d60209383610952565b8101031261015f579251610fcc610fa5565b3d9150611040565b50611070611402565b610f44565b905061107f611402565b90610f3d565b8563ec442f0560e01b5f5260045260245ffd5b83634b637e8f60e11b5f5260045260245ffd5b5f546001600160a01b031633036104ac57565b61110d9160209160018060a01b035f805160206114598339815191525416905f6040518096819582946302e817ff60e41b8452600484015233602484015260806044840152608483019061088d565b600560f81b606483015203925af1908115610738575f9161119f575b507fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600546001600160a01b0316803b1561015f576040516346ce4e4960e11b815260048101839052336024820152905f908290604490829084905af1801561073857611192575090565b5f61119c91610952565b90565b90506020813d6020116111c9575b816111ba60209383610952565b8101031261015f57515f611129565b3d91506111ad565b908115611274575b8015611262575b602090606460018060a01b035f805160206114598339815191525416935f60405195869485936334a6d7b960e11b8552600485015260248401528160448401525af1908115610738575f91611233575090565b90506020813d60201161125a575b8161124e60209383610952565b8101031261015f575190565b3d9150611241565b50602061126d611402565b90506111e0565b905061127e611402565b906111d9565b60065491905f1983146106f057610ec49060018401600655835f5260086020528060405f20553090611335565b908115611325575b8015611313575b602090606460018060a01b035f805160206114598339815191525416935f6040519586948593638c14cc2160e01b8552600485015260248401528160448401525af1908115610738575f91611233575090565b50602061131e611402565b90506112c0565b905061132f611402565b906112b9565b7fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600546001600160a01b031691823b1561015f57604051631974142760e21b815260048101929092526001600160a01b03166024820152905f908290604490829084905af18015610738576113a65750565b5f610ec491610952565b9060646020925f60018060a01b035f805160206114598339815191525416604051968795869463cb3b940760e01b86526004860152602485015260448401525af1908115610738575f91611233575090565b5f8051602061145983398151915254604051631ce2e8d760e31b81525f60048201819052600560f81b60248301529091602091839160449183916001600160a01b03165af1908115610738575f9161123357509056feed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea601a264697066735822122075719fc5720143d858bcbc2e1612c94a3c39c300d7a9dd7cdc1012d6b31d2e2064736f6c634300081a0033","sourceMap":"595:952:5:-:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;595:952:5;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;595:952:5;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;595:952:5;;;;;;;;1273:26:34;;1269:95;;595:952:5;;;-1:-1:-1;;;;;;595:952:5;;;;;;-1:-1:-1;595:952:5;;;;;;;;;-1:-1:-1;;;;;595:952:5;;;;3052:40:34;;-1:-1:-1;3052:40:34;595:952:5;;-1:-1:-1;;;;;595:952:5;;;;1594:20:24;595:952:5;;;;;;;;;;;-1:-1:-1;595:952:5;;;;;;;;;;;-1:-1:-1;595:952:5;;;;;;;;;;;;;;-1:-1:-1;595:952:5;;;;;;;;;;;;;;;;;;;1594:20:24;595:952:5;;;;-1:-1:-1;;;;;595:952:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;595:952:5;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2177:3:26;595:952:5;;;2148:27:26;1594:20:24;2148:27:26;;;;13991:21:162;595:952:5;;;-1:-1:-1;;;13977:74:162;;;;;595:952:5;;;-1:-1:-1;;;595:952:5;;;;;;;;;;13977:74:162;;595:952:5;;-1:-1:-1;;;;;;;595:952:5;13977:74:162;;;;;;;-1:-1:-1;13977:74:162;;;2177:3:26;-1:-1:-1;;595:952:5;;;2245:21:26;595:952:5;;;;;;;;4586:62:162;595:952:5;-1:-1:-1;;;;;595:952:5;;15870:41:162;;;;;-1:-1:-1;595:952:5;13977:74:162;595:952:5;;;;;;;;;;;;15870:41:162;;13977:74;15870:41;;595:952:5;370135:4:163;595:952:5;;;;15870:41:162;;;;;;;595:952:5;15870:41:162;;;2177:3:26;;595:952:5;;;;;;;;2139:7:26;;595:952:5;;;;-1:-1:-1;595:952:5;;13977:74:162;595:952:5;;-1:-1:-1;595:952:5;15870:41:162;-1:-1:-1;15870:41:162;;;:::i;:::-;;;;;595:952:5;;;-1:-1:-1;595:952:5;;;;;15870:41:162;-1:-1:-1;595:952:5;;13977:74:162;;;;595:952:5;13977:74:162;;;;;;;;;595:952:5;13977:74:162;;;:::i;:::-;;;595:952:5;;;;;13977:74:162;;;;;;;-1:-1:-1;13977:74:162;;2148:27:26;1594:20:24;2341:50:26;;595:952:5;;;;;;;;2341:50:26;595:952:5;;;;;;;;;;;;;;;-1:-1:-1;595:952:5;;;;;;;;;;;-1:-1:-1;595:952:5;;-1:-1:-1;595:952:5;;-1:-1:-1;595:952:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;595:952:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;595:952:5;;;;;;;;;-1:-1:-1;595:952:5;;;;;;;;-1:-1:-1;595:952:5;;;;;-1:-1:-1;595:952:5;;;;;;;;;;;;-1:-1:-1;595:952:5;;;;;-1:-1:-1;595:952:5;;;;;-1:-1:-1;595:952:5;;;;;;;;;;1594:20:24;-1:-1:-1;595:952:5;;-1:-1:-1;595:952:5;;-1:-1:-1;595:952:5;;;;;;;;;;;;;;;;;;;;;1594:20:24;595:952:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:20:24;-1:-1:-1;595:952:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;595:952:5;;;;;;;;;-1:-1:-1;595:952:5;;;;;;;;;;;1269:95:34;1322:31;;;-1:-1:-1;1322:31:34;-1:-1:-1;1322:31:34;595:952:5;;-1:-1:-1;1322:31:34;595:952:5;;;;;-1:-1:-1;;595:952:5;;;;-1:-1:-1;;;;;595:952:5;;;;;;;;;;:::o;:::-;;;;;;;;;;;;-1:-1:-1;;;;;595:952:5;;;;;;;;;;;-1:-1:-1;;595:952:5;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;595:952:5;;;;;;;;;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c90816306fdde03146107d557508063095ea7b3146107ae57806318160ddd1461078457806323b872dd146107555780632893c5b014610575578063313ce5671461055a57806370a0823114610522578063715018a6146104bf57806379ba50971461043a5780637b7e0a5a1461041d5780638da5cb5b146103f657806395d89b41146102ea5780639a09435214610289578063a5184baf14610246578063a9059cbb14610215578063b32c1001146101db578063dd62ed3e1461018b578063e30c3978146101635763f2fde38b146100ed575f80fd5b3461015f57602036600319011261015f576101066108b1565b61010e6110ab565b60018060a01b0316806bffffffffffffffffffffffff60a01b600154161760015560018060a01b035f54167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227005f80a3005b5f80fd5b3461015f575f36600319011261015f576001546040516001600160a01b039091168152602090f35b3461015f57604036600319011261015f576101a46108b1565b6101ac6108c7565b6001600160a01b039182165f908152600560209081526040808320949093168252928352819020549051908152f35b3461015f576102096101fd6102036101f23661090b565b949192943691610cae565b906110be565b90610988565b50602060405160018152f35b3461015f57604036600319011261015f57602061023c6102336108b1565b60243590610cf4565b6040519015158152f35b3461015f57602036600319011261015f5760043560065481101561027a575f526008602052602060405f2054604051908152f35b63d65c1f3360e01b5f5260045ffd5b3461015f57608036600319011261015f576102a26108b1565b6102aa6108c7565b906064359167ffffffffffffffff831161015f576102e46102dc6102d56102099536906004016108dd565b3691610cae565b6044356110be565b916109dd565b3461015f575f36600319011261015f576040515f6003548060011c906001811680156103ec575b6020831081146103d8578285529081156103b45750600114610356575b6103528361033e81850382610952565b60405191829160208352602083019061088d565b0390f35b91905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f905b80821061039a5750909150810160200161033e61032e565b919260018160209254838588010152019101909291610382565b60ff191660208086019190915291151560051b8401909101915061033e905061032e565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610311565b3461015f575f36600319011261015f575f546040516001600160a01b039091168152602090f35b3461015f576102096101fd6104346101f23661090b565b90610cf4565b3461015f575f36600319011261015f57600154336001600160a01b03909116036104ac57600180546001600160a01b03199081169091555f805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b63118cdaa760e01b5f523360045260245ffd5b3461015f575f36600319011261015f576104d76110ab565b600180546001600160a01b03199081169091555f80549182168155906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461015f57602036600319011261015f576001600160a01b036105436108b1565b165f526004602052602060405f2054604051908152f35b3461015f575f36600319011261015f57602060405160068152f35b3461015f57604036600319011261015f5761058e6108b1565b60243567ffffffffffffffff811680910361015f576105ab6110ab565b6001600160a01b0382165f81815260046020526040812054919390918015610743575b5f805160206114598339815191525460405163f953e42760e01b8152600481019290925260248201859052600160f81b6044830152909260209184916064918391906001600160a01b03165af18015610738575f90610704575b61064a9250845f5260046020528060405f20556106453082611335565b611335565b815f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602060405183198152a3600154908067ffffffffffffffff8360a01c16019067ffffffffffffffff82116106f05767ffffffffffffffff60a01b1990921660a09190911b67ffffffffffffffff60a01b16176001556040519081527f9109de113672aaca72ede8bc906f7aafabee865311ac020fb15c71edf94a0a0190602090a2005b634e487b7160e01b5f52601160045260245ffd5b506020823d602011610730575b8161071e60209383610952565b8101031261015f5761064a9151610628565b3d9150610711565b6040513d5f823e3d90fd5b50602061074e611402565b90506105ce565b3461015f57606036600319011261015f57602061023c6107736108b1565b61077b6108c7565b604435916109dd565b3461015f575f36600319011261015f57602067ffffffffffffffff60015460a01c16604051908152f35b3461015f57604036600319011261015f57602061023c6107cc6108b1565b60243590610988565b3461015f575f36600319011261015f575f6002548060011c90600181168015610883575b6020831081146103d8578285529081156103b45750600114610825576103528361033e81850382610952565b91905060025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace915f905b8082106108695750909150810160200161033e61032e565b919260018160209254838588010152019101909291610851565b91607f16916107f9565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361015f57565b602435906001600160a01b038216820361015f57565b9181601f8401121561015f5782359167ffffffffffffffff831161015f576020838186019501011161015f57565b606060031982011261015f576004356001600160a01b038116810361015f5791602435916044359067ffffffffffffffff821161015f5761094e916004016108dd565b9091565b90601f8019910116810190811067ffffffffffffffff82111761097457604052565b634e487b7160e01b5f52604160045260245ffd5b9061099d9061099681610dbd565b8233610e6f565b6040515f1981526001600160a01b039091169033907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590602090a3600190565b916109e781610dbd565b6001600160a01b0383165f81815260056020908152604080832033845290915290205493909290610a1885846111d1565b9360ff7f000000000000000000000000000000000000000000000000000000000000000016948560021161027a5760076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5460025f9081527fb7c774451310d1be4108bc180d1b52823cb0ee0274a6c0081bcaf94f115fb96d54909391610aa39190846113b0565b9083526004602052610ab96040842054876111d1565b96602060018060a01b035f8051602061145983398151915254166024604051809781936309c00ffd60e11b83528d60048401525af1938415610738575f94610c79575b505f8051602061145983398151915254604051630ccd46b160e31b81526004810195909552602485018490525f6044860181905260209186916064918391906001600160a01b03165af1938415610738575f94610c45575b5060011161027a57610b79610b949160209460015f526007865260405f2054906113b0565b610b8281611284565b50610b8d8582611335565b3390611335565b606460018060a01b035f805160206114598339815191525416965f6040519889948593630ccd46b160e31b8552600485015260248401528160448401525af1938415610738575f94610c0d575b50610c03610bfc86610bf686610c08996112b1565b876113b0565b3383610e6f565b610eec565b600190565b9493506020853d602011610c3d575b81610c2960209383610952565b8101031261015f5793519293610c03610be1565b3d9150610c1c565b9093506020813d602011610c71575b81610c6160209383610952565b8101031261015f5751925f610b54565b3d9150610c54565b93506020843d602011610ca6575b81610c9460209383610952565b8101031261015f579251926020610afc565b3d9150610c87565b92919267ffffffffffffffff82116109745760405191610cd8601f8201601f191660200184610952565b82948184528183011161015f578281602093845f960137010152565b90610cfe81610dbd565b335f526004602052610d1460405f2054826111d1565b9060ff7f00000000000000000000000000000000000000000000000000000000000000001660011161027a5760076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5460015f527fb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b82854610c089491610db7918391610da39190876113b0565b610dac81611284565b506106453382611335565b33610eec565b7fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60054604051632fd514cd60e11b81526004810192909252336024830152602090829060449082906001600160a01b03165afa908115610738575f91610e34575b5015610e2557565b632fa38b3f60e01b5f5260045ffd5b90506020813d602011610e67575b81610e4f60209383610952565b8101031261015f5751801515810361015f575f610e1d565b3d9150610e42565b6001600160a01b0381169392908415610ed9576001600160a01b038316948515610ec65790610ec49495610645925f52600560205260405f20905f526020528260405f2055610ebe3084611335565b82611335565b565b85634a1406b160e11b5f5260045260245ffd5b8463e602df0560e01b5f5260045260245ffd5b91926001600160a01b03831692908315611098576001600160a01b0383169485156110855790610f2491610f1e611402565b916113b0565b91845f5260046020525f60206040822054858115611075575b8615611067575b5f805160206114598339815191525460405163f953e42760e01b8152600480820194909452848101909301919091526001600160f81b0319841660448301529092839160649183916001600160a01b03165af1908115610738575f91611031575b5092610fcc610fde9285610ff69650885f5260046020528060405f20556106453082611335565b845f52600460205260405f20546112b1565b835f5260046020528060405f20556106453082611335565b6006545f1981019081116106f05760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91604051908152a3565b9390506020843d60201161105f575b8161104d60209383610952565b8101031261015f579251610fcc610fa5565b3d9150611040565b50611070611402565b610f44565b905061107f611402565b90610f3d565b8563ec442f0560e01b5f5260045260245ffd5b83634b637e8f60e11b5f5260045260245ffd5b5f546001600160a01b031633036104ac57565b61110d9160209160018060a01b035f805160206114598339815191525416905f6040518096819582946302e817ff60e41b8452600484015233602484015260806044840152608483019061088d565b600560f81b606483015203925af1908115610738575f9161119f575b507fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600546001600160a01b0316803b1561015f576040516346ce4e4960e11b815260048101839052336024820152905f908290604490829084905af1801561073857611192575090565b5f61119c91610952565b90565b90506020813d6020116111c9575b816111ba60209383610952565b8101031261015f57515f611129565b3d91506111ad565b908115611274575b8015611262575b602090606460018060a01b035f805160206114598339815191525416935f60405195869485936334a6d7b960e11b8552600485015260248401528160448401525af1908115610738575f91611233575090565b90506020813d60201161125a575b8161124e60209383610952565b8101031261015f575190565b3d9150611241565b50602061126d611402565b90506111e0565b905061127e611402565b906111d9565b60065491905f1983146106f057610ec49060018401600655835f5260086020528060405f20553090611335565b908115611325575b8015611313575b602090606460018060a01b035f805160206114598339815191525416935f6040519586948593638c14cc2160e01b8552600485015260248401528160448401525af1908115610738575f91611233575090565b50602061131e611402565b90506112c0565b905061132f611402565b906112b9565b7fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600546001600160a01b031691823b1561015f57604051631974142760e21b815260048101929092526001600160a01b03166024820152905f908290604490829084905af18015610738576113a65750565b5f610ec491610952565b9060646020925f60018060a01b035f805160206114598339815191525416604051968795869463cb3b940760e01b86526004860152602485015260448401525af1908115610738575f91611233575090565b5f8051602061145983398151915254604051631ce2e8d760e31b81525f60048201819052600560f81b60248301529091602091839160449183916001600160a01b03165af1908115610738575f9161123357509056feed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea601a264697066735822122075719fc5720143d858bcbc2e1612c94a3c39c300d7a9dd7cdc1012d6b31d2e2064736f6c634300081a0033","sourceMap":"595:952:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;595:952:5;;;;;;:::i;:::-;1500:62:34;;:::i;:::-;595:952:5;;;;;;;;;;1738:24:35;595:952:5;;;1738:24:35;595:952:5;;;;;;;;;1777:43:35;595:952:5;1777:43:35;;595:952:5;;;;;;;;;;;-1:-1:-1;;595:952:5;;;;;;;;-1:-1:-1;;;;;595:952:5;;;;;;;;;;;;;;-1:-1:-1;;595:952:5;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;595:952:5;;;;;;;7824:11:20;595:952:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1877:61:20;595:952:5;1894:43:20;595:952:5;;;:::i;:::-;;;;;;;;:::i;:::-;1894:43:20;;:::i;:::-;1877:61;;:::i;:::-;;595:952:5;;;1955:4:20;595:952:5;;;;;;;;;-1:-1:-1;;595:952:5;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;595:952:5;;;;;;8215:13:26;595:952:5;8204:24:26;;;8200:81;;595:952:5;;8303:18:26;595:952:5;;;;;;;;;;;;;8200:81:26;8251:19;;;595:952:5;8251:19:26;595:952:5;;8251:19:26;595:952:5;;;;;;-1:-1:-1;;595:952:5;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;3273:43:20;595:952:5;;3250:67:20;595:952:5;;;;;;:::i;:::-;;;;:::i;:::-;;;3273:43:20;:::i;:::-;3250:67;;:::i;595:952:5:-;;;;;;-1:-1:-1;;595:952:5;;;;;;;4609:7:20;595:952:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;4609:7:20;595:952:5;;;;;;;;;;;;-1:-1:-1;595:952:5;;-1:-1:-1;595:952:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;595:952:5;;;;;;;;;;;;;;;;;;;;-1:-1:-1;595:952:5;;-1:-1:-1;595:952:5;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;595:952:5;;;;;;;;-1:-1:-1;;;;;595:952:5;;;;;;;;;;;;2512:57:20;595:952:5;2525:43:20;595:952:5;;;:::i;2525:43:20:-;2512:57;;:::i;595:952:5:-;;;;;;-1:-1:-1;;595:952:5;;;;;;735:10:52;-1:-1:-1;;;;;595:952:5;;;2339:24:35;2335:96;;1311:13;595:952:5;;-1:-1:-1;;;;;;595:952:5;;;;;;-1:-1:-1;595:952:5;;735:10:52;595:952:5;;;;;;;-1:-1:-1;;;;;595:952:5;;3052:40:34;;-1:-1:-1;3052:40:34;595:952:5;2335:96:35;2386:34;;;595:952:5;2386:34:35;735:10:52;595:952:5;;;;2386:34:35;595:952:5;;;;;;-1:-1:-1;;595:952:5;;;;1500:62:34;;:::i;:::-;2093:20:35;595:952:5;;-1:-1:-1;;;;;;595:952:5;;;;;;-1:-1:-1;595:952:5;;;;;;;-1:-1:-1;;;;;;595:952:5;3052:40:34;-1:-1:-1;;3052:40:34;595:952:5;;;;;;;-1:-1:-1;;595:952:5;;;;-1:-1:-1;;;;;595:952:5;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;595:952:5;;;;;;;4295:1:20;595:952:5;;;;;;;;;-1:-1:-1;;595:952:5;;;;;;:::i;:::-;;;;;;;;;;;1500:62:34;;:::i;:::-;-1:-1:-1;;;;;595:952:5;;;;;;;;;;;;;;;;;2482:22:163;;211624:64;;595:952:5;-1:-1:-1;;;;;;;;;;;595:952:5;;;-1:-1:-1;;;5329:65:162;;595:952:5;5329:65:162;;595:952:5;;;;;;;;;;-1:-1:-1;;;595:952:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;595:952:5;5329:65:162;;;;;;595:952:5;5329:65:162;;;595:952:5;370021:7:163;5320:74:162;;595:952:5;;;;;;;;;;;370832:13:163;370840:4;370832:13;;:::i;:::-;370021:7;:::i;:::-;595:952:5;;5502:43:20;595:952:5;;;950:17:20;;595:952:5;;5502:43:20;211757:4:163;595:952:5;;;;;;;;;;;;;;;-1:-1:-1;;;;595:952:5;;;;;;;;-1:-1:-1;;;595:952:5;;211757:4:163;595:952:5;;;;;;1522:16;;595:952;;1522:16;595:952;;;;;;;;;;;;;5329:65:162;;595:952:5;5329:65:162;;595:952:5;5329:65:162;;;;;;595:952:5;5329:65:162;;;:::i;:::-;;;595:952:5;;;;370021:7:163;595:952:5;;5329:65:162;;;;;-1:-1:-1;5329:65:162;;;595:952:5;;;;;;;;;211624:64:163;344922:44;595:952:5;344922:44:163;;:::i;:::-;211624:64;;;;595:952:5;;;;;;-1:-1:-1;;595:952:5;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;595:952:5;;;;;;4775:12:20;595:952:5;;;;;;;;;;;;;;;;-1:-1:-1;;595:952:5;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;595:952:5;;;;;4448:5:20;595:952:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;4448:5:20;595:952:5;;;;;;;;;;;;-1:-1:-1;595:952:5;;-1:-1:-1;595:952:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;595:952:5;;;;;;;;-1:-1:-1;;595:952:5;;;;:::o;:::-;;;;-1:-1:-1;;;;;595:952:5;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;595:952:5;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;595:952:5;;;;;;;-1:-1:-1;;;;;595:952:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;595:952:5;;;;;-1:-1:-1;595:952:5;2037:282:20;;2231:6;2037:282;2153:6;;;:::i;:::-;2186:10;;2231:6;:::i;:::-;595:952:5;;-1:-1:-1;;595:952:5;;-1:-1:-1;;;;;595:952:5;;;;2186:10:20;;2253:38;;950:17;;2253:38;2308:4;2037:282;:::o;2315:337:24:-;;2454:6;;;:::i;:::-;-1:-1:-1;;;;;595:952:5;;-1:-1:-1;595:952:5;;;7824:11:20;595:952:5;;;;;;;;2489:10:24;595:952:5;;;;;;;;;;;;3633:33:24;595:952:5;3633:33:24;;:::i;:::-;3695:75;595:952:5;6306:25:26;595:952:5;6294:37:26;;3736:32:24;6294:37:26;6290:94;;6429:21;595:952:5;;;;3736:32:24;-1:-1:-1;595:952:5;;;;;-1:-1:-1;;595:952:5;325937:72:163;;595:952:5;325937:72:163;;:::i;:::-;595:952:5;;;3877:9:24;595:952:5;;3861:33:24;595:952:5;;;;3861:33:24;;:::i;:::-;595:952:5;;;;;;;-1:-1:-1;;;;;;;;;;;595:952:5;;12663:47:162;595:952:5;;;;;;;;;12663:47:162;;;3877:9:24;12663:47:162;;595:952:5;12663:47:162;;;;;;;-1:-1:-1;12663:47:162;;;2315:337:24;-1:-1:-1;;;;;;;;;;;;595:952:5;;;-1:-1:-1;;;6980:68:162;;3877:9:24;6980:68:162;;595:952:5;;;;12663:47:162;595:952:5;;;;;-1:-1:-1;595:952:5;;;;;;;;;;6980:68:162;;595:952:5;;-1:-1:-1;;;;;;595:952:5;6980:68:162;;;;;;;-1:-1:-1;6980:68:162;;;2315:337:24;3203:37:26;595:952:5;3203:37:26;3199:94;;325937:72:163;370021:7;595:952:5;;;;-1:-1:-1;595:952:5;6429:21:26;595:952:5;;;-1:-1:-1;595:952:5;;325937:72:163;;:::i;:::-;4370:21:24;;;:::i;:::-;;370021:7:163;;;;:::i;:::-;2489:10:24;370021:7:163;;:::i;:::-;6980:68:162;595:952:5;;;;;-1:-1:-1;;;;;;;;;;;595:952:5;;;-1:-1:-1;595:952:5;;;;;;;;;;6980:68:162;;3877:9:24;6980:68:162;;595:952:5;12663:47:162;595:952:5;;;;;;;;6980:68:162;;;;;;;-1:-1:-1;6980:68:162;;;2315:337:24;4597:34;4569:81;325937:72:163;4597:34:24;;;2609:14;4597:34;;:::i;:::-;325937:72:163;;:::i;:::-;2489:10:24;4569:81;;:::i;:::-;2609:14;:::i;:::-;595:952:5;2315:337:24;:::o;6980:68:162:-;;;;595:952:5;6980:68:162;;595:952:5;6980:68:162;;;;;;595:952:5;6980:68:162;;;:::i;:::-;;;595:952:5;;;;;;6980:68:162;;4569:81:24;6980:68:162;;;;;-1:-1:-1;6980:68:162;;;;;;595:952:5;6980:68:162;;595:952:5;6980:68:162;;;;;;595:952:5;6980:68:162;;;:::i;:::-;;;595:952:5;;;;;6980:68:162;;;;;;;-1:-1:-1;6980:68:162;;12663:47;;;595:952:5;12663:47:162;;595:952:5;12663:47:162;;;;;;595:952:5;12663:47:162;;;:::i;:::-;;;595:952:5;;;;;;;;12663:47:162;;;;;-1:-1:-1;12663:47:162;;595:952:5;;;;;;;;;;;;;;;;-1:-1:-1;;595:952:5;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;595:952:5;;;;;;:::o;1691:548:24:-;;1812:6;;;:::i;:::-;1935:10;-1:-1:-1;595:952:5;1925:9:24;595:952:5;;1909:38:24;595:952:5;-1:-1:-1;595:952:5;;1909:38:24;;:::i;:::-;1976:70;595:952:5;6306:25:26;595:952:5;2013:31:24;6294:37:26;6290:94;;6429:21;595:952:5;;;;2013:31:24;-1:-1:-1;595:952:5;;;2199:11:24;;595:952:5;370021:7:163;;595:952:5;;325937:72:163;;595:952:5;325937:72:163;;:::i;:::-;2056:21:24;;;:::i;:::-;;370021:7:163;1935:10:24;370021:7:163;;:::i;:::-;1935:10:24;2199:11;:::i;7864:178:20:-;4586:62:162;595:952:5;;;-1:-1:-1;;;16241:45:162;;;;;595:952:5;;;;368839:10:163;595:952:5;;;;16241:45:162;;595:952:5;;;;;;-1:-1:-1;;;;;595:952:5;16241:45:162;;;;;;;-1:-1:-1;16241:45:162;;;7864:178:20;7951:29;;7947:89;;7864:178::o;7947:89::-;8003:22;;;-1:-1:-1;8003:22:20;16241:45:162;-1:-1:-1;8003:22:20;16241:45:162;;;;;;;;;;;;;;;;;:::i;:::-;;;595:952:5;;;;;;;;;;;;16241:45:162;;;;;;-1:-1:-1;16241:45:162;;4800:431:20;-1:-1:-1;;;;;595:952:5;;;4800:431:20;;4897:19;;4893:84;;-1:-1:-1;;;;;595:952:5;;;4991:21:20;;4987:87;;595:952:5;370021:7:163;595:952:5;;370021:7:163;595:952:5;4914:1:20;595:952:5;5084:11:20;595:952:5;;;4914:1:20;595:952:5;5084:27:20;-1:-1:-1;595:952:5;;;;;-1:-1:-1;595:952:5;;370832:13:163;370840:4;370832:13;;:::i;:::-;370021:7;;:::i;:::-;4800:431:20:o;4987:87::-;5035:28;;;;4914:1;5035:28;;595:952:5;;4914:1:20;5035:28;4893:84;4939:27;;;;4914:1;4939:27;;595:952:5;;4914:1:20;4939:27;3034:276:24;;;-1:-1:-1;;;;;595:952:5;;;3034:276:24;6337:18:20;;6333:80;;-1:-1:-1;;;;;595:952:5;;;6427:16:20;;6423:78;;344922:44:163;325937:72;344922:44;;;:::i;:::-;325937:72;;:::i;:::-;595:952:5;;6353:1:20;595:952:5;6716:9:20;595:952:5;;6353:1:20;595:952:5;;;;;6707:38:20;;2482:22:163;196412:64;;3034:276:24;2482:22:163;;196485:64;;3034:276:24;-1:-1:-1;;;;;;;;;;;595:952:5;;;-1:-1:-1;;;5329:65:162;;6716:9:20;5329:65:162;;;595:952:5;;;;;;;;;;;;;;-1:-1:-1;;;;;;595:952:5;;;;;;;;;;;;;;-1:-1:-1;;;;;595:952:5;5329:65:162;;;;;;;6353:1:20;5329:65:162;;;3034:276:24;5320:74:162;;370021:7:163;6894:40:20;5320:74:162;;370021:7:163;5320:74:162;595:952:5;;6353:1:20;595:952:5;6716:9:20;595:952:5;;;;6353:1:20;595:952:5;;370832:13:163;370840:4;370832:13;;:::i;370021:7::-;595:952:5;6353:1:20;595:952:5;6716:9:20;595:952:5;;;6353:1:20;595:952:5;;6894:40:20;:::i;:::-;595:952:5;6353:1:20;595:952:5;6716:9:20;595:952:5;;;;6353:1:20;595:952:5;;370832:13:163;370840:4;370832:13;;:::i;370021:7::-;8596:13:26;595:952:5;-1:-1:-1;;595:952:5;;;;;;;;3261:42:24;595:952:5;;;;;;3261:42:24;3034:276::o;5329:65:162:-;;;;595:952:5;5329:65:162;;595:952:5;5329:65:162;;;;;;595:952:5;5329:65:162;;;:::i;:::-;;;595:952:5;;;;;;370021:7:163;5329:65:162;;;;;-1:-1:-1;5329:65:162;;196485:64:163;344922:44;;;:::i;:::-;196485:64;;196412;344922:44;;;;:::i;:::-;196412:64;;;6423:78:20;6466:24;;;;6353:1;6466:24;;595:952:5;;6353:1:20;6466:24;6333:80;6378:24;;;;6353:1;6378:24;;595:952:5;;6353:1:20;6378:24;1796:162:34;1710:6;595:952:5;-1:-1:-1;;;;;595:952:5;735:10:52;1855:23:34;1851:101;;1796:162::o;344561:198:163:-;595:952:5;344561:198:163;595:952:5;344561:198:163;595:952:5;;;;;-1:-1:-1;;;;;;;;;;;595:952:5;;;-1:-1:-1;595:952:5;;;;;;;;;;;13336:164:162;;;;;595:952:5;13428:10:162;595:952:5;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;595:952:5;;;;13336:164:162;;;;;;;;;-1:-1:-1;13336:164:162;;;344561:198:163;-1:-1:-1;4586:62:162;595:952:5;-1:-1:-1;;;;;595:952:5;13510:53:162;;;;;595:952:5;;-1:-1:-1;;;13510:53:162;;13336:164;13510:53;;595:952:5;;;13428:10:162;595:952:5;;;;;-1:-1:-1;;595:952:5;;;;;;-1:-1:-1;;13510:53:162;;;;;;;;344662:90:163;344561:198;:::o;13510:53:162:-;-1:-1:-1;13510:53:162;;;:::i;:::-;344561:198:163;:::o;13336:164:162:-;;;595:952:5;13336:164:162;;595:952:5;13336:164:162;;;;;;595:952:5;13336:164:162;;;:::i;:::-;;;595:952:5;;;;;13336:164:162;;;;;;-1:-1:-1;13336:164:162;;199848:293:163;;2482:22;;199917:64;;199848:293;2482:22;;199990:64;;199848:293;595:952:5;;11129:64:162;595:952:5;;;;;-1:-1:-1;;;;;;;;;;;595:952:5;;;-1:-1:-1;595:952:5;;;;;;;;;;11129:64:162;;;;;595:952:5;;;;;;;;;;11129:64:162;;;;;;;-1:-1:-1;11129:64:162;;;200063:71:163;199848:293;:::o;11129:64:162:-;;;595:952:5;11129:64:162;;595:952:5;11129:64:162;;;;;;595:952:5;11129:64:162;;;:::i;:::-;;;595:952:5;;;;;199848:293:163;:::o;11129:64:162:-;;;-1:-1:-1;11129:64:162;;199990::163;344922:44;595:952:5;344922:44:163;;:::i;:::-;199990:64;;;;199917;344922:44;;;;:::i;:::-;199917:64;;;6796:231:26;6897:13;595:952:5;;6796:231:26;-1:-1:-1;;595:952:5;;;;370832:13:163;595:952:5;;;;6897:13:26;595:952:5;;-1:-1:-1;595:952:5;6945:18:26;595:952:5;;;;-1:-1:-1;595:952:5;;370840:4:163;370832:13;;:::i;196694:299::-;;2482:22;;196766:64;;196694:299;2482:22;;196839:64;;196694:299;595:952:5;;5706:65:162;595:952:5;;;;;-1:-1:-1;;;;;;;;;;;595:952:5;;;-1:-1:-1;595:952:5;;;;;;;;;;5706:65:162;;;;;595:952:5;;;;;;;;;;5706:65:162;;;;;;;-1:-1:-1;5706:65:162;;;196912:74:163;196694:299;:::o;196839:64::-;344922:44;595:952:5;344922:44:163;;:::i;:::-;196839:64;;;;196766;344922:44;;;;:::i;:::-;196766:64;;;15747:171:162;4586:62;595:952:5;-1:-1:-1;;;;;595:952:5;;15870:41:162;;;;;595:952:5;;-1:-1:-1;;;15870:41:162;;;;;595:952:5;;;;-1:-1:-1;;;;;595:952:5;;;;;;-1:-1:-1;;595:952:5;;;;;;-1:-1:-1;;15870:41:162;;;;;;;;15747:171;:::o;15870:41::-;-1:-1:-1;15870:41:162;;;:::i;12887:258::-;;13062:76;595:952:5;12887:258:162;-1:-1:-1;595:952:5;;;;;-1:-1:-1;;;;;;;;;;;595:952:5;;;;;;;;;;;;13062:76:162;;;;;595:952:5;;;;;;;;;13062:76:162;;;;;;;-1:-1:-1;13062:76:162;;;13053:85;12887:258;:::o;13815:243::-;-1:-1:-1;;;;;;;;;;;595:952:5;;;-1:-1:-1;;;13977:74:162;;595:952:5;13977:74:162;;;595:952:5;;;-1:-1:-1;;;595:952:5;;;;;;;;;;13977:74:162;;595:952:5;;-1:-1:-1;;;;;595:952:5;13977:74:162;;;;;;;595:952:5;13977:74:162;;;13968:83;13815:243;:::o","linkReferences":{},"immutableReferences":{"6748":[{"start":2589,"length":32},{"start":3353,"length":32}]}},"methodIdentifiers":{"acceptOwnership()":"79ba5097","allowance(address,address)":"dd62ed3e","approve(address,bytes32,bytes)":"b32c1001","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","getErrorCodeForTransferId(uint256)":"a5184baf","mint(address,uint64)":"2893c5b0","name()":"06fdde03","owner()":"8da5cb5b","pendingOwner()":"e30c3978","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,bytes32,bytes)":"7b7e0a5a","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,bytes32,bytes)":"9a094352","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorIndexInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorIndexIsNull\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TFHESenderNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TotalNumberErrorCodesEqualToZero\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"placeholder\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"transferId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"euint64\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"euint64\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"einput\",\"name\":\"encryptedAmount\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"inputProof\",\"type\":\"bytes\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"euint64\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"transferId\",\"type\":\"uint256\"}],\"name\":\"getErrorCodeForTransferId\",\"outputs\":[{\"internalType\":\"euint8\",\"name\":\"errorCode\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"einput\",\"name\":\"encryptedAmount\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"inputProof\",\"type\":\"bytes\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"euint64\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"euint64\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"einput\",\"name\":\"encryptedAmount\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"inputProof\",\"type\":\"bytes\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"params\":{\"owner\":\"Owner address.\",\"placeholder\":\"Placeholder.\",\"spender\":\"Spender address.\"}},\"Transfer(address,address,uint256)\":{\"params\":{\"from\":\"Sender address.\",\"to\":\"Receiver address.\",\"transferId\":\"If the implementation does not support error handling, it must be set to a default placeholder (typically equal to max(uint256). However, it must be set to a transferId if the implementation supports encrypted error handling.\"}}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"getErrorCodeForTransferId(uint256)\":{\"params\":{\"transferId\":\"Transfer id. It can be read from the `Transfer` event.\"},\"returns\":{\"errorCode\":\" Encrypted error code.\"}},\"mint(address,uint64)\":{\"params\":{\"amount\":\"Amount of tokens to mint.\",\"to\":\"Address to mint tokens to.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer.\"}},\"version\":1},\"userdoc\":{\"errors\":{\"ErrorIndexInvalid()\":[{\"notice\":\"Returned if the error index is invalid.\"}],\"ErrorIndexIsNull()\":[{\"notice\":\"Returned if the error index is null.\"}],\"TFHESenderNotAllowed()\":[{\"notice\":\"Returned when the `sender` is not allowed to access a value.\"}],\"TotalNumberErrorCodesEqualToZero()\":[{\"notice\":\"Returned if the total number of errors is equal to zero.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"notice\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}.\"},\"Transfer(address,address,uint256)\":{\"notice\":\"Emitted when tokens are moved from one account (`from`) to another (`to`).\"}},\"kind\":\"user\",\"methods\":{\"allowance(address,address)\":{\"notice\":\"See {IConfidentialERC20-allowance}.\"},\"approve(address,bytes32,bytes)\":{\"notice\":\"See {IConfidentialERC20-approve}.\"},\"approve(address,uint256)\":{\"notice\":\"See {IConfidentialERC20-approve}.\"},\"balanceOf(address)\":{\"notice\":\"See {IConfidentialERC20-balanceOf}.\"},\"decimals()\":{\"notice\":\"See {IConfidentialERC20-decimals}.\"},\"getErrorCodeForTransferId(uint256)\":{\"notice\":\"Return the error for a transfer id.\"},\"mint(address,uint64)\":{\"notice\":\"Mint tokens.\"},\"name()\":{\"notice\":\"See {IConfidentialERC20-name}.\"},\"symbol()\":{\"notice\":\"See {IConfidentialERC20-symbol}.\"},\"totalSupply()\":{\"notice\":\"See {IConfidentialERC20-totalSupply}.\"},\"transfer(address,bytes32,bytes)\":{\"notice\":\"See {IConfidentialERC20-transfer}.\"},\"transfer(address,uint256)\":{\"notice\":\"See {IConfidentialERC20-transfer}.\"},\"transferFrom(address,address,bytes32,bytes)\":{\"notice\":\"See {IConfidentialERC20-transferFrom}.\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"See {IConfidentialERC20-transferFrom}.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ERC20Encryption/CustomConfidentialERC20WithErrorsMintable.sol\":\"CustomConfidentialERC20WithErrorsMintable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@chainlink/=lib/chainlink/\",\":@ensdomains/=lib/v4-core/node_modules/@ensdomains/\",\":@httpz-contracts/=lib/httpz-contracts/contracts/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/universal-router/=lib/universal-router.git/\",\":@uniswap/v2-core/=lib/v2-core/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/\",\":@uniswap/v4-core/=lib/v4-core/\",\":@uniswap/v4-periphery/=lib/v4-periphery/\",\":chainlink/=lib/chainlink/\",\":ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":fhevm-contracts/=node_modules/fhevm-contracts/\",\":fhevm-core-contracts/=node_modules/fhevm-core-contracts/\",\":fhevm/=node_modules/fhevm/\",\":forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":httpz-contracts/=lib/httpz-contracts/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":permit2/=lib/permit2/\",\":solmate/=lib/permit2/lib/solmate/\",\":universal-router.git/=lib/universal-router.git/\",\":v2-core/=lib/v2-core/contracts/\",\":v3-core/=lib/v3-core/\",\":v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/\",\":v4-core/=lib/v4-core/src/\",\":v4-periphery/=lib/v4-periphery/\"],\"viaIR\":true},\"sources\":{\"contracts/ERC20Encryption/ConfidentialERC20Base.sol\":{\"keccak256\":\"0xa622900eae5b1f80c956ec16afec6e4ef6af141d7973b6d52167a86ae988272c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://45dcc2e65f2b601bf132eaae21b1ed2e5dd67c9644e6edcf856ea3274444b04e\",\"dweb:/ipfs/QmR4XvcnxE3JBfPNpLcyvPssdBqtMTd76gm6BWczaSMi9D\"]},\"contracts/ERC20Encryption/CustomConfidentialERC20WithErrors.sol\":{\"keccak256\":\"0xb04099f8c161a9541e2c63f23ee4b506c997a99dea6fce05363d89975d201a1e\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://9f7de2993949c23c100b7799f9bc58f43b77a92ce477b0624a9ff930842066d9\",\"dweb:/ipfs/QmeYrdxXD3TDZYGMka2ZA2DTqv2wepsrYfUKFjMopcKVbx\"]},\"contracts/ERC20Encryption/CustomConfidentialERC20WithErrorsMintable.sol\":{\"keccak256\":\"0xaf320e64dcefe01ba2d97981c4b6736f82bd593b0adf2656c9a566f6f9e91df5\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://ebffae47cbddbaa978e24e34b376a3bd2195719f425933ec2c484d283efba5f6\",\"dweb:/ipfs/QmYGJ7cPSUt4eUHjYfkaU3EaVmnxY58khRhBPLb8R6LV9C\"]},\"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol\":{\"keccak256\":\"0x8b45e5bb2fd9212f99e61b4d25b9c9d5ed7cb1a9a684aac34f752c568ef16c76\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://1ca71bb5bfbb2f8a0779f8394baeea01680619637abddb572017d05d96862591\",\"dweb:/ipfs/QmPCzGBE1m6WtDZxrVL5jzkduNaS7fjtYovUWdnzN34qjh\"]},\"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol\":{\"keccak256\":\"0xe016a085f72ca3cf6d78ec1cb2182a398106cb7d425e984776a9caab0bad2569\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://3e79dc5075469d660908f5f8b6d0c863b14459d60a0b06fb786d58de8cf30a94\",\"dweb:/ipfs/QmePGRGtoWBnQ8T6ZRyZgiwVh4r67kcmWejwKgjyYN4AAY\"]},\"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol\":{\"keccak256\":\"0xfe322c8f9a8e4fba881715901a5bafd2efa23394ecbc9ec84282818baeff0a07\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://13dba831528dd16408b7abab23eac0664a2a3e5ecbfe5e58e6e321cf2921668a\",\"dweb:/ipfs/QmPq4YeugbayWfeBJR8H7s4jHsnZkACQX2xbdNQ4sdvZrk\"]},\"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol\":{\"keccak256\":\"0xecc6289a9791bef254911393b51d2bfbddc5650ede7fbe7b5cc2b8d3eb01d7a6\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://7463278a20bc5d7fd8b7ec2cb8e592b2d1e0afcf8b59d35d6929d18661d4b38c\",\"dweb:/ipfs/QmTKPoABwNDmK7g7vkti1AkTpkUBHu3iX3zsXQsEuSiqBM\"]},\"lib/httpz-contracts/contracts/utils/EncryptedErrors.sol\":{\"keccak256\":\"0x0b8d08f392884add1af672018359e8980ee0b5e1662fe5e36eb31f053d1d4505\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://2903dd49a88b36aba2e8a45548b6a68d203887356ebdf452b10e0148954ba1a5\",\"dweb:/ipfs/QmTRuP4QXagoV2cLr2ctzFtNK7FK1cDXMYm4feMoMsYoWG\"]},\"lib/httpz-contracts/contracts/utils/TFHEErrors.sol\":{\"keccak256\":\"0x5fef7c2d7d4449d724a2800b37dfcc61e2b635f2747378ce222b9187425f2d13\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://7c2ef113faaec2d74c8d958f80687d0b676082d6231720917aaa8aa934d689a3\",\"dweb:/ipfs/QmNn474JDQ5zvVDwEuicJs6Xq8YEXWGZLoW4KeTWDVG31f\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol\":{\"keccak256\":\"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0\",\"dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/fhevm/config/ZamaFHEVMConfig.sol\":{\"keccak256\":\"0x41782f4c707b81399916544fa2e7be94a695fa4ba468542732d29d3e383c0315\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://45a95a55c4bbb3418c2133cba6ed21a9444bb4e38d38b32cc707b7493cece2ca\",\"dweb:/ipfs/QmVU8EKmZgscdM43RgXD4EgbVMhQxBusTmBren3pbn1pUW\"]},\"node_modules/fhevm/lib/Impl.sol\":{\"keccak256\":\"0x89d4968cd956a8931f1a8a177b3bef1c6cf88a03665083db74430add50b88f21\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://aaaef2c82d56dacfb08946842ea1ce26757d13f3251de62fa79222232dfcb43c\",\"dweb:/ipfs/QmQ6QZPxJw9jb3qjRYCX7pMQVoYogjTsYgmdEnB3EnwFRy\"]},\"node_modules/fhevm/lib/TFHE.sol\":{\"keccak256\":\"0x221799c8332f83ab65a0b71746409f0c2c89f1cd8d9ba4091d967c667e1df734\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://2dba387fbc612a2ee64063b0ee6c27304b3944423d11045acc50abd84577fb5f\",\"dweb:/ipfs/QmThptDGnpd8PuncFk1rnQoCzEqwUED622yC9xZgFhwY59\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[],"type":"error","name":"ErrorIndexInvalid"},{"inputs":[],"type":"error","name":"ErrorIndexIsNull"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"TFHESenderNotAllowed"},{"inputs":[],"type":"error","name":"TotalNumberErrorCodesEqualToZero"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"placeholder","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint64","name":"amount","type":"uint64","indexed":false}],"type":"event","name":"Mint","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferStarted","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"transferId","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"acceptOwnership"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"euint64","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"euint64","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"einput","name":"encryptedAmount","type":"bytes32"},{"internalType":"bytes","name":"inputProof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"euint64","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"transferId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getErrorCodeForTransferId","outputs":[{"internalType":"euint8","name":"errorCode","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint64","name":"amount","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"einput","name":"encryptedAmount","type":"bytes32"},{"internalType":"bytes","name":"inputProof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"euint64","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"euint64","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"einput","name":"encryptedAmount","type":"bytes32"},{"internalType":"bytes","name":"inputProof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"getErrorCodeForTransferId(uint256)":{"params":{"transferId":"Transfer id. It can be read from the `Transfer` event."},"returns":{"errorCode":" Encrypted error code."}},"mint(address,uint64)":{"params":{"amount":"Amount of tokens to mint.","to":"Address to mint tokens to."}},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer."}},"version":1},"userdoc":{"kind":"user","methods":{"allowance(address,address)":{"notice":"See {IConfidentialERC20-allowance}."},"approve(address,bytes32,bytes)":{"notice":"See {IConfidentialERC20-approve}."},"approve(address,uint256)":{"notice":"See {IConfidentialERC20-approve}."},"balanceOf(address)":{"notice":"See {IConfidentialERC20-balanceOf}."},"decimals()":{"notice":"See {IConfidentialERC20-decimals}."},"getErrorCodeForTransferId(uint256)":{"notice":"Return the error for a transfer id."},"mint(address,uint64)":{"notice":"Mint tokens."},"name()":{"notice":"See {IConfidentialERC20-name}."},"symbol()":{"notice":"See {IConfidentialERC20-symbol}."},"totalSupply()":{"notice":"See {IConfidentialERC20-totalSupply}."},"transfer(address,bytes32,bytes)":{"notice":"See {IConfidentialERC20-transfer}."},"transfer(address,uint256)":{"notice":"See {IConfidentialERC20-transfer}."},"transferFrom(address,address,bytes32,bytes)":{"notice":"See {IConfidentialERC20-transferFrom}."},"transferFrom(address,address,uint256)":{"notice":"See {IConfidentialERC20-transferFrom}."}},"version":1}},"settings":{"remappings":["@chainlink/=lib/chainlink/","@ensdomains/=lib/v4-core/node_modules/@ensdomains/","@httpz-contracts/=lib/httpz-contracts/contracts/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@uniswap/universal-router/=lib/universal-router.git/","@uniswap/v2-core/=lib/v2-core/","@uniswap/v3-core/=lib/v3-core/","@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/","@uniswap/v4-core/=lib/v4-core/","@uniswap/v4-periphery/=lib/v4-periphery/","chainlink/=lib/chainlink/","ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","eth-gas-reporter/=node_modules/eth-gas-reporter/","fhevm-contracts/=node_modules/fhevm-contracts/","fhevm-core-contracts/=node_modules/fhevm-core-contracts/","fhevm/=node_modules/fhevm/","forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","httpz-contracts/=lib/httpz-contracts/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","permit2/=lib/permit2/","solmate/=lib/permit2/lib/solmate/","universal-router.git/=lib/universal-router.git/","v2-core/=lib/v2-core/contracts/","v3-core/=lib/v3-core/","v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/","v4-core/=lib/v4-core/src/","v4-periphery/=lib/v4-periphery/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/ERC20Encryption/CustomConfidentialERC20WithErrorsMintable.sol":"CustomConfidentialERC20WithErrorsMintable"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/ERC20Encryption/ConfidentialERC20Base.sol":{"keccak256":"0xa622900eae5b1f80c956ec16afec6e4ef6af141d7973b6d52167a86ae988272c","urls":["bzz-raw://45dcc2e65f2b601bf132eaae21b1ed2e5dd67c9644e6edcf856ea3274444b04e","dweb:/ipfs/QmR4XvcnxE3JBfPNpLcyvPssdBqtMTd76gm6BWczaSMi9D"],"license":"MIT"},"contracts/ERC20Encryption/CustomConfidentialERC20WithErrors.sol":{"keccak256":"0xb04099f8c161a9541e2c63f23ee4b506c997a99dea6fce05363d89975d201a1e","urls":["bzz-raw://9f7de2993949c23c100b7799f9bc58f43b77a92ce477b0624a9ff930842066d9","dweb:/ipfs/QmeYrdxXD3TDZYGMka2ZA2DTqv2wepsrYfUKFjMopcKVbx"],"license":"BSD-3-Clause-Clear"},"contracts/ERC20Encryption/CustomConfidentialERC20WithErrorsMintable.sol":{"keccak256":"0xaf320e64dcefe01ba2d97981c4b6736f82bd593b0adf2656c9a566f6f9e91df5","urls":["bzz-raw://ebffae47cbddbaa978e24e34b376a3bd2195719f425933ec2c484d283efba5f6","dweb:/ipfs/QmYGJ7cPSUt4eUHjYfkaU3EaVmnxY58khRhBPLb8R6LV9C"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol":{"keccak256":"0x8b45e5bb2fd9212f99e61b4d25b9c9d5ed7cb1a9a684aac34f752c568ef16c76","urls":["bzz-raw://1ca71bb5bfbb2f8a0779f8394baeea01680619637abddb572017d05d96862591","dweb:/ipfs/QmPCzGBE1m6WtDZxrVL5jzkduNaS7fjtYovUWdnzN34qjh"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol":{"keccak256":"0xe016a085f72ca3cf6d78ec1cb2182a398106cb7d425e984776a9caab0bad2569","urls":["bzz-raw://3e79dc5075469d660908f5f8b6d0c863b14459d60a0b06fb786d58de8cf30a94","dweb:/ipfs/QmePGRGtoWBnQ8T6ZRyZgiwVh4r67kcmWejwKgjyYN4AAY"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol":{"keccak256":"0xfe322c8f9a8e4fba881715901a5bafd2efa23394ecbc9ec84282818baeff0a07","urls":["bzz-raw://13dba831528dd16408b7abab23eac0664a2a3e5ecbfe5e58e6e321cf2921668a","dweb:/ipfs/QmPq4YeugbayWfeBJR8H7s4jHsnZkACQX2xbdNQ4sdvZrk"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol":{"keccak256":"0xecc6289a9791bef254911393b51d2bfbddc5650ede7fbe7b5cc2b8d3eb01d7a6","urls":["bzz-raw://7463278a20bc5d7fd8b7ec2cb8e592b2d1e0afcf8b59d35d6929d18661d4b38c","dweb:/ipfs/QmTKPoABwNDmK7g7vkti1AkTpkUBHu3iX3zsXQsEuSiqBM"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/utils/EncryptedErrors.sol":{"keccak256":"0x0b8d08f392884add1af672018359e8980ee0b5e1662fe5e36eb31f053d1d4505","urls":["bzz-raw://2903dd49a88b36aba2e8a45548b6a68d203887356ebdf452b10e0148954ba1a5","dweb:/ipfs/QmTRuP4QXagoV2cLr2ctzFtNK7FK1cDXMYm4feMoMsYoWG"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/utils/TFHEErrors.sol":{"keccak256":"0x5fef7c2d7d4449d724a2800b37dfcc61e2b635f2747378ce222b9187425f2d13","urls":["bzz-raw://7c2ef113faaec2d74c8d958f80687d0b676082d6231720917aaa8aa934d689a3","dweb:/ipfs/QmNn474JDQ5zvVDwEuicJs6Xq8YEXWGZLoW4KeTWDVG31f"],"license":"BSD-3-Clause-Clear"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol":{"keccak256":"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c","urls":["bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0","dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/fhevm/config/ZamaFHEVMConfig.sol":{"keccak256":"0x41782f4c707b81399916544fa2e7be94a695fa4ba468542732d29d3e383c0315","urls":["bzz-raw://45a95a55c4bbb3418c2133cba6ed21a9444bb4e38d38b32cc707b7493cece2ca","dweb:/ipfs/QmVU8EKmZgscdM43RgXD4EgbVMhQxBusTmBren3pbn1pUW"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/lib/Impl.sol":{"keccak256":"0x89d4968cd956a8931f1a8a177b3bef1c6cf88a03665083db74430add50b88f21","urls":["bzz-raw://aaaef2c82d56dacfb08946842ea1ce26757d13f3251de62fa79222232dfcb43c","dweb:/ipfs/QmQ6QZPxJw9jb3qjRYCX7pMQVoYogjTsYgmdEnB3EnwFRy"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/lib/TFHE.sol":{"keccak256":"0x221799c8332f83ab65a0b71746409f0c2c89f1cd8d9ba4091d967c667e1df734","urls":["bzz-raw://2dba387fbc612a2ee64063b0ee6c27304b3944423d11045acc50abd84577fb5f","dweb:/ipfs/QmThptDGnpd8PuncFk1rnQoCzEqwUED622yC9xZgFhwY59"],"license":"BSD-3-Clause-Clear"}},"version":1},"id":5} \ No newline at end of file diff --git a/out/CustomConfidentialERC20Wrapped.sol/CustomConfidentialERC20Wrapped.json b/out/CustomConfidentialERC20Wrapped.sol/CustomConfidentialERC20Wrapped.json new file mode 100644 index 0000000..fb389e5 --- /dev/null +++ b/out/CustomConfidentialERC20Wrapped.sol/CustomConfidentialERC20Wrapped.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"ERC20_TOKEN","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20Metadata"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"euint64"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"euint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"encryptedAmount","type":"bytes32","internalType":"einput"},{"name":"inputProof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"euint64"}],"stateMutability":"view"},{"type":"function","name":"callbackUnwrap","inputs":[{"name":"requestId","type":"uint256","internalType":"uint256"},{"name":"canUnwrap","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"isAccountRestricted","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"isRestricted","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"encryptedAmount","type":"bytes32","internalType":"einput"},{"name":"inputProof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"euint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"euint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"encryptedAmount","type":"bytes32","internalType":"einput"},{"name":"inputProof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"unwrap","inputs":[{"name":"amount","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unwrapRequests","inputs":[{"name":"requestId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"account","type":"address","internalType":"address"},{"name":"amount","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"wrap","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"placeholder","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"transferId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Unwrap","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"UnwrapFailNotEnoughBalance","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"UnwrapFailTransferFail","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Wrap","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"error","name":"AmountTooHigh","inputs":[]},{"type":"error","name":"CannotTransferOrUnwrap","inputs":[]},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"MaxDecryptionDelayTooHigh","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"TFHESenderNotAllowed","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"ERC20_TOKEN()":"efc4c631","allowance(address,address)":"dd62ed3e","approve(address,bytes32,bytes)":"b32c1001","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","callbackUnwrap(uint256,bool)":"b820e6ce","decimals()":"313ce567","isAccountRestricted(address)":"e6e09505","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,bytes32,bytes)":"7b7e0a5a","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,bytes32,bytes)":"9a094352","transferFrom(address,address,uint256)":"23b872dd","unwrap(uint64)":"dc412e83","unwrapRequests(uint256)":"d99c2a72","wrap(uint256)":"ea598cb0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AmountTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotTransferOrUnwrap\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxDecryptionDelayTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TFHESenderNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"placeholder\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"transferId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"Unwrap\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"UnwrapFailNotEnoughBalance\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"UnwrapFailTransferFail\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"Wrap\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ERC20_TOKEN\",\"outputs\":[{\"internalType\":\"contract IERC20Metadata\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"euint64\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"euint64\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"einput\",\"name\":\"encryptedAmount\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"inputProof\",\"type\":\"bytes\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"euint64\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"canUnwrap\",\"type\":\"bool\"}],\"name\":\"callbackUnwrap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isAccountRestricted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isRestricted\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"einput\",\"name\":\"encryptedAmount\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"inputProof\",\"type\":\"bytes\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"euint64\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"euint64\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"einput\",\"name\":\"encryptedAmount\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"inputProof\",\"type\":\"bytes\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"unwrap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"}],\"name\":\"unwrapRequests\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"wrap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This implementation does not support tokens with rebase functions or tokens with a fee on transfer. All ERC20 tokens must have decimals superior or equal to 6 decimals.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"params\":{\"owner\":\"Owner address.\",\"placeholder\":\"Placeholder.\",\"spender\":\"Spender address.\"}},\"Transfer(address,address,uint256)\":{\"params\":{\"from\":\"Sender address.\",\"to\":\"Receiver address.\",\"transferId\":\"If the implementation does not support error handling, it must be set to a default placeholder (typically equal to max(uint256). However, it must be set to a transferId if the implementation supports encrypted error handling.\"}},\"Unwrap(address,uint64)\":{\"params\":{\"account\":\"Address of the account that unwraps tokens.\",\"amount\":\"Amount to unwrap.\"}},\"UnwrapFailNotEnoughBalance(address,uint64)\":{\"params\":{\"account\":\"Address of the account that tried to unwrap.\",\"amount\":\"Amount to unwrap.\"}},\"UnwrapFailTransferFail(address,uint64)\":{\"params\":{\"account\":\"Address of the account that tried to unwrap.\",\"amount\":\"Amount to unwrap.\"}},\"Wrap(address,uint64)\":{\"params\":{\"account\":\"Address of the account that wraps tokens.\",\"amount\":\"Amount to wrap.\"}}},\"kind\":\"dev\",\"methods\":{\"callbackUnwrap(uint256,bool)\":{\"params\":{\"canUnwrap\":\"Whether it can be unwrapped.\",\"requestId\":\"Request id.\"}},\"constructor\":{\"details\":\"The name/symbol are autogenerated. For instance, \\\"Wrapped Ether\\\" --> \\\"Confidential Wrapped Ether\\\" \\\"WETH\\\" --> \\\"WETHc\\\".Do not use a small value in production to avoid security issues if the response cannot be processed because the block time is higher than the delay. The current implementation expects the Gateway to always return a decrypted value within the delay specified, as long as it is sufficient enough.\",\"params\":{\"erc20_\":\"Address of the ERC20 token to wrap/unwrap.\",\"maxDecryptionDelay_\":\"Maximum delay for the Gateway to decrypt.\"}},\"unwrap(uint64)\":{\"params\":{\"amount\":\"Amount to unwrap.\"}},\"wrap(uint256)\":{\"params\":{\"amount\":\"Amount to wrap.\"}}},\"title\":\"ConfidentialERC20Wrapped.\",\"version\":1},\"userdoc\":{\"errors\":{\"AmountTooHigh()\":[{\"notice\":\"Returned if the amount is greater than 2**64.\"}],\"CannotTransferOrUnwrap()\":[{\"notice\":\"Returned if user cannot transfer or mint.\"}],\"MaxDecryptionDelayTooHigh()\":[{\"notice\":\"Returned if the maximum decryption delay is higher than 1 day.\"}],\"TFHESenderNotAllowed()\":[{\"notice\":\"Returned when the `sender` is not allowed to access a value.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"notice\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}.\"},\"Transfer(address,address,uint256)\":{\"notice\":\"Emitted when tokens are moved from one account (`from`) to another (`to`).\"},\"Unwrap(address,uint64)\":{\"notice\":\"Emitted when token is unwrapped.\"},\"UnwrapFailNotEnoughBalance(address,uint64)\":{\"notice\":\"Emitted if unwrap fails due to lack of funds.\"},\"UnwrapFailTransferFail(address,uint64)\":{\"notice\":\"Emitted if unwrap fails due to fail transfer.\"},\"Wrap(address,uint64)\":{\"notice\":\"Emitted when token is wrapped.\"}},\"kind\":\"user\",\"methods\":{\"ERC20_TOKEN()\":{\"notice\":\"ERC20 token that is wrapped.\"},\"allowance(address,address)\":{\"notice\":\"See {IConfidentialERC20-allowance}.\"},\"approve(address,bytes32,bytes)\":{\"notice\":\"See {IConfidentialERC20-approve}.\"},\"approve(address,uint256)\":{\"notice\":\"See {IConfidentialERC20-approve}.\"},\"balanceOf(address)\":{\"notice\":\"See {IConfidentialERC20-balanceOf}.\"},\"callbackUnwrap(uint256,bool)\":{\"notice\":\"Callback function for the gateway.\"},\"decimals()\":{\"notice\":\"See {IConfidentialERC20-decimals}.\"},\"isAccountRestricted(address)\":{\"notice\":\"Tracks whether the account can move funds.\"},\"name()\":{\"notice\":\"See {IConfidentialERC20-name}.\"},\"symbol()\":{\"notice\":\"See {IConfidentialERC20-symbol}.\"},\"totalSupply()\":{\"notice\":\"See {IConfidentialERC20-totalSupply}.\"},\"transfer(address,bytes32,bytes)\":{\"notice\":\"See {IConfidentialERC20-transfer}.\"},\"transfer(address,uint256)\":{\"notice\":\"See {IConfidentialERC20-transfer}.\"},\"transferFrom(address,address,bytes32,bytes)\":{\"notice\":\"See {IConfidentialERC20-transferFrom}.\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"See {IConfidentialERC20-transferFrom}.\"},\"unwrap(uint64)\":{\"notice\":\"Unwrap ConfidentialERC20 tokens to standard ERC20 tokens.\"},\"unwrapRequests(uint256)\":{\"notice\":\"Tracks the unwrap request to a unique request id.\"},\"wrap(uint256)\":{\"notice\":\"Wrap ERC20 tokens to an encrypted format.\"}},\"notice\":\"This contract allows users to wrap/unwrap trustlessly ERC20 tokens to ConfidentialERC20 tokens. It inherits ConfidentialERC20Base to allow implementation contracts to inherit both from ConfidentialERC20WithErrors and ConfidentialERC20Wrapped.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ERC20Encryption/CustomConfidentialERC20Wrapped.sol\":\"CustomConfidentialERC20Wrapped\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@chainlink/=lib/chainlink/\",\":@ensdomains/=lib/v4-core/node_modules/@ensdomains/\",\":@httpz-contracts/=lib/httpz-contracts/contracts/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/universal-router/=lib/universal-router.git/\",\":@uniswap/v2-core/=lib/v2-core/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/\",\":@uniswap/v4-core/=lib/v4-core/\",\":@uniswap/v4-periphery/=lib/v4-periphery/\",\":chainlink/=lib/chainlink/\",\":ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":fhevm-contracts/=node_modules/fhevm-contracts/\",\":fhevm-core-contracts/=node_modules/fhevm-core-contracts/\",\":fhevm/=node_modules/fhevm/\",\":forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":httpz-contracts/=lib/httpz-contracts/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":permit2/=lib/permit2/\",\":solmate/=lib/permit2/lib/solmate/\",\":universal-router.git/=lib/universal-router.git/\",\":v2-core/=lib/v2-core/contracts/\",\":v3-core/=lib/v3-core/\",\":v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/\",\":v4-core/=lib/v4-core/src/\",\":v4-periphery/=lib/v4-periphery/\"],\"viaIR\":true},\"sources\":{\"contracts/ERC20Encryption/ConfidentialERC20Base.sol\":{\"keccak256\":\"0xa622900eae5b1f80c956ec16afec6e4ef6af141d7973b6d52167a86ae988272c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://45dcc2e65f2b601bf132eaae21b1ed2e5dd67c9644e6edcf856ea3274444b04e\",\"dweb:/ipfs/QmR4XvcnxE3JBfPNpLcyvPssdBqtMTd76gm6BWczaSMi9D\"]},\"contracts/ERC20Encryption/CustomConfidentialERC20Wrapped.sol\":{\"keccak256\":\"0xe3f6e6a47070a54952ac2dd5e008c7997322a16e72f4114a2ec48f45e3bc8cea\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://8b47026e8a91b2a0212d621e0b2a8452e7402636f7fbbfe857d8cb6809b9310d\",\"dweb:/ipfs/QmPYT4Q68jt5Yac6x2tdWHrDcBnjLdkY5JqPnLcCpswQxo\"]},\"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol\":{\"keccak256\":\"0x8b45e5bb2fd9212f99e61b4d25b9c9d5ed7cb1a9a684aac34f752c568ef16c76\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://1ca71bb5bfbb2f8a0779f8394baeea01680619637abddb572017d05d96862591\",\"dweb:/ipfs/QmPCzGBE1m6WtDZxrVL5jzkduNaS7fjtYovUWdnzN34qjh\"]},\"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol\":{\"keccak256\":\"0xe016a085f72ca3cf6d78ec1cb2182a398106cb7d425e984776a9caab0bad2569\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://3e79dc5075469d660908f5f8b6d0c863b14459d60a0b06fb786d58de8cf30a94\",\"dweb:/ipfs/QmePGRGtoWBnQ8T6ZRyZgiwVh4r67kcmWejwKgjyYN4AAY\"]},\"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20Wrapped.sol\":{\"keccak256\":\"0x72c5379fb2a7e1701a4686f60831bfc474350a42f0660aea815a5ce910cba38b\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://118fac79c89e142247e94763a1ca1235c307a67b37d68fa45d94125bc85c2cb8\",\"dweb:/ipfs/QmcE9P74NQQKnmW9vdtGb8KrWgJWH6K3bNTdrMxrPi716c\"]},\"lib/httpz-contracts/contracts/utils/TFHEErrors.sol\":{\"keccak256\":\"0x5fef7c2d7d4449d724a2800b37dfcc61e2b635f2747378ce222b9187425f2d13\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://7c2ef113faaec2d74c8d958f80687d0b676082d6231720917aaa8aa934d689a3\",\"dweb:/ipfs/QmNn474JDQ5zvVDwEuicJs6Xq8YEXWGZLoW4KeTWDVG31f\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x4ea01544758fd2c7045961904686bfe232d2220a04ecaa2d6b08dac17827febf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fabe6bef5167ae741dd8c22d7f81d3f9120bd61b290762a2e8f176712567d329\",\"dweb:/ipfs/QmSnEitJ6xmf1SSAUeZozD7Gx7h8bNnX3a1ZBzqeivsvVg\"]},\"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol\":{\"keccak256\":\"0x534bf5c25d6003a8ce50b400d20fa460c03169ad7baa90d47a912917c36dfe2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc0cc39c40ea23d3c46e8517e19ebdd877719d3159fa032f2a91802cdd205c79\",\"dweb:/ipfs/QmSoNh7HTkD4TJcBkBKSGSPMMpLUZKE7s9f2G6mjdaJywg\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889\",\"dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/fhevm/gateway/GatewayCaller.sol\":{\"keccak256\":\"0xd19fd7715f0c5b479bf0cd8e3108cc8da7deae2d4fc7fb5ab089ebf2d76a0652\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://6386c509464cefe5a41903ca837da46a21b8042d13ccde656158efc48cd70ea8\",\"dweb:/ipfs/QmUn7C6aZwKmEmKsphBshBezXXGZtLMyfaeZAyuZoRsBWU\"]},\"node_modules/fhevm/gateway/lib/Gateway.sol\":{\"keccak256\":\"0x9585a649e3001a4b8768ab6e2597b416f680bcc537309cd50b60e023e9791318\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://a1b055bfb067cc247d4bd60b5f8348f667cbe79717a5753cd6412955277345d0\",\"dweb:/ipfs/QmTveBaQg9GUdtrrxcR4RsiyAEmoEKGL4gn6E1gThR1ph5\"]},\"node_modules/fhevm/lib/Impl.sol\":{\"keccak256\":\"0x89d4968cd956a8931f1a8a177b3bef1c6cf88a03665083db74430add50b88f21\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://aaaef2c82d56dacfb08946842ea1ce26757d13f3251de62fa79222232dfcb43c\",\"dweb:/ipfs/QmQ6QZPxJw9jb3qjRYCX7pMQVoYogjTsYgmdEnB3EnwFRy\"]},\"node_modules/fhevm/lib/TFHE.sol\":{\"keccak256\":\"0x221799c8332f83ab65a0b71746409f0c2c89f1cd8d9ba4091d967c667e1df734\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://2dba387fbc612a2ee64063b0ee6c27304b3944423d11045acc50abd84577fb5f\",\"dweb:/ipfs/QmThptDGnpd8PuncFk1rnQoCzEqwUED622yC9xZgFhwY59\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AmountTooHigh"},{"inputs":[],"type":"error","name":"CannotTransferOrUnwrap"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[],"type":"error","name":"MaxDecryptionDelayTooHigh"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"TFHESenderNotAllowed"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"placeholder","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"transferId","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint64","name":"amount","type":"uint64","indexed":false}],"type":"event","name":"Unwrap","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false},{"internalType":"uint64","name":"amount","type":"uint64","indexed":false}],"type":"event","name":"UnwrapFailNotEnoughBalance","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false},{"internalType":"uint64","name":"amount","type":"uint64","indexed":false}],"type":"event","name":"UnwrapFailTransferFail","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint64","name":"amount","type":"uint64","indexed":false}],"type":"event","name":"Wrap","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"ERC20_TOKEN","outputs":[{"internalType":"contract IERC20Metadata","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"euint64","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"euint64","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"einput","name":"encryptedAmount","type":"bytes32"},{"internalType":"bytes","name":"inputProof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"euint64","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"},{"internalType":"bool","name":"canUnwrap","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"callbackUnwrap"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isAccountRestricted","outputs":[{"internalType":"bool","name":"isRestricted","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"einput","name":"encryptedAmount","type":"bytes32"},{"internalType":"bytes","name":"inputProof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"euint64","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"euint64","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"einput","name":"encryptedAmount","type":"bytes32"},{"internalType":"bytes","name":"inputProof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"amount","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"unwrap"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"}],"stateMutability":"view","type":"function","name":"unwrapRequests","outputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint64","name":"amount","type":"uint64"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"wrap"}],"devdoc":{"kind":"dev","methods":{"callbackUnwrap(uint256,bool)":{"params":{"canUnwrap":"Whether it can be unwrapped.","requestId":"Request id."}},"constructor":{"details":"The name/symbol are autogenerated. For instance, \"Wrapped Ether\" --> \"Confidential Wrapped Ether\" \"WETH\" --> \"WETHc\".Do not use a small value in production to avoid security issues if the response cannot be processed because the block time is higher than the delay. The current implementation expects the Gateway to always return a decrypted value within the delay specified, as long as it is sufficient enough.","params":{"erc20_":"Address of the ERC20 token to wrap/unwrap.","maxDecryptionDelay_":"Maximum delay for the Gateway to decrypt."}},"unwrap(uint64)":{"params":{"amount":"Amount to unwrap."}},"wrap(uint256)":{"params":{"amount":"Amount to wrap."}}},"version":1},"userdoc":{"kind":"user","methods":{"ERC20_TOKEN()":{"notice":"ERC20 token that is wrapped."},"allowance(address,address)":{"notice":"See {IConfidentialERC20-allowance}."},"approve(address,bytes32,bytes)":{"notice":"See {IConfidentialERC20-approve}."},"approve(address,uint256)":{"notice":"See {IConfidentialERC20-approve}."},"balanceOf(address)":{"notice":"See {IConfidentialERC20-balanceOf}."},"callbackUnwrap(uint256,bool)":{"notice":"Callback function for the gateway."},"decimals()":{"notice":"See {IConfidentialERC20-decimals}."},"isAccountRestricted(address)":{"notice":"Tracks whether the account can move funds."},"name()":{"notice":"See {IConfidentialERC20-name}."},"symbol()":{"notice":"See {IConfidentialERC20-symbol}."},"totalSupply()":{"notice":"See {IConfidentialERC20-totalSupply}."},"transfer(address,bytes32,bytes)":{"notice":"See {IConfidentialERC20-transfer}."},"transfer(address,uint256)":{"notice":"See {IConfidentialERC20-transfer}."},"transferFrom(address,address,bytes32,bytes)":{"notice":"See {IConfidentialERC20-transferFrom}."},"transferFrom(address,address,uint256)":{"notice":"See {IConfidentialERC20-transferFrom}."},"unwrap(uint64)":{"notice":"Unwrap ConfidentialERC20 tokens to standard ERC20 tokens."},"unwrapRequests(uint256)":{"notice":"Tracks the unwrap request to a unique request id."},"wrap(uint256)":{"notice":"Wrap ERC20 tokens to an encrypted format."}},"version":1}},"settings":{"remappings":["@chainlink/=lib/chainlink/","@ensdomains/=lib/v4-core/node_modules/@ensdomains/","@httpz-contracts/=lib/httpz-contracts/contracts/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@uniswap/universal-router/=lib/universal-router.git/","@uniswap/v2-core/=lib/v2-core/","@uniswap/v3-core/=lib/v3-core/","@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/","@uniswap/v4-core/=lib/v4-core/","@uniswap/v4-periphery/=lib/v4-periphery/","chainlink/=lib/chainlink/","ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","eth-gas-reporter/=node_modules/eth-gas-reporter/","fhevm-contracts/=node_modules/fhevm-contracts/","fhevm-core-contracts/=node_modules/fhevm-core-contracts/","fhevm/=node_modules/fhevm/","forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","httpz-contracts/=lib/httpz-contracts/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","permit2/=lib/permit2/","solmate/=lib/permit2/lib/solmate/","universal-router.git/=lib/universal-router.git/","v2-core/=lib/v2-core/contracts/","v3-core/=lib/v3-core/","v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/","v4-core/=lib/v4-core/src/","v4-periphery/=lib/v4-periphery/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/ERC20Encryption/CustomConfidentialERC20Wrapped.sol":"CustomConfidentialERC20Wrapped"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/ERC20Encryption/ConfidentialERC20Base.sol":{"keccak256":"0xa622900eae5b1f80c956ec16afec6e4ef6af141d7973b6d52167a86ae988272c","urls":["bzz-raw://45dcc2e65f2b601bf132eaae21b1ed2e5dd67c9644e6edcf856ea3274444b04e","dweb:/ipfs/QmR4XvcnxE3JBfPNpLcyvPssdBqtMTd76gm6BWczaSMi9D"],"license":"MIT"},"contracts/ERC20Encryption/CustomConfidentialERC20Wrapped.sol":{"keccak256":"0xe3f6e6a47070a54952ac2dd5e008c7997322a16e72f4114a2ec48f45e3bc8cea","urls":["bzz-raw://8b47026e8a91b2a0212d621e0b2a8452e7402636f7fbbfe857d8cb6809b9310d","dweb:/ipfs/QmPYT4Q68jt5Yac6x2tdWHrDcBnjLdkY5JqPnLcCpswQxo"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol":{"keccak256":"0x8b45e5bb2fd9212f99e61b4d25b9c9d5ed7cb1a9a684aac34f752c568ef16c76","urls":["bzz-raw://1ca71bb5bfbb2f8a0779f8394baeea01680619637abddb572017d05d96862591","dweb:/ipfs/QmPCzGBE1m6WtDZxrVL5jzkduNaS7fjtYovUWdnzN34qjh"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol":{"keccak256":"0xe016a085f72ca3cf6d78ec1cb2182a398106cb7d425e984776a9caab0bad2569","urls":["bzz-raw://3e79dc5075469d660908f5f8b6d0c863b14459d60a0b06fb786d58de8cf30a94","dweb:/ipfs/QmePGRGtoWBnQ8T6ZRyZgiwVh4r67kcmWejwKgjyYN4AAY"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20Wrapped.sol":{"keccak256":"0x72c5379fb2a7e1701a4686f60831bfc474350a42f0660aea815a5ce910cba38b","urls":["bzz-raw://118fac79c89e142247e94763a1ca1235c307a67b37d68fa45d94125bc85c2cb8","dweb:/ipfs/QmcE9P74NQQKnmW9vdtGb8KrWgJWH6K3bNTdrMxrPi716c"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/utils/TFHEErrors.sol":{"keccak256":"0x5fef7c2d7d4449d724a2800b37dfcc61e2b635f2747378ce222b9187425f2d13","urls":["bzz-raw://7c2ef113faaec2d74c8d958f80687d0b676082d6231720917aaa8aa934d689a3","dweb:/ipfs/QmNn474JDQ5zvVDwEuicJs6Xq8YEXWGZLoW4KeTWDVG31f"],"license":"BSD-3-Clause-Clear"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330","urls":["bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf","dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x4ea01544758fd2c7045961904686bfe232d2220a04ecaa2d6b08dac17827febf","urls":["bzz-raw://fabe6bef5167ae741dd8c22d7f81d3f9120bd61b290762a2e8f176712567d329","dweb:/ipfs/QmSnEitJ6xmf1SSAUeZozD7Gx7h8bNnX3a1ZBzqeivsvVg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol":{"keccak256":"0x534bf5c25d6003a8ce50b400d20fa460c03169ad7baa90d47a912917c36dfe2b","urls":["bzz-raw://cc0cc39c40ea23d3c46e8517e19ebdd877719d3159fa032f2a91802cdd205c79","dweb:/ipfs/QmSoNh7HTkD4TJcBkBKSGSPMMpLUZKE7s9f2G6mjdaJywg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1","urls":["bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889","dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"node_modules/fhevm/gateway/GatewayCaller.sol":{"keccak256":"0xd19fd7715f0c5b479bf0cd8e3108cc8da7deae2d4fc7fb5ab089ebf2d76a0652","urls":["bzz-raw://6386c509464cefe5a41903ca837da46a21b8042d13ccde656158efc48cd70ea8","dweb:/ipfs/QmUn7C6aZwKmEmKsphBshBezXXGZtLMyfaeZAyuZoRsBWU"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/gateway/lib/Gateway.sol":{"keccak256":"0x9585a649e3001a4b8768ab6e2597b416f680bcc537309cd50b60e023e9791318","urls":["bzz-raw://a1b055bfb067cc247d4bd60b5f8348f667cbe79717a5753cd6412955277345d0","dweb:/ipfs/QmTveBaQg9GUdtrrxcR4RsiyAEmoEKGL4gn6E1gThR1ph5"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/lib/Impl.sol":{"keccak256":"0x89d4968cd956a8931f1a8a177b3bef1c6cf88a03665083db74430add50b88f21","urls":["bzz-raw://aaaef2c82d56dacfb08946842ea1ce26757d13f3251de62fa79222232dfcb43c","dweb:/ipfs/QmQ6QZPxJw9jb3qjRYCX7pMQVoYogjTsYgmdEnB3EnwFRy"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/lib/TFHE.sol":{"keccak256":"0x221799c8332f83ab65a0b71746409f0c2c89f1cd8d9ba4091d967c667e1df734","urls":["bzz-raw://2dba387fbc612a2ee64063b0ee6c27304b3944423d11045acc50abd84577fb5f","dweb:/ipfs/QmThptDGnpd8PuncFk1rnQoCzEqwUED622yC9xZgFhwY59"],"license":"BSD-3-Clause-Clear"}},"version":1},"id":5} \ No newline at end of file diff --git a/out/IIndexFund.sol/IIndexFund.json b/out/IIndexFund.sol/IIndexFund.json index e0ccd0a..35e3a59 100644 --- a/out/IIndexFund.sol/IIndexFund.json +++ b/out/IIndexFund.sol/IIndexFund.json @@ -1 +1 @@ -{"abi":[{"type":"event","name":"BurnSwapsPerformed","inputs":[],"anonymous":false},{"type":"event","name":"FeeCollected","inputs":[{"name":"feeAmount","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"IndexTokensRedeemed","inputs":[],"anonymous":false},{"type":"event","name":"MintSwapsPerformed","inputs":[],"anonymous":false},{"type":"event","name":"SharesBurned","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SharesMinted","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AmountToSwapTooBig","inputs":[{"name":"amountToSwap","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InsufficientAllowance","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SharesToBurnAmountTooBig","inputs":[{"name":"amountToBurn","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SharesToMintAmountTooBig","inputs":[{"name":"amountToMint","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"TransferFailed","inputs":[]},{"type":"error","name":"UserShareBalanceTooSmall","inputs":[{"name":"user","type":"address","internalType":"address"},{"name":"amountToBurn","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToSwap\",\"type\":\"uint256\"}],\"name\":\"AmountToSwapTooBig\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToBurn\",\"type\":\"uint256\"}],\"name\":\"SharesToBurnAmountTooBig\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToMint\",\"type\":\"uint256\"}],\"name\":\"SharesToMintAmountTooBig\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountToBurn\",\"type\":\"uint256\"}],\"name\":\"UserShareBalanceTooSmall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"BurnSwapsPerformed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"}],\"name\":\"FeeCollected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"IndexTokensRedeemed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"MintSwapsPerformed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SharesBurned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SharesMinted\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IIndexFund.sol\":\"IIndexFund\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@chainlink/=lib/chainlink/\",\":@ensdomains/=lib/v4-core/node_modules/@ensdomains/\",\":@httpz-contracts/=lib/httpz-contracts/contracts/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/universal-router/=lib/universal-router.git/\",\":@uniswap/v2-core/=lib/v2-core/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/\",\":@uniswap/v4-core/=lib/v4-core/\",\":@uniswap/v4-periphery/=lib/v4-periphery/\",\":chainlink/=lib/chainlink/\",\":ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":fhevm-contracts/=node_modules/fhevm-contracts/\",\":fhevm-core-contracts/=node_modules/fhevm-core-contracts/\",\":fhevm/=node_modules/fhevm/\",\":forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":httpz-contracts/=lib/httpz-contracts/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":permit2/=lib/permit2/\",\":solmate/=lib/permit2/lib/solmate/\",\":universal-router.git/=lib/universal-router.git/\",\":v2-core/=lib/v2-core/contracts/\",\":v3-core/=lib/v3-core/\",\":v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/\",\":v4-core/=lib/v4-core/src/\",\":v4-periphery/=lib/v4-periphery/\"],\"viaIR\":true},\"sources\":{\"contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol\":{\"keccak256\":\"0x08ddec3305fabf65ffe2c18949b1b18f4ce0aeafd7bb8f68faecf4da9bfa18ab\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://e73a281abe6706aa53fc031839d0fcb73c028f0be2c2ad5428aa4880ca072805\",\"dweb:/ipfs/QmZc9KQXzYstBAKKPye7w5W3jBX1a56G9kCAPs58nkHvFg\"]},\"contracts/IndexFundToken.sol\":{\"keccak256\":\"0x42961a70f9142f4e63aaf154379b9023cacca1fd43b6514678eaee59f8fb9890\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://ef1350bcd4141746855a9226d633ad4ac1be64c24d8b5ca8a1e09a7c0064d191\",\"dweb:/ipfs/QmVAK66Y1euBYi18MuSRsUP642x7BhoFQFEkQaUifPvdAX\"]},\"contracts/interfaces/IIndexFund.sol\":{\"keccak256\":\"0x1d9c8fd5bded96f70982cc51fb43db3438989a87fa1513cee239d3e6773489e7\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://c627498c9d3ebda35fac237c30a8151fc2f7a6b1bf39443e4ca9be2766d3d4f2\",\"dweb:/ipfs/QmShbn35ZYr12d5TChnDsu9u6YtC8EDivzVZp5tFc6bVoM\"]},\"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol\":{\"keccak256\":\"0x8b45e5bb2fd9212f99e61b4d25b9c9d5ed7cb1a9a684aac34f752c568ef16c76\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://1ca71bb5bfbb2f8a0779f8394baeea01680619637abddb572017d05d96862591\",\"dweb:/ipfs/QmPCzGBE1m6WtDZxrVL5jzkduNaS7fjtYovUWdnzN34qjh\"]},\"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20Wrapped.sol\":{\"keccak256\":\"0x7e178a03b7f034532497a8b762069fff0808277befc880e4a3236938ba1380a7\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://7250476c961801e579719fd0201a3ff6bfdc79e8324db34d5ec0c6cecc281281\",\"dweb:/ipfs/QmNsTR2Rk2FRS3cTNf7WeN3UzPZy6HSj1SFV3Nuwz8Rpzi\"]},\"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol\":{\"keccak256\":\"0xe016a085f72ca3cf6d78ec1cb2182a398106cb7d425e984776a9caab0bad2569\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://3e79dc5075469d660908f5f8b6d0c863b14459d60a0b06fb786d58de8cf30a94\",\"dweb:/ipfs/QmePGRGtoWBnQ8T6ZRyZgiwVh4r67kcmWejwKgjyYN4AAY\"]},\"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20Wrapped.sol\":{\"keccak256\":\"0x72c5379fb2a7e1701a4686f60831bfc474350a42f0660aea815a5ce910cba38b\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://118fac79c89e142247e94763a1ca1235c307a67b37d68fa45d94125bc85c2cb8\",\"dweb:/ipfs/QmcE9P74NQQKnmW9vdtGb8KrWgJWH6K3bNTdrMxrPi716c\"]},\"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol\":{\"keccak256\":\"0xfe322c8f9a8e4fba881715901a5bafd2efa23394ecbc9ec84282818baeff0a07\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://13dba831528dd16408b7abab23eac0664a2a3e5ecbfe5e58e6e321cf2921668a\",\"dweb:/ipfs/QmPq4YeugbayWfeBJR8H7s4jHsnZkACQX2xbdNQ4sdvZrk\"]},\"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol\":{\"keccak256\":\"0xecc6289a9791bef254911393b51d2bfbddc5650ede7fbe7b5cc2b8d3eb01d7a6\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://7463278a20bc5d7fd8b7ec2cb8e592b2d1e0afcf8b59d35d6929d18661d4b38c\",\"dweb:/ipfs/QmTKPoABwNDmK7g7vkti1AkTpkUBHu3iX3zsXQsEuSiqBM\"]},\"lib/httpz-contracts/contracts/utils/EncryptedErrors.sol\":{\"keccak256\":\"0x0b8d08f392884add1af672018359e8980ee0b5e1662fe5e36eb31f053d1d4505\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://2903dd49a88b36aba2e8a45548b6a68d203887356ebdf452b10e0148954ba1a5\",\"dweb:/ipfs/QmTRuP4QXagoV2cLr2ctzFtNK7FK1cDXMYm4feMoMsYoWG\"]},\"lib/httpz-contracts/contracts/utils/TFHEErrors.sol\":{\"keccak256\":\"0x5fef7c2d7d4449d724a2800b37dfcc61e2b635f2747378ce222b9187425f2d13\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://7c2ef113faaec2d74c8d958f80687d0b676082d6231720917aaa8aa934d689a3\",\"dweb:/ipfs/QmNn474JDQ5zvVDwEuicJs6Xq8YEXWGZLoW4KeTWDVG31f\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol\":{\"keccak256\":\"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0\",\"dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x4ea01544758fd2c7045961904686bfe232d2220a04ecaa2d6b08dac17827febf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fabe6bef5167ae741dd8c22d7f81d3f9120bd61b290762a2e8f176712567d329\",\"dweb:/ipfs/QmSnEitJ6xmf1SSAUeZozD7Gx7h8bNnX3a1ZBzqeivsvVg\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol\":{\"keccak256\":\"0x534bf5c25d6003a8ce50b400d20fa460c03169ad7baa90d47a912917c36dfe2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc0cc39c40ea23d3c46e8517e19ebdd877719d3159fa032f2a91802cdd205c79\",\"dweb:/ipfs/QmSoNh7HTkD4TJcBkBKSGSPMMpLUZKE7s9f2G6mjdaJywg\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889\",\"dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/fhevm/config/ZamaFHEVMConfig.sol\":{\"keccak256\":\"0x41782f4c707b81399916544fa2e7be94a695fa4ba468542732d29d3e383c0315\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://45a95a55c4bbb3418c2133cba6ed21a9444bb4e38d38b32cc707b7493cece2ca\",\"dweb:/ipfs/QmVU8EKmZgscdM43RgXD4EgbVMhQxBusTmBren3pbn1pUW\"]},\"node_modules/fhevm/gateway/GatewayCaller.sol\":{\"keccak256\":\"0xd19fd7715f0c5b479bf0cd8e3108cc8da7deae2d4fc7fb5ab089ebf2d76a0652\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://6386c509464cefe5a41903ca837da46a21b8042d13ccde656158efc48cd70ea8\",\"dweb:/ipfs/QmUn7C6aZwKmEmKsphBshBezXXGZtLMyfaeZAyuZoRsBWU\"]},\"node_modules/fhevm/gateway/lib/Gateway.sol\":{\"keccak256\":\"0x9585a649e3001a4b8768ab6e2597b416f680bcc537309cd50b60e023e9791318\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://a1b055bfb067cc247d4bd60b5f8348f667cbe79717a5753cd6412955277345d0\",\"dweb:/ipfs/QmTveBaQg9GUdtrrxcR4RsiyAEmoEKGL4gn6E1gThR1ph5\"]},\"node_modules/fhevm/lib/Impl.sol\":{\"keccak256\":\"0x89d4968cd956a8931f1a8a177b3bef1c6cf88a03665083db74430add50b88f21\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://aaaef2c82d56dacfb08946842ea1ce26757d13f3251de62fa79222232dfcb43c\",\"dweb:/ipfs/QmQ6QZPxJw9jb3qjRYCX7pMQVoYogjTsYgmdEnB3EnwFRy\"]},\"node_modules/fhevm/lib/TFHE.sol\":{\"keccak256\":\"0x221799c8332f83ab65a0b71746409f0c2c89f1cd8d9ba4091d967c667e1df734\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://2dba387fbc612a2ee64063b0ee6c27304b3944423d11045acc50abd84577fb5f\",\"dweb:/ipfs/QmThptDGnpd8PuncFk1rnQoCzEqwUED622yC9xZgFhwY59\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"amountToSwap","type":"uint256"}],"type":"error","name":"AmountToSwapTooBig"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"InsufficientAllowance"},{"inputs":[{"internalType":"uint256","name":"amountToBurn","type":"uint256"}],"type":"error","name":"SharesToBurnAmountTooBig"},{"inputs":[{"internalType":"uint256","name":"amountToMint","type":"uint256"}],"type":"error","name":"SharesToMintAmountTooBig"},{"inputs":[],"type":"error","name":"TransferFailed"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"amountToBurn","type":"uint256"}],"type":"error","name":"UserShareBalanceTooSmall"},{"inputs":[],"type":"event","name":"BurnSwapsPerformed","anonymous":false},{"inputs":[{"internalType":"uint256","name":"feeAmount","type":"uint256","indexed":true}],"type":"event","name":"FeeCollected","anonymous":false},{"inputs":[],"type":"event","name":"IndexTokensRedeemed","anonymous":false},{"inputs":[],"type":"event","name":"MintSwapsPerformed","anonymous":false},{"inputs":[{"internalType":"address","name":"user","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":true}],"type":"event","name":"SharesBurned","anonymous":false},{"inputs":[{"internalType":"address","name":"user","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":true}],"type":"event","name":"SharesMinted","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@chainlink/=lib/chainlink/","@ensdomains/=lib/v4-core/node_modules/@ensdomains/","@httpz-contracts/=lib/httpz-contracts/contracts/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@uniswap/universal-router/=lib/universal-router.git/","@uniswap/v2-core/=lib/v2-core/","@uniswap/v3-core/=lib/v3-core/","@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/","@uniswap/v4-core/=lib/v4-core/","@uniswap/v4-periphery/=lib/v4-periphery/","chainlink/=lib/chainlink/","ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","eth-gas-reporter/=node_modules/eth-gas-reporter/","fhevm-contracts/=node_modules/fhevm-contracts/","fhevm-core-contracts/=node_modules/fhevm-core-contracts/","fhevm/=node_modules/fhevm/","forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","httpz-contracts/=lib/httpz-contracts/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","permit2/=lib/permit2/","solmate/=lib/permit2/lib/solmate/","universal-router.git/=lib/universal-router.git/","v2-core/=lib/v2-core/contracts/","v3-core/=lib/v3-core/","v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/","v4-core/=lib/v4-core/src/","v4-periphery/=lib/v4-periphery/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/interfaces/IIndexFund.sol":"IIndexFund"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol":{"keccak256":"0x08ddec3305fabf65ffe2c18949b1b18f4ce0aeafd7bb8f68faecf4da9bfa18ab","urls":["bzz-raw://e73a281abe6706aa53fc031839d0fcb73c028f0be2c2ad5428aa4880ca072805","dweb:/ipfs/QmZc9KQXzYstBAKKPye7w5W3jBX1a56G9kCAPs58nkHvFg"],"license":"BSD-3-Clause-Clear"},"contracts/IndexFundToken.sol":{"keccak256":"0x42961a70f9142f4e63aaf154379b9023cacca1fd43b6514678eaee59f8fb9890","urls":["bzz-raw://ef1350bcd4141746855a9226d633ad4ac1be64c24d8b5ca8a1e09a7c0064d191","dweb:/ipfs/QmVAK66Y1euBYi18MuSRsUP642x7BhoFQFEkQaUifPvdAX"],"license":"BSD-3-Clause-Clear"},"contracts/interfaces/IIndexFund.sol":{"keccak256":"0x1d9c8fd5bded96f70982cc51fb43db3438989a87fa1513cee239d3e6773489e7","urls":["bzz-raw://c627498c9d3ebda35fac237c30a8151fc2f7a6b1bf39443e4ca9be2766d3d4f2","dweb:/ipfs/QmShbn35ZYr12d5TChnDsu9u6YtC8EDivzVZp5tFc6bVoM"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol":{"keccak256":"0x8b45e5bb2fd9212f99e61b4d25b9c9d5ed7cb1a9a684aac34f752c568ef16c76","urls":["bzz-raw://1ca71bb5bfbb2f8a0779f8394baeea01680619637abddb572017d05d96862591","dweb:/ipfs/QmPCzGBE1m6WtDZxrVL5jzkduNaS7fjtYovUWdnzN34qjh"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20Wrapped.sol":{"keccak256":"0x7e178a03b7f034532497a8b762069fff0808277befc880e4a3236938ba1380a7","urls":["bzz-raw://7250476c961801e579719fd0201a3ff6bfdc79e8324db34d5ec0c6cecc281281","dweb:/ipfs/QmNsTR2Rk2FRS3cTNf7WeN3UzPZy6HSj1SFV3Nuwz8Rpzi"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol":{"keccak256":"0xe016a085f72ca3cf6d78ec1cb2182a398106cb7d425e984776a9caab0bad2569","urls":["bzz-raw://3e79dc5075469d660908f5f8b6d0c863b14459d60a0b06fb786d58de8cf30a94","dweb:/ipfs/QmePGRGtoWBnQ8T6ZRyZgiwVh4r67kcmWejwKgjyYN4AAY"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20Wrapped.sol":{"keccak256":"0x72c5379fb2a7e1701a4686f60831bfc474350a42f0660aea815a5ce910cba38b","urls":["bzz-raw://118fac79c89e142247e94763a1ca1235c307a67b37d68fa45d94125bc85c2cb8","dweb:/ipfs/QmcE9P74NQQKnmW9vdtGb8KrWgJWH6K3bNTdrMxrPi716c"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol":{"keccak256":"0xfe322c8f9a8e4fba881715901a5bafd2efa23394ecbc9ec84282818baeff0a07","urls":["bzz-raw://13dba831528dd16408b7abab23eac0664a2a3e5ecbfe5e58e6e321cf2921668a","dweb:/ipfs/QmPq4YeugbayWfeBJR8H7s4jHsnZkACQX2xbdNQ4sdvZrk"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol":{"keccak256":"0xecc6289a9791bef254911393b51d2bfbddc5650ede7fbe7b5cc2b8d3eb01d7a6","urls":["bzz-raw://7463278a20bc5d7fd8b7ec2cb8e592b2d1e0afcf8b59d35d6929d18661d4b38c","dweb:/ipfs/QmTKPoABwNDmK7g7vkti1AkTpkUBHu3iX3zsXQsEuSiqBM"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/utils/EncryptedErrors.sol":{"keccak256":"0x0b8d08f392884add1af672018359e8980ee0b5e1662fe5e36eb31f053d1d4505","urls":["bzz-raw://2903dd49a88b36aba2e8a45548b6a68d203887356ebdf452b10e0148954ba1a5","dweb:/ipfs/QmTRuP4QXagoV2cLr2ctzFtNK7FK1cDXMYm4feMoMsYoWG"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/utils/TFHEErrors.sol":{"keccak256":"0x5fef7c2d7d4449d724a2800b37dfcc61e2b635f2747378ce222b9187425f2d13","urls":["bzz-raw://7c2ef113faaec2d74c8d958f80687d0b676082d6231720917aaa8aa934d689a3","dweb:/ipfs/QmNn474JDQ5zvVDwEuicJs6Xq8YEXWGZLoW4KeTWDVG31f"],"license":"BSD-3-Clause-Clear"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol":{"keccak256":"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c","urls":["bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0","dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330","urls":["bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf","dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x4ea01544758fd2c7045961904686bfe232d2220a04ecaa2d6b08dac17827febf","urls":["bzz-raw://fabe6bef5167ae741dd8c22d7f81d3f9120bd61b290762a2e8f176712567d329","dweb:/ipfs/QmSnEitJ6xmf1SSAUeZozD7Gx7h8bNnX3a1ZBzqeivsvVg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol":{"keccak256":"0x534bf5c25d6003a8ce50b400d20fa460c03169ad7baa90d47a912917c36dfe2b","urls":["bzz-raw://cc0cc39c40ea23d3c46e8517e19ebdd877719d3159fa032f2a91802cdd205c79","dweb:/ipfs/QmSoNh7HTkD4TJcBkBKSGSPMMpLUZKE7s9f2G6mjdaJywg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1","urls":["bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889","dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"node_modules/fhevm/config/ZamaFHEVMConfig.sol":{"keccak256":"0x41782f4c707b81399916544fa2e7be94a695fa4ba468542732d29d3e383c0315","urls":["bzz-raw://45a95a55c4bbb3418c2133cba6ed21a9444bb4e38d38b32cc707b7493cece2ca","dweb:/ipfs/QmVU8EKmZgscdM43RgXD4EgbVMhQxBusTmBren3pbn1pUW"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/gateway/GatewayCaller.sol":{"keccak256":"0xd19fd7715f0c5b479bf0cd8e3108cc8da7deae2d4fc7fb5ab089ebf2d76a0652","urls":["bzz-raw://6386c509464cefe5a41903ca837da46a21b8042d13ccde656158efc48cd70ea8","dweb:/ipfs/QmUn7C6aZwKmEmKsphBshBezXXGZtLMyfaeZAyuZoRsBWU"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/gateway/lib/Gateway.sol":{"keccak256":"0x9585a649e3001a4b8768ab6e2597b416f680bcc537309cd50b60e023e9791318","urls":["bzz-raw://a1b055bfb067cc247d4bd60b5f8348f667cbe79717a5753cd6412955277345d0","dweb:/ipfs/QmTveBaQg9GUdtrrxcR4RsiyAEmoEKGL4gn6E1gThR1ph5"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/lib/Impl.sol":{"keccak256":"0x89d4968cd956a8931f1a8a177b3bef1c6cf88a03665083db74430add50b88f21","urls":["bzz-raw://aaaef2c82d56dacfb08946842ea1ce26757d13f3251de62fa79222232dfcb43c","dweb:/ipfs/QmQ6QZPxJw9jb3qjRYCX7pMQVoYogjTsYgmdEnB3EnwFRy"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/lib/TFHE.sol":{"keccak256":"0x221799c8332f83ab65a0b71746409f0c2c89f1cd8d9ba4091d967c667e1df734","urls":["bzz-raw://2dba387fbc612a2ee64063b0ee6c27304b3944423d11045acc50abd84577fb5f","dweb:/ipfs/QmThptDGnpd8PuncFk1rnQoCzEqwUED622yC9xZgFhwY59"],"license":"BSD-3-Clause-Clear"}},"version":1},"id":6} \ No newline at end of file +{"abi":[{"type":"event","name":"BurnSwapsPerformed","inputs":[],"anonymous":false},{"type":"event","name":"EncryptedStablecoinTransfer","inputs":[{"name":"from","type":"uint256","indexed":true,"internalType":"eaddress"},{"name":"to","type":"uint256","indexed":true,"internalType":"eaddress"},{"name":"amount","type":"uint256","indexed":true,"internalType":"euint64"}],"anonymous":false},{"type":"event","name":"FeeCollected","inputs":[{"name":"user","type":"uint256","indexed":false,"internalType":"eaddress"},{"name":"feeAmount","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"IndexTokensRedeemed","inputs":[],"anonymous":false},{"type":"event","name":"MintSwapsPerformed","inputs":[],"anonymous":false},{"type":"event","name":"SharesBurned","inputs":[{"name":"user","type":"uint256","indexed":true,"internalType":"eaddress"},{"name":"amount","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SharesMintRevertedAmountTooBig","inputs":[],"anonymous":false},{"type":"event","name":"SharesMinted","inputs":[{"name":"user","type":"uint256","indexed":true,"internalType":"eaddress"},{"name":"amount","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SharesToMintAmountBiggerThanMax","inputs":[{"name":"minter","type":"uint256","indexed":false,"internalType":"eaddress"},{"name":"amountToBurn","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AmountToSwapTooBig","inputs":[{"name":"amountToSwap","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"EncryptedTransferFailed","inputs":[{"name":"token","type":"uint256","internalType":"eaddress"},{"name":"from","type":"uint256","internalType":"eaddress"},{"name":"to","type":"uint256","internalType":"eaddress"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InsufficientAllowance","inputs":[{"name":"allower","type":"uint256","internalType":"eaddress"},{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"NoPendingWithdrawal","inputs":[{"name":"user","type":"uint256","internalType":"eaddress"}]},{"type":"error","name":"NotEnoughSwapsToBatch","inputs":[]},{"type":"error","name":"SharesToBurnAmountBiggerThanMax","inputs":[{"name":"burner","type":"uint256","internalType":"eaddress"},{"name":"amountToBurn","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"TransferFailed","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"from","type":"uint256","internalType":"eaddress"},{"name":"to","type":"uint256","internalType":"eaddress"},{"name":"amount","type":"uint256","internalType":"euint256"}]},{"type":"error","name":"UserShareBalanceTooSmall","inputs":[{"name":"user","type":"uint256","internalType":"eaddress"},{"name":"amountToBurn","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountToSwap\",\"type\":\"uint256\"}],\"name\":\"AmountToSwapTooBig\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"eaddress\",\"name\":\"token\",\"type\":\"uint256\"},{\"internalType\":\"eaddress\",\"name\":\"from\",\"type\":\"uint256\"},{\"internalType\":\"eaddress\",\"name\":\"to\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"EncryptedTransferFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"eaddress\",\"name\":\"allower\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"eaddress\",\"name\":\"user\",\"type\":\"uint256\"}],\"name\":\"NoPendingWithdrawal\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughSwapsToBatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"eaddress\",\"name\":\"burner\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountToBurn\",\"type\":\"uint256\"}],\"name\":\"SharesToBurnAmountBiggerThanMax\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"eaddress\",\"name\":\"from\",\"type\":\"uint256\"},{\"internalType\":\"eaddress\",\"name\":\"to\",\"type\":\"uint256\"},{\"internalType\":\"euint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TransferFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"eaddress\",\"name\":\"user\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountToBurn\",\"type\":\"uint256\"}],\"name\":\"UserShareBalanceTooSmall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"BurnSwapsPerformed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"eaddress\",\"name\":\"from\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"eaddress\",\"name\":\"to\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"euint64\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"EncryptedStablecoinTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"eaddress\",\"name\":\"user\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"}],\"name\":\"FeeCollected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"IndexTokensRedeemed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"MintSwapsPerformed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"eaddress\",\"name\":\"user\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SharesBurned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"SharesMintRevertedAmountTooBig\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"eaddress\",\"name\":\"user\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SharesMinted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"eaddress\",\"name\":\"minter\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountToBurn\",\"type\":\"uint256\"}],\"name\":\"SharesToMintAmountBiggerThanMax\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IIndexFund.sol\":\"IIndexFund\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@chainlink/=lib/chainlink/\",\":@ensdomains/=lib/v4-core/node_modules/@ensdomains/\",\":@httpz-contracts/=lib/httpz-contracts/contracts/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/universal-router/=lib/universal-router.git/\",\":@uniswap/v2-core/=lib/v2-core/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/\",\":@uniswap/v4-core/=lib/v4-core/\",\":@uniswap/v4-periphery/=lib/v4-periphery/\",\":chainlink/=lib/chainlink/\",\":ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":fhevm-contracts/=node_modules/fhevm-contracts/\",\":fhevm-core-contracts/=node_modules/fhevm-core-contracts/\",\":fhevm/=node_modules/fhevm/\",\":forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":httpz-contracts/=lib/httpz-contracts/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":permit2/=lib/permit2/\",\":solmate/=lib/permit2/lib/solmate/\",\":universal-router.git/=lib/universal-router.git/\",\":v2-core/=lib/v2-core/contracts/\",\":v3-core/=lib/v3-core/\",\":v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/\",\":v4-core/=lib/v4-core/src/\",\":v4-periphery/=lib/v4-periphery/\"],\"viaIR\":true},\"sources\":{\"contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol\":{\"keccak256\":\"0x6f947e91a3369017e4d0147ac44ea39c6f8ffa4a5307d8339481f4e88355a62d\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://27794b1340f9299d7be061aacde65075fca40a1d722e8c5181cee22f257eeb25\",\"dweb:/ipfs/QmT3DReokqZhMtDcEDpkTgf1zG5cZELzPEZDjrqpfEXjWC\"]},\"contracts/IndexFundToken.sol\":{\"keccak256\":\"0x6d1e6a25f9d42b8d6a080a35f7a3b5349abae3f4a30c136f907cc52778a0fe27\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://1d81c68b7233cba175382a539bfbcfaf92b06197add787b3b429ec98c65c4669\",\"dweb:/ipfs/QmYEwXLUeBFNnK8ZZxYo3pVJe7hZrEMitxbGyrrotbU4yt\"]},\"contracts/interfaces/IIndexFund.sol\":{\"keccak256\":\"0xd9ef0b82a5fbc651233fa570e20487052da9bc9e608d7fec5c54c3259b64b0db\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://2fa0a193b577c89a809b110a6a770068cf8e7c86807d1022b10a44304ada1f90\",\"dweb:/ipfs/QmewwyiHG7fnHucV1zLT5iYLzNiV4ryaBMqMoPmPRgD6WW\"]},\"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol\":{\"keccak256\":\"0x8b45e5bb2fd9212f99e61b4d25b9c9d5ed7cb1a9a684aac34f752c568ef16c76\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://1ca71bb5bfbb2f8a0779f8394baeea01680619637abddb572017d05d96862591\",\"dweb:/ipfs/QmPCzGBE1m6WtDZxrVL5jzkduNaS7fjtYovUWdnzN34qjh\"]},\"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20Wrapped.sol\":{\"keccak256\":\"0x7e178a03b7f034532497a8b762069fff0808277befc880e4a3236938ba1380a7\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://7250476c961801e579719fd0201a3ff6bfdc79e8324db34d5ec0c6cecc281281\",\"dweb:/ipfs/QmNsTR2Rk2FRS3cTNf7WeN3UzPZy6HSj1SFV3Nuwz8Rpzi\"]},\"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol\":{\"keccak256\":\"0xe016a085f72ca3cf6d78ec1cb2182a398106cb7d425e984776a9caab0bad2569\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://3e79dc5075469d660908f5f8b6d0c863b14459d60a0b06fb786d58de8cf30a94\",\"dweb:/ipfs/QmePGRGtoWBnQ8T6ZRyZgiwVh4r67kcmWejwKgjyYN4AAY\"]},\"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20Wrapped.sol\":{\"keccak256\":\"0x72c5379fb2a7e1701a4686f60831bfc474350a42f0660aea815a5ce910cba38b\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://118fac79c89e142247e94763a1ca1235c307a67b37d68fa45d94125bc85c2cb8\",\"dweb:/ipfs/QmcE9P74NQQKnmW9vdtGb8KrWgJWH6K3bNTdrMxrPi716c\"]},\"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol\":{\"keccak256\":\"0xfe322c8f9a8e4fba881715901a5bafd2efa23394ecbc9ec84282818baeff0a07\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://13dba831528dd16408b7abab23eac0664a2a3e5ecbfe5e58e6e321cf2921668a\",\"dweb:/ipfs/QmPq4YeugbayWfeBJR8H7s4jHsnZkACQX2xbdNQ4sdvZrk\"]},\"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol\":{\"keccak256\":\"0xecc6289a9791bef254911393b51d2bfbddc5650ede7fbe7b5cc2b8d3eb01d7a6\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://7463278a20bc5d7fd8b7ec2cb8e592b2d1e0afcf8b59d35d6929d18661d4b38c\",\"dweb:/ipfs/QmTKPoABwNDmK7g7vkti1AkTpkUBHu3iX3zsXQsEuSiqBM\"]},\"lib/httpz-contracts/contracts/utils/EncryptedErrors.sol\":{\"keccak256\":\"0x0b8d08f392884add1af672018359e8980ee0b5e1662fe5e36eb31f053d1d4505\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://2903dd49a88b36aba2e8a45548b6a68d203887356ebdf452b10e0148954ba1a5\",\"dweb:/ipfs/QmTRuP4QXagoV2cLr2ctzFtNK7FK1cDXMYm4feMoMsYoWG\"]},\"lib/httpz-contracts/contracts/utils/TFHEErrors.sol\":{\"keccak256\":\"0x5fef7c2d7d4449d724a2800b37dfcc61e2b635f2747378ce222b9187425f2d13\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://7c2ef113faaec2d74c8d958f80687d0b676082d6231720917aaa8aa934d689a3\",\"dweb:/ipfs/QmNn474JDQ5zvVDwEuicJs6Xq8YEXWGZLoW4KeTWDVG31f\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol\":{\"keccak256\":\"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0\",\"dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x4ea01544758fd2c7045961904686bfe232d2220a04ecaa2d6b08dac17827febf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fabe6bef5167ae741dd8c22d7f81d3f9120bd61b290762a2e8f176712567d329\",\"dweb:/ipfs/QmSnEitJ6xmf1SSAUeZozD7Gx7h8bNnX3a1ZBzqeivsvVg\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol\":{\"keccak256\":\"0x534bf5c25d6003a8ce50b400d20fa460c03169ad7baa90d47a912917c36dfe2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc0cc39c40ea23d3c46e8517e19ebdd877719d3159fa032f2a91802cdd205c79\",\"dweb:/ipfs/QmSoNh7HTkD4TJcBkBKSGSPMMpLUZKE7s9f2G6mjdaJywg\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889\",\"dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/fhevm/config/ZamaFHEVMConfig.sol\":{\"keccak256\":\"0x41782f4c707b81399916544fa2e7be94a695fa4ba468542732d29d3e383c0315\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://45a95a55c4bbb3418c2133cba6ed21a9444bb4e38d38b32cc707b7493cece2ca\",\"dweb:/ipfs/QmVU8EKmZgscdM43RgXD4EgbVMhQxBusTmBren3pbn1pUW\"]},\"node_modules/fhevm/gateway/GatewayCaller.sol\":{\"keccak256\":\"0xd19fd7715f0c5b479bf0cd8e3108cc8da7deae2d4fc7fb5ab089ebf2d76a0652\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://6386c509464cefe5a41903ca837da46a21b8042d13ccde656158efc48cd70ea8\",\"dweb:/ipfs/QmUn7C6aZwKmEmKsphBshBezXXGZtLMyfaeZAyuZoRsBWU\"]},\"node_modules/fhevm/gateway/lib/Gateway.sol\":{\"keccak256\":\"0x9585a649e3001a4b8768ab6e2597b416f680bcc537309cd50b60e023e9791318\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://a1b055bfb067cc247d4bd60b5f8348f667cbe79717a5753cd6412955277345d0\",\"dweb:/ipfs/QmTveBaQg9GUdtrrxcR4RsiyAEmoEKGL4gn6E1gThR1ph5\"]},\"node_modules/fhevm/lib/Impl.sol\":{\"keccak256\":\"0x89d4968cd956a8931f1a8a177b3bef1c6cf88a03665083db74430add50b88f21\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://aaaef2c82d56dacfb08946842ea1ce26757d13f3251de62fa79222232dfcb43c\",\"dweb:/ipfs/QmQ6QZPxJw9jb3qjRYCX7pMQVoYogjTsYgmdEnB3EnwFRy\"]},\"node_modules/fhevm/lib/TFHE.sol\":{\"keccak256\":\"0x221799c8332f83ab65a0b71746409f0c2c89f1cd8d9ba4091d967c667e1df734\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://2dba387fbc612a2ee64063b0ee6c27304b3944423d11045acc50abd84577fb5f\",\"dweb:/ipfs/QmThptDGnpd8PuncFk1rnQoCzEqwUED622yC9xZgFhwY59\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"amountToSwap","type":"uint256"}],"type":"error","name":"AmountToSwapTooBig"},{"inputs":[{"internalType":"eaddress","name":"token","type":"uint256"},{"internalType":"eaddress","name":"from","type":"uint256"},{"internalType":"eaddress","name":"to","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"type":"error","name":"EncryptedTransferFailed"},{"inputs":[{"internalType":"eaddress","name":"allower","type":"uint256"},{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"InsufficientAllowance"},{"inputs":[{"internalType":"eaddress","name":"user","type":"uint256"}],"type":"error","name":"NoPendingWithdrawal"},{"inputs":[],"type":"error","name":"NotEnoughSwapsToBatch"},{"inputs":[{"internalType":"eaddress","name":"burner","type":"uint256"},{"internalType":"uint256","name":"amountToBurn","type":"uint256"}],"type":"error","name":"SharesToBurnAmountBiggerThanMax"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"eaddress","name":"from","type":"uint256"},{"internalType":"eaddress","name":"to","type":"uint256"},{"internalType":"euint256","name":"amount","type":"uint256"}],"type":"error","name":"TransferFailed"},{"inputs":[{"internalType":"eaddress","name":"user","type":"uint256"},{"internalType":"uint256","name":"amountToBurn","type":"uint256"}],"type":"error","name":"UserShareBalanceTooSmall"},{"inputs":[],"type":"event","name":"BurnSwapsPerformed","anonymous":false},{"inputs":[{"internalType":"eaddress","name":"from","type":"uint256","indexed":true},{"internalType":"eaddress","name":"to","type":"uint256","indexed":true},{"internalType":"euint64","name":"amount","type":"uint256","indexed":true}],"type":"event","name":"EncryptedStablecoinTransfer","anonymous":false},{"inputs":[{"internalType":"eaddress","name":"user","type":"uint256","indexed":false},{"internalType":"uint256","name":"feeAmount","type":"uint256","indexed":true}],"type":"event","name":"FeeCollected","anonymous":false},{"inputs":[],"type":"event","name":"IndexTokensRedeemed","anonymous":false},{"inputs":[],"type":"event","name":"MintSwapsPerformed","anonymous":false},{"inputs":[{"internalType":"eaddress","name":"user","type":"uint256","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":true}],"type":"event","name":"SharesBurned","anonymous":false},{"inputs":[],"type":"event","name":"SharesMintRevertedAmountTooBig","anonymous":false},{"inputs":[{"internalType":"eaddress","name":"user","type":"uint256","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":true}],"type":"event","name":"SharesMinted","anonymous":false},{"inputs":[{"internalType":"eaddress","name":"minter","type":"uint256","indexed":false},{"internalType":"uint256","name":"amountToBurn","type":"uint256","indexed":false}],"type":"event","name":"SharesToMintAmountBiggerThanMax","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@chainlink/=lib/chainlink/","@ensdomains/=lib/v4-core/node_modules/@ensdomains/","@httpz-contracts/=lib/httpz-contracts/contracts/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@uniswap/universal-router/=lib/universal-router.git/","@uniswap/v2-core/=lib/v2-core/","@uniswap/v3-core/=lib/v3-core/","@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/","@uniswap/v4-core/=lib/v4-core/","@uniswap/v4-periphery/=lib/v4-periphery/","chainlink/=lib/chainlink/","ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","eth-gas-reporter/=node_modules/eth-gas-reporter/","fhevm-contracts/=node_modules/fhevm-contracts/","fhevm-core-contracts/=node_modules/fhevm-core-contracts/","fhevm/=node_modules/fhevm/","forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","httpz-contracts/=lib/httpz-contracts/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","permit2/=lib/permit2/","solmate/=lib/permit2/lib/solmate/","universal-router.git/=lib/universal-router.git/","v2-core/=lib/v2-core/contracts/","v3-core/=lib/v3-core/","v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/","v4-core/=lib/v4-core/src/","v4-periphery/=lib/v4-periphery/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/interfaces/IIndexFund.sol":"IIndexFund"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol":{"keccak256":"0x6f947e91a3369017e4d0147ac44ea39c6f8ffa4a5307d8339481f4e88355a62d","urls":["bzz-raw://27794b1340f9299d7be061aacde65075fca40a1d722e8c5181cee22f257eeb25","dweb:/ipfs/QmT3DReokqZhMtDcEDpkTgf1zG5cZELzPEZDjrqpfEXjWC"],"license":"BSD-3-Clause-Clear"},"contracts/IndexFundToken.sol":{"keccak256":"0x6d1e6a25f9d42b8d6a080a35f7a3b5349abae3f4a30c136f907cc52778a0fe27","urls":["bzz-raw://1d81c68b7233cba175382a539bfbcfaf92b06197add787b3b429ec98c65c4669","dweb:/ipfs/QmYEwXLUeBFNnK8ZZxYo3pVJe7hZrEMitxbGyrrotbU4yt"],"license":"BSD-3-Clause-Clear"},"contracts/interfaces/IIndexFund.sol":{"keccak256":"0xd9ef0b82a5fbc651233fa570e20487052da9bc9e608d7fec5c54c3259b64b0db","urls":["bzz-raw://2fa0a193b577c89a809b110a6a770068cf8e7c86807d1022b10a44304ada1f90","dweb:/ipfs/QmewwyiHG7fnHucV1zLT5iYLzNiV4ryaBMqMoPmPRgD6WW"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol":{"keccak256":"0x8b45e5bb2fd9212f99e61b4d25b9c9d5ed7cb1a9a684aac34f752c568ef16c76","urls":["bzz-raw://1ca71bb5bfbb2f8a0779f8394baeea01680619637abddb572017d05d96862591","dweb:/ipfs/QmPCzGBE1m6WtDZxrVL5jzkduNaS7fjtYovUWdnzN34qjh"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20Wrapped.sol":{"keccak256":"0x7e178a03b7f034532497a8b762069fff0808277befc880e4a3236938ba1380a7","urls":["bzz-raw://7250476c961801e579719fd0201a3ff6bfdc79e8324db34d5ec0c6cecc281281","dweb:/ipfs/QmNsTR2Rk2FRS3cTNf7WeN3UzPZy6HSj1SFV3Nuwz8Rpzi"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol":{"keccak256":"0xe016a085f72ca3cf6d78ec1cb2182a398106cb7d425e984776a9caab0bad2569","urls":["bzz-raw://3e79dc5075469d660908f5f8b6d0c863b14459d60a0b06fb786d58de8cf30a94","dweb:/ipfs/QmePGRGtoWBnQ8T6ZRyZgiwVh4r67kcmWejwKgjyYN4AAY"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20Wrapped.sol":{"keccak256":"0x72c5379fb2a7e1701a4686f60831bfc474350a42f0660aea815a5ce910cba38b","urls":["bzz-raw://118fac79c89e142247e94763a1ca1235c307a67b37d68fa45d94125bc85c2cb8","dweb:/ipfs/QmcE9P74NQQKnmW9vdtGb8KrWgJWH6K3bNTdrMxrPi716c"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol":{"keccak256":"0xfe322c8f9a8e4fba881715901a5bafd2efa23394ecbc9ec84282818baeff0a07","urls":["bzz-raw://13dba831528dd16408b7abab23eac0664a2a3e5ecbfe5e58e6e321cf2921668a","dweb:/ipfs/QmPq4YeugbayWfeBJR8H7s4jHsnZkACQX2xbdNQ4sdvZrk"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol":{"keccak256":"0xecc6289a9791bef254911393b51d2bfbddc5650ede7fbe7b5cc2b8d3eb01d7a6","urls":["bzz-raw://7463278a20bc5d7fd8b7ec2cb8e592b2d1e0afcf8b59d35d6929d18661d4b38c","dweb:/ipfs/QmTKPoABwNDmK7g7vkti1AkTpkUBHu3iX3zsXQsEuSiqBM"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/utils/EncryptedErrors.sol":{"keccak256":"0x0b8d08f392884add1af672018359e8980ee0b5e1662fe5e36eb31f053d1d4505","urls":["bzz-raw://2903dd49a88b36aba2e8a45548b6a68d203887356ebdf452b10e0148954ba1a5","dweb:/ipfs/QmTRuP4QXagoV2cLr2ctzFtNK7FK1cDXMYm4feMoMsYoWG"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/utils/TFHEErrors.sol":{"keccak256":"0x5fef7c2d7d4449d724a2800b37dfcc61e2b635f2747378ce222b9187425f2d13","urls":["bzz-raw://7c2ef113faaec2d74c8d958f80687d0b676082d6231720917aaa8aa934d689a3","dweb:/ipfs/QmNn474JDQ5zvVDwEuicJs6Xq8YEXWGZLoW4KeTWDVG31f"],"license":"BSD-3-Clause-Clear"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol":{"keccak256":"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c","urls":["bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0","dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330","urls":["bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf","dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x4ea01544758fd2c7045961904686bfe232d2220a04ecaa2d6b08dac17827febf","urls":["bzz-raw://fabe6bef5167ae741dd8c22d7f81d3f9120bd61b290762a2e8f176712567d329","dweb:/ipfs/QmSnEitJ6xmf1SSAUeZozD7Gx7h8bNnX3a1ZBzqeivsvVg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol":{"keccak256":"0x534bf5c25d6003a8ce50b400d20fa460c03169ad7baa90d47a912917c36dfe2b","urls":["bzz-raw://cc0cc39c40ea23d3c46e8517e19ebdd877719d3159fa032f2a91802cdd205c79","dweb:/ipfs/QmSoNh7HTkD4TJcBkBKSGSPMMpLUZKE7s9f2G6mjdaJywg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1","urls":["bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889","dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"node_modules/fhevm/config/ZamaFHEVMConfig.sol":{"keccak256":"0x41782f4c707b81399916544fa2e7be94a695fa4ba468542732d29d3e383c0315","urls":["bzz-raw://45a95a55c4bbb3418c2133cba6ed21a9444bb4e38d38b32cc707b7493cece2ca","dweb:/ipfs/QmVU8EKmZgscdM43RgXD4EgbVMhQxBusTmBren3pbn1pUW"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/gateway/GatewayCaller.sol":{"keccak256":"0xd19fd7715f0c5b479bf0cd8e3108cc8da7deae2d4fc7fb5ab089ebf2d76a0652","urls":["bzz-raw://6386c509464cefe5a41903ca837da46a21b8042d13ccde656158efc48cd70ea8","dweb:/ipfs/QmUn7C6aZwKmEmKsphBshBezXXGZtLMyfaeZAyuZoRsBWU"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/gateway/lib/Gateway.sol":{"keccak256":"0x9585a649e3001a4b8768ab6e2597b416f680bcc537309cd50b60e023e9791318","urls":["bzz-raw://a1b055bfb067cc247d4bd60b5f8348f667cbe79717a5753cd6412955277345d0","dweb:/ipfs/QmTveBaQg9GUdtrrxcR4RsiyAEmoEKGL4gn6E1gThR1ph5"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/lib/Impl.sol":{"keccak256":"0x89d4968cd956a8931f1a8a177b3bef1c6cf88a03665083db74430add50b88f21","urls":["bzz-raw://aaaef2c82d56dacfb08946842ea1ce26757d13f3251de62fa79222232dfcb43c","dweb:/ipfs/QmQ6QZPxJw9jb3qjRYCX7pMQVoYogjTsYgmdEnB3EnwFRy"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/lib/TFHE.sol":{"keccak256":"0x221799c8332f83ab65a0b71746409f0c2c89f1cd8d9ba4091d967c667e1df734","urls":["bzz-raw://2dba387fbc612a2ee64063b0ee6c27304b3944423d11045acc50abd84577fb5f","dweb:/ipfs/QmThptDGnpd8PuncFk1rnQoCzEqwUED622yC9xZgFhwY59"],"license":"BSD-3-Clause-Clear"}},"version":1},"id":8} \ No newline at end of file diff --git a/out/IndexFundFactory.sol/IndexFundFactory.json b/out/IndexFundFactory.sol/IndexFundFactory.json index 3777cbb..889dbac 100644 --- a/out/IndexFundFactory.sol/IndexFundFactory.json +++ b/out/IndexFundFactory.sol/IndexFundFactory.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_swapsManagerProxy","type":"address","internalType":"address"},{"name":"_markerDataFetcher","type":"address","internalType":"address"},{"name":"_defaultSharePrice","type":"uint256","internalType":"uint256"},{"name":"_feeDivisor","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createConfidentialIndexFund","inputs":[{"name":"indexTokens","type":"address[]","internalType":"address[]"},{"name":"encryptedStablecoin","type":"address","internalType":"address"},{"name":"stablecoin","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"feeDivisor","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"indexTokensAndStablecoinToIndexFund","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"contract IIndexFund"}],"stateMutability":"view"},{"type":"function","name":"marketDataFetcher","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract MarketDataFetcher"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeWhitelistedTokenStablecoinPair","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"stablecoin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDefaultSharePrice","inputs":[{"name":"newDefaultSharePrice","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFeeDivisor","inputs":[{"name":"newFeeDivisor","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setProtocolFee","inputs":[{"name":"newFeeDivisor","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swapsManagerProxy","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"tokenStablecoinPairToPoolKey","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"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"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"whitelistTokenStablecoinPair","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"stablecoin","type":"address","internalType":"address"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"CurrencyPairNotWhitelisted","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"stablecoin","type":"address","internalType":"address"}]},{"type":"error","name":"IndexFundAlreadyExists","inputs":[{"name":"indexTokens","type":"address[]","internalType":"address[]"},{"name":"stablecoin","type":"address","internalType":"address"}]},{"type":"error","name":"NoPriceFeedForToken","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60803461010257601f615d4538819003918201601f19168301916001600160401b0383118484101761010657808492608094604052833981010312610102576100478161011a565b906100546020820161011a565b90606060408201519101519133156100ef575f8054336001600160a01b0319821681178355604051969290916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3600380546001600160a01b039283166001600160a01b03199182161790915560048054939092169216919091179055600555600655615c16908161012f8239f35b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101025756fe60806040526004361015610011575f80fd5b5f3560e01c8063043531b114610b4057806344c6058214610ad057806344fc4fab14610aa8578063715018a614610a51578063787dce3d14610a365780637c7024d614610a0e5780638c2d2783146109dc5780638c591c6b1461036d5780638da5cb5b146103465780639a36f93214610329578063c9da450814610308578063e57b0faf146102a8578063f2fde38b146102235763ff63aa73146100b3575f80fd5b3461021f5760a036600319011261021f576100cc610bcd565b6100d4610bb7565b9060443562ffffff811680910361021f57606435908160020b80920361021f576084356001600160a01b038116929083900361021f57610112610cb6565b6001600160a01b03848116949086169290838610156102075761017161017f60029798604051996101428b610b61565b8a5260208a0196875260408a0194855260608a0195865260808a01978852604051928391602083019586610c2a565b03601f198101835282610b7d565b5190205f908152602086905260409020955186546001600160a01b039182166001600160a01b031991821617885593516001880180549351945160b81b62ffffff60b81b1662ffffff60a01b60a09690961b959095169183166001600160d01b0319909416939093171792909217905591519390920180549390911692909116919091179055005b61017161017f6002979598604051996101428b610b61565b5f80fd5b3461021f57602036600319011261021f5761023c610bcd565b610244610cb6565b6001600160a01b03168015610295575f80546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b631e4fbdf760e01b5f525f60045260245ffd5b3461021f57604036600319011261021f576102c1610bcd565b6101716102e86102cf610bb7565b6102d7610cb6565b604051928391602083019586610c2a565b5190205f5260026020525f60026040822082815582600182015501555f80f35b3461021f57602036600319011261021f57610321610cb6565b600435600555005b3461021f575f36600319011261021f576020600654604051908152f35b3461021f575f36600319011261021f575f546040516001600160a01b039091168152602090f35b3461021f57606036600319011261021f5760043567ffffffffffffffff811161021f573660238201121561021f5780600401356103a981610b9f565b916103b76040519384610b7d565b81835260208301906024829360051b8201019036821161021f57602401915b8183106109bc575050506103e8610bb7565b916044356001600160a01b0381169081810361021f57600480546040516325e9181b60e01b81529182018490526001600160a01b03169490602081602481895afa908115610648575f9161099d575b506001600160a01b03161561098a576040518060208101928387519091905f5b81811061096857505050610487916014916001600160601b03198760601b16815203600b19810184520182610b7d565b5190209383519461049786610b9f565b956104a56040519788610b7d565b8087526104b4601f1991610b9f565b015f5b8181106109335750505f5b8551811015610653576001600160a01b036104dd8288610c02565b51166040516325e9181b60e01b8152816004820152602081602481885afa908115610648575f9161061a575b506001600160a01b03161561060857506001600160a01b0361052b8288610c02565b51166040516105438161017188602083019586610c2a565b5190205f52600260205260405f206040519061055e82610b61565b80546001600160a01b0390811680845260018301548083166020860181905260a082901c62ffffff16604087015260b89190911c600290810b60608701529093015490911660808401521590816105ff575b506105d557906001916105c3828a610c02565b526105ce8189610c02565b50016104c2565b856001600160a01b036105e8848a610c02565b511663a17a1d7b60e01b5f5260045260245260445ffd5b9050158a6105b0565b63a24a6aed60e01b5f5260045260245ffd5b61063b915060203d8111610641575b6106338183610b7d565b810190610be3565b8a610509565b503d610629565b6040513d5f823e3d90fd5b5083868887845f52600160205260018060a01b0360405f2054166109035760208061070c60236106db60035460a01c6106d6602f61069083610cf8565b6040519889916d24b73232bc233ab7322a37b5b2b760911b82840152605f60f81b602e8401528051918291018484015e81015f838201520301601f198101885287610b7d565b610cf8565b6040519384916212519560ea1b828401528051918291018484015e81015f838201520301601f198101835282610b7d565b60405191611d53918284019084821067ffffffffffffffff8311176108db57610747610755938695613e8e8739604084526040840190610c92565b916020818403910152610c92565b03905ff08015610648576003548060a01c906001600160601b0382146108ef5760018060a01b03169060016001600160601b0360a01b910160a01b16811760035560018060a01b03600454166005549260405197613028808a01968a881067ffffffffffffffff8911176108db576107e6908b9a9998979695949392610e668c396101208852610120880190610c56565b9660018060a01b03166020870152604086015230606086015260018060a01b0316608085015260a084015260c083015260e0820152610100818303910152602080835192838152019201905f5b81811061087d5750505003905ff0908115610648575f9081526001602090815260409182902080546001600160a01b0319166001600160a01b039094169384179055905191825290f35b825180516001600160a01b03908116865260208281015182168188015260408084015162ffffff169088015260608084015160020b908801526080928301519091169186019190915286955060a09094019390920191600101610833565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b610929908460405192839263252fde1160e21b8452604060048501526044840190610c56565b9060248301520390fd5b60209060405161094281610b61565b5f81525f838201525f60408201525f60608201525f608082015282828b010152016104b7565b82516001600160a01b0316845285945060209384019390920191600101610457565b8263a24a6aed60e01b5f5260045260245ffd5b6109b6915060203d602011610641576106338183610b7d565b87610437565b82356001600160a01b038116810361021f578152602092830192016103d6565b3461021f57602036600319011261021f576004355f526001602052602060018060a01b0360405f205416604051908152f35b3461021f575f36600319011261021f576004546040516001600160a01b039091168152602090f35b3461021f57602036600319011261021f57610a4f610cb6565b005b3461021f575f36600319011261021f57610a69610cb6565b5f80546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461021f575f36600319011261021f576003546040516001600160a01b039091168152602090f35b3461021f57602036600319011261021f576004355f52600260205260a060405f20600180831b03815416906001810154906002600180861b039101541690604051928352600180851b038116602084015262ffffff81851c16604084015260b81c60020b60608301526080820152f35b3461021f57602036600319011261021f57610b59610cb6565b600435600655005b60a0810190811067ffffffffffffffff8211176108db57604052565b90601f8019910116810190811067ffffffffffffffff8211176108db57604052565b67ffffffffffffffff81116108db5760051b60200190565b602435906001600160a01b038216820361021f57565b600435906001600160a01b038216820361021f57565b9081602091031261021f57516001600160a01b038116810361021f5790565b8051821015610c165760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b90916028926001600160601b03199060601b1682526001600160601b03199060601b1660148201520190565b90602080835192838152019201905f5b818110610c735750505090565b82516001600160a01b0316845260209384019390920191600101610c66565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b5f546001600160a01b03163303610cc957565b63118cdaa760e01b5f523360045260245ffd5b67ffffffffffffffff81116108db57601f01601f191660200190565b805f9172184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b821015610e42575b806d04ee2d6d415b85acef8100000000600a921015610e27575b662386f26fc10000811015610e13575b6305f5e100811015610e02575b612710811015610df3575b6064811015610de5575b1015610dda575b600a60216001840193610d7f85610cdc565b94610d8d6040519687610b7d565b808652610d9c601f1991610cdc565b013660208701378401015b5f1901916f181899199a1a9b1b9c1cb0b131b232b360811b8282061a8353048015610dd557600a9091610da7565b505090565b600190910190610d6d565b606460029104930192610d66565b61271060049104930192610d5c565b6305f5e10060089104930192610d51565b662386f26fc1000060109104930192610d44565b6d04ee2d6d415b85acef810000000060209104930192610d34565b506040915072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8104610d1a56fe61014080604052346105ff57613028803803809161001d8285610743565b8339810190610120818303126105ff5780516001600160401b0381116105ff5781019082601f830112156105ff5781519061005782610766565b926100656040519485610743565b828452602084016020819460051b830101918683116105ff57602001905b828210610710575050506100996020820161077d565b916100a66040830161077d565b926100b36060840161077d565b936100c06080850161077d565b906100cd60a0860161077d565b926100da60c0870161077d565b60e087015161010088015190979196916001600160401b0382116105ff5701988a601f8b0112156105ff5789519a6101118c610766565b9a61011f6040519c8d610743565b8c8c5260208c0191602060a0849f02830101918183116105ff57602001925b8284106106775750505050600180555f606060405161015c81610728565b8281528260208201528260408201520152739d6891a6240d6130c54ae243d8005063d05fe14b606060405161019081610728565b73fee8407e2f5e3ee68ad77cae98c434e637f516e580825273687408ab54661ba0b4aef3a44156c616c6955e076020830181905273fb03be574d14c256d56f09a198b586bdfc0a9de26040840181905293909201939093527fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60080546001600160a01b031990811690941790557fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea6018054841690911790557fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea6028054831690911790557fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60380548216739d6891a6240d6130c54ae243d8005063d05fe14b1790557f93ab6e17f2c461cce6ea5d4ec117e51dda77a64affc2b2c05f8cd440def0e70080549091167333347831500f1e73f0cccbb95c9f86b94d7b112317905551906001600160401b0382116105b9576801000000000000000082116105b957600c5482600c55808310610633575b50600c5f5260205f205f5b838110610616578c8c600460208e8e8e8e8e8e8e60018060a01b03166101005260018060a01b0316610120528460e05260018060a01b031660805260018060a01b031660a05260c052600e5560405192838092638da5cb5b60e01b825260018060a01b03165afa90811561060b575f916105cd575b50601080546001600160a01b0319166001600160a01b039290921691909117905551906801000000000000000082116105b957600d5482600d55808310610539575b5090600d5f5260205f205f925b8284106104a0576040516128969081610792823960805181818161019201528181610c93015281816114cf0152818161195101526119a2015260a05181818161040101528181610ac901528181610e2301526119c6015260c05181818161052e01528181610f3d0152818161110b0152611162015260e05181610b1e0152610100518181816106220152818161093501528181610a1e01528181610a6a01528181610f070152611d3a0152610120518161206a0152f35b8051805183546001600160a01b039182166001600160a01b0319918216178555602080840151600180880180546040880151606089015160b81b62ffffff60b81b1662ffffff60a01b60a09290921b919091169488166001600160d01b031990921691909117939093179290921790915560809094015160028701805491909416921691909117909155940193600390920191016103e9565b806003029060038204036105a557826003026003810484036105a557600d5f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb591820191015b81811061058d57506103dc565b805f600392555f60018201555f600282015501610580565b634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52604160045260245ffd5b90506020813d602011610603575b816105e860209383610743565b810103126105ff576105f99061077d565b8361039a565b5f80fd5b3d91506105db565b6040513d5f823e3d90fd5b82516001600160a01b031681830155602090920191600101610325565b600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c79081019083015b81811061066c575061031a565b5f815560010161065f565b60a0848303126105ff576040519060a082016001600160401b038111838210176105b9576040526106a78561077d565b82526106b56020860161077d565b6020830152604085015162ffffff811681036105ff57604083015260608501518060020b81036105ff5760608301526080850151906001600160a01b03821682036105ff5782602092608060a095015281520193019261013e565b6020809161071d8461077d565b815201910190610083565b608081019081106001600160401b038211176105b957604052565b601f909101601f19168101906001600160401b038211908210176105b957604052565b6001600160401b0381116105b95760051b60200190565b51906001600160a01b03821682036105ff5756fe6080806040526004361015610012575f80fd5b5f905f3560e01c90816301ffc9a7146121675750806305d7d94b14611ffd578063248a9ca314611fcb5780632f2ff15d14611f9a57806335c995ec14611cca57806336568abe14611c9157806338f250ec14611c1b5780634148fc4f1461198057806375696e7f1461193b5780639134867c1461138c57806391d148541461135057806397771de514610980578063a217fddf14610964578063b6f673121461091f578063d547741f146108e65763fcb74a45146100ce575f80fd5b346108e35760a03660031901126108e3576100e761220d565b6100ef61221d565b906064359182151583036108df57608435918215928315036108db5761011361247b565b5f80516020612821833981519152546001600160a01b031633036108db5760ff166108cc576001600160401b0316916001600160401b0383116108b85760043584526009602052610170610177604086206040519283809261237f565b0382612233565b6001600160a01b0390610189906122eb565b5116916108a1577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169184833b1561089d5785604051634edf56a160e11b81528660048201528181602481838a5af180156106e857610888575b505084337fdb79cc492679ef2624944d6ed3cdbad5b974b5550de330ae18922f2944eec78a8880a385805b600c5481101561088057610229816123bf565b905460039190911b1c6001600160a01b03168015610838576040516370a0823160e01b8152306004820152602081602481855afa801561082d57899185916107f3575b5090610277916123f0565b6040516318160ddd60e01b8152906020826004818c5afa9182156107e8576102b1926001600160401b039187916107ba575b501690612411565b861561034f57906044602092604051958693849263a9059cbb60e01b84528a600485015260248401525af191821561034457600192610318575b507ee2d681c483528119b71f74ebcd6ad9dd9ca7fd71ea2245aa2362e27d3f2eb68880a15b018690610216565b6103389060203d811161033d575b6103308183612233565b810190612268565b6102eb565b503d610326565b6040513d8a823e3d90fd5b918094935061035e91506123bf565b60018060a01b0391549060031b1c1660125461ff0061038260ff8360081c1661244e565b60081b169061ff001916176012558089526014602052604089206103a7838254612330565b9055601254600260ff8260081c16146103c7575b50505090600190610310565b61ff0019166012558089526014602052604089205491816107545760125b604051630681320d60e51b8152600481018490526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610749578c91610718575b506009810290808204600914901517156106f35790610467600a6104608761046d956123f0565b0491612403565b90612411565b926001600160801b03811161070757506104868561245f565b5092603c4201918242116106f3578b949392916001600160801b03809260405196630abff6dd60e11b885260018060a01b038154166004890152600181015460018060a01b03811660248a015262ffffff8160a01c1660448a015260b81c60020b6064890152600260018060a01b039101541660848801521660a48601521660c484015260e48301526001610104830152610124820152602081610144818560018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19081156106e85782916106b2575b506105699192612330565b917f875fc5b1c93e96a85172e0d2b74fcdb6f314c3460e99e6a7da8743bc8b75e37c8280a18261059d575b91905f806103bb565b5f8051602061284183398151915254604051631ce2e8d760e31b815260048101859052600560f81b60248201529260209184916044918391906001600160a01b03165af191821561034457889261067a575b506040516323b872dd60e01b815230600482015233602482015260448101929092526020826064818b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19182156103445760019261065c575b50879150610594565b6106739060203d811161033d576103308183612233565b505f610653565b91506020823d82116106aa575b8161069460209383612233565b810103126106a65790519060206105ef565b5f80fd5b3d9150610687565b9150506020813d82116106e0575b816106cd60209383612233565b810103126106a65751879061056961055e565b3d91506106c0565b6040513d84823e3d90fd5b634e487b7160e01b8c52601160045260248cfd5b628af7f560e11b8b5260045260248afd5b90506020813d8211610741575b8161073260209383612233565b810103126106a657515f610439565b3d9150610725565b6040513d8e823e3d90fd5b60405163313ce56760e01b8152602081600481865afa80156107af5760ff918c91610781575b50166103e5565b6107a2915060203d81116107a8575b61079a8183612233565b8101906123d7565b5f61077a565b503d610790565b6040513d8d823e3d90fd5b6107db915060203d81116107e1575b6107d38183612233565b81019061242f565b5f6102a9565b503d6107c9565b6040513d87823e3d90fd5b945050506020833d8211610825575b8161080f60209383612233565b810103126106a657610277888a9451909161026c565b3d9150610802565b6040513d86823e3d90fd5b61084288476123f0565b6040516318160ddd60e01b8152906020826004818c5afa9182156107e85761087b926001600160401b039187916107ba57501690612411565b6102b1565b506001805580f35b8161089291612233565b61089d57855f6101eb565b8580fd5b6044848484637655665160e11b8352600452602452fd5b632dd1ea2160e11b84526004839052602484fd5b6312171d8360e31b8452600484fd5b8480fd5b8380fd5b80fd5b50346108e35761091b6108f8366121ba565b90610916610911825f525f602052600160405f20015490565b61249b565b6125e3565b5080f35b50346108e357806003193601126108e3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346108e357806003193601126108e357602090604051908152f35b50346108e35760603660031901126108e35761099a61220d565b6109a261221d565b6109aa61247b565b5f80516020612821833981519152546001600160a01b03163303610d32576004358352600960205260ff6101706109ea604086206040519283809261237f565b6001600160a01b03906109fc906122eb565b51169216611341576001600160401b0316906001600160401b03821161132d577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163b15610d325760405163dc412e8360e01b81526004810183905283908181602481837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af180156106e857611318575b5050604051630a7c1bd560e21b81526020600482015290838280610ac56024820161233d565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa91821561082d5784908593611279575b50600f819055604051634d1b7c9960e11b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015610fa3578690611245575b610b60915085612411565b610b6c81601154612330565b601155807fc472cb3a7a659a876494d66b3063145f279701771d6150b9329c31611ed6405c8780a28403938411611231578251600c5481036111ba5790835193610bb5856122d4565b94610bc36040519687612233565b808652610bd2601f19916122d4565b0136602087013786916201518042019165ffffffffffff8342119316935b8581106110ae5750505050505060125460ff610c0d81831661244e565b169060ff191617601255835b600c54811015610c665780610c306001928561231c565b51610c3a826123bf565b848060a01b0391549060031b1c1687526013602052610c5e60408820918254612330565b905501610c19565b848285601254600260ff821614610d3a575b50610c8e6001600160401b0391600e5490612411565b1690827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b15610d36578180916044604051809481936302893c5b60e41b83528860048401528960248401525af180156106e857610d1d575b50807f6332ddaa8a69b5eb2524ec7ca317b7c2b01ecf678d584031415f81270977b8fc91a36001805580f35b81610d2791612233565b610d32578284610cf1565b8280fd5b5080fd5b60ff19166012559042603c81011090835b600c5481101561107357610d5e816123bf565b905460039190911b1c6001600160a01b031690610d7a8161245f565b506040519260a084018481106001600160401b0382111761105f5760405260018060a01b038254168452600182015491602085019260018060a01b0381168452604086019162ffffff8260a01c168352606087019160b81c60020b8252600260018060a01b03910154169160808701928352838b52601360205260408b20549380155f14611011576012905b604051630681320d60e51b815260048101919091526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115611006578d91610fd5575b50600981029080820460091490151715610fc15790610467600a61046088610e82956123f0565b946001600160801b038511610fae57896106f357604051630abff6dd60e11b815297516001600160a01b0390811660048a0152905181166024890152905162ffffff166044880152905160020b60648701529051811660848601526001600160801b0391821660a4860152911660c484015242603c0160e484015260016101048401527f0000000000000000000000000000000000000000000000000000000000000000811661012484015260209083906101449082908a907f0000000000000000000000000000000000000000000000000000000000000000165af1918215610fa357600192610f75575b5001610d4b565b610f959060203d8111610f9c575b610f8d8183612233565b8101906122c5565b5086610f6e565b503d610f83565b6040513d88823e3d90fd5b628af7f560e11b8c52600485905260248cfd5b634e487b7160e01b8d52601160045260248dfd5b90506020813d8211610ffe575b81610fef60209383612233565b810103126106a657518d610e5b565b3d9150610fe2565b6040513d8f823e3d90fd5b60405163313ce56760e01b81528c90602081600481865afa9081156106e85760ff9291611041575b501690610e06565b611059915060203d81116107a85761079a8183612233565b8e611039565b634e487b7160e01b89526041600452602489fd5b50916001600160401b039150610c8e907f79154593ad5827af96f232d8b081e8d48c8bad62e5314fd67880b9880b4812408580a19150610c78565b6110cb836110c66110bf848661231c565b518c6123f0565b612411565b6110d5828a61231c565b526110df816123bf565b90546001600160a01b0360039290921b1c81169085906110ff848c61231c565b5116906106f3578b91907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163b15610d325760405163267b14bd60e01b815260048101929092526024820152604481018790528181606481837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af180156106e8576111a1575b5050600101610bf0565b816111ab91612233565b6111b657895f611197565b8980fd5b60405162461bcd60e51b815260206004820152604360248201527f446973726570616e6379206265747765656e206e756d626572206f66206d617260448201527f6b6574206361707320616e64206e756d626572206f6620696e64657820746f6b606482015262656e7360e81b608482015260a490fd5b634e487b7160e01b85526011600452602485fd5b506020813d602011611271575b8161125f60209383612233565b810103126106a657610b609051610b55565b3d9150611252565b9250503d8085843e61128b8184612233565b8201916040818403126108db578051906020810151906001600160401b03821161131457019280601f8501121561089d5783516112c7816122d4565b946112d56040519687612233565b81865260208087019260051b82010192831161131057602001905b828210611300575050505f610b03565b81518152602091820191016112f0565b8780fd5b8680fd5b8161132291612233565b610d3257825f610a9f565b63dcba2f6b60e01b83526004829052602483fd5b6312171d8360e31b8352600483fd5b50346108e3576040611361366121ba565b9290815280602052209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b50346108e35760603660031901126108e3576044356001600160401b038111610d36576113ed6020806113c560a49436906004016121e0565b93906113cf61247b565b6113e56113dd368784612280565b600435612663565b943691612280565b60018060a01b035f80516020612841833981519152541690866040519687809581946302e817ff60e41b83526024356004840152336024840152608060448401528051918291826084860152018484015e83838284010152836064830152601f801991011681010301925af19182156119305783926118fc575b505f805160206128018339815191525483906001600160a01b0316803b15610d36578180916044604051809481936346ce4e4960e11b83528960048401523360248401525af180156106e8576118e7575b50506040516370a0823160e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316929091602083602481875afa9283156107e85785936118b3575b5082819382156118a3575b15611891575b602090606460018060a01b035f805160206128418339815191525416958860405197889485936334a6d7b960e11b8552600485015260248401528160448401525af19283156107e857859361185d575b506040516323b872dd60e01b81523360048201523060248201526044810182905260208160648189895af18015610fa357611840575b50604051630cf4e94560e31b8152602081600481885afa908115610fa357869161180e575b505f1981019081116117fa5760209060246040518097819363a5184baf60e01b835260048301525afa9384156107e85785946117c6575b506040519361161460a086612233565b600485526080366020870137611629856122eb565b526116338461230c565b528251600210156117b257606083015281516003101561179e576080820152606442019081421161178a575f805160206128018339815191525483906001600160a01b0316803b15610d365781604051809263155f840160e21b8252602060048301528183816116a6602482018a61255b565b03925af180156106e857611775575b50505f8051602061282183398151915254604051634c0d927760e01b815260a060048201529260209284926001600160a01b0316918391879183916116fe9060a484019061255b565b9063fcb74a4560e01b6024840152836044840152606483015282608483015203925af180156106e8578290611741575b61173a9150339061258e565b6001805580f35b506020813d60201161176d575b8161175b60209383612233565b810103126106a65761173a905161172e565b3d915061174e565b8161177f91612233565b610d3257825f6116b5565b634e487b7160e01b83526011600452602483fd5b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b84526032600452602484fd5b9093506020813d6020116117f2575b816117e260209383612233565b810103126106a65751925f611604565b3d91506117d5565b634e487b7160e01b86526011600452602486fd5b90506020813d602011611838575b8161182960209383612233565b810103126106a657515f6115cd565b3d915061181c565b6118589060203d60201161033d576103308183612233565b6115a8565b9092506020813d602011611889575b8161187960209383612233565b810103126106a65751915f611572565b3d915061186c565b50602061189c61277b565b9050611522565b93506118ad61277b565b9361151c565b9092506020813d6020116118df575b816118cf60209383612233565b810103126108db5751915f611511565b3d91506118c2565b816118f191612233565b610d3257825f6114b8565b9091506020813d602011611928575b8161191860209383612233565b810103126106a65751905f611467565b3d915061190b565b6040513d85823e3d90fd5b50346108e357806003193601126108e3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346108e357806003193601126108e357600c54819081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116907f000000000000000000000000000000000000000000000000000000000000000016835b8385106119fa57602086604051908152f35b909192939450611a09856123bf565b9054604051630681320d60e51b815260039290921b1c6001600160a01b0316600482015290602082602481865afa8015611b33578790611be9575b602492506020611a53886123bf565b90546040516370a0823160e01b81523060048201529586929091839160031b1c6001600160a01b03165afa928315610344578893611bb6575b5087611a97886123bf565b905460039190911b1c6001600160a01b0316611b3e5750611aca90610467611ac4611ad0956012936123f0565b91612403565b90612330565b6040516318160ddd60e01b8152602081600481875afa8015611b33576001600160401b03611b0a916001938a91611b15575b501683612411565b9501939291906119e8565b611b2d915060203d81116107e1576107d38183612233565b5f611b02565b6040513d89823e3d90fd5b9060046020611b4c8a6123bf565b905460405163313ce56760e01b81529384929091839160031b1c6001600160a01b03165afa90811561193057611ad09560ff61046793611ac493611aca9791611b98575b5016936123f0565b611bb0915060203d81116107a85761079a8183612233565b5f611b90565b9092506020813d8211611be1575b81611bd160209383612233565b810103126106a65751915f611a8c565b3d9150611bc4565b506020823d8211611c13575b81611c0260209383612233565b810103126106a65760249151611a44565b3d9150611bf5565b50346108e357806003193601126108e35760405190611c4482611c3d8161233d565b0383612233565b604051918291602083016020845282518091526020604085019301915b818110611c6f575050500390f35b82516001600160a01b0316845285945060209384019390920191600101611c61565b50346108e357611ca0366121ba565b90336001600160a01b03831603611cbb579061091b916125e3565b63334bd91960e11b8352600483fd5b50346106a65760403660031901126106a6576024356001600160401b0381116106a6576113dd611d01611d109236906004016121e0565b611d0961247b565b3691612280565b6040516323b872dd60e01b8152336004820152306024820152604481018290526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691906020816064815f875af18015611ef857611f7d575b50604051630cf4e94560e31b8152602081600481865afa908115611ef8575f91611f4b575b505f198101908111611f035760209060246040518095819363a5184baf60e01b835260048301525afa918215611ef8575f92611f17575b5060405191611ddd606084612233565b600283526040366020850137611df2836122eb565b52611dfc8261230c565b526064420190814211611f03575f80516020612801833981519152546001600160a01b0316803b156106a6575f604051809263155f840160e21b825260206004830152818381611e4f602482018961255b565b03925af18015611ef857611ee1575b505f8051602061282183398151915254604051634c0d927760e01b815260a060048201529260209284926001600160a01b031691839187918391611ea69060a484019061255b565b906397771de560e01b6024840152836044840152606483015282608483015203925af180156106e85782906117415761173a9150339061258e565b611eee9193505f90612233565b5f91611ea6611e5e565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b9091506020813d602011611f43575b81611f3360209383612233565b810103126106a65751905f611dcd565b3d9150611f26565b90506020813d602011611f75575b81611f6660209383612233565b810103126106a657515f611d96565b3d9150611f59565b611f959060203d60201161033d576103308183612233565b611d71565b346106a657611fc9611fab366121ba565b90611fc4610911825f525f602052600160405f20015490565b6124d3565b005b346106a65760203660031901126106a6576020611ff56004355f525f602052600160405f20015490565b604051908152f35b346106a6575f3660031901126106a6576010546001600160a01b0316330361210b5761202761247b565b601154156120d4575f601181905560105460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529160209183916044918391907f0000000000000000000000000000000000000000000000000000000000000000165af1908115611ef8575f916120b5575b50156120a65760018055005b6312171d8360e31b5f5260045ffd5b6120ce915060203d60201161033d576103308183612233565b8161209a565b60405162461bcd60e51b815260206004820152600f60248201526e139bc81999595cc81d1bc81cd95b99608a1b6044820152606490fd5b60405162461bcd60e51b815260206004820152602e60248201527f4f6e6c79207468652070726f746f636f6c206f776e65722063616e2063616c6c60448201526d103a3434b990333ab731ba34b7b760911b6064820152608490fd5b346106a65760203660031901126106a6576004359063ffffffff60e01b82168092036106a657602091637965db0b60e01b81149081156121a9575b5015158152f35b6301ffc9a760e01b149050836121a2565b60409060031901126106a657600435906024356001600160a01b03811681036106a65790565b9181601f840112156106a6578235916001600160401b0383116106a657602083818601950101116106a657565b6024359060ff821682036106a657565b604435906001600160401b03821682036106a657565b90601f801991011681019081106001600160401b0382111761225457604052565b634e487b7160e01b5f52604160045260245ffd5b908160209103126106a6575180151581036106a65790565b9291926001600160401b03821161225457604051916122a9601f8201601f191660200184612233565b8294818452818301116106a6578281602093845f960137010152565b908160209103126106a6575190565b6001600160401b0381116122545760051b60200190565b8051156122f85760200190565b634e487b7160e01b5f52603260045260245ffd5b8051600110156122f85760400190565b80518210156122f85760209160051b010190565b91908201809211611f0357565b6020600c54918281520190600c5f5260205f20905f5b8181106123605750505090565b82546001600160a01b0316845260209093019260019283019201612353565b90602082549182815201915f5260205f20905f5b8181106123a05750505090565b82546001600160a01b0316845260209093019260019283019201612393565b600c548110156122f857600c5f5260205f2001905f90565b908160209103126106a6575160ff811681036106a65790565b81810292918115918404141715611f0357565b604d8111611f0357600a0a90565b811561241b570490565b634e487b7160e01b5f52601260045260245ffd5b908160209103126106a657516001600160401b03811681036106a65790565b60ff1660ff8114611f035760010190565b600d548110156122f857600d5f52600360205f20910201905f90565b60026001541461248c576002600155565b633ee5aeb560e01b5f5260045ffd5b5f8181526020818152604080832033845290915290205460ff16156124bd5750565b63e2517d3f60e01b5f523360045260245260445ffd5b5f818152602081815260408083206001600160a01b038616845290915290205460ff16612555575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b50505f90565b90602080835192838152019201905f5b8181106125785750505090565b825184526020938401939092019160010161256b565b5f52600960205260405f208054906801000000000000000082101561225457600182018082558210156122f8575f5260205f20019060018060a01b03166bffffffffffffffffffffffff60a01b825416179055565b5f818152602081815260408083206001600160a01b038616845290915290205460ff1615612555575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6020929183915f8051602061284183398151915254905f60a46040518098819682956302e817ff60e41b84526004840152336024840152608060448401528051918291826084860152018484015e8181018301849052600560f81b6064830152601f01601f191681010301926001600160a01b03165af1918215611ef8575f92612747575b505f80516020612801833981519152546001600160a01b031682813b156106a6575f916044839260405194859384926346ce4e4960e11b845260048401523360248401525af18015611ef85761273b5750565b5f61274591612233565b565b9091506020813d602011612773575b8161276360209383612233565b810103126106a65751905f6126e8565b3d9150612756565b5f8051602061284183398151915254604051631ce2e8d760e31b81525f60048201819052600560f81b60248301529091602091839160449183916001600160a01b03165af1908115611ef8575f916127d1575090565b90506020813d6020116127f8575b816127ec60209383612233565b810103126106a6575190565b3d91506127df56feed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60093ab6e17f2c461cce6ea5d4ec117e51dda77a64affc2b2c05f8cd440def0e700ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea601a26469706673582212202d5adb8a4eaf65046494fa4d63316753f73b7e9a9fe0c816cc85ebe231ae718764736f6c634300081a003360a0806040523461040957611d53803803809161001c828561066b565b83398101906040818303126104095780516001600160401b038111610409578261004791830161068e565b60208201519092906001600160401b03811161040957610067920161068e565b5f606060405161007681610650565b8281528260208201528260408201520152739d6891a6240d6130c54ae243d8005063d05fe14b60606040516100aa81610650565b73fee8407e2f5e3ee68ad77cae98c434e637f516e5815273687408ab54661ba0b4aef3a44156c616c6955e07602082015273fb03be574d14c256d56f09a198b586bdfc0a9de26040820152015273fee8407e2f5e3ee68ad77cae98c434e637f516e560018060a01b03195f80516020611cd38339815191525416175f80516020611cd38339815191525573687408ab54661ba0b4aef3a44156c616c6955e0760018060a01b03195f80516020611d138339815191525416175f80516020611d138339815191525573fb03be574d14c256d56f09a198b586bdfc0a9de260018060a01b03195f80516020611d338339815191525416175f80516020611d3383398151915255739d6891a6240d6130c54ae243d8005063d05fe14b60018060a01b03195f80516020611cf38339815191525416175f80516020611cf383398151915255331561063d57600180546001600160a01b03199081169091555f805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a381516001600160401b03811161055057600254600181811c91168015610633575b602082101461053257601f81116105d0575b50602092601f821160011461056f57928192935f92610564575b50508160011b915f199060031b1c1916176002555b80516001600160401b03811161055057600354600181811c91168015610546575b602082101461053257601f81116104cf575b50602091601f821160011461046f579181925f92610464575b50508160011b915f199060031b1c1916176003555b5f5b60ff81169060028211610440575f80516020611d1383398151915254604051631ce2e8d760e31b815260048101849052600160f91b60248201529290602090849060449082905f906001600160a01b03165af19283156103fe575f9361040d575b505f9081526007602052604090208290555f80516020611cd3833981519152546001600160a01b031691823b15610409575f92604484926040519586938492631974142760e21b845260048401523060248401525af19182156103fe5760ff926103ee575b501660ff81146103da57600101610302565b634e487b7160e01b5f52601160045260245ffd5b5f6103f89161066b565b5f6103c8565b6040513d5f823e3d90fd5b5f80fd5b9092506020813d8211610438575b816104286020938361066b565b810103126104095751915f610363565b3d915061041b565b60026080526040516115ef90816106e48239608051818181610b540152610e490152f35b015190505f806102eb565b601f1982169260035f52805f20915f5b8581106104b75750836001951061049f575b505050811b01600355610300565b01515f1960f88460031b161c191690555f8080610491565b9192602060018192868501518155019401920161047f565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c81019160208410610528575b601f0160051c01905b81811061051d57506102d2565b5f8155600101610510565b9091508190610507565b634e487b7160e01b5f52602260045260245ffd5b90607f16906102c0565b634e487b7160e01b5f52604160045260245ffd5b015190505f8061028a565b601f1982169360025f52805f20915f5b8681106105b857508360019596106105a0575b505050811b0160025561029f565b01515f1960f88460031b161c191690555f8080610592565b9192602060018192868501518155019401920161057f565b60025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace601f830160051c81019160208410610629575b601f0160051c01905b81811061061e5750610270565b5f8155600101610611565b9091508190610608565b90607f169061025e565b631e4fbdf760e01b5f525f60045260245ffd5b608081019081106001600160401b0382111761055057604052565b601f909101601f19168101906001600160401b0382119082101761055057604052565b81601f82011215610409578051906001600160401b03821161055057604051926106c2601f8401601f19166020018561066b565b8284526020838301011161040957815f9260208093018386015e830101529056fe6080806040526004361015610012575f80fd5b5f3560e01c90816306fdde031461090c57508063095ea7b3146108e557806318160ddd146108bb57806323b872dd1461088c5780632893c5b0146106b7578063313ce5671461069c57806367a74a281461067f57806370a0823114610647578063715018a6146105e457806379ba50971461055f5780637b7e0a5a146105425780638da5cb5b1461051b57806395d89b411461040f5780639a094352146103ae5780639dbead421461029f578063a5184baf1461025c578063a9059cbb1461022b578063b32c1001146101f1578063dd62ed3e146101a1578063e30c3978146101795763f2fde38b14610103575f80fd5b346101755760203660031901126101755761011c6109e8565b6101246111db565b60018060a01b0316806bffffffffffffffffffffffff60a01b600154161760015560018060a01b035f54167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227005f80a3005b5f80fd5b34610175575f366003190112610175576001546040516001600160a01b039091168152602090f35b34610175576040366003190112610175576101ba6109e8565b6101c26109fe565b6001600160a01b039182165f908152600560209081526040808320949093168252928352819020549051908152f35b346101755761021f61021361021961020836610a42565b949192943691610dde565b906111ee565b90610abf565b50602060405160018152f35b346101755760403660031901126101755760206102526102496109e8565b60243590610e24565b6040519015158152f35b3461017557602036600319011261017557600435600654811015610290575f526008602052602060405f2054604051908152f35b63d65c1f3360e01b5f5260045ffd5b346101755760203660031901126101755760043567ffffffffffffffff811680910361017557335f52600460205260405f205490811561039a575b5f8051602061159a83398151915254604051638c14cc2160e01b815260048101939093526024830191909152600160f81b6044830152602090829060649082905f906001600160a01b03165af1801561038f575f9061035b575b806103599150335f5260046020528060405f20556103523082611476565b3390611476565b005b506020813d602011610387575b8161037560209383610a89565b81010312610175576103599051610334565b3d9150610368565b6040513d5f823e3d90fd5b905060206103a6611543565b9190506102da565b34610175576080366003190112610175576103c76109e8565b6103cf6109fe565b906064359167ffffffffffffffff8311610175576104096104016103fa61021f953690600401610a14565b3691610dde565b6044356111ee565b91610b14565b34610175575f366003190112610175576040515f6003548060011c90600181168015610511575b6020831081146104fd578285529081156104d9575060011461047b575b6104778361046381850382610a89565b6040519182916020835260208301906109c4565b0390f35b91905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f905b8082106104bf57509091508101602001610463610453565b9192600181602092548385880101520191019092916104a7565b60ff191660208086019190915291151560051b840190910191506104639050610453565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610436565b34610175575f366003190112610175575f546040516001600160a01b039091168152602090f35b346101755761021f61021361055961020836610a42565b90610e24565b34610175575f36600319011261017557600154336001600160a01b03909116036105d157600180546001600160a01b03199081169091555f805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b63118cdaa760e01b5f523360045260245ffd5b34610175575f366003190112610175576105fc6111db565b600180546001600160a01b03199081169091555f80549182168155906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610175576020366003190112610175576001600160a01b036106686109e8565b165f526004602052602060405f2054604051908152f35b34610175575f366003190112610175576020600654604051908152f35b34610175575f36600319011261017557602060405160068152f35b34610175576040366003190112610175576106d06109e8565b60243567ffffffffffffffff8116809103610175576106ed6111db565b6001600160a01b0382165f8181526004602052604081205491939091801561087a575b5f8051602061159a8339815191525460405163f953e42760e01b8152600481019290925260248201859052600160f81b6044830152909260209184916064918391906001600160a01b03165af1801561038f575f90610846575b61078c9250845f5260046020528060405f20556107873082611476565b611476565b815f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602060405183198152a3600154908067ffffffffffffffff8360a01c16019067ffffffffffffffff82116108325767ffffffffffffffff60a01b1990921660a09190911b67ffffffffffffffff60a01b16176001556040519081527f9109de113672aaca72ede8bc906f7aafabee865311ac020fb15c71edf94a0a0190602090a2005b634e487b7160e01b5f52601160045260245ffd5b506020823d602011610872575b8161086060209383610a89565b810103126101755761078c915161076a565b3d9150610853565b506020610885611543565b9050610710565b346101755760603660031901126101755760206102526108aa6109e8565b6108b26109fe565b60443591610b14565b34610175575f36600319011261017557602067ffffffffffffffff60015460a01c16604051908152f35b346101755760403660031901126101755760206102526109036109e8565b60243590610abf565b34610175575f366003190112610175575f6002548060011c906001811680156109ba575b6020831081146104fd578285529081156104d9575060011461095c576104778361046381850382610a89565b91905060025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace915f905b8082106109a057509091508101602001610463610453565b919260018160209254838588010152019101909291610988565b91607f1691610930565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361017557565b602435906001600160a01b038216820361017557565b9181601f840112156101755782359167ffffffffffffffff8311610175576020838186019501011161017557565b6060600319820112610175576004356001600160a01b03811681036101755791602435916044359067ffffffffffffffff821161017557610a8591600401610a14565b9091565b90601f8019910116810190811067ffffffffffffffff821117610aab57604052565b634e487b7160e01b5f52604160045260245ffd5b90610ad490610acd81610eed565b8233610f9f565b6040515f1981526001600160a01b039091169033907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590602090a3600190565b91610b1e81610eed565b6001600160a01b0383165f81815260056020908152604080832033845290915290205493909290610b4f8584611301565b9360ff7f00000000000000000000000000000000000000000000000000000000000000001694856002116102905760076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5460025f9081527fb7c774451310d1be4108bc180d1b52823cb0ee0274a6c0081bcaf94f115fb96d54909391610bda9190846114f1565b9083526004602052610bf0604084205487611301565b96602060018060a01b035f8051602061159a83398151915254166024604051809781936309c00ffd60e11b83528d60048401525af193841561038f575f94610da9575b505f8051602061159a83398151915254604051630ccd46b160e31b81526004810195909552602485018490525f6044860181905260209186916064918391906001600160a01b03165af193841561038f575f94610d75575b5060011161029057610cb0610cc49160209460015f526007865260405f2054906114f1565b610cb9816113b4565b506103528582611476565b606460018060a01b035f8051602061159a8339815191525416965f6040519889948593630ccd46b160e31b8552600485015260248401528160448401525af193841561038f575f94610d3d575b50610d33610d2c86610d2686610d38996113e1565b876114f1565b3383610f9f565b61101c565b600190565b9493506020853d602011610d6d575b81610d5960209383610a89565b810103126101755793519293610d33610d11565b3d9150610d4c565b9093506020813d602011610da1575b81610d9160209383610a89565b810103126101755751925f610c8b565b3d9150610d84565b93506020843d602011610dd6575b81610dc460209383610a89565b81010312610175579251926020610c33565b3d9150610db7565b92919267ffffffffffffffff8211610aab5760405191610e08601f8201601f191660200184610a89565b829481845281830111610175578281602093845f960137010152565b90610e2e81610eed565b335f526004602052610e4460405f205482611301565b9060ff7f0000000000000000000000000000000000000000000000000000000000000000166001116102905760076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5460015f527fb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b82854610d389491610ee7918391610ed39190876114f1565b610edc816113b4565b506107873382611476565b3361101c565b7fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60054604051632fd514cd60e11b81526004810192909252336024830152602090829060449082906001600160a01b03165afa90811561038f575f91610f64575b5015610f5557565b632fa38b3f60e01b5f5260045ffd5b90506020813d602011610f97575b81610f7f60209383610a89565b8101031261017557518015158103610175575f610f4d565b3d9150610f72565b6001600160a01b0381169392908415611009576001600160a01b038316948515610ff65790610ff49495610787925f52600560205260405f20905f526020528260405f2055610fee3084611476565b82611476565b565b85634a1406b160e11b5f5260045260245ffd5b8463e602df0560e01b5f5260045260245ffd5b91926001600160a01b038316929083156111c8576001600160a01b0383169485156111b557906110549161104e611543565b916114f1565b91845f5260046020525f602060408220548581156111a5575b8615611197575b5f8051602061159a8339815191525460405163f953e42760e01b8152600480820194909452848101909301919091526001600160f81b0319841660448301529092839160649183916001600160a01b03165af190811561038f575f91611161575b50926110fc61110e92856111269650885f5260046020528060405f20556107873082611476565b845f52600460205260405f20546113e1565b835f5260046020528060405f20556107873082611476565b6006545f1981019081116108325760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91604051908152a3565b9390506020843d60201161118f575b8161117d60209383610a89565b810103126101755792516110fc6110d5565b3d9150611170565b506111a0611543565b611074565b90506111af611543565b9061106d565b8563ec442f0560e01b5f5260045260245ffd5b83634b637e8f60e11b5f5260045260245ffd5b5f546001600160a01b031633036105d157565b61123d9160209160018060a01b035f8051602061159a8339815191525416905f6040518096819582946302e817ff60e41b845260048401523360248401526080604484015260848301906109c4565b600560f81b606483015203925af190811561038f575f916112cf575b507fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600546001600160a01b0316803b15610175576040516346ce4e4960e11b815260048101839052336024820152905f908290604490829084905af1801561038f576112c2575090565b5f6112cc91610a89565b90565b90506020813d6020116112f9575b816112ea60209383610a89565b8101031261017557515f611259565b3d91506112dd565b9081156113a4575b8015611392575b602090606460018060a01b035f8051602061159a8339815191525416935f60405195869485936334a6d7b960e11b8552600485015260248401528160448401525af190811561038f575f91611363575090565b90506020813d60201161138a575b8161137e60209383610a89565b81010312610175575190565b3d9150611371565b50602061139d611543565b9050611310565b90506113ae611543565b90611309565b60065491905f19831461083257610ff49060018401600655835f5260086020528060405f20553090611476565b6020905f928115611466575b8015611458575b5f8051602061159a83398151915254604051638c14cc2160e01b8152600480820194909452848101909301919091526001600160f81b0319841660448301529092839160649183916001600160a01b03165af190811561038f575f91611363575090565b50611461611543565b6113f4565b9050611470611543565b906113ed565b7fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600546001600160a01b031691823b1561017557604051631974142760e21b815260048101929092526001600160a01b03166024820152905f908290604490829084905af1801561038f576114e75750565b5f610ff491610a89565b9060646020925f60018060a01b035f8051602061159a8339815191525416604051968795869463cb3b940760e01b86526004860152602485015260448401525af190811561038f575f91611363575090565b5f8051602061159a83398151915254604051631ce2e8d760e31b81525f60048201819052600560f81b60248301529091602091839160449183916001600160a01b03165af190811561038f575f9161136357509056feed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea601a264697066735822122092618fe96464edefcc349acd12bdbe8a8c3cb5d6f5a1fdab3cee77351b340eff64736f6c634300081a0033ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea603ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea601ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea602a26469706673582212200ae1c4562400dada4d65e08525f5d60ced93d1c1971b4e2b6d739c921e206fb864736f6c634300081a0033","sourceMap":"724:5264:3:-:0;;;;;;;;;;;;;-1:-1:-1;;724:5264:3;;;;-1:-1:-1;;;;;724:5264:3;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;1250:10;;1273:26:28;1269:95;;-1:-1:-1;724:5264:3;;1250:10;-1:-1:-1;;;;;;724:5264:3;;;;;;;;;;1250:10;;-1:-1:-1;;;;;724:5264:3;;3052:40:28;;-1:-1:-1;3052:40:28;1276:38:3;724:5264;;-1:-1:-1;;;;;724:5264:3;;;-1:-1:-1;;;;;;724:5264:3;;;;;;;1324:57;724:5264;;;;;;;;;;;;;;1391:38;724:5264;1439:24;724:5264;;;;;;;;1269:95:28;1322:31;;;-1:-1:-1;1322:31:28;-1:-1:-1;1322:31:28;724:5264:3;;-1:-1:-1;1322:31:28;724:5264:3;-1:-1:-1;724:5264:3;;;;;;-1:-1:-1;724:5264:3;;;;;-1:-1:-1;724:5264:3;;;;-1:-1:-1;;;;;724:5264:3;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c8063043531b114610b4057806344c6058214610ad057806344fc4fab14610aa8578063715018a614610a51578063787dce3d14610a365780637c7024d614610a0e5780638c2d2783146109dc5780638c591c6b1461036d5780638da5cb5b146103465780639a36f93214610329578063c9da450814610308578063e57b0faf146102a8578063f2fde38b146102235763ff63aa73146100b3575f80fd5b3461021f5760a036600319011261021f576100cc610bcd565b6100d4610bb7565b9060443562ffffff811680910361021f57606435908160020b80920361021f576084356001600160a01b038116929083900361021f57610112610cb6565b6001600160a01b03848116949086169290838610156102075761017161017f60029798604051996101428b610b61565b8a5260208a0196875260408a0194855260608a0195865260808a01978852604051928391602083019586610c2a565b03601f198101835282610b7d565b5190205f908152602086905260409020955186546001600160a01b039182166001600160a01b031991821617885593516001880180549351945160b81b62ffffff60b81b1662ffffff60a01b60a09690961b959095169183166001600160d01b0319909416939093171792909217905591519390920180549390911692909116919091179055005b61017161017f6002979598604051996101428b610b61565b5f80fd5b3461021f57602036600319011261021f5761023c610bcd565b610244610cb6565b6001600160a01b03168015610295575f80546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b631e4fbdf760e01b5f525f60045260245ffd5b3461021f57604036600319011261021f576102c1610bcd565b6101716102e86102cf610bb7565b6102d7610cb6565b604051928391602083019586610c2a565b5190205f5260026020525f60026040822082815582600182015501555f80f35b3461021f57602036600319011261021f57610321610cb6565b600435600555005b3461021f575f36600319011261021f576020600654604051908152f35b3461021f575f36600319011261021f575f546040516001600160a01b039091168152602090f35b3461021f57606036600319011261021f5760043567ffffffffffffffff811161021f573660238201121561021f5780600401356103a981610b9f565b916103b76040519384610b7d565b81835260208301906024829360051b8201019036821161021f57602401915b8183106109bc575050506103e8610bb7565b916044356001600160a01b0381169081810361021f57600480546040516325e9181b60e01b81529182018490526001600160a01b03169490602081602481895afa908115610648575f9161099d575b506001600160a01b03161561098a576040518060208101928387519091905f5b81811061096857505050610487916014916001600160601b03198760601b16815203600b19810184520182610b7d565b5190209383519461049786610b9f565b956104a56040519788610b7d565b8087526104b4601f1991610b9f565b015f5b8181106109335750505f5b8551811015610653576001600160a01b036104dd8288610c02565b51166040516325e9181b60e01b8152816004820152602081602481885afa908115610648575f9161061a575b506001600160a01b03161561060857506001600160a01b0361052b8288610c02565b51166040516105438161017188602083019586610c2a565b5190205f52600260205260405f206040519061055e82610b61565b80546001600160a01b0390811680845260018301548083166020860181905260a082901c62ffffff16604087015260b89190911c600290810b60608701529093015490911660808401521590816105ff575b506105d557906001916105c3828a610c02565b526105ce8189610c02565b50016104c2565b856001600160a01b036105e8848a610c02565b511663a17a1d7b60e01b5f5260045260245260445ffd5b9050158a6105b0565b63a24a6aed60e01b5f5260045260245ffd5b61063b915060203d8111610641575b6106338183610b7d565b810190610be3565b8a610509565b503d610629565b6040513d5f823e3d90fd5b5083868887845f52600160205260018060a01b0360405f2054166109035760208061070c60236106db60035460a01c6106d6602f61069083610cf8565b6040519889916d24b73232bc233ab7322a37b5b2b760911b82840152605f60f81b602e8401528051918291018484015e81015f838201520301601f198101885287610b7d565b610cf8565b6040519384916212519560ea1b828401528051918291018484015e81015f838201520301601f198101835282610b7d565b60405191611d53918284019084821067ffffffffffffffff8311176108db57610747610755938695613e8e8739604084526040840190610c92565b916020818403910152610c92565b03905ff08015610648576003548060a01c906001600160601b0382146108ef5760018060a01b03169060016001600160601b0360a01b910160a01b16811760035560018060a01b03600454166005549260405197613028808a01968a881067ffffffffffffffff8911176108db576107e6908b9a9998979695949392610e668c396101208852610120880190610c56565b9660018060a01b03166020870152604086015230606086015260018060a01b0316608085015260a084015260c083015260e0820152610100818303910152602080835192838152019201905f5b81811061087d5750505003905ff0908115610648575f9081526001602090815260409182902080546001600160a01b0319166001600160a01b039094169384179055905191825290f35b825180516001600160a01b03908116865260208281015182168188015260408084015162ffffff169088015260608084015160020b908801526080928301519091169186019190915286955060a09094019390920191600101610833565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b610929908460405192839263252fde1160e21b8452604060048501526044840190610c56565b9060248301520390fd5b60209060405161094281610b61565b5f81525f838201525f60408201525f60608201525f608082015282828b010152016104b7565b82516001600160a01b0316845285945060209384019390920191600101610457565b8263a24a6aed60e01b5f5260045260245ffd5b6109b6915060203d602011610641576106338183610b7d565b87610437565b82356001600160a01b038116810361021f578152602092830192016103d6565b3461021f57602036600319011261021f576004355f526001602052602060018060a01b0360405f205416604051908152f35b3461021f575f36600319011261021f576004546040516001600160a01b039091168152602090f35b3461021f57602036600319011261021f57610a4f610cb6565b005b3461021f575f36600319011261021f57610a69610cb6565b5f80546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461021f575f36600319011261021f576003546040516001600160a01b039091168152602090f35b3461021f57602036600319011261021f576004355f52600260205260a060405f20600180831b03815416906001810154906002600180861b039101541690604051928352600180851b038116602084015262ffffff81851c16604084015260b81c60020b60608301526080820152f35b3461021f57602036600319011261021f57610b59610cb6565b600435600655005b60a0810190811067ffffffffffffffff8211176108db57604052565b90601f8019910116810190811067ffffffffffffffff8211176108db57604052565b67ffffffffffffffff81116108db5760051b60200190565b602435906001600160a01b038216820361021f57565b600435906001600160a01b038216820361021f57565b9081602091031261021f57516001600160a01b038116810361021f5790565b8051821015610c165760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b90916028926001600160601b03199060601b1682526001600160601b03199060601b1660148201520190565b90602080835192838152019201905f5b818110610c735750505090565b82516001600160a01b0316845260209384019390920191600101610c66565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b5f546001600160a01b03163303610cc957565b63118cdaa760e01b5f523360045260245ffd5b67ffffffffffffffff81116108db57601f01601f191660200190565b805f9172184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b821015610e42575b806d04ee2d6d415b85acef8100000000600a921015610e27575b662386f26fc10000811015610e13575b6305f5e100811015610e02575b612710811015610df3575b6064811015610de5575b1015610dda575b600a60216001840193610d7f85610cdc565b94610d8d6040519687610b7d565b808652610d9c601f1991610cdc565b013660208701378401015b5f1901916f181899199a1a9b1b9c1cb0b131b232b360811b8282061a8353048015610dd557600a9091610da7565b505090565b600190910190610d6d565b606460029104930192610d66565b61271060049104930192610d5c565b6305f5e10060089104930192610d51565b662386f26fc1000060109104930192610d44565b6d04ee2d6d415b85acef810000000060209104930192610d34565b506040915072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8104610d1a56fe61014080604052346105ff57613028803803809161001d8285610743565b8339810190610120818303126105ff5780516001600160401b0381116105ff5781019082601f830112156105ff5781519061005782610766565b926100656040519485610743565b828452602084016020819460051b830101918683116105ff57602001905b828210610710575050506100996020820161077d565b916100a66040830161077d565b926100b36060840161077d565b936100c06080850161077d565b906100cd60a0860161077d565b926100da60c0870161077d565b60e087015161010088015190979196916001600160401b0382116105ff5701988a601f8b0112156105ff5789519a6101118c610766565b9a61011f6040519c8d610743565b8c8c5260208c0191602060a0849f02830101918183116105ff57602001925b8284106106775750505050600180555f606060405161015c81610728565b8281528260208201528260408201520152739d6891a6240d6130c54ae243d8005063d05fe14b606060405161019081610728565b73fee8407e2f5e3ee68ad77cae98c434e637f516e580825273687408ab54661ba0b4aef3a44156c616c6955e076020830181905273fb03be574d14c256d56f09a198b586bdfc0a9de26040840181905293909201939093527fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60080546001600160a01b031990811690941790557fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea6018054841690911790557fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea6028054831690911790557fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60380548216739d6891a6240d6130c54ae243d8005063d05fe14b1790557f93ab6e17f2c461cce6ea5d4ec117e51dda77a64affc2b2c05f8cd440def0e70080549091167333347831500f1e73f0cccbb95c9f86b94d7b112317905551906001600160401b0382116105b9576801000000000000000082116105b957600c5482600c55808310610633575b50600c5f5260205f205f5b838110610616578c8c600460208e8e8e8e8e8e8e60018060a01b03166101005260018060a01b0316610120528460e05260018060a01b031660805260018060a01b031660a05260c052600e5560405192838092638da5cb5b60e01b825260018060a01b03165afa90811561060b575f916105cd575b50601080546001600160a01b0319166001600160a01b039290921691909117905551906801000000000000000082116105b957600d5482600d55808310610539575b5090600d5f5260205f205f925b8284106104a0576040516128969081610792823960805181818161019201528181610c93015281816114cf0152818161195101526119a2015260a05181818161040101528181610ac901528181610e2301526119c6015260c05181818161052e01528181610f3d0152818161110b0152611162015260e05181610b1e0152610100518181816106220152818161093501528181610a1e01528181610a6a01528181610f070152611d3a0152610120518161206a0152f35b8051805183546001600160a01b039182166001600160a01b0319918216178555602080840151600180880180546040880151606089015160b81b62ffffff60b81b1662ffffff60a01b60a09290921b919091169488166001600160d01b031990921691909117939093179290921790915560809094015160028701805491909416921691909117909155940193600390920191016103e9565b806003029060038204036105a557826003026003810484036105a557600d5f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb591820191015b81811061058d57506103dc565b805f600392555f60018201555f600282015501610580565b634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52604160045260245ffd5b90506020813d602011610603575b816105e860209383610743565b810103126105ff576105f99061077d565b8361039a565b5f80fd5b3d91506105db565b6040513d5f823e3d90fd5b82516001600160a01b031681830155602090920191600101610325565b600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c79081019083015b81811061066c575061031a565b5f815560010161065f565b60a0848303126105ff576040519060a082016001600160401b038111838210176105b9576040526106a78561077d565b82526106b56020860161077d565b6020830152604085015162ffffff811681036105ff57604083015260608501518060020b81036105ff5760608301526080850151906001600160a01b03821682036105ff5782602092608060a095015281520193019261013e565b6020809161071d8461077d565b815201910190610083565b608081019081106001600160401b038211176105b957604052565b601f909101601f19168101906001600160401b038211908210176105b957604052565b6001600160401b0381116105b95760051b60200190565b51906001600160a01b03821682036105ff5756fe6080806040526004361015610012575f80fd5b5f905f3560e01c90816301ffc9a7146121675750806305d7d94b14611ffd578063248a9ca314611fcb5780632f2ff15d14611f9a57806335c995ec14611cca57806336568abe14611c9157806338f250ec14611c1b5780634148fc4f1461198057806375696e7f1461193b5780639134867c1461138c57806391d148541461135057806397771de514610980578063a217fddf14610964578063b6f673121461091f578063d547741f146108e65763fcb74a45146100ce575f80fd5b346108e35760a03660031901126108e3576100e761220d565b6100ef61221d565b906064359182151583036108df57608435918215928315036108db5761011361247b565b5f80516020612821833981519152546001600160a01b031633036108db5760ff166108cc576001600160401b0316916001600160401b0383116108b85760043584526009602052610170610177604086206040519283809261237f565b0382612233565b6001600160a01b0390610189906122eb565b5116916108a1577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169184833b1561089d5785604051634edf56a160e11b81528660048201528181602481838a5af180156106e857610888575b505084337fdb79cc492679ef2624944d6ed3cdbad5b974b5550de330ae18922f2944eec78a8880a385805b600c5481101561088057610229816123bf565b905460039190911b1c6001600160a01b03168015610838576040516370a0823160e01b8152306004820152602081602481855afa801561082d57899185916107f3575b5090610277916123f0565b6040516318160ddd60e01b8152906020826004818c5afa9182156107e8576102b1926001600160401b039187916107ba575b501690612411565b861561034f57906044602092604051958693849263a9059cbb60e01b84528a600485015260248401525af191821561034457600192610318575b507ee2d681c483528119b71f74ebcd6ad9dd9ca7fd71ea2245aa2362e27d3f2eb68880a15b018690610216565b6103389060203d811161033d575b6103308183612233565b810190612268565b6102eb565b503d610326565b6040513d8a823e3d90fd5b918094935061035e91506123bf565b60018060a01b0391549060031b1c1660125461ff0061038260ff8360081c1661244e565b60081b169061ff001916176012558089526014602052604089206103a7838254612330565b9055601254600260ff8260081c16146103c7575b50505090600190610310565b61ff0019166012558089526014602052604089205491816107545760125b604051630681320d60e51b8152600481018490526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610749578c91610718575b506009810290808204600914901517156106f35790610467600a6104608761046d956123f0565b0491612403565b90612411565b926001600160801b03811161070757506104868561245f565b5092603c4201918242116106f3578b949392916001600160801b03809260405196630abff6dd60e11b885260018060a01b038154166004890152600181015460018060a01b03811660248a015262ffffff8160a01c1660448a015260b81c60020b6064890152600260018060a01b039101541660848801521660a48601521660c484015260e48301526001610104830152610124820152602081610144818560018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19081156106e85782916106b2575b506105699192612330565b917f875fc5b1c93e96a85172e0d2b74fcdb6f314c3460e99e6a7da8743bc8b75e37c8280a18261059d575b91905f806103bb565b5f8051602061284183398151915254604051631ce2e8d760e31b815260048101859052600560f81b60248201529260209184916044918391906001600160a01b03165af191821561034457889261067a575b506040516323b872dd60e01b815230600482015233602482015260448101929092526020826064818b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19182156103445760019261065c575b50879150610594565b6106739060203d811161033d576103308183612233565b505f610653565b91506020823d82116106aa575b8161069460209383612233565b810103126106a65790519060206105ef565b5f80fd5b3d9150610687565b9150506020813d82116106e0575b816106cd60209383612233565b810103126106a65751879061056961055e565b3d91506106c0565b6040513d84823e3d90fd5b634e487b7160e01b8c52601160045260248cfd5b628af7f560e11b8b5260045260248afd5b90506020813d8211610741575b8161073260209383612233565b810103126106a657515f610439565b3d9150610725565b6040513d8e823e3d90fd5b60405163313ce56760e01b8152602081600481865afa80156107af5760ff918c91610781575b50166103e5565b6107a2915060203d81116107a8575b61079a8183612233565b8101906123d7565b5f61077a565b503d610790565b6040513d8d823e3d90fd5b6107db915060203d81116107e1575b6107d38183612233565b81019061242f565b5f6102a9565b503d6107c9565b6040513d87823e3d90fd5b945050506020833d8211610825575b8161080f60209383612233565b810103126106a657610277888a9451909161026c565b3d9150610802565b6040513d86823e3d90fd5b61084288476123f0565b6040516318160ddd60e01b8152906020826004818c5afa9182156107e85761087b926001600160401b039187916107ba57501690612411565b6102b1565b506001805580f35b8161089291612233565b61089d57855f6101eb565b8580fd5b6044848484637655665160e11b8352600452602452fd5b632dd1ea2160e11b84526004839052602484fd5b6312171d8360e31b8452600484fd5b8480fd5b8380fd5b80fd5b50346108e35761091b6108f8366121ba565b90610916610911825f525f602052600160405f20015490565b61249b565b6125e3565b5080f35b50346108e357806003193601126108e3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346108e357806003193601126108e357602090604051908152f35b50346108e35760603660031901126108e35761099a61220d565b6109a261221d565b6109aa61247b565b5f80516020612821833981519152546001600160a01b03163303610d32576004358352600960205260ff6101706109ea604086206040519283809261237f565b6001600160a01b03906109fc906122eb565b51169216611341576001600160401b0316906001600160401b03821161132d577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163b15610d325760405163dc412e8360e01b81526004810183905283908181602481837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af180156106e857611318575b5050604051630a7c1bd560e21b81526020600482015290838280610ac56024820161233d565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa91821561082d5784908593611279575b50600f819055604051634d1b7c9960e11b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015610fa3578690611245575b610b60915085612411565b610b6c81601154612330565b601155807fc472cb3a7a659a876494d66b3063145f279701771d6150b9329c31611ed6405c8780a28403938411611231578251600c5481036111ba5790835193610bb5856122d4565b94610bc36040519687612233565b808652610bd2601f19916122d4565b0136602087013786916201518042019165ffffffffffff8342119316935b8581106110ae5750505050505060125460ff610c0d81831661244e565b169060ff191617601255835b600c54811015610c665780610c306001928561231c565b51610c3a826123bf565b848060a01b0391549060031b1c1687526013602052610c5e60408820918254612330565b905501610c19565b848285601254600260ff821614610d3a575b50610c8e6001600160401b0391600e5490612411565b1690827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b15610d36578180916044604051809481936302893c5b60e41b83528860048401528960248401525af180156106e857610d1d575b50807f6332ddaa8a69b5eb2524ec7ca317b7c2b01ecf678d584031415f81270977b8fc91a36001805580f35b81610d2791612233565b610d32578284610cf1565b8280fd5b5080fd5b60ff19166012559042603c81011090835b600c5481101561107357610d5e816123bf565b905460039190911b1c6001600160a01b031690610d7a8161245f565b506040519260a084018481106001600160401b0382111761105f5760405260018060a01b038254168452600182015491602085019260018060a01b0381168452604086019162ffffff8260a01c168352606087019160b81c60020b8252600260018060a01b03910154169160808701928352838b52601360205260408b20549380155f14611011576012905b604051630681320d60e51b815260048101919091526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115611006578d91610fd5575b50600981029080820460091490151715610fc15790610467600a61046088610e82956123f0565b946001600160801b038511610fae57896106f357604051630abff6dd60e11b815297516001600160a01b0390811660048a0152905181166024890152905162ffffff166044880152905160020b60648701529051811660848601526001600160801b0391821660a4860152911660c484015242603c0160e484015260016101048401527f0000000000000000000000000000000000000000000000000000000000000000811661012484015260209083906101449082908a907f0000000000000000000000000000000000000000000000000000000000000000165af1918215610fa357600192610f75575b5001610d4b565b610f959060203d8111610f9c575b610f8d8183612233565b8101906122c5565b5086610f6e565b503d610f83565b6040513d88823e3d90fd5b628af7f560e11b8c52600485905260248cfd5b634e487b7160e01b8d52601160045260248dfd5b90506020813d8211610ffe575b81610fef60209383612233565b810103126106a657518d610e5b565b3d9150610fe2565b6040513d8f823e3d90fd5b60405163313ce56760e01b81528c90602081600481865afa9081156106e85760ff9291611041575b501690610e06565b611059915060203d81116107a85761079a8183612233565b8e611039565b634e487b7160e01b89526041600452602489fd5b50916001600160401b039150610c8e907f79154593ad5827af96f232d8b081e8d48c8bad62e5314fd67880b9880b4812408580a19150610c78565b6110cb836110c66110bf848661231c565b518c6123f0565b612411565b6110d5828a61231c565b526110df816123bf565b90546001600160a01b0360039290921b1c81169085906110ff848c61231c565b5116906106f3578b91907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163b15610d325760405163267b14bd60e01b815260048101929092526024820152604481018790528181606481837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af180156106e8576111a1575b5050600101610bf0565b816111ab91612233565b6111b657895f611197565b8980fd5b60405162461bcd60e51b815260206004820152604360248201527f446973726570616e6379206265747765656e206e756d626572206f66206d617260448201527f6b6574206361707320616e64206e756d626572206f6620696e64657820746f6b606482015262656e7360e81b608482015260a490fd5b634e487b7160e01b85526011600452602485fd5b506020813d602011611271575b8161125f60209383612233565b810103126106a657610b609051610b55565b3d9150611252565b9250503d8085843e61128b8184612233565b8201916040818403126108db578051906020810151906001600160401b03821161131457019280601f8501121561089d5783516112c7816122d4565b946112d56040519687612233565b81865260208087019260051b82010192831161131057602001905b828210611300575050505f610b03565b81518152602091820191016112f0565b8780fd5b8680fd5b8161132291612233565b610d3257825f610a9f565b63dcba2f6b60e01b83526004829052602483fd5b6312171d8360e31b8352600483fd5b50346108e3576040611361366121ba565b9290815280602052209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b50346108e35760603660031901126108e3576044356001600160401b038111610d36576113ed6020806113c560a49436906004016121e0565b93906113cf61247b565b6113e56113dd368784612280565b600435612663565b943691612280565b60018060a01b035f80516020612841833981519152541690866040519687809581946302e817ff60e41b83526024356004840152336024840152608060448401528051918291826084860152018484015e83838284010152836064830152601f801991011681010301925af19182156119305783926118fc575b505f805160206128018339815191525483906001600160a01b0316803b15610d36578180916044604051809481936346ce4e4960e11b83528960048401523360248401525af180156106e8576118e7575b50506040516370a0823160e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316929091602083602481875afa9283156107e85785936118b3575b5082819382156118a3575b15611891575b602090606460018060a01b035f805160206128418339815191525416958860405197889485936334a6d7b960e11b8552600485015260248401528160448401525af19283156107e857859361185d575b506040516323b872dd60e01b81523360048201523060248201526044810182905260208160648189895af18015610fa357611840575b50604051630cf4e94560e31b8152602081600481885afa908115610fa357869161180e575b505f1981019081116117fa5760209060246040518097819363a5184baf60e01b835260048301525afa9384156107e85785946117c6575b506040519361161460a086612233565b600485526080366020870137611629856122eb565b526116338461230c565b528251600210156117b257606083015281516003101561179e576080820152606442019081421161178a575f805160206128018339815191525483906001600160a01b0316803b15610d365781604051809263155f840160e21b8252602060048301528183816116a6602482018a61255b565b03925af180156106e857611775575b50505f8051602061282183398151915254604051634c0d927760e01b815260a060048201529260209284926001600160a01b0316918391879183916116fe9060a484019061255b565b9063fcb74a4560e01b6024840152836044840152606483015282608483015203925af180156106e8578290611741575b61173a9150339061258e565b6001805580f35b506020813d60201161176d575b8161175b60209383612233565b810103126106a65761173a905161172e565b3d915061174e565b8161177f91612233565b610d3257825f6116b5565b634e487b7160e01b83526011600452602483fd5b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b84526032600452602484fd5b9093506020813d6020116117f2575b816117e260209383612233565b810103126106a65751925f611604565b3d91506117d5565b634e487b7160e01b86526011600452602486fd5b90506020813d602011611838575b8161182960209383612233565b810103126106a657515f6115cd565b3d915061181c565b6118589060203d60201161033d576103308183612233565b6115a8565b9092506020813d602011611889575b8161187960209383612233565b810103126106a65751915f611572565b3d915061186c565b50602061189c61277b565b9050611522565b93506118ad61277b565b9361151c565b9092506020813d6020116118df575b816118cf60209383612233565b810103126108db5751915f611511565b3d91506118c2565b816118f191612233565b610d3257825f6114b8565b9091506020813d602011611928575b8161191860209383612233565b810103126106a65751905f611467565b3d915061190b565b6040513d85823e3d90fd5b50346108e357806003193601126108e3576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346108e357806003193601126108e357600c54819081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116907f000000000000000000000000000000000000000000000000000000000000000016835b8385106119fa57602086604051908152f35b909192939450611a09856123bf565b9054604051630681320d60e51b815260039290921b1c6001600160a01b0316600482015290602082602481865afa8015611b33578790611be9575b602492506020611a53886123bf565b90546040516370a0823160e01b81523060048201529586929091839160031b1c6001600160a01b03165afa928315610344578893611bb6575b5087611a97886123bf565b905460039190911b1c6001600160a01b0316611b3e5750611aca90610467611ac4611ad0956012936123f0565b91612403565b90612330565b6040516318160ddd60e01b8152602081600481875afa8015611b33576001600160401b03611b0a916001938a91611b15575b501683612411565b9501939291906119e8565b611b2d915060203d81116107e1576107d38183612233565b5f611b02565b6040513d89823e3d90fd5b9060046020611b4c8a6123bf565b905460405163313ce56760e01b81529384929091839160031b1c6001600160a01b03165afa90811561193057611ad09560ff61046793611ac493611aca9791611b98575b5016936123f0565b611bb0915060203d81116107a85761079a8183612233565b5f611b90565b9092506020813d8211611be1575b81611bd160209383612233565b810103126106a65751915f611a8c565b3d9150611bc4565b506020823d8211611c13575b81611c0260209383612233565b810103126106a65760249151611a44565b3d9150611bf5565b50346108e357806003193601126108e35760405190611c4482611c3d8161233d565b0383612233565b604051918291602083016020845282518091526020604085019301915b818110611c6f575050500390f35b82516001600160a01b0316845285945060209384019390920191600101611c61565b50346108e357611ca0366121ba565b90336001600160a01b03831603611cbb579061091b916125e3565b63334bd91960e11b8352600483fd5b50346106a65760403660031901126106a6576024356001600160401b0381116106a6576113dd611d01611d109236906004016121e0565b611d0961247b565b3691612280565b6040516323b872dd60e01b8152336004820152306024820152604481018290526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691906020816064815f875af18015611ef857611f7d575b50604051630cf4e94560e31b8152602081600481865afa908115611ef8575f91611f4b575b505f198101908111611f035760209060246040518095819363a5184baf60e01b835260048301525afa918215611ef8575f92611f17575b5060405191611ddd606084612233565b600283526040366020850137611df2836122eb565b52611dfc8261230c565b526064420190814211611f03575f80516020612801833981519152546001600160a01b0316803b156106a6575f604051809263155f840160e21b825260206004830152818381611e4f602482018961255b565b03925af18015611ef857611ee1575b505f8051602061282183398151915254604051634c0d927760e01b815260a060048201529260209284926001600160a01b031691839187918391611ea69060a484019061255b565b906397771de560e01b6024840152836044840152606483015282608483015203925af180156106e85782906117415761173a9150339061258e565b611eee9193505f90612233565b5f91611ea6611e5e565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b9091506020813d602011611f43575b81611f3360209383612233565b810103126106a65751905f611dcd565b3d9150611f26565b90506020813d602011611f75575b81611f6660209383612233565b810103126106a657515f611d96565b3d9150611f59565b611f959060203d60201161033d576103308183612233565b611d71565b346106a657611fc9611fab366121ba565b90611fc4610911825f525f602052600160405f20015490565b6124d3565b005b346106a65760203660031901126106a6576020611ff56004355f525f602052600160405f20015490565b604051908152f35b346106a6575f3660031901126106a6576010546001600160a01b0316330361210b5761202761247b565b601154156120d4575f601181905560105460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529160209183916044918391907f0000000000000000000000000000000000000000000000000000000000000000165af1908115611ef8575f916120b5575b50156120a65760018055005b6312171d8360e31b5f5260045ffd5b6120ce915060203d60201161033d576103308183612233565b8161209a565b60405162461bcd60e51b815260206004820152600f60248201526e139bc81999595cc81d1bc81cd95b99608a1b6044820152606490fd5b60405162461bcd60e51b815260206004820152602e60248201527f4f6e6c79207468652070726f746f636f6c206f776e65722063616e2063616c6c60448201526d103a3434b990333ab731ba34b7b760911b6064820152608490fd5b346106a65760203660031901126106a6576004359063ffffffff60e01b82168092036106a657602091637965db0b60e01b81149081156121a9575b5015158152f35b6301ffc9a760e01b149050836121a2565b60409060031901126106a657600435906024356001600160a01b03811681036106a65790565b9181601f840112156106a6578235916001600160401b0383116106a657602083818601950101116106a657565b6024359060ff821682036106a657565b604435906001600160401b03821682036106a657565b90601f801991011681019081106001600160401b0382111761225457604052565b634e487b7160e01b5f52604160045260245ffd5b908160209103126106a6575180151581036106a65790565b9291926001600160401b03821161225457604051916122a9601f8201601f191660200184612233565b8294818452818301116106a6578281602093845f960137010152565b908160209103126106a6575190565b6001600160401b0381116122545760051b60200190565b8051156122f85760200190565b634e487b7160e01b5f52603260045260245ffd5b8051600110156122f85760400190565b80518210156122f85760209160051b010190565b91908201809211611f0357565b6020600c54918281520190600c5f5260205f20905f5b8181106123605750505090565b82546001600160a01b0316845260209093019260019283019201612353565b90602082549182815201915f5260205f20905f5b8181106123a05750505090565b82546001600160a01b0316845260209093019260019283019201612393565b600c548110156122f857600c5f5260205f2001905f90565b908160209103126106a6575160ff811681036106a65790565b81810292918115918404141715611f0357565b604d8111611f0357600a0a90565b811561241b570490565b634e487b7160e01b5f52601260045260245ffd5b908160209103126106a657516001600160401b03811681036106a65790565b60ff1660ff8114611f035760010190565b600d548110156122f857600d5f52600360205f20910201905f90565b60026001541461248c576002600155565b633ee5aeb560e01b5f5260045ffd5b5f8181526020818152604080832033845290915290205460ff16156124bd5750565b63e2517d3f60e01b5f523360045260245260445ffd5b5f818152602081815260408083206001600160a01b038616845290915290205460ff16612555575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b50505f90565b90602080835192838152019201905f5b8181106125785750505090565b825184526020938401939092019160010161256b565b5f52600960205260405f208054906801000000000000000082101561225457600182018082558210156122f8575f5260205f20019060018060a01b03166bffffffffffffffffffffffff60a01b825416179055565b5f818152602081815260408083206001600160a01b038616845290915290205460ff1615612555575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6020929183915f8051602061284183398151915254905f60a46040518098819682956302e817ff60e41b84526004840152336024840152608060448401528051918291826084860152018484015e8181018301849052600560f81b6064830152601f01601f191681010301926001600160a01b03165af1918215611ef8575f92612747575b505f80516020612801833981519152546001600160a01b031682813b156106a6575f916044839260405194859384926346ce4e4960e11b845260048401523360248401525af18015611ef85761273b5750565b5f61274591612233565b565b9091506020813d602011612773575b8161276360209383612233565b810103126106a65751905f6126e8565b3d9150612756565b5f8051602061284183398151915254604051631ce2e8d760e31b81525f60048201819052600560f81b60248301529091602091839160449183916001600160a01b03165af1908115611ef8575f916127d1575090565b90506020813d6020116127f8575b816127ec60209383612233565b810103126106a6575190565b3d91506127df56feed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60093ab6e17f2c461cce6ea5d4ec117e51dda77a64affc2b2c05f8cd440def0e700ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea601a26469706673582212202d5adb8a4eaf65046494fa4d63316753f73b7e9a9fe0c816cc85ebe231ae718764736f6c634300081a003360a0806040523461040957611d53803803809161001c828561066b565b83398101906040818303126104095780516001600160401b038111610409578261004791830161068e565b60208201519092906001600160401b03811161040957610067920161068e565b5f606060405161007681610650565b8281528260208201528260408201520152739d6891a6240d6130c54ae243d8005063d05fe14b60606040516100aa81610650565b73fee8407e2f5e3ee68ad77cae98c434e637f516e5815273687408ab54661ba0b4aef3a44156c616c6955e07602082015273fb03be574d14c256d56f09a198b586bdfc0a9de26040820152015273fee8407e2f5e3ee68ad77cae98c434e637f516e560018060a01b03195f80516020611cd38339815191525416175f80516020611cd38339815191525573687408ab54661ba0b4aef3a44156c616c6955e0760018060a01b03195f80516020611d138339815191525416175f80516020611d138339815191525573fb03be574d14c256d56f09a198b586bdfc0a9de260018060a01b03195f80516020611d338339815191525416175f80516020611d3383398151915255739d6891a6240d6130c54ae243d8005063d05fe14b60018060a01b03195f80516020611cf38339815191525416175f80516020611cf383398151915255331561063d57600180546001600160a01b03199081169091555f805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a381516001600160401b03811161055057600254600181811c91168015610633575b602082101461053257601f81116105d0575b50602092601f821160011461056f57928192935f92610564575b50508160011b915f199060031b1c1916176002555b80516001600160401b03811161055057600354600181811c91168015610546575b602082101461053257601f81116104cf575b50602091601f821160011461046f579181925f92610464575b50508160011b915f199060031b1c1916176003555b5f5b60ff81169060028211610440575f80516020611d1383398151915254604051631ce2e8d760e31b815260048101849052600160f91b60248201529290602090849060449082905f906001600160a01b03165af19283156103fe575f9361040d575b505f9081526007602052604090208290555f80516020611cd3833981519152546001600160a01b031691823b15610409575f92604484926040519586938492631974142760e21b845260048401523060248401525af19182156103fe5760ff926103ee575b501660ff81146103da57600101610302565b634e487b7160e01b5f52601160045260245ffd5b5f6103f89161066b565b5f6103c8565b6040513d5f823e3d90fd5b5f80fd5b9092506020813d8211610438575b816104286020938361066b565b810103126104095751915f610363565b3d915061041b565b60026080526040516115ef90816106e48239608051818181610b540152610e490152f35b015190505f806102eb565b601f1982169260035f52805f20915f5b8581106104b75750836001951061049f575b505050811b01600355610300565b01515f1960f88460031b161c191690555f8080610491565b9192602060018192868501518155019401920161047f565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c81019160208410610528575b601f0160051c01905b81811061051d57506102d2565b5f8155600101610510565b9091508190610507565b634e487b7160e01b5f52602260045260245ffd5b90607f16906102c0565b634e487b7160e01b5f52604160045260245ffd5b015190505f8061028a565b601f1982169360025f52805f20915f5b8681106105b857508360019596106105a0575b505050811b0160025561029f565b01515f1960f88460031b161c191690555f8080610592565b9192602060018192868501518155019401920161057f565b60025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace601f830160051c81019160208410610629575b601f0160051c01905b81811061061e5750610270565b5f8155600101610611565b9091508190610608565b90607f169061025e565b631e4fbdf760e01b5f525f60045260245ffd5b608081019081106001600160401b0382111761055057604052565b601f909101601f19168101906001600160401b0382119082101761055057604052565b81601f82011215610409578051906001600160401b03821161055057604051926106c2601f8401601f19166020018561066b565b8284526020838301011161040957815f9260208093018386015e830101529056fe6080806040526004361015610012575f80fd5b5f3560e01c90816306fdde031461090c57508063095ea7b3146108e557806318160ddd146108bb57806323b872dd1461088c5780632893c5b0146106b7578063313ce5671461069c57806367a74a281461067f57806370a0823114610647578063715018a6146105e457806379ba50971461055f5780637b7e0a5a146105425780638da5cb5b1461051b57806395d89b411461040f5780639a094352146103ae5780639dbead421461029f578063a5184baf1461025c578063a9059cbb1461022b578063b32c1001146101f1578063dd62ed3e146101a1578063e30c3978146101795763f2fde38b14610103575f80fd5b346101755760203660031901126101755761011c6109e8565b6101246111db565b60018060a01b0316806bffffffffffffffffffffffff60a01b600154161760015560018060a01b035f54167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227005f80a3005b5f80fd5b34610175575f366003190112610175576001546040516001600160a01b039091168152602090f35b34610175576040366003190112610175576101ba6109e8565b6101c26109fe565b6001600160a01b039182165f908152600560209081526040808320949093168252928352819020549051908152f35b346101755761021f61021361021961020836610a42565b949192943691610dde565b906111ee565b90610abf565b50602060405160018152f35b346101755760403660031901126101755760206102526102496109e8565b60243590610e24565b6040519015158152f35b3461017557602036600319011261017557600435600654811015610290575f526008602052602060405f2054604051908152f35b63d65c1f3360e01b5f5260045ffd5b346101755760203660031901126101755760043567ffffffffffffffff811680910361017557335f52600460205260405f205490811561039a575b5f8051602061159a83398151915254604051638c14cc2160e01b815260048101939093526024830191909152600160f81b6044830152602090829060649082905f906001600160a01b03165af1801561038f575f9061035b575b806103599150335f5260046020528060405f20556103523082611476565b3390611476565b005b506020813d602011610387575b8161037560209383610a89565b81010312610175576103599051610334565b3d9150610368565b6040513d5f823e3d90fd5b905060206103a6611543565b9190506102da565b34610175576080366003190112610175576103c76109e8565b6103cf6109fe565b906064359167ffffffffffffffff8311610175576104096104016103fa61021f953690600401610a14565b3691610dde565b6044356111ee565b91610b14565b34610175575f366003190112610175576040515f6003548060011c90600181168015610511575b6020831081146104fd578285529081156104d9575060011461047b575b6104778361046381850382610a89565b6040519182916020835260208301906109c4565b0390f35b91905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f905b8082106104bf57509091508101602001610463610453565b9192600181602092548385880101520191019092916104a7565b60ff191660208086019190915291151560051b840190910191506104639050610453565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610436565b34610175575f366003190112610175575f546040516001600160a01b039091168152602090f35b346101755761021f61021361055961020836610a42565b90610e24565b34610175575f36600319011261017557600154336001600160a01b03909116036105d157600180546001600160a01b03199081169091555f805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b63118cdaa760e01b5f523360045260245ffd5b34610175575f366003190112610175576105fc6111db565b600180546001600160a01b03199081169091555f80549182168155906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610175576020366003190112610175576001600160a01b036106686109e8565b165f526004602052602060405f2054604051908152f35b34610175575f366003190112610175576020600654604051908152f35b34610175575f36600319011261017557602060405160068152f35b34610175576040366003190112610175576106d06109e8565b60243567ffffffffffffffff8116809103610175576106ed6111db565b6001600160a01b0382165f8181526004602052604081205491939091801561087a575b5f8051602061159a8339815191525460405163f953e42760e01b8152600481019290925260248201859052600160f81b6044830152909260209184916064918391906001600160a01b03165af1801561038f575f90610846575b61078c9250845f5260046020528060405f20556107873082611476565b611476565b815f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602060405183198152a3600154908067ffffffffffffffff8360a01c16019067ffffffffffffffff82116108325767ffffffffffffffff60a01b1990921660a09190911b67ffffffffffffffff60a01b16176001556040519081527f9109de113672aaca72ede8bc906f7aafabee865311ac020fb15c71edf94a0a0190602090a2005b634e487b7160e01b5f52601160045260245ffd5b506020823d602011610872575b8161086060209383610a89565b810103126101755761078c915161076a565b3d9150610853565b506020610885611543565b9050610710565b346101755760603660031901126101755760206102526108aa6109e8565b6108b26109fe565b60443591610b14565b34610175575f36600319011261017557602067ffffffffffffffff60015460a01c16604051908152f35b346101755760403660031901126101755760206102526109036109e8565b60243590610abf565b34610175575f366003190112610175575f6002548060011c906001811680156109ba575b6020831081146104fd578285529081156104d9575060011461095c576104778361046381850382610a89565b91905060025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace915f905b8082106109a057509091508101602001610463610453565b919260018160209254838588010152019101909291610988565b91607f1691610930565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361017557565b602435906001600160a01b038216820361017557565b9181601f840112156101755782359167ffffffffffffffff8311610175576020838186019501011161017557565b6060600319820112610175576004356001600160a01b03811681036101755791602435916044359067ffffffffffffffff821161017557610a8591600401610a14565b9091565b90601f8019910116810190811067ffffffffffffffff821117610aab57604052565b634e487b7160e01b5f52604160045260245ffd5b90610ad490610acd81610eed565b8233610f9f565b6040515f1981526001600160a01b039091169033907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590602090a3600190565b91610b1e81610eed565b6001600160a01b0383165f81815260056020908152604080832033845290915290205493909290610b4f8584611301565b9360ff7f00000000000000000000000000000000000000000000000000000000000000001694856002116102905760076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5460025f9081527fb7c774451310d1be4108bc180d1b52823cb0ee0274a6c0081bcaf94f115fb96d54909391610bda9190846114f1565b9083526004602052610bf0604084205487611301565b96602060018060a01b035f8051602061159a83398151915254166024604051809781936309c00ffd60e11b83528d60048401525af193841561038f575f94610da9575b505f8051602061159a83398151915254604051630ccd46b160e31b81526004810195909552602485018490525f6044860181905260209186916064918391906001600160a01b03165af193841561038f575f94610d75575b5060011161029057610cb0610cc49160209460015f526007865260405f2054906114f1565b610cb9816113b4565b506103528582611476565b606460018060a01b035f8051602061159a8339815191525416965f6040519889948593630ccd46b160e31b8552600485015260248401528160448401525af193841561038f575f94610d3d575b50610d33610d2c86610d2686610d38996113e1565b876114f1565b3383610f9f565b61101c565b600190565b9493506020853d602011610d6d575b81610d5960209383610a89565b810103126101755793519293610d33610d11565b3d9150610d4c565b9093506020813d602011610da1575b81610d9160209383610a89565b810103126101755751925f610c8b565b3d9150610d84565b93506020843d602011610dd6575b81610dc460209383610a89565b81010312610175579251926020610c33565b3d9150610db7565b92919267ffffffffffffffff8211610aab5760405191610e08601f8201601f191660200184610a89565b829481845281830111610175578281602093845f960137010152565b90610e2e81610eed565b335f526004602052610e4460405f205482611301565b9060ff7f0000000000000000000000000000000000000000000000000000000000000000166001116102905760076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5460015f527fb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b82854610d389491610ee7918391610ed39190876114f1565b610edc816113b4565b506107873382611476565b3361101c565b7fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60054604051632fd514cd60e11b81526004810192909252336024830152602090829060449082906001600160a01b03165afa90811561038f575f91610f64575b5015610f5557565b632fa38b3f60e01b5f5260045ffd5b90506020813d602011610f97575b81610f7f60209383610a89565b8101031261017557518015158103610175575f610f4d565b3d9150610f72565b6001600160a01b0381169392908415611009576001600160a01b038316948515610ff65790610ff49495610787925f52600560205260405f20905f526020528260405f2055610fee3084611476565b82611476565b565b85634a1406b160e11b5f5260045260245ffd5b8463e602df0560e01b5f5260045260245ffd5b91926001600160a01b038316929083156111c8576001600160a01b0383169485156111b557906110549161104e611543565b916114f1565b91845f5260046020525f602060408220548581156111a5575b8615611197575b5f8051602061159a8339815191525460405163f953e42760e01b8152600480820194909452848101909301919091526001600160f81b0319841660448301529092839160649183916001600160a01b03165af190811561038f575f91611161575b50926110fc61110e92856111269650885f5260046020528060405f20556107873082611476565b845f52600460205260405f20546113e1565b835f5260046020528060405f20556107873082611476565b6006545f1981019081116108325760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91604051908152a3565b9390506020843d60201161118f575b8161117d60209383610a89565b810103126101755792516110fc6110d5565b3d9150611170565b506111a0611543565b611074565b90506111af611543565b9061106d565b8563ec442f0560e01b5f5260045260245ffd5b83634b637e8f60e11b5f5260045260245ffd5b5f546001600160a01b031633036105d157565b61123d9160209160018060a01b035f8051602061159a8339815191525416905f6040518096819582946302e817ff60e41b845260048401523360248401526080604484015260848301906109c4565b600560f81b606483015203925af190811561038f575f916112cf575b507fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600546001600160a01b0316803b15610175576040516346ce4e4960e11b815260048101839052336024820152905f908290604490829084905af1801561038f576112c2575090565b5f6112cc91610a89565b90565b90506020813d6020116112f9575b816112ea60209383610a89565b8101031261017557515f611259565b3d91506112dd565b9081156113a4575b8015611392575b602090606460018060a01b035f8051602061159a8339815191525416935f60405195869485936334a6d7b960e11b8552600485015260248401528160448401525af190811561038f575f91611363575090565b90506020813d60201161138a575b8161137e60209383610a89565b81010312610175575190565b3d9150611371565b50602061139d611543565b9050611310565b90506113ae611543565b90611309565b60065491905f19831461083257610ff49060018401600655835f5260086020528060405f20553090611476565b6020905f928115611466575b8015611458575b5f8051602061159a83398151915254604051638c14cc2160e01b8152600480820194909452848101909301919091526001600160f81b0319841660448301529092839160649183916001600160a01b03165af190811561038f575f91611363575090565b50611461611543565b6113f4565b9050611470611543565b906113ed565b7fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600546001600160a01b031691823b1561017557604051631974142760e21b815260048101929092526001600160a01b03166024820152905f908290604490829084905af1801561038f576114e75750565b5f610ff491610a89565b9060646020925f60018060a01b035f8051602061159a8339815191525416604051968795869463cb3b940760e01b86526004860152602485015260448401525af190811561038f575f91611363575090565b5f8051602061159a83398151915254604051631ce2e8d760e31b81525f60048201819052600560f81b60248301529091602091839160449183916001600160a01b03165af190811561038f575f9161136357509056feed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea601a264697066735822122092618fe96464edefcc349acd12bdbe8a8c3cb5d6f5a1fdab3cee77351b340eff64736f6c634300081a0033ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea603ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea601ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea602a26469706673582212200ae1c4562400dada4d65e08525f5d60ced93d1c1971b4e2b6d739c921e206fb864736f6c634300081a0033","sourceMap":"724:5264:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;724:5264:3;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;724:5264:3;;;;;;;;;1500:62:28;;:::i;:::-;-1:-1:-1;;;;;724:5264:3;;;;;;;;;4855:18;;;724:5264;;;4928:35;;724:5264;;;;;;;;;:::i;:::-;;;;4984:81;;724:5264;;;;4984:81;;724:5264;;;;4984:81;;724:5264;;;;4984:81;;724:5264;;;;;4928:35;;;724:5264;4928:35;;;;;:::i;:::-;;2300:41;;4928:35;;;;;;:::i;:::-;724:5264;4918:46;;724:5264;;;;;;;;;;;;;1440:25:126;;-1:-1:-1;;;;;724:5264:3;;;-1:-1:-1;;;;;;1440:25:126;;;;;;724:5264:3;;-1:-1:-1;724:5264:3;;1440:25:126;;724:5264:3;;;;;;-1:-1:-1;;;724:5264:3;-1:-1:-1;;;724:5264:3;1440:25:126;;;;;;;;724:5264:3;;;-1:-1:-1;;;;;;724:5264:3;;;;;;;;;;;;;;;;;;;;1440:25:126;;724:5264:3;;;;1440:25:126;;;;;;;;;;724:5264:3;4851:432;5135:35;;724:5264;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;724:5264:3;;;;;;:::i;:::-;1500:62:28;;:::i;:::-;-1:-1:-1;;;;;724:5264:3;2627:22:28;;2623:91;;724:5264:3;1440:25:126;;-1:-1:-1;;;;;;1440:25:126;;;;;;-1:-1:-1;;;;;724:5264:3;;3052:40:28;;724:5264:3;3052:40:28;724:5264:3;2623:91:28;2672:31;;;724:5264:3;2672:31:28;724:5264:3;;;;;2672:31:28;724:5264:3;;;;;;-1:-1:-1;;724:5264:3;;;;;;:::i;:::-;5635:35;;724:5264;;:::i;:::-;1500:62:28;;:::i;:::-;724:5264:3;;5635:35;;;724:5264;5635:35;;;;;:::i;:::-;724:5264;5625:46;;724:5264;;5596:28;724:5264;;;5596:28;724:5264;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;724:5264:3;;;;1500:62:28;;:::i;:::-;724:5264:3;;4254:40;724:5264;;;;;;;;-1:-1:-1;;724:5264:3;;;;;1085:25;724:5264;;;;;;;;;;;;;-1:-1:-1;;724:5264:3;;;;;1440:25:126;724:5264:3;;-1:-1:-1;;;;;724:5264:3;;;;;;;;;;;;;;-1:-1:-1;;724:5264:3;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;724:5264:3;;;;;;;;;;;;;-1:-1:-1;;;2133:46:3;;;;;724:5264;;;-1:-1:-1;;;;;724:5264:3;;;;;;;;2133:46;;;;;;;724:5264;2133:46;;;724:5264;-1:-1:-1;;;;;;724:5264:3;2133:60;2129:129;;724:5264;;2300:41;724:5264;2300:41;;;;724:5264;;;;;;;;;;;;;;;2300:41;724:5264;;;-1:-1:-1;;;;;724:5264:3;;;;;;;2300:41;;;;;;;;;;:::i;:::-;724:5264;2290:52;;724:5264;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;2300:41;;724:5264;;:::i;:::-;;;;;;;;;2428:13;;724:5264;2467:3;724:5264;;2443:22;;;;;-1:-1:-1;;;;;2507:14:3;;;;:::i;:::-;724:5264;;;;;;;2539:46;;;724:5264;2539:46;;724:5264;;2539:46;724:5264;2539:46;;;;;;;;;724:5264;2539:46;;;2467:3;-1:-1:-1;;;;;;724:5264:3;2539:60;2535:137;;-1:-1:-1;;;;;;2742:14:3;;;;:::i;:::-;724:5264;;;;2725:44;;;;724:5264;2725:44;;;;;:::i;:::-;724:5264;2715:55;;724:5264;;2809:28;724:5264;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;724:5264:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2809:28;724:5264;;;;;;;;;;;;;;;;;;448:51:126;;;2876:102:3;;2467:3;2872:214;;;3099:21;724:5264;3099:21;;;;;:::i;:::-;;;;;;:::i;:::-;;724:5264;2428:13;;2872:214;724:5264;-1:-1:-1;;;;;3044:14:3;724:5264;;3044:14;:::i;:::-;724:5264;;3017:54;;;724:5264;3017:54;724:5264;;;;;;3017:54;2876:102;2929:49;;448:51:126;2876:102:3;;;2535:137;2216:31;;;724:5264;2626:31;724:5264;;;;2626:31;2539:46;;;;724:5264;2539:46;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;724:5264;;;;;;;;;2443:22;;;;;;724:5264;;;;;;;;;;;;;;1440:25:126;724:5264:3;3140:157;;724:5264;1440:25:126;;724:5264:3;3480:33;3428:15;1440:25:126;724:5264:3;;1440:25:126;;3411:33:3;;;:::i;:::-;724:5264;;1440:25:126;;;-1:-1:-1;;;1440:25:126;;;;-1:-1:-1;;;1440:25:126;;;;724:5264:3;;1440:25:126;;;;;;;;;;724:5264:3;1440:25:126;;;;;;2300:41:3;;1440:25:126;;;;;;:::i;:::-;3480:33:3;:::i;:::-;724:5264;;1440:25:126;;;-1:-1:-1;;;1440:25:126;;;;724:5264:3;;1440:25:126;;;;;;;;;;724:5264:3;1440:25:126;;;;;;2300:41:3;;1440:25:126;;;;;;:::i;:::-;724:5264:3;;3342:182;;;;;;;;;;724:5264;3342:182;;;;;1440:25:126;;3342:182:3;;;;;;724:5264;1440:25:126;;724:5264:3;1440:25:126;;;;:::i;:::-;;724:5264:3;1440:25:126;;;;;;;:::i;:::-;3342:182:3;;724:5264;3342:182;;;;;3428:15;1440:25:126;724:5264:3;;;1440:25:126;-1:-1:-1;;;;;1440:25:126;;;;724:5264:3;;;;;1440:25:126;;724:5264:3;-1:-1:-1;;;;;1440:25:126;;;;724:5264:3;1440:25:126;;;;3428:15:3;1440:25:126;724:5264:3;;;;;;;;;1440:25:126;724:5264:3;;;3596:308;;;;;;;;;724:5264;3596:308;;;;;1440:25:126;3596:308:3;;;;;;;;;;;;;;1440:25:126;;;;;;;;:::i;:::-;724:5264:3;;;;;;;;1440:25:126;;724:5264:3;;1440:25:126;;724:5264:3;3725:4;724:5264;1440:25:126;;724:5264:3;;;;;;;;1440:25:126;;724:5264:3;;1440:25:126;;724:5264:3;1440:25:126;;;724:5264:3;;1440:25:126;;724:5264:3;1440:25:126;;;;;;;724:5264:3;;;;1440:25:126;;;;;724:5264:3;;1440:25:126;724:5264:3;1440:25:126;;;;;;3596:308:3;;;;;724:5264;3596:308;;;;;;724:5264;;;;;;;;;;;;;;1440:25:126;;-1:-1:-1;;;;;;1440:25:126;-1:-1:-1;;;;;724:5264:3;;;1440:25:126;;;;;724:5264:3;;;;;;;1440:25:126;;;;;-1:-1:-1;;;;;724:5264:3;;;;;;1440:25:126;;;;724:5264:3;;1440:25:126;;;724:5264:3;;1440:25:126;;;;724:5264:3;;1440:25:126;;;724:5264:3;;1440:25:126;;;;2809:28:3;724:5264;1440:25:126;;;724:5264:3;;1440:25:126;;;;724:5264:3;;;1440:25:126;;;724:5264:3;;;;1440:25:126;;-1:-1:-1;724:5264:3;1440:25:126;;;;724:5264:3;;;;;1440:25:126;;;3596:308:3;724:5264;;;;;;;;;;;1440:25:126;724:5264:3;;;;1440:25:126;;724:5264:3;1440:25:126;724:5264:3;;1440:25:126;3140:157:3;1440:25:126;724:5264:3;;;;3239:47;;;;;;;;724:5264;;3239:47;;1440:25:126;724:5264:3;1440:25:126;;;;:::i;:::-;;724:5264:3;1440:25:126;;724:5264:3;3239:47;;;724:5264;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;724:5264:3;;;;;-1:-1:-1;724:5264:3;;;;;;;;;;;;;2129:129;2216:31;;;;724:5264;2216:31;724:5264;;;;2216:31;2133:46;;;;724:5264;2133:46;724:5264;2133:46;;;;;;;:::i;:::-;;;;724:5264;;;-1:-1:-1;;;;;724:5264:3;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;724:5264:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;724:5264:3;;;;;;;;-1:-1:-1;;;;;724:5264:3;;;;;;;;;;;;;;-1:-1:-1;;724:5264:3;;;;1500:62:28;;:::i;:::-;724:5264:3;;;;;;;-1:-1:-1;;724:5264:3;;;;1500:62:28;;:::i;:::-;724:5264:3;1440:25:126;;-1:-1:-1;;;;;;1440:25:126;;;;-1:-1:-1;;;;;724:5264:3;3052:40:28;724:5264:3;;3052:40:28;724:5264:3;;;;;;;-1:-1:-1;;724:5264:3;;;;936:32;724:5264;;;-1:-1:-1;;;;;724:5264:3;;;;;;;;;;;;;;-1:-1:-1;;724:5264:3;;;;;;;;866:63;724:5264;;;;;;;;;;;;;;866:63;724:5264;866:63;;724:5264;;866:63;724:5264;;;;;866:63;;724:5264;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;866:63;724:5264;;;;;;;;;;;;;;;;-1:-1:-1;;724:5264:3;;;;1500:62:28;;:::i;:::-;724:5264:3;;5879:26;724:5264;;;;;;;;;;;;;;;;;:::o;:::-;;;2300:41;;724:5264;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;724:5264:3;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;724:5264:3;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;724:5264:3;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;724:5264:3;;;;;;;-1:-1:-1;;;;;724:5264:3;;;;;;;;;;;:::o;1440:25:126:-;;;724:5264:3;;;1440:25:126;;;;;724:5264:3;;1440:25:126;-1:-1:-1;1440:25:126;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;724:5264:3;;;1440:25:126;724:5264:3;;;;;;;;1440:25:126;;;;;724:5264:3;;1440:25:126;;;;;;724:5264:3;;1440:25:126;;;;;;-1:-1:-1;1440:25:126;;;;;;724:5264:3;;-1:-1:-1;;724:5264:3;1440:25:126;;;:::o;1796:162:28:-;1710:6;1440:25:126;-1:-1:-1;;;;;724:5264:3;735:10:46;1855:23:28;1851:101;;1796:162::o;1851:101::-;1901:40;;;1710:6;1901:40;735:10:46;1901:40:28;724:5264:3;;1710:6:28;1901:40;724:5264:3;;;;;;;;-1:-1:-1;;724:5264:3;;;;:::o;987:632:52:-;1109:17;-1:-1:-1;25444:17:56;-1:-1:-1;;;25444:17:56;;;25440:103;;987:632:52;25560:17:56;25569:8;26140:7;25560:17;;;25556:103;;987:632:52;25685:8:56;25676:17;;;25672:103;;987:632:52;25801:7:56;25792:16;;;25788:100;;987:632:52;25914:7:56;25905:16;;;25901:100;;987:632:52;26027:7:56;26018:16;;;26014:100;;987:632:52;26131:16:56;;26127:66;;987:632:52;26140:7:56;1224:92:52;1129:1;724:5264:3;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;2300:41;;724:5264;;:::i;:::-;;;;;;;1224:92:52;;;1329:247;-1:-1:-1;;724:5264:3;;-1:-1:-1;;;1383:111:52;;;;724:5264:3;1383:111:52;724:5264:3;1544:10:52;;1540:21;;26140:7:56;1329:247:52;;;;1540:21;1556:5;;987:632;:::o;26127:66:56:-;26177:1;724:5264:3;;;;26127:66:56;;26014:100;26027:7;26098:1;724:5264:3;;;;26014:100:56;;;25901;25914:7;25985:1;724:5264:3;;;;25901:100:56;;;25788;25801:7;25872:1;724:5264:3;;;;25788:100:56;;;25672:103;25685:8;25758:2;724:5264:3;;;;25672:103:56;;;25556;25569:8;25642:2;724:5264:3;;;;25556:103:56;;;25440;-1:-1:-1;25526:2:56;;-1:-1:-1;;;;724:5264:3;;25440:103:56;","linkReferences":{}},"methodIdentifiers":{"createConfidentialIndexFund(address[],address,address)":"8c591c6b","feeDivisor()":"9a36f932","indexTokensAndStablecoinToIndexFund(bytes32)":"8c2d2783","marketDataFetcher()":"7c7024d6","owner()":"8da5cb5b","removeWhitelistedTokenStablecoinPair(address,address)":"e57b0faf","renounceOwnership()":"715018a6","setDefaultSharePrice(uint256)":"c9da4508","setFeeDivisor(uint256)":"043531b1","setProtocolFee(uint256)":"787dce3d","swapsManagerProxy()":"44fc4fab","tokenStablecoinPairToPoolKey(bytes32)":"44c60582","transferOwnership(address)":"f2fde38b","whitelistTokenStablecoinPair(address,address,uint24,int24,address)":"ff63aa73"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_swapsManagerProxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_markerDataFetcher\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_defaultSharePrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_feeDivisor\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stablecoin\",\"type\":\"address\"}],\"name\":\"CurrencyPairNotWhitelisted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"indexTokens\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"stablecoin\",\"type\":\"address\"}],\"name\":\"IndexFundAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"NoPriceFeedForToken\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"indexTokens\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"encryptedStablecoin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stablecoin\",\"type\":\"address\"}],\"name\":\"createConfidentialIndexFund\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeDivisor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"indexTokensAndStablecoinToIndexFund\",\"outputs\":[{\"internalType\":\"contract IIndexFund\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"marketDataFetcher\",\"outputs\":[{\"internalType\":\"contract MarketDataFetcher\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stablecoin\",\"type\":\"address\"}],\"name\":\"removeWhitelistedTokenStablecoinPair\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newDefaultSharePrice\",\"type\":\"uint256\"}],\"name\":\"setDefaultSharePrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newFeeDivisor\",\"type\":\"uint256\"}],\"name\":\"setFeeDivisor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newFeeDivisor\",\"type\":\"uint256\"}],\"name\":\"setProtocolFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"swapsManagerProxy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"tokenStablecoinPairToPoolKey\",\"outputs\":[{\"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\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stablecoin\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"name\":\"whitelistTokenStablecoinPair\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"createConfidentialIndexFund(address[],address,address)\":{\"details\":\"The function first checks that a pool is referenced in the factory's pool map for each token-stablecoin pair\",\"params\":{\"encryptedStablecoin\":\"The encrypted version of the stablecoin that the index fund is denominated in\",\"indexTokens\":\"The tokens that make up the index fund\",\"stablecoin\":\"The stablecoin that the index fund is denominated in\"},\"returns\":{\"_0\":\"The address of the new index fund\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"removeWhitelistedTokenStablecoinPair(address,address)\":{\"params\":{\"stablecoin\":\"The stablecoin in the pair\",\"token\":\"The token in the pair\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setDefaultSharePrice(uint256)\":{\"params\":{\"newDefaultSharePrice\":\"The new default share price\"}},\"setFeeDivisor(uint256)\":{\"params\":{\"newFeeDivisor\":\"The new fee divisor\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"whitelistTokenStablecoinPair(address,address,uint24,int24,address)\":{\"params\":{\"fee\":\"The fee for the pair\",\"hooks\":\"The hooks for the pair\",\"stablecoin\":\"The stablecoin in the pair\",\"tickSpacing\":\"The tick spacing for the pair\",\"token\":\"The token in the pair\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"createConfidentialIndexFund(address[],address,address)\":{\"notice\":\"Create a new index fund\"},\"removeWhitelistedTokenStablecoinPair(address,address)\":{\"notice\":\"Remove a token-stablecoin pair from the factory's pool map\"},\"setDefaultSharePrice(uint256)\":{\"notice\":\"Set the default share price for new index funds\"},\"setFeeDivisor(uint256)\":{\"notice\":\"Set the fee divisor for new index funds\"},\"whitelistTokenStablecoinPair(address,address,uint24,int24,address)\":{\"notice\":\"Whitelist a token-stablecoin pair by referencing the pool key in the factory's pool map\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/IndexFundFactory.sol\":\"IndexFundFactory\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@chainlink/=lib/chainlink/\",\":@ensdomains/=lib/v4-core/node_modules/@ensdomains/\",\":@httpz-contracts/=lib/httpz-contracts/contracts/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/universal-router/=lib/universal-router.git/\",\":@uniswap/v2-core/=lib/v2-core/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/\",\":@uniswap/v4-core/=lib/v4-core/\",\":@uniswap/v4-periphery/=lib/v4-periphery/\",\":chainlink/=lib/chainlink/\",\":ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":fhevm-contracts/=node_modules/fhevm-contracts/\",\":fhevm-core-contracts/=node_modules/fhevm-core-contracts/\",\":fhevm/=node_modules/fhevm/\",\":forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":httpz-contracts/=lib/httpz-contracts/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":permit2/=lib/permit2/\",\":solmate/=lib/permit2/lib/solmate/\",\":universal-router.git/=lib/universal-router.git/\",\":v2-core/=lib/v2-core/contracts/\",\":v3-core/=lib/v3-core/\",\":v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/\",\":v4-core/=lib/v4-core/src/\",\":v4-periphery/=lib/v4-periphery/\"],\"viaIR\":true},\"sources\":{\"contracts/ConfidentialIndexFund.sol\":{\"keccak256\":\"0xf62f83a51f7ea367de12060b0e59b9e6b29d4ffa8ee96d78be95ea89fe3cc7bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://32de52e65aed4946dc982aa71f5fe44f7180c2acf7dc35cbfb430e27c67f9268\",\"dweb:/ipfs/QmNwahRXDsPAss1bTjCzztHnFCrsgHQHsaKu4B2e8KjLRr\"]},\"contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol\":{\"keccak256\":\"0x08ddec3305fabf65ffe2c18949b1b18f4ce0aeafd7bb8f68faecf4da9bfa18ab\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://e73a281abe6706aa53fc031839d0fcb73c028f0be2c2ad5428aa4880ca072805\",\"dweb:/ipfs/QmZc9KQXzYstBAKKPye7w5W3jBX1a56G9kCAPs58nkHvFg\"]},\"contracts/ERC20Encryption/ConfidentialERC20WithErrorsWrapped.sol\":{\"keccak256\":\"0xb663d8df9afddc4ea27c24e893b00df774475852dff3f70064161fcdf14f5628\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a19c179384889016ab8061d809b37b78f13257b363f0d3c6910dc0c62d261b3\",\"dweb:/ipfs/QmaA6ddxxLYEqpwUAfCJCH2JENXAEuKGNSf9w7zG9WmQwR\"]},\"contracts/IndexFundFactory.sol\":{\"keccak256\":\"0x874beb76d89c637595dd74734a0f89052c94ae41bd0df19ad00a674f74b79d45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87c4d8dfa8a3b627f7f0f1b3011780bf014b79867b84e48edf7857cc99ddc115\",\"dweb:/ipfs/QmPe4RkpmtHHmX9fq92yz5FWtKuNr7d6HYiJn7E8UyobXu\"]},\"contracts/IndexFundToken.sol\":{\"keccak256\":\"0x42961a70f9142f4e63aaf154379b9023cacca1fd43b6514678eaee59f8fb9890\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://ef1350bcd4141746855a9226d633ad4ac1be64c24d8b5ca8a1e09a7c0064d191\",\"dweb:/ipfs/QmVAK66Y1euBYi18MuSRsUP642x7BhoFQFEkQaUifPvdAX\"]},\"contracts/interfaces/IIndexFund.sol\":{\"keccak256\":\"0x1d9c8fd5bded96f70982cc51fb43db3438989a87fa1513cee239d3e6773489e7\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://c627498c9d3ebda35fac237c30a8151fc2f7a6b1bf39443e4ca9be2766d3d4f2\",\"dweb:/ipfs/QmShbn35ZYr12d5TChnDsu9u6YtC8EDivzVZp5tFc6bVoM\"]},\"contracts/interfaces/IIndexFundFactory.sol\":{\"keccak256\":\"0xdaee28098d25d209508346539130902d9e08f32b24aa18fe915c50a829dd62ac\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://1c6a9ccf80750ad63e7a5cdff241d17130ab3e66e41e6647b10504abbf37fb76\",\"dweb:/ipfs/QmRFJFDzeATHcLQCU6yXxVDThzm2xRZaGDZXFaCZK4aVs8\"]},\"contracts/interfaces/IMarketDataFetcher.sol\":{\"keccak256\":\"0xa5343d6d80de89e9e259d51e9fd50444de43f61f6da31c26ad6f49029a47481a\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://e7fb90369df691fd542180e13cc7a881b46ef86dc1fdac4622d19cb292059112\",\"dweb:/ipfs/QmUnvC7eyCdg83tARSBSoEDPKjZHJZ4mKFWdPwSycki3KL\"]},\"contracts/interfaces/ISwapsManager.sol\":{\"keccak256\":\"0xa98bd09c0946399a4f4ae05e713b3207593528df54e8695a4aa4db885b47e894\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://eca854b1cf38859c81648a4bc824aa8e8e7a6347a3b902ceff0d2eb98cff384d\",\"dweb:/ipfs/QmTFzfKREewMg1xjbuCU5DDPbq8Wi1euCzpE2xJ8RAeJi8\"]},\"contracts/marketData/MarketDataFetcher.sol\":{\"keccak256\":\"0xa756f8531752b5c71493a2c2ff98b3eb75add8b08f925d85313a1ee0c74f4268\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d16ae4cd7db8402c01772c5e11d68616e572f6d1f52167b3ca3749d3844a2d6\",\"dweb:/ipfs/QmbcxnqiDkBNhBCRQd9w7qjU2nC7nTUw9QGqWPiVoZ5DRP\"]},\"contracts/swaps/SwapsManager.sol\":{\"keccak256\":\"0xbf9c74550a5d7f91c56cb8832f5240c1f3e96316ddc67d9391409f1799234071\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c8df81cc2c3fc11287e39be63e97601a943caa10f753add2e05e867ca3171e\",\"dweb:/ipfs/QmVE1svFQVypEFKwSbCbEfVVL5jovsocpKidNSoyFD9g4j\"]},\"lib/chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol\":{\"keccak256\":\"0x257a8d28fa83d3d942547c8e129ef465e4b5f3f31171e7be4739a4c98da6b4f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d39e11b1dc7b9b8ccdabbc9be442ab7cda4a81c748f57e316dcb1bcb4a28bf9\",\"dweb:/ipfs/QmaG6vz6W6iEUBsbHSBob5mdcitYxWjoygxREHpsJHfWrS\"]},\"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol\":{\"keccak256\":\"0x8b45e5bb2fd9212f99e61b4d25b9c9d5ed7cb1a9a684aac34f752c568ef16c76\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://1ca71bb5bfbb2f8a0779f8394baeea01680619637abddb572017d05d96862591\",\"dweb:/ipfs/QmPCzGBE1m6WtDZxrVL5jzkduNaS7fjtYovUWdnzN34qjh\"]},\"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20Wrapped.sol\":{\"keccak256\":\"0x7e178a03b7f034532497a8b762069fff0808277befc880e4a3236938ba1380a7\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://7250476c961801e579719fd0201a3ff6bfdc79e8324db34d5ec0c6cecc281281\",\"dweb:/ipfs/QmNsTR2Rk2FRS3cTNf7WeN3UzPZy6HSj1SFV3Nuwz8Rpzi\"]},\"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol\":{\"keccak256\":\"0xe016a085f72ca3cf6d78ec1cb2182a398106cb7d425e984776a9caab0bad2569\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://3e79dc5075469d660908f5f8b6d0c863b14459d60a0b06fb786d58de8cf30a94\",\"dweb:/ipfs/QmePGRGtoWBnQ8T6ZRyZgiwVh4r67kcmWejwKgjyYN4AAY\"]},\"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20Wrapped.sol\":{\"keccak256\":\"0x72c5379fb2a7e1701a4686f60831bfc474350a42f0660aea815a5ce910cba38b\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://118fac79c89e142247e94763a1ca1235c307a67b37d68fa45d94125bc85c2cb8\",\"dweb:/ipfs/QmcE9P74NQQKnmW9vdtGb8KrWgJWH6K3bNTdrMxrPi716c\"]},\"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol\":{\"keccak256\":\"0xfe322c8f9a8e4fba881715901a5bafd2efa23394ecbc9ec84282818baeff0a07\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://13dba831528dd16408b7abab23eac0664a2a3e5ecbfe5e58e6e321cf2921668a\",\"dweb:/ipfs/QmPq4YeugbayWfeBJR8H7s4jHsnZkACQX2xbdNQ4sdvZrk\"]},\"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol\":{\"keccak256\":\"0xecc6289a9791bef254911393b51d2bfbddc5650ede7fbe7b5cc2b8d3eb01d7a6\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://7463278a20bc5d7fd8b7ec2cb8e592b2d1e0afcf8b59d35d6929d18661d4b38c\",\"dweb:/ipfs/QmTKPoABwNDmK7g7vkti1AkTpkUBHu3iX3zsXQsEuSiqBM\"]},\"lib/httpz-contracts/contracts/utils/EncryptedErrors.sol\":{\"keccak256\":\"0x0b8d08f392884add1af672018359e8980ee0b5e1662fe5e36eb31f053d1d4505\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://2903dd49a88b36aba2e8a45548b6a68d203887356ebdf452b10e0148954ba1a5\",\"dweb:/ipfs/QmTRuP4QXagoV2cLr2ctzFtNK7FK1cDXMYm4feMoMsYoWG\"]},\"lib/httpz-contracts/contracts/utils/TFHEErrors.sol\":{\"keccak256\":\"0x5fef7c2d7d4449d724a2800b37dfcc61e2b635f2747378ce222b9187425f2d13\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://7c2ef113faaec2d74c8d958f80687d0b676082d6231720917aaa8aa934d689a3\",\"dweb:/ipfs/QmNn474JDQ5zvVDwEuicJs6Xq8YEXWGZLoW4KeTWDVG31f\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xd861907d1168dcaec2a7846edbaed12feb8bad2d6781dba987be01374f90b495\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12ff809243040419e2fc2aa7ef0aaa60b3e6ebc901553ba1de970ceeef208c4c\",\"dweb:/ipfs/QmX2dwMVNrQAahqVzEx94gqcVB6Z8ovifPYdEfHZzj7aEb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol\":{\"keccak256\":\"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0\",\"dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x8decfa54cec979c824b044b8128cd91d713f72c71fd7dfa54974624d8c949898\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://271f914261a19d87117a777e0924ada545c16191ef9b00cc40b0134fc14ebc70\",\"dweb:/ipfs/QmdvVNWHGHQrGGPonZJs5NuzTevTjZRM2zayKrDJf7WBA2\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x6ef9389a2c07bc40d8a7ba48914724ab2c108fac391ce12314f01321813e6368\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7a5cb39b1e6df68f4dd9a5e76e853d745a74ffb3dfd7df4ae4d2ace6992a171\",\"dweb:/ipfs/QmPbzKR19rdM8X3PLQjsmHRepUKhvoZnedSR63XyGtXZib\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x4ea01544758fd2c7045961904686bfe232d2220a04ecaa2d6b08dac17827febf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fabe6bef5167ae741dd8c22d7f81d3f9120bd61b290762a2e8f176712567d329\",\"dweb:/ipfs/QmSnEitJ6xmf1SSAUeZozD7Gx7h8bNnX3a1ZBzqeivsvVg\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff\",\"dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaaa1d17c1129b127a4a401db2fbd72960e2671474be3d08cae71ccdc42f7624c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb2f27cd3952aa667e198fba0d9b7bcec52fbb12c16f013c25fe6fb52b29cc0e\",\"dweb:/ipfs/QmeuohBFoeyDPZA9JNCTEDz3VBfBD4EABWuWXVhHAuEpKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]},\"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol\":{\"keccak256\":\"0x534bf5c25d6003a8ce50b400d20fa460c03169ad7baa90d47a912917c36dfe2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc0cc39c40ea23d3c46e8517e19ebdd877719d3159fa032f2a91802cdd205c79\",\"dweb:/ipfs/QmSoNh7HTkD4TJcBkBKSGSPMMpLUZKE7s9f2G6mjdaJywg\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x44f87e91783e88415bde66f1a63f6c7f0076f2d511548820407d5c95643ac56c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://13a51bc2b23827744dcf5bad10c69e72528cf015a6fe48c93632cdb2c0eb1251\",\"dweb:/ipfs/QmZwPA47Yqgje1qtkdEFEja8ntTahMStYzKf5q3JRnaR7d\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889\",\"dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/permit2/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0xcdfd8db76b2a3415620e4d18cc5545f3d50de792dbf2c3dd5adb40cbe6f94b10\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://57b3ab70cde374af1cf2c9888636e8de6cf660f087b1c9abd805e9271e19fa35\",\"dweb:/ipfs/QmNrLDBAHYFjpjSd12jerm1AdBkDqEYUUaXgnT854BUZ97\"]},\"lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0xbadf3d708cf532b12f75f78a1d423135954b63774a6d4ba15914a551d348db8a\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://88ac8256bd520d1b8e6f9c4ac9e8777bffdc4a6c8afb1a848f596665779a55b4\",\"dweb:/ipfs/QmXx7X1dxe6f5VM91vgQ5BA4r2eF97GWDcQDrgHytcvfjU\"]},\"lib/permit2/src/interfaces/IAllowanceTransfer.sol\":{\"keccak256\":\"0x37f0ac203b6ef605c9533e1a739477e8e9dcea90710b40e645a367f8a21ace29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0104d72aeaec1cd66cc232e7de7b7ead08608efcc179491b8a66387614670b0\",\"dweb:/ipfs/QmfAZDyuNC9FXXbnJUwqHNwmAK6uRrXxtWEytLsxjskPsN\"]},\"lib/permit2/src/interfaces/IEIP712.sol\":{\"keccak256\":\"0xfdccf2b9639070803cd0e4198427fb0df3cc452ca59bd3b8a0d957a9a4254138\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f7c936ac42ce89e827db905a1544397f8bdf46db34cdb6aa1b90dea42fdb4c72\",\"dweb:/ipfs/QmVgurxo1N31qZqkPBirw9Z7S9tLYmv6jSwQp8R8ur2cBk\"]},\"lib/permit2/src/interfaces/IPermit2.sol\":{\"keccak256\":\"0xaa631cc9f53e699301d94233007110a345e6779011def484e8dd97b8fe0af771\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc0502cf19c9c18f320a3001201e89e350393b75837f6b7971de18b2de06f30d\",\"dweb:/ipfs/QmT9SfhdJ7VJNNrf94g4H5usyi7ShqWGx7Cqsz9jZTjX96\"]},\"lib/permit2/src/interfaces/ISignatureTransfer.sol\":{\"keccak256\":\"0xe6df9966f8841dc3958ee86169c89de97e7f614c81c28b9dc947b12d732df64e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d4eafdee7f48c3be8350a94eb6edd0bfb2af2c105df65787a77174f356c0317\",\"dweb:/ipfs/QmY1j2adeeAhNpn6cUuthemxGCdLXHTfyMh9yTKsY4mZ2d\"]},\"lib/permit2/src/libraries/SafeCast160.sol\":{\"keccak256\":\"0x8a34e2beac108d74f89510c949983212b5f09307a93ee9e17a9d50e93f6bc8e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828697f9567ce617c5c1c8f76b6bcd250e93aea2c4f3ee188be6dff8443c19e7\",\"dweb:/ipfs/QmafxeSPhUc9gGtNDLAw26oZooC5XNLhDMxHxYhJxL5Nwi\"]},\"lib/universal-router.git/contracts/UniversalRouter.sol\":{\"keccak256\":\"0x5c7515720fa9b429bc83f0044f3a02cdd065fe1773b9fd32151dc5ff9042d368\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://dd77517f3a73a07fdff8f3a52c268afca749a678ea11442140d401eb102f4404\",\"dweb:/ipfs/QmeJiwCtgF1rMB7Foi6PrqWEaXktztPGQfHoAsw1BRhLU3\"]},\"lib/universal-router.git/contracts/base/Dispatcher.sol\":{\"keccak256\":\"0x1564339a5163c5d27f06a64f994a7457b061aa0f5046377bcc5078cd6907cc5d\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://82dc3ed71c19d6e5d1f72304e62e360954fc40a4d92a2a94e862c5474490d58d\",\"dweb:/ipfs/QmcNamJcGijcEetbHWVJHNjSE2WCyQsmEGEGDg9ZNwqSjR\"]},\"lib/universal-router.git/contracts/base/Lock.sol\":{\"keccak256\":\"0x92f953dda0d671178d054eeb3915b70f8ba80be33df8670a9146af4a4bc2c6ac\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://f73faac9532c8a8870d31bcef68a0dde387579d7b755c342b3352a54a4b63682\",\"dweb:/ipfs/QmXLvJb6vxfrUG84ASLhEf7tL62MN3oxkp7aXUxemrZTy3\"]},\"lib/universal-router.git/contracts/interfaces/IUniversalRouter.sol\":{\"keccak256\":\"0x2525b52d1edf5df89bfd093c5b933b9e8f65236f44f58096763a6c87a5cafb63\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5cc0fcfedd6b32586099ee0f6781bb81da99175c65013c06bb6f61a125babb18\",\"dweb:/ipfs/QmcEkSzkjkPpp3YyJZaY232TjuNU4Pw6CSiTWz7sk2Sq5D\"]},\"lib/universal-router.git/contracts/libraries/Commands.sol\":{\"keccak256\":\"0xa08ae7be62972a4f17779257641065d41fa5cc2d5fc7050e5e5b76fbda9e6a9f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0b94d73c5cd54aba5e1ad4ccfc33df13c1b04417f53fda188275fc15f95f02f2\",\"dweb:/ipfs/QmNpigDf9g9AAbFr27gug5hAZjb6iuFekRqXonC6upoEcp\"]},\"lib/universal-router.git/contracts/libraries/Constants.sol\":{\"keccak256\":\"0xb668498f11a4bb576a0a61c183da7ca348249dd9176c57dcb6532912b1b49b0e\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://87d8588baf0b7b72faec637843c7623ac416d45e0f7719d0a635afe7981b2cf2\",\"dweb:/ipfs/QmSu7Jr8JM6mab2dddk1UaiPhyLZvsA8iLxC9MEcBUaMzT\"]},\"lib/universal-router.git/contracts/libraries/Locker.sol\":{\"keccak256\":\"0xfccb45f77b5c66f0f417d803b4b3f7ae97206d8d850a383ab7d97f25d0617cc0\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b47f3f4e74961f8e9d918c2cc3514cb8d097caee6ab2c20c10735235dec440ec\",\"dweb:/ipfs/QmfTWUjP7g7zTw67C2RvoMhWRX6ExLNV3UYSb5LqfE4bqC\"]},\"lib/universal-router.git/contracts/libraries/MaxInputAmount.sol\":{\"keccak256\":\"0x2dd6efbcaf9991c852e29a726f9876a0a6d08f2271912e69efa5c6a5e8034739\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://949ebd746eee3589d1e466c738884bd3532043d9e8a7b77c1521a098ba3c69b6\",\"dweb:/ipfs/QmZC9idgGQDfLksqfz41FrcsVXhqkfRZCZH9MJXQkQavt6\"]},\"lib/universal-router.git/contracts/modules/MigratorImmutables.sol\":{\"keccak256\":\"0x666d1622a10509c69b679df9d175a3e0c176a62b9e18d1cee7634219aded8f68\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a88e472495d32648ba3e7964c4c88b68853b49540f40afbaf2ede6822372b49f\",\"dweb:/ipfs/QmQoaWbCpwFYCnRgehM7ruYaa7za8fBghT5aQCRCPYJr1V\"]},\"lib/universal-router.git/contracts/modules/Payments.sol\":{\"keccak256\":\"0x19a103b3269ee2f7bc28a6e1850091b2087dd2558662494d1104ac8e5ac68524\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://ba64c600f57bb13672a5549b6dba11ae4dfe49f688c24eadb3289dcc87d226a8\",\"dweb:/ipfs/QmWkmVyeai1WeymuWqEk1fQE5R2frrQQjJv81cytrKvFuA\"]},\"lib/universal-router.git/contracts/modules/PaymentsImmutables.sol\":{\"keccak256\":\"0x9ca2535b69b15d3bdb7a15871c5bca83f5536cffb0191c64f4c6a2db4a154338\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://dc85fb3ddd19481bf0d1a8a9f5d9631b396d86344a33e30b4c4ab6cd58d51169\",\"dweb:/ipfs/QmeEGFqfHFUo1Mu6tRfCjvVGJYyoDu29ZspZgxxcj6ykvq\"]},\"lib/universal-router.git/contracts/modules/Permit2Payments.sol\":{\"keccak256\":\"0x887ec1f57144cd91a1b86d5a7b1d1119146f41dae6865e6fd0e849801e968628\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://08b713e82f3f192976902497e1c02dd60bf7e90c83a471eb4c7ac7710b086f95\",\"dweb:/ipfs/QmWJSGZ9Dj7FmFCnDWpDdL5fx76JYDgYWhggXCroxV7cjX\"]},\"lib/universal-router.git/contracts/modules/V3ToV4Migrator.sol\":{\"keccak256\":\"0x5ee3774b749b9a8d851dc6074c8de8c61f408a4cfd829c47c753840c839ba91c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://337e17b84f4fdad7e32be0e482e7b2471d7f927ba3b3174cae38cf2509d97443\",\"dweb:/ipfs/QmbzgdyxAC5vpvWRGaemn3Qn7DRbNDjHSH3KbHSDPwJ8LY\"]},\"lib/universal-router.git/contracts/modules/uniswap/UniswapImmutables.sol\":{\"keccak256\":\"0xb810727f5e734a30871ff1d83d8c96d99150f1ce77bb39e032aec6254ca43cd0\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5eb9df8b6c81f8e33b8a6bace294ed0d81c541988f7ba42027e3041eff32e1bd\",\"dweb:/ipfs/QmVPSWBv7WegGySGV4BoewKKx7iAetHsjydxQyKk3dh5yw\"]},\"lib/universal-router.git/contracts/modules/uniswap/v2/UniswapV2Library.sol\":{\"keccak256\":\"0x829d48c1b69d2e1bc078a57aae8d87dc31d920b01c62d6268d20d517fd24150c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b87236ea4c1e64c12434f31abbd658ca3fc510ebe65be731d84d3ce8efa71c32\",\"dweb:/ipfs/QmUerjg5Ebt3pfQZtk2sArUy414gQtHwvFNgsQNe4PhxbN\"]},\"lib/universal-router.git/contracts/modules/uniswap/v2/V2SwapRouter.sol\":{\"keccak256\":\"0x0fcb6ad6c4d5a7b25054dd9951432b2b41cb2c0077e6bc7ca0d0416115ef2326\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://124b1dd54d27914306bdd1021e171111f0ae622fffb2974ccdee24eab31b359d\",\"dweb:/ipfs/QmfKr2sbxdc31aPWv9d6ETA4GyfqHiKVZRKqhREnMkR5j9\"]},\"lib/universal-router.git/contracts/modules/uniswap/v3/BytesLib.sol\":{\"keccak256\":\"0xc3c23e83afd06781c4a0a5c418c20c40611e71d049766eb70987007ce372656e\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://c62989beb75edad6de18c31be31eb68f0c3fb15c5f9e9bb380221afc6785fda5\",\"dweb:/ipfs/QmVEsp5yivbmjP7HcXS5kJ1XJY5Uic3J3y4zjpwD1SNySD\"]},\"lib/universal-router.git/contracts/modules/uniswap/v3/V3Path.sol\":{\"keccak256\":\"0xf6abbf4c7cd0975ddabb0ddb641ea9ae3b0cc1dd9a1cabf5e7cc271a974eabc2\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1e0987fc9b81c65eada64cb65f981680c2054e489a6049d397b5ecbbf4c9a0a9\",\"dweb:/ipfs/QmW7mbbHsfc2GLy2GkCUv3VwXV93y6UFtKDD7E9QEtzFH7\"]},\"lib/universal-router.git/contracts/modules/uniswap/v3/V3SwapRouter.sol\":{\"keccak256\":\"0x31fe8777a6de583c54a0f09ec11d318c253b7fe50c7a2af1608b2b89a03ca660\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://780219ff0d6d333727655719d31d61ce345cdbca7f906467a2d00e3162b3c0aa\",\"dweb:/ipfs/QmbauA5Kvj7m9P9hxe4hhnLY5w2TEXMMnCc9oWehVgj2jo\"]},\"lib/universal-router.git/contracts/modules/uniswap/v4/V4SwapRouter.sol\":{\"keccak256\":\"0x68b7666641ad5ba227b500c9845c4bc71eaaac6556d97d31d123fce41b51969a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://40a99bb5e9e407ad6741f5c210ac23a32950e7567c73f21975444e9729fc6cfb\",\"dweb:/ipfs/QmUK98HjyQ7NDGR36DD9owjLDk7ujEj5b5uKt9zjUsCFG5\"]},\"lib/universal-router.git/contracts/types/RouterParameters.sol\":{\"keccak256\":\"0x9efe9912d44e56cff8fc23e1411c80b47ffc9f5c0ad5ca5c66ab77a1b7ddfcbf\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://473acf49dc1be1ca997ad20258124e26e03b3cef15412a8827ecf9b52e4cef21\",\"dweb:/ipfs/QmaGR2QL6im4XYJpubqhUuP82nFytemX7wwEk4cXECJYJN\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56\",\"dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0xa72de315bd655a0fd5043ff97c7fd3868a1b5b1986afd75c6f5f8fd0f904985f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8838e68aba9caf2b2cb13bd4cb661b1f9c167cca4dfcd50ac72ae96691392df\",\"dweb:/ipfs/QmfLq3cmsSQTuLLxiF4bgceaf2jx8CoiVXQd7BZXGgJG1E\"]},\"lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol\":{\"keccak256\":\"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b\",\"urls\":[\"bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf\",\"dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH\"]},\"lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"lib/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652\",\"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"lib/v3-core/contracts/libraries/SafeCast.sol\":{\"keccak256\":\"0x4c12bf820c0b011f5490a209960ca34dd8af34660ef9e01de0438393d15e3fd8\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://fed11489e218e55d087d42b4f350a30e10cd2aedec8f432bd3cc712f648d5869\",\"dweb:/ipfs/QmWfRnRxyXwHUDcTQPazxYYk5jxErGeQqdvnYtyg5nBPbU\"]},\"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\":\"0x4c9571aed0c2b6ef11832545554fc11ffdb03746daaf5c73683c00600bfc7ec0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e78b34b58ce9de91b91943b4f3cc3ce121d0b151e123e8a600ac5ef64d91db6c\",\"dweb:/ipfs/QmRkaQnPCYwLrXgbpGujJTx32PaZK63KSPJJV1XmnQuCMb\"]},\"lib/v4-core/src/interfaces/IPoolManager.sol\":{\"keccak256\":\"0x3534f00531038e77ab8a7fc4d0a6e0993ee53fb7a396b1324ad917318ea46cea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4a7e771828dc40848485b568a1cf514f553ace6653f4f4d1ad3f3e9cdb6c27\",\"dweb:/ipfs/QmTjzQ7KVYnrEWtxPER2E4MXzycgcznfzSDsZtd5turk5V\"]},\"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/CurrencyReserves.sol\":{\"keccak256\":\"0x1576616129933fcdf3b684cea33cffd9c95e18fafbd2832a8c48ac3d8526d4c3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://33b050efb9b81803b18f562271e7cca2ec5362c4d505860d6419b4a345636725\",\"dweb:/ipfs/QmQtFtTwKZ5pFVGD2ENDUXvp7ECFvzqeCuJ1miJcUHdmiX\"]},\"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/Lock.sol\":{\"keccak256\":\"0x9338be4b5695f1da5f3d3f7a3eeaf7a356c1045458289586ac0cbe9cef77c6d5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://485ec42ed6155469d612a9a0c18068ebfbad74448792a338a435503de3ef1b2c\",\"dweb:/ipfs/QmVnnv5u74MYatfRmBgrcfFYQcsMAJMG9jQ6ju8UiydKNF\"]},\"lib/v4-core/src/libraries/NonzeroDeltaCount.sol\":{\"keccak256\":\"0x0666ebd5d3528d7d52c48538296367a4cff97a578cf13365c51983fae3219b87\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://d27f1be3bd09d85c53d3e6a539dd6529ddd8b2b764ccb47fd7765fc81f9add59\",\"dweb:/ipfs/QmQdZujNXhKEXQBkKtF5jbdvo1yXMqPDUoBBaF9S5u3Kpm\"]},\"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/libraries/TransientStateLibrary.sol\":{\"keccak256\":\"0x7d1e0875747bd89b32c25f1a48da2766e5f4aff1f671ad5f3c0c07ebbbcb946a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d76cfeb1cb60595b41ecc51c8a12fb4bf63a7fc733d0b1a2e3adb55abeb1f9d5\",\"dweb:/ipfs/Qmb8oX7DtsRpw3tTtdWZwGhauj1evq43d3PLwe4nSDAKkV\"]},\"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-periphery/src/V4Router.sol\":{\"keccak256\":\"0x8ede1e538ae9b74984c52347a3bbaee7b3d69f00ed9b3a6db1f1bd6e058a2326\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e370416fa9681ad124414e2b2fb57a5455e15dd873c9e61c964177ae5c2d544\",\"dweb:/ipfs/QmWrM97ezNB9CpawqhkwpubXHcXUbMFWKYEbD3D6EyAe1w\"]},\"lib/v4-periphery/src/base/BaseActionsRouter.sol\":{\"keccak256\":\"0xca1ee500f88951ad351d18ba2adfb5fe23abef6d502f234ce5748a3497674a4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f03ab458be27c29cef1b7ace5b11517d3fef8bf6131af7dd80d6297c224cf71\",\"dweb:/ipfs/QmYoH6o8yeRzbeLoaMG9TjS8q2Fw7T1h4vXvvMnp3XfsUa\"]},\"lib/v4-periphery/src/base/DeltaResolver.sol\":{\"keccak256\":\"0x94a2da2be5c924df65a8e1e29f585bbe4c37777fedd43b45989c66d509a4a83c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42bba590f6e817fd56328b74ae99bfdc4df57386d0a69ee22b9108341953ed36\",\"dweb:/ipfs/QmdusastK7FWYouLz9gvV5J3z8MQbNKLJNNHTrc1vi7DWw\"]},\"lib/v4-periphery/src/base/ImmutableState.sol\":{\"keccak256\":\"0x1867c9fa2f9b4fa73bab0fcdc9d19ccef4eeac552273d8b84a170cd1cc90350a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af2d699b439e13b599632fddfe82718aebd41055fba7c075f186675c588d1337\",\"dweb:/ipfs/Qmc111gckSKb9aESn3wRFLeLiS4KGujaUcaYJgRnCRfwQU\"]},\"lib/v4-periphery/src/base/SafeCallback.sol\":{\"keccak256\":\"0xd78b583df1b9ee06d58e83b84fc9f08971389b34dd34bc13db072e0c13c710da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0a47f4bcd6060c4462153b9a7c52a60a460ace91acb6ddd5492eab28ec26173\",\"dweb:/ipfs/QmdRCTRS1dhFjWEy6z577j4xz9J5HPfHBwcNzAic8G59oT\"]},\"lib/v4-periphery/src/interfaces/IEIP712_v4.sol\":{\"keccak256\":\"0xd7f7115476e307a0bfc32a0f0a0f5434e9e5ca62a6c5af1e18b75e48161bb408\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1600b953556da38a7adc5ad2a2925ec5fb138fecf8eec48743646543195b736\",\"dweb:/ipfs/QmarZi2aiLVAfHXgnDWV1cCFiZk2DdPW7KJnWHqzuRChJR\"]},\"lib/v4-periphery/src/interfaces/IERC721Permit_v4.sol\":{\"keccak256\":\"0x103adbba724ef536abc536fe8a4d7dc12880724c562109b69f2adce4a91fa017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06f51b5a5a218e0bc866a83e7821be53c9db9de0ca921f16abd3d13ea0eab69d\",\"dweb:/ipfs/QmbnhLy992hpQZyphTkj7fpr6jKKVva2AzfmLiDZEuqHAk\"]},\"lib/v4-periphery/src/interfaces/IImmutableState.sol\":{\"keccak256\":\"0x36ab3100e87457ecf04887f4f540e34fd7f21d8e3b83880cb679239e60b7b06b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f290c7ce8e4832608d637a51b13dff95abecf6549485448e647a11c8ed01341\",\"dweb:/ipfs/QmfD1R6mTp8j4EjQXmQZW3vCh11EYFjnvoaw8rXRP27mMq\"]},\"lib/v4-periphery/src/interfaces/IMulticall_v4.sol\":{\"keccak256\":\"0x336bec303f7ff86497d2679464c5adad5040f412b3d0769ce5e1d2a42f7e2c08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7734f047d98d331c8abc51ad9f358ceee0a6dcae8d89ac49084b84de0d2d42e7\",\"dweb:/ipfs/QmWij2h7mU36LsXhb9P6pkYXrSCua4ixeWaVFSrsEcEmPQ\"]},\"lib/v4-periphery/src/interfaces/INotifier.sol\":{\"keccak256\":\"0xfdc5187a98240a1691aae98b7dd2444d4c2bfb4746f3c34de9f3d18399c17c5e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://683af56401ec4f8817e8dfe150e7b3febaf0baaf40efe8d0d0475f735275f746\",\"dweb:/ipfs/QmRQ6S3nFnSc2jjDcQTvUJdTf4xKPojmvCkpvgyr6qTuVV\"]},\"lib/v4-periphery/src/interfaces/IPermit2Forwarder.sol\":{\"keccak256\":\"0xfad472937280e861125ff12aa6f9c2cf7440fbb20a2cc29485c24662ad4279c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31bfbc331f5972fc373d9469fd1ca1d14818db3275f21b7b590f20820cb4439d\",\"dweb:/ipfs/QmX3Bv9wfYpAFZKBcxKsQSXUrSC8mqNBdzh6XVMS72aNx9\"]},\"lib/v4-periphery/src/interfaces/IPoolInitializer_v4.sol\":{\"keccak256\":\"0x2e4feda94650a2642039e0309ffdec480ee050bc40864bf5e1dba42bb4dc9e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://964c178b4da8bab9ef898b94bb26d7c17cc44c5cf20485f55dcf5e9c7e1b1d92\",\"dweb:/ipfs/QmVd2c3SYteyr5xZgUS4sDAiZF43dLwVAEKdCfvQbkZpRJ\"]},\"lib/v4-periphery/src/interfaces/IPositionManager.sol\":{\"keccak256\":\"0x62dfa0cbee8314ee7e6787db8bc1d364245c340f940875ac7ff11e89d074fc7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26f560c77d8a187bf93a710b827e3167eab3446922192fa8f92f208da2103834\",\"dweb:/ipfs/Qmbzp5gSYdTpMBF9aAb2GraxMEQZb5LRJCyg8VaRUyjTFc\"]},\"lib/v4-periphery/src/interfaces/ISubscriber.sol\":{\"keccak256\":\"0x34ceadec4a63019680e543fe73197f198a55c825d86e18f327840354760b57e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31734feafe1fe162a0702ddf862fcc3bd97505931afb3c685033c0185d898051\",\"dweb:/ipfs/QmQEANYVyaXTNzXKcjUVfPhLU71Bix5vxQH75BpPWMkWgw\"]},\"lib/v4-periphery/src/interfaces/IUnorderedNonce.sol\":{\"keccak256\":\"0xd7f32fee74dc7d1a3b078ca1263961baccaa6bf434c79e8fe0e092e30c3e0ec3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7d1e92d89d5f49c84aa82f3b259678c2c97a4473b22d753ca4411a6b0cec36d\",\"dweb:/ipfs/QmNZoQyminStaAdaLqoDLoWaBU5QWrWjXFjmBm4aFhzL8i\"]},\"lib/v4-periphery/src/interfaces/IV4Router.sol\":{\"keccak256\":\"0xc4133fae25e61cc2447d7331729f6035322d7c1fe26b39b225422bf98cc63459\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c24ff8428504e973e947a059f96289a66c520cd7f8ef47a3224f9cb6abdaf25\",\"dweb:/ipfs/QmVqxYnngWXXcCiuTC143vTEJrjZK5NXWB92pjvVbuJBQ5\"]},\"lib/v4-periphery/src/interfaces/external/IWETH9.sol\":{\"keccak256\":\"0xe88abf12501ac275619aec0687240a07d26968aecbbcdfea88ba8bbd5d6e5e14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7097065d4492b4eccb1a73f99af1e5bec45404c6b973b8f5965c4c91403f5f92\",\"dweb:/ipfs/QmZK8oEqmjmTqhBoh3D3fBpyKGkUEFnptY8xwH9xpNjDm2\"]},\"lib/v4-periphery/src/libraries/ActionConstants.sol\":{\"keccak256\":\"0x3d6f0e5b4a7b1e60bad93e73dce5db67fb66bebef11c31ed8355014a79aa03b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6dfa42e24b1b5c7f66e75304ab034fbb6768518eb2410ccfff8b3defdd1658f2\",\"dweb:/ipfs/QmQQ7fud9mmv7PEWPAQiNzeZhNkWf28Z6nCHc2e6WJFfa7\"]},\"lib/v4-periphery/src/libraries/Actions.sol\":{\"keccak256\":\"0x8efd4b8b289177ee27e557d9d0a5a9f973d66fe1eb1ef8959d316b11987ca830\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07fe35f194eb99465028f0546359befea574d844da53767d32f22b233c3bcc98\",\"dweb:/ipfs/Qmc19631uFxABTHAbGrDrroexi9GdyxWntaum1v8npPYz5\"]},\"lib/v4-periphery/src/libraries/BipsLibrary.sol\":{\"keccak256\":\"0x37ebf99f5d086d9d9f6e7cecbf4d62167f47c63c30248cfcb921e828f0d7a359\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4f8e68a66bb6c166d72cdba6ed6fb83a93f713b79c2c572e8058084eb90ab6c\",\"dweb:/ipfs/QmY32FxtSBRf9PJzNUVzXqFY4i2ApTPHTUMpCBGovd2zo3\"]},\"lib/v4-periphery/src/libraries/CalldataDecoder.sol\":{\"keccak256\":\"0x26df49e13fb5410fd4db253cca877dfdfb3a1ba03e394d054c0e0514a88a56e5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72a0c98c52171708f332f83d517deeb97fdd50ecf28f2510e1866e54593a6ff8\",\"dweb:/ipfs/QmY4LiDUfSKGj86nML7B6a8euiPciUqwYehasAyAVnMCHq\"]},\"lib/v4-periphery/src/libraries/PathKey.sol\":{\"keccak256\":\"0xbbd79ffefe045f025263e389539021266fb4d371463aefba405e1ff1d3fcf9bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d1c47b81a01218be46ee79f0a8837095479b94dc5cfd18abbf2006709f0ea89\",\"dweb:/ipfs/QmRb6CQ13Zp7f3WF5jbZtsF2szhxpPgcuWs9mjwQXxzqtg\"]},\"lib/v4-periphery/src/libraries/PositionInfoLibrary.sol\":{\"keccak256\":\"0xc5ddf96bd088bc87ea50a20f907fc932fb28397a42682a301b268a11b7f34078\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7dfeb4dc747537240f8167243e8066b6f5f08057386fb8bda93f82973fc18ad6\",\"dweb:/ipfs/Qmby9DAAaHj8hjsMUnqY3vjqCHKGAKrT5EULMmeGcjbbGx\"]},\"node_modules/fhevm/config/ZamaFHEVMConfig.sol\":{\"keccak256\":\"0x41782f4c707b81399916544fa2e7be94a695fa4ba468542732d29d3e383c0315\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://45a95a55c4bbb3418c2133cba6ed21a9444bb4e38d38b32cc707b7493cece2ca\",\"dweb:/ipfs/QmVU8EKmZgscdM43RgXD4EgbVMhQxBusTmBren3pbn1pUW\"]},\"node_modules/fhevm/config/ZamaGatewayConfig.sol\":{\"keccak256\":\"0xbed8bc18db61ffeb5ee31f577ab636d8563df27554e0ca66c53534f0bd82ffbd\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://53601967f9e914b25cf91a325b100d5b3cbb9aec92d12443062a51fe5a578b7d\",\"dweb:/ipfs/QmNbviWrrPrx3snoLWqW5GyBnH99tSX3iYXEJ5ezk9XbtL\"]},\"node_modules/fhevm/gateway/GatewayCaller.sol\":{\"keccak256\":\"0xd19fd7715f0c5b479bf0cd8e3108cc8da7deae2d4fc7fb5ab089ebf2d76a0652\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://6386c509464cefe5a41903ca837da46a21b8042d13ccde656158efc48cd70ea8\",\"dweb:/ipfs/QmUn7C6aZwKmEmKsphBshBezXXGZtLMyfaeZAyuZoRsBWU\"]},\"node_modules/fhevm/gateway/lib/Gateway.sol\":{\"keccak256\":\"0x9585a649e3001a4b8768ab6e2597b416f680bcc537309cd50b60e023e9791318\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://a1b055bfb067cc247d4bd60b5f8348f667cbe79717a5753cd6412955277345d0\",\"dweb:/ipfs/QmTveBaQg9GUdtrrxcR4RsiyAEmoEKGL4gn6E1gThR1ph5\"]},\"node_modules/fhevm/lib/Impl.sol\":{\"keccak256\":\"0x89d4968cd956a8931f1a8a177b3bef1c6cf88a03665083db74430add50b88f21\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://aaaef2c82d56dacfb08946842ea1ce26757d13f3251de62fa79222232dfcb43c\",\"dweb:/ipfs/QmQ6QZPxJw9jb3qjRYCX7pMQVoYogjTsYgmdEnB3EnwFRy\"]},\"node_modules/fhevm/lib/TFHE.sol\":{\"keccak256\":\"0x221799c8332f83ab65a0b71746409f0c2c89f1cd8d9ba4091d967c667e1df734\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://2dba387fbc612a2ee64063b0ee6c27304b3944423d11045acc50abd84577fb5f\",\"dweb:/ipfs/QmThptDGnpd8PuncFk1rnQoCzEqwUED622yC9xZgFhwY59\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_swapsManagerProxy","type":"address"},{"internalType":"address","name":"_markerDataFetcher","type":"address"},{"internalType":"uint256","name":"_defaultSharePrice","type":"uint256"},{"internalType":"uint256","name":"_feeDivisor","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"stablecoin","type":"address"}],"type":"error","name":"CurrencyPairNotWhitelisted"},{"inputs":[{"internalType":"address[]","name":"indexTokens","type":"address[]"},{"internalType":"address","name":"stablecoin","type":"address"}],"type":"error","name":"IndexFundAlreadyExists"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"NoPriceFeedForToken"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address[]","name":"indexTokens","type":"address[]"},{"internalType":"address","name":"encryptedStablecoin","type":"address"},{"internalType":"address","name":"stablecoin","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"createConfidentialIndexFund","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"feeDivisor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"indexTokensAndStablecoinToIndexFund","outputs":[{"internalType":"contract IIndexFund","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"marketDataFetcher","outputs":[{"internalType":"contract MarketDataFetcher","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"stablecoin","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeWhitelistedTokenStablecoinPair"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"uint256","name":"newDefaultSharePrice","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDefaultSharePrice"},{"inputs":[{"internalType":"uint256","name":"newFeeDivisor","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setFeeDivisor"},{"inputs":[{"internalType":"uint256","name":"newFeeDivisor","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setProtocolFee"},{"inputs":[],"stateMutability":"view","type":"function","name":"swapsManagerProxy","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"tokenStablecoinPairToPoolKey","outputs":[{"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"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"stablecoin","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"whitelistTokenStablecoinPair"}],"devdoc":{"kind":"dev","methods":{"createConfidentialIndexFund(address[],address,address)":{"details":"The function first checks that a pool is referenced in the factory's pool map for each token-stablecoin pair","params":{"encryptedStablecoin":"The encrypted version of the stablecoin that the index fund is denominated in","indexTokens":"The tokens that make up the index fund","stablecoin":"The stablecoin that the index fund is denominated in"},"returns":{"_0":"The address of the new index fund"}},"owner()":{"details":"Returns the address of the current owner."},"removeWhitelistedTokenStablecoinPair(address,address)":{"params":{"stablecoin":"The stablecoin in the pair","token":"The token in the pair"}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setDefaultSharePrice(uint256)":{"params":{"newDefaultSharePrice":"The new default share price"}},"setFeeDivisor(uint256)":{"params":{"newFeeDivisor":"The new fee divisor"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"whitelistTokenStablecoinPair(address,address,uint24,int24,address)":{"params":{"fee":"The fee for the pair","hooks":"The hooks for the pair","stablecoin":"The stablecoin in the pair","tickSpacing":"The tick spacing for the pair","token":"The token in the pair"}}},"version":1},"userdoc":{"kind":"user","methods":{"createConfidentialIndexFund(address[],address,address)":{"notice":"Create a new index fund"},"removeWhitelistedTokenStablecoinPair(address,address)":{"notice":"Remove a token-stablecoin pair from the factory's pool map"},"setDefaultSharePrice(uint256)":{"notice":"Set the default share price for new index funds"},"setFeeDivisor(uint256)":{"notice":"Set the fee divisor for new index funds"},"whitelistTokenStablecoinPair(address,address,uint24,int24,address)":{"notice":"Whitelist a token-stablecoin pair by referencing the pool key in the factory's pool map"}},"version":1}},"settings":{"remappings":["@chainlink/=lib/chainlink/","@ensdomains/=lib/v4-core/node_modules/@ensdomains/","@httpz-contracts/=lib/httpz-contracts/contracts/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@uniswap/universal-router/=lib/universal-router.git/","@uniswap/v2-core/=lib/v2-core/","@uniswap/v3-core/=lib/v3-core/","@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/","@uniswap/v4-core/=lib/v4-core/","@uniswap/v4-periphery/=lib/v4-periphery/","chainlink/=lib/chainlink/","ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","eth-gas-reporter/=node_modules/eth-gas-reporter/","fhevm-contracts/=node_modules/fhevm-contracts/","fhevm-core-contracts/=node_modules/fhevm-core-contracts/","fhevm/=node_modules/fhevm/","forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","httpz-contracts/=lib/httpz-contracts/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","permit2/=lib/permit2/","solmate/=lib/permit2/lib/solmate/","universal-router.git/=lib/universal-router.git/","v2-core/=lib/v2-core/contracts/","v3-core/=lib/v3-core/","v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/","v4-core/=lib/v4-core/src/","v4-periphery/=lib/v4-periphery/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/IndexFundFactory.sol":"IndexFundFactory"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/ConfidentialIndexFund.sol":{"keccak256":"0xf62f83a51f7ea367de12060b0e59b9e6b29d4ffa8ee96d78be95ea89fe3cc7bb","urls":["bzz-raw://32de52e65aed4946dc982aa71f5fe44f7180c2acf7dc35cbfb430e27c67f9268","dweb:/ipfs/QmNwahRXDsPAss1bTjCzztHnFCrsgHQHsaKu4B2e8KjLRr"],"license":"MIT"},"contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol":{"keccak256":"0x08ddec3305fabf65ffe2c18949b1b18f4ce0aeafd7bb8f68faecf4da9bfa18ab","urls":["bzz-raw://e73a281abe6706aa53fc031839d0fcb73c028f0be2c2ad5428aa4880ca072805","dweb:/ipfs/QmZc9KQXzYstBAKKPye7w5W3jBX1a56G9kCAPs58nkHvFg"],"license":"BSD-3-Clause-Clear"},"contracts/ERC20Encryption/ConfidentialERC20WithErrorsWrapped.sol":{"keccak256":"0xb663d8df9afddc4ea27c24e893b00df774475852dff3f70064161fcdf14f5628","urls":["bzz-raw://8a19c179384889016ab8061d809b37b78f13257b363f0d3c6910dc0c62d261b3","dweb:/ipfs/QmaA6ddxxLYEqpwUAfCJCH2JENXAEuKGNSf9w7zG9WmQwR"],"license":"MIT"},"contracts/IndexFundFactory.sol":{"keccak256":"0x874beb76d89c637595dd74734a0f89052c94ae41bd0df19ad00a674f74b79d45","urls":["bzz-raw://87c4d8dfa8a3b627f7f0f1b3011780bf014b79867b84e48edf7857cc99ddc115","dweb:/ipfs/QmPe4RkpmtHHmX9fq92yz5FWtKuNr7d6HYiJn7E8UyobXu"],"license":"MIT"},"contracts/IndexFundToken.sol":{"keccak256":"0x42961a70f9142f4e63aaf154379b9023cacca1fd43b6514678eaee59f8fb9890","urls":["bzz-raw://ef1350bcd4141746855a9226d633ad4ac1be64c24d8b5ca8a1e09a7c0064d191","dweb:/ipfs/QmVAK66Y1euBYi18MuSRsUP642x7BhoFQFEkQaUifPvdAX"],"license":"BSD-3-Clause-Clear"},"contracts/interfaces/IIndexFund.sol":{"keccak256":"0x1d9c8fd5bded96f70982cc51fb43db3438989a87fa1513cee239d3e6773489e7","urls":["bzz-raw://c627498c9d3ebda35fac237c30a8151fc2f7a6b1bf39443e4ca9be2766d3d4f2","dweb:/ipfs/QmShbn35ZYr12d5TChnDsu9u6YtC8EDivzVZp5tFc6bVoM"],"license":"BSD-3-Clause-Clear"},"contracts/interfaces/IIndexFundFactory.sol":{"keccak256":"0xdaee28098d25d209508346539130902d9e08f32b24aa18fe915c50a829dd62ac","urls":["bzz-raw://1c6a9ccf80750ad63e7a5cdff241d17130ab3e66e41e6647b10504abbf37fb76","dweb:/ipfs/QmRFJFDzeATHcLQCU6yXxVDThzm2xRZaGDZXFaCZK4aVs8"],"license":"BSD-3-Clause-Clear"},"contracts/interfaces/IMarketDataFetcher.sol":{"keccak256":"0xa5343d6d80de89e9e259d51e9fd50444de43f61f6da31c26ad6f49029a47481a","urls":["bzz-raw://e7fb90369df691fd542180e13cc7a881b46ef86dc1fdac4622d19cb292059112","dweb:/ipfs/QmUnvC7eyCdg83tARSBSoEDPKjZHJZ4mKFWdPwSycki3KL"],"license":"BSD-3-Clause-Clear"},"contracts/interfaces/ISwapsManager.sol":{"keccak256":"0xa98bd09c0946399a4f4ae05e713b3207593528df54e8695a4aa4db885b47e894","urls":["bzz-raw://eca854b1cf38859c81648a4bc824aa8e8e7a6347a3b902ceff0d2eb98cff384d","dweb:/ipfs/QmTFzfKREewMg1xjbuCU5DDPbq8Wi1euCzpE2xJ8RAeJi8"],"license":"BSD-3-Clause-Clear"},"contracts/marketData/MarketDataFetcher.sol":{"keccak256":"0xa756f8531752b5c71493a2c2ff98b3eb75add8b08f925d85313a1ee0c74f4268","urls":["bzz-raw://2d16ae4cd7db8402c01772c5e11d68616e572f6d1f52167b3ca3749d3844a2d6","dweb:/ipfs/QmbcxnqiDkBNhBCRQd9w7qjU2nC7nTUw9QGqWPiVoZ5DRP"],"license":"MIT"},"contracts/swaps/SwapsManager.sol":{"keccak256":"0xbf9c74550a5d7f91c56cb8832f5240c1f3e96316ddc67d9391409f1799234071","urls":["bzz-raw://35c8df81cc2c3fc11287e39be63e97601a943caa10f753add2e05e867ca3171e","dweb:/ipfs/QmVE1svFQVypEFKwSbCbEfVVL5jovsocpKidNSoyFD9g4j"],"license":"MIT"},"lib/chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol":{"keccak256":"0x257a8d28fa83d3d942547c8e129ef465e4b5f3f31171e7be4739a4c98da6b4f0","urls":["bzz-raw://6d39e11b1dc7b9b8ccdabbc9be442ab7cda4a81c748f57e316dcb1bcb4a28bf9","dweb:/ipfs/QmaG6vz6W6iEUBsbHSBob5mdcitYxWjoygxREHpsJHfWrS"],"license":"MIT"},"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol":{"keccak256":"0x8b45e5bb2fd9212f99e61b4d25b9c9d5ed7cb1a9a684aac34f752c568ef16c76","urls":["bzz-raw://1ca71bb5bfbb2f8a0779f8394baeea01680619637abddb572017d05d96862591","dweb:/ipfs/QmPCzGBE1m6WtDZxrVL5jzkduNaS7fjtYovUWdnzN34qjh"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20Wrapped.sol":{"keccak256":"0x7e178a03b7f034532497a8b762069fff0808277befc880e4a3236938ba1380a7","urls":["bzz-raw://7250476c961801e579719fd0201a3ff6bfdc79e8324db34d5ec0c6cecc281281","dweb:/ipfs/QmNsTR2Rk2FRS3cTNf7WeN3UzPZy6HSj1SFV3Nuwz8Rpzi"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol":{"keccak256":"0xe016a085f72ca3cf6d78ec1cb2182a398106cb7d425e984776a9caab0bad2569","urls":["bzz-raw://3e79dc5075469d660908f5f8b6d0c863b14459d60a0b06fb786d58de8cf30a94","dweb:/ipfs/QmePGRGtoWBnQ8T6ZRyZgiwVh4r67kcmWejwKgjyYN4AAY"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20Wrapped.sol":{"keccak256":"0x72c5379fb2a7e1701a4686f60831bfc474350a42f0660aea815a5ce910cba38b","urls":["bzz-raw://118fac79c89e142247e94763a1ca1235c307a67b37d68fa45d94125bc85c2cb8","dweb:/ipfs/QmcE9P74NQQKnmW9vdtGb8KrWgJWH6K3bNTdrMxrPi716c"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol":{"keccak256":"0xfe322c8f9a8e4fba881715901a5bafd2efa23394ecbc9ec84282818baeff0a07","urls":["bzz-raw://13dba831528dd16408b7abab23eac0664a2a3e5ecbfe5e58e6e321cf2921668a","dweb:/ipfs/QmPq4YeugbayWfeBJR8H7s4jHsnZkACQX2xbdNQ4sdvZrk"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol":{"keccak256":"0xecc6289a9791bef254911393b51d2bfbddc5650ede7fbe7b5cc2b8d3eb01d7a6","urls":["bzz-raw://7463278a20bc5d7fd8b7ec2cb8e592b2d1e0afcf8b59d35d6929d18661d4b38c","dweb:/ipfs/QmTKPoABwNDmK7g7vkti1AkTpkUBHu3iX3zsXQsEuSiqBM"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/utils/EncryptedErrors.sol":{"keccak256":"0x0b8d08f392884add1af672018359e8980ee0b5e1662fe5e36eb31f053d1d4505","urls":["bzz-raw://2903dd49a88b36aba2e8a45548b6a68d203887356ebdf452b10e0148954ba1a5","dweb:/ipfs/QmTRuP4QXagoV2cLr2ctzFtNK7FK1cDXMYm4feMoMsYoWG"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/utils/TFHEErrors.sol":{"keccak256":"0x5fef7c2d7d4449d724a2800b37dfcc61e2b635f2747378ce222b9187425f2d13","urls":["bzz-raw://7c2ef113faaec2d74c8d958f80687d0b676082d6231720917aaa8aa934d689a3","dweb:/ipfs/QmNn474JDQ5zvVDwEuicJs6Xq8YEXWGZLoW4KeTWDVG31f"],"license":"BSD-3-Clause-Clear"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xd861907d1168dcaec2a7846edbaed12feb8bad2d6781dba987be01374f90b495","urls":["bzz-raw://12ff809243040419e2fc2aa7ef0aaa60b3e6ebc901553ba1de970ceeef208c4c","dweb:/ipfs/QmX2dwMVNrQAahqVzEx94gqcVB6Z8ovifPYdEfHZzj7aEb"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308","urls":["bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80","dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606","urls":["bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1","dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol":{"keccak256":"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c","urls":["bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0","dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x8decfa54cec979c824b044b8128cd91d713f72c71fd7dfa54974624d8c949898","urls":["bzz-raw://271f914261a19d87117a777e0924ada545c16191ef9b00cc40b0134fc14ebc70","dweb:/ipfs/QmdvVNWHGHQrGGPonZJs5NuzTevTjZRM2zayKrDJf7WBA2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x6ef9389a2c07bc40d8a7ba48914724ab2c108fac391ce12314f01321813e6368","urls":["bzz-raw://b7a5cb39b1e6df68f4dd9a5e76e853d745a74ffb3dfd7df4ae4d2ace6992a171","dweb:/ipfs/QmPbzKR19rdM8X3PLQjsmHRepUKhvoZnedSR63XyGtXZib"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330","urls":["bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf","dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x4ea01544758fd2c7045961904686bfe232d2220a04ecaa2d6b08dac17827febf","urls":["bzz-raw://fabe6bef5167ae741dd8c22d7f81d3f9120bd61b290762a2e8f176712567d329","dweb:/ipfs/QmSnEitJ6xmf1SSAUeZozD7Gx7h8bNnX3a1ZBzqeivsvVg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de","urls":["bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff","dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xaaa1d17c1129b127a4a401db2fbd72960e2671474be3d08cae71ccdc42f7624c","urls":["bzz-raw://cb2f27cd3952aa667e198fba0d9b7bcec52fbb12c16f013c25fe6fb52b29cc0e","dweb:/ipfs/QmeuohBFoeyDPZA9JNCTEDz3VBfBD4EABWuWXVhHAuEpKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3","urls":["bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a","dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol":{"keccak256":"0x534bf5c25d6003a8ce50b400d20fa460c03169ad7baa90d47a912917c36dfe2b","urls":["bzz-raw://cc0cc39c40ea23d3c46e8517e19ebdd877719d3159fa032f2a91802cdd205c79","dweb:/ipfs/QmSoNh7HTkD4TJcBkBKSGSPMMpLUZKE7s9f2G6mjdaJywg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x44f87e91783e88415bde66f1a63f6c7f0076f2d511548820407d5c95643ac56c","urls":["bzz-raw://13a51bc2b23827744dcf5bad10c69e72528cf015a6fe48c93632cdb2c0eb1251","dweb:/ipfs/QmZwPA47Yqgje1qtkdEFEja8ntTahMStYzKf5q3JRnaR7d"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1","urls":["bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889","dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/permit2/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0xcdfd8db76b2a3415620e4d18cc5545f3d50de792dbf2c3dd5adb40cbe6f94b10","urls":["bzz-raw://57b3ab70cde374af1cf2c9888636e8de6cf660f087b1c9abd805e9271e19fa35","dweb:/ipfs/QmNrLDBAHYFjpjSd12jerm1AdBkDqEYUUaXgnT854BUZ97"],"license":"AGPL-3.0-only"},"lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol":{"keccak256":"0xbadf3d708cf532b12f75f78a1d423135954b63774a6d4ba15914a551d348db8a","urls":["bzz-raw://88ac8256bd520d1b8e6f9c4ac9e8777bffdc4a6c8afb1a848f596665779a55b4","dweb:/ipfs/QmXx7X1dxe6f5VM91vgQ5BA4r2eF97GWDcQDrgHytcvfjU"],"license":"AGPL-3.0-only"},"lib/permit2/src/interfaces/IAllowanceTransfer.sol":{"keccak256":"0x37f0ac203b6ef605c9533e1a739477e8e9dcea90710b40e645a367f8a21ace29","urls":["bzz-raw://e0104d72aeaec1cd66cc232e7de7b7ead08608efcc179491b8a66387614670b0","dweb:/ipfs/QmfAZDyuNC9FXXbnJUwqHNwmAK6uRrXxtWEytLsxjskPsN"],"license":"MIT"},"lib/permit2/src/interfaces/IEIP712.sol":{"keccak256":"0xfdccf2b9639070803cd0e4198427fb0df3cc452ca59bd3b8a0d957a9a4254138","urls":["bzz-raw://f7c936ac42ce89e827db905a1544397f8bdf46db34cdb6aa1b90dea42fdb4c72","dweb:/ipfs/QmVgurxo1N31qZqkPBirw9Z7S9tLYmv6jSwQp8R8ur2cBk"],"license":"MIT"},"lib/permit2/src/interfaces/IPermit2.sol":{"keccak256":"0xaa631cc9f53e699301d94233007110a345e6779011def484e8dd97b8fe0af771","urls":["bzz-raw://fc0502cf19c9c18f320a3001201e89e350393b75837f6b7971de18b2de06f30d","dweb:/ipfs/QmT9SfhdJ7VJNNrf94g4H5usyi7ShqWGx7Cqsz9jZTjX96"],"license":"MIT"},"lib/permit2/src/interfaces/ISignatureTransfer.sol":{"keccak256":"0xe6df9966f8841dc3958ee86169c89de97e7f614c81c28b9dc947b12d732df64e","urls":["bzz-raw://3d4eafdee7f48c3be8350a94eb6edd0bfb2af2c105df65787a77174f356c0317","dweb:/ipfs/QmY1j2adeeAhNpn6cUuthemxGCdLXHTfyMh9yTKsY4mZ2d"],"license":"MIT"},"lib/permit2/src/libraries/SafeCast160.sol":{"keccak256":"0x8a34e2beac108d74f89510c949983212b5f09307a93ee9e17a9d50e93f6bc8e9","urls":["bzz-raw://828697f9567ce617c5c1c8f76b6bcd250e93aea2c4f3ee188be6dff8443c19e7","dweb:/ipfs/QmafxeSPhUc9gGtNDLAw26oZooC5XNLhDMxHxYhJxL5Nwi"],"license":"MIT"},"lib/universal-router.git/contracts/UniversalRouter.sol":{"keccak256":"0x5c7515720fa9b429bc83f0044f3a02cdd065fe1773b9fd32151dc5ff9042d368","urls":["bzz-raw://dd77517f3a73a07fdff8f3a52c268afca749a678ea11442140d401eb102f4404","dweb:/ipfs/QmeJiwCtgF1rMB7Foi6PrqWEaXktztPGQfHoAsw1BRhLU3"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/base/Dispatcher.sol":{"keccak256":"0x1564339a5163c5d27f06a64f994a7457b061aa0f5046377bcc5078cd6907cc5d","urls":["bzz-raw://82dc3ed71c19d6e5d1f72304e62e360954fc40a4d92a2a94e862c5474490d58d","dweb:/ipfs/QmcNamJcGijcEetbHWVJHNjSE2WCyQsmEGEGDg9ZNwqSjR"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/base/Lock.sol":{"keccak256":"0x92f953dda0d671178d054eeb3915b70f8ba80be33df8670a9146af4a4bc2c6ac","urls":["bzz-raw://f73faac9532c8a8870d31bcef68a0dde387579d7b755c342b3352a54a4b63682","dweb:/ipfs/QmXLvJb6vxfrUG84ASLhEf7tL62MN3oxkp7aXUxemrZTy3"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/interfaces/IUniversalRouter.sol":{"keccak256":"0x2525b52d1edf5df89bfd093c5b933b9e8f65236f44f58096763a6c87a5cafb63","urls":["bzz-raw://5cc0fcfedd6b32586099ee0f6781bb81da99175c65013c06bb6f61a125babb18","dweb:/ipfs/QmcEkSzkjkPpp3YyJZaY232TjuNU4Pw6CSiTWz7sk2Sq5D"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/libraries/Commands.sol":{"keccak256":"0xa08ae7be62972a4f17779257641065d41fa5cc2d5fc7050e5e5b76fbda9e6a9f","urls":["bzz-raw://0b94d73c5cd54aba5e1ad4ccfc33df13c1b04417f53fda188275fc15f95f02f2","dweb:/ipfs/QmNpigDf9g9AAbFr27gug5hAZjb6iuFekRqXonC6upoEcp"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/libraries/Constants.sol":{"keccak256":"0xb668498f11a4bb576a0a61c183da7ca348249dd9176c57dcb6532912b1b49b0e","urls":["bzz-raw://87d8588baf0b7b72faec637843c7623ac416d45e0f7719d0a635afe7981b2cf2","dweb:/ipfs/QmSu7Jr8JM6mab2dddk1UaiPhyLZvsA8iLxC9MEcBUaMzT"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/libraries/Locker.sol":{"keccak256":"0xfccb45f77b5c66f0f417d803b4b3f7ae97206d8d850a383ab7d97f25d0617cc0","urls":["bzz-raw://b47f3f4e74961f8e9d918c2cc3514cb8d097caee6ab2c20c10735235dec440ec","dweb:/ipfs/QmfTWUjP7g7zTw67C2RvoMhWRX6ExLNV3UYSb5LqfE4bqC"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/libraries/MaxInputAmount.sol":{"keccak256":"0x2dd6efbcaf9991c852e29a726f9876a0a6d08f2271912e69efa5c6a5e8034739","urls":["bzz-raw://949ebd746eee3589d1e466c738884bd3532043d9e8a7b77c1521a098ba3c69b6","dweb:/ipfs/QmZC9idgGQDfLksqfz41FrcsVXhqkfRZCZH9MJXQkQavt6"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/MigratorImmutables.sol":{"keccak256":"0x666d1622a10509c69b679df9d175a3e0c176a62b9e18d1cee7634219aded8f68","urls":["bzz-raw://a88e472495d32648ba3e7964c4c88b68853b49540f40afbaf2ede6822372b49f","dweb:/ipfs/QmQoaWbCpwFYCnRgehM7ruYaa7za8fBghT5aQCRCPYJr1V"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/Payments.sol":{"keccak256":"0x19a103b3269ee2f7bc28a6e1850091b2087dd2558662494d1104ac8e5ac68524","urls":["bzz-raw://ba64c600f57bb13672a5549b6dba11ae4dfe49f688c24eadb3289dcc87d226a8","dweb:/ipfs/QmWkmVyeai1WeymuWqEk1fQE5R2frrQQjJv81cytrKvFuA"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/PaymentsImmutables.sol":{"keccak256":"0x9ca2535b69b15d3bdb7a15871c5bca83f5536cffb0191c64f4c6a2db4a154338","urls":["bzz-raw://dc85fb3ddd19481bf0d1a8a9f5d9631b396d86344a33e30b4c4ab6cd58d51169","dweb:/ipfs/QmeEGFqfHFUo1Mu6tRfCjvVGJYyoDu29ZspZgxxcj6ykvq"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/Permit2Payments.sol":{"keccak256":"0x887ec1f57144cd91a1b86d5a7b1d1119146f41dae6865e6fd0e849801e968628","urls":["bzz-raw://08b713e82f3f192976902497e1c02dd60bf7e90c83a471eb4c7ac7710b086f95","dweb:/ipfs/QmWJSGZ9Dj7FmFCnDWpDdL5fx76JYDgYWhggXCroxV7cjX"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/V3ToV4Migrator.sol":{"keccak256":"0x5ee3774b749b9a8d851dc6074c8de8c61f408a4cfd829c47c753840c839ba91c","urls":["bzz-raw://337e17b84f4fdad7e32be0e482e7b2471d7f927ba3b3174cae38cf2509d97443","dweb:/ipfs/QmbzgdyxAC5vpvWRGaemn3Qn7DRbNDjHSH3KbHSDPwJ8LY"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/UniswapImmutables.sol":{"keccak256":"0xb810727f5e734a30871ff1d83d8c96d99150f1ce77bb39e032aec6254ca43cd0","urls":["bzz-raw://5eb9df8b6c81f8e33b8a6bace294ed0d81c541988f7ba42027e3041eff32e1bd","dweb:/ipfs/QmVPSWBv7WegGySGV4BoewKKx7iAetHsjydxQyKk3dh5yw"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v2/UniswapV2Library.sol":{"keccak256":"0x829d48c1b69d2e1bc078a57aae8d87dc31d920b01c62d6268d20d517fd24150c","urls":["bzz-raw://b87236ea4c1e64c12434f31abbd658ca3fc510ebe65be731d84d3ce8efa71c32","dweb:/ipfs/QmUerjg5Ebt3pfQZtk2sArUy414gQtHwvFNgsQNe4PhxbN"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v2/V2SwapRouter.sol":{"keccak256":"0x0fcb6ad6c4d5a7b25054dd9951432b2b41cb2c0077e6bc7ca0d0416115ef2326","urls":["bzz-raw://124b1dd54d27914306bdd1021e171111f0ae622fffb2974ccdee24eab31b359d","dweb:/ipfs/QmfKr2sbxdc31aPWv9d6ETA4GyfqHiKVZRKqhREnMkR5j9"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v3/BytesLib.sol":{"keccak256":"0xc3c23e83afd06781c4a0a5c418c20c40611e71d049766eb70987007ce372656e","urls":["bzz-raw://c62989beb75edad6de18c31be31eb68f0c3fb15c5f9e9bb380221afc6785fda5","dweb:/ipfs/QmVEsp5yivbmjP7HcXS5kJ1XJY5Uic3J3y4zjpwD1SNySD"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v3/V3Path.sol":{"keccak256":"0xf6abbf4c7cd0975ddabb0ddb641ea9ae3b0cc1dd9a1cabf5e7cc271a974eabc2","urls":["bzz-raw://1e0987fc9b81c65eada64cb65f981680c2054e489a6049d397b5ecbbf4c9a0a9","dweb:/ipfs/QmW7mbbHsfc2GLy2GkCUv3VwXV93y6UFtKDD7E9QEtzFH7"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v3/V3SwapRouter.sol":{"keccak256":"0x31fe8777a6de583c54a0f09ec11d318c253b7fe50c7a2af1608b2b89a03ca660","urls":["bzz-raw://780219ff0d6d333727655719d31d61ce345cdbca7f906467a2d00e3162b3c0aa","dweb:/ipfs/QmbauA5Kvj7m9P9hxe4hhnLY5w2TEXMMnCc9oWehVgj2jo"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v4/V4SwapRouter.sol":{"keccak256":"0x68b7666641ad5ba227b500c9845c4bc71eaaac6556d97d31d123fce41b51969a","urls":["bzz-raw://40a99bb5e9e407ad6741f5c210ac23a32950e7567c73f21975444e9729fc6cfb","dweb:/ipfs/QmUK98HjyQ7NDGR36DD9owjLDk7ujEj5b5uKt9zjUsCFG5"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/types/RouterParameters.sol":{"keccak256":"0x9efe9912d44e56cff8fc23e1411c80b47ffc9f5c0ad5ca5c66ab77a1b7ddfcbf","urls":["bzz-raw://473acf49dc1be1ca997ad20258124e26e03b3cef15412a8827ecf9b52e4cef21","dweb:/ipfs/QmaGR2QL6im4XYJpubqhUuP82nFytemX7wwEk4cXECJYJN"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IERC721Permit.sol":{"keccak256":"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4","urls":["bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471","dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL"],"license":"GPL-2.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol":{"keccak256":"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984","urls":["bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56","dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW"],"license":"GPL-2.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol":{"keccak256":"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d","urls":["bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f","dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127"],"license":"GPL-2.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryPayments.sol":{"keccak256":"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274","urls":["bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407","dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp"],"license":"GPL-2.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPoolInitializer.sol":{"keccak256":"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862","urls":["bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f","dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu"],"license":"GPL-2.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/libraries/PoolAddress.sol":{"keccak256":"0xa72de315bd655a0fd5043ff97c7fd3868a1b5b1986afd75c6f5f8fd0f904985f","urls":["bzz-raw://a8838e68aba9caf2b2cb13bd4cb661b1f9c167cca4dfcd50ac72ae96691392df","dweb:/ipfs/QmfLq3cmsSQTuLLxiF4bgceaf2jx8CoiVXQd7BZXGgJG1E"],"license":"GPL-2.0-or-later"},"lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol":{"keccak256":"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b","urls":["bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf","dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH"],"license":null},"lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol":{"keccak256":"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1","urls":["bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5","dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol":{"keccak256":"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69","urls":["bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652","dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol":{"keccak256":"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634","urls":["bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5","dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol":{"keccak256":"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5","urls":["bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7","dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol":{"keccak256":"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd","urls":["bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03","dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol":{"keccak256":"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7","urls":["bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047","dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol":{"keccak256":"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235","urls":["bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735","dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol":{"keccak256":"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f","urls":["bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f","dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/libraries/SafeCast.sol":{"keccak256":"0x4c12bf820c0b011f5490a209960ca34dd8af34660ef9e01de0438393d15e3fd8","urls":["bzz-raw://fed11489e218e55d087d42b4f350a30e10cd2aedec8f432bd3cc712f648d5869","dweb:/ipfs/QmWfRnRxyXwHUDcTQPazxYYk5jxErGeQqdvnYtyg5nBPbU"],"license":"GPL-2.0-or-later"},"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":"0x4c9571aed0c2b6ef11832545554fc11ffdb03746daaf5c73683c00600bfc7ec0","urls":["bzz-raw://e78b34b58ce9de91b91943b4f3cc3ce121d0b151e123e8a600ac5ef64d91db6c","dweb:/ipfs/QmRkaQnPCYwLrXgbpGujJTx32PaZK63KSPJJV1XmnQuCMb"],"license":"MIT"},"lib/v4-core/src/interfaces/IPoolManager.sol":{"keccak256":"0x3534f00531038e77ab8a7fc4d0a6e0993ee53fb7a396b1324ad917318ea46cea","urls":["bzz-raw://0a4a7e771828dc40848485b568a1cf514f553ace6653f4f4d1ad3f3e9cdb6c27","dweb:/ipfs/QmTjzQ7KVYnrEWtxPER2E4MXzycgcznfzSDsZtd5turk5V"],"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/CurrencyReserves.sol":{"keccak256":"0x1576616129933fcdf3b684cea33cffd9c95e18fafbd2832a8c48ac3d8526d4c3","urls":["bzz-raw://33b050efb9b81803b18f562271e7cca2ec5362c4d505860d6419b4a345636725","dweb:/ipfs/QmQtFtTwKZ5pFVGD2ENDUXvp7ECFvzqeCuJ1miJcUHdmiX"],"license":"BUSL-1.1"},"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/Lock.sol":{"keccak256":"0x9338be4b5695f1da5f3d3f7a3eeaf7a356c1045458289586ac0cbe9cef77c6d5","urls":["bzz-raw://485ec42ed6155469d612a9a0c18068ebfbad74448792a338a435503de3ef1b2c","dweb:/ipfs/QmVnnv5u74MYatfRmBgrcfFYQcsMAJMG9jQ6ju8UiydKNF"],"license":"BUSL-1.1"},"lib/v4-core/src/libraries/NonzeroDeltaCount.sol":{"keccak256":"0x0666ebd5d3528d7d52c48538296367a4cff97a578cf13365c51983fae3219b87","urls":["bzz-raw://d27f1be3bd09d85c53d3e6a539dd6529ddd8b2b764ccb47fd7765fc81f9add59","dweb:/ipfs/QmQdZujNXhKEXQBkKtF5jbdvo1yXMqPDUoBBaF9S5u3Kpm"],"license":"BUSL-1.1"},"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/libraries/TransientStateLibrary.sol":{"keccak256":"0x7d1e0875747bd89b32c25f1a48da2766e5f4aff1f671ad5f3c0c07ebbbcb946a","urls":["bzz-raw://d76cfeb1cb60595b41ecc51c8a12fb4bf63a7fc733d0b1a2e3adb55abeb1f9d5","dweb:/ipfs/Qmb8oX7DtsRpw3tTtdWZwGhauj1evq43d3PLwe4nSDAKkV"],"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-periphery/src/V4Router.sol":{"keccak256":"0x8ede1e538ae9b74984c52347a3bbaee7b3d69f00ed9b3a6db1f1bd6e058a2326","urls":["bzz-raw://8e370416fa9681ad124414e2b2fb57a5455e15dd873c9e61c964177ae5c2d544","dweb:/ipfs/QmWrM97ezNB9CpawqhkwpubXHcXUbMFWKYEbD3D6EyAe1w"],"license":"MIT"},"lib/v4-periphery/src/base/BaseActionsRouter.sol":{"keccak256":"0xca1ee500f88951ad351d18ba2adfb5fe23abef6d502f234ce5748a3497674a4c","urls":["bzz-raw://1f03ab458be27c29cef1b7ace5b11517d3fef8bf6131af7dd80d6297c224cf71","dweb:/ipfs/QmYoH6o8yeRzbeLoaMG9TjS8q2Fw7T1h4vXvvMnp3XfsUa"],"license":"MIT"},"lib/v4-periphery/src/base/DeltaResolver.sol":{"keccak256":"0x94a2da2be5c924df65a8e1e29f585bbe4c37777fedd43b45989c66d509a4a83c","urls":["bzz-raw://42bba590f6e817fd56328b74ae99bfdc4df57386d0a69ee22b9108341953ed36","dweb:/ipfs/QmdusastK7FWYouLz9gvV5J3z8MQbNKLJNNHTrc1vi7DWw"],"license":"MIT"},"lib/v4-periphery/src/base/ImmutableState.sol":{"keccak256":"0x1867c9fa2f9b4fa73bab0fcdc9d19ccef4eeac552273d8b84a170cd1cc90350a","urls":["bzz-raw://af2d699b439e13b599632fddfe82718aebd41055fba7c075f186675c588d1337","dweb:/ipfs/Qmc111gckSKb9aESn3wRFLeLiS4KGujaUcaYJgRnCRfwQU"],"license":"MIT"},"lib/v4-periphery/src/base/SafeCallback.sol":{"keccak256":"0xd78b583df1b9ee06d58e83b84fc9f08971389b34dd34bc13db072e0c13c710da","urls":["bzz-raw://c0a47f4bcd6060c4462153b9a7c52a60a460ace91acb6ddd5492eab28ec26173","dweb:/ipfs/QmdRCTRS1dhFjWEy6z577j4xz9J5HPfHBwcNzAic8G59oT"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IEIP712_v4.sol":{"keccak256":"0xd7f7115476e307a0bfc32a0f0a0f5434e9e5ca62a6c5af1e18b75e48161bb408","urls":["bzz-raw://b1600b953556da38a7adc5ad2a2925ec5fb138fecf8eec48743646543195b736","dweb:/ipfs/QmarZi2aiLVAfHXgnDWV1cCFiZk2DdPW7KJnWHqzuRChJR"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IERC721Permit_v4.sol":{"keccak256":"0x103adbba724ef536abc536fe8a4d7dc12880724c562109b69f2adce4a91fa017","urls":["bzz-raw://06f51b5a5a218e0bc866a83e7821be53c9db9de0ca921f16abd3d13ea0eab69d","dweb:/ipfs/QmbnhLy992hpQZyphTkj7fpr6jKKVva2AzfmLiDZEuqHAk"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IImmutableState.sol":{"keccak256":"0x36ab3100e87457ecf04887f4f540e34fd7f21d8e3b83880cb679239e60b7b06b","urls":["bzz-raw://7f290c7ce8e4832608d637a51b13dff95abecf6549485448e647a11c8ed01341","dweb:/ipfs/QmfD1R6mTp8j4EjQXmQZW3vCh11EYFjnvoaw8rXRP27mMq"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IMulticall_v4.sol":{"keccak256":"0x336bec303f7ff86497d2679464c5adad5040f412b3d0769ce5e1d2a42f7e2c08","urls":["bzz-raw://7734f047d98d331c8abc51ad9f358ceee0a6dcae8d89ac49084b84de0d2d42e7","dweb:/ipfs/QmWij2h7mU36LsXhb9P6pkYXrSCua4ixeWaVFSrsEcEmPQ"],"license":"MIT"},"lib/v4-periphery/src/interfaces/INotifier.sol":{"keccak256":"0xfdc5187a98240a1691aae98b7dd2444d4c2bfb4746f3c34de9f3d18399c17c5e","urls":["bzz-raw://683af56401ec4f8817e8dfe150e7b3febaf0baaf40efe8d0d0475f735275f746","dweb:/ipfs/QmRQ6S3nFnSc2jjDcQTvUJdTf4xKPojmvCkpvgyr6qTuVV"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IPermit2Forwarder.sol":{"keccak256":"0xfad472937280e861125ff12aa6f9c2cf7440fbb20a2cc29485c24662ad4279c5","urls":["bzz-raw://31bfbc331f5972fc373d9469fd1ca1d14818db3275f21b7b590f20820cb4439d","dweb:/ipfs/QmX3Bv9wfYpAFZKBcxKsQSXUrSC8mqNBdzh6XVMS72aNx9"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IPoolInitializer_v4.sol":{"keccak256":"0x2e4feda94650a2642039e0309ffdec480ee050bc40864bf5e1dba42bb4dc9e98","urls":["bzz-raw://964c178b4da8bab9ef898b94bb26d7c17cc44c5cf20485f55dcf5e9c7e1b1d92","dweb:/ipfs/QmVd2c3SYteyr5xZgUS4sDAiZF43dLwVAEKdCfvQbkZpRJ"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IPositionManager.sol":{"keccak256":"0x62dfa0cbee8314ee7e6787db8bc1d364245c340f940875ac7ff11e89d074fc7e","urls":["bzz-raw://26f560c77d8a187bf93a710b827e3167eab3446922192fa8f92f208da2103834","dweb:/ipfs/Qmbzp5gSYdTpMBF9aAb2GraxMEQZb5LRJCyg8VaRUyjTFc"],"license":"MIT"},"lib/v4-periphery/src/interfaces/ISubscriber.sol":{"keccak256":"0x34ceadec4a63019680e543fe73197f198a55c825d86e18f327840354760b57e7","urls":["bzz-raw://31734feafe1fe162a0702ddf862fcc3bd97505931afb3c685033c0185d898051","dweb:/ipfs/QmQEANYVyaXTNzXKcjUVfPhLU71Bix5vxQH75BpPWMkWgw"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IUnorderedNonce.sol":{"keccak256":"0xd7f32fee74dc7d1a3b078ca1263961baccaa6bf434c79e8fe0e092e30c3e0ec3","urls":["bzz-raw://e7d1e92d89d5f49c84aa82f3b259678c2c97a4473b22d753ca4411a6b0cec36d","dweb:/ipfs/QmNZoQyminStaAdaLqoDLoWaBU5QWrWjXFjmBm4aFhzL8i"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IV4Router.sol":{"keccak256":"0xc4133fae25e61cc2447d7331729f6035322d7c1fe26b39b225422bf98cc63459","urls":["bzz-raw://3c24ff8428504e973e947a059f96289a66c520cd7f8ef47a3224f9cb6abdaf25","dweb:/ipfs/QmVqxYnngWXXcCiuTC143vTEJrjZK5NXWB92pjvVbuJBQ5"],"license":"MIT"},"lib/v4-periphery/src/interfaces/external/IWETH9.sol":{"keccak256":"0xe88abf12501ac275619aec0687240a07d26968aecbbcdfea88ba8bbd5d6e5e14","urls":["bzz-raw://7097065d4492b4eccb1a73f99af1e5bec45404c6b973b8f5965c4c91403f5f92","dweb:/ipfs/QmZK8oEqmjmTqhBoh3D3fBpyKGkUEFnptY8xwH9xpNjDm2"],"license":"MIT"},"lib/v4-periphery/src/libraries/ActionConstants.sol":{"keccak256":"0x3d6f0e5b4a7b1e60bad93e73dce5db67fb66bebef11c31ed8355014a79aa03b3","urls":["bzz-raw://6dfa42e24b1b5c7f66e75304ab034fbb6768518eb2410ccfff8b3defdd1658f2","dweb:/ipfs/QmQQ7fud9mmv7PEWPAQiNzeZhNkWf28Z6nCHc2e6WJFfa7"],"license":"MIT"},"lib/v4-periphery/src/libraries/Actions.sol":{"keccak256":"0x8efd4b8b289177ee27e557d9d0a5a9f973d66fe1eb1ef8959d316b11987ca830","urls":["bzz-raw://07fe35f194eb99465028f0546359befea574d844da53767d32f22b233c3bcc98","dweb:/ipfs/Qmc19631uFxABTHAbGrDrroexi9GdyxWntaum1v8npPYz5"],"license":"MIT"},"lib/v4-periphery/src/libraries/BipsLibrary.sol":{"keccak256":"0x37ebf99f5d086d9d9f6e7cecbf4d62167f47c63c30248cfcb921e828f0d7a359","urls":["bzz-raw://c4f8e68a66bb6c166d72cdba6ed6fb83a93f713b79c2c572e8058084eb90ab6c","dweb:/ipfs/QmY32FxtSBRf9PJzNUVzXqFY4i2ApTPHTUMpCBGovd2zo3"],"license":"MIT"},"lib/v4-periphery/src/libraries/CalldataDecoder.sol":{"keccak256":"0x26df49e13fb5410fd4db253cca877dfdfb3a1ba03e394d054c0e0514a88a56e5","urls":["bzz-raw://72a0c98c52171708f332f83d517deeb97fdd50ecf28f2510e1866e54593a6ff8","dweb:/ipfs/QmY4LiDUfSKGj86nML7B6a8euiPciUqwYehasAyAVnMCHq"],"license":"MIT"},"lib/v4-periphery/src/libraries/PathKey.sol":{"keccak256":"0xbbd79ffefe045f025263e389539021266fb4d371463aefba405e1ff1d3fcf9bc","urls":["bzz-raw://2d1c47b81a01218be46ee79f0a8837095479b94dc5cfd18abbf2006709f0ea89","dweb:/ipfs/QmRb6CQ13Zp7f3WF5jbZtsF2szhxpPgcuWs9mjwQXxzqtg"],"license":"MIT"},"lib/v4-periphery/src/libraries/PositionInfoLibrary.sol":{"keccak256":"0xc5ddf96bd088bc87ea50a20f907fc932fb28397a42682a301b268a11b7f34078","urls":["bzz-raw://7dfeb4dc747537240f8167243e8066b6f5f08057386fb8bda93f82973fc18ad6","dweb:/ipfs/Qmby9DAAaHj8hjsMUnqY3vjqCHKGAKrT5EULMmeGcjbbGx"],"license":"MIT"},"node_modules/fhevm/config/ZamaFHEVMConfig.sol":{"keccak256":"0x41782f4c707b81399916544fa2e7be94a695fa4ba468542732d29d3e383c0315","urls":["bzz-raw://45a95a55c4bbb3418c2133cba6ed21a9444bb4e38d38b32cc707b7493cece2ca","dweb:/ipfs/QmVU8EKmZgscdM43RgXD4EgbVMhQxBusTmBren3pbn1pUW"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/config/ZamaGatewayConfig.sol":{"keccak256":"0xbed8bc18db61ffeb5ee31f577ab636d8563df27554e0ca66c53534f0bd82ffbd","urls":["bzz-raw://53601967f9e914b25cf91a325b100d5b3cbb9aec92d12443062a51fe5a578b7d","dweb:/ipfs/QmNbviWrrPrx3snoLWqW5GyBnH99tSX3iYXEJ5ezk9XbtL"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/gateway/GatewayCaller.sol":{"keccak256":"0xd19fd7715f0c5b479bf0cd8e3108cc8da7deae2d4fc7fb5ab089ebf2d76a0652","urls":["bzz-raw://6386c509464cefe5a41903ca837da46a21b8042d13ccde656158efc48cd70ea8","dweb:/ipfs/QmUn7C6aZwKmEmKsphBshBezXXGZtLMyfaeZAyuZoRsBWU"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/gateway/lib/Gateway.sol":{"keccak256":"0x9585a649e3001a4b8768ab6e2597b416f680bcc537309cd50b60e023e9791318","urls":["bzz-raw://a1b055bfb067cc247d4bd60b5f8348f667cbe79717a5753cd6412955277345d0","dweb:/ipfs/QmTveBaQg9GUdtrrxcR4RsiyAEmoEKGL4gn6E1gThR1ph5"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/lib/Impl.sol":{"keccak256":"0x89d4968cd956a8931f1a8a177b3bef1c6cf88a03665083db74430add50b88f21","urls":["bzz-raw://aaaef2c82d56dacfb08946842ea1ce26757d13f3251de62fa79222232dfcb43c","dweb:/ipfs/QmQ6QZPxJw9jb3qjRYCX7pMQVoYogjTsYgmdEnB3EnwFRy"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/lib/TFHE.sol":{"keccak256":"0x221799c8332f83ab65a0b71746409f0c2c89f1cd8d9ba4091d967c667e1df734","urls":["bzz-raw://2dba387fbc612a2ee64063b0ee6c27304b3944423d11045acc50abd84577fb5f","dweb:/ipfs/QmThptDGnpd8PuncFk1rnQoCzEqwUED622yC9xZgFhwY59"],"license":"BSD-3-Clause-Clear"}},"version":1},"id":3} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_swapsManagerProxy","type":"address","internalType":"address"},{"name":"_markerDataFetcher","type":"address","internalType":"address"},{"name":"_defaultSharePrice","type":"uint256","internalType":"uint256"},{"name":"_feeDivisor","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createConfidentialIndexFund","inputs":[{"name":"indexTokens","type":"address[]","internalType":"address[]"},{"name":"encryptedStablecoin","type":"address","internalType":"address"},{"name":"stablecoin","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"feeDivisor","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"indexTokensAndStablecoinToIndexFund","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"contract IIndexFund"}],"stateMutability":"view"},{"type":"function","name":"marketDataFetcher","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract MarketDataFetcher"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeWhitelistedTokenStablecoinPair","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"stablecoin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDefaultSharePrice","inputs":[{"name":"newDefaultSharePrice","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFeeDivisor","inputs":[{"name":"newFeeDivisor","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNumberOfSwapsToBatch","inputs":[{"name":"newNumberOfSwapsToBatch","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swapsManagerProxy","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"tokenStablecoinPairToPoolKey","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"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"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"whitelistTokenStablecoinPair","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"stablecoin","type":"address","internalType":"address"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"CurrencyPairNotWhitelisted","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"stablecoin","type":"address","internalType":"address"}]},{"type":"error","name":"IndexFundAlreadyExists","inputs":[{"name":"indexTokens","type":"address[]","internalType":"address[]"},{"name":"stablecoin","type":"address","internalType":"address"}]},{"type":"error","name":"NoPriceFeedForToken","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60803461011057601f615d9e38819003918201601f19168301916001600160401b03831184841017610114578084926080946040528339810103126101105761004781610128565b9061005460208201610128565b90606060408201519101519133156100fd575f8054336001600160a01b0319821681178355604051969290916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a36007805460ff19166002179055600380546001600160a01b03199081166001600160a01b03938416179091556004805490911692909116919091179055600555600655615c61908161013d8239f35b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101105756fe60806040526004361015610011575f80fd5b5f3560e01c8063043531b114610a6757806318e707bb14610a3157806344c60582146109c157806344fc4fab14610999578063715018a6146109425780637c7024d61461091a5780638c2d2783146108e85780638c591c6b1461036d5780638da5cb5b146103465780639a36f93214610329578063c9da450814610308578063e57b0faf146102a8578063f2fde38b146102235763ff63aa73146100b3575f80fd5b3461021f5760a036600319011261021f576100cc610af4565b6100d4610ade565b9060443562ffffff811680910361021f57606435908160020b80920361021f576084356001600160a01b038116929083900361021f57610112610bb9565b6001600160a01b03848116949086169290838610156102075761017161017f60029798604051996101428b610a88565b8a5260208a0196875260408a0194855260608a0195865260808a01978852604051928391602083019586610b51565b03601f198101835282610aa4565b5190205f908152602086905260409020955186546001600160a01b039182166001600160a01b031991821617885593516001880180549351945160b81b62ffffff60b81b1662ffffff60a01b60a09690961b959095169183166001600160d01b0319909416939093171792909217905591519390920180549390911692909116919091179055005b61017161017f6002979598604051996101428b610a88565b5f80fd5b3461021f57602036600319011261021f5761023c610af4565b610244610bb9565b6001600160a01b03168015610295575f80546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b631e4fbdf760e01b5f525f60045260245ffd5b3461021f57604036600319011261021f576102c1610af4565b6101716102e86102cf610ade565b6102d7610bb9565b604051928391602083019586610b51565b5190205f5260026020525f60026040822082815582600182015501555f80f35b3461021f57602036600319011261021f57610321610bb9565b600435600555005b3461021f575f36600319011261021f576020600654604051908152f35b3461021f575f36600319011261021f575f546040516001600160a01b039091168152602090f35b3461021f57606036600319011261021f5760043567ffffffffffffffff811161021f573660238201121561021f5780600401356103a981610ac6565b916103b76040519384610aa4565b81835260208301906024829360051b8201019036821161021f57602401915b8183106108c8575050506103e8610ade565b916044356001600160a01b0381169081810361021f57600480546040516325e9181b60e01b81529182018490526001600160a01b03169490602081602481895afa908115610648575f916108a9575b506001600160a01b031615610896576040518060208101928387519091905f5b81811061087457505050610487916014916001600160601b03198760601b16815203600b19810184520182610aa4565b5190209383519461049786610ac6565b956104a56040519788610aa4565b8087526104b4601f1991610ac6565b015f5b81811061083f5750505f5b8551811015610653576001600160a01b036104dd8288610b29565b51166040516325e9181b60e01b8152816004820152602081602481885afa908115610648575f9161061a575b506001600160a01b03161561060857506001600160a01b0361052b8288610b29565b51166040516105438161017188602083019586610b51565b5190205f52600260205260405f206040519061055e82610a88565b80546001600160a01b0390811680845260018301548083166020860181905260a082901c62ffffff16604087015260b89190911c600290810b60608701529093015490911660808401521590816105ff575b506105d557906001916105c3828a610b29565b526105ce8189610b29565b50016104c2565b856001600160a01b036105e8848a610b29565b511663a17a1d7b60e01b5f5260045260245260445ffd5b9050158a6105b0565b63a24a6aed60e01b5f5260045260245ffd5b61063b915060203d8111610641575b6106338183610aa4565b810190610b0a565b8a610509565b503d610629565b6040513d5f823e3d90fd5b508386868985855f52600160205260018060a01b0360405f205416610810576003549160055460ff60075416926040519761504c808a01978a891067ffffffffffffffff8a11176107fc576106c1908b9a9998979695949392610be08c396101408952610140890190610b7d565b9360018060a01b031660208801526040870152306060870152608086015260018060a01b03841660a086015260c085015283810360e0850152602080865192838152019501905f5b81811061079e57505050906101209161010084015260a01c91015203905ff090811561064857600354918260a01c926001600160601b03841461078a576001600160a01b0319600194850160a01b81166001600160a01b03928316176003555f93845260209485526040938490208054939092169216821790559051908152f35b634e487b7160e01b5f52601160045260245ffd5b825180516001600160a01b0390811689526020828101518216818b015260408084015162ffffff16908b015260608084015160020b908b01526080928301519091169189019190915289985060a09097019690920191600101610709565b634e487b7160e01b5f52604160045260245ffd5b6040805163252fde1160e21b8152600481019190915280866108356044830187610b7d565b9060248301520390fd5b60209060405161084e81610a88565b5f81525f838201525f60408201525f60608201525f608082015282828b010152016104b7565b82516001600160a01b0316845285945060209384019390920191600101610457565b8263a24a6aed60e01b5f5260045260245ffd5b6108c2915060203d602011610641576106338183610aa4565b87610437565b82356001600160a01b038116810361021f578152602092830192016103d6565b3461021f57602036600319011261021f576004355f526001602052602060018060a01b0360405f205416604051908152f35b3461021f575f36600319011261021f576004546040516001600160a01b039091168152602090f35b3461021f575f36600319011261021f5761095a610bb9565b5f80546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461021f575f36600319011261021f576003546040516001600160a01b039091168152602090f35b3461021f57602036600319011261021f576004355f52600260205260a060405f20600180831b03815416906001810154906002600180861b039101541690604051928352600180851b038116602084015262ffffff81851c16604084015260b81c60020b60608301526080820152f35b3461021f57602036600319011261021f5760043560ff811680910361021f57610a58610bb9565b60ff1960075416176007555f80f35b3461021f57602036600319011261021f57610a80610bb9565b600435600655005b60a0810190811067ffffffffffffffff8211176107fc57604052565b90601f8019910116810190811067ffffffffffffffff8211176107fc57604052565b67ffffffffffffffff81116107fc5760051b60200190565b602435906001600160a01b038216820361021f57565b600435906001600160a01b038216820361021f57565b9081602091031261021f57516001600160a01b038116810361021f5790565b8051821015610b3d5760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b90916028926001600160601b03199060601b1682526001600160601b03199060601b1660148201520190565b90602080835192838152019201905f5b818110610b9a5750505090565b82516001600160a01b0316845260209384019390920191600101610b8d565b5f546001600160a01b03163303610bcc57565b63118cdaa760e01b5f523360045260245ffdfe6080806040523461075a5761504c803803809161001c8285610832565b833981016101408282031261075a5781516001600160401b03811161075a57820181601f8201121561075a57805161005381610855565b916100616040519384610832565b818352602083016020819360051b8301019185831161075a57602001905b8282106107ff575050506100956020850161086c565b6100a16040860161086c565b916100ae6060870161086c565b936100bb6080880161086c565b956100c860a0890161086c565b60c089015160e08a01519098906001600160401b03811161075a578a019280601f8501121561075a578351906100fd82610855565b9461010b6040519687610832565b8286526020860191602060a08495028301019181831161075a57602001925b82841061076657505050506101008b01519a60ff8c168c0361075a5761012001516001600160601b03811699908a900361075a57600180555f606060405161017181610817565b8281528260208201528260408201520152739d6891a6240d6130c54ae243d8005063d05fe14b60606040516101a581610817565b73fee8407e2f5e3ee68ad77cae98c434e637f516e580825273687408ab54661ba0b4aef3a44156c616c6955e07602080840182905273fb03be574d14c256d56f09a198b586bdfc0a9de2604080860182905295909401959095527fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60080546001600160a01b031990811690931790557fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea6018054831690911790557fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea602805482169092179091557fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60380548216739d6891a6240d6130c54ae243d8005063d05fe14b1790557f93ab6e17f2c461cce6ea5d4ec117e51dda77a64affc2b2c05f8cd440def0e70080549091167333347831500f1e73f0cccbb95c9f86b94d7b112317905551638da5cb5b60e01b81526001600160a01b039290921695919081600481895afa90811561058f575f91610728575b50601a80546001600160a01b0319166001600160a01b0392909216919091179055519068010000000000000000821161059a57600e5482600e558083106106a8575b50600e5f5260205f205f915b83831061060f575050601080546001600160a01b03199081166001600160a01b0395861617909155600f80548216959094169490941790925550506013805462010000600160d01b03191662010000600160d01b031790556011805490911691909117905551906001600160401b03821161059a5768010000000000000000821161059a57600d5482600d558083106105cb575b50600d5f5260205f205f5b8381106105ae57601680546001600160a01b038781166001600160a01b031992831617909255601780549289169290911691909117905588886020806104ee60236104bd8d6104b8602f610472836108bf565b6040519889916d24b73232bc233ab7322a37b5b2b760911b82840152605f60f81b602e8401528051918291018484015e81015f838201520301601f198101885287610832565b6108bf565b6040519384916212519560ea1b828401528051918291018484015e81015f838201520301601f198101835282610832565b60405191611ea991828401906001600160401b0382118583101761059a576105286105369386956131a38739604084526040840190610880565b916020818403910152610880565b03905ff0801561058f57601880546001600160a01b0319166001600160a01b0392909216919091179055601955600f805460ff60a01b191660a09290921b60ff60a01b1691909117905560405161276c9081610a378239f35b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b82516001600160a01b03168183015560209092019160010161041f565b600d5f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb59081019083015b8181106106045750610414565b5f81556001016105f7565b8051805183546001600160a01b039182166001600160a01b0319918216178555602080840151600180880180546040880151606089015160b81b62ffffff60b81b1662ffffff60a01b60a09290921b919091169488166001600160d01b03199092169190911793909317929092179091556080909401516002870180549190941692169190911790915593019260039092019101610380565b80600302906003820403610714578260030260038104840361071457600e5f527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd91820191015b8181106106fc5750610374565b805f600392555f60018201555f6002820155016106ef565b634e487b7160e01b5f52601160045260245ffd5b90506020813d60201161075e575b8161074360209383610832565b8101031261075a576107549061086c565b5f610332565b5f80fd5b3d9150610736565b60a08483031261075a576040519060a082016001600160401b0381118382101761059a576040526107968561086c565b82526107a46020860161086c565b6020830152604085015162ffffff8116810361075a57604083015260608501518060020b810361075a5760608301526080850151906001600160a01b038216820361075a5782602092608060a095015281520193019261012a565b6020809161080c8461086c565b81520191019061007f565b608081019081106001600160401b0382111761059a57604052565b601f909101601f19168101906001600160401b0382119082101761059a57604052565b6001600160401b03811161059a5760051b60200190565b51906001600160a01b038216820361075a57565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6001600160401b03811161059a57601f01601f191660200190565b805f917a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000821015610a0e575b806d04ee2d6d415b85acef8100000000600a9210156109f3575b662386f26fc100008110156109df575b6305f5e1008110156109ce575b6127108110156109bf575b60648110156109b1575b10156109a6575b600a6021600184019361094b856108a4565b946109596040519687610832565b808652610968601f19916108a4565b013660208701378401015b5f1901916f181899199a1a9b1b9c1cb0b131b232b360811b8282061a83530480156109a157600a9091610973565b505090565b600190910190610939565b606460029104930192610932565b61271060049104930192610928565b6305f5e1006008910493019261091d565b662386f26fc1000060109104930192610910565b6d04ee2d6d415b85acef810000000060209104930192610900565b50604091507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000081046108e656fe6080806040526004361015610012575f80fd5b5f905f3560e01c90816301ffc9a714611d565750806305d7d94b14611bc5578063248a9ca314611b935780632f2ff15d14611b545780633352a629146119f557806335c995ec1461165257806336568abe1461160d578063372df775146115e657806338f250ec1461157f5780635b1dac601461156157806375696e7f1461153857806376b150151461151f5780638fe01f0b146115015780639134867c14610f1057806391d1485414610ec757806397771de514610c71578063a217fddf14610c55578063b6f6731214610c2c578063b7064d99146108d8578063c3d02d96146108bb578063d547741f14610874578063e61681ef146105365763fcb74a451461011b575f80fd5b346105335760a036600319011261053357610134611e02565b61013c611e12565b90606435908115928315809303610464576084359182159283150361043c57610163612283565b5f805160206126f7833981519152546001600160a01b0316330361043c57601f546001810180911161051f57601f5560ff166104b5576001600160401b038060135460901c1691169081116104965760043585526009602052604085206001600160a01b03906101db906101d690611f52565b611eba565b511691610477576101ea611fc1565b60185485906001600160a01b0316803b1561047357818091602460405180948193634edf56a160e11b83528860048401525af180156104685761044f575b505061023333612433565b9080604051927f3acb72c06eaa137bacda5d4c12b12db324ae4cec48c4d80544122a8ffb28e28c8880a36318a5f69160e11b8252600c60048301526024820152848160448173__$4bd4e058d5e733e11ce3933a38e00d3f30$__5af490811561044457859161039d575b50818552601b602052604085208151916001600160401b03831161038957600160401b8311610389578154838355808410610363575b5060200190865260208620865b83811061034f57505050508352601c602052604083209060ff8019835416911617905561030f575b6001805580f35b60135460ff8160081c1660ff811461033b57600161ff00910160081b169061ff00191617601355610308565b634e487b7160e01b83526011600452602483fd5b6001906020845194019381840155016102e0565b828852836020892091820191015b81811061037e57506102d3565b888155600101610371565b634e487b7160e01b87526041600452602487fd5b90503d8086833e6103ae8183611e28565b81019060208183031261043c578051906001600160401b03821161044057019080601f8301121561043c578151916001600160401b038311610389578260051b9060208201936104016040519586611e28565b845260208085019282010192831161043857602001905b828210610428575050505f61029d565b8151815260209182019101610418565b8780fd5b8580fd5b8680fd5b6040513d87823e3d90fd5b8161045991611e28565b61046457845f610228565b8480fd5b6040513d84823e3d90fd5b5080fd5b8490610484604493612433565b633721f7cb60e01b8352600452602452fd5b846044916104a333612433565b6353d6b89960e11b8352600452602452fd5b6018546104ca906001600160a01b0316612433565b61051b6104d633612433565b926104e030612433565b604051948594638443530d60e01b86526004860192936001600160401b03919594606093608086019786526020860152604085015216910152565b0390fd5b634e487b7160e01b87526011600452602487fd5b80fd5b503461053357602036600319011261053357610550611dbf565b6001600160a01b038116808352601e60205260408320549091906001600160401b0316801561082f57828452601e60205260408420805467ffffffffffffffff1916905560165484906001600160a01b0316803b156104735781809160246040518094819363dc412e8360e01b83528860048401525af180156104685761081a575b5073__$4bd4e058d5e733e11ce3933a38e00d3f30$__6040519263304e078360e01b8452600c60048501526024840152604083604481845af4801561046857829383916107e1575b507faf7c505ee772ec188af7067e1f73db08ab028e3d564273442b907742b9c41fa0602061064787612433565b604051908152a260ff6013541660ff600f5460a01c161461076c575b505061066d611fc1565b6019548015610719576106896001600160401b03918693611fa3565b169260018060a01b036018541690813b156107155782916044839260405194859384926302893c5b60e41b845260048401528960248401525af1801561046857610700575b50506106d990612433565b7f0a7d587acc3bafe631c58ed4a25eda1e905acfb47594d1b86b332ae63df225948380a380f35b8161070a91611e28565b61071557825f6106ce565b8280fd5b60405162461bcd60e51b815260206004820152602560248201527f5368617265207072696365206d7573742062652067726561746572207468616e604482015264207a65726f60d81b6064820152608490fd5b803b1561047357816024916040519283809263a52cd1cb60e01b8252600c60048301525af48015610468576107c8575b50807f79154593ad5827af96f232d8b081e8d48c8bad62e5314fd67880b9880b48124091a1835f610663565b816107d291611e28565b6107dd57835f61079c565b8380fd5b9350506040833d604011610812575b816107fd60409383611e28565b8101031261047357602083519301515f61061a565b3d91506107f0565b8161082491611e28565b6107dd57835f6105d2565b60405162461bcd60e51b815260206004820152601d60248201527f4e6f2070656e64696e67206d696e7420666f72207468697320757365720000006044820152606490fd5b5034610533576040366003190112610533576108b7600435610894611da9565b906108b26108ad825f525f602052600160405f20015490565b6122a3565b6123b3565b5080f35b503461053357806003193601126105335760208054604051908152f35b5034610533578060031936011261053357338152601b602052604081205415610c1157338152601b602052604081206040518082602082945493848152019085526020852092855b818110610bf857505061093592500382611e28565b338252601c6020528160ff604082205416338252601b6020526040822080549083815581610bd8575b505015610a2f575060ff60135460081c1660ff600f5460a01c1611610a2057819073__$4bd4e058d5e733e11ce3933a38e00d3f30$__803b15610a1c576109d19183916040518080958194630881151960e01b8352600c6004840152336024840152606060448401526064830190612250565b03915af4801561046857610a07575b50807ee2d681c483528119b71f74ebcd6ad9dd9ca7fd71ea2245aa2362e27d3f2eb691a180f35b81610a1191611e28565b61053357805f6109e0565b5050fd5b634cc203a560e11b8252600482fd5b610a6a91602060018060a01b03601654169160405180958192632e128d5b60e11b8352600c6004840152604060248401526044830190612250565b038173__$4bd4e058d5e733e11ce3933a38e00d3f30$__5af4928315610468578293610b9d575b5060175460165460405163095ea7b360e01b81526001600160a01b0391821660048201526024810186905291602091839160449183918891165af18015610b9257610b65575b50803b1561047357818091602460405180948193630ea598cb60e41b83528860048401525af1801561046857610b50575b5050610b139061250f565b338252601d6020526040822055338152601d602052610b36336040832054612682565b338152601d602052610b4d60408220543090612682565b80f35b81610b5a91611e28565b61047357815f610b08565b610b869060203d602011610b8b575b610b7e8183611e28565b810190611e5d565b610ad7565b503d610b74565b6040513d85823e3d90fd5b915091506020813d602011610bd0575b81610bba60209383611e28565b81010312610bcc57829051915f610a91565b5f80fd5b3d9150610bad565b835260208320908101905b8181101561095e579283558492600101610be3565b8454835260019485019486945060209093019201610920565b602490610c1d33612433565b63cd7a4aa560e01b8252600452fd5b50346105335780600319360112610533576016546040516001600160a01b039091168152602090f35b5034610533578060031936011261053357602090604051908152f35b503461053357606036600319011261053357610c8b611e02565b610c93611e12565b90610c9c612283565b5f805160206126f7833981519152546001600160a01b031633036107155760205460018101809111610eb3576020556004358352600960205260018060a01b03610ceb6101d660408620611f52565b51169060ff60018060a01b03601654169116610ea9578390610d0c83612433565b6001600160401b03610d1d30612433565b951694610d298661250f565b917ffdda383f98b7ae2bbc9363df5694616f2c7890613a6dc6e80c9328c1186d95ef8580a46001600160401b0360135460901c168411610d86575b5052601e60205260408220906001600160401b03198254161790556001805580f35b610d8f8461250f565b5f805160206126d7833981519152546001600160a01b0316803b156107dd576040516346ce4e4960e11b8152600481018390526001600160a01b03841660248201529084908290604490829084905af1908115610e89578491610e94575b505060405163a9059cbb60e01b81526001600160a01b038516600482015260248101919091529160209183916044918391905af18015610e8957610e6c575b507f6f59438bec28ae7fde9ad29d1b94c360525f0ffd036127ccc684c82eb8cbc7a26040610e5983612433565b8151908152846020820152a1825f610d64565b610e849060203d602011610b8b57610b7e8183611e28565b610e2c565b6040513d86823e3d90fd5b81610e9e91611e28565b61071557825f610ded565b6104ca9150612433565b634e487b7160e01b84526011600452602484fd5b5034610533576040366003190112610533576040610ee3611da9565b91600435815280602052209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b5034610533576060366003190112610533576044356001600160401b03811161047357610f71602080610f4960a4943690600401611dd5565b9390610f53612283565b610f69610f61368784611e75565b600435612565565b943691611e75565b60018060a01b035f80516020612717833981519152541690866040519687809581946302e817ff60e41b83526024356004840152336024840152608060448401528051918291826084860152018484015e83838284010152836064830152601f801991011681010301925af1918215610b925783926114cd575b505f805160206126d78339815191525483906001600160a01b0316803b15610473576040516346ce4e4960e11b8152600481018590523360248201529082908290604490829084905af18015610468576114b8575b50506018546040516306e928fd60e01b81523360048201526001600160a01b0390911692909160208360248188885af1928315610444578593611484575b508281938215611474575b15611462575b602090606460018060a01b035f805160206127178339815191525416958860405197889485936334a6d7b960e11b8552600485015260248401528160448401525af192831561044457859361142e575b505f805160206126d78339815191525485906001600160a01b0316803b15610473576040516346ce4e4960e11b8152600481018490526001600160a01b03871660248201529082908290604490829084905af1801561046857611419575b50506040516323b872dd60e01b81523360048201523060248201526044810182905260208160648189895af180156113f1576113fc575b50604051630cf4e94560e31b8152602081600481885afa9081156113f15786916113bf575b505f1981019081116113ab5760209060246040518097819363a5184baf60e01b835260048301525afa938415610444578594611377575b50604051936111e060a086611e28565b6004855260803660208701376111f585611eba565b526111ff84611edb565b5282516002101561136357606083015281516003101561134f576080820152606442019081421161033b575f805160206126d78339815191525483906001600160a01b0316803b156104735781604051809263155f840160e21b825260206004830152818381611272602482018a612250565b03925af180156104685761133a575b50505f805160206126f783398151915254604051634c0d927760e01b815260a060048201529260209284926001600160a01b0316918391879183916112ca9060a4840190612250565b9063fcb74a4560e01b6024840152836044840152606483015282608483015203925af18015610468578290611306575b61030891503390612363565b506020813d602011611332575b8161132060209383611e28565b81010312610bcc5761030890516112fa565b3d9150611313565b8161134491611e28565b61071557825f611281565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b84526032600452602484fd5b9093506020813d6020116113a3575b8161139360209383611e28565b81010312610bcc5751925f6111d0565b3d9150611386565b634e487b7160e01b86526011600452602486fd5b90506020813d6020116113e9575b816113da60209383611e28565b81010312610bcc57515f611199565b3d91506113cd565b6040513d88823e3d90fd5b6114149060203d602011610b8b57610b7e8183611e28565b611174565b8161142391611e28565b61046457845f61113d565b9092506020813d60201161145a575b8161144a60209383611e28565b81010312610bcc5751915f6110df565b3d915061143d565b50602061146d6124b9565b905061108f565b935061147e6124b9565b93611089565b9092506020813d6020116114b0575b816114a060209383611e28565b810103126104645751915f61107e565b3d9150611493565b816114c291611e28565b61071557825f611040565b9091506020813d6020116114f9575b816114e960209383611e28565b81010312610bcc5751905f610feb565b3d91506114dc565b50346105335780600319360112610533576020601f54604051908152f35b5034610533578060031936011261053357610b4d611fc1565b50346105335780600319360112610533576018546040516001600160a01b039091168152602090f35b50346105335780600319360112610533576020601954604051908152f35b5034610533578060031936011261053357611598611eff565b90604051918291602083016020845282518091526020604085019301915b8181106115c4575050500390f35b82516001600160a01b03168452859450602093840193909201916001016115b6565b50346105335780600319360112610533576040602091338152601d83522054604051908152f35b503461053357604036600319011261053357611627611da9565b336001600160a01b03821603611643576108b7906004356123b3565b63334bd91960e11b8252600482fd5b5034610533576040366003190112610533576024356001600160401b03811161047357906116a861168a610f61933690600401611dd5565b9390611694612283565b6016546001600160a01b0316943691611e75565b5f805160206126d7833981519152546001600160a01b0316803b15610715576040516346ce4e4960e11b8152600481018390526001600160a01b03851660248201529083908290604490829084905af18015610b92579083916119e0575b50506040516323b872dd60e01b81523360048201523060248201526044810182905260208160648186885af18015610b92576119c3575b50604051630cf4e94560e31b8152602081600481875afa908115610b92578391611991575b501561195857604051630cf4e94560e31b8152602081600481875afa908115610b92578391611926575b505f19810190811161033b5782936024602092604051958693849263a5184baf60e01b845260048401525af1918215610b925783926118f2575b50604051916117d6606084611e28565b6002835260403660208501376117eb83611eba565b526117f582611edb565b52606442019081421161033b575f805160206126d78339815191525483906001600160a01b0316803b156104735781604051809263155f840160e21b82526020600483015281838161184a602482018a612250565b03925af18015610468576118dd575b50505f805160206126f783398151915254604051634c0d927760e01b815260a060048201529260209284926001600160a01b0316918391879183916118a29060a4840190612250565b906397771de560e01b6024840152836044840152606483015282608483015203925af180156104685782906113065761030891503390612363565b816118e791611e28565b61071557825f611859565b9091506020813d60201161191e575b8161190e60209383611e28565b81010312610bcc5751905f6117c6565b3d9150611901565b90506020813d602011611950575b8161194160209383611e28565b81010312610bcc57515f61178c565b3d9150611934565b60405162461bcd60e51b8152602060048201526011602482015270139bc8195c9c9bdc881c9958dbdc991959607a1b6044820152606490fd5b90506020813d6020116119bb575b816119ac60209383611e28565b81010312610bcc57515f611762565b3d915061199f565b6119db9060203d602011610b8b57610b7e8183611e28565b61173d565b816119ea91611e28565b61047357815f611706565b5034610bcc576020366003190112610bcc57611a0f611dbf565b6001600160a01b0381165f818152601d60205260409020549190611a316124b9565b5f918252601d6020526040909120556016545f805160206126d7833981519152546001600160a01b03918216929116803b15610bcc576040516346ce4e4960e11b8152600481018590526001600160a01b0384166024820152905f908290604490829084905af18015611b4957611b2a575b5060405163a9059cbb60e01b81526001600160a01b03909116600482015260248101929092526020908290818581604481015b03925af1801561046857611b0d575b507f875fc5b1c93e96a85172e0d2b74fcdb6f314c3460e99e6a7da8743bc8b75e37c8180a180f35b611b259060203d602011610b8b57610b7e8183611e28565b611ae5565b611ad69391945091611b3e5f602094611e28565b5f9491935091611aa3565b6040513d5f823e3d90fd5b34610bcc576040366003190112610bcc57611b91600435611b73611da9565b90611b8c6108ad825f525f602052600160405f20015490565b6122db565b005b34610bcc576020366003190112610bcc576020611bbd6004355f525f602052600160405f20015490565b604051908152f35b34610bcc575f366003190112610bcc57601a546001600160a01b03163303611cfa57611bef612283565b6012548015611cc357601754601a5460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810193909352602091839160449183915f91165af1908115611b49575f91611ca4575b5015611c50575f60125560018055005b60405162461bcd60e51b815260206004820152602660248201527f4661696c656420746f2073656e64206665657320746f2070726f746f636f6c2060448201526537bbb732b91760d11b6064820152608490fd5b611cbd915060203d602011610b8b57610b7e8183611e28565b81611c40565b60405162461bcd60e51b815260206004820152600f60248201526e139bc81999595cc81d1bc81cd95b99608a1b6044820152606490fd5b60405162461bcd60e51b815260206004820152602e60248201527f4f6e6c79207468652070726f746f636f6c206f776e65722063616e2063616c6c60448201526d103a3434b990333ab731ba34b7b760911b6064820152608490fd5b34610bcc576020366003190112610bcc576004359063ffffffff60e01b8216809203610bcc57602091637965db0b60e01b8114908115611d98575b5015158152f35b6301ffc9a760e01b14905083611d91565b602435906001600160a01b0382168203610bcc57565b600435906001600160a01b0382168203610bcc57565b9181601f84011215610bcc578235916001600160401b038311610bcc5760208381860195010111610bcc57565b6024359060ff82168203610bcc57565b604435906001600160401b0382168203610bcc57565b90601f801991011681019081106001600160401b03821117611e4957604052565b634e487b7160e01b5f52604160045260245ffd5b90816020910312610bcc57518015158103610bcc5790565b9291926001600160401b038211611e495760405191611e9e601f8201601f191660200184611e28565b829481845281830111610bcc578281602093845f960137010152565b805115611ec75760200190565b634e487b7160e01b5f52603260045260245ffd5b805160011015611ec75760400190565b8051821015611ec75760209160051b010190565b60405190600d548083528260208101600d5f5260205f20925f5b818110611f30575050611f2e92500383611e28565b565b84546001600160a01b0316835260019485019487945060209093019201611f19565b90604051918281549182825260208201905f5260205f20925f5b818110611f81575050611f2e92500383611e28565b84546001600160a01b0316835260019485019487945060209093019201611f6c565b8115611fad570490565b634e487b7160e01b5f52601260045260245ffd5b5f90611fcb611eff565b6010545f936001600160a01b03909116905b8251851015612194576001600160a01b03611ff88685611eeb565b51604051630681320d60e51b815291166004820152602081602481865afa8015611b49575f90612162575b6024915060206001600160a01b0361203b8988611eeb565b5116604051938480926370a0823160e01b82523060048301525afa918215611b49575f9261212e575b5060049060206001600160a01b0361207c8a89611eeb565b51166040519384809263313ce56760e01b82525afa918215611b49575f926120f1575b508281029281840414901517156120dd5760ff1690604d82116120dd576120c991600a0a90611fa3565b81018091116120dd57600190940193611fdd565b634e487b7160e01b5f52601160045260245ffd5b9091506020813d8211612126575b8161210c60209383611e28565b81010312610bcc575160ff81168103610bcc57905f61209f565b3d91506120ff565b9091506020813d821161215a575b8161214960209383611e28565b81010312610bcc5751906004612064565b3d915061213c565b506020813d821161218c575b8161217b60209383611e28565b81010312610bcc5760249051612023565b3d915061216e565b6018546040516318160ddd60e01b81529495509093925060209150829060049082906001600160a01b03165afa8015611b49575f90612207575b6001600160401b03915016806121e2575050565b620f4240820291808304620f424014901517156120dd5761220291611fa3565b601955565b506020813d602011612248575b8161222160209383611e28565b81010312610bcc57516001600160401b0381168103610bcc576001600160401b03906121ce565b3d9150612214565b90602080835192838152019201905f5b81811061226d5750505090565b8251845260209384019390920191600101612260565b600260015414612294576002600155565b633ee5aeb560e01b5f5260045ffd5b5f8181526020818152604080832033845290915290205460ff16156122c55750565b63e2517d3f60e01b5f523360045260245260445ffd5b5f818152602081815260408083206001600160a01b038616845290915290205460ff1661235d575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b50505f90565b5f52600960205260405f20805490600160401b821015611e495760018201808255821015611ec7575f5260205f20019060018060a01b03166bffffffffffffffffffffffff60a01b825416179055565b5f818152602081815260408083206001600160a01b038616845290915290205460ff161561235d575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b5f8051602061271783398151915254604051631ce2e8d760e31b81526001600160a01b039283166004820152600760f81b602482015291602091839160449183915f91165af1908115611b49575f9161248a575090565b90506020813d6020116124b1575b816124a560209383611e28565b81010312610bcc575190565b3d9150612498565b5f8051602061271783398151915254604051631ce2e8d760e31b81525f60048201819052600560f81b60248301529091602091839160449183916001600160a01b03165af1908115611b49575f9161248a575090565b5f8051602061271783398151915254604051631ce2e8d760e31b81526004810192909252600560f81b6024830152602090829060449082905f906001600160a01b03165af1908115611b49575f9161248a575090565b6020929183915f8051602061271783398151915254905f60a46040518098819682956302e817ff60e41b84526004840152336024840152608060448401528051918291826084860152018484015e8181018301849052600560f81b6064830152601f01601f191681010301926001600160a01b03165af1918215611b49575f9261264e575b505f805160206126d78339815191525482906001600160a01b0316803b15610bcc576040516346ce4e4960e11b815260048101929092523360248301525f908290818381604481015b03925af18015611b49576126445750565b5f611f2e91611e28565b9091506020813d60201161267a575b8161266a60209383611e28565b81010312610bcc5751905f6125ea565b3d915061265d565b5f805160206126d7833981519152546001600160a01b031691823b15610bcc57604051631974142760e21b815260048101929092526001600160a01b03166024820152905f9082908183816044810161263356feed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60093ab6e17f2c461cce6ea5d4ec117e51dda77a64affc2b2c05f8cd440def0e700ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea601a26469706673582212201f550efbdf5179924f2462a8892f1e579b339bcb2bd95aef86c10a38c1b1248564736f6c634300081a003360a0806040523461040957611ea9803803809161001c828561066b565b83398101906040818303126104095780516001600160401b038111610409578261004791830161068e565b60208201519092906001600160401b03811161040957610067920161068e565b5f606060405161007681610650565b8281528260208201528260408201520152739d6891a6240d6130c54ae243d8005063d05fe14b60606040516100aa81610650565b73fee8407e2f5e3ee68ad77cae98c434e637f516e5815273687408ab54661ba0b4aef3a44156c616c6955e07602082015273fb03be574d14c256d56f09a198b586bdfc0a9de26040820152015273fee8407e2f5e3ee68ad77cae98c434e637f516e560018060a01b03195f80516020611e298339815191525416175f80516020611e298339815191525573687408ab54661ba0b4aef3a44156c616c6955e0760018060a01b03195f80516020611e698339815191525416175f80516020611e698339815191525573fb03be574d14c256d56f09a198b586bdfc0a9de260018060a01b03195f80516020611e898339815191525416175f80516020611e8983398151915255739d6891a6240d6130c54ae243d8005063d05fe14b60018060a01b03195f80516020611e498339815191525416175f80516020611e4983398151915255331561063d57600180546001600160a01b03199081169091555f805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a381516001600160401b03811161055057600254600181811c91168015610633575b602082101461053257601f81116105d0575b50602092601f821160011461056f57928192935f92610564575b50508160011b915f199060031b1c1916176002555b80516001600160401b03811161055057600354600181811c91168015610546575b602082101461053257601f81116104cf575b50602091601f821160011461046f579181925f92610464575b50508160011b915f199060031b1c1916176003555b5f5b60ff81169060028211610440575f80516020611e6983398151915254604051631ce2e8d760e31b815260048101849052600160f91b60248201529290602090849060449082905f906001600160a01b03165af19283156103fe575f9361040d575b505f9081526007602052604090208290555f80516020611e29833981519152546001600160a01b031691823b15610409575f92604484926040519586938492631974142760e21b845260048401523060248401525af19182156103fe5760ff926103ee575b501660ff81146103da57600101610302565b634e487b7160e01b5f52601160045260245ffd5b5f6103f89161066b565b5f6103c8565b6040513d5f823e3d90fd5b5f80fd5b9092506020813d8211610438575b816104286020938361066b565b810103126104095751915f610363565b3d915061041b565b600260805260405161174590816106e48239608051818181610c8d0152610f910152f35b015190505f806102eb565b601f1982169260035f52805f20915f5b8581106104b75750836001951061049f575b505050811b01600355610300565b01515f1960f88460031b161c191690555f8080610491565b9192602060018192868501518155019401920161047f565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c81019160208410610528575b601f0160051c01905b81811061051d57506102d2565b5f8155600101610510565b9091508190610507565b634e487b7160e01b5f52602260045260245ffd5b90607f16906102c0565b634e487b7160e01b5f52604160045260245ffd5b015190505f8061028a565b601f1982169360025f52805f20915f5b8681106105b857508360019596106105a0575b505050811b0160025561029f565b01515f1960f88460031b161c191690555f8080610592565b9192602060018192868501518155019401920161057f565b60025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace601f830160051c81019160208410610629575b601f0160051c01905b81811061061e5750610270565b5f8155600101610611565b9091508190610608565b90607f169061025e565b631e4fbdf760e01b5f525f60045260245ffd5b608081019081106001600160401b0382111761055057604052565b601f909101601f19168101906001600160401b0382119082101761055057604052565b81601f82011215610409578051906001600160401b03821161055057604051926106c2601f8401601f19166020018561066b565b8284526020838301011161040957815f9260208093018386015e830101529056fe6080806040526004361015610012575f80fd5b5f905f3560e01c90816306e928fd14610a575750806306fdde031461099a578063095ea7b31461097257806318160ddd1461094757806323b872dd146109175780632893c5b014610734578063313ce5671461071857806367a74a28146106fa57806370a08231146106c1578063715018a61461065c57806379ba5097146105d75780637b7e0a5a146105b95780638da5cb5b1461059257806395d89b41146104815780639a0943521461041f5780639dbead42146102ac578063a5184baf14610268578063a9059cbb14610236578063b32c1001146101fb578063dd62ed3e146101a8578063e30c39781461017f5763f2fde38b14610110575f80fd5b3461017c57602036600319011261017c57610129610afd565b610131611324565b600180546001600160a01b0319166001600160a01b0392831690811790915582549091167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b80fd5b503461017c578060031936011261017c576001546040516001600160a01b039091168152602090f35b503461017c57604036600319011261017c5760406101c4610afd565b916101cd610b13565b9260018060a01b031681526005602052209060018060a01b03165f52602052602060405f2054604051908152f35b503461017c5761022a61021e61022461021336610b7b565b949192943691610f26565b9061134a565b90610bf8565b50602060405160018152f35b503461017c57604036600319011261017c57602061025e610255610afd565b60243590610f6c565b6040519015158152f35b503461017c57602036600319011261017c5760043560065481101561029d578160409160209352600883522054604051908152f35b63d65c1f3360e01b8252600482fd5b503461017c57602036600319011261017c5760043567ffffffffffffffff811680910361041b5733825260046020528160408120548015610409575b5f805160206116f083398151915254604051638c14cc2160e01b8152600481019290925260248201849052600160f81b6044830152909160209183916064918391906001600160a01b03165af180156103fe5783906103c6575b6103669150338452600460205280604085205561035f30826115bf565b33906115bf565b6001549067ffffffffffffffff8260a01c160367ffffffffffffffff81116103b25767ffffffffffffffff60a01b1990911660a09190911b67ffffffffffffffff60a01b161760015580f35b634e487b7160e01b83526011600452602483fd5b506020813d6020116103f6575b816103e060209383610bc2565b810103126103f2576103669051610342565b5f80fd5b3d91506103d3565b6040513d85823e3d90fd5b506020610414611679565b90506102e8565b5080fd5b503461017c57608036600319011261017c57610439610afd565b610441610b13565b6064359267ffffffffffffffff841161017c575061047b61047361046c61022a953690600401610b4d565b3691610f26565b60443561134a565b91610c4d565b503461017c578060031936011261017c576040519080600354908160011c91600181168015610588575b6020841081146105745783865290811561054d57506001146104f0575b6104ec846104d881860382610bc2565b604051918291602083526020830190610b29565b0390f35b600381527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b939250905b808210610533575090915081016020016104d8826104c8565b91926001816020925483858801015201910190929161051a565b60ff191660208087019190915292151560051b850190920192506104d891508390506104c8565b634e487b7160e01b83526022600452602483fd5b92607f16926104ab565b503461017c578060031936011261017c57546040516001600160a01b039091168152602090f35b503461017c5761022a61021e6105d161021336610b7b565b90610f6c565b503461017c578060031936011261017c57600154336001600160a01b039091160361064957600180546001600160a01b0319908116909155815433918116821783556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b63118cdaa760e01b815233600452602490fd5b503461017c578060031936011261017c57610675611324565b600180546001600160a01b03199081169091558154908116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461017c57602036600319011261017c576020906040906001600160a01b036106e9610afd565b168152600483522054604051908152f35b503461017c578060031936011261017c576020600654604051908152f35b503461017c578060031936011261017c57602060405160068152f35b503461017c57604036600319011261017c5761074e610afd565b60243567ffffffffffffffff81168091036109135761076b611324565b6001600160a01b03821680845260046020526040842054909284918015610901575b5f805160206116f08339815191525460405163f953e42760e01b8152600481019290925260248201859052600160f81b6044830152909260209184916064918391906001600160a01b03165af180156108f65785906108c2575b6108099250848652600460205280604087205561080430826115bf565b6115bf565b81837fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60206040515f198152a36001548167ffffffffffffffff8260a01c160167ffffffffffffffff81116108ae5767ffffffffffffffff60a01b1990911660a09190911b67ffffffffffffffff60a01b16176001556040519081527f9109de113672aaca72ede8bc906f7aafabee865311ac020fb15c71edf94a0a0190602090a280f35b634e487b7160e01b85526011600452602485fd5b506020823d6020116108ee575b816108dc60209383610bc2565b810103126103f25761080991516107e7565b3d91506108cf565b6040513d87823e3d90fd5b50602061090c611679565b905061078d565b8280fd5b503461017c57606036600319011261017c57602061025e610936610afd565b61093e610b13565b60443591610c4d565b503461017c578060031936011261017c57602067ffffffffffffffff60015460a01c16604051908152f35b503461017c57604036600319011261017c57602061025e610991610afd565b60243590610bf8565b503461017c578060031936011261017c576040519080600254908160011c91600181168015610a4d575b6020841081146105745783865290811561054d57506001146109f0576104ec846104d881860382610bc2565b600281527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace939250905b808210610a33575090915081016020016104d8826104c8565b919260018160209254838588010152019101909291610a1a565b92607f16926109c4565b346103f25760203660031901126103f2576001600160a01b03610a78610afd565b165f908152600460205260409020545f805160206116d0833981519152546001600160a01b0316803b156103f2576346ce4e4960e11b8352600483018290523360248401525f908390604490829084905af1918215610af257602092610ae2575b50604051908152f35b5f610aec91610bc2565b5f610ad9565b6040513d5f823e3d90fd5b600435906001600160a01b03821682036103f257565b602435906001600160a01b03821682036103f257565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9181601f840112156103f25782359167ffffffffffffffff83116103f257602083818601950101116103f257565b60606003198201126103f2576004356001600160a01b03811681036103f25791602435916044359067ffffffffffffffff82116103f257610bbe91600401610b4d565b9091565b90601f8019910116810190811067ffffffffffffffff821117610be457604052565b634e487b7160e01b5f52604160045260245ffd5b90610c0d90610c0681611035565b82336110d4565b6040515f1981526001600160a01b039091169033907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590602090a3600190565b91610c5781611035565b6001600160a01b0383165f81815260056020908152604080832033845290915290205493909290610c88858461144a565b9360ff7f0000000000000000000000000000000000000000000000000000000000000000169485600211610eae5760076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5460025f9081527fb7c774451310d1be4108bc180d1b52823cb0ee0274a6c0081bcaf94f115fb96d54909391610d13919084611627565b9083526004602052610d2960408420548761144a565b96602060018060a01b035f805160206116f083398151915254166024604051809781936309c00ffd60e11b83528d60048401525af1938415610af2575f94610ef1575b505f805160206116f083398151915254604051630ccd46b160e31b81526004810195909552602485018490525f6044860181905260209186916064918391906001600160a01b03165af1938415610af2575f94610ebd575b50600111610eae57610de9610dfd9160209460015f526007865260405f205490611627565b610df2816114fd565b5061035f85826115bf565b606460018060a01b035f805160206116f08339815191525416965f6040519889948593630ccd46b160e31b8552600485015260248401528160448401525af1938415610af2575f94610e76575b50610e6c610e6586610e5f86610e719961152a565b87611627565b33836110d4565b611151565b600190565b9493506020853d602011610ea6575b81610e9260209383610bc2565b810103126103f25793519293610e6c610e4a565b3d9150610e85565b63d65c1f3360e01b5f5260045ffd5b9093506020813d602011610ee9575b81610ed960209383610bc2565b810103126103f25751925f610dc4565b3d9150610ecc565b93506020843d602011610f1e575b81610f0c60209383610bc2565b810103126103f2579251926020610d6c565b3d9150610eff565b92919267ffffffffffffffff8211610be45760405191610f50601f8201601f191660200184610bc2565b8294818452818301116103f2578281602093845f960137010152565b90610f7681611035565b335f526004602052610f8c60405f20548261144a565b9060ff7f000000000000000000000000000000000000000000000000000000000000000016600111610eae5760076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5460015f527fb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b82854610e71949161102f91839161101b919087611627565b611024816114fd565b5061080433826115bf565b33611151565b5f805160206116d083398151915254604051632fd514cd60e11b81526004810192909252336024830152602090829060449082906001600160a01b03165afa908115610af2575f91611099575b501561108a57565b632fa38b3f60e01b5f5260045ffd5b90506020813d6020116110cc575b816110b460209383610bc2565b810103126103f2575180151581036103f2575f611082565b3d91506110a7565b6001600160a01b038116939290841561113e576001600160a01b03831694851561112b57906111299495610804925f52600560205260405f20905f526020528260405f205561112330846115bf565b826115bf565b565b85634a1406b160e11b5f5260045260245ffd5b8463e602df0560e01b5f5260045260245ffd5b91926001600160a01b03831692908315611311576001600160a01b0383169485156112fe579061118991611183611679565b91611627565b91845f5260046020525f602060408220548581156112ee575b86156112e0575b5f805160206116f08339815191525460405163f953e42760e01b8152600480820194909452848101909301919091526001600160f81b0319841660448301529092839160649183916001600160a01b03165af1908115610af2575f916112aa575b5092611231611243928561125b9650885f5260046020528060405f205561080430826115bf565b845f52600460205260405f205461152a565b835f5260046020528060405f205561080430826115bf565b6006545f1981019081116112965760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91604051908152a3565b634e487b7160e01b5f52601160045260245ffd5b9390506020843d6020116112d8575b816112c660209383610bc2565b810103126103f257925161123161120a565b3d91506112b9565b506112e9611679565b6111a9565b90506112f8611679565b906111a2565b8563ec442f0560e01b5f5260045260245ffd5b83634b637e8f60e11b5f5260045260245ffd5b5f546001600160a01b0316330361133757565b63118cdaa760e01b5f523360045260245ffd5b6113999160209160018060a01b035f805160206116f08339815191525416905f6040518096819582946302e817ff60e41b84526004840152336024840152608060448401526084830190610b29565b600560f81b606483015203925af1908115610af2575f91611418575b505f805160206116d0833981519152546001600160a01b0316803b156103f2576040516346ce4e4960e11b815260048101839052336024820152905f908290604490829084905af18015610af25761140b575090565b5f61141591610bc2565b90565b90506020813d602011611442575b8161143360209383610bc2565b810103126103f257515f6113b5565b3d9150611426565b9081156114ed575b80156114db575b602090606460018060a01b035f805160206116f08339815191525416935f60405195869485936334a6d7b960e11b8552600485015260248401528160448401525af1908115610af2575f916114ac575090565b90506020813d6020116114d3575b816114c760209383610bc2565b810103126103f2575190565b3d91506114ba565b5060206114e6611679565b9050611459565b90506114f7611679565b90611452565b60065491905f198314611296576111299060018401600655835f5260086020528060405f205530906115bf565b6020905f9281156115af575b80156115a1575b5f805160206116f083398151915254604051638c14cc2160e01b8152600480820194909452848101909301919091526001600160f81b0319841660448301529092839160649183916001600160a01b03165af1908115610af2575f916114ac575090565b506115aa611679565b61153d565b90506115b9611679565b90611536565b5f805160206116d0833981519152546001600160a01b031691823b156103f257604051631974142760e21b815260048101929092526001600160a01b03166024820152905f908290604490829084905af18015610af25761161d5750565b5f61112991610bc2565b9060646020925f60018060a01b035f805160206116f08339815191525416604051968795869463cb3b940760e01b86526004860152602485015260448401525af1908115610af2575f916114ac575090565b5f805160206116f083398151915254604051631ce2e8d760e31b81525f60048201819052600560f81b60248301529091602091839160449183916001600160a01b03165af1908115610af2575f916114ac57509056feed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea601a26469706673582212202b1b5bfaadc0ea53faaa823bd15c2e09954c17af5930a1ebcb6731558fc86c8764736f6c634300081a0033ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea603ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea601ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea602a2646970667358221220eec3bca265471e96b1acb154601d2b1bc65cd5216a22bd732325518652ef446a64736f6c634300081a0033","sourceMap":"1111:5871:6:-:0;;;;;;;;;;;;;-1:-1:-1;;1111:5871:6;;;;-1:-1:-1;;;;;1111:5871:6;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;2018:10;;1273:26:31;1269:95;;-1:-1:-1;1111:5871:6;;2018:10;-1:-1:-1;;;;;;1111:5871:6;;;;;;;;;;2018:10;;-1:-1:-1;;;;;1111:5871:6;;3052:40:31;;-1:-1:-1;3052:40:31;1533:1:6;1111:5871;;-1:-1:-1;;1111:5871:6;1533:1;1111:5871;;;2040:38;1111:5871;;-1:-1:-1;;;;;;1111:5871:6;;;-1:-1:-1;;;;;1111:5871:6;;;;;;;-1:-1:-1;1111:5871:6;;;;;;;;;;;;;;;2155:38;1111:5871;2203:24;1111:5871;;;;;;;;1269:95:31;1322:31;;;-1:-1:-1;1322:31:31;-1:-1:-1;1322:31:31;1111:5871:6;;-1:-1:-1;1322:31:31;1111:5871:6;-1:-1:-1;1111:5871:6;;;;;;-1:-1:-1;1111:5871:6;;;;;-1:-1:-1;1111:5871:6;;;;-1:-1:-1;;;;;1111:5871:6;;;;;;:::o","linkReferences":{"contracts/lib/IndexFundStateManagement.sol":{"IndexFundStateManagement":[{"start":6606,"length":20},{"start":7465,"length":20},{"start":8405,"length":20},{"start":8642,"length":20}]}}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c8063043531b114610a6757806318e707bb14610a3157806344c60582146109c157806344fc4fab14610999578063715018a6146109425780637c7024d61461091a5780638c2d2783146108e85780638c591c6b1461036d5780638da5cb5b146103465780639a36f93214610329578063c9da450814610308578063e57b0faf146102a8578063f2fde38b146102235763ff63aa73146100b3575f80fd5b3461021f5760a036600319011261021f576100cc610af4565b6100d4610ade565b9060443562ffffff811680910361021f57606435908160020b80920361021f576084356001600160a01b038116929083900361021f57610112610bb9565b6001600160a01b03848116949086169290838610156102075761017161017f60029798604051996101428b610a88565b8a5260208a0196875260408a0194855260608a0195865260808a01978852604051928391602083019586610b51565b03601f198101835282610aa4565b5190205f908152602086905260409020955186546001600160a01b039182166001600160a01b031991821617885593516001880180549351945160b81b62ffffff60b81b1662ffffff60a01b60a09690961b959095169183166001600160d01b0319909416939093171792909217905591519390920180549390911692909116919091179055005b61017161017f6002979598604051996101428b610a88565b5f80fd5b3461021f57602036600319011261021f5761023c610af4565b610244610bb9565b6001600160a01b03168015610295575f80546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b631e4fbdf760e01b5f525f60045260245ffd5b3461021f57604036600319011261021f576102c1610af4565b6101716102e86102cf610ade565b6102d7610bb9565b604051928391602083019586610b51565b5190205f5260026020525f60026040822082815582600182015501555f80f35b3461021f57602036600319011261021f57610321610bb9565b600435600555005b3461021f575f36600319011261021f576020600654604051908152f35b3461021f575f36600319011261021f575f546040516001600160a01b039091168152602090f35b3461021f57606036600319011261021f5760043567ffffffffffffffff811161021f573660238201121561021f5780600401356103a981610ac6565b916103b76040519384610aa4565b81835260208301906024829360051b8201019036821161021f57602401915b8183106108c8575050506103e8610ade565b916044356001600160a01b0381169081810361021f57600480546040516325e9181b60e01b81529182018490526001600160a01b03169490602081602481895afa908115610648575f916108a9575b506001600160a01b031615610896576040518060208101928387519091905f5b81811061087457505050610487916014916001600160601b03198760601b16815203600b19810184520182610aa4565b5190209383519461049786610ac6565b956104a56040519788610aa4565b8087526104b4601f1991610ac6565b015f5b81811061083f5750505f5b8551811015610653576001600160a01b036104dd8288610b29565b51166040516325e9181b60e01b8152816004820152602081602481885afa908115610648575f9161061a575b506001600160a01b03161561060857506001600160a01b0361052b8288610b29565b51166040516105438161017188602083019586610b51565b5190205f52600260205260405f206040519061055e82610a88565b80546001600160a01b0390811680845260018301548083166020860181905260a082901c62ffffff16604087015260b89190911c600290810b60608701529093015490911660808401521590816105ff575b506105d557906001916105c3828a610b29565b526105ce8189610b29565b50016104c2565b856001600160a01b036105e8848a610b29565b511663a17a1d7b60e01b5f5260045260245260445ffd5b9050158a6105b0565b63a24a6aed60e01b5f5260045260245ffd5b61063b915060203d8111610641575b6106338183610aa4565b810190610b0a565b8a610509565b503d610629565b6040513d5f823e3d90fd5b508386868985855f52600160205260018060a01b0360405f205416610810576003549160055460ff60075416926040519761504c808a01978a891067ffffffffffffffff8a11176107fc576106c1908b9a9998979695949392610be08c396101408952610140890190610b7d565b9360018060a01b031660208801526040870152306060870152608086015260018060a01b03841660a086015260c085015283810360e0850152602080865192838152019501905f5b81811061079e57505050906101209161010084015260a01c91015203905ff090811561064857600354918260a01c926001600160601b03841461078a576001600160a01b0319600194850160a01b81166001600160a01b03928316176003555f93845260209485526040938490208054939092169216821790559051908152f35b634e487b7160e01b5f52601160045260245ffd5b825180516001600160a01b0390811689526020828101518216818b015260408084015162ffffff16908b015260608084015160020b908b01526080928301519091169189019190915289985060a09097019690920191600101610709565b634e487b7160e01b5f52604160045260245ffd5b6040805163252fde1160e21b8152600481019190915280866108356044830187610b7d565b9060248301520390fd5b60209060405161084e81610a88565b5f81525f838201525f60408201525f60608201525f608082015282828b010152016104b7565b82516001600160a01b0316845285945060209384019390920191600101610457565b8263a24a6aed60e01b5f5260045260245ffd5b6108c2915060203d602011610641576106338183610aa4565b87610437565b82356001600160a01b038116810361021f578152602092830192016103d6565b3461021f57602036600319011261021f576004355f526001602052602060018060a01b0360405f205416604051908152f35b3461021f575f36600319011261021f576004546040516001600160a01b039091168152602090f35b3461021f575f36600319011261021f5761095a610bb9565b5f80546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461021f575f36600319011261021f576003546040516001600160a01b039091168152602090f35b3461021f57602036600319011261021f576004355f52600260205260a060405f20600180831b03815416906001810154906002600180861b039101541690604051928352600180851b038116602084015262ffffff81851c16604084015260b81c60020b60608301526080820152f35b3461021f57602036600319011261021f5760043560ff811680910361021f57610a58610bb9565b60ff1960075416176007555f80f35b3461021f57602036600319011261021f57610a80610bb9565b600435600655005b60a0810190811067ffffffffffffffff8211176107fc57604052565b90601f8019910116810190811067ffffffffffffffff8211176107fc57604052565b67ffffffffffffffff81116107fc5760051b60200190565b602435906001600160a01b038216820361021f57565b600435906001600160a01b038216820361021f57565b9081602091031261021f57516001600160a01b038116810361021f5790565b8051821015610b3d5760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b90916028926001600160601b03199060601b1682526001600160601b03199060601b1660148201520190565b90602080835192838152019201905f5b818110610b9a5750505090565b82516001600160a01b0316845260209384019390920191600101610b8d565b5f546001600160a01b03163303610bcc57565b63118cdaa760e01b5f523360045260245ffdfe6080806040523461075a5761504c803803809161001c8285610832565b833981016101408282031261075a5781516001600160401b03811161075a57820181601f8201121561075a57805161005381610855565b916100616040519384610832565b818352602083016020819360051b8301019185831161075a57602001905b8282106107ff575050506100956020850161086c565b6100a16040860161086c565b916100ae6060870161086c565b936100bb6080880161086c565b956100c860a0890161086c565b60c089015160e08a01519098906001600160401b03811161075a578a019280601f8501121561075a578351906100fd82610855565b9461010b6040519687610832565b8286526020860191602060a08495028301019181831161075a57602001925b82841061076657505050506101008b01519a60ff8c168c0361075a5761012001516001600160601b03811699908a900361075a57600180555f606060405161017181610817565b8281528260208201528260408201520152739d6891a6240d6130c54ae243d8005063d05fe14b60606040516101a581610817565b73fee8407e2f5e3ee68ad77cae98c434e637f516e580825273687408ab54661ba0b4aef3a44156c616c6955e07602080840182905273fb03be574d14c256d56f09a198b586bdfc0a9de2604080860182905295909401959095527fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60080546001600160a01b031990811690931790557fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea6018054831690911790557fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea602805482169092179091557fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60380548216739d6891a6240d6130c54ae243d8005063d05fe14b1790557f93ab6e17f2c461cce6ea5d4ec117e51dda77a64affc2b2c05f8cd440def0e70080549091167333347831500f1e73f0cccbb95c9f86b94d7b112317905551638da5cb5b60e01b81526001600160a01b039290921695919081600481895afa90811561058f575f91610728575b50601a80546001600160a01b0319166001600160a01b0392909216919091179055519068010000000000000000821161059a57600e5482600e558083106106a8575b50600e5f5260205f205f915b83831061060f575050601080546001600160a01b03199081166001600160a01b0395861617909155600f80548216959094169490941790925550506013805462010000600160d01b03191662010000600160d01b031790556011805490911691909117905551906001600160401b03821161059a5768010000000000000000821161059a57600d5482600d558083106105cb575b50600d5f5260205f205f5b8381106105ae57601680546001600160a01b038781166001600160a01b031992831617909255601780549289169290911691909117905588886020806104ee60236104bd8d6104b8602f610472836108bf565b6040519889916d24b73232bc233ab7322a37b5b2b760911b82840152605f60f81b602e8401528051918291018484015e81015f838201520301601f198101885287610832565b6108bf565b6040519384916212519560ea1b828401528051918291018484015e81015f838201520301601f198101835282610832565b60405191611ea991828401906001600160401b0382118583101761059a576105286105369386956131a38739604084526040840190610880565b916020818403910152610880565b03905ff0801561058f57601880546001600160a01b0319166001600160a01b0392909216919091179055601955600f805460ff60a01b191660a09290921b60ff60a01b1691909117905560405161276c9081610a378239f35b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b82516001600160a01b03168183015560209092019160010161041f565b600d5f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb59081019083015b8181106106045750610414565b5f81556001016105f7565b8051805183546001600160a01b039182166001600160a01b0319918216178555602080840151600180880180546040880151606089015160b81b62ffffff60b81b1662ffffff60a01b60a09290921b919091169488166001600160d01b03199092169190911793909317929092179091556080909401516002870180549190941692169190911790915593019260039092019101610380565b80600302906003820403610714578260030260038104840361071457600e5f527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd91820191015b8181106106fc5750610374565b805f600392555f60018201555f6002820155016106ef565b634e487b7160e01b5f52601160045260245ffd5b90506020813d60201161075e575b8161074360209383610832565b8101031261075a576107549061086c565b5f610332565b5f80fd5b3d9150610736565b60a08483031261075a576040519060a082016001600160401b0381118382101761059a576040526107968561086c565b82526107a46020860161086c565b6020830152604085015162ffffff8116810361075a57604083015260608501518060020b810361075a5760608301526080850151906001600160a01b038216820361075a5782602092608060a095015281520193019261012a565b6020809161080c8461086c565b81520191019061007f565b608081019081106001600160401b0382111761059a57604052565b601f909101601f19168101906001600160401b0382119082101761059a57604052565b6001600160401b03811161059a5760051b60200190565b51906001600160a01b038216820361075a57565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6001600160401b03811161059a57601f01601f191660200190565b805f917a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000821015610a0e575b806d04ee2d6d415b85acef8100000000600a9210156109f3575b662386f26fc100008110156109df575b6305f5e1008110156109ce575b6127108110156109bf575b60648110156109b1575b10156109a6575b600a6021600184019361094b856108a4565b946109596040519687610832565b808652610968601f19916108a4565b013660208701378401015b5f1901916f181899199a1a9b1b9c1cb0b131b232b360811b8282061a83530480156109a157600a9091610973565b505090565b600190910190610939565b606460029104930192610932565b61271060049104930192610928565b6305f5e1006008910493019261091d565b662386f26fc1000060109104930192610910565b6d04ee2d6d415b85acef810000000060209104930192610900565b50604091507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000081046108e656fe6080806040526004361015610012575f80fd5b5f905f3560e01c90816301ffc9a714611d565750806305d7d94b14611bc5578063248a9ca314611b935780632f2ff15d14611b545780633352a629146119f557806335c995ec1461165257806336568abe1461160d578063372df775146115e657806338f250ec1461157f5780635b1dac601461156157806375696e7f1461153857806376b150151461151f5780638fe01f0b146115015780639134867c14610f1057806391d1485414610ec757806397771de514610c71578063a217fddf14610c55578063b6f6731214610c2c578063b7064d99146108d8578063c3d02d96146108bb578063d547741f14610874578063e61681ef146105365763fcb74a451461011b575f80fd5b346105335760a036600319011261053357610134611e02565b61013c611e12565b90606435908115928315809303610464576084359182159283150361043c57610163612283565b5f805160206126f7833981519152546001600160a01b0316330361043c57601f546001810180911161051f57601f5560ff166104b5576001600160401b038060135460901c1691169081116104965760043585526009602052604085206001600160a01b03906101db906101d690611f52565b611eba565b511691610477576101ea611fc1565b60185485906001600160a01b0316803b1561047357818091602460405180948193634edf56a160e11b83528860048401525af180156104685761044f575b505061023333612433565b9080604051927f3acb72c06eaa137bacda5d4c12b12db324ae4cec48c4d80544122a8ffb28e28c8880a36318a5f69160e11b8252600c60048301526024820152848160448173__$4bd4e058d5e733e11ce3933a38e00d3f30$__5af490811561044457859161039d575b50818552601b602052604085208151916001600160401b03831161038957600160401b8311610389578154838355808410610363575b5060200190865260208620865b83811061034f57505050508352601c602052604083209060ff8019835416911617905561030f575b6001805580f35b60135460ff8160081c1660ff811461033b57600161ff00910160081b169061ff00191617601355610308565b634e487b7160e01b83526011600452602483fd5b6001906020845194019381840155016102e0565b828852836020892091820191015b81811061037e57506102d3565b888155600101610371565b634e487b7160e01b87526041600452602487fd5b90503d8086833e6103ae8183611e28565b81019060208183031261043c578051906001600160401b03821161044057019080601f8301121561043c578151916001600160401b038311610389578260051b9060208201936104016040519586611e28565b845260208085019282010192831161043857602001905b828210610428575050505f61029d565b8151815260209182019101610418565b8780fd5b8580fd5b8680fd5b6040513d87823e3d90fd5b8161045991611e28565b61046457845f610228565b8480fd5b6040513d84823e3d90fd5b5080fd5b8490610484604493612433565b633721f7cb60e01b8352600452602452fd5b846044916104a333612433565b6353d6b89960e11b8352600452602452fd5b6018546104ca906001600160a01b0316612433565b61051b6104d633612433565b926104e030612433565b604051948594638443530d60e01b86526004860192936001600160401b03919594606093608086019786526020860152604085015216910152565b0390fd5b634e487b7160e01b87526011600452602487fd5b80fd5b503461053357602036600319011261053357610550611dbf565b6001600160a01b038116808352601e60205260408320549091906001600160401b0316801561082f57828452601e60205260408420805467ffffffffffffffff1916905560165484906001600160a01b0316803b156104735781809160246040518094819363dc412e8360e01b83528860048401525af180156104685761081a575b5073__$4bd4e058d5e733e11ce3933a38e00d3f30$__6040519263304e078360e01b8452600c60048501526024840152604083604481845af4801561046857829383916107e1575b507faf7c505ee772ec188af7067e1f73db08ab028e3d564273442b907742b9c41fa0602061064787612433565b604051908152a260ff6013541660ff600f5460a01c161461076c575b505061066d611fc1565b6019548015610719576106896001600160401b03918693611fa3565b169260018060a01b036018541690813b156107155782916044839260405194859384926302893c5b60e41b845260048401528960248401525af1801561046857610700575b50506106d990612433565b7f0a7d587acc3bafe631c58ed4a25eda1e905acfb47594d1b86b332ae63df225948380a380f35b8161070a91611e28565b61071557825f6106ce565b8280fd5b60405162461bcd60e51b815260206004820152602560248201527f5368617265207072696365206d7573742062652067726561746572207468616e604482015264207a65726f60d81b6064820152608490fd5b803b1561047357816024916040519283809263a52cd1cb60e01b8252600c60048301525af48015610468576107c8575b50807f79154593ad5827af96f232d8b081e8d48c8bad62e5314fd67880b9880b48124091a1835f610663565b816107d291611e28565b6107dd57835f61079c565b8380fd5b9350506040833d604011610812575b816107fd60409383611e28565b8101031261047357602083519301515f61061a565b3d91506107f0565b8161082491611e28565b6107dd57835f6105d2565b60405162461bcd60e51b815260206004820152601d60248201527f4e6f2070656e64696e67206d696e7420666f72207468697320757365720000006044820152606490fd5b5034610533576040366003190112610533576108b7600435610894611da9565b906108b26108ad825f525f602052600160405f20015490565b6122a3565b6123b3565b5080f35b503461053357806003193601126105335760208054604051908152f35b5034610533578060031936011261053357338152601b602052604081205415610c1157338152601b602052604081206040518082602082945493848152019085526020852092855b818110610bf857505061093592500382611e28565b338252601c6020528160ff604082205416338252601b6020526040822080549083815581610bd8575b505015610a2f575060ff60135460081c1660ff600f5460a01c1611610a2057819073__$4bd4e058d5e733e11ce3933a38e00d3f30$__803b15610a1c576109d19183916040518080958194630881151960e01b8352600c6004840152336024840152606060448401526064830190612250565b03915af4801561046857610a07575b50807ee2d681c483528119b71f74ebcd6ad9dd9ca7fd71ea2245aa2362e27d3f2eb691a180f35b81610a1191611e28565b61053357805f6109e0565b5050fd5b634cc203a560e11b8252600482fd5b610a6a91602060018060a01b03601654169160405180958192632e128d5b60e11b8352600c6004840152604060248401526044830190612250565b038173__$4bd4e058d5e733e11ce3933a38e00d3f30$__5af4928315610468578293610b9d575b5060175460165460405163095ea7b360e01b81526001600160a01b0391821660048201526024810186905291602091839160449183918891165af18015610b9257610b65575b50803b1561047357818091602460405180948193630ea598cb60e41b83528860048401525af1801561046857610b50575b5050610b139061250f565b338252601d6020526040822055338152601d602052610b36336040832054612682565b338152601d602052610b4d60408220543090612682565b80f35b81610b5a91611e28565b61047357815f610b08565b610b869060203d602011610b8b575b610b7e8183611e28565b810190611e5d565b610ad7565b503d610b74565b6040513d85823e3d90fd5b915091506020813d602011610bd0575b81610bba60209383611e28565b81010312610bcc57829051915f610a91565b5f80fd5b3d9150610bad565b835260208320908101905b8181101561095e579283558492600101610be3565b8454835260019485019486945060209093019201610920565b602490610c1d33612433565b63cd7a4aa560e01b8252600452fd5b50346105335780600319360112610533576016546040516001600160a01b039091168152602090f35b5034610533578060031936011261053357602090604051908152f35b503461053357606036600319011261053357610c8b611e02565b610c93611e12565b90610c9c612283565b5f805160206126f7833981519152546001600160a01b031633036107155760205460018101809111610eb3576020556004358352600960205260018060a01b03610ceb6101d660408620611f52565b51169060ff60018060a01b03601654169116610ea9578390610d0c83612433565b6001600160401b03610d1d30612433565b951694610d298661250f565b917ffdda383f98b7ae2bbc9363df5694616f2c7890613a6dc6e80c9328c1186d95ef8580a46001600160401b0360135460901c168411610d86575b5052601e60205260408220906001600160401b03198254161790556001805580f35b610d8f8461250f565b5f805160206126d7833981519152546001600160a01b0316803b156107dd576040516346ce4e4960e11b8152600481018390526001600160a01b03841660248201529084908290604490829084905af1908115610e89578491610e94575b505060405163a9059cbb60e01b81526001600160a01b038516600482015260248101919091529160209183916044918391905af18015610e8957610e6c575b507f6f59438bec28ae7fde9ad29d1b94c360525f0ffd036127ccc684c82eb8cbc7a26040610e5983612433565b8151908152846020820152a1825f610d64565b610e849060203d602011610b8b57610b7e8183611e28565b610e2c565b6040513d86823e3d90fd5b81610e9e91611e28565b61071557825f610ded565b6104ca9150612433565b634e487b7160e01b84526011600452602484fd5b5034610533576040366003190112610533576040610ee3611da9565b91600435815280602052209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b5034610533576060366003190112610533576044356001600160401b03811161047357610f71602080610f4960a4943690600401611dd5565b9390610f53612283565b610f69610f61368784611e75565b600435612565565b943691611e75565b60018060a01b035f80516020612717833981519152541690866040519687809581946302e817ff60e41b83526024356004840152336024840152608060448401528051918291826084860152018484015e83838284010152836064830152601f801991011681010301925af1918215610b925783926114cd575b505f805160206126d78339815191525483906001600160a01b0316803b15610473576040516346ce4e4960e11b8152600481018590523360248201529082908290604490829084905af18015610468576114b8575b50506018546040516306e928fd60e01b81523360048201526001600160a01b0390911692909160208360248188885af1928315610444578593611484575b508281938215611474575b15611462575b602090606460018060a01b035f805160206127178339815191525416958860405197889485936334a6d7b960e11b8552600485015260248401528160448401525af192831561044457859361142e575b505f805160206126d78339815191525485906001600160a01b0316803b15610473576040516346ce4e4960e11b8152600481018490526001600160a01b03871660248201529082908290604490829084905af1801561046857611419575b50506040516323b872dd60e01b81523360048201523060248201526044810182905260208160648189895af180156113f1576113fc575b50604051630cf4e94560e31b8152602081600481885afa9081156113f15786916113bf575b505f1981019081116113ab5760209060246040518097819363a5184baf60e01b835260048301525afa938415610444578594611377575b50604051936111e060a086611e28565b6004855260803660208701376111f585611eba565b526111ff84611edb565b5282516002101561136357606083015281516003101561134f576080820152606442019081421161033b575f805160206126d78339815191525483906001600160a01b0316803b156104735781604051809263155f840160e21b825260206004830152818381611272602482018a612250565b03925af180156104685761133a575b50505f805160206126f783398151915254604051634c0d927760e01b815260a060048201529260209284926001600160a01b0316918391879183916112ca9060a4840190612250565b9063fcb74a4560e01b6024840152836044840152606483015282608483015203925af18015610468578290611306575b61030891503390612363565b506020813d602011611332575b8161132060209383611e28565b81010312610bcc5761030890516112fa565b3d9150611313565b8161134491611e28565b61071557825f611281565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b84526032600452602484fd5b9093506020813d6020116113a3575b8161139360209383611e28565b81010312610bcc5751925f6111d0565b3d9150611386565b634e487b7160e01b86526011600452602486fd5b90506020813d6020116113e9575b816113da60209383611e28565b81010312610bcc57515f611199565b3d91506113cd565b6040513d88823e3d90fd5b6114149060203d602011610b8b57610b7e8183611e28565b611174565b8161142391611e28565b61046457845f61113d565b9092506020813d60201161145a575b8161144a60209383611e28565b81010312610bcc5751915f6110df565b3d915061143d565b50602061146d6124b9565b905061108f565b935061147e6124b9565b93611089565b9092506020813d6020116114b0575b816114a060209383611e28565b810103126104645751915f61107e565b3d9150611493565b816114c291611e28565b61071557825f611040565b9091506020813d6020116114f9575b816114e960209383611e28565b81010312610bcc5751905f610feb565b3d91506114dc565b50346105335780600319360112610533576020601f54604051908152f35b5034610533578060031936011261053357610b4d611fc1565b50346105335780600319360112610533576018546040516001600160a01b039091168152602090f35b50346105335780600319360112610533576020601954604051908152f35b5034610533578060031936011261053357611598611eff565b90604051918291602083016020845282518091526020604085019301915b8181106115c4575050500390f35b82516001600160a01b03168452859450602093840193909201916001016115b6565b50346105335780600319360112610533576040602091338152601d83522054604051908152f35b503461053357604036600319011261053357611627611da9565b336001600160a01b03821603611643576108b7906004356123b3565b63334bd91960e11b8252600482fd5b5034610533576040366003190112610533576024356001600160401b03811161047357906116a861168a610f61933690600401611dd5565b9390611694612283565b6016546001600160a01b0316943691611e75565b5f805160206126d7833981519152546001600160a01b0316803b15610715576040516346ce4e4960e11b8152600481018390526001600160a01b03851660248201529083908290604490829084905af18015610b92579083916119e0575b50506040516323b872dd60e01b81523360048201523060248201526044810182905260208160648186885af18015610b92576119c3575b50604051630cf4e94560e31b8152602081600481875afa908115610b92578391611991575b501561195857604051630cf4e94560e31b8152602081600481875afa908115610b92578391611926575b505f19810190811161033b5782936024602092604051958693849263a5184baf60e01b845260048401525af1918215610b925783926118f2575b50604051916117d6606084611e28565b6002835260403660208501376117eb83611eba565b526117f582611edb565b52606442019081421161033b575f805160206126d78339815191525483906001600160a01b0316803b156104735781604051809263155f840160e21b82526020600483015281838161184a602482018a612250565b03925af18015610468576118dd575b50505f805160206126f783398151915254604051634c0d927760e01b815260a060048201529260209284926001600160a01b0316918391879183916118a29060a4840190612250565b906397771de560e01b6024840152836044840152606483015282608483015203925af180156104685782906113065761030891503390612363565b816118e791611e28565b61071557825f611859565b9091506020813d60201161191e575b8161190e60209383611e28565b81010312610bcc5751905f6117c6565b3d9150611901565b90506020813d602011611950575b8161194160209383611e28565b81010312610bcc57515f61178c565b3d9150611934565b60405162461bcd60e51b8152602060048201526011602482015270139bc8195c9c9bdc881c9958dbdc991959607a1b6044820152606490fd5b90506020813d6020116119bb575b816119ac60209383611e28565b81010312610bcc57515f611762565b3d915061199f565b6119db9060203d602011610b8b57610b7e8183611e28565b61173d565b816119ea91611e28565b61047357815f611706565b5034610bcc576020366003190112610bcc57611a0f611dbf565b6001600160a01b0381165f818152601d60205260409020549190611a316124b9565b5f918252601d6020526040909120556016545f805160206126d7833981519152546001600160a01b03918216929116803b15610bcc576040516346ce4e4960e11b8152600481018590526001600160a01b0384166024820152905f908290604490829084905af18015611b4957611b2a575b5060405163a9059cbb60e01b81526001600160a01b03909116600482015260248101929092526020908290818581604481015b03925af1801561046857611b0d575b507f875fc5b1c93e96a85172e0d2b74fcdb6f314c3460e99e6a7da8743bc8b75e37c8180a180f35b611b259060203d602011610b8b57610b7e8183611e28565b611ae5565b611ad69391945091611b3e5f602094611e28565b5f9491935091611aa3565b6040513d5f823e3d90fd5b34610bcc576040366003190112610bcc57611b91600435611b73611da9565b90611b8c6108ad825f525f602052600160405f20015490565b6122db565b005b34610bcc576020366003190112610bcc576020611bbd6004355f525f602052600160405f20015490565b604051908152f35b34610bcc575f366003190112610bcc57601a546001600160a01b03163303611cfa57611bef612283565b6012548015611cc357601754601a5460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810193909352602091839160449183915f91165af1908115611b49575f91611ca4575b5015611c50575f60125560018055005b60405162461bcd60e51b815260206004820152602660248201527f4661696c656420746f2073656e64206665657320746f2070726f746f636f6c2060448201526537bbb732b91760d11b6064820152608490fd5b611cbd915060203d602011610b8b57610b7e8183611e28565b81611c40565b60405162461bcd60e51b815260206004820152600f60248201526e139bc81999595cc81d1bc81cd95b99608a1b6044820152606490fd5b60405162461bcd60e51b815260206004820152602e60248201527f4f6e6c79207468652070726f746f636f6c206f776e65722063616e2063616c6c60448201526d103a3434b990333ab731ba34b7b760911b6064820152608490fd5b34610bcc576020366003190112610bcc576004359063ffffffff60e01b8216809203610bcc57602091637965db0b60e01b8114908115611d98575b5015158152f35b6301ffc9a760e01b14905083611d91565b602435906001600160a01b0382168203610bcc57565b600435906001600160a01b0382168203610bcc57565b9181601f84011215610bcc578235916001600160401b038311610bcc5760208381860195010111610bcc57565b6024359060ff82168203610bcc57565b604435906001600160401b0382168203610bcc57565b90601f801991011681019081106001600160401b03821117611e4957604052565b634e487b7160e01b5f52604160045260245ffd5b90816020910312610bcc57518015158103610bcc5790565b9291926001600160401b038211611e495760405191611e9e601f8201601f191660200184611e28565b829481845281830111610bcc578281602093845f960137010152565b805115611ec75760200190565b634e487b7160e01b5f52603260045260245ffd5b805160011015611ec75760400190565b8051821015611ec75760209160051b010190565b60405190600d548083528260208101600d5f5260205f20925f5b818110611f30575050611f2e92500383611e28565b565b84546001600160a01b0316835260019485019487945060209093019201611f19565b90604051918281549182825260208201905f5260205f20925f5b818110611f81575050611f2e92500383611e28565b84546001600160a01b0316835260019485019487945060209093019201611f6c565b8115611fad570490565b634e487b7160e01b5f52601260045260245ffd5b5f90611fcb611eff565b6010545f936001600160a01b03909116905b8251851015612194576001600160a01b03611ff88685611eeb565b51604051630681320d60e51b815291166004820152602081602481865afa8015611b49575f90612162575b6024915060206001600160a01b0361203b8988611eeb565b5116604051938480926370a0823160e01b82523060048301525afa918215611b49575f9261212e575b5060049060206001600160a01b0361207c8a89611eeb565b51166040519384809263313ce56760e01b82525afa918215611b49575f926120f1575b508281029281840414901517156120dd5760ff1690604d82116120dd576120c991600a0a90611fa3565b81018091116120dd57600190940193611fdd565b634e487b7160e01b5f52601160045260245ffd5b9091506020813d8211612126575b8161210c60209383611e28565b81010312610bcc575160ff81168103610bcc57905f61209f565b3d91506120ff565b9091506020813d821161215a575b8161214960209383611e28565b81010312610bcc5751906004612064565b3d915061213c565b506020813d821161218c575b8161217b60209383611e28565b81010312610bcc5760249051612023565b3d915061216e565b6018546040516318160ddd60e01b81529495509093925060209150829060049082906001600160a01b03165afa8015611b49575f90612207575b6001600160401b03915016806121e2575050565b620f4240820291808304620f424014901517156120dd5761220291611fa3565b601955565b506020813d602011612248575b8161222160209383611e28565b81010312610bcc57516001600160401b0381168103610bcc576001600160401b03906121ce565b3d9150612214565b90602080835192838152019201905f5b81811061226d5750505090565b8251845260209384019390920191600101612260565b600260015414612294576002600155565b633ee5aeb560e01b5f5260045ffd5b5f8181526020818152604080832033845290915290205460ff16156122c55750565b63e2517d3f60e01b5f523360045260245260445ffd5b5f818152602081815260408083206001600160a01b038616845290915290205460ff1661235d575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b50505f90565b5f52600960205260405f20805490600160401b821015611e495760018201808255821015611ec7575f5260205f20019060018060a01b03166bffffffffffffffffffffffff60a01b825416179055565b5f818152602081815260408083206001600160a01b038616845290915290205460ff161561235d575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b5f8051602061271783398151915254604051631ce2e8d760e31b81526001600160a01b039283166004820152600760f81b602482015291602091839160449183915f91165af1908115611b49575f9161248a575090565b90506020813d6020116124b1575b816124a560209383611e28565b81010312610bcc575190565b3d9150612498565b5f8051602061271783398151915254604051631ce2e8d760e31b81525f60048201819052600560f81b60248301529091602091839160449183916001600160a01b03165af1908115611b49575f9161248a575090565b5f8051602061271783398151915254604051631ce2e8d760e31b81526004810192909252600560f81b6024830152602090829060449082905f906001600160a01b03165af1908115611b49575f9161248a575090565b6020929183915f8051602061271783398151915254905f60a46040518098819682956302e817ff60e41b84526004840152336024840152608060448401528051918291826084860152018484015e8181018301849052600560f81b6064830152601f01601f191681010301926001600160a01b03165af1918215611b49575f9261264e575b505f805160206126d78339815191525482906001600160a01b0316803b15610bcc576040516346ce4e4960e11b815260048101929092523360248301525f908290818381604481015b03925af18015611b49576126445750565b5f611f2e91611e28565b9091506020813d60201161267a575b8161266a60209383611e28565b81010312610bcc5751905f6125ea565b3d915061265d565b5f805160206126d7833981519152546001600160a01b031691823b15610bcc57604051631974142760e21b815260048101929092526001600160a01b03166024820152905f9082908183816044810161263356feed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60093ab6e17f2c461cce6ea5d4ec117e51dda77a64affc2b2c05f8cd440def0e700ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea601a26469706673582212201f550efbdf5179924f2462a8892f1e579b339bcb2bd95aef86c10a38c1b1248564736f6c634300081a003360a0806040523461040957611ea9803803809161001c828561066b565b83398101906040818303126104095780516001600160401b038111610409578261004791830161068e565b60208201519092906001600160401b03811161040957610067920161068e565b5f606060405161007681610650565b8281528260208201528260408201520152739d6891a6240d6130c54ae243d8005063d05fe14b60606040516100aa81610650565b73fee8407e2f5e3ee68ad77cae98c434e637f516e5815273687408ab54661ba0b4aef3a44156c616c6955e07602082015273fb03be574d14c256d56f09a198b586bdfc0a9de26040820152015273fee8407e2f5e3ee68ad77cae98c434e637f516e560018060a01b03195f80516020611e298339815191525416175f80516020611e298339815191525573687408ab54661ba0b4aef3a44156c616c6955e0760018060a01b03195f80516020611e698339815191525416175f80516020611e698339815191525573fb03be574d14c256d56f09a198b586bdfc0a9de260018060a01b03195f80516020611e898339815191525416175f80516020611e8983398151915255739d6891a6240d6130c54ae243d8005063d05fe14b60018060a01b03195f80516020611e498339815191525416175f80516020611e4983398151915255331561063d57600180546001600160a01b03199081169091555f805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a381516001600160401b03811161055057600254600181811c91168015610633575b602082101461053257601f81116105d0575b50602092601f821160011461056f57928192935f92610564575b50508160011b915f199060031b1c1916176002555b80516001600160401b03811161055057600354600181811c91168015610546575b602082101461053257601f81116104cf575b50602091601f821160011461046f579181925f92610464575b50508160011b915f199060031b1c1916176003555b5f5b60ff81169060028211610440575f80516020611e6983398151915254604051631ce2e8d760e31b815260048101849052600160f91b60248201529290602090849060449082905f906001600160a01b03165af19283156103fe575f9361040d575b505f9081526007602052604090208290555f80516020611e29833981519152546001600160a01b031691823b15610409575f92604484926040519586938492631974142760e21b845260048401523060248401525af19182156103fe5760ff926103ee575b501660ff81146103da57600101610302565b634e487b7160e01b5f52601160045260245ffd5b5f6103f89161066b565b5f6103c8565b6040513d5f823e3d90fd5b5f80fd5b9092506020813d8211610438575b816104286020938361066b565b810103126104095751915f610363565b3d915061041b565b600260805260405161174590816106e48239608051818181610c8d0152610f910152f35b015190505f806102eb565b601f1982169260035f52805f20915f5b8581106104b75750836001951061049f575b505050811b01600355610300565b01515f1960f88460031b161c191690555f8080610491565b9192602060018192868501518155019401920161047f565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c81019160208410610528575b601f0160051c01905b81811061051d57506102d2565b5f8155600101610510565b9091508190610507565b634e487b7160e01b5f52602260045260245ffd5b90607f16906102c0565b634e487b7160e01b5f52604160045260245ffd5b015190505f8061028a565b601f1982169360025f52805f20915f5b8681106105b857508360019596106105a0575b505050811b0160025561029f565b01515f1960f88460031b161c191690555f8080610592565b9192602060018192868501518155019401920161057f565b60025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace601f830160051c81019160208410610629575b601f0160051c01905b81811061061e5750610270565b5f8155600101610611565b9091508190610608565b90607f169061025e565b631e4fbdf760e01b5f525f60045260245ffd5b608081019081106001600160401b0382111761055057604052565b601f909101601f19168101906001600160401b0382119082101761055057604052565b81601f82011215610409578051906001600160401b03821161055057604051926106c2601f8401601f19166020018561066b565b8284526020838301011161040957815f9260208093018386015e830101529056fe6080806040526004361015610012575f80fd5b5f905f3560e01c90816306e928fd14610a575750806306fdde031461099a578063095ea7b31461097257806318160ddd1461094757806323b872dd146109175780632893c5b014610734578063313ce5671461071857806367a74a28146106fa57806370a08231146106c1578063715018a61461065c57806379ba5097146105d75780637b7e0a5a146105b95780638da5cb5b1461059257806395d89b41146104815780639a0943521461041f5780639dbead42146102ac578063a5184baf14610268578063a9059cbb14610236578063b32c1001146101fb578063dd62ed3e146101a8578063e30c39781461017f5763f2fde38b14610110575f80fd5b3461017c57602036600319011261017c57610129610afd565b610131611324565b600180546001600160a01b0319166001600160a01b0392831690811790915582549091167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b80fd5b503461017c578060031936011261017c576001546040516001600160a01b039091168152602090f35b503461017c57604036600319011261017c5760406101c4610afd565b916101cd610b13565b9260018060a01b031681526005602052209060018060a01b03165f52602052602060405f2054604051908152f35b503461017c5761022a61021e61022461021336610b7b565b949192943691610f26565b9061134a565b90610bf8565b50602060405160018152f35b503461017c57604036600319011261017c57602061025e610255610afd565b60243590610f6c565b6040519015158152f35b503461017c57602036600319011261017c5760043560065481101561029d578160409160209352600883522054604051908152f35b63d65c1f3360e01b8252600482fd5b503461017c57602036600319011261017c5760043567ffffffffffffffff811680910361041b5733825260046020528160408120548015610409575b5f805160206116f083398151915254604051638c14cc2160e01b8152600481019290925260248201849052600160f81b6044830152909160209183916064918391906001600160a01b03165af180156103fe5783906103c6575b6103669150338452600460205280604085205561035f30826115bf565b33906115bf565b6001549067ffffffffffffffff8260a01c160367ffffffffffffffff81116103b25767ffffffffffffffff60a01b1990911660a09190911b67ffffffffffffffff60a01b161760015580f35b634e487b7160e01b83526011600452602483fd5b506020813d6020116103f6575b816103e060209383610bc2565b810103126103f2576103669051610342565b5f80fd5b3d91506103d3565b6040513d85823e3d90fd5b506020610414611679565b90506102e8565b5080fd5b503461017c57608036600319011261017c57610439610afd565b610441610b13565b6064359267ffffffffffffffff841161017c575061047b61047361046c61022a953690600401610b4d565b3691610f26565b60443561134a565b91610c4d565b503461017c578060031936011261017c576040519080600354908160011c91600181168015610588575b6020841081146105745783865290811561054d57506001146104f0575b6104ec846104d881860382610bc2565b604051918291602083526020830190610b29565b0390f35b600381527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b939250905b808210610533575090915081016020016104d8826104c8565b91926001816020925483858801015201910190929161051a565b60ff191660208087019190915292151560051b850190920192506104d891508390506104c8565b634e487b7160e01b83526022600452602483fd5b92607f16926104ab565b503461017c578060031936011261017c57546040516001600160a01b039091168152602090f35b503461017c5761022a61021e6105d161021336610b7b565b90610f6c565b503461017c578060031936011261017c57600154336001600160a01b039091160361064957600180546001600160a01b0319908116909155815433918116821783556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b63118cdaa760e01b815233600452602490fd5b503461017c578060031936011261017c57610675611324565b600180546001600160a01b03199081169091558154908116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461017c57602036600319011261017c576020906040906001600160a01b036106e9610afd565b168152600483522054604051908152f35b503461017c578060031936011261017c576020600654604051908152f35b503461017c578060031936011261017c57602060405160068152f35b503461017c57604036600319011261017c5761074e610afd565b60243567ffffffffffffffff81168091036109135761076b611324565b6001600160a01b03821680845260046020526040842054909284918015610901575b5f805160206116f08339815191525460405163f953e42760e01b8152600481019290925260248201859052600160f81b6044830152909260209184916064918391906001600160a01b03165af180156108f65785906108c2575b6108099250848652600460205280604087205561080430826115bf565b6115bf565b81837fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60206040515f198152a36001548167ffffffffffffffff8260a01c160167ffffffffffffffff81116108ae5767ffffffffffffffff60a01b1990911660a09190911b67ffffffffffffffff60a01b16176001556040519081527f9109de113672aaca72ede8bc906f7aafabee865311ac020fb15c71edf94a0a0190602090a280f35b634e487b7160e01b85526011600452602485fd5b506020823d6020116108ee575b816108dc60209383610bc2565b810103126103f25761080991516107e7565b3d91506108cf565b6040513d87823e3d90fd5b50602061090c611679565b905061078d565b8280fd5b503461017c57606036600319011261017c57602061025e610936610afd565b61093e610b13565b60443591610c4d565b503461017c578060031936011261017c57602067ffffffffffffffff60015460a01c16604051908152f35b503461017c57604036600319011261017c57602061025e610991610afd565b60243590610bf8565b503461017c578060031936011261017c576040519080600254908160011c91600181168015610a4d575b6020841081146105745783865290811561054d57506001146109f0576104ec846104d881860382610bc2565b600281527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace939250905b808210610a33575090915081016020016104d8826104c8565b919260018160209254838588010152019101909291610a1a565b92607f16926109c4565b346103f25760203660031901126103f2576001600160a01b03610a78610afd565b165f908152600460205260409020545f805160206116d0833981519152546001600160a01b0316803b156103f2576346ce4e4960e11b8352600483018290523360248401525f908390604490829084905af1918215610af257602092610ae2575b50604051908152f35b5f610aec91610bc2565b5f610ad9565b6040513d5f823e3d90fd5b600435906001600160a01b03821682036103f257565b602435906001600160a01b03821682036103f257565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9181601f840112156103f25782359167ffffffffffffffff83116103f257602083818601950101116103f257565b60606003198201126103f2576004356001600160a01b03811681036103f25791602435916044359067ffffffffffffffff82116103f257610bbe91600401610b4d565b9091565b90601f8019910116810190811067ffffffffffffffff821117610be457604052565b634e487b7160e01b5f52604160045260245ffd5b90610c0d90610c0681611035565b82336110d4565b6040515f1981526001600160a01b039091169033907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590602090a3600190565b91610c5781611035565b6001600160a01b0383165f81815260056020908152604080832033845290915290205493909290610c88858461144a565b9360ff7f0000000000000000000000000000000000000000000000000000000000000000169485600211610eae5760076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5460025f9081527fb7c774451310d1be4108bc180d1b52823cb0ee0274a6c0081bcaf94f115fb96d54909391610d13919084611627565b9083526004602052610d2960408420548761144a565b96602060018060a01b035f805160206116f083398151915254166024604051809781936309c00ffd60e11b83528d60048401525af1938415610af2575f94610ef1575b505f805160206116f083398151915254604051630ccd46b160e31b81526004810195909552602485018490525f6044860181905260209186916064918391906001600160a01b03165af1938415610af2575f94610ebd575b50600111610eae57610de9610dfd9160209460015f526007865260405f205490611627565b610df2816114fd565b5061035f85826115bf565b606460018060a01b035f805160206116f08339815191525416965f6040519889948593630ccd46b160e31b8552600485015260248401528160448401525af1938415610af2575f94610e76575b50610e6c610e6586610e5f86610e719961152a565b87611627565b33836110d4565b611151565b600190565b9493506020853d602011610ea6575b81610e9260209383610bc2565b810103126103f25793519293610e6c610e4a565b3d9150610e85565b63d65c1f3360e01b5f5260045ffd5b9093506020813d602011610ee9575b81610ed960209383610bc2565b810103126103f25751925f610dc4565b3d9150610ecc565b93506020843d602011610f1e575b81610f0c60209383610bc2565b810103126103f2579251926020610d6c565b3d9150610eff565b92919267ffffffffffffffff8211610be45760405191610f50601f8201601f191660200184610bc2565b8294818452818301116103f2578281602093845f960137010152565b90610f7681611035565b335f526004602052610f8c60405f20548261144a565b9060ff7f000000000000000000000000000000000000000000000000000000000000000016600111610eae5760076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5460015f527fb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b82854610e71949161102f91839161101b919087611627565b611024816114fd565b5061080433826115bf565b33611151565b5f805160206116d083398151915254604051632fd514cd60e11b81526004810192909252336024830152602090829060449082906001600160a01b03165afa908115610af2575f91611099575b501561108a57565b632fa38b3f60e01b5f5260045ffd5b90506020813d6020116110cc575b816110b460209383610bc2565b810103126103f2575180151581036103f2575f611082565b3d91506110a7565b6001600160a01b038116939290841561113e576001600160a01b03831694851561112b57906111299495610804925f52600560205260405f20905f526020528260405f205561112330846115bf565b826115bf565b565b85634a1406b160e11b5f5260045260245ffd5b8463e602df0560e01b5f5260045260245ffd5b91926001600160a01b03831692908315611311576001600160a01b0383169485156112fe579061118991611183611679565b91611627565b91845f5260046020525f602060408220548581156112ee575b86156112e0575b5f805160206116f08339815191525460405163f953e42760e01b8152600480820194909452848101909301919091526001600160f81b0319841660448301529092839160649183916001600160a01b03165af1908115610af2575f916112aa575b5092611231611243928561125b9650885f5260046020528060405f205561080430826115bf565b845f52600460205260405f205461152a565b835f5260046020528060405f205561080430826115bf565b6006545f1981019081116112965760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91604051908152a3565b634e487b7160e01b5f52601160045260245ffd5b9390506020843d6020116112d8575b816112c660209383610bc2565b810103126103f257925161123161120a565b3d91506112b9565b506112e9611679565b6111a9565b90506112f8611679565b906111a2565b8563ec442f0560e01b5f5260045260245ffd5b83634b637e8f60e11b5f5260045260245ffd5b5f546001600160a01b0316330361133757565b63118cdaa760e01b5f523360045260245ffd5b6113999160209160018060a01b035f805160206116f08339815191525416905f6040518096819582946302e817ff60e41b84526004840152336024840152608060448401526084830190610b29565b600560f81b606483015203925af1908115610af2575f91611418575b505f805160206116d0833981519152546001600160a01b0316803b156103f2576040516346ce4e4960e11b815260048101839052336024820152905f908290604490829084905af18015610af25761140b575090565b5f61141591610bc2565b90565b90506020813d602011611442575b8161143360209383610bc2565b810103126103f257515f6113b5565b3d9150611426565b9081156114ed575b80156114db575b602090606460018060a01b035f805160206116f08339815191525416935f60405195869485936334a6d7b960e11b8552600485015260248401528160448401525af1908115610af2575f916114ac575090565b90506020813d6020116114d3575b816114c760209383610bc2565b810103126103f2575190565b3d91506114ba565b5060206114e6611679565b9050611459565b90506114f7611679565b90611452565b60065491905f198314611296576111299060018401600655835f5260086020528060405f205530906115bf565b6020905f9281156115af575b80156115a1575b5f805160206116f083398151915254604051638c14cc2160e01b8152600480820194909452848101909301919091526001600160f81b0319841660448301529092839160649183916001600160a01b03165af1908115610af2575f916114ac575090565b506115aa611679565b61153d565b90506115b9611679565b90611536565b5f805160206116d0833981519152546001600160a01b031691823b156103f257604051631974142760e21b815260048101929092526001600160a01b03166024820152905f908290604490829084905af18015610af25761161d5750565b5f61112991610bc2565b9060646020925f60018060a01b035f805160206116f08339815191525416604051968795869463cb3b940760e01b86526004860152602485015260448401525af1908115610af2575f916114ac575090565b5f805160206116f083398151915254604051631ce2e8d760e31b81525f60048201819052600560f81b60248301529091602091839160449183916001600160a01b03165af1908115610af2575f916114ac57509056feed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea601a26469706673582212202b1b5bfaadc0ea53faaa823bd15c2e09954c17af5930a1ebcb6731558fc86c8764736f6c634300081a0033ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea603ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea601ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea602a2646970667358221220eec3bca265471e96b1acb154601d2b1bc65cd5216a22bd732325518652ef446a64736f6c634300081a0033","sourceMap":"1111:5871:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1111:5871:6;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1111:5871:6;;;;;;;;;1500:62:31;;:::i;:::-;-1:-1:-1;;;;;1111:5871:6;;;;;;;;;5442:18;;;1111:5871;;;5515:35;;1111:5871;;;;;;;;;:::i;:::-;;;;5555:175;;1111:5871;;;;5555:175;;1111:5871;;;;5555:175;;1111:5871;;;;5555:175;;1111:5871;;;;;5515:35;;;1111:5871;5515:35;;;;;:::i;:::-;;3074:41;;5515:35;;;;;;:::i;:::-;1111:5871;5505:46;;1111:5871;;;;;;;;;;;;;1440:25:129;;-1:-1:-1;;;;;1111:5871:6;;;-1:-1:-1;;;;;;1440:25:129;;;;;;1111:5871:6;;-1:-1:-1;1111:5871:6;;1440:25:129;;1111:5871:6;;;;;;-1:-1:-1;;;1111:5871:6;-1:-1:-1;;;1111:5871:6;1440:25:129;;;;;;;;1111:5871:6;;;-1:-1:-1;;;;;;1111:5871:6;;;;;;;;;;;;;;;;;;;;1440:25:129;;1111:5871:6;;;;1440:25:129;;;;;;;;;;1111:5871:6;5438:588;5800:35;;1111:5871;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;1111:5871:6;;;;;;:::i;:::-;1500:62:31;;:::i;:::-;-1:-1:-1;;;;;1111:5871:6;2627:22:31;;2623:91;;1111:5871:6;1440:25:129;;-1:-1:-1;;;;;;1440:25:129;;;;;;-1:-1:-1;;;;;1111:5871:6;;3052:40:31;;1111:5871:6;3052:40:31;1111:5871:6;2623:91:31;2672:31;;;1111:5871:6;2672:31:31;1111:5871:6;;;;;2672:31:31;1111:5871:6;;;;;;-1:-1:-1;;1111:5871:6;;;;;;:::i;:::-;6378:35;;1111:5871;;:::i;:::-;1500:62:31;;:::i;:::-;1111:5871:6;;6378:35;;;1111:5871;6378:35;;;;;:::i;:::-;1111:5871;6368:46;;1111:5871;;6339:28;1111:5871;;;6339:28;1111:5871;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1111:5871:6;;;;1500:62:31;;:::i;:::-;1111:5871:6;;4841:40;1111:5871;;;;;;;;-1:-1:-1;;1111:5871:6;;;;;1472:25;1111:5871;;;;;;;;;;;;;-1:-1:-1;;1111:5871:6;;;;;1440:25:129;1111:5871:6;;-1:-1:-1;;;;;1111:5871:6;;;;;;;;;;;;;;-1:-1:-1;;1111:5871:6;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1111:5871:6;;;;;;;;;;;;;-1:-1:-1;;;2907:46:6;;;;;1111:5871;;;-1:-1:-1;;;;;1111:5871:6;;;;;;;;2907:46;;;;;;;1111:5871;2907:46;;;1111:5871;-1:-1:-1;;;;;;1111:5871:6;2907:60;2903:129;;1111:5871;;3074:41;1111:5871;3074:41;;;;1111:5871;;;;;;;;;;;;;;;3074:41;1111:5871;;;-1:-1:-1;;;;;1111:5871:6;;;;;;;3074:41;;;;;;;;;;:::i;:::-;1111:5871;3064:52;;1111:5871;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;3074:41;;1111:5871;;:::i;:::-;;;;;;;;;3202:13;;1111:5871;3241:3;1111:5871;;3217:22;;;;;-1:-1:-1;;;;;3281:14:6;;;;:::i;:::-;1111:5871;;;;;;;3313:46;;;1111:5871;3313:46;;1111:5871;;3313:46;1111:5871;3313:46;;;;;;;;;1111:5871;3313:46;;;3241:3;-1:-1:-1;;;;;;1111:5871:6;3313:60;3309:137;;-1:-1:-1;;;;;;3516:14:6;;;;:::i;:::-;1111:5871;;;;3499:44;;;;1111:5871;3499:44;;;;;:::i;:::-;1111:5871;3489:55;;1111:5871;;3583:28;1111:5871;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1111:5871:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3583:28;1111:5871;;;;;;;;;;;;;;;;;;448:51:129;;;3667:102:6;;3241:3;3646:232;;;3891:21;1111:5871;3891:21;;;;;:::i;:::-;;;;;;:::i;:::-;;1111:5871;3202:13;;3646:232;1111:5871;-1:-1:-1;;;;;3836:14:6;1111:5871;;3836:14;:::i;:::-;1111:5871;;3809:54;;;1111:5871;3809:54;1111:5871;;;;;;3809:54;3667:102;3720:49;;448:51:129;3667:102:6;;;3309:137;2990:31;;;1111:5871;3400:31;1111:5871;;;;3400:31;3313:46;;;;1111:5871;3313:46;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1111:5871;;;;;;;;;3217:22;;;;;;;1111:5871;;;;;;;;;;;;;;1440:25:129;1111:5871:6;3932:157;;4321:17;1440:25:129;;1111:5871:6;1440:25:129;1111:5871:6;4405:20;1440:25:129;1111:5871:6;;;;4133:331;;;;;;;;;1111:5871;4133:331;;;;;1440:25:129;4133:331:6;;;;;;;;;;;;;;1440:25:129;;;;;;;;:::i;:::-;1111:5871:6;;;;;;;;1440:25:129;;1111:5871:6;;1440:25:129;;1111:5871:6;4262:4;1111:5871;1440:25:129;;1111:5871:6;;1440:25:129;;1111:5871:6;;;;;;;;;1440:25:129;;1111:5871:6;1440:25:129;;;1111:5871:6;1440:25:129;;;1111:5871:6;1440:25:129;;;1111:5871:6;;;;1440:25:129;;;;;1111:5871:6;;1440:25:129;1111:5871:6;1440:25:129;;;;;;;;;;;;;;;;1111:5871:6;;1440:25:129;;;4133:331:6;;1111:5871;4133:331;;;;;;4321:17;1440:25:129;1111:5871:6;;;;1440:25:129;-1:-1:-1;;;;;1440:25:129;;;;-1:-1:-1;;;;;;1111:5871:6;1440:25:129;;;;;;;-1:-1:-1;;;;;1440:25:129;;;;4321:17:6;1440:25:129;1111:5871:6;;;;;;;;;;;;;1440:25:129;;1111:5871:6;;;;1440:25:129;;;;;;1111:5871:6;;;;;;1440:25:129;1111:5871:6;;;;1440:25:129;;1111:5871:6;1440:25:129;1111:5871:6;;1440:25:129;;;;;;-1:-1:-1;;;;;1111:5871:6;;;;;;1440:25:129;;;;1111:5871:6;;1440:25:129;;;1111:5871:6;;1440:25:129;;;;1111:5871:6;;1440:25:129;;;1111:5871:6;;1440:25:129;;;;3583:28:6;1111:5871;1440:25:129;;;1111:5871:6;;1440:25:129;;;;1111:5871:6;;;1440:25:129;;;1111:5871:6;;;;1440:25:129;;-1:-1:-1;1111:5871:6;1440:25:129;;;;1111:5871:6;;;;;1440:25:129;;;4133:331:6;1111:5871;;;;;;;;;;;3932:157;1111:5871;;;-1:-1:-1;;;4031:47:6;;1111:5871;4031:47;;1440:25:129;;;;1111:5871:6;;1440:25:129;1111:5871:6;1440:25:129;;1111:5871:6;1440:25:129;:::i;:::-;;1111:5871:6;1440:25:129;;1111:5871:6;4031:47;;;1111:5871;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1111:5871:6;;;;;-1:-1:-1;1111:5871:6;;;;;;;;;;;;;2903:129;2990:31;;;;1111:5871;2990:31;1111:5871;;;;2990:31;2907:46;;;;1111:5871;2907:46;1111:5871;2907:46;;;;;;;:::i;:::-;;;;1111:5871;;;-1:-1:-1;;;;;1111:5871:6;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1111:5871:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1111:5871:6;;;;;;;;-1:-1:-1;;;;;1111:5871:6;;;;;;;;;;;;;;-1:-1:-1;;1111:5871:6;;;;1500:62:31;;:::i;:::-;1111:5871:6;1440:25:129;;-1:-1:-1;;;;;;1440:25:129;;;;-1:-1:-1;;;;;1111:5871:6;3052:40:31;1111:5871:6;;3052:40:31;1111:5871:6;;;;;;;-1:-1:-1;;1111:5871:6;;;;1323:32;1111:5871;;;-1:-1:-1;;;;;1111:5871:6;;;;;;;;;;;;;;-1:-1:-1;;1111:5871:6;;;;;;;;1253:63;1111:5871;;;;;;;;;;;;;;1253:63;1111:5871;1253:63;;1111:5871;;1253:63;1111:5871;;;;;1253:63;;1111:5871;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1253:63;1111:5871;;;;;;;;;;;;;;;;-1:-1:-1;;1111:5871:6;;;;;;;;;;;;;;1500:62:31;;:::i;:::-;1111:5871:6;;6927:46;1111:5871;;;6927:46;1111:5871;;;;;;;;;;-1:-1:-1;;1111:5871:6;;;;1500:62:31;;:::i;:::-;1111:5871:6;;6622:26;1111:5871;;;;;;;;;;;;;;;;;:::o;:::-;;;3074:41;;1111:5871;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1111:5871:6;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1111:5871:6;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;1111:5871:6;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1111:5871:6;;;;;;;-1:-1:-1;;;;;1111:5871:6;;;;;;;;;;;:::o;1440:25:129:-;;;1111:5871:6;;;1440:25:129;;;;;1111:5871:6;;1440:25:129;-1:-1:-1;1440:25:129;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1111:5871:6;;;1440:25:129;1111:5871:6;;;;;;;;1440:25:129;;;;1796:162:31;1710:6;1440:25:129;-1:-1:-1;;;;;1111:5871:6;735:10:49;1855:23:31;1851:101;;1796:162::o;1851:101::-;1901:40;;;1710:6;1901:40;735:10:49;1901:40:31;1111:5871:6;;1710:6:31;1901:40","linkReferences":{"contracts/lib/IndexFundStateManagement.sol":{"IndexFundStateManagement":[{"start":6289,"length":20},{"start":7148,"length":20},{"start":8088,"length":20},{"start":8325,"length":20}]}}},"methodIdentifiers":{"createConfidentialIndexFund(address[],address,address)":"8c591c6b","feeDivisor()":"9a36f932","indexTokensAndStablecoinToIndexFund(bytes32)":"8c2d2783","marketDataFetcher()":"7c7024d6","owner()":"8da5cb5b","removeWhitelistedTokenStablecoinPair(address,address)":"e57b0faf","renounceOwnership()":"715018a6","setDefaultSharePrice(uint256)":"c9da4508","setFeeDivisor(uint256)":"043531b1","setNumberOfSwapsToBatch(uint8)":"18e707bb","swapsManagerProxy()":"44fc4fab","tokenStablecoinPairToPoolKey(bytes32)":"44c60582","transferOwnership(address)":"f2fde38b","whitelistTokenStablecoinPair(address,address,uint24,int24,address)":"ff63aa73"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_swapsManagerProxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_markerDataFetcher\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_defaultSharePrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_feeDivisor\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stablecoin\",\"type\":\"address\"}],\"name\":\"CurrencyPairNotWhitelisted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"indexTokens\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"stablecoin\",\"type\":\"address\"}],\"name\":\"IndexFundAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"NoPriceFeedForToken\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"indexTokens\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"encryptedStablecoin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stablecoin\",\"type\":\"address\"}],\"name\":\"createConfidentialIndexFund\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeDivisor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"indexTokensAndStablecoinToIndexFund\",\"outputs\":[{\"internalType\":\"contract IIndexFund\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"marketDataFetcher\",\"outputs\":[{\"internalType\":\"contract MarketDataFetcher\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stablecoin\",\"type\":\"address\"}],\"name\":\"removeWhitelistedTokenStablecoinPair\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newDefaultSharePrice\",\"type\":\"uint256\"}],\"name\":\"setDefaultSharePrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newFeeDivisor\",\"type\":\"uint256\"}],\"name\":\"setFeeDivisor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"newNumberOfSwapsToBatch\",\"type\":\"uint8\"}],\"name\":\"setNumberOfSwapsToBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"swapsManagerProxy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"tokenStablecoinPairToPoolKey\",\"outputs\":[{\"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\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stablecoin\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"name\":\"whitelistTokenStablecoinPair\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This contract is responsible for creating new index funds, managing token-stablecoin pairs, and maintaining global parameters for all index funds. It ensures that only valid token pairs with proper price feeds can be used in index funds.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_defaultSharePrice\":\"Initial share price for new index funds\",\"_feeDivisor\":\"Divisor used to calculate fees for new index funds\",\"_markerDataFetcher\":\"Address of the market data fetcher contract\",\"_swapsManagerProxy\":\"Address of the swaps manager contract\"}},\"createConfidentialIndexFund(address[],address,address)\":{\"details\":\"The function first checks that a pool is referenced in the factory's pool map for each token-stablecoin pair\",\"params\":{\"encryptedStablecoin\":\"The encrypted version of the stablecoin that the index fund is denominated in\",\"indexTokens\":\"The tokens that make up the index fund\",\"stablecoin\":\"The stablecoin that the index fund is denominated in\"},\"returns\":{\"_0\":\"The address of the new index fund\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"removeWhitelistedTokenStablecoinPair(address,address)\":{\"params\":{\"stablecoin\":\"The stablecoin in the pair\",\"token\":\"The token in the pair\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setDefaultSharePrice(uint256)\":{\"params\":{\"newDefaultSharePrice\":\"The new default share price\"}},\"setFeeDivisor(uint256)\":{\"params\":{\"newFeeDivisor\":\"The new fee divisor\"}},\"setNumberOfSwapsToBatch(uint8)\":{\"params\":{\"newNumberOfSwapsToBatch\":\"The new number of swaps to batch\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"whitelistTokenStablecoinPair(address,address,uint24,int24,address)\":{\"params\":{\"fee\":\"The fee for the pair\",\"hooks\":\"The hooks for the pair\",\"stablecoin\":\"The stablecoin in the pair\",\"tickSpacing\":\"The tick spacing for the pair\",\"token\":\"The token in the pair\"}}},\"title\":\"IndexFundFactory\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"createConfidentialIndexFund(address[],address,address)\":{\"notice\":\"Create a new index fund\"},\"removeWhitelistedTokenStablecoinPair(address,address)\":{\"notice\":\"Remove a token-stablecoin pair from the factory's pool map\"},\"setDefaultSharePrice(uint256)\":{\"notice\":\"Set the default share price for new index funds\"},\"setFeeDivisor(uint256)\":{\"notice\":\"Set the fee divisor for new index funds\"},\"setNumberOfSwapsToBatch(uint8)\":{\"notice\":\"Updates the number of swaps that need to be batched before processing.\"},\"whitelistTokenStablecoinPair(address,address,uint24,int24,address)\":{\"notice\":\"Whitelist a token-stablecoin pair by referencing the pool key in the factory's pool map\"}},\"notice\":\"Factory contract for creating and managing confidential index funds.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/IndexFundFactory.sol\":\"IndexFundFactory\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@chainlink/=lib/chainlink/\",\":@ensdomains/=lib/v4-core/node_modules/@ensdomains/\",\":@httpz-contracts/=lib/httpz-contracts/contracts/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/universal-router/=lib/universal-router.git/\",\":@uniswap/v2-core/=lib/v2-core/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/\",\":@uniswap/v4-core/=lib/v4-core/\",\":@uniswap/v4-periphery/=lib/v4-periphery/\",\":chainlink/=lib/chainlink/\",\":ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":fhevm-contracts/=node_modules/fhevm-contracts/\",\":fhevm-core-contracts/=node_modules/fhevm-core-contracts/\",\":fhevm/=node_modules/fhevm/\",\":forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":httpz-contracts/=lib/httpz-contracts/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":permit2/=lib/permit2/\",\":solmate/=lib/permit2/lib/solmate/\",\":universal-router.git/=lib/universal-router.git/\",\":v2-core/=lib/v2-core/contracts/\",\":v3-core/=lib/v3-core/\",\":v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/\",\":v4-core/=lib/v4-core/src/\",\":v4-periphery/=lib/v4-periphery/\"],\"viaIR\":true},\"sources\":{\"contracts/ConfidentialIndexFund.sol\":{\"keccak256\":\"0xac792e087c3600604af05e0abfa3db9fef4e71daf884885606115c672efcc5b7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9454f480f9154f76c365622aa59a1fd9ea36a9b409df31bf13fe6d35e63f64d3\",\"dweb:/ipfs/QmYz5knj2ptBvsdocjk7it2qiv968uytuVmBeHDsvz13xe\"]},\"contracts/ERC20Encryption/ConfidentialERC20Base.sol\":{\"keccak256\":\"0xa622900eae5b1f80c956ec16afec6e4ef6af141d7973b6d52167a86ae988272c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://45dcc2e65f2b601bf132eaae21b1ed2e5dd67c9644e6edcf856ea3274444b04e\",\"dweb:/ipfs/QmR4XvcnxE3JBfPNpLcyvPssdBqtMTd76gm6BWczaSMi9D\"]},\"contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol\":{\"keccak256\":\"0x6f947e91a3369017e4d0147ac44ea39c6f8ffa4a5307d8339481f4e88355a62d\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://27794b1340f9299d7be061aacde65075fca40a1d722e8c5181cee22f257eeb25\",\"dweb:/ipfs/QmT3DReokqZhMtDcEDpkTgf1zG5cZELzPEZDjrqpfEXjWC\"]},\"contracts/ERC20Encryption/ConfidentialERC20WithErrorsWrapped.sol\":{\"keccak256\":\"0x6780cf12626fab34cbe430892929cb2827f948ed6fb613dfb55dda036ced8697\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc3c67659beeff5d21d110cd711c731a52a88293bf120b582f72f2fe4da7bf2d\",\"dweb:/ipfs/QmNbQ9EehknmU6Fui2QpnTSTj7Ft9sbWc95nz3x62fe2Jh\"]},\"contracts/ERC20Encryption/CustomConfidentialERC20WithErrors.sol\":{\"keccak256\":\"0x48800ae20f96fc6ff85e8428faf7c314eceefa7a1349fc3f42479ba82d658431\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://6ab1d91f86b98bcf65f7af820157a9d7cd923f51e60df7897c1e9858f3e3a433\",\"dweb:/ipfs/QmUt2mtzHAHDp2bvkSiXpZdM9okz4mJKFTHjU2YwPjxvxd\"]},\"contracts/ERC20Encryption/CustomConfidentialERC20Wrapped.sol\":{\"keccak256\":\"0xe3f6e6a47070a54952ac2dd5e008c7997322a16e72f4114a2ec48f45e3bc8cea\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://8b47026e8a91b2a0212d621e0b2a8452e7402636f7fbbfe857d8cb6809b9310d\",\"dweb:/ipfs/QmPYT4Q68jt5Yac6x2tdWHrDcBnjLdkY5JqPnLcCpswQxo\"]},\"contracts/IndexFundFactory.sol\":{\"keccak256\":\"0xac7c7b569f43f6d43dc939fc92cdb0067fe040b9c2defce170ab50e2e9634c7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://414818a35254065d728f62d25c432da2c0d027cfa8731e1a74acb9f82b6521b3\",\"dweb:/ipfs/QmPpiFCykJKzoGcW69GXekSkDxN6pfUKaT2jnHZnufKkni\"]},\"contracts/IndexFundToken.sol\":{\"keccak256\":\"0x6d1e6a25f9d42b8d6a080a35f7a3b5349abae3f4a30c136f907cc52778a0fe27\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://1d81c68b7233cba175382a539bfbcfaf92b06197add787b3b429ec98c65c4669\",\"dweb:/ipfs/QmYEwXLUeBFNnK8ZZxYo3pVJe7hZrEMitxbGyrrotbU4yt\"]},\"contracts/interfaces/IIndexFund.sol\":{\"keccak256\":\"0xd9ef0b82a5fbc651233fa570e20487052da9bc9e608d7fec5c54c3259b64b0db\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://2fa0a193b577c89a809b110a6a770068cf8e7c86807d1022b10a44304ada1f90\",\"dweb:/ipfs/QmewwyiHG7fnHucV1zLT5iYLzNiV4ryaBMqMoPmPRgD6WW\"]},\"contracts/interfaces/IIndexFundFactory.sol\":{\"keccak256\":\"0xdaee28098d25d209508346539130902d9e08f32b24aa18fe915c50a829dd62ac\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://1c6a9ccf80750ad63e7a5cdff241d17130ab3e66e41e6647b10504abbf37fb76\",\"dweb:/ipfs/QmRFJFDzeATHcLQCU6yXxVDThzm2xRZaGDZXFaCZK4aVs8\"]},\"contracts/interfaces/IMarketDataFetcher.sol\":{\"keccak256\":\"0xa5343d6d80de89e9e259d51e9fd50444de43f61f6da31c26ad6f49029a47481a\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://e7fb90369df691fd542180e13cc7a881b46ef86dc1fdac4622d19cb292059112\",\"dweb:/ipfs/QmUnvC7eyCdg83tARSBSoEDPKjZHJZ4mKFWdPwSycki3KL\"]},\"contracts/interfaces/ISwapsManager.sol\":{\"keccak256\":\"0xa98bd09c0946399a4f4ae05e713b3207593528df54e8695a4aa4db885b47e894\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://eca854b1cf38859c81648a4bc824aa8e8e7a6347a3b902ceff0d2eb98cff384d\",\"dweb:/ipfs/QmTFzfKREewMg1xjbuCU5DDPbq8Wi1euCzpE2xJ8RAeJi8\"]},\"contracts/lib/IndexFundStateManagement.sol\":{\"keccak256\":\"0x6d55232bd5d80e0082f0adda3f052e62708e9ca7f18e7c439ed775b3ec7cdc43\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89733fef5a9b8efdee13a4a91f518503f9ed3e7449e3debf4ba864f363d0fb21\",\"dweb:/ipfs/QmQ8yyTYoLymoERKzmb6iK6K1ehcpuo4ZbbjQyX5M1t3j1\"]},\"contracts/marketData/MarketDataFetcher.sol\":{\"keccak256\":\"0x982be5c64a69b4e8bac986e1c18affd3686ec1a6dcff4b515c5918b924508997\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf5b5e27288f2a9fa156ecfec63fa84eb13a2b66cf84b17bb26097cd69bc7b7f\",\"dweb:/ipfs/QmW4NcWKfwuyRadWvYe6vB3xyw5pHKLtoNSbjaBG2j13NN\"]},\"contracts/swaps/SwapsManager.sol\":{\"keccak256\":\"0x3d4d9b33ac2e97bafbe46a47fba285246649b3b75473b809706de58bba6abcf5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37ce21e2eca2ebcc4b971680a20cf20d2b6cc929c45b0dc5b5746dc705d77b40\",\"dweb:/ipfs/QmUfrJ5Pzjh8bpM1uCtECD9dHS8jBMrG4T68ufMccXeQvs\"]},\"lib/chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol\":{\"keccak256\":\"0x257a8d28fa83d3d942547c8e129ef465e4b5f3f31171e7be4739a4c98da6b4f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d39e11b1dc7b9b8ccdabbc9be442ab7cda4a81c748f57e316dcb1bcb4a28bf9\",\"dweb:/ipfs/QmaG6vz6W6iEUBsbHSBob5mdcitYxWjoygxREHpsJHfWrS\"]},\"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol\":{\"keccak256\":\"0x8b45e5bb2fd9212f99e61b4d25b9c9d5ed7cb1a9a684aac34f752c568ef16c76\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://1ca71bb5bfbb2f8a0779f8394baeea01680619637abddb572017d05d96862591\",\"dweb:/ipfs/QmPCzGBE1m6WtDZxrVL5jzkduNaS7fjtYovUWdnzN34qjh\"]},\"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20Wrapped.sol\":{\"keccak256\":\"0x7e178a03b7f034532497a8b762069fff0808277befc880e4a3236938ba1380a7\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://7250476c961801e579719fd0201a3ff6bfdc79e8324db34d5ec0c6cecc281281\",\"dweb:/ipfs/QmNsTR2Rk2FRS3cTNf7WeN3UzPZy6HSj1SFV3Nuwz8Rpzi\"]},\"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol\":{\"keccak256\":\"0xe016a085f72ca3cf6d78ec1cb2182a398106cb7d425e984776a9caab0bad2569\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://3e79dc5075469d660908f5f8b6d0c863b14459d60a0b06fb786d58de8cf30a94\",\"dweb:/ipfs/QmePGRGtoWBnQ8T6ZRyZgiwVh4r67kcmWejwKgjyYN4AAY\"]},\"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20Wrapped.sol\":{\"keccak256\":\"0x72c5379fb2a7e1701a4686f60831bfc474350a42f0660aea815a5ce910cba38b\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://118fac79c89e142247e94763a1ca1235c307a67b37d68fa45d94125bc85c2cb8\",\"dweb:/ipfs/QmcE9P74NQQKnmW9vdtGb8KrWgJWH6K3bNTdrMxrPi716c\"]},\"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol\":{\"keccak256\":\"0xfe322c8f9a8e4fba881715901a5bafd2efa23394ecbc9ec84282818baeff0a07\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://13dba831528dd16408b7abab23eac0664a2a3e5ecbfe5e58e6e321cf2921668a\",\"dweb:/ipfs/QmPq4YeugbayWfeBJR8H7s4jHsnZkACQX2xbdNQ4sdvZrk\"]},\"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol\":{\"keccak256\":\"0xecc6289a9791bef254911393b51d2bfbddc5650ede7fbe7b5cc2b8d3eb01d7a6\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://7463278a20bc5d7fd8b7ec2cb8e592b2d1e0afcf8b59d35d6929d18661d4b38c\",\"dweb:/ipfs/QmTKPoABwNDmK7g7vkti1AkTpkUBHu3iX3zsXQsEuSiqBM\"]},\"lib/httpz-contracts/contracts/utils/EncryptedErrors.sol\":{\"keccak256\":\"0x0b8d08f392884add1af672018359e8980ee0b5e1662fe5e36eb31f053d1d4505\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://2903dd49a88b36aba2e8a45548b6a68d203887356ebdf452b10e0148954ba1a5\",\"dweb:/ipfs/QmTRuP4QXagoV2cLr2ctzFtNK7FK1cDXMYm4feMoMsYoWG\"]},\"lib/httpz-contracts/contracts/utils/TFHEErrors.sol\":{\"keccak256\":\"0x5fef7c2d7d4449d724a2800b37dfcc61e2b635f2747378ce222b9187425f2d13\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://7c2ef113faaec2d74c8d958f80687d0b676082d6231720917aaa8aa934d689a3\",\"dweb:/ipfs/QmNn474JDQ5zvVDwEuicJs6Xq8YEXWGZLoW4KeTWDVG31f\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xd861907d1168dcaec2a7846edbaed12feb8bad2d6781dba987be01374f90b495\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12ff809243040419e2fc2aa7ef0aaa60b3e6ebc901553ba1de970ceeef208c4c\",\"dweb:/ipfs/QmX2dwMVNrQAahqVzEx94gqcVB6Z8ovifPYdEfHZzj7aEb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol\":{\"keccak256\":\"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0\",\"dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x8decfa54cec979c824b044b8128cd91d713f72c71fd7dfa54974624d8c949898\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://271f914261a19d87117a777e0924ada545c16191ef9b00cc40b0134fc14ebc70\",\"dweb:/ipfs/QmdvVNWHGHQrGGPonZJs5NuzTevTjZRM2zayKrDJf7WBA2\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x6ef9389a2c07bc40d8a7ba48914724ab2c108fac391ce12314f01321813e6368\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7a5cb39b1e6df68f4dd9a5e76e853d745a74ffb3dfd7df4ae4d2ace6992a171\",\"dweb:/ipfs/QmPbzKR19rdM8X3PLQjsmHRepUKhvoZnedSR63XyGtXZib\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x4ea01544758fd2c7045961904686bfe232d2220a04ecaa2d6b08dac17827febf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fabe6bef5167ae741dd8c22d7f81d3f9120bd61b290762a2e8f176712567d329\",\"dweb:/ipfs/QmSnEitJ6xmf1SSAUeZozD7Gx7h8bNnX3a1ZBzqeivsvVg\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff\",\"dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaaa1d17c1129b127a4a401db2fbd72960e2671474be3d08cae71ccdc42f7624c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb2f27cd3952aa667e198fba0d9b7bcec52fbb12c16f013c25fe6fb52b29cc0e\",\"dweb:/ipfs/QmeuohBFoeyDPZA9JNCTEDz3VBfBD4EABWuWXVhHAuEpKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]},\"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol\":{\"keccak256\":\"0x534bf5c25d6003a8ce50b400d20fa460c03169ad7baa90d47a912917c36dfe2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc0cc39c40ea23d3c46e8517e19ebdd877719d3159fa032f2a91802cdd205c79\",\"dweb:/ipfs/QmSoNh7HTkD4TJcBkBKSGSPMMpLUZKE7s9f2G6mjdaJywg\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x44f87e91783e88415bde66f1a63f6c7f0076f2d511548820407d5c95643ac56c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://13a51bc2b23827744dcf5bad10c69e72528cf015a6fe48c93632cdb2c0eb1251\",\"dweb:/ipfs/QmZwPA47Yqgje1qtkdEFEja8ntTahMStYzKf5q3JRnaR7d\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889\",\"dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/permit2/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0xcdfd8db76b2a3415620e4d18cc5545f3d50de792dbf2c3dd5adb40cbe6f94b10\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://57b3ab70cde374af1cf2c9888636e8de6cf660f087b1c9abd805e9271e19fa35\",\"dweb:/ipfs/QmNrLDBAHYFjpjSd12jerm1AdBkDqEYUUaXgnT854BUZ97\"]},\"lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0xbadf3d708cf532b12f75f78a1d423135954b63774a6d4ba15914a551d348db8a\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://88ac8256bd520d1b8e6f9c4ac9e8777bffdc4a6c8afb1a848f596665779a55b4\",\"dweb:/ipfs/QmXx7X1dxe6f5VM91vgQ5BA4r2eF97GWDcQDrgHytcvfjU\"]},\"lib/permit2/src/interfaces/IAllowanceTransfer.sol\":{\"keccak256\":\"0x37f0ac203b6ef605c9533e1a739477e8e9dcea90710b40e645a367f8a21ace29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0104d72aeaec1cd66cc232e7de7b7ead08608efcc179491b8a66387614670b0\",\"dweb:/ipfs/QmfAZDyuNC9FXXbnJUwqHNwmAK6uRrXxtWEytLsxjskPsN\"]},\"lib/permit2/src/interfaces/IEIP712.sol\":{\"keccak256\":\"0xfdccf2b9639070803cd0e4198427fb0df3cc452ca59bd3b8a0d957a9a4254138\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f7c936ac42ce89e827db905a1544397f8bdf46db34cdb6aa1b90dea42fdb4c72\",\"dweb:/ipfs/QmVgurxo1N31qZqkPBirw9Z7S9tLYmv6jSwQp8R8ur2cBk\"]},\"lib/permit2/src/interfaces/IPermit2.sol\":{\"keccak256\":\"0xaa631cc9f53e699301d94233007110a345e6779011def484e8dd97b8fe0af771\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc0502cf19c9c18f320a3001201e89e350393b75837f6b7971de18b2de06f30d\",\"dweb:/ipfs/QmT9SfhdJ7VJNNrf94g4H5usyi7ShqWGx7Cqsz9jZTjX96\"]},\"lib/permit2/src/interfaces/ISignatureTransfer.sol\":{\"keccak256\":\"0xe6df9966f8841dc3958ee86169c89de97e7f614c81c28b9dc947b12d732df64e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d4eafdee7f48c3be8350a94eb6edd0bfb2af2c105df65787a77174f356c0317\",\"dweb:/ipfs/QmY1j2adeeAhNpn6cUuthemxGCdLXHTfyMh9yTKsY4mZ2d\"]},\"lib/permit2/src/libraries/SafeCast160.sol\":{\"keccak256\":\"0x8a34e2beac108d74f89510c949983212b5f09307a93ee9e17a9d50e93f6bc8e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828697f9567ce617c5c1c8f76b6bcd250e93aea2c4f3ee188be6dff8443c19e7\",\"dweb:/ipfs/QmafxeSPhUc9gGtNDLAw26oZooC5XNLhDMxHxYhJxL5Nwi\"]},\"lib/universal-router.git/contracts/UniversalRouter.sol\":{\"keccak256\":\"0x5c7515720fa9b429bc83f0044f3a02cdd065fe1773b9fd32151dc5ff9042d368\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://dd77517f3a73a07fdff8f3a52c268afca749a678ea11442140d401eb102f4404\",\"dweb:/ipfs/QmeJiwCtgF1rMB7Foi6PrqWEaXktztPGQfHoAsw1BRhLU3\"]},\"lib/universal-router.git/contracts/base/Dispatcher.sol\":{\"keccak256\":\"0x1564339a5163c5d27f06a64f994a7457b061aa0f5046377bcc5078cd6907cc5d\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://82dc3ed71c19d6e5d1f72304e62e360954fc40a4d92a2a94e862c5474490d58d\",\"dweb:/ipfs/QmcNamJcGijcEetbHWVJHNjSE2WCyQsmEGEGDg9ZNwqSjR\"]},\"lib/universal-router.git/contracts/base/Lock.sol\":{\"keccak256\":\"0x92f953dda0d671178d054eeb3915b70f8ba80be33df8670a9146af4a4bc2c6ac\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://f73faac9532c8a8870d31bcef68a0dde387579d7b755c342b3352a54a4b63682\",\"dweb:/ipfs/QmXLvJb6vxfrUG84ASLhEf7tL62MN3oxkp7aXUxemrZTy3\"]},\"lib/universal-router.git/contracts/interfaces/IUniversalRouter.sol\":{\"keccak256\":\"0x2525b52d1edf5df89bfd093c5b933b9e8f65236f44f58096763a6c87a5cafb63\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5cc0fcfedd6b32586099ee0f6781bb81da99175c65013c06bb6f61a125babb18\",\"dweb:/ipfs/QmcEkSzkjkPpp3YyJZaY232TjuNU4Pw6CSiTWz7sk2Sq5D\"]},\"lib/universal-router.git/contracts/libraries/Commands.sol\":{\"keccak256\":\"0xa08ae7be62972a4f17779257641065d41fa5cc2d5fc7050e5e5b76fbda9e6a9f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0b94d73c5cd54aba5e1ad4ccfc33df13c1b04417f53fda188275fc15f95f02f2\",\"dweb:/ipfs/QmNpigDf9g9AAbFr27gug5hAZjb6iuFekRqXonC6upoEcp\"]},\"lib/universal-router.git/contracts/libraries/Constants.sol\":{\"keccak256\":\"0xb668498f11a4bb576a0a61c183da7ca348249dd9176c57dcb6532912b1b49b0e\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://87d8588baf0b7b72faec637843c7623ac416d45e0f7719d0a635afe7981b2cf2\",\"dweb:/ipfs/QmSu7Jr8JM6mab2dddk1UaiPhyLZvsA8iLxC9MEcBUaMzT\"]},\"lib/universal-router.git/contracts/libraries/Locker.sol\":{\"keccak256\":\"0xfccb45f77b5c66f0f417d803b4b3f7ae97206d8d850a383ab7d97f25d0617cc0\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b47f3f4e74961f8e9d918c2cc3514cb8d097caee6ab2c20c10735235dec440ec\",\"dweb:/ipfs/QmfTWUjP7g7zTw67C2RvoMhWRX6ExLNV3UYSb5LqfE4bqC\"]},\"lib/universal-router.git/contracts/libraries/MaxInputAmount.sol\":{\"keccak256\":\"0x2dd6efbcaf9991c852e29a726f9876a0a6d08f2271912e69efa5c6a5e8034739\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://949ebd746eee3589d1e466c738884bd3532043d9e8a7b77c1521a098ba3c69b6\",\"dweb:/ipfs/QmZC9idgGQDfLksqfz41FrcsVXhqkfRZCZH9MJXQkQavt6\"]},\"lib/universal-router.git/contracts/modules/MigratorImmutables.sol\":{\"keccak256\":\"0x666d1622a10509c69b679df9d175a3e0c176a62b9e18d1cee7634219aded8f68\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a88e472495d32648ba3e7964c4c88b68853b49540f40afbaf2ede6822372b49f\",\"dweb:/ipfs/QmQoaWbCpwFYCnRgehM7ruYaa7za8fBghT5aQCRCPYJr1V\"]},\"lib/universal-router.git/contracts/modules/Payments.sol\":{\"keccak256\":\"0x19a103b3269ee2f7bc28a6e1850091b2087dd2558662494d1104ac8e5ac68524\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://ba64c600f57bb13672a5549b6dba11ae4dfe49f688c24eadb3289dcc87d226a8\",\"dweb:/ipfs/QmWkmVyeai1WeymuWqEk1fQE5R2frrQQjJv81cytrKvFuA\"]},\"lib/universal-router.git/contracts/modules/PaymentsImmutables.sol\":{\"keccak256\":\"0x9ca2535b69b15d3bdb7a15871c5bca83f5536cffb0191c64f4c6a2db4a154338\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://dc85fb3ddd19481bf0d1a8a9f5d9631b396d86344a33e30b4c4ab6cd58d51169\",\"dweb:/ipfs/QmeEGFqfHFUo1Mu6tRfCjvVGJYyoDu29ZspZgxxcj6ykvq\"]},\"lib/universal-router.git/contracts/modules/Permit2Payments.sol\":{\"keccak256\":\"0x887ec1f57144cd91a1b86d5a7b1d1119146f41dae6865e6fd0e849801e968628\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://08b713e82f3f192976902497e1c02dd60bf7e90c83a471eb4c7ac7710b086f95\",\"dweb:/ipfs/QmWJSGZ9Dj7FmFCnDWpDdL5fx76JYDgYWhggXCroxV7cjX\"]},\"lib/universal-router.git/contracts/modules/V3ToV4Migrator.sol\":{\"keccak256\":\"0x5ee3774b749b9a8d851dc6074c8de8c61f408a4cfd829c47c753840c839ba91c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://337e17b84f4fdad7e32be0e482e7b2471d7f927ba3b3174cae38cf2509d97443\",\"dweb:/ipfs/QmbzgdyxAC5vpvWRGaemn3Qn7DRbNDjHSH3KbHSDPwJ8LY\"]},\"lib/universal-router.git/contracts/modules/uniswap/UniswapImmutables.sol\":{\"keccak256\":\"0xb810727f5e734a30871ff1d83d8c96d99150f1ce77bb39e032aec6254ca43cd0\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5eb9df8b6c81f8e33b8a6bace294ed0d81c541988f7ba42027e3041eff32e1bd\",\"dweb:/ipfs/QmVPSWBv7WegGySGV4BoewKKx7iAetHsjydxQyKk3dh5yw\"]},\"lib/universal-router.git/contracts/modules/uniswap/v2/UniswapV2Library.sol\":{\"keccak256\":\"0x829d48c1b69d2e1bc078a57aae8d87dc31d920b01c62d6268d20d517fd24150c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b87236ea4c1e64c12434f31abbd658ca3fc510ebe65be731d84d3ce8efa71c32\",\"dweb:/ipfs/QmUerjg5Ebt3pfQZtk2sArUy414gQtHwvFNgsQNe4PhxbN\"]},\"lib/universal-router.git/contracts/modules/uniswap/v2/V2SwapRouter.sol\":{\"keccak256\":\"0x0fcb6ad6c4d5a7b25054dd9951432b2b41cb2c0077e6bc7ca0d0416115ef2326\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://124b1dd54d27914306bdd1021e171111f0ae622fffb2974ccdee24eab31b359d\",\"dweb:/ipfs/QmfKr2sbxdc31aPWv9d6ETA4GyfqHiKVZRKqhREnMkR5j9\"]},\"lib/universal-router.git/contracts/modules/uniswap/v3/BytesLib.sol\":{\"keccak256\":\"0xc3c23e83afd06781c4a0a5c418c20c40611e71d049766eb70987007ce372656e\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://c62989beb75edad6de18c31be31eb68f0c3fb15c5f9e9bb380221afc6785fda5\",\"dweb:/ipfs/QmVEsp5yivbmjP7HcXS5kJ1XJY5Uic3J3y4zjpwD1SNySD\"]},\"lib/universal-router.git/contracts/modules/uniswap/v3/V3Path.sol\":{\"keccak256\":\"0xf6abbf4c7cd0975ddabb0ddb641ea9ae3b0cc1dd9a1cabf5e7cc271a974eabc2\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1e0987fc9b81c65eada64cb65f981680c2054e489a6049d397b5ecbbf4c9a0a9\",\"dweb:/ipfs/QmW7mbbHsfc2GLy2GkCUv3VwXV93y6UFtKDD7E9QEtzFH7\"]},\"lib/universal-router.git/contracts/modules/uniswap/v3/V3SwapRouter.sol\":{\"keccak256\":\"0x31fe8777a6de583c54a0f09ec11d318c253b7fe50c7a2af1608b2b89a03ca660\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://780219ff0d6d333727655719d31d61ce345cdbca7f906467a2d00e3162b3c0aa\",\"dweb:/ipfs/QmbauA5Kvj7m9P9hxe4hhnLY5w2TEXMMnCc9oWehVgj2jo\"]},\"lib/universal-router.git/contracts/modules/uniswap/v4/V4SwapRouter.sol\":{\"keccak256\":\"0x68b7666641ad5ba227b500c9845c4bc71eaaac6556d97d31d123fce41b51969a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://40a99bb5e9e407ad6741f5c210ac23a32950e7567c73f21975444e9729fc6cfb\",\"dweb:/ipfs/QmUK98HjyQ7NDGR36DD9owjLDk7ujEj5b5uKt9zjUsCFG5\"]},\"lib/universal-router.git/contracts/types/RouterParameters.sol\":{\"keccak256\":\"0x9efe9912d44e56cff8fc23e1411c80b47ffc9f5c0ad5ca5c66ab77a1b7ddfcbf\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://473acf49dc1be1ca997ad20258124e26e03b3cef15412a8827ecf9b52e4cef21\",\"dweb:/ipfs/QmaGR2QL6im4XYJpubqhUuP82nFytemX7wwEk4cXECJYJN\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56\",\"dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0xa72de315bd655a0fd5043ff97c7fd3868a1b5b1986afd75c6f5f8fd0f904985f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8838e68aba9caf2b2cb13bd4cb661b1f9c167cca4dfcd50ac72ae96691392df\",\"dweb:/ipfs/QmfLq3cmsSQTuLLxiF4bgceaf2jx8CoiVXQd7BZXGgJG1E\"]},\"lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol\":{\"keccak256\":\"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b\",\"urls\":[\"bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf\",\"dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH\"]},\"lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"lib/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652\",\"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"lib/v3-core/contracts/libraries/SafeCast.sol\":{\"keccak256\":\"0x4c12bf820c0b011f5490a209960ca34dd8af34660ef9e01de0438393d15e3fd8\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://fed11489e218e55d087d42b4f350a30e10cd2aedec8f432bd3cc712f648d5869\",\"dweb:/ipfs/QmWfRnRxyXwHUDcTQPazxYYk5jxErGeQqdvnYtyg5nBPbU\"]},\"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\":\"0x4c9571aed0c2b6ef11832545554fc11ffdb03746daaf5c73683c00600bfc7ec0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e78b34b58ce9de91b91943b4f3cc3ce121d0b151e123e8a600ac5ef64d91db6c\",\"dweb:/ipfs/QmRkaQnPCYwLrXgbpGujJTx32PaZK63KSPJJV1XmnQuCMb\"]},\"lib/v4-core/src/interfaces/IPoolManager.sol\":{\"keccak256\":\"0x3534f00531038e77ab8a7fc4d0a6e0993ee53fb7a396b1324ad917318ea46cea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4a7e771828dc40848485b568a1cf514f553ace6653f4f4d1ad3f3e9cdb6c27\",\"dweb:/ipfs/QmTjzQ7KVYnrEWtxPER2E4MXzycgcznfzSDsZtd5turk5V\"]},\"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/CurrencyReserves.sol\":{\"keccak256\":\"0x1576616129933fcdf3b684cea33cffd9c95e18fafbd2832a8c48ac3d8526d4c3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://33b050efb9b81803b18f562271e7cca2ec5362c4d505860d6419b4a345636725\",\"dweb:/ipfs/QmQtFtTwKZ5pFVGD2ENDUXvp7ECFvzqeCuJ1miJcUHdmiX\"]},\"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/Lock.sol\":{\"keccak256\":\"0x9338be4b5695f1da5f3d3f7a3eeaf7a356c1045458289586ac0cbe9cef77c6d5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://485ec42ed6155469d612a9a0c18068ebfbad74448792a338a435503de3ef1b2c\",\"dweb:/ipfs/QmVnnv5u74MYatfRmBgrcfFYQcsMAJMG9jQ6ju8UiydKNF\"]},\"lib/v4-core/src/libraries/NonzeroDeltaCount.sol\":{\"keccak256\":\"0x0666ebd5d3528d7d52c48538296367a4cff97a578cf13365c51983fae3219b87\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://d27f1be3bd09d85c53d3e6a539dd6529ddd8b2b764ccb47fd7765fc81f9add59\",\"dweb:/ipfs/QmQdZujNXhKEXQBkKtF5jbdvo1yXMqPDUoBBaF9S5u3Kpm\"]},\"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/libraries/TransientStateLibrary.sol\":{\"keccak256\":\"0x7d1e0875747bd89b32c25f1a48da2766e5f4aff1f671ad5f3c0c07ebbbcb946a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d76cfeb1cb60595b41ecc51c8a12fb4bf63a7fc733d0b1a2e3adb55abeb1f9d5\",\"dweb:/ipfs/Qmb8oX7DtsRpw3tTtdWZwGhauj1evq43d3PLwe4nSDAKkV\"]},\"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-periphery/src/V4Router.sol\":{\"keccak256\":\"0x8ede1e538ae9b74984c52347a3bbaee7b3d69f00ed9b3a6db1f1bd6e058a2326\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e370416fa9681ad124414e2b2fb57a5455e15dd873c9e61c964177ae5c2d544\",\"dweb:/ipfs/QmWrM97ezNB9CpawqhkwpubXHcXUbMFWKYEbD3D6EyAe1w\"]},\"lib/v4-periphery/src/base/BaseActionsRouter.sol\":{\"keccak256\":\"0xca1ee500f88951ad351d18ba2adfb5fe23abef6d502f234ce5748a3497674a4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f03ab458be27c29cef1b7ace5b11517d3fef8bf6131af7dd80d6297c224cf71\",\"dweb:/ipfs/QmYoH6o8yeRzbeLoaMG9TjS8q2Fw7T1h4vXvvMnp3XfsUa\"]},\"lib/v4-periphery/src/base/DeltaResolver.sol\":{\"keccak256\":\"0x94a2da2be5c924df65a8e1e29f585bbe4c37777fedd43b45989c66d509a4a83c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42bba590f6e817fd56328b74ae99bfdc4df57386d0a69ee22b9108341953ed36\",\"dweb:/ipfs/QmdusastK7FWYouLz9gvV5J3z8MQbNKLJNNHTrc1vi7DWw\"]},\"lib/v4-periphery/src/base/ImmutableState.sol\":{\"keccak256\":\"0x1867c9fa2f9b4fa73bab0fcdc9d19ccef4eeac552273d8b84a170cd1cc90350a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af2d699b439e13b599632fddfe82718aebd41055fba7c075f186675c588d1337\",\"dweb:/ipfs/Qmc111gckSKb9aESn3wRFLeLiS4KGujaUcaYJgRnCRfwQU\"]},\"lib/v4-periphery/src/base/SafeCallback.sol\":{\"keccak256\":\"0xd78b583df1b9ee06d58e83b84fc9f08971389b34dd34bc13db072e0c13c710da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0a47f4bcd6060c4462153b9a7c52a60a460ace91acb6ddd5492eab28ec26173\",\"dweb:/ipfs/QmdRCTRS1dhFjWEy6z577j4xz9J5HPfHBwcNzAic8G59oT\"]},\"lib/v4-periphery/src/interfaces/IEIP712_v4.sol\":{\"keccak256\":\"0xd7f7115476e307a0bfc32a0f0a0f5434e9e5ca62a6c5af1e18b75e48161bb408\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1600b953556da38a7adc5ad2a2925ec5fb138fecf8eec48743646543195b736\",\"dweb:/ipfs/QmarZi2aiLVAfHXgnDWV1cCFiZk2DdPW7KJnWHqzuRChJR\"]},\"lib/v4-periphery/src/interfaces/IERC721Permit_v4.sol\":{\"keccak256\":\"0x103adbba724ef536abc536fe8a4d7dc12880724c562109b69f2adce4a91fa017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06f51b5a5a218e0bc866a83e7821be53c9db9de0ca921f16abd3d13ea0eab69d\",\"dweb:/ipfs/QmbnhLy992hpQZyphTkj7fpr6jKKVva2AzfmLiDZEuqHAk\"]},\"lib/v4-periphery/src/interfaces/IImmutableState.sol\":{\"keccak256\":\"0x36ab3100e87457ecf04887f4f540e34fd7f21d8e3b83880cb679239e60b7b06b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f290c7ce8e4832608d637a51b13dff95abecf6549485448e647a11c8ed01341\",\"dweb:/ipfs/QmfD1R6mTp8j4EjQXmQZW3vCh11EYFjnvoaw8rXRP27mMq\"]},\"lib/v4-periphery/src/interfaces/IMulticall_v4.sol\":{\"keccak256\":\"0x336bec303f7ff86497d2679464c5adad5040f412b3d0769ce5e1d2a42f7e2c08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7734f047d98d331c8abc51ad9f358ceee0a6dcae8d89ac49084b84de0d2d42e7\",\"dweb:/ipfs/QmWij2h7mU36LsXhb9P6pkYXrSCua4ixeWaVFSrsEcEmPQ\"]},\"lib/v4-periphery/src/interfaces/INotifier.sol\":{\"keccak256\":\"0xfdc5187a98240a1691aae98b7dd2444d4c2bfb4746f3c34de9f3d18399c17c5e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://683af56401ec4f8817e8dfe150e7b3febaf0baaf40efe8d0d0475f735275f746\",\"dweb:/ipfs/QmRQ6S3nFnSc2jjDcQTvUJdTf4xKPojmvCkpvgyr6qTuVV\"]},\"lib/v4-periphery/src/interfaces/IPermit2Forwarder.sol\":{\"keccak256\":\"0xfad472937280e861125ff12aa6f9c2cf7440fbb20a2cc29485c24662ad4279c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31bfbc331f5972fc373d9469fd1ca1d14818db3275f21b7b590f20820cb4439d\",\"dweb:/ipfs/QmX3Bv9wfYpAFZKBcxKsQSXUrSC8mqNBdzh6XVMS72aNx9\"]},\"lib/v4-periphery/src/interfaces/IPoolInitializer_v4.sol\":{\"keccak256\":\"0x2e4feda94650a2642039e0309ffdec480ee050bc40864bf5e1dba42bb4dc9e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://964c178b4da8bab9ef898b94bb26d7c17cc44c5cf20485f55dcf5e9c7e1b1d92\",\"dweb:/ipfs/QmVd2c3SYteyr5xZgUS4sDAiZF43dLwVAEKdCfvQbkZpRJ\"]},\"lib/v4-periphery/src/interfaces/IPositionManager.sol\":{\"keccak256\":\"0x62dfa0cbee8314ee7e6787db8bc1d364245c340f940875ac7ff11e89d074fc7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26f560c77d8a187bf93a710b827e3167eab3446922192fa8f92f208da2103834\",\"dweb:/ipfs/Qmbzp5gSYdTpMBF9aAb2GraxMEQZb5LRJCyg8VaRUyjTFc\"]},\"lib/v4-periphery/src/interfaces/ISubscriber.sol\":{\"keccak256\":\"0x34ceadec4a63019680e543fe73197f198a55c825d86e18f327840354760b57e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31734feafe1fe162a0702ddf862fcc3bd97505931afb3c685033c0185d898051\",\"dweb:/ipfs/QmQEANYVyaXTNzXKcjUVfPhLU71Bix5vxQH75BpPWMkWgw\"]},\"lib/v4-periphery/src/interfaces/IUnorderedNonce.sol\":{\"keccak256\":\"0xd7f32fee74dc7d1a3b078ca1263961baccaa6bf434c79e8fe0e092e30c3e0ec3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7d1e92d89d5f49c84aa82f3b259678c2c97a4473b22d753ca4411a6b0cec36d\",\"dweb:/ipfs/QmNZoQyminStaAdaLqoDLoWaBU5QWrWjXFjmBm4aFhzL8i\"]},\"lib/v4-periphery/src/interfaces/IV4Router.sol\":{\"keccak256\":\"0xc4133fae25e61cc2447d7331729f6035322d7c1fe26b39b225422bf98cc63459\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c24ff8428504e973e947a059f96289a66c520cd7f8ef47a3224f9cb6abdaf25\",\"dweb:/ipfs/QmVqxYnngWXXcCiuTC143vTEJrjZK5NXWB92pjvVbuJBQ5\"]},\"lib/v4-periphery/src/interfaces/external/IWETH9.sol\":{\"keccak256\":\"0xe88abf12501ac275619aec0687240a07d26968aecbbcdfea88ba8bbd5d6e5e14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7097065d4492b4eccb1a73f99af1e5bec45404c6b973b8f5965c4c91403f5f92\",\"dweb:/ipfs/QmZK8oEqmjmTqhBoh3D3fBpyKGkUEFnptY8xwH9xpNjDm2\"]},\"lib/v4-periphery/src/libraries/ActionConstants.sol\":{\"keccak256\":\"0x3d6f0e5b4a7b1e60bad93e73dce5db67fb66bebef11c31ed8355014a79aa03b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6dfa42e24b1b5c7f66e75304ab034fbb6768518eb2410ccfff8b3defdd1658f2\",\"dweb:/ipfs/QmQQ7fud9mmv7PEWPAQiNzeZhNkWf28Z6nCHc2e6WJFfa7\"]},\"lib/v4-periphery/src/libraries/Actions.sol\":{\"keccak256\":\"0x8efd4b8b289177ee27e557d9d0a5a9f973d66fe1eb1ef8959d316b11987ca830\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07fe35f194eb99465028f0546359befea574d844da53767d32f22b233c3bcc98\",\"dweb:/ipfs/Qmc19631uFxABTHAbGrDrroexi9GdyxWntaum1v8npPYz5\"]},\"lib/v4-periphery/src/libraries/BipsLibrary.sol\":{\"keccak256\":\"0x37ebf99f5d086d9d9f6e7cecbf4d62167f47c63c30248cfcb921e828f0d7a359\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4f8e68a66bb6c166d72cdba6ed6fb83a93f713b79c2c572e8058084eb90ab6c\",\"dweb:/ipfs/QmY32FxtSBRf9PJzNUVzXqFY4i2ApTPHTUMpCBGovd2zo3\"]},\"lib/v4-periphery/src/libraries/CalldataDecoder.sol\":{\"keccak256\":\"0x26df49e13fb5410fd4db253cca877dfdfb3a1ba03e394d054c0e0514a88a56e5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72a0c98c52171708f332f83d517deeb97fdd50ecf28f2510e1866e54593a6ff8\",\"dweb:/ipfs/QmY4LiDUfSKGj86nML7B6a8euiPciUqwYehasAyAVnMCHq\"]},\"lib/v4-periphery/src/libraries/PathKey.sol\":{\"keccak256\":\"0xbbd79ffefe045f025263e389539021266fb4d371463aefba405e1ff1d3fcf9bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d1c47b81a01218be46ee79f0a8837095479b94dc5cfd18abbf2006709f0ea89\",\"dweb:/ipfs/QmRb6CQ13Zp7f3WF5jbZtsF2szhxpPgcuWs9mjwQXxzqtg\"]},\"lib/v4-periphery/src/libraries/PositionInfoLibrary.sol\":{\"keccak256\":\"0xc5ddf96bd088bc87ea50a20f907fc932fb28397a42682a301b268a11b7f34078\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7dfeb4dc747537240f8167243e8066b6f5f08057386fb8bda93f82973fc18ad6\",\"dweb:/ipfs/Qmby9DAAaHj8hjsMUnqY3vjqCHKGAKrT5EULMmeGcjbbGx\"]},\"node_modules/fhevm/config/ZamaFHEVMConfig.sol\":{\"keccak256\":\"0x41782f4c707b81399916544fa2e7be94a695fa4ba468542732d29d3e383c0315\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://45a95a55c4bbb3418c2133cba6ed21a9444bb4e38d38b32cc707b7493cece2ca\",\"dweb:/ipfs/QmVU8EKmZgscdM43RgXD4EgbVMhQxBusTmBren3pbn1pUW\"]},\"node_modules/fhevm/config/ZamaGatewayConfig.sol\":{\"keccak256\":\"0xbed8bc18db61ffeb5ee31f577ab636d8563df27554e0ca66c53534f0bd82ffbd\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://53601967f9e914b25cf91a325b100d5b3cbb9aec92d12443062a51fe5a578b7d\",\"dweb:/ipfs/QmNbviWrrPrx3snoLWqW5GyBnH99tSX3iYXEJ5ezk9XbtL\"]},\"node_modules/fhevm/gateway/GatewayCaller.sol\":{\"keccak256\":\"0xd19fd7715f0c5b479bf0cd8e3108cc8da7deae2d4fc7fb5ab089ebf2d76a0652\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://6386c509464cefe5a41903ca837da46a21b8042d13ccde656158efc48cd70ea8\",\"dweb:/ipfs/QmUn7C6aZwKmEmKsphBshBezXXGZtLMyfaeZAyuZoRsBWU\"]},\"node_modules/fhevm/gateway/lib/Gateway.sol\":{\"keccak256\":\"0x9585a649e3001a4b8768ab6e2597b416f680bcc537309cd50b60e023e9791318\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://a1b055bfb067cc247d4bd60b5f8348f667cbe79717a5753cd6412955277345d0\",\"dweb:/ipfs/QmTveBaQg9GUdtrrxcR4RsiyAEmoEKGL4gn6E1gThR1ph5\"]},\"node_modules/fhevm/lib/Impl.sol\":{\"keccak256\":\"0x89d4968cd956a8931f1a8a177b3bef1c6cf88a03665083db74430add50b88f21\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://aaaef2c82d56dacfb08946842ea1ce26757d13f3251de62fa79222232dfcb43c\",\"dweb:/ipfs/QmQ6QZPxJw9jb3qjRYCX7pMQVoYogjTsYgmdEnB3EnwFRy\"]},\"node_modules/fhevm/lib/TFHE.sol\":{\"keccak256\":\"0x221799c8332f83ab65a0b71746409f0c2c89f1cd8d9ba4091d967c667e1df734\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://2dba387fbc612a2ee64063b0ee6c27304b3944423d11045acc50abd84577fb5f\",\"dweb:/ipfs/QmThptDGnpd8PuncFk1rnQoCzEqwUED622yC9xZgFhwY59\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_swapsManagerProxy","type":"address"},{"internalType":"address","name":"_markerDataFetcher","type":"address"},{"internalType":"uint256","name":"_defaultSharePrice","type":"uint256"},{"internalType":"uint256","name":"_feeDivisor","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"stablecoin","type":"address"}],"type":"error","name":"CurrencyPairNotWhitelisted"},{"inputs":[{"internalType":"address[]","name":"indexTokens","type":"address[]"},{"internalType":"address","name":"stablecoin","type":"address"}],"type":"error","name":"IndexFundAlreadyExists"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"NoPriceFeedForToken"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address[]","name":"indexTokens","type":"address[]"},{"internalType":"address","name":"encryptedStablecoin","type":"address"},{"internalType":"address","name":"stablecoin","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"createConfidentialIndexFund","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"feeDivisor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"indexTokensAndStablecoinToIndexFund","outputs":[{"internalType":"contract IIndexFund","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"marketDataFetcher","outputs":[{"internalType":"contract MarketDataFetcher","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"stablecoin","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeWhitelistedTokenStablecoinPair"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"uint256","name":"newDefaultSharePrice","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDefaultSharePrice"},{"inputs":[{"internalType":"uint256","name":"newFeeDivisor","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setFeeDivisor"},{"inputs":[{"internalType":"uint8","name":"newNumberOfSwapsToBatch","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"setNumberOfSwapsToBatch"},{"inputs":[],"stateMutability":"view","type":"function","name":"swapsManagerProxy","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"tokenStablecoinPairToPoolKey","outputs":[{"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"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"stablecoin","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"whitelistTokenStablecoinPair"}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"_defaultSharePrice":"Initial share price for new index funds","_feeDivisor":"Divisor used to calculate fees for new index funds","_markerDataFetcher":"Address of the market data fetcher contract","_swapsManagerProxy":"Address of the swaps manager contract"}},"createConfidentialIndexFund(address[],address,address)":{"details":"The function first checks that a pool is referenced in the factory's pool map for each token-stablecoin pair","params":{"encryptedStablecoin":"The encrypted version of the stablecoin that the index fund is denominated in","indexTokens":"The tokens that make up the index fund","stablecoin":"The stablecoin that the index fund is denominated in"},"returns":{"_0":"The address of the new index fund"}},"owner()":{"details":"Returns the address of the current owner."},"removeWhitelistedTokenStablecoinPair(address,address)":{"params":{"stablecoin":"The stablecoin in the pair","token":"The token in the pair"}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setDefaultSharePrice(uint256)":{"params":{"newDefaultSharePrice":"The new default share price"}},"setFeeDivisor(uint256)":{"params":{"newFeeDivisor":"The new fee divisor"}},"setNumberOfSwapsToBatch(uint8)":{"params":{"newNumberOfSwapsToBatch":"The new number of swaps to batch"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"whitelistTokenStablecoinPair(address,address,uint24,int24,address)":{"params":{"fee":"The fee for the pair","hooks":"The hooks for the pair","stablecoin":"The stablecoin in the pair","tickSpacing":"The tick spacing for the pair","token":"The token in the pair"}}},"version":1},"userdoc":{"kind":"user","methods":{"createConfidentialIndexFund(address[],address,address)":{"notice":"Create a new index fund"},"removeWhitelistedTokenStablecoinPair(address,address)":{"notice":"Remove a token-stablecoin pair from the factory's pool map"},"setDefaultSharePrice(uint256)":{"notice":"Set the default share price for new index funds"},"setFeeDivisor(uint256)":{"notice":"Set the fee divisor for new index funds"},"setNumberOfSwapsToBatch(uint8)":{"notice":"Updates the number of swaps that need to be batched before processing."},"whitelistTokenStablecoinPair(address,address,uint24,int24,address)":{"notice":"Whitelist a token-stablecoin pair by referencing the pool key in the factory's pool map"}},"version":1}},"settings":{"remappings":["@chainlink/=lib/chainlink/","@ensdomains/=lib/v4-core/node_modules/@ensdomains/","@httpz-contracts/=lib/httpz-contracts/contracts/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@uniswap/universal-router/=lib/universal-router.git/","@uniswap/v2-core/=lib/v2-core/","@uniswap/v3-core/=lib/v3-core/","@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/","@uniswap/v4-core/=lib/v4-core/","@uniswap/v4-periphery/=lib/v4-periphery/","chainlink/=lib/chainlink/","ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","eth-gas-reporter/=node_modules/eth-gas-reporter/","fhevm-contracts/=node_modules/fhevm-contracts/","fhevm-core-contracts/=node_modules/fhevm-core-contracts/","fhevm/=node_modules/fhevm/","forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","httpz-contracts/=lib/httpz-contracts/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","permit2/=lib/permit2/","solmate/=lib/permit2/lib/solmate/","universal-router.git/=lib/universal-router.git/","v2-core/=lib/v2-core/contracts/","v3-core/=lib/v3-core/","v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/","v4-core/=lib/v4-core/src/","v4-periphery/=lib/v4-periphery/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/IndexFundFactory.sol":"IndexFundFactory"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/ConfidentialIndexFund.sol":{"keccak256":"0xac792e087c3600604af05e0abfa3db9fef4e71daf884885606115c672efcc5b7","urls":["bzz-raw://9454f480f9154f76c365622aa59a1fd9ea36a9b409df31bf13fe6d35e63f64d3","dweb:/ipfs/QmYz5knj2ptBvsdocjk7it2qiv968uytuVmBeHDsvz13xe"],"license":"MIT"},"contracts/ERC20Encryption/ConfidentialERC20Base.sol":{"keccak256":"0xa622900eae5b1f80c956ec16afec6e4ef6af141d7973b6d52167a86ae988272c","urls":["bzz-raw://45dcc2e65f2b601bf132eaae21b1ed2e5dd67c9644e6edcf856ea3274444b04e","dweb:/ipfs/QmR4XvcnxE3JBfPNpLcyvPssdBqtMTd76gm6BWczaSMi9D"],"license":"MIT"},"contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol":{"keccak256":"0x6f947e91a3369017e4d0147ac44ea39c6f8ffa4a5307d8339481f4e88355a62d","urls":["bzz-raw://27794b1340f9299d7be061aacde65075fca40a1d722e8c5181cee22f257eeb25","dweb:/ipfs/QmT3DReokqZhMtDcEDpkTgf1zG5cZELzPEZDjrqpfEXjWC"],"license":"BSD-3-Clause-Clear"},"contracts/ERC20Encryption/ConfidentialERC20WithErrorsWrapped.sol":{"keccak256":"0x6780cf12626fab34cbe430892929cb2827f948ed6fb613dfb55dda036ced8697","urls":["bzz-raw://dc3c67659beeff5d21d110cd711c731a52a88293bf120b582f72f2fe4da7bf2d","dweb:/ipfs/QmNbQ9EehknmU6Fui2QpnTSTj7Ft9sbWc95nz3x62fe2Jh"],"license":"MIT"},"contracts/ERC20Encryption/CustomConfidentialERC20WithErrors.sol":{"keccak256":"0x48800ae20f96fc6ff85e8428faf7c314eceefa7a1349fc3f42479ba82d658431","urls":["bzz-raw://6ab1d91f86b98bcf65f7af820157a9d7cd923f51e60df7897c1e9858f3e3a433","dweb:/ipfs/QmUt2mtzHAHDp2bvkSiXpZdM9okz4mJKFTHjU2YwPjxvxd"],"license":"BSD-3-Clause-Clear"},"contracts/ERC20Encryption/CustomConfidentialERC20Wrapped.sol":{"keccak256":"0xe3f6e6a47070a54952ac2dd5e008c7997322a16e72f4114a2ec48f45e3bc8cea","urls":["bzz-raw://8b47026e8a91b2a0212d621e0b2a8452e7402636f7fbbfe857d8cb6809b9310d","dweb:/ipfs/QmPYT4Q68jt5Yac6x2tdWHrDcBnjLdkY5JqPnLcCpswQxo"],"license":"BSD-3-Clause-Clear"},"contracts/IndexFundFactory.sol":{"keccak256":"0xac7c7b569f43f6d43dc939fc92cdb0067fe040b9c2defce170ab50e2e9634c7b","urls":["bzz-raw://414818a35254065d728f62d25c432da2c0d027cfa8731e1a74acb9f82b6521b3","dweb:/ipfs/QmPpiFCykJKzoGcW69GXekSkDxN6pfUKaT2jnHZnufKkni"],"license":"MIT"},"contracts/IndexFundToken.sol":{"keccak256":"0x6d1e6a25f9d42b8d6a080a35f7a3b5349abae3f4a30c136f907cc52778a0fe27","urls":["bzz-raw://1d81c68b7233cba175382a539bfbcfaf92b06197add787b3b429ec98c65c4669","dweb:/ipfs/QmYEwXLUeBFNnK8ZZxYo3pVJe7hZrEMitxbGyrrotbU4yt"],"license":"BSD-3-Clause-Clear"},"contracts/interfaces/IIndexFund.sol":{"keccak256":"0xd9ef0b82a5fbc651233fa570e20487052da9bc9e608d7fec5c54c3259b64b0db","urls":["bzz-raw://2fa0a193b577c89a809b110a6a770068cf8e7c86807d1022b10a44304ada1f90","dweb:/ipfs/QmewwyiHG7fnHucV1zLT5iYLzNiV4ryaBMqMoPmPRgD6WW"],"license":"BSD-3-Clause-Clear"},"contracts/interfaces/IIndexFundFactory.sol":{"keccak256":"0xdaee28098d25d209508346539130902d9e08f32b24aa18fe915c50a829dd62ac","urls":["bzz-raw://1c6a9ccf80750ad63e7a5cdff241d17130ab3e66e41e6647b10504abbf37fb76","dweb:/ipfs/QmRFJFDzeATHcLQCU6yXxVDThzm2xRZaGDZXFaCZK4aVs8"],"license":"BSD-3-Clause-Clear"},"contracts/interfaces/IMarketDataFetcher.sol":{"keccak256":"0xa5343d6d80de89e9e259d51e9fd50444de43f61f6da31c26ad6f49029a47481a","urls":["bzz-raw://e7fb90369df691fd542180e13cc7a881b46ef86dc1fdac4622d19cb292059112","dweb:/ipfs/QmUnvC7eyCdg83tARSBSoEDPKjZHJZ4mKFWdPwSycki3KL"],"license":"BSD-3-Clause-Clear"},"contracts/interfaces/ISwapsManager.sol":{"keccak256":"0xa98bd09c0946399a4f4ae05e713b3207593528df54e8695a4aa4db885b47e894","urls":["bzz-raw://eca854b1cf38859c81648a4bc824aa8e8e7a6347a3b902ceff0d2eb98cff384d","dweb:/ipfs/QmTFzfKREewMg1xjbuCU5DDPbq8Wi1euCzpE2xJ8RAeJi8"],"license":"BSD-3-Clause-Clear"},"contracts/lib/IndexFundStateManagement.sol":{"keccak256":"0x6d55232bd5d80e0082f0adda3f052e62708e9ca7f18e7c439ed775b3ec7cdc43","urls":["bzz-raw://89733fef5a9b8efdee13a4a91f518503f9ed3e7449e3debf4ba864f363d0fb21","dweb:/ipfs/QmQ8yyTYoLymoERKzmb6iK6K1ehcpuo4ZbbjQyX5M1t3j1"],"license":"MIT"},"contracts/marketData/MarketDataFetcher.sol":{"keccak256":"0x982be5c64a69b4e8bac986e1c18affd3686ec1a6dcff4b515c5918b924508997","urls":["bzz-raw://bf5b5e27288f2a9fa156ecfec63fa84eb13a2b66cf84b17bb26097cd69bc7b7f","dweb:/ipfs/QmW4NcWKfwuyRadWvYe6vB3xyw5pHKLtoNSbjaBG2j13NN"],"license":"MIT"},"contracts/swaps/SwapsManager.sol":{"keccak256":"0x3d4d9b33ac2e97bafbe46a47fba285246649b3b75473b809706de58bba6abcf5","urls":["bzz-raw://37ce21e2eca2ebcc4b971680a20cf20d2b6cc929c45b0dc5b5746dc705d77b40","dweb:/ipfs/QmUfrJ5Pzjh8bpM1uCtECD9dHS8jBMrG4T68ufMccXeQvs"],"license":"MIT"},"lib/chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol":{"keccak256":"0x257a8d28fa83d3d942547c8e129ef465e4b5f3f31171e7be4739a4c98da6b4f0","urls":["bzz-raw://6d39e11b1dc7b9b8ccdabbc9be442ab7cda4a81c748f57e316dcb1bcb4a28bf9","dweb:/ipfs/QmaG6vz6W6iEUBsbHSBob5mdcitYxWjoygxREHpsJHfWrS"],"license":"MIT"},"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol":{"keccak256":"0x8b45e5bb2fd9212f99e61b4d25b9c9d5ed7cb1a9a684aac34f752c568ef16c76","urls":["bzz-raw://1ca71bb5bfbb2f8a0779f8394baeea01680619637abddb572017d05d96862591","dweb:/ipfs/QmPCzGBE1m6WtDZxrVL5jzkduNaS7fjtYovUWdnzN34qjh"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20Wrapped.sol":{"keccak256":"0x7e178a03b7f034532497a8b762069fff0808277befc880e4a3236938ba1380a7","urls":["bzz-raw://7250476c961801e579719fd0201a3ff6bfdc79e8324db34d5ec0c6cecc281281","dweb:/ipfs/QmNsTR2Rk2FRS3cTNf7WeN3UzPZy6HSj1SFV3Nuwz8Rpzi"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol":{"keccak256":"0xe016a085f72ca3cf6d78ec1cb2182a398106cb7d425e984776a9caab0bad2569","urls":["bzz-raw://3e79dc5075469d660908f5f8b6d0c863b14459d60a0b06fb786d58de8cf30a94","dweb:/ipfs/QmePGRGtoWBnQ8T6ZRyZgiwVh4r67kcmWejwKgjyYN4AAY"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20Wrapped.sol":{"keccak256":"0x72c5379fb2a7e1701a4686f60831bfc474350a42f0660aea815a5ce910cba38b","urls":["bzz-raw://118fac79c89e142247e94763a1ca1235c307a67b37d68fa45d94125bc85c2cb8","dweb:/ipfs/QmcE9P74NQQKnmW9vdtGb8KrWgJWH6K3bNTdrMxrPi716c"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol":{"keccak256":"0xfe322c8f9a8e4fba881715901a5bafd2efa23394ecbc9ec84282818baeff0a07","urls":["bzz-raw://13dba831528dd16408b7abab23eac0664a2a3e5ecbfe5e58e6e321cf2921668a","dweb:/ipfs/QmPq4YeugbayWfeBJR8H7s4jHsnZkACQX2xbdNQ4sdvZrk"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol":{"keccak256":"0xecc6289a9791bef254911393b51d2bfbddc5650ede7fbe7b5cc2b8d3eb01d7a6","urls":["bzz-raw://7463278a20bc5d7fd8b7ec2cb8e592b2d1e0afcf8b59d35d6929d18661d4b38c","dweb:/ipfs/QmTKPoABwNDmK7g7vkti1AkTpkUBHu3iX3zsXQsEuSiqBM"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/utils/EncryptedErrors.sol":{"keccak256":"0x0b8d08f392884add1af672018359e8980ee0b5e1662fe5e36eb31f053d1d4505","urls":["bzz-raw://2903dd49a88b36aba2e8a45548b6a68d203887356ebdf452b10e0148954ba1a5","dweb:/ipfs/QmTRuP4QXagoV2cLr2ctzFtNK7FK1cDXMYm4feMoMsYoWG"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/utils/TFHEErrors.sol":{"keccak256":"0x5fef7c2d7d4449d724a2800b37dfcc61e2b635f2747378ce222b9187425f2d13","urls":["bzz-raw://7c2ef113faaec2d74c8d958f80687d0b676082d6231720917aaa8aa934d689a3","dweb:/ipfs/QmNn474JDQ5zvVDwEuicJs6Xq8YEXWGZLoW4KeTWDVG31f"],"license":"BSD-3-Clause-Clear"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xd861907d1168dcaec2a7846edbaed12feb8bad2d6781dba987be01374f90b495","urls":["bzz-raw://12ff809243040419e2fc2aa7ef0aaa60b3e6ebc901553ba1de970ceeef208c4c","dweb:/ipfs/QmX2dwMVNrQAahqVzEx94gqcVB6Z8ovifPYdEfHZzj7aEb"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308","urls":["bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80","dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606","urls":["bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1","dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol":{"keccak256":"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c","urls":["bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0","dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x8decfa54cec979c824b044b8128cd91d713f72c71fd7dfa54974624d8c949898","urls":["bzz-raw://271f914261a19d87117a777e0924ada545c16191ef9b00cc40b0134fc14ebc70","dweb:/ipfs/QmdvVNWHGHQrGGPonZJs5NuzTevTjZRM2zayKrDJf7WBA2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x6ef9389a2c07bc40d8a7ba48914724ab2c108fac391ce12314f01321813e6368","urls":["bzz-raw://b7a5cb39b1e6df68f4dd9a5e76e853d745a74ffb3dfd7df4ae4d2ace6992a171","dweb:/ipfs/QmPbzKR19rdM8X3PLQjsmHRepUKhvoZnedSR63XyGtXZib"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330","urls":["bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf","dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x4ea01544758fd2c7045961904686bfe232d2220a04ecaa2d6b08dac17827febf","urls":["bzz-raw://fabe6bef5167ae741dd8c22d7f81d3f9120bd61b290762a2e8f176712567d329","dweb:/ipfs/QmSnEitJ6xmf1SSAUeZozD7Gx7h8bNnX3a1ZBzqeivsvVg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de","urls":["bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff","dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xaaa1d17c1129b127a4a401db2fbd72960e2671474be3d08cae71ccdc42f7624c","urls":["bzz-raw://cb2f27cd3952aa667e198fba0d9b7bcec52fbb12c16f013c25fe6fb52b29cc0e","dweb:/ipfs/QmeuohBFoeyDPZA9JNCTEDz3VBfBD4EABWuWXVhHAuEpKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3","urls":["bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a","dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol":{"keccak256":"0x534bf5c25d6003a8ce50b400d20fa460c03169ad7baa90d47a912917c36dfe2b","urls":["bzz-raw://cc0cc39c40ea23d3c46e8517e19ebdd877719d3159fa032f2a91802cdd205c79","dweb:/ipfs/QmSoNh7HTkD4TJcBkBKSGSPMMpLUZKE7s9f2G6mjdaJywg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x44f87e91783e88415bde66f1a63f6c7f0076f2d511548820407d5c95643ac56c","urls":["bzz-raw://13a51bc2b23827744dcf5bad10c69e72528cf015a6fe48c93632cdb2c0eb1251","dweb:/ipfs/QmZwPA47Yqgje1qtkdEFEja8ntTahMStYzKf5q3JRnaR7d"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1","urls":["bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889","dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/permit2/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0xcdfd8db76b2a3415620e4d18cc5545f3d50de792dbf2c3dd5adb40cbe6f94b10","urls":["bzz-raw://57b3ab70cde374af1cf2c9888636e8de6cf660f087b1c9abd805e9271e19fa35","dweb:/ipfs/QmNrLDBAHYFjpjSd12jerm1AdBkDqEYUUaXgnT854BUZ97"],"license":"AGPL-3.0-only"},"lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol":{"keccak256":"0xbadf3d708cf532b12f75f78a1d423135954b63774a6d4ba15914a551d348db8a","urls":["bzz-raw://88ac8256bd520d1b8e6f9c4ac9e8777bffdc4a6c8afb1a848f596665779a55b4","dweb:/ipfs/QmXx7X1dxe6f5VM91vgQ5BA4r2eF97GWDcQDrgHytcvfjU"],"license":"AGPL-3.0-only"},"lib/permit2/src/interfaces/IAllowanceTransfer.sol":{"keccak256":"0x37f0ac203b6ef605c9533e1a739477e8e9dcea90710b40e645a367f8a21ace29","urls":["bzz-raw://e0104d72aeaec1cd66cc232e7de7b7ead08608efcc179491b8a66387614670b0","dweb:/ipfs/QmfAZDyuNC9FXXbnJUwqHNwmAK6uRrXxtWEytLsxjskPsN"],"license":"MIT"},"lib/permit2/src/interfaces/IEIP712.sol":{"keccak256":"0xfdccf2b9639070803cd0e4198427fb0df3cc452ca59bd3b8a0d957a9a4254138","urls":["bzz-raw://f7c936ac42ce89e827db905a1544397f8bdf46db34cdb6aa1b90dea42fdb4c72","dweb:/ipfs/QmVgurxo1N31qZqkPBirw9Z7S9tLYmv6jSwQp8R8ur2cBk"],"license":"MIT"},"lib/permit2/src/interfaces/IPermit2.sol":{"keccak256":"0xaa631cc9f53e699301d94233007110a345e6779011def484e8dd97b8fe0af771","urls":["bzz-raw://fc0502cf19c9c18f320a3001201e89e350393b75837f6b7971de18b2de06f30d","dweb:/ipfs/QmT9SfhdJ7VJNNrf94g4H5usyi7ShqWGx7Cqsz9jZTjX96"],"license":"MIT"},"lib/permit2/src/interfaces/ISignatureTransfer.sol":{"keccak256":"0xe6df9966f8841dc3958ee86169c89de97e7f614c81c28b9dc947b12d732df64e","urls":["bzz-raw://3d4eafdee7f48c3be8350a94eb6edd0bfb2af2c105df65787a77174f356c0317","dweb:/ipfs/QmY1j2adeeAhNpn6cUuthemxGCdLXHTfyMh9yTKsY4mZ2d"],"license":"MIT"},"lib/permit2/src/libraries/SafeCast160.sol":{"keccak256":"0x8a34e2beac108d74f89510c949983212b5f09307a93ee9e17a9d50e93f6bc8e9","urls":["bzz-raw://828697f9567ce617c5c1c8f76b6bcd250e93aea2c4f3ee188be6dff8443c19e7","dweb:/ipfs/QmafxeSPhUc9gGtNDLAw26oZooC5XNLhDMxHxYhJxL5Nwi"],"license":"MIT"},"lib/universal-router.git/contracts/UniversalRouter.sol":{"keccak256":"0x5c7515720fa9b429bc83f0044f3a02cdd065fe1773b9fd32151dc5ff9042d368","urls":["bzz-raw://dd77517f3a73a07fdff8f3a52c268afca749a678ea11442140d401eb102f4404","dweb:/ipfs/QmeJiwCtgF1rMB7Foi6PrqWEaXktztPGQfHoAsw1BRhLU3"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/base/Dispatcher.sol":{"keccak256":"0x1564339a5163c5d27f06a64f994a7457b061aa0f5046377bcc5078cd6907cc5d","urls":["bzz-raw://82dc3ed71c19d6e5d1f72304e62e360954fc40a4d92a2a94e862c5474490d58d","dweb:/ipfs/QmcNamJcGijcEetbHWVJHNjSE2WCyQsmEGEGDg9ZNwqSjR"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/base/Lock.sol":{"keccak256":"0x92f953dda0d671178d054eeb3915b70f8ba80be33df8670a9146af4a4bc2c6ac","urls":["bzz-raw://f73faac9532c8a8870d31bcef68a0dde387579d7b755c342b3352a54a4b63682","dweb:/ipfs/QmXLvJb6vxfrUG84ASLhEf7tL62MN3oxkp7aXUxemrZTy3"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/interfaces/IUniversalRouter.sol":{"keccak256":"0x2525b52d1edf5df89bfd093c5b933b9e8f65236f44f58096763a6c87a5cafb63","urls":["bzz-raw://5cc0fcfedd6b32586099ee0f6781bb81da99175c65013c06bb6f61a125babb18","dweb:/ipfs/QmcEkSzkjkPpp3YyJZaY232TjuNU4Pw6CSiTWz7sk2Sq5D"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/libraries/Commands.sol":{"keccak256":"0xa08ae7be62972a4f17779257641065d41fa5cc2d5fc7050e5e5b76fbda9e6a9f","urls":["bzz-raw://0b94d73c5cd54aba5e1ad4ccfc33df13c1b04417f53fda188275fc15f95f02f2","dweb:/ipfs/QmNpigDf9g9AAbFr27gug5hAZjb6iuFekRqXonC6upoEcp"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/libraries/Constants.sol":{"keccak256":"0xb668498f11a4bb576a0a61c183da7ca348249dd9176c57dcb6532912b1b49b0e","urls":["bzz-raw://87d8588baf0b7b72faec637843c7623ac416d45e0f7719d0a635afe7981b2cf2","dweb:/ipfs/QmSu7Jr8JM6mab2dddk1UaiPhyLZvsA8iLxC9MEcBUaMzT"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/libraries/Locker.sol":{"keccak256":"0xfccb45f77b5c66f0f417d803b4b3f7ae97206d8d850a383ab7d97f25d0617cc0","urls":["bzz-raw://b47f3f4e74961f8e9d918c2cc3514cb8d097caee6ab2c20c10735235dec440ec","dweb:/ipfs/QmfTWUjP7g7zTw67C2RvoMhWRX6ExLNV3UYSb5LqfE4bqC"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/libraries/MaxInputAmount.sol":{"keccak256":"0x2dd6efbcaf9991c852e29a726f9876a0a6d08f2271912e69efa5c6a5e8034739","urls":["bzz-raw://949ebd746eee3589d1e466c738884bd3532043d9e8a7b77c1521a098ba3c69b6","dweb:/ipfs/QmZC9idgGQDfLksqfz41FrcsVXhqkfRZCZH9MJXQkQavt6"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/MigratorImmutables.sol":{"keccak256":"0x666d1622a10509c69b679df9d175a3e0c176a62b9e18d1cee7634219aded8f68","urls":["bzz-raw://a88e472495d32648ba3e7964c4c88b68853b49540f40afbaf2ede6822372b49f","dweb:/ipfs/QmQoaWbCpwFYCnRgehM7ruYaa7za8fBghT5aQCRCPYJr1V"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/Payments.sol":{"keccak256":"0x19a103b3269ee2f7bc28a6e1850091b2087dd2558662494d1104ac8e5ac68524","urls":["bzz-raw://ba64c600f57bb13672a5549b6dba11ae4dfe49f688c24eadb3289dcc87d226a8","dweb:/ipfs/QmWkmVyeai1WeymuWqEk1fQE5R2frrQQjJv81cytrKvFuA"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/PaymentsImmutables.sol":{"keccak256":"0x9ca2535b69b15d3bdb7a15871c5bca83f5536cffb0191c64f4c6a2db4a154338","urls":["bzz-raw://dc85fb3ddd19481bf0d1a8a9f5d9631b396d86344a33e30b4c4ab6cd58d51169","dweb:/ipfs/QmeEGFqfHFUo1Mu6tRfCjvVGJYyoDu29ZspZgxxcj6ykvq"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/Permit2Payments.sol":{"keccak256":"0x887ec1f57144cd91a1b86d5a7b1d1119146f41dae6865e6fd0e849801e968628","urls":["bzz-raw://08b713e82f3f192976902497e1c02dd60bf7e90c83a471eb4c7ac7710b086f95","dweb:/ipfs/QmWJSGZ9Dj7FmFCnDWpDdL5fx76JYDgYWhggXCroxV7cjX"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/V3ToV4Migrator.sol":{"keccak256":"0x5ee3774b749b9a8d851dc6074c8de8c61f408a4cfd829c47c753840c839ba91c","urls":["bzz-raw://337e17b84f4fdad7e32be0e482e7b2471d7f927ba3b3174cae38cf2509d97443","dweb:/ipfs/QmbzgdyxAC5vpvWRGaemn3Qn7DRbNDjHSH3KbHSDPwJ8LY"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/UniswapImmutables.sol":{"keccak256":"0xb810727f5e734a30871ff1d83d8c96d99150f1ce77bb39e032aec6254ca43cd0","urls":["bzz-raw://5eb9df8b6c81f8e33b8a6bace294ed0d81c541988f7ba42027e3041eff32e1bd","dweb:/ipfs/QmVPSWBv7WegGySGV4BoewKKx7iAetHsjydxQyKk3dh5yw"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v2/UniswapV2Library.sol":{"keccak256":"0x829d48c1b69d2e1bc078a57aae8d87dc31d920b01c62d6268d20d517fd24150c","urls":["bzz-raw://b87236ea4c1e64c12434f31abbd658ca3fc510ebe65be731d84d3ce8efa71c32","dweb:/ipfs/QmUerjg5Ebt3pfQZtk2sArUy414gQtHwvFNgsQNe4PhxbN"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v2/V2SwapRouter.sol":{"keccak256":"0x0fcb6ad6c4d5a7b25054dd9951432b2b41cb2c0077e6bc7ca0d0416115ef2326","urls":["bzz-raw://124b1dd54d27914306bdd1021e171111f0ae622fffb2974ccdee24eab31b359d","dweb:/ipfs/QmfKr2sbxdc31aPWv9d6ETA4GyfqHiKVZRKqhREnMkR5j9"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v3/BytesLib.sol":{"keccak256":"0xc3c23e83afd06781c4a0a5c418c20c40611e71d049766eb70987007ce372656e","urls":["bzz-raw://c62989beb75edad6de18c31be31eb68f0c3fb15c5f9e9bb380221afc6785fda5","dweb:/ipfs/QmVEsp5yivbmjP7HcXS5kJ1XJY5Uic3J3y4zjpwD1SNySD"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v3/V3Path.sol":{"keccak256":"0xf6abbf4c7cd0975ddabb0ddb641ea9ae3b0cc1dd9a1cabf5e7cc271a974eabc2","urls":["bzz-raw://1e0987fc9b81c65eada64cb65f981680c2054e489a6049d397b5ecbbf4c9a0a9","dweb:/ipfs/QmW7mbbHsfc2GLy2GkCUv3VwXV93y6UFtKDD7E9QEtzFH7"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v3/V3SwapRouter.sol":{"keccak256":"0x31fe8777a6de583c54a0f09ec11d318c253b7fe50c7a2af1608b2b89a03ca660","urls":["bzz-raw://780219ff0d6d333727655719d31d61ce345cdbca7f906467a2d00e3162b3c0aa","dweb:/ipfs/QmbauA5Kvj7m9P9hxe4hhnLY5w2TEXMMnCc9oWehVgj2jo"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v4/V4SwapRouter.sol":{"keccak256":"0x68b7666641ad5ba227b500c9845c4bc71eaaac6556d97d31d123fce41b51969a","urls":["bzz-raw://40a99bb5e9e407ad6741f5c210ac23a32950e7567c73f21975444e9729fc6cfb","dweb:/ipfs/QmUK98HjyQ7NDGR36DD9owjLDk7ujEj5b5uKt9zjUsCFG5"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/types/RouterParameters.sol":{"keccak256":"0x9efe9912d44e56cff8fc23e1411c80b47ffc9f5c0ad5ca5c66ab77a1b7ddfcbf","urls":["bzz-raw://473acf49dc1be1ca997ad20258124e26e03b3cef15412a8827ecf9b52e4cef21","dweb:/ipfs/QmaGR2QL6im4XYJpubqhUuP82nFytemX7wwEk4cXECJYJN"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IERC721Permit.sol":{"keccak256":"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4","urls":["bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471","dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL"],"license":"GPL-2.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol":{"keccak256":"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984","urls":["bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56","dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW"],"license":"GPL-2.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol":{"keccak256":"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d","urls":["bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f","dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127"],"license":"GPL-2.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryPayments.sol":{"keccak256":"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274","urls":["bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407","dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp"],"license":"GPL-2.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPoolInitializer.sol":{"keccak256":"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862","urls":["bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f","dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu"],"license":"GPL-2.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/libraries/PoolAddress.sol":{"keccak256":"0xa72de315bd655a0fd5043ff97c7fd3868a1b5b1986afd75c6f5f8fd0f904985f","urls":["bzz-raw://a8838e68aba9caf2b2cb13bd4cb661b1f9c167cca4dfcd50ac72ae96691392df","dweb:/ipfs/QmfLq3cmsSQTuLLxiF4bgceaf2jx8CoiVXQd7BZXGgJG1E"],"license":"GPL-2.0-or-later"},"lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol":{"keccak256":"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b","urls":["bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf","dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH"],"license":null},"lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol":{"keccak256":"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1","urls":["bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5","dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol":{"keccak256":"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69","urls":["bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652","dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol":{"keccak256":"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634","urls":["bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5","dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol":{"keccak256":"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5","urls":["bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7","dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol":{"keccak256":"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd","urls":["bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03","dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol":{"keccak256":"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7","urls":["bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047","dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol":{"keccak256":"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235","urls":["bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735","dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol":{"keccak256":"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f","urls":["bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f","dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/libraries/SafeCast.sol":{"keccak256":"0x4c12bf820c0b011f5490a209960ca34dd8af34660ef9e01de0438393d15e3fd8","urls":["bzz-raw://fed11489e218e55d087d42b4f350a30e10cd2aedec8f432bd3cc712f648d5869","dweb:/ipfs/QmWfRnRxyXwHUDcTQPazxYYk5jxErGeQqdvnYtyg5nBPbU"],"license":"GPL-2.0-or-later"},"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":"0x4c9571aed0c2b6ef11832545554fc11ffdb03746daaf5c73683c00600bfc7ec0","urls":["bzz-raw://e78b34b58ce9de91b91943b4f3cc3ce121d0b151e123e8a600ac5ef64d91db6c","dweb:/ipfs/QmRkaQnPCYwLrXgbpGujJTx32PaZK63KSPJJV1XmnQuCMb"],"license":"MIT"},"lib/v4-core/src/interfaces/IPoolManager.sol":{"keccak256":"0x3534f00531038e77ab8a7fc4d0a6e0993ee53fb7a396b1324ad917318ea46cea","urls":["bzz-raw://0a4a7e771828dc40848485b568a1cf514f553ace6653f4f4d1ad3f3e9cdb6c27","dweb:/ipfs/QmTjzQ7KVYnrEWtxPER2E4MXzycgcznfzSDsZtd5turk5V"],"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/CurrencyReserves.sol":{"keccak256":"0x1576616129933fcdf3b684cea33cffd9c95e18fafbd2832a8c48ac3d8526d4c3","urls":["bzz-raw://33b050efb9b81803b18f562271e7cca2ec5362c4d505860d6419b4a345636725","dweb:/ipfs/QmQtFtTwKZ5pFVGD2ENDUXvp7ECFvzqeCuJ1miJcUHdmiX"],"license":"BUSL-1.1"},"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/Lock.sol":{"keccak256":"0x9338be4b5695f1da5f3d3f7a3eeaf7a356c1045458289586ac0cbe9cef77c6d5","urls":["bzz-raw://485ec42ed6155469d612a9a0c18068ebfbad74448792a338a435503de3ef1b2c","dweb:/ipfs/QmVnnv5u74MYatfRmBgrcfFYQcsMAJMG9jQ6ju8UiydKNF"],"license":"BUSL-1.1"},"lib/v4-core/src/libraries/NonzeroDeltaCount.sol":{"keccak256":"0x0666ebd5d3528d7d52c48538296367a4cff97a578cf13365c51983fae3219b87","urls":["bzz-raw://d27f1be3bd09d85c53d3e6a539dd6529ddd8b2b764ccb47fd7765fc81f9add59","dweb:/ipfs/QmQdZujNXhKEXQBkKtF5jbdvo1yXMqPDUoBBaF9S5u3Kpm"],"license":"BUSL-1.1"},"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/libraries/TransientStateLibrary.sol":{"keccak256":"0x7d1e0875747bd89b32c25f1a48da2766e5f4aff1f671ad5f3c0c07ebbbcb946a","urls":["bzz-raw://d76cfeb1cb60595b41ecc51c8a12fb4bf63a7fc733d0b1a2e3adb55abeb1f9d5","dweb:/ipfs/Qmb8oX7DtsRpw3tTtdWZwGhauj1evq43d3PLwe4nSDAKkV"],"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-periphery/src/V4Router.sol":{"keccak256":"0x8ede1e538ae9b74984c52347a3bbaee7b3d69f00ed9b3a6db1f1bd6e058a2326","urls":["bzz-raw://8e370416fa9681ad124414e2b2fb57a5455e15dd873c9e61c964177ae5c2d544","dweb:/ipfs/QmWrM97ezNB9CpawqhkwpubXHcXUbMFWKYEbD3D6EyAe1w"],"license":"MIT"},"lib/v4-periphery/src/base/BaseActionsRouter.sol":{"keccak256":"0xca1ee500f88951ad351d18ba2adfb5fe23abef6d502f234ce5748a3497674a4c","urls":["bzz-raw://1f03ab458be27c29cef1b7ace5b11517d3fef8bf6131af7dd80d6297c224cf71","dweb:/ipfs/QmYoH6o8yeRzbeLoaMG9TjS8q2Fw7T1h4vXvvMnp3XfsUa"],"license":"MIT"},"lib/v4-periphery/src/base/DeltaResolver.sol":{"keccak256":"0x94a2da2be5c924df65a8e1e29f585bbe4c37777fedd43b45989c66d509a4a83c","urls":["bzz-raw://42bba590f6e817fd56328b74ae99bfdc4df57386d0a69ee22b9108341953ed36","dweb:/ipfs/QmdusastK7FWYouLz9gvV5J3z8MQbNKLJNNHTrc1vi7DWw"],"license":"MIT"},"lib/v4-periphery/src/base/ImmutableState.sol":{"keccak256":"0x1867c9fa2f9b4fa73bab0fcdc9d19ccef4eeac552273d8b84a170cd1cc90350a","urls":["bzz-raw://af2d699b439e13b599632fddfe82718aebd41055fba7c075f186675c588d1337","dweb:/ipfs/Qmc111gckSKb9aESn3wRFLeLiS4KGujaUcaYJgRnCRfwQU"],"license":"MIT"},"lib/v4-periphery/src/base/SafeCallback.sol":{"keccak256":"0xd78b583df1b9ee06d58e83b84fc9f08971389b34dd34bc13db072e0c13c710da","urls":["bzz-raw://c0a47f4bcd6060c4462153b9a7c52a60a460ace91acb6ddd5492eab28ec26173","dweb:/ipfs/QmdRCTRS1dhFjWEy6z577j4xz9J5HPfHBwcNzAic8G59oT"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IEIP712_v4.sol":{"keccak256":"0xd7f7115476e307a0bfc32a0f0a0f5434e9e5ca62a6c5af1e18b75e48161bb408","urls":["bzz-raw://b1600b953556da38a7adc5ad2a2925ec5fb138fecf8eec48743646543195b736","dweb:/ipfs/QmarZi2aiLVAfHXgnDWV1cCFiZk2DdPW7KJnWHqzuRChJR"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IERC721Permit_v4.sol":{"keccak256":"0x103adbba724ef536abc536fe8a4d7dc12880724c562109b69f2adce4a91fa017","urls":["bzz-raw://06f51b5a5a218e0bc866a83e7821be53c9db9de0ca921f16abd3d13ea0eab69d","dweb:/ipfs/QmbnhLy992hpQZyphTkj7fpr6jKKVva2AzfmLiDZEuqHAk"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IImmutableState.sol":{"keccak256":"0x36ab3100e87457ecf04887f4f540e34fd7f21d8e3b83880cb679239e60b7b06b","urls":["bzz-raw://7f290c7ce8e4832608d637a51b13dff95abecf6549485448e647a11c8ed01341","dweb:/ipfs/QmfD1R6mTp8j4EjQXmQZW3vCh11EYFjnvoaw8rXRP27mMq"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IMulticall_v4.sol":{"keccak256":"0x336bec303f7ff86497d2679464c5adad5040f412b3d0769ce5e1d2a42f7e2c08","urls":["bzz-raw://7734f047d98d331c8abc51ad9f358ceee0a6dcae8d89ac49084b84de0d2d42e7","dweb:/ipfs/QmWij2h7mU36LsXhb9P6pkYXrSCua4ixeWaVFSrsEcEmPQ"],"license":"MIT"},"lib/v4-periphery/src/interfaces/INotifier.sol":{"keccak256":"0xfdc5187a98240a1691aae98b7dd2444d4c2bfb4746f3c34de9f3d18399c17c5e","urls":["bzz-raw://683af56401ec4f8817e8dfe150e7b3febaf0baaf40efe8d0d0475f735275f746","dweb:/ipfs/QmRQ6S3nFnSc2jjDcQTvUJdTf4xKPojmvCkpvgyr6qTuVV"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IPermit2Forwarder.sol":{"keccak256":"0xfad472937280e861125ff12aa6f9c2cf7440fbb20a2cc29485c24662ad4279c5","urls":["bzz-raw://31bfbc331f5972fc373d9469fd1ca1d14818db3275f21b7b590f20820cb4439d","dweb:/ipfs/QmX3Bv9wfYpAFZKBcxKsQSXUrSC8mqNBdzh6XVMS72aNx9"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IPoolInitializer_v4.sol":{"keccak256":"0x2e4feda94650a2642039e0309ffdec480ee050bc40864bf5e1dba42bb4dc9e98","urls":["bzz-raw://964c178b4da8bab9ef898b94bb26d7c17cc44c5cf20485f55dcf5e9c7e1b1d92","dweb:/ipfs/QmVd2c3SYteyr5xZgUS4sDAiZF43dLwVAEKdCfvQbkZpRJ"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IPositionManager.sol":{"keccak256":"0x62dfa0cbee8314ee7e6787db8bc1d364245c340f940875ac7ff11e89d074fc7e","urls":["bzz-raw://26f560c77d8a187bf93a710b827e3167eab3446922192fa8f92f208da2103834","dweb:/ipfs/Qmbzp5gSYdTpMBF9aAb2GraxMEQZb5LRJCyg8VaRUyjTFc"],"license":"MIT"},"lib/v4-periphery/src/interfaces/ISubscriber.sol":{"keccak256":"0x34ceadec4a63019680e543fe73197f198a55c825d86e18f327840354760b57e7","urls":["bzz-raw://31734feafe1fe162a0702ddf862fcc3bd97505931afb3c685033c0185d898051","dweb:/ipfs/QmQEANYVyaXTNzXKcjUVfPhLU71Bix5vxQH75BpPWMkWgw"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IUnorderedNonce.sol":{"keccak256":"0xd7f32fee74dc7d1a3b078ca1263961baccaa6bf434c79e8fe0e092e30c3e0ec3","urls":["bzz-raw://e7d1e92d89d5f49c84aa82f3b259678c2c97a4473b22d753ca4411a6b0cec36d","dweb:/ipfs/QmNZoQyminStaAdaLqoDLoWaBU5QWrWjXFjmBm4aFhzL8i"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IV4Router.sol":{"keccak256":"0xc4133fae25e61cc2447d7331729f6035322d7c1fe26b39b225422bf98cc63459","urls":["bzz-raw://3c24ff8428504e973e947a059f96289a66c520cd7f8ef47a3224f9cb6abdaf25","dweb:/ipfs/QmVqxYnngWXXcCiuTC143vTEJrjZK5NXWB92pjvVbuJBQ5"],"license":"MIT"},"lib/v4-periphery/src/interfaces/external/IWETH9.sol":{"keccak256":"0xe88abf12501ac275619aec0687240a07d26968aecbbcdfea88ba8bbd5d6e5e14","urls":["bzz-raw://7097065d4492b4eccb1a73f99af1e5bec45404c6b973b8f5965c4c91403f5f92","dweb:/ipfs/QmZK8oEqmjmTqhBoh3D3fBpyKGkUEFnptY8xwH9xpNjDm2"],"license":"MIT"},"lib/v4-periphery/src/libraries/ActionConstants.sol":{"keccak256":"0x3d6f0e5b4a7b1e60bad93e73dce5db67fb66bebef11c31ed8355014a79aa03b3","urls":["bzz-raw://6dfa42e24b1b5c7f66e75304ab034fbb6768518eb2410ccfff8b3defdd1658f2","dweb:/ipfs/QmQQ7fud9mmv7PEWPAQiNzeZhNkWf28Z6nCHc2e6WJFfa7"],"license":"MIT"},"lib/v4-periphery/src/libraries/Actions.sol":{"keccak256":"0x8efd4b8b289177ee27e557d9d0a5a9f973d66fe1eb1ef8959d316b11987ca830","urls":["bzz-raw://07fe35f194eb99465028f0546359befea574d844da53767d32f22b233c3bcc98","dweb:/ipfs/Qmc19631uFxABTHAbGrDrroexi9GdyxWntaum1v8npPYz5"],"license":"MIT"},"lib/v4-periphery/src/libraries/BipsLibrary.sol":{"keccak256":"0x37ebf99f5d086d9d9f6e7cecbf4d62167f47c63c30248cfcb921e828f0d7a359","urls":["bzz-raw://c4f8e68a66bb6c166d72cdba6ed6fb83a93f713b79c2c572e8058084eb90ab6c","dweb:/ipfs/QmY32FxtSBRf9PJzNUVzXqFY4i2ApTPHTUMpCBGovd2zo3"],"license":"MIT"},"lib/v4-periphery/src/libraries/CalldataDecoder.sol":{"keccak256":"0x26df49e13fb5410fd4db253cca877dfdfb3a1ba03e394d054c0e0514a88a56e5","urls":["bzz-raw://72a0c98c52171708f332f83d517deeb97fdd50ecf28f2510e1866e54593a6ff8","dweb:/ipfs/QmY4LiDUfSKGj86nML7B6a8euiPciUqwYehasAyAVnMCHq"],"license":"MIT"},"lib/v4-periphery/src/libraries/PathKey.sol":{"keccak256":"0xbbd79ffefe045f025263e389539021266fb4d371463aefba405e1ff1d3fcf9bc","urls":["bzz-raw://2d1c47b81a01218be46ee79f0a8837095479b94dc5cfd18abbf2006709f0ea89","dweb:/ipfs/QmRb6CQ13Zp7f3WF5jbZtsF2szhxpPgcuWs9mjwQXxzqtg"],"license":"MIT"},"lib/v4-periphery/src/libraries/PositionInfoLibrary.sol":{"keccak256":"0xc5ddf96bd088bc87ea50a20f907fc932fb28397a42682a301b268a11b7f34078","urls":["bzz-raw://7dfeb4dc747537240f8167243e8066b6f5f08057386fb8bda93f82973fc18ad6","dweb:/ipfs/Qmby9DAAaHj8hjsMUnqY3vjqCHKGAKrT5EULMmeGcjbbGx"],"license":"MIT"},"node_modules/fhevm/config/ZamaFHEVMConfig.sol":{"keccak256":"0x41782f4c707b81399916544fa2e7be94a695fa4ba468542732d29d3e383c0315","urls":["bzz-raw://45a95a55c4bbb3418c2133cba6ed21a9444bb4e38d38b32cc707b7493cece2ca","dweb:/ipfs/QmVU8EKmZgscdM43RgXD4EgbVMhQxBusTmBren3pbn1pUW"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/config/ZamaGatewayConfig.sol":{"keccak256":"0xbed8bc18db61ffeb5ee31f577ab636d8563df27554e0ca66c53534f0bd82ffbd","urls":["bzz-raw://53601967f9e914b25cf91a325b100d5b3cbb9aec92d12443062a51fe5a578b7d","dweb:/ipfs/QmNbviWrrPrx3snoLWqW5GyBnH99tSX3iYXEJ5ezk9XbtL"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/gateway/GatewayCaller.sol":{"keccak256":"0xd19fd7715f0c5b479bf0cd8e3108cc8da7deae2d4fc7fb5ab089ebf2d76a0652","urls":["bzz-raw://6386c509464cefe5a41903ca837da46a21b8042d13ccde656158efc48cd70ea8","dweb:/ipfs/QmUn7C6aZwKmEmKsphBshBezXXGZtLMyfaeZAyuZoRsBWU"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/gateway/lib/Gateway.sol":{"keccak256":"0x9585a649e3001a4b8768ab6e2597b416f680bcc537309cd50b60e023e9791318","urls":["bzz-raw://a1b055bfb067cc247d4bd60b5f8348f667cbe79717a5753cd6412955277345d0","dweb:/ipfs/QmTveBaQg9GUdtrrxcR4RsiyAEmoEKGL4gn6E1gThR1ph5"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/lib/Impl.sol":{"keccak256":"0x89d4968cd956a8931f1a8a177b3bef1c6cf88a03665083db74430add50b88f21","urls":["bzz-raw://aaaef2c82d56dacfb08946842ea1ce26757d13f3251de62fa79222232dfcb43c","dweb:/ipfs/QmQ6QZPxJw9jb3qjRYCX7pMQVoYogjTsYgmdEnB3EnwFRy"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/lib/TFHE.sol":{"keccak256":"0x221799c8332f83ab65a0b71746409f0c2c89f1cd8d9ba4091d967c667e1df734","urls":["bzz-raw://2dba387fbc612a2ee64063b0ee6c27304b3944423d11045acc50abd84577fb5f","dweb:/ipfs/QmThptDGnpd8PuncFk1rnQoCzEqwUED622yC9xZgFhwY59"],"license":"BSD-3-Clause-Clear"}},"version":1},"id":6} \ No newline at end of file diff --git a/out/IndexFundStateManagement.sol/IndexFundStateManagement.json b/out/IndexFundStateManagement.sol/IndexFundStateManagement.json new file mode 100644 index 0000000..604c5a3 --- /dev/null +++ b/out/IndexFundStateManagement.sol/IndexFundStateManagement.json @@ -0,0 +1 @@ +{"abi":[{"type":"error","name":"AmountToSwapTooBig","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"TransferFailed","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"from","type":"uint256","internalType":"eaddress"},{"name":"to","type":"uint256","internalType":"eaddress"},{"name":"amount","type":"uint256","internalType":"euint256"}]}],"bytecode":{"object":"0x60808060405234601b5761126b90816100208239308160070152f35b5f80fdfe6080604052307f0000000000000000000000000000000000000000000000000000000000000000146004361015610034575f80fd5b5f3560e01c80630881151914610a8b578063304e078314610833578063314bed221461066b5780635c251ab614610351578063a52cd1cb146100d65763df6b45b21461007e575f80fd5b6100d25760803660031901126100d25760643567ffffffffffffffff81116100d2576100c26100b46100ce923690600401610cb9565b604435602435600435610fb7565b60405191829182610d2c565b0390f35b5f80fd5b506100d25760203660031901126100d2576004356007810160ff19815416815561010260018301610d65565b9061010f60028401610e5f565b6008840193600b81019142603c81019081109260038101906004015f5b885181101561034f576001600160a01b03610147828b610db8565b5116906101548187610db8565b516001600160a01b0383165f90815260208d905260409020549092806102f45760125b8554604051630681320d60e51b81526004810193909352602090839060249082906001600160a01b03165afa918215610291575f926102c1575b5060098202918083046009149015171561029c576101de600a6101d7856101e495610e4c565b0491610f2b565b90610def565b906001600160801b038b5460101c1681116102b05785546001600160a01b03168961029c576001600160801b035f60209461024983958f8d9060018060a01b03905416916040519b8c998a988997630abff6dd60e11b89521692169060048701610f39565b03925af191821561029157600192610263575b500161012c565b6102839060203d811161028a575b61027b8183610c7f565b810190610de0565b505f61025c565b503d610271565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b628af7f560e11b5f5260045260245ffd5b9091506020813d82116102ec575b816102dc60209383610c7f565b810103126100d25751905f6101b1565b3d91506102cf565b60405163313ce56760e01b8152602081600481855afa80156102915760ff915f91610321575b5016610177565b610342915060203d8111610348575b61033a8183610c7f565b810190610f12565b5f61031a565b503d610330565b005b506100d25760403660031901126100d25760043560243567ffffffffffffffff81116100d257610385903690600401610cb9565b5f906007830160ff815460081c1692600385019360ff855460a01c1611610626576103b560018695939501610d65565b946103c260028201610e5f565b9460098201935f5b885181101561041a576001906001600160a01b036103e8828c610db8565b51166103f4828a610db8565b5190838060a01b03165f528760205261041260405f20918254610e0d565b9055016103ca565b50868894939561ff0019845416845560045f970192603c420190814211965b88518a101561061b576001600160a01b036104548b8b610db8565b511660018060a01b0381165f528460205260405f205481155f146105cc57602460125b8954604051630681320d60e51b8152600481018690529260209184919082906001600160a01b03165afa918215610291575f92610599575b5060098202918083046009149015171561029c576101de600a6101d7856104d595610e4c565b906001600160801b038a5460101c1681116102b05784548b9392916001600160a01b03909116906105068f8b610db8565b519461029c575f6001600160801b03936105406020968b87956040519a8b998a988997630abff6dd60e11b89521692169060048701610f39565b03925af1908115610291575f91610567575b5061055f90600192610e0d565b990198610439565b90506020813d8211610591575b8161058160209383610c7f565b810103126100d257516001610552565b3d9150610574565b9091506020813d82116105c4575b816105b460209383610c7f565b810103126100d25751908e6104af565b3d91506105a7565b60405163313ce56760e01b8152602081600481865afa9081156102915760249160ff915f916105fd575b5016610477565b610615915060203d81116103485761033a8183610c7f565b8f6105f6565b602090604051908152f35b60405162461bcd60e51b815260206004820152601960248201527f4e6f7420656e6f75676820737761707320746f206261746368000000000000006044820152606490fd5b61067436610d16565b906004602061068560018401610d65565b600c909301546040516318160ddd60e01b815292839182906001600160a01b03165afa8015610291575f906107e8575b67ffffffffffffffff91501680156107af576106d18251610e1a565b905f5b83518110156107a1576001600160a01b036106ef8286610db8565b511690811561078a576020602492604051938480926370a0823160e01b82523060048301525afa91821561029157839287915f9161074f575b509261073961073e92600195610e4c565b610def565b6107488286610db8565b52016106d4565b935050506020823d8211610782575b8161076b60209383610c7f565b810103126100d25790518291908690610739610728565b3d915061075e565b6001915061079c836107398847610e4c565b61073e565b604051806100ce8582610d2c565b60405162461bcd60e51b8152602060048201526011602482015270139bc81cda185c995cc8195b5a5d1d1959607a1b6044820152606490fd5b506020813d60201161082b575b8161080260209383610c7f565b810103126100d2575167ffffffffffffffff811681036100d25767ffffffffffffffff906106b5565b3d91506107f5565b506100d25761084136610d16565b9061084e60018201610d65565b60018060a01b0360048301541660405190630a7c1bd560e21b82528160248101602060048301528451809152604482019060208601905f5b818110610a69575050509181805f9403915afa908115610291575f905f926109d1575b508084556005840154604051634d1b7c9960e11b815290602090829060049082906001600160a01b03165afa8015610291575f9061099d575b6108ed915086610def565b91600685016108fd848254610e0d565b905582860395861161029c57610914918686610fb7565b936007840160ff81541660ff811461029c57815460ff191660019190910160ff161790559092600801905f5b835181101561098d578061095660019288610db8565b51828060a01b036109678388610db8565b5116838060a01b03165f528460205261098560405f20918254610e0d565b905501610940565b6040828682519182526020820152f35b506020813d6020116109c9575b816109b760209383610c7f565b810103126100d2576108ed90516108e2565b3d91506109aa565b9150503d805f833e6109e38183610c7f565b8101906040818303126100d25780519060208101519067ffffffffffffffff82116100d257019180601f840112156100d2578251610a2081610ca1565b93610a2e6040519586610c7f565b81855260208086019260051b8201019283116100d257602001905b828210610a59575050505f6108a9565b8151815260209182019101610a49565b82516001600160a01b0316845286945060209384019390920191600101610886565b506100d25760603660031901126100d2576024356001600160a01b0381168082036100d25760443567ffffffffffffffff81116100d257610ad0903690600401610cb9565b91610adf600160043501610d65565b925f5b845181101561034f576001600160a01b03610afd8287610db8565b5116610b098284610db8565b519080610bbf57505f80808084885af13d15610bba573d67ffffffffffffffff8111610ba65760405190610b47601f8201601f191660200183610c7f565b81525f60203d92013e5b15610b6157506001905b01610ae2565b83608491610b80610b7a610b7430611133565b93611133565b916111cc565b90604051926349bcfefd60e01b84525f6004850152602484015260448301526064820152fd5b634e487b7160e01b5f52604160045260245ffd5b610b51565b90610bca8385610db8565b516040519063a9059cbb60e01b825287600483015260248201526020816044815f875af1908115610291575f91610c45575b5015610c0c575050600190610b5b565b9084608492610c20610b7a610b7430611133565b91604051936349bcfefd60e01b85526004850152602484015260448301526064820152fd5b90506020813d8211610c77575b81610c5f60209383610c7f565b810103126100d2575180151581036100d2575f610bfc565b3d9150610c52565b90601f8019910116810190811067ffffffffffffffff821117610ba657604052565b67ffffffffffffffff8111610ba65760051b60200190565b9080601f830112156100d2578135610cd081610ca1565b92610cde6040519485610c7f565b81845260208085019260051b8201019283116100d257602001905b828210610d065750505090565b8135815260209182019101610cf9565b60409060031901126100d2576004359060243590565b60206040818301928281528451809452019201905f5b818110610d4f5750505090565b8251845260209384019390920191600101610d42565b90604051918281549182825260208201905f5260205f20925f5b818110610d96575050610d9492500383610c7f565b565b84546001600160a01b0316835260019485019487945060209093019201610d7f565b8051821015610dcc5760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b908160209103126100d2575190565b8115610df9570490565b634e487b7160e01b5f52601260045260245ffd5b9190820180921161029c57565b90610e2482610ca1565b610e316040519182610c7f565b8281528092610e42601f1991610ca1565b0190602036910137565b8181029291811591840414171561029c57565b90815491610e6c83610ca1565b92610e7a6040519485610c7f565b80845260208401915f5260205f20915f905b828210610e995750505050565b60405160a0810181811067ffffffffffffffff821117610ba657600192600392602092604052848060a01b03885416815284880154858060a01b0381168483015262ffffff8160a01c16604083015260b81c60020b6060820152848060a01b036002890154166080820152815201940191019092610e8c565b908160209103126100d2575160ff811681036100d25790565b604d811161029c57600a0a90565b81516001600160a01b03908116825260208084015182169083015260408084015162ffffff169083015260608084015160020b908301526080928301518116928201929092526001600160801b0392831660a08201529290911660c083015260e0820192909252600161010082015291166101208201526101400190565b91928051926001810190815485036110bc57610fd68395949551610e1a565b955f956201518042019465ffffffffffff8642119616975b8781106110015750505050505050505090565b611019846107396110128486610db8565b5186610e4c565b611023828c610db8565b5260018060a01b03600386015416908654811015610dcc575f878152602090208101546001600160a01b0390811690899061105e848f610db8565b51169061029c57833b156100d25760645f92838e96604051978895869463267b14bd60e01b86526004860152602485015260448401525af1918215610291576001926110ac575b5001610fee565b5f6110b691610c7f565b5f6110a5565b60405162461bcd60e51b815260206004820152604360248201527f446973726570616e6379206265747765656e206e756d626572206f66206d617260448201527f6b6574206361707320616e64206e756d626572206f6620696e64657820746f6b606482015262656e7360e81b608482015260a490fd5b7fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60154604051631ce2e8d760e31b81526001600160a01b039283166004820152600760f81b602482015291602091839160449183915f91165af1908115610291575f9161119d575090565b90506020813d6020116111c4575b816111b860209383610c7f565b810103126100d2575190565b3d91506111ab565b7fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60154604051631ce2e8d760e31b81526004810192909252600160fb1b6024830152602090829060449082905f906001600160a01b03165af1908115610291575f9161119d57509056fea2646970667358221220aa9f63c8ff4fc53b073e4bf9695ef319bec5b0671b736daf22179725854c0e4b64736f6c634300081a0033","sourceMap":"836:10861:12:-:0;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052307f0000000000000000000000000000000000000000000000000000000000000000146004361015610034575f80fd5b5f3560e01c80630881151914610a8b578063304e078314610833578063314bed221461066b5780635c251ab614610351578063a52cd1cb146100d65763df6b45b21461007e575f80fd5b6100d25760803660031901126100d25760643567ffffffffffffffff81116100d2576100c26100b46100ce923690600401610cb9565b604435602435600435610fb7565b60405191829182610d2c565b0390f35b5f80fd5b506100d25760203660031901126100d2576004356007810160ff19815416815561010260018301610d65565b9061010f60028401610e5f565b6008840193600b81019142603c81019081109260038101906004015f5b885181101561034f576001600160a01b03610147828b610db8565b5116906101548187610db8565b516001600160a01b0383165f90815260208d905260409020549092806102f45760125b8554604051630681320d60e51b81526004810193909352602090839060249082906001600160a01b03165afa918215610291575f926102c1575b5060098202918083046009149015171561029c576101de600a6101d7856101e495610e4c565b0491610f2b565b90610def565b906001600160801b038b5460101c1681116102b05785546001600160a01b03168961029c576001600160801b035f60209461024983958f8d9060018060a01b03905416916040519b8c998a988997630abff6dd60e11b89521692169060048701610f39565b03925af191821561029157600192610263575b500161012c565b6102839060203d811161028a575b61027b8183610c7f565b810190610de0565b505f61025c565b503d610271565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b628af7f560e11b5f5260045260245ffd5b9091506020813d82116102ec575b816102dc60209383610c7f565b810103126100d25751905f6101b1565b3d91506102cf565b60405163313ce56760e01b8152602081600481855afa80156102915760ff915f91610321575b5016610177565b610342915060203d8111610348575b61033a8183610c7f565b810190610f12565b5f61031a565b503d610330565b005b506100d25760403660031901126100d25760043560243567ffffffffffffffff81116100d257610385903690600401610cb9565b5f906007830160ff815460081c1692600385019360ff855460a01c1611610626576103b560018695939501610d65565b946103c260028201610e5f565b9460098201935f5b885181101561041a576001906001600160a01b036103e8828c610db8565b51166103f4828a610db8565b5190838060a01b03165f528760205261041260405f20918254610e0d565b9055016103ca565b50868894939561ff0019845416845560045f970192603c420190814211965b88518a101561061b576001600160a01b036104548b8b610db8565b511660018060a01b0381165f528460205260405f205481155f146105cc57602460125b8954604051630681320d60e51b8152600481018690529260209184919082906001600160a01b03165afa918215610291575f92610599575b5060098202918083046009149015171561029c576101de600a6101d7856104d595610e4c565b906001600160801b038a5460101c1681116102b05784548b9392916001600160a01b03909116906105068f8b610db8565b519461029c575f6001600160801b03936105406020968b87956040519a8b998a988997630abff6dd60e11b89521692169060048701610f39565b03925af1908115610291575f91610567575b5061055f90600192610e0d565b990198610439565b90506020813d8211610591575b8161058160209383610c7f565b810103126100d257516001610552565b3d9150610574565b9091506020813d82116105c4575b816105b460209383610c7f565b810103126100d25751908e6104af565b3d91506105a7565b60405163313ce56760e01b8152602081600481865afa9081156102915760249160ff915f916105fd575b5016610477565b610615915060203d81116103485761033a8183610c7f565b8f6105f6565b602090604051908152f35b60405162461bcd60e51b815260206004820152601960248201527f4e6f7420656e6f75676820737761707320746f206261746368000000000000006044820152606490fd5b61067436610d16565b906004602061068560018401610d65565b600c909301546040516318160ddd60e01b815292839182906001600160a01b03165afa8015610291575f906107e8575b67ffffffffffffffff91501680156107af576106d18251610e1a565b905f5b83518110156107a1576001600160a01b036106ef8286610db8565b511690811561078a576020602492604051938480926370a0823160e01b82523060048301525afa91821561029157839287915f9161074f575b509261073961073e92600195610e4c565b610def565b6107488286610db8565b52016106d4565b935050506020823d8211610782575b8161076b60209383610c7f565b810103126100d25790518291908690610739610728565b3d915061075e565b6001915061079c836107398847610e4c565b61073e565b604051806100ce8582610d2c565b60405162461bcd60e51b8152602060048201526011602482015270139bc81cda185c995cc8195b5a5d1d1959607a1b6044820152606490fd5b506020813d60201161082b575b8161080260209383610c7f565b810103126100d2575167ffffffffffffffff811681036100d25767ffffffffffffffff906106b5565b3d91506107f5565b506100d25761084136610d16565b9061084e60018201610d65565b60018060a01b0360048301541660405190630a7c1bd560e21b82528160248101602060048301528451809152604482019060208601905f5b818110610a69575050509181805f9403915afa908115610291575f905f926109d1575b508084556005840154604051634d1b7c9960e11b815290602090829060049082906001600160a01b03165afa8015610291575f9061099d575b6108ed915086610def565b91600685016108fd848254610e0d565b905582860395861161029c57610914918686610fb7565b936007840160ff81541660ff811461029c57815460ff191660019190910160ff161790559092600801905f5b835181101561098d578061095660019288610db8565b51828060a01b036109678388610db8565b5116838060a01b03165f528460205261098560405f20918254610e0d565b905501610940565b6040828682519182526020820152f35b506020813d6020116109c9575b816109b760209383610c7f565b810103126100d2576108ed90516108e2565b3d91506109aa565b9150503d805f833e6109e38183610c7f565b8101906040818303126100d25780519060208101519067ffffffffffffffff82116100d257019180601f840112156100d2578251610a2081610ca1565b93610a2e6040519586610c7f565b81855260208086019260051b8201019283116100d257602001905b828210610a59575050505f6108a9565b8151815260209182019101610a49565b82516001600160a01b0316845286945060209384019390920191600101610886565b506100d25760603660031901126100d2576024356001600160a01b0381168082036100d25760443567ffffffffffffffff81116100d257610ad0903690600401610cb9565b91610adf600160043501610d65565b925f5b845181101561034f576001600160a01b03610afd8287610db8565b5116610b098284610db8565b519080610bbf57505f80808084885af13d15610bba573d67ffffffffffffffff8111610ba65760405190610b47601f8201601f191660200183610c7f565b81525f60203d92013e5b15610b6157506001905b01610ae2565b83608491610b80610b7a610b7430611133565b93611133565b916111cc565b90604051926349bcfefd60e01b84525f6004850152602484015260448301526064820152fd5b634e487b7160e01b5f52604160045260245ffd5b610b51565b90610bca8385610db8565b516040519063a9059cbb60e01b825287600483015260248201526020816044815f875af1908115610291575f91610c45575b5015610c0c575050600190610b5b565b9084608492610c20610b7a610b7430611133565b91604051936349bcfefd60e01b85526004850152602484015260448301526064820152fd5b90506020813d8211610c77575b81610c5f60209383610c7f565b810103126100d2575180151581036100d2575f610bfc565b3d9150610c52565b90601f8019910116810190811067ffffffffffffffff821117610ba657604052565b67ffffffffffffffff8111610ba65760051b60200190565b9080601f830112156100d2578135610cd081610ca1565b92610cde6040519485610c7f565b81845260208085019260051b8201019283116100d257602001905b828210610d065750505090565b8135815260209182019101610cf9565b60409060031901126100d2576004359060243590565b60206040818301928281528451809452019201905f5b818110610d4f5750505090565b8251845260209384019390920191600101610d42565b90604051918281549182825260208201905f5260205f20925f5b818110610d96575050610d9492500383610c7f565b565b84546001600160a01b0316835260019485019487945060209093019201610d7f565b8051821015610dcc5760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b908160209103126100d2575190565b8115610df9570490565b634e487b7160e01b5f52601260045260245ffd5b9190820180921161029c57565b90610e2482610ca1565b610e316040519182610c7f565b8281528092610e42601f1991610ca1565b0190602036910137565b8181029291811591840414171561029c57565b90815491610e6c83610ca1565b92610e7a6040519485610c7f565b80845260208401915f5260205f20915f905b828210610e995750505050565b60405160a0810181811067ffffffffffffffff821117610ba657600192600392602092604052848060a01b03885416815284880154858060a01b0381168483015262ffffff8160a01c16604083015260b81c60020b6060820152848060a01b036002890154166080820152815201940191019092610e8c565b908160209103126100d2575160ff811681036100d25790565b604d811161029c57600a0a90565b81516001600160a01b03908116825260208084015182169083015260408084015162ffffff169083015260608084015160020b908301526080928301518116928201929092526001600160801b0392831660a08201529290911660c083015260e0820192909252600161010082015291166101208201526101400190565b91928051926001810190815485036110bc57610fd68395949551610e1a565b955f956201518042019465ffffffffffff8642119616975b8781106110015750505050505050505090565b611019846107396110128486610db8565b5186610e4c565b611023828c610db8565b5260018060a01b03600386015416908654811015610dcc575f878152602090208101546001600160a01b0390811690899061105e848f610db8565b51169061029c57833b156100d25760645f92838e96604051978895869463267b14bd60e01b86526004860152602485015260448401525af1918215610291576001926110ac575b5001610fee565b5f6110b691610c7f565b5f6110a5565b60405162461bcd60e51b815260206004820152604360248201527f446973726570616e6379206265747765656e206e756d626572206f66206d617260448201527f6b6574206361707320616e64206e756d626572206f6620696e64657820746f6b606482015262656e7360e81b608482015260a490fd5b7fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60154604051631ce2e8d760e31b81526001600160a01b039283166004820152600760f81b602482015291602091839160449183915f91165af1908115610291575f9161119d575090565b90506020813d6020116111c4575b816111b860209383610c7f565b810103126100d2575190565b3d91506111ab565b7fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60154604051631ce2e8d760e31b81526004810192909252600160fb1b6024830152602090829060449082905f906001600160a01b03165af1908115610291575f9161119d57509056fea2646970667358221220aa9f63c8ff4fc53b073e4bf9695ef319bec5b0671b736daf22179725854c0e4b64736f6c634300081a0033","sourceMap":"836:10861:12:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;836:10861:12;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;836:10861:12;;;;;;3561:41;;;836:10861;;;;;;;;;3647:16;;836:10861;:::i;:::-;3701:13;836:10861;3701:13;;;836:10861;:::i;:::-;3932:40;;;;4851:24;;;;4776:15;4794:9;836:10861;;;;-1:-1:-1;836:10861:12;4617:22;;;;836:10861;4275:22;836:10861;3768:3;836:10861;;3744:22;;;;;-1:-1:-1;;;;;3821:14:12;;;;:::i;:::-;836:10861;;3874:11;;;;;:::i;:::-;;-1:-1:-1;;;;;836:10861:12;;-1:-1:-1;836:10861:12;;;;;;;;;;;3874:11;;4046:37;836:10861;;4114:2;4042:180;836:10861;;;;-1:-1:-1;;;4256:81:12;;836:10861;4256:81;;836:10861;;;;;;;;4256:81;;836:10861;;-1:-1:-1;;;;;836:10861:12;4256:81;;;;;;;836:10861;4256:81;;;4042:180;836:10861;4388:1;836:10861;;;;;;4388:1;836:10861;;;;;;;4424:14;4418:2;4375:39;;4374:65;4375:39;;:::i;:::-;836:10861;4424:14;;:::i;:::-;4374:65;;:::i;:::-;836:10861;-1:-1:-1;;;;;836:10861:12;;;;;4458:48;;4454:136;;836:10861;;-1:-1:-1;;;;;836:10861:12;;;;-1:-1:-1;;;;;836:10861:12;;;4604:286;836:10861;;;;;;;;;;;;;;;;;;;;;;;;;;4604:286;;836:10861;;;4604:286;836:10861;4604:286;;;:::i;:::-;;;;;;;;;;836:10861;4604:286;;;4042:180;3768:3;836:10861;3729:13;;4604:286;;;836:10861;4604:286;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;836:10861;;;;;;;;;;;;;;;;;;4256:81;836:10861;;4454:136;8092:37;;;836:10861;4533:42;836:10861;;4256:81;836:10861;4533:42;4256:81;;;;836:10861;4256:81;;;;;;;;;836:10861;4256:81;;;:::i;:::-;;;836:10861;;;;;4256:81;;;;;;;-1:-1:-1;4256:81:12;;4042:180;836:10861;;-1:-1:-1;;;4166:41:12;;836:10861;;;;4166:41;;;;;;;836:10861;4166:41;836:10861;4166:41;;;4042:180;836:10861;;4042:180;;4166:41;;;;836:10861;4166:41;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;3744:22;836:10861;;;;;;;-1:-1:-1;;836:10861:12;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6851:41;;;;836:10861;;;;;;6896:25;;;;836:10861;;;;;;;-1:-1:-1;836:10861:12;;;;6992:16;;;;;836:10861;:::i;:::-;7046:13;836:10861;7046:13;;;836:10861;:::i;:::-;7075:13;7195:35;;;;836:10861;7114:3;836:10861;;7090:22;;;;;836:10861;;-1:-1:-1;;;;;7167:14:12;836:10861;7167:14;;:::i;:::-;836:10861;;7259:21;;;;:::i;:::-;836:10861;7195:60;836:10861;;;;;;-1:-1:-1;836:10861:12;;;;7195:85;836:10861;-1:-1:-1;836:10861:12;;;;7195:85;:::i;:::-;836:10861;;;7075:13;;7090:22;;;;;;;836:10861;;;;;;;;;7845:22;;8353:15;8371:9;8353:15;836:10861;8353:15;;;836:10861;7355:1113;7399:3;836:10861;;7375:22;;;;;-1:-1:-1;;;;;7452:14:12;;;;:::i;:::-;836:10861;;;;;;;;;-1:-1:-1;836:10861:12;;;;;-1:-1:-1;836:10861:12;;7616:37;;7612:180;836:10861;;;;7684:2;7612:180;836:10861;;;;-1:-1:-1;;;7826:81:12;;836:10861;7826:81;;836:10861;;;;;;;;;;;-1:-1:-1;;;;;836:10861:12;7826:81;;;;;;;836:10861;7826:81;;;7612:180;836:10861;7195:35;836:10861;;;;;;7195:35;836:10861;;;;;;;7989:14;7983:2;7945:34;;7944:60;7945:34;;:::i;7944:60::-;836:10861;-1:-1:-1;;;;;836:10861:12;;;;;8022:43;;8018:126;;836:10861;;;;;;-1:-1:-1;;;;;836:10861:12;;;;8241:11;836:10861;8241:11;;:::i;:::-;;836:10861;;;;-1:-1:-1;;;;;836:10861:12;8182:275;836:10861;;;;;;;;;;;;;;;;;8182:275;;836:10861;;;8182:275;836:10861;8182:275;;;:::i;:::-;;;;;;;;;;836:10861;8182:275;;;7612:180;8158:299;;;836:10861;8158:299;;:::i;:::-;7399:3;836:10861;7360:13;;;8182:275;;;836:10861;8182:275;;;;;;;;;836:10861;8182:275;;;:::i;:::-;;;836:10861;;;;;;8182:275;;;;;-1:-1:-1;8182:275:12;;7826:81;;;;836:10861;7826:81;;;;;;;;;836:10861;7826:81;;;:::i;:::-;;;836:10861;;;;;7826:81;;;;;;;-1:-1:-1;7826:81:12;;7612:180;836:10861;;-1:-1:-1;;;7736:41:12;;836:10861;;;;7736:41;;;;;;;;836:10861;7736:41;836:10861;7736:41;836:10861;7736:41;;;7612:180;836:10861;;7612:180;;7736:41;;;;836:10861;7736:41;;;;;;;;;:::i;:::-;;;;7375:22;836:10861;7375:22;836:10861;;;;;;;;;-1:-1:-1;;;836:10861:12;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5484:16;836:10861;5534:33;836:10861;5484:16;;;836:10861;:::i;:::-;5534:19;;;;836:10861;;;-1:-1:-1;;;5534:33:12;;836:10861;;;;;-1:-1:-1;;;;;836:10861:12;5534:33;;;;;;836:10861;5534:33;;;836:10861;;;;;5585:17;;836:10861;;5663:33;836:10861;;5663:33;:::i;:::-;5711:13;836:10861;5750:3;836:10861;;5726:22;;;;;-1:-1:-1;;;;;5785:14:12;;;;:::i;:::-;836:10861;;;5864:19;;836:10861;;5534:33;5932:38;836:10861;;;;;;;;;;5932:38;;836:10861;;5932:38;;836:10861;5932:38;;;;;;;;;;;836:10861;5932:38;;;5860:347;5932:56;;;5931:74;5932:56;5484:16;5932:56;;:::i;:::-;5931:74;:::i;:::-;6220:57;;;;:::i;:::-;836:10861;;5711:13;;5932:38;;;;;5534:33;5932:38;;;;;;;;;836:10861;5932:38;;;:::i;:::-;;;836:10861;;;;;;;;-1:-1:-1;836:10861:12;;5932:56;:38;;;;;-1:-1:-1;5932:38:12;;5860:347;5484:16;6136:21;;6135:57;6136:21;:39;:21;;:39;:::i;6135:57::-;5860:347;;5726:22;836:10861;;;;5726:22;836:10861;;:::i;:::-;;;-1:-1:-1;;;836:10861:12;;5534:33;836:10861;;;;;;;;;-1:-1:-1;;;836:10861:12;;;;;;;5534:33;;;;;;;;;;;;;;;;:::i;:::-;;;836:10861;;;;;;;;;;;;;5534:33;;;;;;-1:-1:-1;5534:33:12;;836:10861;;;;;;;:::i;:::-;2410:16;836:10861;2410:16;;;836:10861;:::i;:::-;;;;;;;2517:22;;836:10861;;;;;;;;2498:87;;836:10861;;;;;;2498:87;;836:10861;;;;;;;;;;;;;;;;;;;;;2498:87;;;;;;836:10861;2498:87;;;;;;;;;;836:10861;;;2498:87;;;836:10861;-1:-1:-1;836:10861:12;;;2691:21;;;836:10861;;;-1:-1:-1;;;2674:52:12;;836:10861;;;;;;;;;-1:-1:-1;;;;;836:10861:12;2674:52;;;;;;836:10861;2674:52;;;836:10861;2748:28;;;;;:::i;:::-;2786:18;;;;:31;836:10861;;;2786:31;:::i;:::-;836:10861;;;;;;;;;;2928:144;;;;;:::i;:::-;3082:41;;;;836:10861;;;;;;;;;;;-1:-1:-1;;836:10861:12;2410:16;836:10861;;;;;;;;;;;3198:40;;;-1:-1:-1;3179:3:12;836:10861;;3155:22;;;;;3258:26;;2410:16;3258:26;;;:::i;:::-;836:10861;;;;;;3239:14;;;;:::i;:::-;836:10861;;;;;;;;-1:-1:-1;836:10861:12;;;;3198:86;836:10861;-1:-1:-1;836:10861:12;;;;3198:86;:::i;:::-;836:10861;;;3140:13;;3155:22;836:10861;3155:22;;836:10861;;;;;;;;;;2674:52;;836:10861;2674:52;;836:10861;2674:52;;;;;;836:10861;2674:52;;;:::i;:::-;;;836:10861;;;;2748:28;836:10861;;2674:52;;;;;-1:-1:-1;2674:52:12;;2498:87;;;;;;836:10861;2498:87;;;;;;:::i;:::-;;;836:10861;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;2498:87;;;;;;836:10861;;;;;;;;;;;;;;;;-1:-1:-1;;;;;836:10861:12;;;;;-1:-1:-1;836:10861:12;;;;;;;;;2410:16;836:10861;;;;;;;;;-1:-1:-1;;836:10861:12;;;;;;-1:-1:-1;;;;;836:10861:12;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;8984:16;836:10861;:::i;:::-;9015:13;836:10861;9049:3;836:10861;;9030:17;;;;;-1:-1:-1;;;;;9084:9:12;;;;:::i;:::-;836:10861;;9132:29;;;;:::i;:::-;836:10861;;9179:19;836:10861;;9238:38;836:10861;9238:38;;;;;;;836:10861;;;;;;;;;;;;;;;;;-1:-1:-1;;836:10861:12;;;;;:::i;:::-;;;;;;;;;;9298:9;9294:295;;9175:849;836:10861;9175:849;;836:10861;9015:13;;9294:295;836:10861;9338:232;836:10861;345965:45:160;9470:21:12;9414:30;836:10861;9414:30;:::i;:::-;9470:21;;:::i;:::-;345965:45:160;;:::i;:::-;836:10861:12;;;9764:227;;;;9338:232;;836:10861;;9338:232;;836:10861;;;;;;;;;;;;;9338:232;836:10861;;;;;;;;;;;;;;;9175:849;9672:29;;;;;:::i;:::-;836:10861;;;;;;;9643:59;;;836:10861;9643:59;;836:10861;;;;;;9643:59;836:10861;9643:59;836:10861;9643:59;;;;;;;;836:10861;9643:59;;;9175:849;9724:9;;9720:290;;9175:849;;836:10861;9175:849;;;9720:290;836:10861;;9764:227;836:10861;345965:45:160;9891:21:12;9835:30;836:10861;9835:30;:::i;345965:45:160:-;836:10861:12;;;9764:227;;;;;;836:10861;9764:227;;836:10861;;;;;;;;;;;;;9764:227;9643:59;;;836:10861;9643:59;;;;;;;;;836:10861;9643:59;;;:::i;:::-;;;836:10861;;;;;;;;;;;;9643:59;;;;;;-1:-1:-1;9643:59:12;;836:10861;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;836:10861:12;;-1:-1:-1;836:10861:12;;-1:-1:-1;836:10861:12;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;;;;;836:10861:12;;;;;;;;;;-1:-1:-1;836:10861:12;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;836:10861:12;;-1:-1:-1;836:10861:12;;-1:-1:-1;836:10861:12;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;836:10861:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;836:10861:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10674:1021::-;;;836:10861;;10997:16;;;;836:10861;;;10977:43;;836:10861;;11150:32;836:10861;;;;;11150:32;:::i;:::-;11197:13;-1:-1:-1;11615:15:12;11633:6;11615:15;836:10861;11615:15;836:10861;11615:15;;836:10861;;;11192:473;11212:20;;;;;;11674:14;;;;;;;;;10674:1021;:::o;11234:3::-;11317:52;11332:13;11318:27;11332:13;;;;:::i;:::-;836:10861;11318:27;;:::i;11317:52::-;11304:65;;;;:::i;:::-;836:10861;;;;;;11469:22;;;836:10861;;;;;;;;;;-1:-1:-1;836:10861:12;;;;;;;;;-1:-1:-1;;;;;836:10861:12;;;;;;11579:10;836:10861;;11579:10;:::i;:::-;836:10861;;;;;11456:198;;;;;;-1:-1:-1;836:10861:12;;;;;;;;;;;;;;11456:198;;;;;836:10861;;;;;;;;;11456:198;;;;;;;10997:16;11456:198;;;11234:3;;836:10861;11197:13;;11456:198;-1:-1:-1;11456:198:12;;;:::i;:::-;;;;836:10861;;;-1:-1:-1;;;836:10861:12;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;836:10861:12;;;;;;;350416:156:160;13991:21:159;836:10861:12;;;-1:-1:-1;;;13977:74:159;;-1:-1:-1;;;;;836:10861:12;;;13977:74:159;;;836:10861:12;-1:-1:-1;;;836:10861:12;;;;;;;;;13977:74:159;;836:10861:12;;-1:-1:-1;;836:10861:12;13977:74:159;;;;;;;-1:-1:-1;13977:74:159;;;13968:83;350416:156:160;:::o;13977:74:159:-;;;836:10861:12;13977:74:159;;836:10861:12;13977:74:159;;;;;;836:10861:12;13977:74:159;;;:::i;:::-;;;836:10861:12;;;;;350416:156:160;:::o;13977:74:159:-;;;-1:-1:-1;13977:74:159;;13815:243;13991:21;836:10861:12;;;-1:-1:-1;;;13977:74:159;;;;;836:10861:12;;;;-1:-1:-1;;;836:10861:12;;;;;;;;13977:74:159;;836:10861:12;;-1:-1:-1;;;;;;;836:10861:12;13977:74:159;;;;;;;-1:-1:-1;13977:74:159;;;13968:83;13815:243;:::o","linkReferences":{},"immutableReferences":{"library_deploy_address":[{"start":7,"length":32}]}},"methodIdentifiers":{"_computeAmountsToSwapOnMint(IndexFundStateManagement.IndexFundState storage,uint256,uint256,uint256[])":"df6b45b2","computeAmountsToSwapOrRedeemOnBurn(IndexFundStateManagement.IndexFundState storage,uint256)":"314bed22","preprocessSwapsOnMint(IndexFundStateManagement.IndexFundState storage,uint256)":"304e0783","processSwapsOnBurn(IndexFundStateManagement.IndexFundState storage,uint256[])":"5c251ab6","processSwapsOnMint(IndexFundStateManagement.IndexFundState storage)":"a52cd1cb","sendTokensBackOnBurn(IndexFundStateManagement.IndexFundState storage,address,uint256[])":"08811519"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"AmountToSwapTooBig\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"eaddress\",\"name\":\"from\",\"type\":\"uint256\"},{\"internalType\":\"eaddress\",\"name\":\"to\",\"type\":\"uint256\"},{\"internalType\":\"euint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TransferFailed\",\"type\":\"error\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"_computeAmountsToSwapOnMint(IndexFundStateManagement.IndexFundState storage,uint256,uint256,uint256[])\":{\"details\":\"Calculates the swap amount for each token based on its market cap relative to the total index market cap. Also approves each token for swapping via the swaps manager.\",\"params\":{\"_totalIndexMarketCap\":\"The total market capitalization of the index tokens.\",\"marketCaps\":\"An array of market capitalizations for each index token.\",\"totalAmount\":\"The total stablecoin amount available for swaps.\"},\"returns\":{\"_0\":\"An array containing the stablecoin amount allocated for each token swap.\"}},\"computeAmountsToSwapOrRedeemOnBurn(IndexFundStateManagement.IndexFundState storage,uint256)\":{\"params\":{\"decryptedAmount\":\"The amount of shares being burned\"},\"returns\":{\"tokenAmountsToRedeemOrSwap\":\"Array of token amounts to swap or redeem\"}},\"preprocessSwapsOnMint(IndexFundStateManagement.IndexFundState storage,uint256)\":{\"params\":{\"decryptedAmount\":\"The amount of stablecoin to process\"},\"returns\":{\"feeAmount\":\"The amount of fees collected\",\"totalStablecoinIn\":\"The amount of stablecoin available for swaps after fees\"}},\"processSwapsOnBurn(IndexFundStateManagement.IndexFundState storage,uint256[])\":{\"details\":\"Executes swaps for each index token and accumulates the stablecoin received.\",\"params\":{\"tokenAmountsToSwap\":\"Array of token amounts to swap\"},\"returns\":{\"stablecoinToSendBack\":\"Total amount of stablecoin received from swaps\"}},\"processSwapsOnMint(IndexFundStateManagement.IndexFundState storage)\":{\"details\":\"Executes the swaps for each index token using the stored pending amounts.\"},\"sendTokensBackOnBurn(IndexFundStateManagement.IndexFundState storage,address,uint256[])\":{\"details\":\"Transfers each index token to the user in proportion to their burned shares.\",\"params\":{\"tokenAmountsToRedeemOrSwap\":\"Array of token amounts to send\",\"user\":\"The address of the user receiving the tokens\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"_computeAmountsToSwapOnMint(IndexFundStateManagement.IndexFundState storage,uint256,uint256,uint256[])\":{\"notice\":\"Computes the distribution of stablecoin amounts to swap for each index token.\"},\"computeAmountsToSwapOrRedeemOnBurn(IndexFundStateManagement.IndexFundState storage,uint256)\":{\"notice\":\"Computes the amounts of each index token to swap or redeem when burning shares. Calculates proportional amounts based on the user's share of the total supply.\"},\"preprocessSwapsOnMint(IndexFundStateManagement.IndexFundState storage,uint256)\":{\"notice\":\"Preprocesses the swaps needed when minting new shares: calculates fees and distributes the stablecoin amount across index tokens based on market caps.\"},\"processSwapsOnBurn(IndexFundStateManagement.IndexFundState storage,uint256[])\":{\"notice\":\"Processes the token to stablecoin swaps when burning shares.\"},\"processSwapsOnMint(IndexFundStateManagement.IndexFundState storage)\":{\"notice\":\"Processes the pending stablecoin to token swaps after minting.\"},\"sendTokensBackOnBurn(IndexFundStateManagement.IndexFundState storage,address,uint256[])\":{\"notice\":\"Sends index tokens back to the user when burning shares.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/lib/IndexFundStateManagement.sol\":\"IndexFundStateManagement\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@chainlink/=lib/chainlink/\",\":@ensdomains/=lib/v4-core/node_modules/@ensdomains/\",\":@httpz-contracts/=lib/httpz-contracts/contracts/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/universal-router/=lib/universal-router.git/\",\":@uniswap/v2-core/=lib/v2-core/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/\",\":@uniswap/v4-core/=lib/v4-core/\",\":@uniswap/v4-periphery/=lib/v4-periphery/\",\":chainlink/=lib/chainlink/\",\":ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":fhevm-contracts/=node_modules/fhevm-contracts/\",\":fhevm-core-contracts/=node_modules/fhevm-core-contracts/\",\":fhevm/=node_modules/fhevm/\",\":forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":httpz-contracts/=lib/httpz-contracts/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":permit2/=lib/permit2/\",\":solmate/=lib/permit2/lib/solmate/\",\":universal-router.git/=lib/universal-router.git/\",\":v2-core/=lib/v2-core/contracts/\",\":v3-core/=lib/v3-core/\",\":v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/\",\":v4-core/=lib/v4-core/src/\",\":v4-periphery/=lib/v4-periphery/\"],\"viaIR\":true},\"sources\":{\"contracts/ConfidentialIndexFund.sol\":{\"keccak256\":\"0xac792e087c3600604af05e0abfa3db9fef4e71daf884885606115c672efcc5b7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9454f480f9154f76c365622aa59a1fd9ea36a9b409df31bf13fe6d35e63f64d3\",\"dweb:/ipfs/QmYz5knj2ptBvsdocjk7it2qiv968uytuVmBeHDsvz13xe\"]},\"contracts/ERC20Encryption/ConfidentialERC20Base.sol\":{\"keccak256\":\"0xa622900eae5b1f80c956ec16afec6e4ef6af141d7973b6d52167a86ae988272c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://45dcc2e65f2b601bf132eaae21b1ed2e5dd67c9644e6edcf856ea3274444b04e\",\"dweb:/ipfs/QmR4XvcnxE3JBfPNpLcyvPssdBqtMTd76gm6BWczaSMi9D\"]},\"contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol\":{\"keccak256\":\"0x6f947e91a3369017e4d0147ac44ea39c6f8ffa4a5307d8339481f4e88355a62d\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://27794b1340f9299d7be061aacde65075fca40a1d722e8c5181cee22f257eeb25\",\"dweb:/ipfs/QmT3DReokqZhMtDcEDpkTgf1zG5cZELzPEZDjrqpfEXjWC\"]},\"contracts/ERC20Encryption/ConfidentialERC20WithErrorsWrapped.sol\":{\"keccak256\":\"0x6780cf12626fab34cbe430892929cb2827f948ed6fb613dfb55dda036ced8697\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc3c67659beeff5d21d110cd711c731a52a88293bf120b582f72f2fe4da7bf2d\",\"dweb:/ipfs/QmNbQ9EehknmU6Fui2QpnTSTj7Ft9sbWc95nz3x62fe2Jh\"]},\"contracts/ERC20Encryption/CustomConfidentialERC20WithErrors.sol\":{\"keccak256\":\"0x48800ae20f96fc6ff85e8428faf7c314eceefa7a1349fc3f42479ba82d658431\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://6ab1d91f86b98bcf65f7af820157a9d7cd923f51e60df7897c1e9858f3e3a433\",\"dweb:/ipfs/QmUt2mtzHAHDp2bvkSiXpZdM9okz4mJKFTHjU2YwPjxvxd\"]},\"contracts/ERC20Encryption/CustomConfidentialERC20Wrapped.sol\":{\"keccak256\":\"0xe3f6e6a47070a54952ac2dd5e008c7997322a16e72f4114a2ec48f45e3bc8cea\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://8b47026e8a91b2a0212d621e0b2a8452e7402636f7fbbfe857d8cb6809b9310d\",\"dweb:/ipfs/QmPYT4Q68jt5Yac6x2tdWHrDcBnjLdkY5JqPnLcCpswQxo\"]},\"contracts/IndexFundFactory.sol\":{\"keccak256\":\"0xac7c7b569f43f6d43dc939fc92cdb0067fe040b9c2defce170ab50e2e9634c7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://414818a35254065d728f62d25c432da2c0d027cfa8731e1a74acb9f82b6521b3\",\"dweb:/ipfs/QmPpiFCykJKzoGcW69GXekSkDxN6pfUKaT2jnHZnufKkni\"]},\"contracts/IndexFundToken.sol\":{\"keccak256\":\"0x6d1e6a25f9d42b8d6a080a35f7a3b5349abae3f4a30c136f907cc52778a0fe27\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://1d81c68b7233cba175382a539bfbcfaf92b06197add787b3b429ec98c65c4669\",\"dweb:/ipfs/QmYEwXLUeBFNnK8ZZxYo3pVJe7hZrEMitxbGyrrotbU4yt\"]},\"contracts/interfaces/IIndexFund.sol\":{\"keccak256\":\"0xd9ef0b82a5fbc651233fa570e20487052da9bc9e608d7fec5c54c3259b64b0db\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://2fa0a193b577c89a809b110a6a770068cf8e7c86807d1022b10a44304ada1f90\",\"dweb:/ipfs/QmewwyiHG7fnHucV1zLT5iYLzNiV4ryaBMqMoPmPRgD6WW\"]},\"contracts/interfaces/IIndexFundFactory.sol\":{\"keccak256\":\"0xdaee28098d25d209508346539130902d9e08f32b24aa18fe915c50a829dd62ac\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://1c6a9ccf80750ad63e7a5cdff241d17130ab3e66e41e6647b10504abbf37fb76\",\"dweb:/ipfs/QmRFJFDzeATHcLQCU6yXxVDThzm2xRZaGDZXFaCZK4aVs8\"]},\"contracts/interfaces/IMarketDataFetcher.sol\":{\"keccak256\":\"0xa5343d6d80de89e9e259d51e9fd50444de43f61f6da31c26ad6f49029a47481a\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://e7fb90369df691fd542180e13cc7a881b46ef86dc1fdac4622d19cb292059112\",\"dweb:/ipfs/QmUnvC7eyCdg83tARSBSoEDPKjZHJZ4mKFWdPwSycki3KL\"]},\"contracts/interfaces/ISwapsManager.sol\":{\"keccak256\":\"0xa98bd09c0946399a4f4ae05e713b3207593528df54e8695a4aa4db885b47e894\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://eca854b1cf38859c81648a4bc824aa8e8e7a6347a3b902ceff0d2eb98cff384d\",\"dweb:/ipfs/QmTFzfKREewMg1xjbuCU5DDPbq8Wi1euCzpE2xJ8RAeJi8\"]},\"contracts/lib/IndexFundStateManagement.sol\":{\"keccak256\":\"0x6d55232bd5d80e0082f0adda3f052e62708e9ca7f18e7c439ed775b3ec7cdc43\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89733fef5a9b8efdee13a4a91f518503f9ed3e7449e3debf4ba864f363d0fb21\",\"dweb:/ipfs/QmQ8yyTYoLymoERKzmb6iK6K1ehcpuo4ZbbjQyX5M1t3j1\"]},\"contracts/marketData/MarketDataFetcher.sol\":{\"keccak256\":\"0x982be5c64a69b4e8bac986e1c18affd3686ec1a6dcff4b515c5918b924508997\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf5b5e27288f2a9fa156ecfec63fa84eb13a2b66cf84b17bb26097cd69bc7b7f\",\"dweb:/ipfs/QmW4NcWKfwuyRadWvYe6vB3xyw5pHKLtoNSbjaBG2j13NN\"]},\"contracts/swaps/SwapsManager.sol\":{\"keccak256\":\"0x3d4d9b33ac2e97bafbe46a47fba285246649b3b75473b809706de58bba6abcf5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37ce21e2eca2ebcc4b971680a20cf20d2b6cc929c45b0dc5b5746dc705d77b40\",\"dweb:/ipfs/QmUfrJ5Pzjh8bpM1uCtECD9dHS8jBMrG4T68ufMccXeQvs\"]},\"lib/chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol\":{\"keccak256\":\"0x257a8d28fa83d3d942547c8e129ef465e4b5f3f31171e7be4739a4c98da6b4f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d39e11b1dc7b9b8ccdabbc9be442ab7cda4a81c748f57e316dcb1bcb4a28bf9\",\"dweb:/ipfs/QmaG6vz6W6iEUBsbHSBob5mdcitYxWjoygxREHpsJHfWrS\"]},\"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol\":{\"keccak256\":\"0x8b45e5bb2fd9212f99e61b4d25b9c9d5ed7cb1a9a684aac34f752c568ef16c76\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://1ca71bb5bfbb2f8a0779f8394baeea01680619637abddb572017d05d96862591\",\"dweb:/ipfs/QmPCzGBE1m6WtDZxrVL5jzkduNaS7fjtYovUWdnzN34qjh\"]},\"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20Wrapped.sol\":{\"keccak256\":\"0x7e178a03b7f034532497a8b762069fff0808277befc880e4a3236938ba1380a7\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://7250476c961801e579719fd0201a3ff6bfdc79e8324db34d5ec0c6cecc281281\",\"dweb:/ipfs/QmNsTR2Rk2FRS3cTNf7WeN3UzPZy6HSj1SFV3Nuwz8Rpzi\"]},\"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol\":{\"keccak256\":\"0xe016a085f72ca3cf6d78ec1cb2182a398106cb7d425e984776a9caab0bad2569\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://3e79dc5075469d660908f5f8b6d0c863b14459d60a0b06fb786d58de8cf30a94\",\"dweb:/ipfs/QmePGRGtoWBnQ8T6ZRyZgiwVh4r67kcmWejwKgjyYN4AAY\"]},\"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20Wrapped.sol\":{\"keccak256\":\"0x72c5379fb2a7e1701a4686f60831bfc474350a42f0660aea815a5ce910cba38b\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://118fac79c89e142247e94763a1ca1235c307a67b37d68fa45d94125bc85c2cb8\",\"dweb:/ipfs/QmcE9P74NQQKnmW9vdtGb8KrWgJWH6K3bNTdrMxrPi716c\"]},\"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol\":{\"keccak256\":\"0xfe322c8f9a8e4fba881715901a5bafd2efa23394ecbc9ec84282818baeff0a07\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://13dba831528dd16408b7abab23eac0664a2a3e5ecbfe5e58e6e321cf2921668a\",\"dweb:/ipfs/QmPq4YeugbayWfeBJR8H7s4jHsnZkACQX2xbdNQ4sdvZrk\"]},\"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol\":{\"keccak256\":\"0xecc6289a9791bef254911393b51d2bfbddc5650ede7fbe7b5cc2b8d3eb01d7a6\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://7463278a20bc5d7fd8b7ec2cb8e592b2d1e0afcf8b59d35d6929d18661d4b38c\",\"dweb:/ipfs/QmTKPoABwNDmK7g7vkti1AkTpkUBHu3iX3zsXQsEuSiqBM\"]},\"lib/httpz-contracts/contracts/utils/EncryptedErrors.sol\":{\"keccak256\":\"0x0b8d08f392884add1af672018359e8980ee0b5e1662fe5e36eb31f053d1d4505\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://2903dd49a88b36aba2e8a45548b6a68d203887356ebdf452b10e0148954ba1a5\",\"dweb:/ipfs/QmTRuP4QXagoV2cLr2ctzFtNK7FK1cDXMYm4feMoMsYoWG\"]},\"lib/httpz-contracts/contracts/utils/TFHEErrors.sol\":{\"keccak256\":\"0x5fef7c2d7d4449d724a2800b37dfcc61e2b635f2747378ce222b9187425f2d13\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://7c2ef113faaec2d74c8d958f80687d0b676082d6231720917aaa8aa934d689a3\",\"dweb:/ipfs/QmNn474JDQ5zvVDwEuicJs6Xq8YEXWGZLoW4KeTWDVG31f\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xd861907d1168dcaec2a7846edbaed12feb8bad2d6781dba987be01374f90b495\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12ff809243040419e2fc2aa7ef0aaa60b3e6ebc901553ba1de970ceeef208c4c\",\"dweb:/ipfs/QmX2dwMVNrQAahqVzEx94gqcVB6Z8ovifPYdEfHZzj7aEb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol\":{\"keccak256\":\"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0\",\"dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x8decfa54cec979c824b044b8128cd91d713f72c71fd7dfa54974624d8c949898\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://271f914261a19d87117a777e0924ada545c16191ef9b00cc40b0134fc14ebc70\",\"dweb:/ipfs/QmdvVNWHGHQrGGPonZJs5NuzTevTjZRM2zayKrDJf7WBA2\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x6ef9389a2c07bc40d8a7ba48914724ab2c108fac391ce12314f01321813e6368\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7a5cb39b1e6df68f4dd9a5e76e853d745a74ffb3dfd7df4ae4d2ace6992a171\",\"dweb:/ipfs/QmPbzKR19rdM8X3PLQjsmHRepUKhvoZnedSR63XyGtXZib\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x4ea01544758fd2c7045961904686bfe232d2220a04ecaa2d6b08dac17827febf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fabe6bef5167ae741dd8c22d7f81d3f9120bd61b290762a2e8f176712567d329\",\"dweb:/ipfs/QmSnEitJ6xmf1SSAUeZozD7Gx7h8bNnX3a1ZBzqeivsvVg\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff\",\"dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaaa1d17c1129b127a4a401db2fbd72960e2671474be3d08cae71ccdc42f7624c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb2f27cd3952aa667e198fba0d9b7bcec52fbb12c16f013c25fe6fb52b29cc0e\",\"dweb:/ipfs/QmeuohBFoeyDPZA9JNCTEDz3VBfBD4EABWuWXVhHAuEpKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]},\"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol\":{\"keccak256\":\"0x534bf5c25d6003a8ce50b400d20fa460c03169ad7baa90d47a912917c36dfe2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc0cc39c40ea23d3c46e8517e19ebdd877719d3159fa032f2a91802cdd205c79\",\"dweb:/ipfs/QmSoNh7HTkD4TJcBkBKSGSPMMpLUZKE7s9f2G6mjdaJywg\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x44f87e91783e88415bde66f1a63f6c7f0076f2d511548820407d5c95643ac56c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://13a51bc2b23827744dcf5bad10c69e72528cf015a6fe48c93632cdb2c0eb1251\",\"dweb:/ipfs/QmZwPA47Yqgje1qtkdEFEja8ntTahMStYzKf5q3JRnaR7d\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889\",\"dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/permit2/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0xcdfd8db76b2a3415620e4d18cc5545f3d50de792dbf2c3dd5adb40cbe6f94b10\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://57b3ab70cde374af1cf2c9888636e8de6cf660f087b1c9abd805e9271e19fa35\",\"dweb:/ipfs/QmNrLDBAHYFjpjSd12jerm1AdBkDqEYUUaXgnT854BUZ97\"]},\"lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0xbadf3d708cf532b12f75f78a1d423135954b63774a6d4ba15914a551d348db8a\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://88ac8256bd520d1b8e6f9c4ac9e8777bffdc4a6c8afb1a848f596665779a55b4\",\"dweb:/ipfs/QmXx7X1dxe6f5VM91vgQ5BA4r2eF97GWDcQDrgHytcvfjU\"]},\"lib/permit2/src/interfaces/IAllowanceTransfer.sol\":{\"keccak256\":\"0x37f0ac203b6ef605c9533e1a739477e8e9dcea90710b40e645a367f8a21ace29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0104d72aeaec1cd66cc232e7de7b7ead08608efcc179491b8a66387614670b0\",\"dweb:/ipfs/QmfAZDyuNC9FXXbnJUwqHNwmAK6uRrXxtWEytLsxjskPsN\"]},\"lib/permit2/src/interfaces/IEIP712.sol\":{\"keccak256\":\"0xfdccf2b9639070803cd0e4198427fb0df3cc452ca59bd3b8a0d957a9a4254138\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f7c936ac42ce89e827db905a1544397f8bdf46db34cdb6aa1b90dea42fdb4c72\",\"dweb:/ipfs/QmVgurxo1N31qZqkPBirw9Z7S9tLYmv6jSwQp8R8ur2cBk\"]},\"lib/permit2/src/interfaces/IPermit2.sol\":{\"keccak256\":\"0xaa631cc9f53e699301d94233007110a345e6779011def484e8dd97b8fe0af771\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc0502cf19c9c18f320a3001201e89e350393b75837f6b7971de18b2de06f30d\",\"dweb:/ipfs/QmT9SfhdJ7VJNNrf94g4H5usyi7ShqWGx7Cqsz9jZTjX96\"]},\"lib/permit2/src/interfaces/ISignatureTransfer.sol\":{\"keccak256\":\"0xe6df9966f8841dc3958ee86169c89de97e7f614c81c28b9dc947b12d732df64e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d4eafdee7f48c3be8350a94eb6edd0bfb2af2c105df65787a77174f356c0317\",\"dweb:/ipfs/QmY1j2adeeAhNpn6cUuthemxGCdLXHTfyMh9yTKsY4mZ2d\"]},\"lib/permit2/src/libraries/SafeCast160.sol\":{\"keccak256\":\"0x8a34e2beac108d74f89510c949983212b5f09307a93ee9e17a9d50e93f6bc8e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828697f9567ce617c5c1c8f76b6bcd250e93aea2c4f3ee188be6dff8443c19e7\",\"dweb:/ipfs/QmafxeSPhUc9gGtNDLAw26oZooC5XNLhDMxHxYhJxL5Nwi\"]},\"lib/universal-router.git/contracts/UniversalRouter.sol\":{\"keccak256\":\"0x5c7515720fa9b429bc83f0044f3a02cdd065fe1773b9fd32151dc5ff9042d368\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://dd77517f3a73a07fdff8f3a52c268afca749a678ea11442140d401eb102f4404\",\"dweb:/ipfs/QmeJiwCtgF1rMB7Foi6PrqWEaXktztPGQfHoAsw1BRhLU3\"]},\"lib/universal-router.git/contracts/base/Dispatcher.sol\":{\"keccak256\":\"0x1564339a5163c5d27f06a64f994a7457b061aa0f5046377bcc5078cd6907cc5d\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://82dc3ed71c19d6e5d1f72304e62e360954fc40a4d92a2a94e862c5474490d58d\",\"dweb:/ipfs/QmcNamJcGijcEetbHWVJHNjSE2WCyQsmEGEGDg9ZNwqSjR\"]},\"lib/universal-router.git/contracts/base/Lock.sol\":{\"keccak256\":\"0x92f953dda0d671178d054eeb3915b70f8ba80be33df8670a9146af4a4bc2c6ac\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://f73faac9532c8a8870d31bcef68a0dde387579d7b755c342b3352a54a4b63682\",\"dweb:/ipfs/QmXLvJb6vxfrUG84ASLhEf7tL62MN3oxkp7aXUxemrZTy3\"]},\"lib/universal-router.git/contracts/interfaces/IUniversalRouter.sol\":{\"keccak256\":\"0x2525b52d1edf5df89bfd093c5b933b9e8f65236f44f58096763a6c87a5cafb63\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5cc0fcfedd6b32586099ee0f6781bb81da99175c65013c06bb6f61a125babb18\",\"dweb:/ipfs/QmcEkSzkjkPpp3YyJZaY232TjuNU4Pw6CSiTWz7sk2Sq5D\"]},\"lib/universal-router.git/contracts/libraries/Commands.sol\":{\"keccak256\":\"0xa08ae7be62972a4f17779257641065d41fa5cc2d5fc7050e5e5b76fbda9e6a9f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0b94d73c5cd54aba5e1ad4ccfc33df13c1b04417f53fda188275fc15f95f02f2\",\"dweb:/ipfs/QmNpigDf9g9AAbFr27gug5hAZjb6iuFekRqXonC6upoEcp\"]},\"lib/universal-router.git/contracts/libraries/Constants.sol\":{\"keccak256\":\"0xb668498f11a4bb576a0a61c183da7ca348249dd9176c57dcb6532912b1b49b0e\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://87d8588baf0b7b72faec637843c7623ac416d45e0f7719d0a635afe7981b2cf2\",\"dweb:/ipfs/QmSu7Jr8JM6mab2dddk1UaiPhyLZvsA8iLxC9MEcBUaMzT\"]},\"lib/universal-router.git/contracts/libraries/Locker.sol\":{\"keccak256\":\"0xfccb45f77b5c66f0f417d803b4b3f7ae97206d8d850a383ab7d97f25d0617cc0\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b47f3f4e74961f8e9d918c2cc3514cb8d097caee6ab2c20c10735235dec440ec\",\"dweb:/ipfs/QmfTWUjP7g7zTw67C2RvoMhWRX6ExLNV3UYSb5LqfE4bqC\"]},\"lib/universal-router.git/contracts/libraries/MaxInputAmount.sol\":{\"keccak256\":\"0x2dd6efbcaf9991c852e29a726f9876a0a6d08f2271912e69efa5c6a5e8034739\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://949ebd746eee3589d1e466c738884bd3532043d9e8a7b77c1521a098ba3c69b6\",\"dweb:/ipfs/QmZC9idgGQDfLksqfz41FrcsVXhqkfRZCZH9MJXQkQavt6\"]},\"lib/universal-router.git/contracts/modules/MigratorImmutables.sol\":{\"keccak256\":\"0x666d1622a10509c69b679df9d175a3e0c176a62b9e18d1cee7634219aded8f68\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a88e472495d32648ba3e7964c4c88b68853b49540f40afbaf2ede6822372b49f\",\"dweb:/ipfs/QmQoaWbCpwFYCnRgehM7ruYaa7za8fBghT5aQCRCPYJr1V\"]},\"lib/universal-router.git/contracts/modules/Payments.sol\":{\"keccak256\":\"0x19a103b3269ee2f7bc28a6e1850091b2087dd2558662494d1104ac8e5ac68524\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://ba64c600f57bb13672a5549b6dba11ae4dfe49f688c24eadb3289dcc87d226a8\",\"dweb:/ipfs/QmWkmVyeai1WeymuWqEk1fQE5R2frrQQjJv81cytrKvFuA\"]},\"lib/universal-router.git/contracts/modules/PaymentsImmutables.sol\":{\"keccak256\":\"0x9ca2535b69b15d3bdb7a15871c5bca83f5536cffb0191c64f4c6a2db4a154338\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://dc85fb3ddd19481bf0d1a8a9f5d9631b396d86344a33e30b4c4ab6cd58d51169\",\"dweb:/ipfs/QmeEGFqfHFUo1Mu6tRfCjvVGJYyoDu29ZspZgxxcj6ykvq\"]},\"lib/universal-router.git/contracts/modules/Permit2Payments.sol\":{\"keccak256\":\"0x887ec1f57144cd91a1b86d5a7b1d1119146f41dae6865e6fd0e849801e968628\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://08b713e82f3f192976902497e1c02dd60bf7e90c83a471eb4c7ac7710b086f95\",\"dweb:/ipfs/QmWJSGZ9Dj7FmFCnDWpDdL5fx76JYDgYWhggXCroxV7cjX\"]},\"lib/universal-router.git/contracts/modules/V3ToV4Migrator.sol\":{\"keccak256\":\"0x5ee3774b749b9a8d851dc6074c8de8c61f408a4cfd829c47c753840c839ba91c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://337e17b84f4fdad7e32be0e482e7b2471d7f927ba3b3174cae38cf2509d97443\",\"dweb:/ipfs/QmbzgdyxAC5vpvWRGaemn3Qn7DRbNDjHSH3KbHSDPwJ8LY\"]},\"lib/universal-router.git/contracts/modules/uniswap/UniswapImmutables.sol\":{\"keccak256\":\"0xb810727f5e734a30871ff1d83d8c96d99150f1ce77bb39e032aec6254ca43cd0\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5eb9df8b6c81f8e33b8a6bace294ed0d81c541988f7ba42027e3041eff32e1bd\",\"dweb:/ipfs/QmVPSWBv7WegGySGV4BoewKKx7iAetHsjydxQyKk3dh5yw\"]},\"lib/universal-router.git/contracts/modules/uniswap/v2/UniswapV2Library.sol\":{\"keccak256\":\"0x829d48c1b69d2e1bc078a57aae8d87dc31d920b01c62d6268d20d517fd24150c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b87236ea4c1e64c12434f31abbd658ca3fc510ebe65be731d84d3ce8efa71c32\",\"dweb:/ipfs/QmUerjg5Ebt3pfQZtk2sArUy414gQtHwvFNgsQNe4PhxbN\"]},\"lib/universal-router.git/contracts/modules/uniswap/v2/V2SwapRouter.sol\":{\"keccak256\":\"0x0fcb6ad6c4d5a7b25054dd9951432b2b41cb2c0077e6bc7ca0d0416115ef2326\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://124b1dd54d27914306bdd1021e171111f0ae622fffb2974ccdee24eab31b359d\",\"dweb:/ipfs/QmfKr2sbxdc31aPWv9d6ETA4GyfqHiKVZRKqhREnMkR5j9\"]},\"lib/universal-router.git/contracts/modules/uniswap/v3/BytesLib.sol\":{\"keccak256\":\"0xc3c23e83afd06781c4a0a5c418c20c40611e71d049766eb70987007ce372656e\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://c62989beb75edad6de18c31be31eb68f0c3fb15c5f9e9bb380221afc6785fda5\",\"dweb:/ipfs/QmVEsp5yivbmjP7HcXS5kJ1XJY5Uic3J3y4zjpwD1SNySD\"]},\"lib/universal-router.git/contracts/modules/uniswap/v3/V3Path.sol\":{\"keccak256\":\"0xf6abbf4c7cd0975ddabb0ddb641ea9ae3b0cc1dd9a1cabf5e7cc271a974eabc2\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1e0987fc9b81c65eada64cb65f981680c2054e489a6049d397b5ecbbf4c9a0a9\",\"dweb:/ipfs/QmW7mbbHsfc2GLy2GkCUv3VwXV93y6UFtKDD7E9QEtzFH7\"]},\"lib/universal-router.git/contracts/modules/uniswap/v3/V3SwapRouter.sol\":{\"keccak256\":\"0x31fe8777a6de583c54a0f09ec11d318c253b7fe50c7a2af1608b2b89a03ca660\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://780219ff0d6d333727655719d31d61ce345cdbca7f906467a2d00e3162b3c0aa\",\"dweb:/ipfs/QmbauA5Kvj7m9P9hxe4hhnLY5w2TEXMMnCc9oWehVgj2jo\"]},\"lib/universal-router.git/contracts/modules/uniswap/v4/V4SwapRouter.sol\":{\"keccak256\":\"0x68b7666641ad5ba227b500c9845c4bc71eaaac6556d97d31d123fce41b51969a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://40a99bb5e9e407ad6741f5c210ac23a32950e7567c73f21975444e9729fc6cfb\",\"dweb:/ipfs/QmUK98HjyQ7NDGR36DD9owjLDk7ujEj5b5uKt9zjUsCFG5\"]},\"lib/universal-router.git/contracts/types/RouterParameters.sol\":{\"keccak256\":\"0x9efe9912d44e56cff8fc23e1411c80b47ffc9f5c0ad5ca5c66ab77a1b7ddfcbf\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://473acf49dc1be1ca997ad20258124e26e03b3cef15412a8827ecf9b52e4cef21\",\"dweb:/ipfs/QmaGR2QL6im4XYJpubqhUuP82nFytemX7wwEk4cXECJYJN\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56\",\"dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0xa72de315bd655a0fd5043ff97c7fd3868a1b5b1986afd75c6f5f8fd0f904985f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8838e68aba9caf2b2cb13bd4cb661b1f9c167cca4dfcd50ac72ae96691392df\",\"dweb:/ipfs/QmfLq3cmsSQTuLLxiF4bgceaf2jx8CoiVXQd7BZXGgJG1E\"]},\"lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol\":{\"keccak256\":\"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b\",\"urls\":[\"bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf\",\"dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH\"]},\"lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"lib/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652\",\"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"lib/v3-core/contracts/libraries/SafeCast.sol\":{\"keccak256\":\"0x4c12bf820c0b011f5490a209960ca34dd8af34660ef9e01de0438393d15e3fd8\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://fed11489e218e55d087d42b4f350a30e10cd2aedec8f432bd3cc712f648d5869\",\"dweb:/ipfs/QmWfRnRxyXwHUDcTQPazxYYk5jxErGeQqdvnYtyg5nBPbU\"]},\"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\":\"0x4c9571aed0c2b6ef11832545554fc11ffdb03746daaf5c73683c00600bfc7ec0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e78b34b58ce9de91b91943b4f3cc3ce121d0b151e123e8a600ac5ef64d91db6c\",\"dweb:/ipfs/QmRkaQnPCYwLrXgbpGujJTx32PaZK63KSPJJV1XmnQuCMb\"]},\"lib/v4-core/src/interfaces/IPoolManager.sol\":{\"keccak256\":\"0x3534f00531038e77ab8a7fc4d0a6e0993ee53fb7a396b1324ad917318ea46cea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4a7e771828dc40848485b568a1cf514f553ace6653f4f4d1ad3f3e9cdb6c27\",\"dweb:/ipfs/QmTjzQ7KVYnrEWtxPER2E4MXzycgcznfzSDsZtd5turk5V\"]},\"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/CurrencyReserves.sol\":{\"keccak256\":\"0x1576616129933fcdf3b684cea33cffd9c95e18fafbd2832a8c48ac3d8526d4c3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://33b050efb9b81803b18f562271e7cca2ec5362c4d505860d6419b4a345636725\",\"dweb:/ipfs/QmQtFtTwKZ5pFVGD2ENDUXvp7ECFvzqeCuJ1miJcUHdmiX\"]},\"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/Lock.sol\":{\"keccak256\":\"0x9338be4b5695f1da5f3d3f7a3eeaf7a356c1045458289586ac0cbe9cef77c6d5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://485ec42ed6155469d612a9a0c18068ebfbad74448792a338a435503de3ef1b2c\",\"dweb:/ipfs/QmVnnv5u74MYatfRmBgrcfFYQcsMAJMG9jQ6ju8UiydKNF\"]},\"lib/v4-core/src/libraries/NonzeroDeltaCount.sol\":{\"keccak256\":\"0x0666ebd5d3528d7d52c48538296367a4cff97a578cf13365c51983fae3219b87\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://d27f1be3bd09d85c53d3e6a539dd6529ddd8b2b764ccb47fd7765fc81f9add59\",\"dweb:/ipfs/QmQdZujNXhKEXQBkKtF5jbdvo1yXMqPDUoBBaF9S5u3Kpm\"]},\"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/libraries/TransientStateLibrary.sol\":{\"keccak256\":\"0x7d1e0875747bd89b32c25f1a48da2766e5f4aff1f671ad5f3c0c07ebbbcb946a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d76cfeb1cb60595b41ecc51c8a12fb4bf63a7fc733d0b1a2e3adb55abeb1f9d5\",\"dweb:/ipfs/Qmb8oX7DtsRpw3tTtdWZwGhauj1evq43d3PLwe4nSDAKkV\"]},\"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-periphery/src/V4Router.sol\":{\"keccak256\":\"0x8ede1e538ae9b74984c52347a3bbaee7b3d69f00ed9b3a6db1f1bd6e058a2326\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e370416fa9681ad124414e2b2fb57a5455e15dd873c9e61c964177ae5c2d544\",\"dweb:/ipfs/QmWrM97ezNB9CpawqhkwpubXHcXUbMFWKYEbD3D6EyAe1w\"]},\"lib/v4-periphery/src/base/BaseActionsRouter.sol\":{\"keccak256\":\"0xca1ee500f88951ad351d18ba2adfb5fe23abef6d502f234ce5748a3497674a4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f03ab458be27c29cef1b7ace5b11517d3fef8bf6131af7dd80d6297c224cf71\",\"dweb:/ipfs/QmYoH6o8yeRzbeLoaMG9TjS8q2Fw7T1h4vXvvMnp3XfsUa\"]},\"lib/v4-periphery/src/base/DeltaResolver.sol\":{\"keccak256\":\"0x94a2da2be5c924df65a8e1e29f585bbe4c37777fedd43b45989c66d509a4a83c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42bba590f6e817fd56328b74ae99bfdc4df57386d0a69ee22b9108341953ed36\",\"dweb:/ipfs/QmdusastK7FWYouLz9gvV5J3z8MQbNKLJNNHTrc1vi7DWw\"]},\"lib/v4-periphery/src/base/ImmutableState.sol\":{\"keccak256\":\"0x1867c9fa2f9b4fa73bab0fcdc9d19ccef4eeac552273d8b84a170cd1cc90350a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af2d699b439e13b599632fddfe82718aebd41055fba7c075f186675c588d1337\",\"dweb:/ipfs/Qmc111gckSKb9aESn3wRFLeLiS4KGujaUcaYJgRnCRfwQU\"]},\"lib/v4-periphery/src/base/SafeCallback.sol\":{\"keccak256\":\"0xd78b583df1b9ee06d58e83b84fc9f08971389b34dd34bc13db072e0c13c710da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0a47f4bcd6060c4462153b9a7c52a60a460ace91acb6ddd5492eab28ec26173\",\"dweb:/ipfs/QmdRCTRS1dhFjWEy6z577j4xz9J5HPfHBwcNzAic8G59oT\"]},\"lib/v4-periphery/src/interfaces/IEIP712_v4.sol\":{\"keccak256\":\"0xd7f7115476e307a0bfc32a0f0a0f5434e9e5ca62a6c5af1e18b75e48161bb408\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1600b953556da38a7adc5ad2a2925ec5fb138fecf8eec48743646543195b736\",\"dweb:/ipfs/QmarZi2aiLVAfHXgnDWV1cCFiZk2DdPW7KJnWHqzuRChJR\"]},\"lib/v4-periphery/src/interfaces/IERC721Permit_v4.sol\":{\"keccak256\":\"0x103adbba724ef536abc536fe8a4d7dc12880724c562109b69f2adce4a91fa017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06f51b5a5a218e0bc866a83e7821be53c9db9de0ca921f16abd3d13ea0eab69d\",\"dweb:/ipfs/QmbnhLy992hpQZyphTkj7fpr6jKKVva2AzfmLiDZEuqHAk\"]},\"lib/v4-periphery/src/interfaces/IImmutableState.sol\":{\"keccak256\":\"0x36ab3100e87457ecf04887f4f540e34fd7f21d8e3b83880cb679239e60b7b06b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f290c7ce8e4832608d637a51b13dff95abecf6549485448e647a11c8ed01341\",\"dweb:/ipfs/QmfD1R6mTp8j4EjQXmQZW3vCh11EYFjnvoaw8rXRP27mMq\"]},\"lib/v4-periphery/src/interfaces/IMulticall_v4.sol\":{\"keccak256\":\"0x336bec303f7ff86497d2679464c5adad5040f412b3d0769ce5e1d2a42f7e2c08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7734f047d98d331c8abc51ad9f358ceee0a6dcae8d89ac49084b84de0d2d42e7\",\"dweb:/ipfs/QmWij2h7mU36LsXhb9P6pkYXrSCua4ixeWaVFSrsEcEmPQ\"]},\"lib/v4-periphery/src/interfaces/INotifier.sol\":{\"keccak256\":\"0xfdc5187a98240a1691aae98b7dd2444d4c2bfb4746f3c34de9f3d18399c17c5e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://683af56401ec4f8817e8dfe150e7b3febaf0baaf40efe8d0d0475f735275f746\",\"dweb:/ipfs/QmRQ6S3nFnSc2jjDcQTvUJdTf4xKPojmvCkpvgyr6qTuVV\"]},\"lib/v4-periphery/src/interfaces/IPermit2Forwarder.sol\":{\"keccak256\":\"0xfad472937280e861125ff12aa6f9c2cf7440fbb20a2cc29485c24662ad4279c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31bfbc331f5972fc373d9469fd1ca1d14818db3275f21b7b590f20820cb4439d\",\"dweb:/ipfs/QmX3Bv9wfYpAFZKBcxKsQSXUrSC8mqNBdzh6XVMS72aNx9\"]},\"lib/v4-periphery/src/interfaces/IPoolInitializer_v4.sol\":{\"keccak256\":\"0x2e4feda94650a2642039e0309ffdec480ee050bc40864bf5e1dba42bb4dc9e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://964c178b4da8bab9ef898b94bb26d7c17cc44c5cf20485f55dcf5e9c7e1b1d92\",\"dweb:/ipfs/QmVd2c3SYteyr5xZgUS4sDAiZF43dLwVAEKdCfvQbkZpRJ\"]},\"lib/v4-periphery/src/interfaces/IPositionManager.sol\":{\"keccak256\":\"0x62dfa0cbee8314ee7e6787db8bc1d364245c340f940875ac7ff11e89d074fc7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26f560c77d8a187bf93a710b827e3167eab3446922192fa8f92f208da2103834\",\"dweb:/ipfs/Qmbzp5gSYdTpMBF9aAb2GraxMEQZb5LRJCyg8VaRUyjTFc\"]},\"lib/v4-periphery/src/interfaces/ISubscriber.sol\":{\"keccak256\":\"0x34ceadec4a63019680e543fe73197f198a55c825d86e18f327840354760b57e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31734feafe1fe162a0702ddf862fcc3bd97505931afb3c685033c0185d898051\",\"dweb:/ipfs/QmQEANYVyaXTNzXKcjUVfPhLU71Bix5vxQH75BpPWMkWgw\"]},\"lib/v4-periphery/src/interfaces/IUnorderedNonce.sol\":{\"keccak256\":\"0xd7f32fee74dc7d1a3b078ca1263961baccaa6bf434c79e8fe0e092e30c3e0ec3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7d1e92d89d5f49c84aa82f3b259678c2c97a4473b22d753ca4411a6b0cec36d\",\"dweb:/ipfs/QmNZoQyminStaAdaLqoDLoWaBU5QWrWjXFjmBm4aFhzL8i\"]},\"lib/v4-periphery/src/interfaces/IV4Router.sol\":{\"keccak256\":\"0xc4133fae25e61cc2447d7331729f6035322d7c1fe26b39b225422bf98cc63459\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c24ff8428504e973e947a059f96289a66c520cd7f8ef47a3224f9cb6abdaf25\",\"dweb:/ipfs/QmVqxYnngWXXcCiuTC143vTEJrjZK5NXWB92pjvVbuJBQ5\"]},\"lib/v4-periphery/src/interfaces/external/IWETH9.sol\":{\"keccak256\":\"0xe88abf12501ac275619aec0687240a07d26968aecbbcdfea88ba8bbd5d6e5e14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7097065d4492b4eccb1a73f99af1e5bec45404c6b973b8f5965c4c91403f5f92\",\"dweb:/ipfs/QmZK8oEqmjmTqhBoh3D3fBpyKGkUEFnptY8xwH9xpNjDm2\"]},\"lib/v4-periphery/src/libraries/ActionConstants.sol\":{\"keccak256\":\"0x3d6f0e5b4a7b1e60bad93e73dce5db67fb66bebef11c31ed8355014a79aa03b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6dfa42e24b1b5c7f66e75304ab034fbb6768518eb2410ccfff8b3defdd1658f2\",\"dweb:/ipfs/QmQQ7fud9mmv7PEWPAQiNzeZhNkWf28Z6nCHc2e6WJFfa7\"]},\"lib/v4-periphery/src/libraries/Actions.sol\":{\"keccak256\":\"0x8efd4b8b289177ee27e557d9d0a5a9f973d66fe1eb1ef8959d316b11987ca830\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07fe35f194eb99465028f0546359befea574d844da53767d32f22b233c3bcc98\",\"dweb:/ipfs/Qmc19631uFxABTHAbGrDrroexi9GdyxWntaum1v8npPYz5\"]},\"lib/v4-periphery/src/libraries/BipsLibrary.sol\":{\"keccak256\":\"0x37ebf99f5d086d9d9f6e7cecbf4d62167f47c63c30248cfcb921e828f0d7a359\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4f8e68a66bb6c166d72cdba6ed6fb83a93f713b79c2c572e8058084eb90ab6c\",\"dweb:/ipfs/QmY32FxtSBRf9PJzNUVzXqFY4i2ApTPHTUMpCBGovd2zo3\"]},\"lib/v4-periphery/src/libraries/CalldataDecoder.sol\":{\"keccak256\":\"0x26df49e13fb5410fd4db253cca877dfdfb3a1ba03e394d054c0e0514a88a56e5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72a0c98c52171708f332f83d517deeb97fdd50ecf28f2510e1866e54593a6ff8\",\"dweb:/ipfs/QmY4LiDUfSKGj86nML7B6a8euiPciUqwYehasAyAVnMCHq\"]},\"lib/v4-periphery/src/libraries/PathKey.sol\":{\"keccak256\":\"0xbbd79ffefe045f025263e389539021266fb4d371463aefba405e1ff1d3fcf9bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d1c47b81a01218be46ee79f0a8837095479b94dc5cfd18abbf2006709f0ea89\",\"dweb:/ipfs/QmRb6CQ13Zp7f3WF5jbZtsF2szhxpPgcuWs9mjwQXxzqtg\"]},\"lib/v4-periphery/src/libraries/PositionInfoLibrary.sol\":{\"keccak256\":\"0xc5ddf96bd088bc87ea50a20f907fc932fb28397a42682a301b268a11b7f34078\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7dfeb4dc747537240f8167243e8066b6f5f08057386fb8bda93f82973fc18ad6\",\"dweb:/ipfs/Qmby9DAAaHj8hjsMUnqY3vjqCHKGAKrT5EULMmeGcjbbGx\"]},\"node_modules/fhevm/config/ZamaFHEVMConfig.sol\":{\"keccak256\":\"0x41782f4c707b81399916544fa2e7be94a695fa4ba468542732d29d3e383c0315\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://45a95a55c4bbb3418c2133cba6ed21a9444bb4e38d38b32cc707b7493cece2ca\",\"dweb:/ipfs/QmVU8EKmZgscdM43RgXD4EgbVMhQxBusTmBren3pbn1pUW\"]},\"node_modules/fhevm/config/ZamaGatewayConfig.sol\":{\"keccak256\":\"0xbed8bc18db61ffeb5ee31f577ab636d8563df27554e0ca66c53534f0bd82ffbd\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://53601967f9e914b25cf91a325b100d5b3cbb9aec92d12443062a51fe5a578b7d\",\"dweb:/ipfs/QmNbviWrrPrx3snoLWqW5GyBnH99tSX3iYXEJ5ezk9XbtL\"]},\"node_modules/fhevm/gateway/GatewayCaller.sol\":{\"keccak256\":\"0xd19fd7715f0c5b479bf0cd8e3108cc8da7deae2d4fc7fb5ab089ebf2d76a0652\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://6386c509464cefe5a41903ca837da46a21b8042d13ccde656158efc48cd70ea8\",\"dweb:/ipfs/QmUn7C6aZwKmEmKsphBshBezXXGZtLMyfaeZAyuZoRsBWU\"]},\"node_modules/fhevm/gateway/lib/Gateway.sol\":{\"keccak256\":\"0x9585a649e3001a4b8768ab6e2597b416f680bcc537309cd50b60e023e9791318\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://a1b055bfb067cc247d4bd60b5f8348f667cbe79717a5753cd6412955277345d0\",\"dweb:/ipfs/QmTveBaQg9GUdtrrxcR4RsiyAEmoEKGL4gn6E1gThR1ph5\"]},\"node_modules/fhevm/lib/Impl.sol\":{\"keccak256\":\"0x89d4968cd956a8931f1a8a177b3bef1c6cf88a03665083db74430add50b88f21\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://aaaef2c82d56dacfb08946842ea1ce26757d13f3251de62fa79222232dfcb43c\",\"dweb:/ipfs/QmQ6QZPxJw9jb3qjRYCX7pMQVoYogjTsYgmdEnB3EnwFRy\"]},\"node_modules/fhevm/lib/TFHE.sol\":{\"keccak256\":\"0x221799c8332f83ab65a0b71746409f0c2c89f1cd8d9ba4091d967c667e1df734\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://2dba387fbc612a2ee64063b0ee6c27304b3944423d11045acc50abd84577fb5f\",\"dweb:/ipfs/QmThptDGnpd8PuncFk1rnQoCzEqwUED622yC9xZgFhwY59\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"type":"error","name":"AmountToSwapTooBig"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"eaddress","name":"from","type":"uint256"},{"internalType":"eaddress","name":"to","type":"uint256"},{"internalType":"euint256","name":"amount","type":"uint256"}],"type":"error","name":"TransferFailed"}],"devdoc":{"kind":"dev","methods":{"_computeAmountsToSwapOnMint(IndexFundStateManagement.IndexFundState storage,uint256,uint256,uint256[])":{"details":"Calculates the swap amount for each token based on its market cap relative to the total index market cap. Also approves each token for swapping via the swaps manager.","params":{"_totalIndexMarketCap":"The total market capitalization of the index tokens.","marketCaps":"An array of market capitalizations for each index token.","totalAmount":"The total stablecoin amount available for swaps."},"returns":{"_0":"An array containing the stablecoin amount allocated for each token swap."}},"computeAmountsToSwapOrRedeemOnBurn(IndexFundStateManagement.IndexFundState storage,uint256)":{"params":{"decryptedAmount":"The amount of shares being burned"},"returns":{"tokenAmountsToRedeemOrSwap":"Array of token amounts to swap or redeem"}},"preprocessSwapsOnMint(IndexFundStateManagement.IndexFundState storage,uint256)":{"params":{"decryptedAmount":"The amount of stablecoin to process"},"returns":{"feeAmount":"The amount of fees collected","totalStablecoinIn":"The amount of stablecoin available for swaps after fees"}},"processSwapsOnBurn(IndexFundStateManagement.IndexFundState storage,uint256[])":{"details":"Executes swaps for each index token and accumulates the stablecoin received.","params":{"tokenAmountsToSwap":"Array of token amounts to swap"},"returns":{"stablecoinToSendBack":"Total amount of stablecoin received from swaps"}},"processSwapsOnMint(IndexFundStateManagement.IndexFundState storage)":{"details":"Executes the swaps for each index token using the stored pending amounts."},"sendTokensBackOnBurn(IndexFundStateManagement.IndexFundState storage,address,uint256[])":{"details":"Transfers each index token to the user in proportion to their burned shares.","params":{"tokenAmountsToRedeemOrSwap":"Array of token amounts to send","user":"The address of the user receiving the tokens"}}},"version":1},"userdoc":{"kind":"user","methods":{"_computeAmountsToSwapOnMint(IndexFundStateManagement.IndexFundState storage,uint256,uint256,uint256[])":{"notice":"Computes the distribution of stablecoin amounts to swap for each index token."},"computeAmountsToSwapOrRedeemOnBurn(IndexFundStateManagement.IndexFundState storage,uint256)":{"notice":"Computes the amounts of each index token to swap or redeem when burning shares. Calculates proportional amounts based on the user's share of the total supply."},"preprocessSwapsOnMint(IndexFundStateManagement.IndexFundState storage,uint256)":{"notice":"Preprocesses the swaps needed when minting new shares: calculates fees and distributes the stablecoin amount across index tokens based on market caps."},"processSwapsOnBurn(IndexFundStateManagement.IndexFundState storage,uint256[])":{"notice":"Processes the token to stablecoin swaps when burning shares."},"processSwapsOnMint(IndexFundStateManagement.IndexFundState storage)":{"notice":"Processes the pending stablecoin to token swaps after minting."},"sendTokensBackOnBurn(IndexFundStateManagement.IndexFundState storage,address,uint256[])":{"notice":"Sends index tokens back to the user when burning shares."}},"version":1}},"settings":{"remappings":["@chainlink/=lib/chainlink/","@ensdomains/=lib/v4-core/node_modules/@ensdomains/","@httpz-contracts/=lib/httpz-contracts/contracts/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@uniswap/universal-router/=lib/universal-router.git/","@uniswap/v2-core/=lib/v2-core/","@uniswap/v3-core/=lib/v3-core/","@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/","@uniswap/v4-core/=lib/v4-core/","@uniswap/v4-periphery/=lib/v4-periphery/","chainlink/=lib/chainlink/","ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","eth-gas-reporter/=node_modules/eth-gas-reporter/","fhevm-contracts/=node_modules/fhevm-contracts/","fhevm-core-contracts/=node_modules/fhevm-core-contracts/","fhevm/=node_modules/fhevm/","forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","httpz-contracts/=lib/httpz-contracts/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","permit2/=lib/permit2/","solmate/=lib/permit2/lib/solmate/","universal-router.git/=lib/universal-router.git/","v2-core/=lib/v2-core/contracts/","v3-core/=lib/v3-core/","v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/","v4-core/=lib/v4-core/src/","v4-periphery/=lib/v4-periphery/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/lib/IndexFundStateManagement.sol":"IndexFundStateManagement"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/ConfidentialIndexFund.sol":{"keccak256":"0xac792e087c3600604af05e0abfa3db9fef4e71daf884885606115c672efcc5b7","urls":["bzz-raw://9454f480f9154f76c365622aa59a1fd9ea36a9b409df31bf13fe6d35e63f64d3","dweb:/ipfs/QmYz5knj2ptBvsdocjk7it2qiv968uytuVmBeHDsvz13xe"],"license":"MIT"},"contracts/ERC20Encryption/ConfidentialERC20Base.sol":{"keccak256":"0xa622900eae5b1f80c956ec16afec6e4ef6af141d7973b6d52167a86ae988272c","urls":["bzz-raw://45dcc2e65f2b601bf132eaae21b1ed2e5dd67c9644e6edcf856ea3274444b04e","dweb:/ipfs/QmR4XvcnxE3JBfPNpLcyvPssdBqtMTd76gm6BWczaSMi9D"],"license":"MIT"},"contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol":{"keccak256":"0x6f947e91a3369017e4d0147ac44ea39c6f8ffa4a5307d8339481f4e88355a62d","urls":["bzz-raw://27794b1340f9299d7be061aacde65075fca40a1d722e8c5181cee22f257eeb25","dweb:/ipfs/QmT3DReokqZhMtDcEDpkTgf1zG5cZELzPEZDjrqpfEXjWC"],"license":"BSD-3-Clause-Clear"},"contracts/ERC20Encryption/ConfidentialERC20WithErrorsWrapped.sol":{"keccak256":"0x6780cf12626fab34cbe430892929cb2827f948ed6fb613dfb55dda036ced8697","urls":["bzz-raw://dc3c67659beeff5d21d110cd711c731a52a88293bf120b582f72f2fe4da7bf2d","dweb:/ipfs/QmNbQ9EehknmU6Fui2QpnTSTj7Ft9sbWc95nz3x62fe2Jh"],"license":"MIT"},"contracts/ERC20Encryption/CustomConfidentialERC20WithErrors.sol":{"keccak256":"0x48800ae20f96fc6ff85e8428faf7c314eceefa7a1349fc3f42479ba82d658431","urls":["bzz-raw://6ab1d91f86b98bcf65f7af820157a9d7cd923f51e60df7897c1e9858f3e3a433","dweb:/ipfs/QmUt2mtzHAHDp2bvkSiXpZdM9okz4mJKFTHjU2YwPjxvxd"],"license":"BSD-3-Clause-Clear"},"contracts/ERC20Encryption/CustomConfidentialERC20Wrapped.sol":{"keccak256":"0xe3f6e6a47070a54952ac2dd5e008c7997322a16e72f4114a2ec48f45e3bc8cea","urls":["bzz-raw://8b47026e8a91b2a0212d621e0b2a8452e7402636f7fbbfe857d8cb6809b9310d","dweb:/ipfs/QmPYT4Q68jt5Yac6x2tdWHrDcBnjLdkY5JqPnLcCpswQxo"],"license":"BSD-3-Clause-Clear"},"contracts/IndexFundFactory.sol":{"keccak256":"0xac7c7b569f43f6d43dc939fc92cdb0067fe040b9c2defce170ab50e2e9634c7b","urls":["bzz-raw://414818a35254065d728f62d25c432da2c0d027cfa8731e1a74acb9f82b6521b3","dweb:/ipfs/QmPpiFCykJKzoGcW69GXekSkDxN6pfUKaT2jnHZnufKkni"],"license":"MIT"},"contracts/IndexFundToken.sol":{"keccak256":"0x6d1e6a25f9d42b8d6a080a35f7a3b5349abae3f4a30c136f907cc52778a0fe27","urls":["bzz-raw://1d81c68b7233cba175382a539bfbcfaf92b06197add787b3b429ec98c65c4669","dweb:/ipfs/QmYEwXLUeBFNnK8ZZxYo3pVJe7hZrEMitxbGyrrotbU4yt"],"license":"BSD-3-Clause-Clear"},"contracts/interfaces/IIndexFund.sol":{"keccak256":"0xd9ef0b82a5fbc651233fa570e20487052da9bc9e608d7fec5c54c3259b64b0db","urls":["bzz-raw://2fa0a193b577c89a809b110a6a770068cf8e7c86807d1022b10a44304ada1f90","dweb:/ipfs/QmewwyiHG7fnHucV1zLT5iYLzNiV4ryaBMqMoPmPRgD6WW"],"license":"BSD-3-Clause-Clear"},"contracts/interfaces/IIndexFundFactory.sol":{"keccak256":"0xdaee28098d25d209508346539130902d9e08f32b24aa18fe915c50a829dd62ac","urls":["bzz-raw://1c6a9ccf80750ad63e7a5cdff241d17130ab3e66e41e6647b10504abbf37fb76","dweb:/ipfs/QmRFJFDzeATHcLQCU6yXxVDThzm2xRZaGDZXFaCZK4aVs8"],"license":"BSD-3-Clause-Clear"},"contracts/interfaces/IMarketDataFetcher.sol":{"keccak256":"0xa5343d6d80de89e9e259d51e9fd50444de43f61f6da31c26ad6f49029a47481a","urls":["bzz-raw://e7fb90369df691fd542180e13cc7a881b46ef86dc1fdac4622d19cb292059112","dweb:/ipfs/QmUnvC7eyCdg83tARSBSoEDPKjZHJZ4mKFWdPwSycki3KL"],"license":"BSD-3-Clause-Clear"},"contracts/interfaces/ISwapsManager.sol":{"keccak256":"0xa98bd09c0946399a4f4ae05e713b3207593528df54e8695a4aa4db885b47e894","urls":["bzz-raw://eca854b1cf38859c81648a4bc824aa8e8e7a6347a3b902ceff0d2eb98cff384d","dweb:/ipfs/QmTFzfKREewMg1xjbuCU5DDPbq8Wi1euCzpE2xJ8RAeJi8"],"license":"BSD-3-Clause-Clear"},"contracts/lib/IndexFundStateManagement.sol":{"keccak256":"0x6d55232bd5d80e0082f0adda3f052e62708e9ca7f18e7c439ed775b3ec7cdc43","urls":["bzz-raw://89733fef5a9b8efdee13a4a91f518503f9ed3e7449e3debf4ba864f363d0fb21","dweb:/ipfs/QmQ8yyTYoLymoERKzmb6iK6K1ehcpuo4ZbbjQyX5M1t3j1"],"license":"MIT"},"contracts/marketData/MarketDataFetcher.sol":{"keccak256":"0x982be5c64a69b4e8bac986e1c18affd3686ec1a6dcff4b515c5918b924508997","urls":["bzz-raw://bf5b5e27288f2a9fa156ecfec63fa84eb13a2b66cf84b17bb26097cd69bc7b7f","dweb:/ipfs/QmW4NcWKfwuyRadWvYe6vB3xyw5pHKLtoNSbjaBG2j13NN"],"license":"MIT"},"contracts/swaps/SwapsManager.sol":{"keccak256":"0x3d4d9b33ac2e97bafbe46a47fba285246649b3b75473b809706de58bba6abcf5","urls":["bzz-raw://37ce21e2eca2ebcc4b971680a20cf20d2b6cc929c45b0dc5b5746dc705d77b40","dweb:/ipfs/QmUfrJ5Pzjh8bpM1uCtECD9dHS8jBMrG4T68ufMccXeQvs"],"license":"MIT"},"lib/chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol":{"keccak256":"0x257a8d28fa83d3d942547c8e129ef465e4b5f3f31171e7be4739a4c98da6b4f0","urls":["bzz-raw://6d39e11b1dc7b9b8ccdabbc9be442ab7cda4a81c748f57e316dcb1bcb4a28bf9","dweb:/ipfs/QmaG6vz6W6iEUBsbHSBob5mdcitYxWjoygxREHpsJHfWrS"],"license":"MIT"},"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol":{"keccak256":"0x8b45e5bb2fd9212f99e61b4d25b9c9d5ed7cb1a9a684aac34f752c568ef16c76","urls":["bzz-raw://1ca71bb5bfbb2f8a0779f8394baeea01680619637abddb572017d05d96862591","dweb:/ipfs/QmPCzGBE1m6WtDZxrVL5jzkduNaS7fjtYovUWdnzN34qjh"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20Wrapped.sol":{"keccak256":"0x7e178a03b7f034532497a8b762069fff0808277befc880e4a3236938ba1380a7","urls":["bzz-raw://7250476c961801e579719fd0201a3ff6bfdc79e8324db34d5ec0c6cecc281281","dweb:/ipfs/QmNsTR2Rk2FRS3cTNf7WeN3UzPZy6HSj1SFV3Nuwz8Rpzi"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol":{"keccak256":"0xe016a085f72ca3cf6d78ec1cb2182a398106cb7d425e984776a9caab0bad2569","urls":["bzz-raw://3e79dc5075469d660908f5f8b6d0c863b14459d60a0b06fb786d58de8cf30a94","dweb:/ipfs/QmePGRGtoWBnQ8T6ZRyZgiwVh4r67kcmWejwKgjyYN4AAY"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20Wrapped.sol":{"keccak256":"0x72c5379fb2a7e1701a4686f60831bfc474350a42f0660aea815a5ce910cba38b","urls":["bzz-raw://118fac79c89e142247e94763a1ca1235c307a67b37d68fa45d94125bc85c2cb8","dweb:/ipfs/QmcE9P74NQQKnmW9vdtGb8KrWgJWH6K3bNTdrMxrPi716c"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol":{"keccak256":"0xfe322c8f9a8e4fba881715901a5bafd2efa23394ecbc9ec84282818baeff0a07","urls":["bzz-raw://13dba831528dd16408b7abab23eac0664a2a3e5ecbfe5e58e6e321cf2921668a","dweb:/ipfs/QmPq4YeugbayWfeBJR8H7s4jHsnZkACQX2xbdNQ4sdvZrk"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol":{"keccak256":"0xecc6289a9791bef254911393b51d2bfbddc5650ede7fbe7b5cc2b8d3eb01d7a6","urls":["bzz-raw://7463278a20bc5d7fd8b7ec2cb8e592b2d1e0afcf8b59d35d6929d18661d4b38c","dweb:/ipfs/QmTKPoABwNDmK7g7vkti1AkTpkUBHu3iX3zsXQsEuSiqBM"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/utils/EncryptedErrors.sol":{"keccak256":"0x0b8d08f392884add1af672018359e8980ee0b5e1662fe5e36eb31f053d1d4505","urls":["bzz-raw://2903dd49a88b36aba2e8a45548b6a68d203887356ebdf452b10e0148954ba1a5","dweb:/ipfs/QmTRuP4QXagoV2cLr2ctzFtNK7FK1cDXMYm4feMoMsYoWG"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/utils/TFHEErrors.sol":{"keccak256":"0x5fef7c2d7d4449d724a2800b37dfcc61e2b635f2747378ce222b9187425f2d13","urls":["bzz-raw://7c2ef113faaec2d74c8d958f80687d0b676082d6231720917aaa8aa934d689a3","dweb:/ipfs/QmNn474JDQ5zvVDwEuicJs6Xq8YEXWGZLoW4KeTWDVG31f"],"license":"BSD-3-Clause-Clear"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xd861907d1168dcaec2a7846edbaed12feb8bad2d6781dba987be01374f90b495","urls":["bzz-raw://12ff809243040419e2fc2aa7ef0aaa60b3e6ebc901553ba1de970ceeef208c4c","dweb:/ipfs/QmX2dwMVNrQAahqVzEx94gqcVB6Z8ovifPYdEfHZzj7aEb"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308","urls":["bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80","dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606","urls":["bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1","dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol":{"keccak256":"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c","urls":["bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0","dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x8decfa54cec979c824b044b8128cd91d713f72c71fd7dfa54974624d8c949898","urls":["bzz-raw://271f914261a19d87117a777e0924ada545c16191ef9b00cc40b0134fc14ebc70","dweb:/ipfs/QmdvVNWHGHQrGGPonZJs5NuzTevTjZRM2zayKrDJf7WBA2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x6ef9389a2c07bc40d8a7ba48914724ab2c108fac391ce12314f01321813e6368","urls":["bzz-raw://b7a5cb39b1e6df68f4dd9a5e76e853d745a74ffb3dfd7df4ae4d2ace6992a171","dweb:/ipfs/QmPbzKR19rdM8X3PLQjsmHRepUKhvoZnedSR63XyGtXZib"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330","urls":["bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf","dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x4ea01544758fd2c7045961904686bfe232d2220a04ecaa2d6b08dac17827febf","urls":["bzz-raw://fabe6bef5167ae741dd8c22d7f81d3f9120bd61b290762a2e8f176712567d329","dweb:/ipfs/QmSnEitJ6xmf1SSAUeZozD7Gx7h8bNnX3a1ZBzqeivsvVg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de","urls":["bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff","dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xaaa1d17c1129b127a4a401db2fbd72960e2671474be3d08cae71ccdc42f7624c","urls":["bzz-raw://cb2f27cd3952aa667e198fba0d9b7bcec52fbb12c16f013c25fe6fb52b29cc0e","dweb:/ipfs/QmeuohBFoeyDPZA9JNCTEDz3VBfBD4EABWuWXVhHAuEpKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3","urls":["bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a","dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol":{"keccak256":"0x534bf5c25d6003a8ce50b400d20fa460c03169ad7baa90d47a912917c36dfe2b","urls":["bzz-raw://cc0cc39c40ea23d3c46e8517e19ebdd877719d3159fa032f2a91802cdd205c79","dweb:/ipfs/QmSoNh7HTkD4TJcBkBKSGSPMMpLUZKE7s9f2G6mjdaJywg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x44f87e91783e88415bde66f1a63f6c7f0076f2d511548820407d5c95643ac56c","urls":["bzz-raw://13a51bc2b23827744dcf5bad10c69e72528cf015a6fe48c93632cdb2c0eb1251","dweb:/ipfs/QmZwPA47Yqgje1qtkdEFEja8ntTahMStYzKf5q3JRnaR7d"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1","urls":["bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889","dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/permit2/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0xcdfd8db76b2a3415620e4d18cc5545f3d50de792dbf2c3dd5adb40cbe6f94b10","urls":["bzz-raw://57b3ab70cde374af1cf2c9888636e8de6cf660f087b1c9abd805e9271e19fa35","dweb:/ipfs/QmNrLDBAHYFjpjSd12jerm1AdBkDqEYUUaXgnT854BUZ97"],"license":"AGPL-3.0-only"},"lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol":{"keccak256":"0xbadf3d708cf532b12f75f78a1d423135954b63774a6d4ba15914a551d348db8a","urls":["bzz-raw://88ac8256bd520d1b8e6f9c4ac9e8777bffdc4a6c8afb1a848f596665779a55b4","dweb:/ipfs/QmXx7X1dxe6f5VM91vgQ5BA4r2eF97GWDcQDrgHytcvfjU"],"license":"AGPL-3.0-only"},"lib/permit2/src/interfaces/IAllowanceTransfer.sol":{"keccak256":"0x37f0ac203b6ef605c9533e1a739477e8e9dcea90710b40e645a367f8a21ace29","urls":["bzz-raw://e0104d72aeaec1cd66cc232e7de7b7ead08608efcc179491b8a66387614670b0","dweb:/ipfs/QmfAZDyuNC9FXXbnJUwqHNwmAK6uRrXxtWEytLsxjskPsN"],"license":"MIT"},"lib/permit2/src/interfaces/IEIP712.sol":{"keccak256":"0xfdccf2b9639070803cd0e4198427fb0df3cc452ca59bd3b8a0d957a9a4254138","urls":["bzz-raw://f7c936ac42ce89e827db905a1544397f8bdf46db34cdb6aa1b90dea42fdb4c72","dweb:/ipfs/QmVgurxo1N31qZqkPBirw9Z7S9tLYmv6jSwQp8R8ur2cBk"],"license":"MIT"},"lib/permit2/src/interfaces/IPermit2.sol":{"keccak256":"0xaa631cc9f53e699301d94233007110a345e6779011def484e8dd97b8fe0af771","urls":["bzz-raw://fc0502cf19c9c18f320a3001201e89e350393b75837f6b7971de18b2de06f30d","dweb:/ipfs/QmT9SfhdJ7VJNNrf94g4H5usyi7ShqWGx7Cqsz9jZTjX96"],"license":"MIT"},"lib/permit2/src/interfaces/ISignatureTransfer.sol":{"keccak256":"0xe6df9966f8841dc3958ee86169c89de97e7f614c81c28b9dc947b12d732df64e","urls":["bzz-raw://3d4eafdee7f48c3be8350a94eb6edd0bfb2af2c105df65787a77174f356c0317","dweb:/ipfs/QmY1j2adeeAhNpn6cUuthemxGCdLXHTfyMh9yTKsY4mZ2d"],"license":"MIT"},"lib/permit2/src/libraries/SafeCast160.sol":{"keccak256":"0x8a34e2beac108d74f89510c949983212b5f09307a93ee9e17a9d50e93f6bc8e9","urls":["bzz-raw://828697f9567ce617c5c1c8f76b6bcd250e93aea2c4f3ee188be6dff8443c19e7","dweb:/ipfs/QmafxeSPhUc9gGtNDLAw26oZooC5XNLhDMxHxYhJxL5Nwi"],"license":"MIT"},"lib/universal-router.git/contracts/UniversalRouter.sol":{"keccak256":"0x5c7515720fa9b429bc83f0044f3a02cdd065fe1773b9fd32151dc5ff9042d368","urls":["bzz-raw://dd77517f3a73a07fdff8f3a52c268afca749a678ea11442140d401eb102f4404","dweb:/ipfs/QmeJiwCtgF1rMB7Foi6PrqWEaXktztPGQfHoAsw1BRhLU3"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/base/Dispatcher.sol":{"keccak256":"0x1564339a5163c5d27f06a64f994a7457b061aa0f5046377bcc5078cd6907cc5d","urls":["bzz-raw://82dc3ed71c19d6e5d1f72304e62e360954fc40a4d92a2a94e862c5474490d58d","dweb:/ipfs/QmcNamJcGijcEetbHWVJHNjSE2WCyQsmEGEGDg9ZNwqSjR"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/base/Lock.sol":{"keccak256":"0x92f953dda0d671178d054eeb3915b70f8ba80be33df8670a9146af4a4bc2c6ac","urls":["bzz-raw://f73faac9532c8a8870d31bcef68a0dde387579d7b755c342b3352a54a4b63682","dweb:/ipfs/QmXLvJb6vxfrUG84ASLhEf7tL62MN3oxkp7aXUxemrZTy3"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/interfaces/IUniversalRouter.sol":{"keccak256":"0x2525b52d1edf5df89bfd093c5b933b9e8f65236f44f58096763a6c87a5cafb63","urls":["bzz-raw://5cc0fcfedd6b32586099ee0f6781bb81da99175c65013c06bb6f61a125babb18","dweb:/ipfs/QmcEkSzkjkPpp3YyJZaY232TjuNU4Pw6CSiTWz7sk2Sq5D"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/libraries/Commands.sol":{"keccak256":"0xa08ae7be62972a4f17779257641065d41fa5cc2d5fc7050e5e5b76fbda9e6a9f","urls":["bzz-raw://0b94d73c5cd54aba5e1ad4ccfc33df13c1b04417f53fda188275fc15f95f02f2","dweb:/ipfs/QmNpigDf9g9AAbFr27gug5hAZjb6iuFekRqXonC6upoEcp"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/libraries/Constants.sol":{"keccak256":"0xb668498f11a4bb576a0a61c183da7ca348249dd9176c57dcb6532912b1b49b0e","urls":["bzz-raw://87d8588baf0b7b72faec637843c7623ac416d45e0f7719d0a635afe7981b2cf2","dweb:/ipfs/QmSu7Jr8JM6mab2dddk1UaiPhyLZvsA8iLxC9MEcBUaMzT"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/libraries/Locker.sol":{"keccak256":"0xfccb45f77b5c66f0f417d803b4b3f7ae97206d8d850a383ab7d97f25d0617cc0","urls":["bzz-raw://b47f3f4e74961f8e9d918c2cc3514cb8d097caee6ab2c20c10735235dec440ec","dweb:/ipfs/QmfTWUjP7g7zTw67C2RvoMhWRX6ExLNV3UYSb5LqfE4bqC"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/libraries/MaxInputAmount.sol":{"keccak256":"0x2dd6efbcaf9991c852e29a726f9876a0a6d08f2271912e69efa5c6a5e8034739","urls":["bzz-raw://949ebd746eee3589d1e466c738884bd3532043d9e8a7b77c1521a098ba3c69b6","dweb:/ipfs/QmZC9idgGQDfLksqfz41FrcsVXhqkfRZCZH9MJXQkQavt6"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/MigratorImmutables.sol":{"keccak256":"0x666d1622a10509c69b679df9d175a3e0c176a62b9e18d1cee7634219aded8f68","urls":["bzz-raw://a88e472495d32648ba3e7964c4c88b68853b49540f40afbaf2ede6822372b49f","dweb:/ipfs/QmQoaWbCpwFYCnRgehM7ruYaa7za8fBghT5aQCRCPYJr1V"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/Payments.sol":{"keccak256":"0x19a103b3269ee2f7bc28a6e1850091b2087dd2558662494d1104ac8e5ac68524","urls":["bzz-raw://ba64c600f57bb13672a5549b6dba11ae4dfe49f688c24eadb3289dcc87d226a8","dweb:/ipfs/QmWkmVyeai1WeymuWqEk1fQE5R2frrQQjJv81cytrKvFuA"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/PaymentsImmutables.sol":{"keccak256":"0x9ca2535b69b15d3bdb7a15871c5bca83f5536cffb0191c64f4c6a2db4a154338","urls":["bzz-raw://dc85fb3ddd19481bf0d1a8a9f5d9631b396d86344a33e30b4c4ab6cd58d51169","dweb:/ipfs/QmeEGFqfHFUo1Mu6tRfCjvVGJYyoDu29ZspZgxxcj6ykvq"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/Permit2Payments.sol":{"keccak256":"0x887ec1f57144cd91a1b86d5a7b1d1119146f41dae6865e6fd0e849801e968628","urls":["bzz-raw://08b713e82f3f192976902497e1c02dd60bf7e90c83a471eb4c7ac7710b086f95","dweb:/ipfs/QmWJSGZ9Dj7FmFCnDWpDdL5fx76JYDgYWhggXCroxV7cjX"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/V3ToV4Migrator.sol":{"keccak256":"0x5ee3774b749b9a8d851dc6074c8de8c61f408a4cfd829c47c753840c839ba91c","urls":["bzz-raw://337e17b84f4fdad7e32be0e482e7b2471d7f927ba3b3174cae38cf2509d97443","dweb:/ipfs/QmbzgdyxAC5vpvWRGaemn3Qn7DRbNDjHSH3KbHSDPwJ8LY"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/UniswapImmutables.sol":{"keccak256":"0xb810727f5e734a30871ff1d83d8c96d99150f1ce77bb39e032aec6254ca43cd0","urls":["bzz-raw://5eb9df8b6c81f8e33b8a6bace294ed0d81c541988f7ba42027e3041eff32e1bd","dweb:/ipfs/QmVPSWBv7WegGySGV4BoewKKx7iAetHsjydxQyKk3dh5yw"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v2/UniswapV2Library.sol":{"keccak256":"0x829d48c1b69d2e1bc078a57aae8d87dc31d920b01c62d6268d20d517fd24150c","urls":["bzz-raw://b87236ea4c1e64c12434f31abbd658ca3fc510ebe65be731d84d3ce8efa71c32","dweb:/ipfs/QmUerjg5Ebt3pfQZtk2sArUy414gQtHwvFNgsQNe4PhxbN"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v2/V2SwapRouter.sol":{"keccak256":"0x0fcb6ad6c4d5a7b25054dd9951432b2b41cb2c0077e6bc7ca0d0416115ef2326","urls":["bzz-raw://124b1dd54d27914306bdd1021e171111f0ae622fffb2974ccdee24eab31b359d","dweb:/ipfs/QmfKr2sbxdc31aPWv9d6ETA4GyfqHiKVZRKqhREnMkR5j9"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v3/BytesLib.sol":{"keccak256":"0xc3c23e83afd06781c4a0a5c418c20c40611e71d049766eb70987007ce372656e","urls":["bzz-raw://c62989beb75edad6de18c31be31eb68f0c3fb15c5f9e9bb380221afc6785fda5","dweb:/ipfs/QmVEsp5yivbmjP7HcXS5kJ1XJY5Uic3J3y4zjpwD1SNySD"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v3/V3Path.sol":{"keccak256":"0xf6abbf4c7cd0975ddabb0ddb641ea9ae3b0cc1dd9a1cabf5e7cc271a974eabc2","urls":["bzz-raw://1e0987fc9b81c65eada64cb65f981680c2054e489a6049d397b5ecbbf4c9a0a9","dweb:/ipfs/QmW7mbbHsfc2GLy2GkCUv3VwXV93y6UFtKDD7E9QEtzFH7"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v3/V3SwapRouter.sol":{"keccak256":"0x31fe8777a6de583c54a0f09ec11d318c253b7fe50c7a2af1608b2b89a03ca660","urls":["bzz-raw://780219ff0d6d333727655719d31d61ce345cdbca7f906467a2d00e3162b3c0aa","dweb:/ipfs/QmbauA5Kvj7m9P9hxe4hhnLY5w2TEXMMnCc9oWehVgj2jo"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v4/V4SwapRouter.sol":{"keccak256":"0x68b7666641ad5ba227b500c9845c4bc71eaaac6556d97d31d123fce41b51969a","urls":["bzz-raw://40a99bb5e9e407ad6741f5c210ac23a32950e7567c73f21975444e9729fc6cfb","dweb:/ipfs/QmUK98HjyQ7NDGR36DD9owjLDk7ujEj5b5uKt9zjUsCFG5"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/types/RouterParameters.sol":{"keccak256":"0x9efe9912d44e56cff8fc23e1411c80b47ffc9f5c0ad5ca5c66ab77a1b7ddfcbf","urls":["bzz-raw://473acf49dc1be1ca997ad20258124e26e03b3cef15412a8827ecf9b52e4cef21","dweb:/ipfs/QmaGR2QL6im4XYJpubqhUuP82nFytemX7wwEk4cXECJYJN"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IERC721Permit.sol":{"keccak256":"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4","urls":["bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471","dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL"],"license":"GPL-2.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol":{"keccak256":"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984","urls":["bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56","dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW"],"license":"GPL-2.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol":{"keccak256":"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d","urls":["bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f","dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127"],"license":"GPL-2.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryPayments.sol":{"keccak256":"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274","urls":["bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407","dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp"],"license":"GPL-2.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPoolInitializer.sol":{"keccak256":"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862","urls":["bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f","dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu"],"license":"GPL-2.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/libraries/PoolAddress.sol":{"keccak256":"0xa72de315bd655a0fd5043ff97c7fd3868a1b5b1986afd75c6f5f8fd0f904985f","urls":["bzz-raw://a8838e68aba9caf2b2cb13bd4cb661b1f9c167cca4dfcd50ac72ae96691392df","dweb:/ipfs/QmfLq3cmsSQTuLLxiF4bgceaf2jx8CoiVXQd7BZXGgJG1E"],"license":"GPL-2.0-or-later"},"lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol":{"keccak256":"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b","urls":["bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf","dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH"],"license":null},"lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol":{"keccak256":"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1","urls":["bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5","dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol":{"keccak256":"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69","urls":["bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652","dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol":{"keccak256":"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634","urls":["bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5","dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol":{"keccak256":"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5","urls":["bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7","dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol":{"keccak256":"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd","urls":["bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03","dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol":{"keccak256":"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7","urls":["bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047","dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol":{"keccak256":"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235","urls":["bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735","dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol":{"keccak256":"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f","urls":["bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f","dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/libraries/SafeCast.sol":{"keccak256":"0x4c12bf820c0b011f5490a209960ca34dd8af34660ef9e01de0438393d15e3fd8","urls":["bzz-raw://fed11489e218e55d087d42b4f350a30e10cd2aedec8f432bd3cc712f648d5869","dweb:/ipfs/QmWfRnRxyXwHUDcTQPazxYYk5jxErGeQqdvnYtyg5nBPbU"],"license":"GPL-2.0-or-later"},"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":"0x4c9571aed0c2b6ef11832545554fc11ffdb03746daaf5c73683c00600bfc7ec0","urls":["bzz-raw://e78b34b58ce9de91b91943b4f3cc3ce121d0b151e123e8a600ac5ef64d91db6c","dweb:/ipfs/QmRkaQnPCYwLrXgbpGujJTx32PaZK63KSPJJV1XmnQuCMb"],"license":"MIT"},"lib/v4-core/src/interfaces/IPoolManager.sol":{"keccak256":"0x3534f00531038e77ab8a7fc4d0a6e0993ee53fb7a396b1324ad917318ea46cea","urls":["bzz-raw://0a4a7e771828dc40848485b568a1cf514f553ace6653f4f4d1ad3f3e9cdb6c27","dweb:/ipfs/QmTjzQ7KVYnrEWtxPER2E4MXzycgcznfzSDsZtd5turk5V"],"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/CurrencyReserves.sol":{"keccak256":"0x1576616129933fcdf3b684cea33cffd9c95e18fafbd2832a8c48ac3d8526d4c3","urls":["bzz-raw://33b050efb9b81803b18f562271e7cca2ec5362c4d505860d6419b4a345636725","dweb:/ipfs/QmQtFtTwKZ5pFVGD2ENDUXvp7ECFvzqeCuJ1miJcUHdmiX"],"license":"BUSL-1.1"},"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/Lock.sol":{"keccak256":"0x9338be4b5695f1da5f3d3f7a3eeaf7a356c1045458289586ac0cbe9cef77c6d5","urls":["bzz-raw://485ec42ed6155469d612a9a0c18068ebfbad74448792a338a435503de3ef1b2c","dweb:/ipfs/QmVnnv5u74MYatfRmBgrcfFYQcsMAJMG9jQ6ju8UiydKNF"],"license":"BUSL-1.1"},"lib/v4-core/src/libraries/NonzeroDeltaCount.sol":{"keccak256":"0x0666ebd5d3528d7d52c48538296367a4cff97a578cf13365c51983fae3219b87","urls":["bzz-raw://d27f1be3bd09d85c53d3e6a539dd6529ddd8b2b764ccb47fd7765fc81f9add59","dweb:/ipfs/QmQdZujNXhKEXQBkKtF5jbdvo1yXMqPDUoBBaF9S5u3Kpm"],"license":"BUSL-1.1"},"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/libraries/TransientStateLibrary.sol":{"keccak256":"0x7d1e0875747bd89b32c25f1a48da2766e5f4aff1f671ad5f3c0c07ebbbcb946a","urls":["bzz-raw://d76cfeb1cb60595b41ecc51c8a12fb4bf63a7fc733d0b1a2e3adb55abeb1f9d5","dweb:/ipfs/Qmb8oX7DtsRpw3tTtdWZwGhauj1evq43d3PLwe4nSDAKkV"],"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-periphery/src/V4Router.sol":{"keccak256":"0x8ede1e538ae9b74984c52347a3bbaee7b3d69f00ed9b3a6db1f1bd6e058a2326","urls":["bzz-raw://8e370416fa9681ad124414e2b2fb57a5455e15dd873c9e61c964177ae5c2d544","dweb:/ipfs/QmWrM97ezNB9CpawqhkwpubXHcXUbMFWKYEbD3D6EyAe1w"],"license":"MIT"},"lib/v4-periphery/src/base/BaseActionsRouter.sol":{"keccak256":"0xca1ee500f88951ad351d18ba2adfb5fe23abef6d502f234ce5748a3497674a4c","urls":["bzz-raw://1f03ab458be27c29cef1b7ace5b11517d3fef8bf6131af7dd80d6297c224cf71","dweb:/ipfs/QmYoH6o8yeRzbeLoaMG9TjS8q2Fw7T1h4vXvvMnp3XfsUa"],"license":"MIT"},"lib/v4-periphery/src/base/DeltaResolver.sol":{"keccak256":"0x94a2da2be5c924df65a8e1e29f585bbe4c37777fedd43b45989c66d509a4a83c","urls":["bzz-raw://42bba590f6e817fd56328b74ae99bfdc4df57386d0a69ee22b9108341953ed36","dweb:/ipfs/QmdusastK7FWYouLz9gvV5J3z8MQbNKLJNNHTrc1vi7DWw"],"license":"MIT"},"lib/v4-periphery/src/base/ImmutableState.sol":{"keccak256":"0x1867c9fa2f9b4fa73bab0fcdc9d19ccef4eeac552273d8b84a170cd1cc90350a","urls":["bzz-raw://af2d699b439e13b599632fddfe82718aebd41055fba7c075f186675c588d1337","dweb:/ipfs/Qmc111gckSKb9aESn3wRFLeLiS4KGujaUcaYJgRnCRfwQU"],"license":"MIT"},"lib/v4-periphery/src/base/SafeCallback.sol":{"keccak256":"0xd78b583df1b9ee06d58e83b84fc9f08971389b34dd34bc13db072e0c13c710da","urls":["bzz-raw://c0a47f4bcd6060c4462153b9a7c52a60a460ace91acb6ddd5492eab28ec26173","dweb:/ipfs/QmdRCTRS1dhFjWEy6z577j4xz9J5HPfHBwcNzAic8G59oT"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IEIP712_v4.sol":{"keccak256":"0xd7f7115476e307a0bfc32a0f0a0f5434e9e5ca62a6c5af1e18b75e48161bb408","urls":["bzz-raw://b1600b953556da38a7adc5ad2a2925ec5fb138fecf8eec48743646543195b736","dweb:/ipfs/QmarZi2aiLVAfHXgnDWV1cCFiZk2DdPW7KJnWHqzuRChJR"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IERC721Permit_v4.sol":{"keccak256":"0x103adbba724ef536abc536fe8a4d7dc12880724c562109b69f2adce4a91fa017","urls":["bzz-raw://06f51b5a5a218e0bc866a83e7821be53c9db9de0ca921f16abd3d13ea0eab69d","dweb:/ipfs/QmbnhLy992hpQZyphTkj7fpr6jKKVva2AzfmLiDZEuqHAk"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IImmutableState.sol":{"keccak256":"0x36ab3100e87457ecf04887f4f540e34fd7f21d8e3b83880cb679239e60b7b06b","urls":["bzz-raw://7f290c7ce8e4832608d637a51b13dff95abecf6549485448e647a11c8ed01341","dweb:/ipfs/QmfD1R6mTp8j4EjQXmQZW3vCh11EYFjnvoaw8rXRP27mMq"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IMulticall_v4.sol":{"keccak256":"0x336bec303f7ff86497d2679464c5adad5040f412b3d0769ce5e1d2a42f7e2c08","urls":["bzz-raw://7734f047d98d331c8abc51ad9f358ceee0a6dcae8d89ac49084b84de0d2d42e7","dweb:/ipfs/QmWij2h7mU36LsXhb9P6pkYXrSCua4ixeWaVFSrsEcEmPQ"],"license":"MIT"},"lib/v4-periphery/src/interfaces/INotifier.sol":{"keccak256":"0xfdc5187a98240a1691aae98b7dd2444d4c2bfb4746f3c34de9f3d18399c17c5e","urls":["bzz-raw://683af56401ec4f8817e8dfe150e7b3febaf0baaf40efe8d0d0475f735275f746","dweb:/ipfs/QmRQ6S3nFnSc2jjDcQTvUJdTf4xKPojmvCkpvgyr6qTuVV"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IPermit2Forwarder.sol":{"keccak256":"0xfad472937280e861125ff12aa6f9c2cf7440fbb20a2cc29485c24662ad4279c5","urls":["bzz-raw://31bfbc331f5972fc373d9469fd1ca1d14818db3275f21b7b590f20820cb4439d","dweb:/ipfs/QmX3Bv9wfYpAFZKBcxKsQSXUrSC8mqNBdzh6XVMS72aNx9"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IPoolInitializer_v4.sol":{"keccak256":"0x2e4feda94650a2642039e0309ffdec480ee050bc40864bf5e1dba42bb4dc9e98","urls":["bzz-raw://964c178b4da8bab9ef898b94bb26d7c17cc44c5cf20485f55dcf5e9c7e1b1d92","dweb:/ipfs/QmVd2c3SYteyr5xZgUS4sDAiZF43dLwVAEKdCfvQbkZpRJ"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IPositionManager.sol":{"keccak256":"0x62dfa0cbee8314ee7e6787db8bc1d364245c340f940875ac7ff11e89d074fc7e","urls":["bzz-raw://26f560c77d8a187bf93a710b827e3167eab3446922192fa8f92f208da2103834","dweb:/ipfs/Qmbzp5gSYdTpMBF9aAb2GraxMEQZb5LRJCyg8VaRUyjTFc"],"license":"MIT"},"lib/v4-periphery/src/interfaces/ISubscriber.sol":{"keccak256":"0x34ceadec4a63019680e543fe73197f198a55c825d86e18f327840354760b57e7","urls":["bzz-raw://31734feafe1fe162a0702ddf862fcc3bd97505931afb3c685033c0185d898051","dweb:/ipfs/QmQEANYVyaXTNzXKcjUVfPhLU71Bix5vxQH75BpPWMkWgw"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IUnorderedNonce.sol":{"keccak256":"0xd7f32fee74dc7d1a3b078ca1263961baccaa6bf434c79e8fe0e092e30c3e0ec3","urls":["bzz-raw://e7d1e92d89d5f49c84aa82f3b259678c2c97a4473b22d753ca4411a6b0cec36d","dweb:/ipfs/QmNZoQyminStaAdaLqoDLoWaBU5QWrWjXFjmBm4aFhzL8i"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IV4Router.sol":{"keccak256":"0xc4133fae25e61cc2447d7331729f6035322d7c1fe26b39b225422bf98cc63459","urls":["bzz-raw://3c24ff8428504e973e947a059f96289a66c520cd7f8ef47a3224f9cb6abdaf25","dweb:/ipfs/QmVqxYnngWXXcCiuTC143vTEJrjZK5NXWB92pjvVbuJBQ5"],"license":"MIT"},"lib/v4-periphery/src/interfaces/external/IWETH9.sol":{"keccak256":"0xe88abf12501ac275619aec0687240a07d26968aecbbcdfea88ba8bbd5d6e5e14","urls":["bzz-raw://7097065d4492b4eccb1a73f99af1e5bec45404c6b973b8f5965c4c91403f5f92","dweb:/ipfs/QmZK8oEqmjmTqhBoh3D3fBpyKGkUEFnptY8xwH9xpNjDm2"],"license":"MIT"},"lib/v4-periphery/src/libraries/ActionConstants.sol":{"keccak256":"0x3d6f0e5b4a7b1e60bad93e73dce5db67fb66bebef11c31ed8355014a79aa03b3","urls":["bzz-raw://6dfa42e24b1b5c7f66e75304ab034fbb6768518eb2410ccfff8b3defdd1658f2","dweb:/ipfs/QmQQ7fud9mmv7PEWPAQiNzeZhNkWf28Z6nCHc2e6WJFfa7"],"license":"MIT"},"lib/v4-periphery/src/libraries/Actions.sol":{"keccak256":"0x8efd4b8b289177ee27e557d9d0a5a9f973d66fe1eb1ef8959d316b11987ca830","urls":["bzz-raw://07fe35f194eb99465028f0546359befea574d844da53767d32f22b233c3bcc98","dweb:/ipfs/Qmc19631uFxABTHAbGrDrroexi9GdyxWntaum1v8npPYz5"],"license":"MIT"},"lib/v4-periphery/src/libraries/BipsLibrary.sol":{"keccak256":"0x37ebf99f5d086d9d9f6e7cecbf4d62167f47c63c30248cfcb921e828f0d7a359","urls":["bzz-raw://c4f8e68a66bb6c166d72cdba6ed6fb83a93f713b79c2c572e8058084eb90ab6c","dweb:/ipfs/QmY32FxtSBRf9PJzNUVzXqFY4i2ApTPHTUMpCBGovd2zo3"],"license":"MIT"},"lib/v4-periphery/src/libraries/CalldataDecoder.sol":{"keccak256":"0x26df49e13fb5410fd4db253cca877dfdfb3a1ba03e394d054c0e0514a88a56e5","urls":["bzz-raw://72a0c98c52171708f332f83d517deeb97fdd50ecf28f2510e1866e54593a6ff8","dweb:/ipfs/QmY4LiDUfSKGj86nML7B6a8euiPciUqwYehasAyAVnMCHq"],"license":"MIT"},"lib/v4-periphery/src/libraries/PathKey.sol":{"keccak256":"0xbbd79ffefe045f025263e389539021266fb4d371463aefba405e1ff1d3fcf9bc","urls":["bzz-raw://2d1c47b81a01218be46ee79f0a8837095479b94dc5cfd18abbf2006709f0ea89","dweb:/ipfs/QmRb6CQ13Zp7f3WF5jbZtsF2szhxpPgcuWs9mjwQXxzqtg"],"license":"MIT"},"lib/v4-periphery/src/libraries/PositionInfoLibrary.sol":{"keccak256":"0xc5ddf96bd088bc87ea50a20f907fc932fb28397a42682a301b268a11b7f34078","urls":["bzz-raw://7dfeb4dc747537240f8167243e8066b6f5f08057386fb8bda93f82973fc18ad6","dweb:/ipfs/Qmby9DAAaHj8hjsMUnqY3vjqCHKGAKrT5EULMmeGcjbbGx"],"license":"MIT"},"node_modules/fhevm/config/ZamaFHEVMConfig.sol":{"keccak256":"0x41782f4c707b81399916544fa2e7be94a695fa4ba468542732d29d3e383c0315","urls":["bzz-raw://45a95a55c4bbb3418c2133cba6ed21a9444bb4e38d38b32cc707b7493cece2ca","dweb:/ipfs/QmVU8EKmZgscdM43RgXD4EgbVMhQxBusTmBren3pbn1pUW"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/config/ZamaGatewayConfig.sol":{"keccak256":"0xbed8bc18db61ffeb5ee31f577ab636d8563df27554e0ca66c53534f0bd82ffbd","urls":["bzz-raw://53601967f9e914b25cf91a325b100d5b3cbb9aec92d12443062a51fe5a578b7d","dweb:/ipfs/QmNbviWrrPrx3snoLWqW5GyBnH99tSX3iYXEJ5ezk9XbtL"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/gateway/GatewayCaller.sol":{"keccak256":"0xd19fd7715f0c5b479bf0cd8e3108cc8da7deae2d4fc7fb5ab089ebf2d76a0652","urls":["bzz-raw://6386c509464cefe5a41903ca837da46a21b8042d13ccde656158efc48cd70ea8","dweb:/ipfs/QmUn7C6aZwKmEmKsphBshBezXXGZtLMyfaeZAyuZoRsBWU"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/gateway/lib/Gateway.sol":{"keccak256":"0x9585a649e3001a4b8768ab6e2597b416f680bcc537309cd50b60e023e9791318","urls":["bzz-raw://a1b055bfb067cc247d4bd60b5f8348f667cbe79717a5753cd6412955277345d0","dweb:/ipfs/QmTveBaQg9GUdtrrxcR4RsiyAEmoEKGL4gn6E1gThR1ph5"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/lib/Impl.sol":{"keccak256":"0x89d4968cd956a8931f1a8a177b3bef1c6cf88a03665083db74430add50b88f21","urls":["bzz-raw://aaaef2c82d56dacfb08946842ea1ce26757d13f3251de62fa79222232dfcb43c","dweb:/ipfs/QmQ6QZPxJw9jb3qjRYCX7pMQVoYogjTsYgmdEnB3EnwFRy"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/lib/TFHE.sol":{"keccak256":"0x221799c8332f83ab65a0b71746409f0c2c89f1cd8d9ba4091d967c667e1df734","urls":["bzz-raw://2dba387fbc612a2ee64063b0ee6c27304b3944423d11045acc50abd84577fb5f","dweb:/ipfs/QmThptDGnpd8PuncFk1rnQoCzEqwUED622yC9xZgFhwY59"],"license":"BSD-3-Clause-Clear"}},"version":1},"id":12} \ No newline at end of file diff --git a/out/IndexFundToken.sol/IndexFundToken.json b/out/IndexFundToken.sol/IndexFundToken.json index edacf17..2f629c4 100644 --- a/out/IndexFundToken.sol/IndexFundToken.json +++ b/out/IndexFundToken.sol/IndexFundToken.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"acceptOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"euint64"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"euint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"encryptedAmount","type":"bytes32","internalType":"einput"},{"name":"inputProof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"euint64"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"amount","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"errorGetCounter","inputs":[],"outputs":[{"name":"errorsCount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getErrorCodeForTransferId","inputs":[{"name":"transferId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"errorCode","type":"uint256","internalType":"euint8"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pendingOwner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"encryptedAmount","type":"bytes32","internalType":"einput"},{"name":"inputProof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"euint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"euint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"encryptedAmount","type":"bytes32","internalType":"einput"},{"name":"inputProof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"placeholder","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Burn","inputs":[{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Mint","inputs":[{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferStarted","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"transferId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"ErrorIndexInvalid","inputs":[]},{"type":"error","name":"ErrorIndexIsNull","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"TFHESenderNotAllowed","inputs":[]},{"type":"error","name":"TotalNumberErrorCodesEqualToZero","inputs":[]}],"bytecode":{"object":"0x60a0806040523461040957611d53803803809161001c828561066b565b83398101906040818303126104095780516001600160401b038111610409578261004791830161068e565b60208201519092906001600160401b03811161040957610067920161068e565b5f606060405161007681610650565b8281528260208201528260408201520152739d6891a6240d6130c54ae243d8005063d05fe14b60606040516100aa81610650565b73fee8407e2f5e3ee68ad77cae98c434e637f516e5815273687408ab54661ba0b4aef3a44156c616c6955e07602082015273fb03be574d14c256d56f09a198b586bdfc0a9de26040820152015273fee8407e2f5e3ee68ad77cae98c434e637f516e560018060a01b03195f80516020611cd38339815191525416175f80516020611cd38339815191525573687408ab54661ba0b4aef3a44156c616c6955e0760018060a01b03195f80516020611d138339815191525416175f80516020611d138339815191525573fb03be574d14c256d56f09a198b586bdfc0a9de260018060a01b03195f80516020611d338339815191525416175f80516020611d3383398151915255739d6891a6240d6130c54ae243d8005063d05fe14b60018060a01b03195f80516020611cf38339815191525416175f80516020611cf383398151915255331561063d57600180546001600160a01b03199081169091555f805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a381516001600160401b03811161055057600254600181811c91168015610633575b602082101461053257601f81116105d0575b50602092601f821160011461056f57928192935f92610564575b50508160011b915f199060031b1c1916176002555b80516001600160401b03811161055057600354600181811c91168015610546575b602082101461053257601f81116104cf575b50602091601f821160011461046f579181925f92610464575b50508160011b915f199060031b1c1916176003555b5f5b60ff81169060028211610440575f80516020611d1383398151915254604051631ce2e8d760e31b815260048101849052600160f91b60248201529290602090849060449082905f906001600160a01b03165af19283156103fe575f9361040d575b505f9081526007602052604090208290555f80516020611cd3833981519152546001600160a01b031691823b15610409575f92604484926040519586938492631974142760e21b845260048401523060248401525af19182156103fe5760ff926103ee575b501660ff81146103da57600101610302565b634e487b7160e01b5f52601160045260245ffd5b5f6103f89161066b565b5f6103c8565b6040513d5f823e3d90fd5b5f80fd5b9092506020813d8211610438575b816104286020938361066b565b810103126104095751915f610363565b3d915061041b565b60026080526040516115ef90816106e48239608051818181610b540152610e490152f35b015190505f806102eb565b601f1982169260035f52805f20915f5b8581106104b75750836001951061049f575b505050811b01600355610300565b01515f1960f88460031b161c191690555f8080610491565b9192602060018192868501518155019401920161047f565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c81019160208410610528575b601f0160051c01905b81811061051d57506102d2565b5f8155600101610510565b9091508190610507565b634e487b7160e01b5f52602260045260245ffd5b90607f16906102c0565b634e487b7160e01b5f52604160045260245ffd5b015190505f8061028a565b601f1982169360025f52805f20915f5b8681106105b857508360019596106105a0575b505050811b0160025561029f565b01515f1960f88460031b161c191690555f8080610592565b9192602060018192868501518155019401920161057f565b60025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace601f830160051c81019160208410610629575b601f0160051c01905b81811061061e5750610270565b5f8155600101610611565b9091508190610608565b90607f169061025e565b631e4fbdf760e01b5f525f60045260245ffd5b608081019081106001600160401b0382111761055057604052565b601f909101601f19168101906001600160401b0382119082101761055057604052565b81601f82011215610409578051906001600160401b03821161055057604051926106c2601f8401601f19166020018561066b565b8284526020838301011161040957815f9260208093018386015e830101529056fe6080806040526004361015610012575f80fd5b5f3560e01c90816306fdde031461090c57508063095ea7b3146108e557806318160ddd146108bb57806323b872dd1461088c5780632893c5b0146106b7578063313ce5671461069c57806367a74a281461067f57806370a0823114610647578063715018a6146105e457806379ba50971461055f5780637b7e0a5a146105425780638da5cb5b1461051b57806395d89b411461040f5780639a094352146103ae5780639dbead421461029f578063a5184baf1461025c578063a9059cbb1461022b578063b32c1001146101f1578063dd62ed3e146101a1578063e30c3978146101795763f2fde38b14610103575f80fd5b346101755760203660031901126101755761011c6109e8565b6101246111db565b60018060a01b0316806bffffffffffffffffffffffff60a01b600154161760015560018060a01b035f54167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227005f80a3005b5f80fd5b34610175575f366003190112610175576001546040516001600160a01b039091168152602090f35b34610175576040366003190112610175576101ba6109e8565b6101c26109fe565b6001600160a01b039182165f908152600560209081526040808320949093168252928352819020549051908152f35b346101755761021f61021361021961020836610a42565b949192943691610dde565b906111ee565b90610abf565b50602060405160018152f35b346101755760403660031901126101755760206102526102496109e8565b60243590610e24565b6040519015158152f35b3461017557602036600319011261017557600435600654811015610290575f526008602052602060405f2054604051908152f35b63d65c1f3360e01b5f5260045ffd5b346101755760203660031901126101755760043567ffffffffffffffff811680910361017557335f52600460205260405f205490811561039a575b5f8051602061159a83398151915254604051638c14cc2160e01b815260048101939093526024830191909152600160f81b6044830152602090829060649082905f906001600160a01b03165af1801561038f575f9061035b575b806103599150335f5260046020528060405f20556103523082611476565b3390611476565b005b506020813d602011610387575b8161037560209383610a89565b81010312610175576103599051610334565b3d9150610368565b6040513d5f823e3d90fd5b905060206103a6611543565b9190506102da565b34610175576080366003190112610175576103c76109e8565b6103cf6109fe565b906064359167ffffffffffffffff8311610175576104096104016103fa61021f953690600401610a14565b3691610dde565b6044356111ee565b91610b14565b34610175575f366003190112610175576040515f6003548060011c90600181168015610511575b6020831081146104fd578285529081156104d9575060011461047b575b6104778361046381850382610a89565b6040519182916020835260208301906109c4565b0390f35b91905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f905b8082106104bf57509091508101602001610463610453565b9192600181602092548385880101520191019092916104a7565b60ff191660208086019190915291151560051b840190910191506104639050610453565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610436565b34610175575f366003190112610175575f546040516001600160a01b039091168152602090f35b346101755761021f61021361055961020836610a42565b90610e24565b34610175575f36600319011261017557600154336001600160a01b03909116036105d157600180546001600160a01b03199081169091555f805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b63118cdaa760e01b5f523360045260245ffd5b34610175575f366003190112610175576105fc6111db565b600180546001600160a01b03199081169091555f80549182168155906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610175576020366003190112610175576001600160a01b036106686109e8565b165f526004602052602060405f2054604051908152f35b34610175575f366003190112610175576020600654604051908152f35b34610175575f36600319011261017557602060405160068152f35b34610175576040366003190112610175576106d06109e8565b60243567ffffffffffffffff8116809103610175576106ed6111db565b6001600160a01b0382165f8181526004602052604081205491939091801561087a575b5f8051602061159a8339815191525460405163f953e42760e01b8152600481019290925260248201859052600160f81b6044830152909260209184916064918391906001600160a01b03165af1801561038f575f90610846575b61078c9250845f5260046020528060405f20556107873082611476565b611476565b815f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602060405183198152a3600154908067ffffffffffffffff8360a01c16019067ffffffffffffffff82116108325767ffffffffffffffff60a01b1990921660a09190911b67ffffffffffffffff60a01b16176001556040519081527f9109de113672aaca72ede8bc906f7aafabee865311ac020fb15c71edf94a0a0190602090a2005b634e487b7160e01b5f52601160045260245ffd5b506020823d602011610872575b8161086060209383610a89565b810103126101755761078c915161076a565b3d9150610853565b506020610885611543565b9050610710565b346101755760603660031901126101755760206102526108aa6109e8565b6108b26109fe565b60443591610b14565b34610175575f36600319011261017557602067ffffffffffffffff60015460a01c16604051908152f35b346101755760403660031901126101755760206102526109036109e8565b60243590610abf565b34610175575f366003190112610175575f6002548060011c906001811680156109ba575b6020831081146104fd578285529081156104d9575060011461095c576104778361046381850382610a89565b91905060025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace915f905b8082106109a057509091508101602001610463610453565b919260018160209254838588010152019101909291610988565b91607f1691610930565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361017557565b602435906001600160a01b038216820361017557565b9181601f840112156101755782359167ffffffffffffffff8311610175576020838186019501011161017557565b6060600319820112610175576004356001600160a01b03811681036101755791602435916044359067ffffffffffffffff821161017557610a8591600401610a14565b9091565b90601f8019910116810190811067ffffffffffffffff821117610aab57604052565b634e487b7160e01b5f52604160045260245ffd5b90610ad490610acd81610eed565b8233610f9f565b6040515f1981526001600160a01b039091169033907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590602090a3600190565b91610b1e81610eed565b6001600160a01b0383165f81815260056020908152604080832033845290915290205493909290610b4f8584611301565b9360ff7f00000000000000000000000000000000000000000000000000000000000000001694856002116102905760076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5460025f9081527fb7c774451310d1be4108bc180d1b52823cb0ee0274a6c0081bcaf94f115fb96d54909391610bda9190846114f1565b9083526004602052610bf0604084205487611301565b96602060018060a01b035f8051602061159a83398151915254166024604051809781936309c00ffd60e11b83528d60048401525af193841561038f575f94610da9575b505f8051602061159a83398151915254604051630ccd46b160e31b81526004810195909552602485018490525f6044860181905260209186916064918391906001600160a01b03165af193841561038f575f94610d75575b5060011161029057610cb0610cc49160209460015f526007865260405f2054906114f1565b610cb9816113b4565b506103528582611476565b606460018060a01b035f8051602061159a8339815191525416965f6040519889948593630ccd46b160e31b8552600485015260248401528160448401525af193841561038f575f94610d3d575b50610d33610d2c86610d2686610d38996113e1565b876114f1565b3383610f9f565b61101c565b600190565b9493506020853d602011610d6d575b81610d5960209383610a89565b810103126101755793519293610d33610d11565b3d9150610d4c565b9093506020813d602011610da1575b81610d9160209383610a89565b810103126101755751925f610c8b565b3d9150610d84565b93506020843d602011610dd6575b81610dc460209383610a89565b81010312610175579251926020610c33565b3d9150610db7565b92919267ffffffffffffffff8211610aab5760405191610e08601f8201601f191660200184610a89565b829481845281830111610175578281602093845f960137010152565b90610e2e81610eed565b335f526004602052610e4460405f205482611301565b9060ff7f0000000000000000000000000000000000000000000000000000000000000000166001116102905760076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5460015f527fb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b82854610d389491610ee7918391610ed39190876114f1565b610edc816113b4565b506107873382611476565b3361101c565b7fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60054604051632fd514cd60e11b81526004810192909252336024830152602090829060449082906001600160a01b03165afa90811561038f575f91610f64575b5015610f5557565b632fa38b3f60e01b5f5260045ffd5b90506020813d602011610f97575b81610f7f60209383610a89565b8101031261017557518015158103610175575f610f4d565b3d9150610f72565b6001600160a01b0381169392908415611009576001600160a01b038316948515610ff65790610ff49495610787925f52600560205260405f20905f526020528260405f2055610fee3084611476565b82611476565b565b85634a1406b160e11b5f5260045260245ffd5b8463e602df0560e01b5f5260045260245ffd5b91926001600160a01b038316929083156111c8576001600160a01b0383169485156111b557906110549161104e611543565b916114f1565b91845f5260046020525f602060408220548581156111a5575b8615611197575b5f8051602061159a8339815191525460405163f953e42760e01b8152600480820194909452848101909301919091526001600160f81b0319841660448301529092839160649183916001600160a01b03165af190811561038f575f91611161575b50926110fc61110e92856111269650885f5260046020528060405f20556107873082611476565b845f52600460205260405f20546113e1565b835f5260046020528060405f20556107873082611476565b6006545f1981019081116108325760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91604051908152a3565b9390506020843d60201161118f575b8161117d60209383610a89565b810103126101755792516110fc6110d5565b3d9150611170565b506111a0611543565b611074565b90506111af611543565b9061106d565b8563ec442f0560e01b5f5260045260245ffd5b83634b637e8f60e11b5f5260045260245ffd5b5f546001600160a01b031633036105d157565b61123d9160209160018060a01b035f8051602061159a8339815191525416905f6040518096819582946302e817ff60e41b845260048401523360248401526080604484015260848301906109c4565b600560f81b606483015203925af190811561038f575f916112cf575b507fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600546001600160a01b0316803b15610175576040516346ce4e4960e11b815260048101839052336024820152905f908290604490829084905af1801561038f576112c2575090565b5f6112cc91610a89565b90565b90506020813d6020116112f9575b816112ea60209383610a89565b8101031261017557515f611259565b3d91506112dd565b9081156113a4575b8015611392575b602090606460018060a01b035f8051602061159a8339815191525416935f60405195869485936334a6d7b960e11b8552600485015260248401528160448401525af190811561038f575f91611363575090565b90506020813d60201161138a575b8161137e60209383610a89565b81010312610175575190565b3d9150611371565b50602061139d611543565b9050611310565b90506113ae611543565b90611309565b60065491905f19831461083257610ff49060018401600655835f5260086020528060405f20553090611476565b6020905f928115611466575b8015611458575b5f8051602061159a83398151915254604051638c14cc2160e01b8152600480820194909452848101909301919091526001600160f81b0319841660448301529092839160649183916001600160a01b03165af190811561038f575f91611363575090565b50611461611543565b6113f4565b9050611470611543565b906113ed565b7fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600546001600160a01b031691823b1561017557604051631974142760e21b815260048101929092526001600160a01b03166024820152905f908290604490829084905af1801561038f576114e75750565b5f610ff491610a89565b9060646020925f60018060a01b035f8051602061159a8339815191525416604051968795869463cb3b940760e01b86526004860152602485015260448401525af190811561038f575f91611363575090565b5f8051602061159a83398151915254604051631ce2e8d760e31b81525f60048201819052600560f81b60248301529091602091839160449183916001600160a01b03165af190811561038f575f9161136357509056feed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea601a264697066735822122092618fe96464edefcc349acd12bdbe8a8c3cb5d6f5a1fdab3cee77351b340eff64736f6c634300081a0033ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea603ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea601ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea602","sourceMap":"493:427:4:-:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;493:427:4;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;493:427:4;;;;;;;;:::i;:::-;-1:-1:-1;493:427:4;;;;;;:::i;:::-;;;;;;;;;;;;;;;;865:42:152;493:427:4;;;;;;:::i;:::-;625:42:152;493:427:4;;706:42:152;493:427:4;577:345:152;;493:427:4;785:42:152;493:427:4;577:345:152;;493:427:4;577:345:152;493:427:4;625:42:152;493:427:4;;;;;;-1:-1:-1;;;;;;;;;;;493:427:4;;;-1:-1:-1;;;;;;;;;;;493:427:4;706:42:152;493:427:4;;;;;;-1:-1:-1;;;;;;;;;;;493:427:4;;;-1:-1:-1;;;;;;;;;;;493:427:4;785:42:152;493:427:4;;;;;;-1:-1:-1;;;;;;;;;;;493:427:4;;;-1:-1:-1;;;;;;;;;;;493:427:4;865:42:152;493:427:4;;;;;;-1:-1:-1;;;;;;;;;;;493:427:4;;;-1:-1:-1;;;;;;;;;;;493:427:4;900:10;1273:26:28;1269:95;;493:427:4;;;-1:-1:-1;;;;;;493:427:4;;;;;;-1:-1:-1;493:427:4;;900:10;493:427;;;;;;;-1:-1:-1;;;;;493:427:4;;3052:40:28;;-1:-1:-1;3052:40:28;493:427:4;;-1:-1:-1;;;;;493:427:4;;;;1594:20:18;493:427:4;;;;;;;;;;;-1:-1:-1;493:427:4;;;;;;;;;;;-1:-1:-1;493:427:4;;;;;;;;;;;;;;-1:-1:-1;493:427:4;;;;;;;;;;;;;;;;;;;1594:20:18;493:427:4;;;;-1:-1:-1;;;;;493:427:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;493:427:4;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2177:3:20;493:427:4;;;2148:27:20;1594:20:18;2148:27:20;;;;-1:-1:-1;;;;;;;;;;;493:427:4;;;-1:-1:-1;;;13977:74:156;;;;;493:427:4;;;-1:-1:-1;;;493:427:4;;;;;;;;;;13977:74:156;;493:427:4;;-1:-1:-1;;;;;;;493:427:4;13977:74:156;;;;;;;-1:-1:-1;13977:74:156;;;2177:3:20;-1:-1:-1;;493:427:4;;;2245:21:20;493:427:4;;;;;;;;-1:-1:-1;;;;;;;;;;;493:427:4;-1:-1:-1;;;;;493:427:4;;15870:41:156;;;;;-1:-1:-1;493:427:4;13977:74:156;493:427:4;;;;;;;;;;;;15870:41:156;;13977:74;15870:41;;493:427:4;370135:4:157;493:427:4;;;;15870:41:156;;;;;;;493:427:4;15870:41:156;;;2177:3:20;;493:427:4;;;;;;;;2139:7:20;;493:427:4;;;;-1:-1:-1;493:427:4;;13977:74:156;493:427:4;;-1:-1:-1;493:427:4;15870:41:156;-1:-1:-1;15870:41:156;;;:::i;:::-;;;;;493:427:4;;;-1:-1:-1;493:427:4;;;;;15870:41:156;-1:-1:-1;493:427:4;;13977:74:156;;;;493:427:4;13977:74:156;;;;;;;;;493:427:4;13977:74:156;;;:::i;:::-;;;493:427:4;;;;;13977:74:156;;;;;;;-1:-1:-1;13977:74:156;;2148:27:20;1594:20:18;493:427:4;2341:50:20;493:427:4;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;493:427:4;;;;;;;;;;;-1:-1:-1;493:427:4;;-1:-1:-1;493:427:4;;-1:-1:-1;493:427:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;493:427:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;493:427:4;;;;;;;;;-1:-1:-1;493:427:4;;;;;;;;-1:-1:-1;493:427:4;;;;;-1:-1:-1;493:427:4;;;;;;;;;;;;-1:-1:-1;493:427:4;;;;;-1:-1:-1;493:427:4;;;;;-1:-1:-1;493:427:4;;;;;;;;;;1594:20:18;-1:-1:-1;493:427:4;;-1:-1:-1;493:427:4;;-1:-1:-1;493:427:4;;;;;;;;;;;;;;;;;;;;;1594:20:18;493:427:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:20:18;-1:-1:-1;493:427:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;493:427:4;;;;;;;;;-1:-1:-1;493:427:4;;;;;;;;;;;1269:95:28;1322:31;;;-1:-1:-1;1322:31:28;-1:-1:-1;1322:31:28;493:427:4;;-1:-1:-1;1322:31:28;493:427:4;;;;;;;-1:-1:-1;;;;;493:427:4;;;;;;;:::o;:::-;;;;;-1:-1:-1;;493:427:4;;;;-1:-1:-1;;;;;493:427:4;;;;;;;;;;:::o;:::-;;;;;;;;;;;;-1:-1:-1;;;;;493:427:4;;;;;;;;;;;-1:-1:-1;;493:427:4;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;493:427:4;;;;;;;;;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c90816306fdde031461090c57508063095ea7b3146108e557806318160ddd146108bb57806323b872dd1461088c5780632893c5b0146106b7578063313ce5671461069c57806367a74a281461067f57806370a0823114610647578063715018a6146105e457806379ba50971461055f5780637b7e0a5a146105425780638da5cb5b1461051b57806395d89b411461040f5780639a094352146103ae5780639dbead421461029f578063a5184baf1461025c578063a9059cbb1461022b578063b32c1001146101f1578063dd62ed3e146101a1578063e30c3978146101795763f2fde38b14610103575f80fd5b346101755760203660031901126101755761011c6109e8565b6101246111db565b60018060a01b0316806bffffffffffffffffffffffff60a01b600154161760015560018060a01b035f54167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227005f80a3005b5f80fd5b34610175575f366003190112610175576001546040516001600160a01b039091168152602090f35b34610175576040366003190112610175576101ba6109e8565b6101c26109fe565b6001600160a01b039182165f908152600560209081526040808320949093168252928352819020549051908152f35b346101755761021f61021361021961020836610a42565b949192943691610dde565b906111ee565b90610abf565b50602060405160018152f35b346101755760403660031901126101755760206102526102496109e8565b60243590610e24565b6040519015158152f35b3461017557602036600319011261017557600435600654811015610290575f526008602052602060405f2054604051908152f35b63d65c1f3360e01b5f5260045ffd5b346101755760203660031901126101755760043567ffffffffffffffff811680910361017557335f52600460205260405f205490811561039a575b5f8051602061159a83398151915254604051638c14cc2160e01b815260048101939093526024830191909152600160f81b6044830152602090829060649082905f906001600160a01b03165af1801561038f575f9061035b575b806103599150335f5260046020528060405f20556103523082611476565b3390611476565b005b506020813d602011610387575b8161037560209383610a89565b81010312610175576103599051610334565b3d9150610368565b6040513d5f823e3d90fd5b905060206103a6611543565b9190506102da565b34610175576080366003190112610175576103c76109e8565b6103cf6109fe565b906064359167ffffffffffffffff8311610175576104096104016103fa61021f953690600401610a14565b3691610dde565b6044356111ee565b91610b14565b34610175575f366003190112610175576040515f6003548060011c90600181168015610511575b6020831081146104fd578285529081156104d9575060011461047b575b6104778361046381850382610a89565b6040519182916020835260208301906109c4565b0390f35b91905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f905b8082106104bf57509091508101602001610463610453565b9192600181602092548385880101520191019092916104a7565b60ff191660208086019190915291151560051b840190910191506104639050610453565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610436565b34610175575f366003190112610175575f546040516001600160a01b039091168152602090f35b346101755761021f61021361055961020836610a42565b90610e24565b34610175575f36600319011261017557600154336001600160a01b03909116036105d157600180546001600160a01b03199081169091555f805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b63118cdaa760e01b5f523360045260245ffd5b34610175575f366003190112610175576105fc6111db565b600180546001600160a01b03199081169091555f80549182168155906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610175576020366003190112610175576001600160a01b036106686109e8565b165f526004602052602060405f2054604051908152f35b34610175575f366003190112610175576020600654604051908152f35b34610175575f36600319011261017557602060405160068152f35b34610175576040366003190112610175576106d06109e8565b60243567ffffffffffffffff8116809103610175576106ed6111db565b6001600160a01b0382165f8181526004602052604081205491939091801561087a575b5f8051602061159a8339815191525460405163f953e42760e01b8152600481019290925260248201859052600160f81b6044830152909260209184916064918391906001600160a01b03165af1801561038f575f90610846575b61078c9250845f5260046020528060405f20556107873082611476565b611476565b815f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602060405183198152a3600154908067ffffffffffffffff8360a01c16019067ffffffffffffffff82116108325767ffffffffffffffff60a01b1990921660a09190911b67ffffffffffffffff60a01b16176001556040519081527f9109de113672aaca72ede8bc906f7aafabee865311ac020fb15c71edf94a0a0190602090a2005b634e487b7160e01b5f52601160045260245ffd5b506020823d602011610872575b8161086060209383610a89565b810103126101755761078c915161076a565b3d9150610853565b506020610885611543565b9050610710565b346101755760603660031901126101755760206102526108aa6109e8565b6108b26109fe565b60443591610b14565b34610175575f36600319011261017557602067ffffffffffffffff60015460a01c16604051908152f35b346101755760403660031901126101755760206102526109036109e8565b60243590610abf565b34610175575f366003190112610175575f6002548060011c906001811680156109ba575b6020831081146104fd578285529081156104d9575060011461095c576104778361046381850382610a89565b91905060025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace915f905b8082106109a057509091508101602001610463610453565b919260018160209254838588010152019101909291610988565b91607f1691610930565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361017557565b602435906001600160a01b038216820361017557565b9181601f840112156101755782359167ffffffffffffffff8311610175576020838186019501011161017557565b6060600319820112610175576004356001600160a01b03811681036101755791602435916044359067ffffffffffffffff821161017557610a8591600401610a14565b9091565b90601f8019910116810190811067ffffffffffffffff821117610aab57604052565b634e487b7160e01b5f52604160045260245ffd5b90610ad490610acd81610eed565b8233610f9f565b6040515f1981526001600160a01b039091169033907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590602090a3600190565b91610b1e81610eed565b6001600160a01b0383165f81815260056020908152604080832033845290915290205493909290610b4f8584611301565b9360ff7f00000000000000000000000000000000000000000000000000000000000000001694856002116102905760076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5460025f9081527fb7c774451310d1be4108bc180d1b52823cb0ee0274a6c0081bcaf94f115fb96d54909391610bda9190846114f1565b9083526004602052610bf0604084205487611301565b96602060018060a01b035f8051602061159a83398151915254166024604051809781936309c00ffd60e11b83528d60048401525af193841561038f575f94610da9575b505f8051602061159a83398151915254604051630ccd46b160e31b81526004810195909552602485018490525f6044860181905260209186916064918391906001600160a01b03165af193841561038f575f94610d75575b5060011161029057610cb0610cc49160209460015f526007865260405f2054906114f1565b610cb9816113b4565b506103528582611476565b606460018060a01b035f8051602061159a8339815191525416965f6040519889948593630ccd46b160e31b8552600485015260248401528160448401525af193841561038f575f94610d3d575b50610d33610d2c86610d2686610d38996113e1565b876114f1565b3383610f9f565b61101c565b600190565b9493506020853d602011610d6d575b81610d5960209383610a89565b810103126101755793519293610d33610d11565b3d9150610d4c565b9093506020813d602011610da1575b81610d9160209383610a89565b810103126101755751925f610c8b565b3d9150610d84565b93506020843d602011610dd6575b81610dc460209383610a89565b81010312610175579251926020610c33565b3d9150610db7565b92919267ffffffffffffffff8211610aab5760405191610e08601f8201601f191660200184610a89565b829481845281830111610175578281602093845f960137010152565b90610e2e81610eed565b335f526004602052610e4460405f205482611301565b9060ff7f0000000000000000000000000000000000000000000000000000000000000000166001116102905760076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5460015f527fb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b82854610d389491610ee7918391610ed39190876114f1565b610edc816113b4565b506107873382611476565b3361101c565b7fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea60054604051632fd514cd60e11b81526004810192909252336024830152602090829060449082906001600160a01b03165afa90811561038f575f91610f64575b5015610f5557565b632fa38b3f60e01b5f5260045ffd5b90506020813d602011610f97575b81610f7f60209383610a89565b8101031261017557518015158103610175575f610f4d565b3d9150610f72565b6001600160a01b0381169392908415611009576001600160a01b038316948515610ff65790610ff49495610787925f52600560205260405f20905f526020528260405f2055610fee3084611476565b82611476565b565b85634a1406b160e11b5f5260045260245ffd5b8463e602df0560e01b5f5260045260245ffd5b91926001600160a01b038316929083156111c8576001600160a01b0383169485156111b557906110549161104e611543565b916114f1565b91845f5260046020525f602060408220548581156111a5575b8615611197575b5f8051602061159a8339815191525460405163f953e42760e01b8152600480820194909452848101909301919091526001600160f81b0319841660448301529092839160649183916001600160a01b03165af190811561038f575f91611161575b50926110fc61110e92856111269650885f5260046020528060405f20556107873082611476565b845f52600460205260405f20546113e1565b835f5260046020528060405f20556107873082611476565b6006545f1981019081116108325760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91604051908152a3565b9390506020843d60201161118f575b8161117d60209383610a89565b810103126101755792516110fc6110d5565b3d9150611170565b506111a0611543565b611074565b90506111af611543565b9061106d565b8563ec442f0560e01b5f5260045260245ffd5b83634b637e8f60e11b5f5260045260245ffd5b5f546001600160a01b031633036105d157565b61123d9160209160018060a01b035f8051602061159a8339815191525416905f6040518096819582946302e817ff60e41b845260048401523360248401526080604484015260848301906109c4565b600560f81b606483015203925af190811561038f575f916112cf575b507fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600546001600160a01b0316803b15610175576040516346ce4e4960e11b815260048101839052336024820152905f908290604490829084905af1801561038f576112c2575090565b5f6112cc91610a89565b90565b90506020813d6020116112f9575b816112ea60209383610a89565b8101031261017557515f611259565b3d91506112dd565b9081156113a4575b8015611392575b602090606460018060a01b035f8051602061159a8339815191525416935f60405195869485936334a6d7b960e11b8552600485015260248401528160448401525af190811561038f575f91611363575090565b90506020813d60201161138a575b8161137e60209383610a89565b81010312610175575190565b3d9150611371565b50602061139d611543565b9050611310565b90506113ae611543565b90611309565b60065491905f19831461083257610ff49060018401600655835f5260086020528060405f20553090611476565b6020905f928115611466575b8015611458575b5f8051602061159a83398151915254604051638c14cc2160e01b8152600480820194909452848101909301919091526001600160f81b0319841660448301529092839160649183916001600160a01b03165af190811561038f575f91611363575090565b50611461611543565b6113f4565b9050611470611543565b906113ed565b7fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600546001600160a01b031691823b1561017557604051631974142760e21b815260048101929092526001600160a01b03166024820152905f908290604490829084905af1801561038f576114e75750565b5f610ff491610a89565b9060646020925f60018060a01b035f8051602061159a8339815191525416604051968795869463cb3b940760e01b86526004860152602485015260448401525af190811561038f575f91611363575090565b5f8051602061159a83398151915254604051631ce2e8d760e31b81525f60048201819052600560f81b60248301529091602091839160449183916001600160a01b03165af190811561038f575f9161136357509056feed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea601a264697066735822122092618fe96464edefcc349acd12bdbe8a8c3cb5d6f5a1fdab3cee77351b340eff64736f6c634300081a0033","sourceMap":"493:427:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;493:427:4;;;;;;:::i;:::-;1500:62:28;;:::i;:::-;493:427:4;;;;;;;;;;1738:24:29;493:427:4;;;1738:24:29;493:427:4;;;;;;;;;1777:43:29;493:427:4;1777:43:29;;493:427:4;;;;;;;;;;;-1:-1:-1;;493:427:4;;;;;;;;-1:-1:-1;;;;;493:427:4;;;;;;;;;;;;;;-1:-1:-1;;493:427:4;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;493:427:4;;;;;;;7824:11:14;493:427:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1877:61:14;493:427:4;1894:43:14;493:427:4;;;:::i;:::-;;;;;;;;:::i;:::-;1894:43:14;;:::i;:::-;1877:61;;:::i;:::-;;493:427:4;;;1955:4:14;493:427:4;;;;;;;;;-1:-1:-1;;493:427:4;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;493:427:4;;;;;;8215:13:20;493:427:4;8204:24:20;;;8200:81;;493:427:4;;8303:18:20;493:427:4;;;;;;;;;;;;;8200:81:20;8251:19;;;493:427:4;8251:19:20;493:427:4;;8251:19:20;493:427:4;;;;;;-1:-1:-1;;493:427:4;;;;;;;;;;;;;;1104:10:1;493:427:4;;;;;;;;;2482:22:157;;;212168:64;;493:427:4;-1:-1:-1;;;;;;;;;;;493:427:4;;;-1:-1:-1;;;5706:65:156;;493:427:4;5706:65:156;;493:427:4;;;;;;;;;;;-1:-1:-1;;;493:427:4;;;;;;;;;;;;;;-1:-1:-1;;;;;493:427:4;5706:65:156;;;;;;493:427:4;5706:65:156;;;493:427:4;5697:74:156;370021:7:157;5697:74:156;1104:10:1;;493:427:4;;;;;;;;;;370832:13:157;370840:4;370832:13;;:::i;:::-;1104:10:1;370021:7:157;;:::i;:::-;493:427:4;5706:65:156;;493:427:4;5706:65:156;;493:427:4;5706:65:156;;;;;;493:427:4;5706:65:156;;;:::i;:::-;;;493:427:4;;;;370021:7:157;493:427:4;;5706:65:156;;;;;-1:-1:-1;5706:65:156;;;493:427:4;;;;;;;;;212168:64:157;344922:44;;493:427:4;344922:44:157;;:::i;:::-;212168:64;;;;;493:427:4;;;;;;-1:-1:-1;;493:427:4;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;3273:43:14;493:427:4;;3250:67:14;493:427:4;;;;;;:::i;:::-;;;;:::i;:::-;;;3273:43:14;:::i;:::-;3250:67;;:::i;493:427:4:-;;;;;;-1:-1:-1;;493:427:4;;;;;;;4609:7:14;493:427:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;4609:7:14;493:427:4;;;;;;;;;;;;-1:-1:-1;493:427:4;;-1:-1:-1;493:427:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;493:427:4;;;;;;;;;;;;;;;;;;;;-1:-1:-1;493:427:4;;-1:-1:-1;493:427:4;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;493:427:4;;;;;;;;-1:-1:-1;;;;;493:427:4;;;;;;;;;;;;2512:57:14;493:427:4;2525:43:14;493:427:4;;;:::i;2525:43:14:-;2512:57;;:::i;493:427:4:-;;;;;;-1:-1:-1;;493:427:4;;;;;;735:10:46;-1:-1:-1;;;;;493:427:4;;;2339:24:29;2335:96;;1311:13;493:427:4;;-1:-1:-1;;;;;;493:427:4;;;;;;-1:-1:-1;493:427:4;;735:10:46;493:427:4;;;;;;;-1:-1:-1;;;;;493:427:4;;3052:40:28;;-1:-1:-1;3052:40:28;493:427:4;2335:96:29;2386:34;;;493:427:4;2386:34:29;735:10:46;493:427:4;;;;2386:34:29;493:427:4;;;;;;-1:-1:-1;;493:427:4;;;;1500:62:28;;:::i;:::-;2093:20:29;493:427:4;;-1:-1:-1;;;;;;493:427:4;;;;;;-1:-1:-1;493:427:4;;;;;;;-1:-1:-1;;;;;;493:427:4;3052:40:28;-1:-1:-1;;3052:40:28;493:427:4;;;;;;;-1:-1:-1;;493:427:4;;;;-1:-1:-1;;;;;493:427:4;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;493:427:4;;;;;8596:13:20;493:427:4;;;;;;;;;;;;;-1:-1:-1;;493:427:4;;;;;;;4295:1:14;493:427:4;;;;;;;;;-1:-1:-1;;493:427:4;;;;;;:::i;:::-;;;;;;;;;;;1500:62:28;;:::i;:::-;-1:-1:-1;;;;;493:427:4;;;;;;;;;;;;;;;;;2482:22:157;;211624:64;;493:427:4;-1:-1:-1;;;;;;;;;;;493:427:4;;;-1:-1:-1;;;5329:65:156;;493:427:4;5329:65:156;;493:427:4;;;;;;;;;;-1:-1:-1;;;493:427:4;;;;;;;;;;;;;;;-1:-1:-1;;;;;493:427:4;5329:65:156;;;;;;493:427:4;5329:65:156;;;493:427:4;370021:7:157;5320:74:156;;493:427:4;;;;;;;;;;;370832:13:157;370840:4;370832:13;;:::i;:::-;370021:7;:::i;:::-;493:427:4;;5502:43:14;493:427:4;;;950:17:14;;493:427:4;;5502:43:14;211757:4:157;493:427:4;;;;;;;;;;;;;;;-1:-1:-1;;;;493:427:4;;;;;;;;-1:-1:-1;;;493:427:4;;211757:4:157;493:427:4;;;;;;1682:16:19;;493:427:4;;1682:16:19;493:427:4;;;;;;;;;;;;;5329:65:156;;493:427:4;5329:65:156;;493:427:4;5329:65:156;;;;;;493:427:4;5329:65:156;;;:::i;:::-;;;493:427:4;;;;370021:7:157;493:427:4;;5329:65:156;;;;;-1:-1:-1;5329:65:156;;211624:64:157;344922:44;493:427:4;344922:44:157;;:::i;:::-;211624:64;;;;493:427:4;;;;;;-1:-1:-1;;493:427:4;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;493:427:4;;;;;;4775:12:14;493:427:4;;;;;;;;;;;;;;;;-1:-1:-1;;493:427:4;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;493:427:4;;;;;4448:5:14;493:427:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;4448:5:14;493:427:4;;;;;;;;;;;;-1:-1:-1;493:427:4;;-1:-1:-1;493:427:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;493:427:4;;;;;;;;-1:-1:-1;;493:427:4;;;;:::o;:::-;;;;-1:-1:-1;;;;;493:427:4;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;493:427:4;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;493:427:4;;;;;;;-1:-1:-1;;;;;493:427:4;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;493:427:4;;;;;-1:-1:-1;493:427:4;2037:282:14;;2231:6;2037:282;2153:6;;;:::i;:::-;2186:10;;2231:6;:::i;:::-;493:427:4;;-1:-1:-1;;493:427:4;;-1:-1:-1;;;;;493:427:4;;;;2186:10:14;;2253:38;;493:427:4;;2253:38:14;2308:4;2037:282;:::o;2315:337:18:-;;2454:6;;;:::i;:::-;-1:-1:-1;;;;;493:427:4;;-1:-1:-1;493:427:4;;;7824:11:14;493:427:4;;;;;;;;2489:10:18;493:427:4;;;;;;;;;;;;3633:33:18;493:427:4;3633:33:18;;:::i;:::-;3695:75;493:427:4;6306:25:20;493:427:4;6294:37:20;;3736:32:18;6294:37:20;6290:94;;6429:21;493:427:4;;;;3736:32:18;-1:-1:-1;493:427:4;;;;;-1:-1:-1;;493:427:4;325937:72:157;;493:427:4;325937:72:157;;:::i;:::-;493:427:4;;;3877:9:18;493:427:4;;3861:33:18;493:427:4;;;;3861:33:18;;:::i;:::-;493:427:4;;;;;;;-1:-1:-1;;;;;;;;;;;493:427:4;;12663:47:156;493:427:4;;;;;;;;;12663:47:156;;;3877:9:18;12663:47:156;;493:427:4;12663:47:156;;;;;;;-1:-1:-1;12663:47:156;;;2315:337:18;-1:-1:-1;;;;;;;;;;;;493:427:4;;;-1:-1:-1;;;6980:68:156;;3877:9:18;6980:68:156;;493:427:4;;;;12663:47:156;493:427:4;;;;;-1:-1:-1;493:427:4;;;;;;;;;;6980:68:156;;493:427:4;;-1:-1:-1;;;;;;493:427:4;6980:68:156;;;;;;;-1:-1:-1;6980:68:156;;;2315:337:18;3203:37:20;493:427:4;3203:37:20;3199:94;;325937:72:157;370021:7;493:427:4;;;;-1:-1:-1;493:427:4;6429:21:20;493:427:4;;;-1:-1:-1;493:427:4;;325937:72:157;;:::i;:::-;4370:21:18;;;:::i;:::-;;370021:7:157;;;;:::i;:::-;6980:68:156;493:427:4;;;;;-1:-1:-1;;;;;;;;;;;493:427:4;;;-1:-1:-1;493:427:4;;;;;;;;;;6980:68:156;;3877:9:18;6980:68:156;;493:427:4;12663:47:156;493:427:4;;;;;;;;6980:68:156;;;;;;;-1:-1:-1;6980:68:156;;;2315:337:18;4597:34;4569:81;325937:72:157;4597:34:18;;;2609:14;4597:34;;:::i;:::-;325937:72:157;;:::i;:::-;2489:10:18;4569:81;;:::i;:::-;2609:14;:::i;:::-;493:427:4;2315:337:18;:::o;6980:68:156:-;;;;493:427:4;6980:68:156;;493:427:4;6980:68:156;;;;;;493:427:4;6980:68:156;;;:::i;:::-;;;493:427:4;;;;;;6980:68:156;;4569:81:18;6980:68:156;;;;;-1:-1:-1;6980:68:156;;;;;;493:427:4;6980:68:156;;493:427:4;6980:68:156;;;;;;493:427:4;6980:68:156;;;:::i;:::-;;;493:427:4;;;;;6980:68:156;;;;;;;-1:-1:-1;6980:68:156;;12663:47;;;493:427:4;12663:47:156;;493:427:4;12663:47:156;;;;;;493:427:4;12663:47:156;;;:::i;:::-;;;493:427:4;;;;;;;;12663:47:156;;;;;-1:-1:-1;12663:47:156;;493:427:4;;;;;;;;;;;;;;;;-1:-1:-1;;493:427:4;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;493:427:4;;;;;;:::o;1691:548:18:-;;1812:6;;;:::i;:::-;1935:10;-1:-1:-1;493:427:4;1925:9:18;493:427:4;;1909:38:18;493:427:4;-1:-1:-1;493:427:4;;1909:38:18;;:::i;:::-;1976:70;493:427:4;6306:25:20;493:427:4;2013:31:18;6294:37:20;6290:94;;6429:21;493:427:4;;;;2013:31:18;-1:-1:-1;493:427:4;;;2199:11:18;;493:427:4;370021:7:157;;493:427:4;;325937:72:157;;493:427:4;325937:72:157;;:::i;:::-;2056:21:18;;;:::i;:::-;;370021:7:157;1935:10:18;370021:7:157;;:::i;:::-;1935:10:18;2199:11;:::i;7864:178:14:-;4586:62:156;493:427:4;;;-1:-1:-1;;;16241:45:156;;;;;493:427:4;;;;368839:10:157;493:427:4;;;;16241:45:156;;493:427:4;;;;;;-1:-1:-1;;;;;493:427:4;16241:45:156;;;;;;;-1:-1:-1;16241:45:156;;;7864:178:14;7951:29;;7947:89;;7864:178::o;7947:89::-;8003:22;;;-1:-1:-1;8003:22:14;16241:45:156;-1:-1:-1;8003:22:14;16241:45:156;;;;;;;;;;;;;;;;;:::i;:::-;;;493:427:4;;;;;;;;;;;;16241:45:156;;;;;;-1:-1:-1;16241:45:156;;4800:431:14;-1:-1:-1;;;;;493:427:4;;;4800:431:14;;4897:19;;4893:84;;-1:-1:-1;;;;;493:427:4;;;4991:21:14;;4987:87;;493:427:4;370021:7:157;493:427:4;;370021:7:157;493:427:4;4914:1:14;493:427:4;5084:11:14;493:427:4;;;4914:1:14;493:427:4;5084:27:14;-1:-1:-1;493:427:4;;;;;-1:-1:-1;493:427:4;;370832:13:157;370840:4;370832:13;;:::i;:::-;370021:7;;:::i;:::-;4800:431:14:o;4987:87::-;5035:28;;;;4914:1;5035:28;;493:427:4;;4914:1:14;5035:28;4893:84;4939:27;;;;4914:1;4939:27;;493:427:4;;4914:1:14;4939:27;3034:276:18;;;-1:-1:-1;;;;;493:427:4;;;3034:276:18;6337:18:14;;6333:80;;-1:-1:-1;;;;;493:427:4;;;6427:16:14;;6423:78;;344922:44:157;325937:72;344922:44;;;:::i;:::-;325937:72;;:::i;:::-;493:427:4;;6353:1:14;493:427:4;6716:9:14;493:427:4;;6353:1:14;493:427:4;;;;;6707:38:14;;2482:22:157;196412:64;;3034:276:18;2482:22:157;;196485:64;;3034:276:18;-1:-1:-1;;;;;;;;;;;493:427:4;;;-1:-1:-1;;;5329:65:156;;6716:9:14;5329:65:156;;;493:427:4;;;;;;;;;;;;;;-1:-1:-1;;;;;;493:427:4;;;;;;;;;;;;;;-1:-1:-1;;;;;493:427:4;5329:65:156;;;;;;;6353:1:14;5329:65:156;;;3034:276:18;5320:74:156;;370021:7:157;6894:40:14;5320:74:156;;370021:7:157;5320:74:156;493:427:4;;6353:1:14;493:427:4;6716:9:14;493:427:4;;;;6353:1:14;493:427:4;;370832:13:157;370840:4;370832:13;;:::i;370021:7::-;493:427:4;6353:1:14;493:427:4;6716:9:14;493:427:4;;;6353:1:14;493:427:4;;6894:40:14;:::i;:::-;493:427:4;6353:1:14;493:427:4;6716:9:14;493:427:4;;;;6353:1:14;493:427:4;;370832:13:157;370840:4;370832:13;;:::i;370021:7::-;8596:13:20;493:427:4;-1:-1:-1;;493:427:4;;;;;;;;3261:42:18;493:427:4;;;;;;3261:42:18;3034:276::o;5329:65:156:-;;;;493:427:4;5329:65:156;;493:427:4;5329:65:156;;;;;;493:427:4;5329:65:156;;;:::i;:::-;;;493:427:4;;;;;;370021:7:157;5329:65:156;;;;;-1:-1:-1;5329:65:156;;196485:64:157;344922:44;;;:::i;:::-;196485:64;;196412;344922:44;;;;:::i;:::-;196412:64;;;6423:78:14;6466:24;;;;6353:1;6466:24;;493:427:4;;6353:1:14;6466:24;6333:80;6378:24;;;;6353:1;6378:24;;493:427:4;;6353:1:14;6378:24;1796:162:28;1710:6;493:427:4;-1:-1:-1;;;;;493:427:4;735:10:46;1855:23:28;1851:101;;1796:162::o;344561:198:157:-;493:427:4;344561:198:157;493:427:4;344561:198:157;493:427:4;;;;;-1:-1:-1;;;;;;;;;;;493:427:4;;;-1:-1:-1;493:427:4;;;;;;;;;;;13336:164:156;;;;;493:427:4;13428:10:156;493:427:4;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;493:427:4;;;;13336:164:156;;;;;;;;;-1:-1:-1;13336:164:156;;;344561:198:157;-1:-1:-1;4586:62:156;493:427:4;-1:-1:-1;;;;;493:427:4;13510:53:156;;;;;493:427:4;;-1:-1:-1;;;13510:53:156;;13336:164;13510:53;;493:427:4;;;13428:10:156;493:427:4;;;;;-1:-1:-1;;493:427:4;;;;;;-1:-1:-1;;13510:53:156;;;;;;;;344662:90:157;344561:198;:::o;13510:53:156:-;-1:-1:-1;13510:53:156;;;:::i;:::-;344561:198:157;:::o;13336:164:156:-;;;493:427:4;13336:164:156;;493:427:4;13336:164:156;;;;;;493:427:4;13336:164:156;;;:::i;:::-;;;493:427:4;;;;;13336:164:156;;;;;;-1:-1:-1;13336:164:156;;199848:293:157;;2482:22;;199917:64;;199848:293;2482:22;;199990:64;;199848:293;493:427:4;;11129:64:156;493:427:4;;;;;-1:-1:-1;;;;;;;;;;;493:427:4;;;-1:-1:-1;493:427:4;;;;;;;;;;11129:64:156;;;;;493:427:4;;;;;;;;;;11129:64:156;;;;;;;-1:-1:-1;11129:64:156;;;200063:71:157;199848:293;:::o;11129:64:156:-;;;493:427:4;11129:64:156;;493:427:4;11129:64:156;;;;;;493:427:4;11129:64:156;;;:::i;:::-;;;493:427:4;;;;;199848:293:157;:::o;11129:64:156:-;;;-1:-1:-1;11129:64:156;;199990::157;344922:44;493:427:4;344922:44:157;;:::i;:::-;199990:64;;;;199917;344922:44;;;;:::i;:::-;199917:64;;;6796:231:20;6897:13;493:427:4;;6796:231:20;-1:-1:-1;;493:427:4;;;;370832:13:157;493:427:4;;;;6897:13:20;493:427:4;;-1:-1:-1;493:427:4;6945:18:20;493:427:4;;;;-1:-1:-1;493:427:4;;370840:4:157;370832:13;;:::i;196694:299::-;5706:65:156;196694:299:157;-1:-1:-1;196694:299:157;2482:22;;196766:64;;196694:299;2482:22;;196839:64;;196694:299;-1:-1:-1;;;;;;;;;;;493:427:4;;;-1:-1:-1;;;5706:65:156;;;;;;493:427:4;;;;;;;;;;;;;;-1:-1:-1;;;;;;493:427:4;;;;;;;;;;;;;;-1:-1:-1;;;;;493:427:4;5706:65:156;;;;;;;-1:-1:-1;5706:65:156;;;5697:74;196694:299:157;:::o;196839:64::-;344922:44;;;:::i;:::-;196839:64;;196766;344922:44;;;;:::i;:::-;196766:64;;;15747:171:156;4586:62;493:427:4;-1:-1:-1;;;;;493:427:4;;15870:41:156;;;;;493:427:4;;-1:-1:-1;;;15870:41:156;;;;;493:427:4;;;;-1:-1:-1;;;;;493:427:4;;;;;;-1:-1:-1;;493:427:4;;;;;;-1:-1:-1;;15870:41:156;;;;;;;;15747:171;:::o;15870:41::-;-1:-1:-1;15870:41:156;;;:::i;12887:258::-;;13062:76;493:427:4;12887:258:156;-1:-1:-1;493:427:4;;;;;-1:-1:-1;;;;;;;;;;;493:427:4;;;;;;;;;;;;13062:76:156;;;;;493:427:4;;;;;;;;;13062:76:156;;;;;;;-1:-1:-1;13062:76:156;;;13053:85;12887:258;:::o;13815:243::-;-1:-1:-1;;;;;;;;;;;493:427:4;;;-1:-1:-1;;;13977:74:156;;493:427:4;13977:74:156;;;493:427:4;;;-1:-1:-1;;;493:427:4;;;;;;;;;;13977:74:156;;493:427:4;;-1:-1:-1;;;;;493:427:4;13977:74:156;;;;;;;493:427:4;13977:74:156;;;13968:83;13815:243;:::o","linkReferences":{},"immutableReferences":{"7195":[{"start":2900,"length":32},{"start":3657,"length":32}]}},"methodIdentifiers":{"acceptOwnership()":"79ba5097","allowance(address,address)":"dd62ed3e","approve(address,bytes32,bytes)":"b32c1001","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint64)":"9dbead42","decimals()":"313ce567","errorGetCounter()":"67a74a28","getErrorCodeForTransferId(uint256)":"a5184baf","mint(address,uint64)":"2893c5b0","name()":"06fdde03","owner()":"8da5cb5b","pendingOwner()":"e30c3978","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,bytes32,bytes)":"7b7e0a5a","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,bytes32,bytes)":"9a094352","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorIndexInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorIndexIsNull\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TFHESenderNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TotalNumberErrorCodesEqualToZero\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"placeholder\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"transferId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"euint64\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"euint64\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"einput\",\"name\":\"encryptedAmount\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"inputProof\",\"type\":\"bytes\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"euint64\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"errorGetCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"errorsCount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"transferId\",\"type\":\"uint256\"}],\"name\":\"getErrorCodeForTransferId\",\"outputs\":[{\"internalType\":\"euint8\",\"name\":\"errorCode\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"einput\",\"name\":\"encryptedAmount\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"inputProof\",\"type\":\"bytes\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"euint64\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"euint64\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"einput\",\"name\":\"encryptedAmount\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"inputProof\",\"type\":\"bytes\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"It supports typical ERC20 functionality such as transferring tokens, minting, and setting allowances,but uses encrypted data types.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"params\":{\"owner\":\"Owner address.\",\"placeholder\":\"Placeholder.\",\"spender\":\"Spender address.\"}},\"Transfer(address,address,uint256)\":{\"params\":{\"from\":\"Sender address.\",\"to\":\"Receiver address.\",\"transferId\":\"If the implementation does not support error handling, it must be set to a default placeholder (typically equal to max(uint256). However, it must be set to a transferId if the implementation supports encrypted error handling.\"}}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"constructor\":{\"params\":{\"name_\":\"The name of the token\",\"symbol_\":\"The symbol of the token\"}},\"getErrorCodeForTransferId(uint256)\":{\"params\":{\"transferId\":\"Transfer id. It can be read from the `Transfer` event.\"},\"returns\":{\"errorCode\":\" Encrypted error code.\"}},\"mint(address,uint64)\":{\"params\":{\"amount\":\"Amount of tokens to mint.\",\"to\":\"Address to mint tokens to.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer.\"}},\"version\":1},\"userdoc\":{\"errors\":{\"ErrorIndexInvalid()\":[{\"notice\":\"Returned if the error index is invalid.\"}],\"ErrorIndexIsNull()\":[{\"notice\":\"Returned if the error index is null.\"}],\"TFHESenderNotAllowed()\":[{\"notice\":\"Returned when the `sender` is not allowed to access a value.\"}],\"TotalNumberErrorCodesEqualToZero()\":[{\"notice\":\"Returned if the total number of errors is equal to zero.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"notice\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}.\"},\"Burn(address,uint64)\":{\"notice\":\"Emitted when `amount` tokens are minted to one account (`to`).\"},\"Mint(address,uint64)\":{\"notice\":\"Emitted when `amount` tokens are minted to one account (`to`).\"},\"Transfer(address,address,uint256)\":{\"notice\":\"Emitted when tokens are moved from one account (`from`) to another (`to`).\"}},\"kind\":\"user\",\"methods\":{\"allowance(address,address)\":{\"notice\":\"See {IConfidentialERC20-allowance}.\"},\"approve(address,bytes32,bytes)\":{\"notice\":\"See {IConfidentialERC20-approve}.\"},\"approve(address,uint256)\":{\"notice\":\"See {IConfidentialERC20-approve}.\"},\"balanceOf(address)\":{\"notice\":\"See {IConfidentialERC20-balanceOf}.\"},\"constructor\":{\"notice\":\"Constructor to initialize the token's name and symbol, and set up the owner\"},\"decimals()\":{\"notice\":\"See {IConfidentialERC20-decimals}.\"},\"getErrorCodeForTransferId(uint256)\":{\"notice\":\"Return the error for a transfer id.\"},\"mint(address,uint64)\":{\"notice\":\"Mint tokens.\"},\"name()\":{\"notice\":\"See {IConfidentialERC20-name}.\"},\"symbol()\":{\"notice\":\"See {IConfidentialERC20-symbol}.\"},\"totalSupply()\":{\"notice\":\"See {IConfidentialERC20-totalSupply}.\"},\"transfer(address,bytes32,bytes)\":{\"notice\":\"See {IConfidentialERC20-transfer}.\"},\"transfer(address,uint256)\":{\"notice\":\"See {IConfidentialERC20-transfer}.\"},\"transferFrom(address,address,bytes32,bytes)\":{\"notice\":\"See {IConfidentialERC20-transferFrom}.\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"See {IConfidentialERC20-transferFrom}.\"}},\"notice\":\"This contract implements an encrypted ERC20-like token with confidential balances using Zama's FHE library.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/IndexFundToken.sol\":\"IndexFundToken\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@chainlink/=lib/chainlink/\",\":@ensdomains/=lib/v4-core/node_modules/@ensdomains/\",\":@httpz-contracts/=lib/httpz-contracts/contracts/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/universal-router/=lib/universal-router.git/\",\":@uniswap/v2-core/=lib/v2-core/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/\",\":@uniswap/v4-core/=lib/v4-core/\",\":@uniswap/v4-periphery/=lib/v4-periphery/\",\":chainlink/=lib/chainlink/\",\":ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":fhevm-contracts/=node_modules/fhevm-contracts/\",\":fhevm-core-contracts/=node_modules/fhevm-core-contracts/\",\":fhevm/=node_modules/fhevm/\",\":forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":httpz-contracts/=lib/httpz-contracts/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":permit2/=lib/permit2/\",\":solmate/=lib/permit2/lib/solmate/\",\":universal-router.git/=lib/universal-router.git/\",\":v2-core/=lib/v2-core/contracts/\",\":v3-core/=lib/v3-core/\",\":v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/\",\":v4-core/=lib/v4-core/src/\",\":v4-periphery/=lib/v4-periphery/\"],\"viaIR\":true},\"sources\":{\"contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol\":{\"keccak256\":\"0x08ddec3305fabf65ffe2c18949b1b18f4ce0aeafd7bb8f68faecf4da9bfa18ab\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://e73a281abe6706aa53fc031839d0fcb73c028f0be2c2ad5428aa4880ca072805\",\"dweb:/ipfs/QmZc9KQXzYstBAKKPye7w5W3jBX1a56G9kCAPs58nkHvFg\"]},\"contracts/IndexFundToken.sol\":{\"keccak256\":\"0x42961a70f9142f4e63aaf154379b9023cacca1fd43b6514678eaee59f8fb9890\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://ef1350bcd4141746855a9226d633ad4ac1be64c24d8b5ca8a1e09a7c0064d191\",\"dweb:/ipfs/QmVAK66Y1euBYi18MuSRsUP642x7BhoFQFEkQaUifPvdAX\"]},\"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol\":{\"keccak256\":\"0x8b45e5bb2fd9212f99e61b4d25b9c9d5ed7cb1a9a684aac34f752c568ef16c76\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://1ca71bb5bfbb2f8a0779f8394baeea01680619637abddb572017d05d96862591\",\"dweb:/ipfs/QmPCzGBE1m6WtDZxrVL5jzkduNaS7fjtYovUWdnzN34qjh\"]},\"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol\":{\"keccak256\":\"0xe016a085f72ca3cf6d78ec1cb2182a398106cb7d425e984776a9caab0bad2569\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://3e79dc5075469d660908f5f8b6d0c863b14459d60a0b06fb786d58de8cf30a94\",\"dweb:/ipfs/QmePGRGtoWBnQ8T6ZRyZgiwVh4r67kcmWejwKgjyYN4AAY\"]},\"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol\":{\"keccak256\":\"0xfe322c8f9a8e4fba881715901a5bafd2efa23394ecbc9ec84282818baeff0a07\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://13dba831528dd16408b7abab23eac0664a2a3e5ecbfe5e58e6e321cf2921668a\",\"dweb:/ipfs/QmPq4YeugbayWfeBJR8H7s4jHsnZkACQX2xbdNQ4sdvZrk\"]},\"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol\":{\"keccak256\":\"0xecc6289a9791bef254911393b51d2bfbddc5650ede7fbe7b5cc2b8d3eb01d7a6\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://7463278a20bc5d7fd8b7ec2cb8e592b2d1e0afcf8b59d35d6929d18661d4b38c\",\"dweb:/ipfs/QmTKPoABwNDmK7g7vkti1AkTpkUBHu3iX3zsXQsEuSiqBM\"]},\"lib/httpz-contracts/contracts/utils/EncryptedErrors.sol\":{\"keccak256\":\"0x0b8d08f392884add1af672018359e8980ee0b5e1662fe5e36eb31f053d1d4505\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://2903dd49a88b36aba2e8a45548b6a68d203887356ebdf452b10e0148954ba1a5\",\"dweb:/ipfs/QmTRuP4QXagoV2cLr2ctzFtNK7FK1cDXMYm4feMoMsYoWG\"]},\"lib/httpz-contracts/contracts/utils/TFHEErrors.sol\":{\"keccak256\":\"0x5fef7c2d7d4449d724a2800b37dfcc61e2b635f2747378ce222b9187425f2d13\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://7c2ef113faaec2d74c8d958f80687d0b676082d6231720917aaa8aa934d689a3\",\"dweb:/ipfs/QmNn474JDQ5zvVDwEuicJs6Xq8YEXWGZLoW4KeTWDVG31f\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol\":{\"keccak256\":\"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0\",\"dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/fhevm/config/ZamaFHEVMConfig.sol\":{\"keccak256\":\"0x41782f4c707b81399916544fa2e7be94a695fa4ba468542732d29d3e383c0315\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://45a95a55c4bbb3418c2133cba6ed21a9444bb4e38d38b32cc707b7493cece2ca\",\"dweb:/ipfs/QmVU8EKmZgscdM43RgXD4EgbVMhQxBusTmBren3pbn1pUW\"]},\"node_modules/fhevm/lib/Impl.sol\":{\"keccak256\":\"0x89d4968cd956a8931f1a8a177b3bef1c6cf88a03665083db74430add50b88f21\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://aaaef2c82d56dacfb08946842ea1ce26757d13f3251de62fa79222232dfcb43c\",\"dweb:/ipfs/QmQ6QZPxJw9jb3qjRYCX7pMQVoYogjTsYgmdEnB3EnwFRy\"]},\"node_modules/fhevm/lib/TFHE.sol\":{\"keccak256\":\"0x221799c8332f83ab65a0b71746409f0c2c89f1cd8d9ba4091d967c667e1df734\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://2dba387fbc612a2ee64063b0ee6c27304b3944423d11045acc50abd84577fb5f\",\"dweb:/ipfs/QmThptDGnpd8PuncFk1rnQoCzEqwUED622yC9xZgFhwY59\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[],"type":"error","name":"ErrorIndexInvalid"},{"inputs":[],"type":"error","name":"ErrorIndexIsNull"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"TFHESenderNotAllowed"},{"inputs":[],"type":"error","name":"TotalNumberErrorCodesEqualToZero"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"placeholder","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint64","name":"amount","type":"uint64","indexed":false}],"type":"event","name":"Burn","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint64","name":"amount","type":"uint64","indexed":false}],"type":"event","name":"Mint","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferStarted","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"transferId","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"acceptOwnership"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"euint64","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"euint64","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"einput","name":"encryptedAmount","type":"bytes32"},{"internalType":"bytes","name":"inputProof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"euint64","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"amount","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"errorGetCounter","outputs":[{"internalType":"uint256","name":"errorsCount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"transferId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getErrorCodeForTransferId","outputs":[{"internalType":"euint8","name":"errorCode","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint64","name":"amount","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"einput","name":"encryptedAmount","type":"bytes32"},{"internalType":"bytes","name":"inputProof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"euint64","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"euint64","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"einput","name":"encryptedAmount","type":"bytes32"},{"internalType":"bytes","name":"inputProof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"constructor":{"params":{"name_":"The name of the token","symbol_":"The symbol of the token"}},"getErrorCodeForTransferId(uint256)":{"params":{"transferId":"Transfer id. It can be read from the `Transfer` event."},"returns":{"errorCode":" Encrypted error code."}},"mint(address,uint64)":{"params":{"amount":"Amount of tokens to mint.","to":"Address to mint tokens to."}},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer."}},"version":1},"userdoc":{"kind":"user","methods":{"allowance(address,address)":{"notice":"See {IConfidentialERC20-allowance}."},"approve(address,bytes32,bytes)":{"notice":"See {IConfidentialERC20-approve}."},"approve(address,uint256)":{"notice":"See {IConfidentialERC20-approve}."},"balanceOf(address)":{"notice":"See {IConfidentialERC20-balanceOf}."},"constructor":{"notice":"Constructor to initialize the token's name and symbol, and set up the owner"},"decimals()":{"notice":"See {IConfidentialERC20-decimals}."},"getErrorCodeForTransferId(uint256)":{"notice":"Return the error for a transfer id."},"mint(address,uint64)":{"notice":"Mint tokens."},"name()":{"notice":"See {IConfidentialERC20-name}."},"symbol()":{"notice":"See {IConfidentialERC20-symbol}."},"totalSupply()":{"notice":"See {IConfidentialERC20-totalSupply}."},"transfer(address,bytes32,bytes)":{"notice":"See {IConfidentialERC20-transfer}."},"transfer(address,uint256)":{"notice":"See {IConfidentialERC20-transfer}."},"transferFrom(address,address,bytes32,bytes)":{"notice":"See {IConfidentialERC20-transferFrom}."},"transferFrom(address,address,uint256)":{"notice":"See {IConfidentialERC20-transferFrom}."}},"version":1}},"settings":{"remappings":["@chainlink/=lib/chainlink/","@ensdomains/=lib/v4-core/node_modules/@ensdomains/","@httpz-contracts/=lib/httpz-contracts/contracts/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@uniswap/universal-router/=lib/universal-router.git/","@uniswap/v2-core/=lib/v2-core/","@uniswap/v3-core/=lib/v3-core/","@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/","@uniswap/v4-core/=lib/v4-core/","@uniswap/v4-periphery/=lib/v4-periphery/","chainlink/=lib/chainlink/","ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","eth-gas-reporter/=node_modules/eth-gas-reporter/","fhevm-contracts/=node_modules/fhevm-contracts/","fhevm-core-contracts/=node_modules/fhevm-core-contracts/","fhevm/=node_modules/fhevm/","forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","httpz-contracts/=lib/httpz-contracts/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","permit2/=lib/permit2/","solmate/=lib/permit2/lib/solmate/","universal-router.git/=lib/universal-router.git/","v2-core/=lib/v2-core/contracts/","v3-core/=lib/v3-core/","v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/","v4-core/=lib/v4-core/src/","v4-periphery/=lib/v4-periphery/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/IndexFundToken.sol":"IndexFundToken"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol":{"keccak256":"0x08ddec3305fabf65ffe2c18949b1b18f4ce0aeafd7bb8f68faecf4da9bfa18ab","urls":["bzz-raw://e73a281abe6706aa53fc031839d0fcb73c028f0be2c2ad5428aa4880ca072805","dweb:/ipfs/QmZc9KQXzYstBAKKPye7w5W3jBX1a56G9kCAPs58nkHvFg"],"license":"BSD-3-Clause-Clear"},"contracts/IndexFundToken.sol":{"keccak256":"0x42961a70f9142f4e63aaf154379b9023cacca1fd43b6514678eaee59f8fb9890","urls":["bzz-raw://ef1350bcd4141746855a9226d633ad4ac1be64c24d8b5ca8a1e09a7c0064d191","dweb:/ipfs/QmVAK66Y1euBYi18MuSRsUP642x7BhoFQFEkQaUifPvdAX"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol":{"keccak256":"0x8b45e5bb2fd9212f99e61b4d25b9c9d5ed7cb1a9a684aac34f752c568ef16c76","urls":["bzz-raw://1ca71bb5bfbb2f8a0779f8394baeea01680619637abddb572017d05d96862591","dweb:/ipfs/QmPCzGBE1m6WtDZxrVL5jzkduNaS7fjtYovUWdnzN34qjh"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol":{"keccak256":"0xe016a085f72ca3cf6d78ec1cb2182a398106cb7d425e984776a9caab0bad2569","urls":["bzz-raw://3e79dc5075469d660908f5f8b6d0c863b14459d60a0b06fb786d58de8cf30a94","dweb:/ipfs/QmePGRGtoWBnQ8T6ZRyZgiwVh4r67kcmWejwKgjyYN4AAY"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol":{"keccak256":"0xfe322c8f9a8e4fba881715901a5bafd2efa23394ecbc9ec84282818baeff0a07","urls":["bzz-raw://13dba831528dd16408b7abab23eac0664a2a3e5ecbfe5e58e6e321cf2921668a","dweb:/ipfs/QmPq4YeugbayWfeBJR8H7s4jHsnZkACQX2xbdNQ4sdvZrk"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol":{"keccak256":"0xecc6289a9791bef254911393b51d2bfbddc5650ede7fbe7b5cc2b8d3eb01d7a6","urls":["bzz-raw://7463278a20bc5d7fd8b7ec2cb8e592b2d1e0afcf8b59d35d6929d18661d4b38c","dweb:/ipfs/QmTKPoABwNDmK7g7vkti1AkTpkUBHu3iX3zsXQsEuSiqBM"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/utils/EncryptedErrors.sol":{"keccak256":"0x0b8d08f392884add1af672018359e8980ee0b5e1662fe5e36eb31f053d1d4505","urls":["bzz-raw://2903dd49a88b36aba2e8a45548b6a68d203887356ebdf452b10e0148954ba1a5","dweb:/ipfs/QmTRuP4QXagoV2cLr2ctzFtNK7FK1cDXMYm4feMoMsYoWG"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/utils/TFHEErrors.sol":{"keccak256":"0x5fef7c2d7d4449d724a2800b37dfcc61e2b635f2747378ce222b9187425f2d13","urls":["bzz-raw://7c2ef113faaec2d74c8d958f80687d0b676082d6231720917aaa8aa934d689a3","dweb:/ipfs/QmNn474JDQ5zvVDwEuicJs6Xq8YEXWGZLoW4KeTWDVG31f"],"license":"BSD-3-Clause-Clear"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol":{"keccak256":"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c","urls":["bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0","dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/fhevm/config/ZamaFHEVMConfig.sol":{"keccak256":"0x41782f4c707b81399916544fa2e7be94a695fa4ba468542732d29d3e383c0315","urls":["bzz-raw://45a95a55c4bbb3418c2133cba6ed21a9444bb4e38d38b32cc707b7493cece2ca","dweb:/ipfs/QmVU8EKmZgscdM43RgXD4EgbVMhQxBusTmBren3pbn1pUW"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/lib/Impl.sol":{"keccak256":"0x89d4968cd956a8931f1a8a177b3bef1c6cf88a03665083db74430add50b88f21","urls":["bzz-raw://aaaef2c82d56dacfb08946842ea1ce26757d13f3251de62fa79222232dfcb43c","dweb:/ipfs/QmQ6QZPxJw9jb3qjRYCX7pMQVoYogjTsYgmdEnB3EnwFRy"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/lib/TFHE.sol":{"keccak256":"0x221799c8332f83ab65a0b71746409f0c2c89f1cd8d9ba4091d967c667e1df734","urls":["bzz-raw://2dba387fbc612a2ee64063b0ee6c27304b3944423d11045acc50abd84577fb5f","dweb:/ipfs/QmThptDGnpd8PuncFk1rnQoCzEqwUED622yC9xZgFhwY59"],"license":"BSD-3-Clause-Clear"}},"version":1},"id":4} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"acceptOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"euint64"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"euint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"encryptedAmount","type":"bytes32","internalType":"einput"},{"name":"inputProof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"euint64"}],"stateMutability":"view"},{"type":"function","name":"balanceOfAllow","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"euint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"burn","inputs":[{"name":"amount","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"errorGetCounter","inputs":[],"outputs":[{"name":"errorsCount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getErrorCodeForTransferId","inputs":[{"name":"transferId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"errorCode","type":"uint256","internalType":"euint8"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pendingOwner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"encryptedAmount","type":"bytes32","internalType":"einput"},{"name":"inputProof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"euint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"euint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"encryptedAmount","type":"bytes32","internalType":"einput"},{"name":"inputProof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"placeholder","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Burn","inputs":[{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Mint","inputs":[{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferStarted","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"transferId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"ErrorIndexInvalid","inputs":[]},{"type":"error","name":"ErrorIndexIsNull","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"TFHESenderNotAllowed","inputs":[]},{"type":"error","name":"TotalNumberErrorCodesEqualToZero","inputs":[]}],"bytecode":{"object":"0x60a0806040523461040957611ea9803803809161001c828561066b565b83398101906040818303126104095780516001600160401b038111610409578261004791830161068e565b60208201519092906001600160401b03811161040957610067920161068e565b5f606060405161007681610650565b8281528260208201528260408201520152739d6891a6240d6130c54ae243d8005063d05fe14b60606040516100aa81610650565b73fee8407e2f5e3ee68ad77cae98c434e637f516e5815273687408ab54661ba0b4aef3a44156c616c6955e07602082015273fb03be574d14c256d56f09a198b586bdfc0a9de26040820152015273fee8407e2f5e3ee68ad77cae98c434e637f516e560018060a01b03195f80516020611e298339815191525416175f80516020611e298339815191525573687408ab54661ba0b4aef3a44156c616c6955e0760018060a01b03195f80516020611e698339815191525416175f80516020611e698339815191525573fb03be574d14c256d56f09a198b586bdfc0a9de260018060a01b03195f80516020611e898339815191525416175f80516020611e8983398151915255739d6891a6240d6130c54ae243d8005063d05fe14b60018060a01b03195f80516020611e498339815191525416175f80516020611e4983398151915255331561063d57600180546001600160a01b03199081169091555f805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a381516001600160401b03811161055057600254600181811c91168015610633575b602082101461053257601f81116105d0575b50602092601f821160011461056f57928192935f92610564575b50508160011b915f199060031b1c1916176002555b80516001600160401b03811161055057600354600181811c91168015610546575b602082101461053257601f81116104cf575b50602091601f821160011461046f579181925f92610464575b50508160011b915f199060031b1c1916176003555b5f5b60ff81169060028211610440575f80516020611e6983398151915254604051631ce2e8d760e31b815260048101849052600160f91b60248201529290602090849060449082905f906001600160a01b03165af19283156103fe575f9361040d575b505f9081526007602052604090208290555f80516020611e29833981519152546001600160a01b031691823b15610409575f92604484926040519586938492631974142760e21b845260048401523060248401525af19182156103fe5760ff926103ee575b501660ff81146103da57600101610302565b634e487b7160e01b5f52601160045260245ffd5b5f6103f89161066b565b5f6103c8565b6040513d5f823e3d90fd5b5f80fd5b9092506020813d8211610438575b816104286020938361066b565b810103126104095751915f610363565b3d915061041b565b600260805260405161174590816106e48239608051818181610c8d0152610f910152f35b015190505f806102eb565b601f1982169260035f52805f20915f5b8581106104b75750836001951061049f575b505050811b01600355610300565b01515f1960f88460031b161c191690555f8080610491565b9192602060018192868501518155019401920161047f565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c81019160208410610528575b601f0160051c01905b81811061051d57506102d2565b5f8155600101610510565b9091508190610507565b634e487b7160e01b5f52602260045260245ffd5b90607f16906102c0565b634e487b7160e01b5f52604160045260245ffd5b015190505f8061028a565b601f1982169360025f52805f20915f5b8681106105b857508360019596106105a0575b505050811b0160025561029f565b01515f1960f88460031b161c191690555f8080610592565b9192602060018192868501518155019401920161057f565b60025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace601f830160051c81019160208410610629575b601f0160051c01905b81811061061e5750610270565b5f8155600101610611565b9091508190610608565b90607f169061025e565b631e4fbdf760e01b5f525f60045260245ffd5b608081019081106001600160401b0382111761055057604052565b601f909101601f19168101906001600160401b0382119082101761055057604052565b81601f82011215610409578051906001600160401b03821161055057604051926106c2601f8401601f19166020018561066b565b8284526020838301011161040957815f9260208093018386015e830101529056fe6080806040526004361015610012575f80fd5b5f905f3560e01c90816306e928fd14610a575750806306fdde031461099a578063095ea7b31461097257806318160ddd1461094757806323b872dd146109175780632893c5b014610734578063313ce5671461071857806367a74a28146106fa57806370a08231146106c1578063715018a61461065c57806379ba5097146105d75780637b7e0a5a146105b95780638da5cb5b1461059257806395d89b41146104815780639a0943521461041f5780639dbead42146102ac578063a5184baf14610268578063a9059cbb14610236578063b32c1001146101fb578063dd62ed3e146101a8578063e30c39781461017f5763f2fde38b14610110575f80fd5b3461017c57602036600319011261017c57610129610afd565b610131611324565b600180546001600160a01b0319166001600160a01b0392831690811790915582549091167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b80fd5b503461017c578060031936011261017c576001546040516001600160a01b039091168152602090f35b503461017c57604036600319011261017c5760406101c4610afd565b916101cd610b13565b9260018060a01b031681526005602052209060018060a01b03165f52602052602060405f2054604051908152f35b503461017c5761022a61021e61022461021336610b7b565b949192943691610f26565b9061134a565b90610bf8565b50602060405160018152f35b503461017c57604036600319011261017c57602061025e610255610afd565b60243590610f6c565b6040519015158152f35b503461017c57602036600319011261017c5760043560065481101561029d578160409160209352600883522054604051908152f35b63d65c1f3360e01b8252600482fd5b503461017c57602036600319011261017c5760043567ffffffffffffffff811680910361041b5733825260046020528160408120548015610409575b5f805160206116f083398151915254604051638c14cc2160e01b8152600481019290925260248201849052600160f81b6044830152909160209183916064918391906001600160a01b03165af180156103fe5783906103c6575b6103669150338452600460205280604085205561035f30826115bf565b33906115bf565b6001549067ffffffffffffffff8260a01c160367ffffffffffffffff81116103b25767ffffffffffffffff60a01b1990911660a09190911b67ffffffffffffffff60a01b161760015580f35b634e487b7160e01b83526011600452602483fd5b506020813d6020116103f6575b816103e060209383610bc2565b810103126103f2576103669051610342565b5f80fd5b3d91506103d3565b6040513d85823e3d90fd5b506020610414611679565b90506102e8565b5080fd5b503461017c57608036600319011261017c57610439610afd565b610441610b13565b6064359267ffffffffffffffff841161017c575061047b61047361046c61022a953690600401610b4d565b3691610f26565b60443561134a565b91610c4d565b503461017c578060031936011261017c576040519080600354908160011c91600181168015610588575b6020841081146105745783865290811561054d57506001146104f0575b6104ec846104d881860382610bc2565b604051918291602083526020830190610b29565b0390f35b600381527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b939250905b808210610533575090915081016020016104d8826104c8565b91926001816020925483858801015201910190929161051a565b60ff191660208087019190915292151560051b850190920192506104d891508390506104c8565b634e487b7160e01b83526022600452602483fd5b92607f16926104ab565b503461017c578060031936011261017c57546040516001600160a01b039091168152602090f35b503461017c5761022a61021e6105d161021336610b7b565b90610f6c565b503461017c578060031936011261017c57600154336001600160a01b039091160361064957600180546001600160a01b0319908116909155815433918116821783556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b63118cdaa760e01b815233600452602490fd5b503461017c578060031936011261017c57610675611324565b600180546001600160a01b03199081169091558154908116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461017c57602036600319011261017c576020906040906001600160a01b036106e9610afd565b168152600483522054604051908152f35b503461017c578060031936011261017c576020600654604051908152f35b503461017c578060031936011261017c57602060405160068152f35b503461017c57604036600319011261017c5761074e610afd565b60243567ffffffffffffffff81168091036109135761076b611324565b6001600160a01b03821680845260046020526040842054909284918015610901575b5f805160206116f08339815191525460405163f953e42760e01b8152600481019290925260248201859052600160f81b6044830152909260209184916064918391906001600160a01b03165af180156108f65785906108c2575b6108099250848652600460205280604087205561080430826115bf565b6115bf565b81837fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60206040515f198152a36001548167ffffffffffffffff8260a01c160167ffffffffffffffff81116108ae5767ffffffffffffffff60a01b1990911660a09190911b67ffffffffffffffff60a01b16176001556040519081527f9109de113672aaca72ede8bc906f7aafabee865311ac020fb15c71edf94a0a0190602090a280f35b634e487b7160e01b85526011600452602485fd5b506020823d6020116108ee575b816108dc60209383610bc2565b810103126103f25761080991516107e7565b3d91506108cf565b6040513d87823e3d90fd5b50602061090c611679565b905061078d565b8280fd5b503461017c57606036600319011261017c57602061025e610936610afd565b61093e610b13565b60443591610c4d565b503461017c578060031936011261017c57602067ffffffffffffffff60015460a01c16604051908152f35b503461017c57604036600319011261017c57602061025e610991610afd565b60243590610bf8565b503461017c578060031936011261017c576040519080600254908160011c91600181168015610a4d575b6020841081146105745783865290811561054d57506001146109f0576104ec846104d881860382610bc2565b600281527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace939250905b808210610a33575090915081016020016104d8826104c8565b919260018160209254838588010152019101909291610a1a565b92607f16926109c4565b346103f25760203660031901126103f2576001600160a01b03610a78610afd565b165f908152600460205260409020545f805160206116d0833981519152546001600160a01b0316803b156103f2576346ce4e4960e11b8352600483018290523360248401525f908390604490829084905af1918215610af257602092610ae2575b50604051908152f35b5f610aec91610bc2565b5f610ad9565b6040513d5f823e3d90fd5b600435906001600160a01b03821682036103f257565b602435906001600160a01b03821682036103f257565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9181601f840112156103f25782359167ffffffffffffffff83116103f257602083818601950101116103f257565b60606003198201126103f2576004356001600160a01b03811681036103f25791602435916044359067ffffffffffffffff82116103f257610bbe91600401610b4d565b9091565b90601f8019910116810190811067ffffffffffffffff821117610be457604052565b634e487b7160e01b5f52604160045260245ffd5b90610c0d90610c0681611035565b82336110d4565b6040515f1981526001600160a01b039091169033907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590602090a3600190565b91610c5781611035565b6001600160a01b0383165f81815260056020908152604080832033845290915290205493909290610c88858461144a565b9360ff7f0000000000000000000000000000000000000000000000000000000000000000169485600211610eae5760076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5460025f9081527fb7c774451310d1be4108bc180d1b52823cb0ee0274a6c0081bcaf94f115fb96d54909391610d13919084611627565b9083526004602052610d2960408420548761144a565b96602060018060a01b035f805160206116f083398151915254166024604051809781936309c00ffd60e11b83528d60048401525af1938415610af2575f94610ef1575b505f805160206116f083398151915254604051630ccd46b160e31b81526004810195909552602485018490525f6044860181905260209186916064918391906001600160a01b03165af1938415610af2575f94610ebd575b50600111610eae57610de9610dfd9160209460015f526007865260405f205490611627565b610df2816114fd565b5061035f85826115bf565b606460018060a01b035f805160206116f08339815191525416965f6040519889948593630ccd46b160e31b8552600485015260248401528160448401525af1938415610af2575f94610e76575b50610e6c610e6586610e5f86610e719961152a565b87611627565b33836110d4565b611151565b600190565b9493506020853d602011610ea6575b81610e9260209383610bc2565b810103126103f25793519293610e6c610e4a565b3d9150610e85565b63d65c1f3360e01b5f5260045ffd5b9093506020813d602011610ee9575b81610ed960209383610bc2565b810103126103f25751925f610dc4565b3d9150610ecc565b93506020843d602011610f1e575b81610f0c60209383610bc2565b810103126103f2579251926020610d6c565b3d9150610eff565b92919267ffffffffffffffff8211610be45760405191610f50601f8201601f191660200184610bc2565b8294818452818301116103f2578281602093845f960137010152565b90610f7681611035565b335f526004602052610f8c60405f20548261144a565b9060ff7f000000000000000000000000000000000000000000000000000000000000000016600111610eae5760076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5460015f527fb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b82854610e71949161102f91839161101b919087611627565b611024816114fd565b5061080433826115bf565b33611151565b5f805160206116d083398151915254604051632fd514cd60e11b81526004810192909252336024830152602090829060449082906001600160a01b03165afa908115610af2575f91611099575b501561108a57565b632fa38b3f60e01b5f5260045ffd5b90506020813d6020116110cc575b816110b460209383610bc2565b810103126103f2575180151581036103f2575f611082565b3d91506110a7565b6001600160a01b038116939290841561113e576001600160a01b03831694851561112b57906111299495610804925f52600560205260405f20905f526020528260405f205561112330846115bf565b826115bf565b565b85634a1406b160e11b5f5260045260245ffd5b8463e602df0560e01b5f5260045260245ffd5b91926001600160a01b03831692908315611311576001600160a01b0383169485156112fe579061118991611183611679565b91611627565b91845f5260046020525f602060408220548581156112ee575b86156112e0575b5f805160206116f08339815191525460405163f953e42760e01b8152600480820194909452848101909301919091526001600160f81b0319841660448301529092839160649183916001600160a01b03165af1908115610af2575f916112aa575b5092611231611243928561125b9650885f5260046020528060405f205561080430826115bf565b845f52600460205260405f205461152a565b835f5260046020528060405f205561080430826115bf565b6006545f1981019081116112965760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91604051908152a3565b634e487b7160e01b5f52601160045260245ffd5b9390506020843d6020116112d8575b816112c660209383610bc2565b810103126103f257925161123161120a565b3d91506112b9565b506112e9611679565b6111a9565b90506112f8611679565b906111a2565b8563ec442f0560e01b5f5260045260245ffd5b83634b637e8f60e11b5f5260045260245ffd5b5f546001600160a01b0316330361133757565b63118cdaa760e01b5f523360045260245ffd5b6113999160209160018060a01b035f805160206116f08339815191525416905f6040518096819582946302e817ff60e41b84526004840152336024840152608060448401526084830190610b29565b600560f81b606483015203925af1908115610af2575f91611418575b505f805160206116d0833981519152546001600160a01b0316803b156103f2576040516346ce4e4960e11b815260048101839052336024820152905f908290604490829084905af18015610af25761140b575090565b5f61141591610bc2565b90565b90506020813d602011611442575b8161143360209383610bc2565b810103126103f257515f6113b5565b3d9150611426565b9081156114ed575b80156114db575b602090606460018060a01b035f805160206116f08339815191525416935f60405195869485936334a6d7b960e11b8552600485015260248401528160448401525af1908115610af2575f916114ac575090565b90506020813d6020116114d3575b816114c760209383610bc2565b810103126103f2575190565b3d91506114ba565b5060206114e6611679565b9050611459565b90506114f7611679565b90611452565b60065491905f198314611296576111299060018401600655835f5260086020528060405f205530906115bf565b6020905f9281156115af575b80156115a1575b5f805160206116f083398151915254604051638c14cc2160e01b8152600480820194909452848101909301919091526001600160f81b0319841660448301529092839160649183916001600160a01b03165af1908115610af2575f916114ac575090565b506115aa611679565b61153d565b90506115b9611679565b90611536565b5f805160206116d0833981519152546001600160a01b031691823b156103f257604051631974142760e21b815260048101929092526001600160a01b03166024820152905f908290604490829084905af18015610af25761161d5750565b5f61112991610bc2565b9060646020925f60018060a01b035f805160206116f08339815191525416604051968795869463cb3b940760e01b86526004860152602485015260448401525af1908115610af2575f916114ac575090565b5f805160206116f083398151915254604051631ce2e8d760e31b81525f60048201819052600560f81b60248301529091602091839160449183916001600160a01b03165af1908115610af2575f916114ac57509056feed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea601a26469706673582212202b1b5bfaadc0ea53faaa823bd15c2e09954c17af5930a1ebcb6731558fc86c8764736f6c634300081a0033ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea603ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea601ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea602","sourceMap":"874:852:7:-:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;874:852:7;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;874:852:7;;;;;;;;:::i;:::-;-1:-1:-1;874:852:7;;;;;;:::i;:::-;;;;;;;;;;;;;;;;865:42:155;874:852:7;;;;;;:::i;:::-;625:42:155;874:852:7;;706:42:155;874:852:7;577:345:155;;874:852:7;785:42:155;874:852:7;577:345:155;;874:852:7;577:345:155;874:852:7;625:42:155;874:852:7;;;;;;-1:-1:-1;;;;;;;;;;;874:852:7;;;-1:-1:-1;;;;;;;;;;;874:852:7;706:42:155;874:852:7;;;;;;-1:-1:-1;;;;;;;;;;;874:852:7;;;-1:-1:-1;;;;;;;;;;;874:852:7;785:42:155;874:852:7;;;;;;-1:-1:-1;;;;;;;;;;;874:852:7;;;-1:-1:-1;;;;;;;;;;;874:852:7;865:42:155;874:852:7;;;;;;-1:-1:-1;;;;;;;;;;;874:852:7;;;-1:-1:-1;;;;;;;;;;;874:852:7;1113:10;1273:26:31;1269:95;;874:852:7;;;-1:-1:-1;;;;;;874:852:7;;;;;;-1:-1:-1;874:852:7;;1113:10;874:852;;;;;;;-1:-1:-1;;;;;874:852:7;;3052:40:31;;-1:-1:-1;3052:40:31;874:852:7;;-1:-1:-1;;;;;874:852:7;;;;1594:20:21;874:852:7;;;;;;;;;;;-1:-1:-1;874:852:7;;;;;;;;;;;-1:-1:-1;874:852:7;;;;;;;;;;;;;;-1:-1:-1;874:852:7;;;;;;;;;;;;;;;;;;;1594:20:21;874:852:7;;;;-1:-1:-1;;;;;874:852:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;874:852:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2177:3:23;874:852:7;;;2148:27:23;1594:20:21;2148:27:23;;;;-1:-1:-1;;;;;;;;;;;874:852:7;;;-1:-1:-1;;;13977:74:159;;;;;874:852:7;;;-1:-1:-1;;;874:852:7;;;;;;;;;;13977:74:159;;874:852:7;;-1:-1:-1;;;;;;;874:852:7;13977:74:159;;;;;;;-1:-1:-1;13977:74:159;;;2177:3:23;-1:-1:-1;;874:852:7;;;2245:21:23;874:852:7;;;;;;;;-1:-1:-1;;;;;;;;;;;874:852:7;-1:-1:-1;;;;;874:852:7;;15870:41:159;;;;;-1:-1:-1;874:852:7;13977:74:159;874:852:7;;;;;;;;;;;;15870:41:159;;13977:74;15870:41;;874:852:7;370135:4:160;874:852:7;;;;15870:41:159;;;;;;;874:852:7;15870:41:159;;;2177:3:23;;874:852:7;;;;;;;;2139:7:23;;874:852:7;;;;-1:-1:-1;874:852:7;;13977:74:159;874:852:7;;-1:-1:-1;874:852:7;15870:41:159;-1:-1:-1;15870:41:159;;;:::i;:::-;;;;;874:852:7;;;-1:-1:-1;874:852:7;;;;;15870:41:159;-1:-1:-1;874:852:7;;13977:74:159;;;;874:852:7;13977:74:159;;;;;;;;;874:852:7;13977:74:159;;;:::i;:::-;;;874:852:7;;;;;13977:74:159;;;;;;;-1:-1:-1;13977:74:159;;2148:27:23;1594:20:21;874:852:7;2341:50:23;874:852:7;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;874:852:7;;;;;;;;;;;-1:-1:-1;874:852:7;;-1:-1:-1;874:852:7;;-1:-1:-1;874:852:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;874:852:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;874:852:7;;;;;;;;;-1:-1:-1;874:852:7;;;;;;;;-1:-1:-1;874:852:7;;;;;-1:-1:-1;874:852:7;;;;;;;;;;;;-1:-1:-1;874:852:7;;;;;-1:-1:-1;874:852:7;;;;;-1:-1:-1;874:852:7;;;;;;;;;;1594:20:21;-1:-1:-1;874:852:7;;-1:-1:-1;874:852:7;;-1:-1:-1;874:852:7;;;;;;;;;;;;;;;;;;;;;1594:20:21;874:852:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:20:21;-1:-1:-1;874:852:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;874:852:7;;;;;;;;;-1:-1:-1;874:852:7;;;;;;;;;;;1269:95:31;1322:31;;;-1:-1:-1;1322:31:31;-1:-1:-1;1322:31:31;874:852:7;;-1:-1:-1;1322:31:31;874:852:7;;;;;;;-1:-1:-1;;;;;874:852:7;;;;;;;:::o;:::-;;;;;-1:-1:-1;;874:852:7;;;;-1:-1:-1;;;;;874:852:7;;;;;;;;;;:::o;:::-;;;;;;;;;;;;-1:-1:-1;;;;;874:852:7;;;;;;;;;;;-1:-1:-1;;874:852:7;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;874:852:7;;;;;;;;;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f905f3560e01c90816306e928fd14610a575750806306fdde031461099a578063095ea7b31461097257806318160ddd1461094757806323b872dd146109175780632893c5b014610734578063313ce5671461071857806367a74a28146106fa57806370a08231146106c1578063715018a61461065c57806379ba5097146105d75780637b7e0a5a146105b95780638da5cb5b1461059257806395d89b41146104815780639a0943521461041f5780639dbead42146102ac578063a5184baf14610268578063a9059cbb14610236578063b32c1001146101fb578063dd62ed3e146101a8578063e30c39781461017f5763f2fde38b14610110575f80fd5b3461017c57602036600319011261017c57610129610afd565b610131611324565b600180546001600160a01b0319166001600160a01b0392831690811790915582549091167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b80fd5b503461017c578060031936011261017c576001546040516001600160a01b039091168152602090f35b503461017c57604036600319011261017c5760406101c4610afd565b916101cd610b13565b9260018060a01b031681526005602052209060018060a01b03165f52602052602060405f2054604051908152f35b503461017c5761022a61021e61022461021336610b7b565b949192943691610f26565b9061134a565b90610bf8565b50602060405160018152f35b503461017c57604036600319011261017c57602061025e610255610afd565b60243590610f6c565b6040519015158152f35b503461017c57602036600319011261017c5760043560065481101561029d578160409160209352600883522054604051908152f35b63d65c1f3360e01b8252600482fd5b503461017c57602036600319011261017c5760043567ffffffffffffffff811680910361041b5733825260046020528160408120548015610409575b5f805160206116f083398151915254604051638c14cc2160e01b8152600481019290925260248201849052600160f81b6044830152909160209183916064918391906001600160a01b03165af180156103fe5783906103c6575b6103669150338452600460205280604085205561035f30826115bf565b33906115bf565b6001549067ffffffffffffffff8260a01c160367ffffffffffffffff81116103b25767ffffffffffffffff60a01b1990911660a09190911b67ffffffffffffffff60a01b161760015580f35b634e487b7160e01b83526011600452602483fd5b506020813d6020116103f6575b816103e060209383610bc2565b810103126103f2576103669051610342565b5f80fd5b3d91506103d3565b6040513d85823e3d90fd5b506020610414611679565b90506102e8565b5080fd5b503461017c57608036600319011261017c57610439610afd565b610441610b13565b6064359267ffffffffffffffff841161017c575061047b61047361046c61022a953690600401610b4d565b3691610f26565b60443561134a565b91610c4d565b503461017c578060031936011261017c576040519080600354908160011c91600181168015610588575b6020841081146105745783865290811561054d57506001146104f0575b6104ec846104d881860382610bc2565b604051918291602083526020830190610b29565b0390f35b600381527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b939250905b808210610533575090915081016020016104d8826104c8565b91926001816020925483858801015201910190929161051a565b60ff191660208087019190915292151560051b850190920192506104d891508390506104c8565b634e487b7160e01b83526022600452602483fd5b92607f16926104ab565b503461017c578060031936011261017c57546040516001600160a01b039091168152602090f35b503461017c5761022a61021e6105d161021336610b7b565b90610f6c565b503461017c578060031936011261017c57600154336001600160a01b039091160361064957600180546001600160a01b0319908116909155815433918116821783556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b63118cdaa760e01b815233600452602490fd5b503461017c578060031936011261017c57610675611324565b600180546001600160a01b03199081169091558154908116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461017c57602036600319011261017c576020906040906001600160a01b036106e9610afd565b168152600483522054604051908152f35b503461017c578060031936011261017c576020600654604051908152f35b503461017c578060031936011261017c57602060405160068152f35b503461017c57604036600319011261017c5761074e610afd565b60243567ffffffffffffffff81168091036109135761076b611324565b6001600160a01b03821680845260046020526040842054909284918015610901575b5f805160206116f08339815191525460405163f953e42760e01b8152600481019290925260248201859052600160f81b6044830152909260209184916064918391906001600160a01b03165af180156108f65785906108c2575b6108099250848652600460205280604087205561080430826115bf565b6115bf565b81837fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60206040515f198152a36001548167ffffffffffffffff8260a01c160167ffffffffffffffff81116108ae5767ffffffffffffffff60a01b1990911660a09190911b67ffffffffffffffff60a01b16176001556040519081527f9109de113672aaca72ede8bc906f7aafabee865311ac020fb15c71edf94a0a0190602090a280f35b634e487b7160e01b85526011600452602485fd5b506020823d6020116108ee575b816108dc60209383610bc2565b810103126103f25761080991516107e7565b3d91506108cf565b6040513d87823e3d90fd5b50602061090c611679565b905061078d565b8280fd5b503461017c57606036600319011261017c57602061025e610936610afd565b61093e610b13565b60443591610c4d565b503461017c578060031936011261017c57602067ffffffffffffffff60015460a01c16604051908152f35b503461017c57604036600319011261017c57602061025e610991610afd565b60243590610bf8565b503461017c578060031936011261017c576040519080600254908160011c91600181168015610a4d575b6020841081146105745783865290811561054d57506001146109f0576104ec846104d881860382610bc2565b600281527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace939250905b808210610a33575090915081016020016104d8826104c8565b919260018160209254838588010152019101909291610a1a565b92607f16926109c4565b346103f25760203660031901126103f2576001600160a01b03610a78610afd565b165f908152600460205260409020545f805160206116d0833981519152546001600160a01b0316803b156103f2576346ce4e4960e11b8352600483018290523360248401525f908390604490829084905af1918215610af257602092610ae2575b50604051908152f35b5f610aec91610bc2565b5f610ad9565b6040513d5f823e3d90fd5b600435906001600160a01b03821682036103f257565b602435906001600160a01b03821682036103f257565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9181601f840112156103f25782359167ffffffffffffffff83116103f257602083818601950101116103f257565b60606003198201126103f2576004356001600160a01b03811681036103f25791602435916044359067ffffffffffffffff82116103f257610bbe91600401610b4d565b9091565b90601f8019910116810190811067ffffffffffffffff821117610be457604052565b634e487b7160e01b5f52604160045260245ffd5b90610c0d90610c0681611035565b82336110d4565b6040515f1981526001600160a01b039091169033907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590602090a3600190565b91610c5781611035565b6001600160a01b0383165f81815260056020908152604080832033845290915290205493909290610c88858461144a565b9360ff7f0000000000000000000000000000000000000000000000000000000000000000169485600211610eae5760076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5460025f9081527fb7c774451310d1be4108bc180d1b52823cb0ee0274a6c0081bcaf94f115fb96d54909391610d13919084611627565b9083526004602052610d2960408420548761144a565b96602060018060a01b035f805160206116f083398151915254166024604051809781936309c00ffd60e11b83528d60048401525af1938415610af2575f94610ef1575b505f805160206116f083398151915254604051630ccd46b160e31b81526004810195909552602485018490525f6044860181905260209186916064918391906001600160a01b03165af1938415610af2575f94610ebd575b50600111610eae57610de9610dfd9160209460015f526007865260405f205490611627565b610df2816114fd565b5061035f85826115bf565b606460018060a01b035f805160206116f08339815191525416965f6040519889948593630ccd46b160e31b8552600485015260248401528160448401525af1938415610af2575f94610e76575b50610e6c610e6586610e5f86610e719961152a565b87611627565b33836110d4565b611151565b600190565b9493506020853d602011610ea6575b81610e9260209383610bc2565b810103126103f25793519293610e6c610e4a565b3d9150610e85565b63d65c1f3360e01b5f5260045ffd5b9093506020813d602011610ee9575b81610ed960209383610bc2565b810103126103f25751925f610dc4565b3d9150610ecc565b93506020843d602011610f1e575b81610f0c60209383610bc2565b810103126103f2579251926020610d6c565b3d9150610eff565b92919267ffffffffffffffff8211610be45760405191610f50601f8201601f191660200184610bc2565b8294818452818301116103f2578281602093845f960137010152565b90610f7681611035565b335f526004602052610f8c60405f20548261144a565b9060ff7f000000000000000000000000000000000000000000000000000000000000000016600111610eae5760076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5460015f527fb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b82854610e71949161102f91839161101b919087611627565b611024816114fd565b5061080433826115bf565b33611151565b5f805160206116d083398151915254604051632fd514cd60e11b81526004810192909252336024830152602090829060449082906001600160a01b03165afa908115610af2575f91611099575b501561108a57565b632fa38b3f60e01b5f5260045ffd5b90506020813d6020116110cc575b816110b460209383610bc2565b810103126103f2575180151581036103f2575f611082565b3d91506110a7565b6001600160a01b038116939290841561113e576001600160a01b03831694851561112b57906111299495610804925f52600560205260405f20905f526020528260405f205561112330846115bf565b826115bf565b565b85634a1406b160e11b5f5260045260245ffd5b8463e602df0560e01b5f5260045260245ffd5b91926001600160a01b03831692908315611311576001600160a01b0383169485156112fe579061118991611183611679565b91611627565b91845f5260046020525f602060408220548581156112ee575b86156112e0575b5f805160206116f08339815191525460405163f953e42760e01b8152600480820194909452848101909301919091526001600160f81b0319841660448301529092839160649183916001600160a01b03165af1908115610af2575f916112aa575b5092611231611243928561125b9650885f5260046020528060405f205561080430826115bf565b845f52600460205260405f205461152a565b835f5260046020528060405f205561080430826115bf565b6006545f1981019081116112965760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91604051908152a3565b634e487b7160e01b5f52601160045260245ffd5b9390506020843d6020116112d8575b816112c660209383610bc2565b810103126103f257925161123161120a565b3d91506112b9565b506112e9611679565b6111a9565b90506112f8611679565b906111a2565b8563ec442f0560e01b5f5260045260245ffd5b83634b637e8f60e11b5f5260045260245ffd5b5f546001600160a01b0316330361133757565b63118cdaa760e01b5f523360045260245ffd5b6113999160209160018060a01b035f805160206116f08339815191525416905f6040518096819582946302e817ff60e41b84526004840152336024840152608060448401526084830190610b29565b600560f81b606483015203925af1908115610af2575f91611418575b505f805160206116d0833981519152546001600160a01b0316803b156103f2576040516346ce4e4960e11b815260048101839052336024820152905f908290604490829084905af18015610af25761140b575090565b5f61141591610bc2565b90565b90506020813d602011611442575b8161143360209383610bc2565b810103126103f257515f6113b5565b3d9150611426565b9081156114ed575b80156114db575b602090606460018060a01b035f805160206116f08339815191525416935f60405195869485936334a6d7b960e11b8552600485015260248401528160448401525af1908115610af2575f916114ac575090565b90506020813d6020116114d3575b816114c760209383610bc2565b810103126103f2575190565b3d91506114ba565b5060206114e6611679565b9050611459565b90506114f7611679565b90611452565b60065491905f198314611296576111299060018401600655835f5260086020528060405f205530906115bf565b6020905f9281156115af575b80156115a1575b5f805160206116f083398151915254604051638c14cc2160e01b8152600480820194909452848101909301919091526001600160f81b0319841660448301529092839160649183916001600160a01b03165af1908115610af2575f916114ac575090565b506115aa611679565b61153d565b90506115b9611679565b90611536565b5f805160206116d0833981519152546001600160a01b031691823b156103f257604051631974142760e21b815260048101929092526001600160a01b03166024820152905f908290604490829084905af18015610af25761161d5750565b5f61112991610bc2565b9060646020925f60018060a01b035f805160206116f08339815191525416604051968795869463cb3b940760e01b86526004860152602485015260448401525af1908115610af2575f916114ac575090565b5f805160206116f083398151915254604051631ce2e8d760e31b81525f60048201819052600560f81b60248301529091602091839160449183916001600160a01b03165af1908115610af2575f916114ac57509056feed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea601a26469706673582212202b1b5bfaadc0ea53faaa823bd15c2e09954c17af5930a1ebcb6731558fc86c8764736f6c634300081a0033","sourceMap":"874:852:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;874:852:7;;;;;;:::i;:::-;1500:62:31;;:::i;:::-;874:852:7;;;-1:-1:-1;;;;;;874:852:7;-1:-1:-1;;;;;874:852:7;;;;;;;;;;;;;;1777:43:32;874:852:7;;1777:43:32;874:852:7;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;874:852:7;;;;;;;;;;;;;;;-1:-1:-1;;874:852:7;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;7824:11:17;874:852:7;;;7824:27:17;874:852:7;;;;;;-1:-1:-1;874:852:7;;;;;-1:-1:-1;874:852:7;;;;;;;;;;;;;1877:61:17;874:852:7;1894:43:17;874:852:7;;;:::i;:::-;;;;;;;;:::i;:::-;1894:43:17;;:::i;:::-;1877:61;;:::i;:::-;;874:852:7;;;1955:4:17;874:852:7;;;;;;;;;;-1:-1:-1;;874:852:7;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;874:852:7;;;;;;8215:13:23;874:852:7;8204:24:23;;;8200:81;;874:852:7;;;;;;8303:18:23;874:852:7;;;;;;;;;;8200:81:23;-1:-1:-1;;;8251:19:23;;874:852:7;8251:19:23;;874:852:7;;;;;;;-1:-1:-1;;874:852:7;;;;;;;;;;;;;;1258:10:2;874:852:7;;;;;;;;;;2482:22:160;;212168:64;;874:852:7;-1:-1:-1;;;;;;;;;;;874:852:7;;;-1:-1:-1;;;5706:65:159;;874:852:7;5706:65:159;;874:852:7;;;;;;;;;;-1:-1:-1;;;874:852:7;;;;;;;;;;;;;;;-1:-1:-1;;;;;874:852:7;5706:65:159;;;;;;;;;;874:852:7;370021:7:160;5697:74:159;;1258:10:2;874:852:7;;;;;;;;;;370832:13:160;370840:4;370832:13;;:::i;:::-;1258:10:2;370021:7:160;;:::i;:::-;212301:4;874:852:7;;;;;;;;;;;;;-1:-1:-1;;;;874:852:7;;;;;;;;-1:-1:-1;;;874:852:7;;212301:4:160;874:852:7;;;;-1:-1:-1;;;874:852:7;;;;;;;;5706:65:159;;874:852:7;5706:65:159;;874:852:7;5706:65:159;;;;;;874:852:7;5706:65:159;;;:::i;:::-;;;874:852:7;;;;370021:7:160;874:852:7;;5706:65:159;;874:852:7;-1:-1:-1;874:852:7;;5706:65:159;;;-1:-1:-1;5706:65:159;;;874:852:7;;;;;;;;;212168:64:160;344922:44;874:852:7;344922:44:160;;:::i;:::-;212168:64;;;;874:852:7;;;;;;;;;;;-1:-1:-1;;874:852:7;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;3273:43:17;874:852:7;;3250:67:17;874:852:7;;;;;;:::i;:::-;;;;:::i;:::-;;;3273:43:17;:::i;:::-;3250:67;;:::i;874:852:7:-;;;;;;;;;;;;;;;;;4609:7:17;874:852:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;4609:7:17;874:852:7;;;;;-1:-1:-1;874:852:7;;;;;;;-1:-1:-1;874:852:7;;-1:-1:-1;874:852:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;874:852:7;;;;;;;;;;;;;;;;;;;;-1:-1:-1;874:852:7;;-1:-1:-1;874:852:7;;-1:-1:-1;874:852:7;;;-1:-1:-1;;;874:852:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;874:852:7;;;;;;;;;;;;;2512:57:17;874:852:7;2525:43:17;874:852:7;;;:::i;2525:43:17:-;2512:57;;:::i;874:852:7:-;;;;;;;;;;;;;;;735:10:49;-1:-1:-1;;;;;874:852:7;;;2339:24:32;2335:96;;1311:13;874:852:7;;-1:-1:-1;;;;;;874:852:7;;;;;;;;735:10:49;874:852:7;;;;;;;-1:-1:-1;;;;;874:852:7;3052:40:31;874:852:7;;3052:40:31;874:852:7;;2335:96:32;-1:-1:-1;;;2386:34:32;;735:10:49;874:852:7;;;;2386:34:32;874:852:7;;;;;;;;;;;;;1500:62:31;;:::i;:::-;2093:20:32;874:852:7;;-1:-1:-1;;;;;;874:852:7;;;;;;;;;;;;;;;-1:-1:-1;;;;;874:852:7;3052:40:31;874:852:7;;3052:40:31;874:852:7;;;;;;;;;-1:-1:-1;;874:852:7;;;;;;;;-1:-1:-1;;;;;874:852:7;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8596:13:23;874:852:7;;;;;;;;;;;;;;;;;;;;;;;4295:1:17;874:852:7;;;;;;;;;;-1:-1:-1;;874:852:7;;;;;;:::i;:::-;;;;;;;;;;;1500:62:31;;:::i;:::-;-1:-1:-1;;;;;874:852:7;;;;;;;;;;;;;;;;2482:22:160;;211624:64;;874:852:7;-1:-1:-1;;;;;;;;;;;874:852:7;;;-1:-1:-1;;;5329:65:159;;874:852:7;5329:65:159;;874:852:7;;;;;;;;;;-1:-1:-1;;;874:852:7;;;;;;;;;;;;;;;-1:-1:-1;;;;;874:852:7;5329:65:159;;;;;;;;;;874:852:7;370021:7:160;5320:74:159;;874:852:7;;;;;;;;;;;370832:13:160;370840:4;370832:13;;:::i;:::-;370021:7;:::i;:::-;874:852:7;;5502:43:17;874:852:7;;;950:17:17;;874:852:7;;5502:43:17;211757:4:160;874:852:7;;;;;;;;;;;;;-1:-1:-1;;;;874:852:7;;;;;;;;-1:-1:-1;;;874:852:7;;211757:4:160;874:852:7;;;;;;1682:16:22;;874:852:7;;1682:16:22;874:852:7;;;-1:-1:-1;;;874:852:7;;;;;;;;5329:65:159;;874:852:7;5329:65:159;;874:852:7;5329:65:159;;;;;;874:852:7;5329:65:159;;;:::i;:::-;;;874:852:7;;;;370021:7:160;874:852:7;;5329:65:159;;;;;-1:-1:-1;5329:65:159;;;874:852:7;;;;;;;;;211624:64:160;344922:44;874:852:7;344922:44:160;;:::i;:::-;211624:64;;;;874:852:7;;;;;;;;;;;-1:-1:-1;;874:852:7;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;4775:12:17;874:852:7;;;;;;;;;;;;;;;;;-1:-1:-1;;874:852:7;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;4448:5:17;874:852:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4448:5:17;874:852:7;;;;;-1:-1:-1;874:852:7;;;;;;;-1:-1:-1;874:852:7;;-1:-1:-1;874:852:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;874:852:7;;;;-1:-1:-1;;;;;874:852:7;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;874:852:7;-1:-1:-1;;;;;874:852:7;15684:50:159;;;;;-1:-1:-1;;;15684:50:159;;874:852:7;15684:50:159;;874:852:7;;;1682:10;874:852;;;;-1:-1:-1;;15684:50:159;;874:852:7;;15684:50:159;;-1:-1:-1;;15684:50:159;;;;;;;874:852:7;15684:50:159;;;874:852:7;;;;;;;;15684:50:159;874:852:7;15684:50:159;;;:::i;:::-;874:852:7;15684:50:159;;;874:852:7;;;;;;;;;;;;;-1:-1:-1;;;;;874:852:7;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;874:852:7;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;874:852:7;;;;;;;;-1:-1:-1;;874:852:7;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;874:852:7;;;;;;;-1:-1:-1;;;;;874:852:7;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;874:852:7;;;;;-1:-1:-1;874:852:7;2037:282:17;;2231:6;2037:282;2153:6;;;:::i;:::-;2186:10;;2231:6;:::i;:::-;874:852:7;;-1:-1:-1;;874:852:7;;-1:-1:-1;;;;;874:852:7;;;;2186:10:17;;2253:38;;874:852:7;;2253:38:17;2308:4;2037:282;:::o;2315:337:21:-;;2454:6;;;:::i;:::-;-1:-1:-1;;;;;874:852:7;;-1:-1:-1;874:852:7;;;7824:11:17;874:852:7;;;;;;;;2489:10:21;874:852:7;;;;;;;;;;;;3633:33:21;874:852:7;3633:33:21;;:::i;:::-;3695:75;874:852:7;6306:25:23;874:852:7;6294:37:23;;3736:32:21;6294:37:23;6290:94;;6429:21;874:852:7;;;;3736:32:21;-1:-1:-1;874:852:7;;;;;-1:-1:-1;;874:852:7;325937:72:160;;874:852:7;325937:72:160;;:::i;:::-;874:852:7;;;3877:9:21;874:852:7;;3861:33:21;874:852:7;;;;3861:33:21;;:::i;:::-;874:852:7;;;;;;;-1:-1:-1;;;;;;;;;;;874:852:7;;12663:47:159;874:852:7;;;;;;;;;12663:47:159;;;3877:9:21;12663:47:159;;874:852:7;12663:47:159;;;;;;;-1:-1:-1;12663:47:159;;;2315:337:21;-1:-1:-1;;;;;;;;;;;;874:852:7;;;-1:-1:-1;;;6980:68:159;;3877:9:21;6980:68:159;;874:852:7;;;;12663:47:159;874:852:7;;;;;-1:-1:-1;874:852:7;;;;;;;;;;6980:68:159;;874:852:7;;-1:-1:-1;;;;;;874:852:7;6980:68:159;;;;;;;-1:-1:-1;6980:68:159;;;2315:337:21;3203:37:23;874:852:7;3203:37:23;3199:94;;325937:72:160;370021:7;874:852:7;;;;-1:-1:-1;874:852:7;6429:21:23;874:852:7;;;-1:-1:-1;874:852:7;;325937:72:160;;:::i;:::-;4370:21:21;;;:::i;:::-;;370021:7:160;;;;:::i;:::-;6980:68:159;874:852:7;;;;;-1:-1:-1;;;;;;;;;;;874:852:7;;;-1:-1:-1;874:852:7;;;;;;;;;;6980:68:159;;3877:9:21;6980:68:159;;874:852:7;12663:47:159;874:852:7;;;;;;;;6980:68:159;;;;;;;-1:-1:-1;6980:68:159;;;2315:337:21;4597:34;4569:81;325937:72:160;4597:34:21;;;2609:14;4597:34;;:::i;:::-;325937:72:160;;:::i;:::-;2489:10:21;4569:81;;:::i;:::-;2609:14;:::i;:::-;874:852:7;2315:337:21;:::o;6980:68:159:-;;;;874:852:7;6980:68:159;;874:852:7;6980:68:159;;;;;;874:852:7;6980:68:159;;;:::i;:::-;;;874:852:7;;;;;;6980:68:159;;4569:81:21;6980:68:159;;;;;-1:-1:-1;6980:68:159;;3199:94:23;8251:19;;;-1:-1:-1;3263:19:23;3877:9:21;-1:-1:-1;3263:19:23;6980:68:159;;;;874:852:7;6980:68:159;;874:852:7;6980:68:159;;;;;;874:852:7;6980:68:159;;;:::i;:::-;;;874:852:7;;;;;6980:68:159;;;;;;;-1:-1:-1;6980:68:159;;12663:47;;;874:852:7;12663:47:159;;874:852:7;12663:47:159;;;;;;874:852:7;12663:47:159;;;:::i;:::-;;;874:852:7;;;;;;;;12663:47:159;;;;;-1:-1:-1;12663:47:159;;874:852:7;;;;;;;;;;;;;;;;-1:-1:-1;;874:852:7;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;874:852:7;;;;;;:::o;1691:548:21:-;;1812:6;;;:::i;:::-;1935:10;-1:-1:-1;874:852:7;1925:9:21;874:852:7;;1909:38:21;874:852:7;-1:-1:-1;874:852:7;;1909:38:21;;:::i;:::-;1976:70;874:852:7;6306:25:23;874:852:7;2013:31:21;6294:37:23;6290:94;;6429:21;874:852:7;;;;2013:31:21;-1:-1:-1;874:852:7;;;2199:11:21;;874:852:7;370021:7:160;;874:852:7;;325937:72:160;;874:852:7;325937:72:160;;:::i;:::-;2056:21:21;;;:::i;:::-;;370021:7:160;1935:10:21;370021:7:160;;:::i;:::-;1935:10:21;2199:11;:::i;7864:178:17:-;-1:-1:-1;;;;;;;;;;;874:852:7;;;-1:-1:-1;;;16241:45:159;;;;;874:852:7;;;;368839:10:160;874:852:7;;;;16241:45:159;;874:852:7;;;;;;-1:-1:-1;;;;;874:852:7;16241:45:159;;;;;;;-1:-1:-1;16241:45:159;;;7864:178:17;7951:29;;7947:89;;7864:178::o;7947:89::-;8003:22;;;-1:-1:-1;8003:22:17;16241:45:159;-1:-1:-1;8003:22:17;16241:45:159;;;;;;;;;;;;;;;;;:::i;:::-;;;874:852:7;;;;;;;;;;;;16241:45:159;;;;;;-1:-1:-1;16241:45:159;;4800:431:17;-1:-1:-1;;;;;874:852:7;;;4800:431:17;;4897:19;;4893:84;;-1:-1:-1;;;;;874:852:7;;;4991:21:17;;4987:87;;874:852:7;370021:7:160;874:852:7;;370021:7:160;874:852:7;4914:1:17;874:852:7;5084:11:17;874:852:7;;;4914:1:17;874:852:7;5084:27:17;-1:-1:-1;874:852:7;;;;;-1:-1:-1;874:852:7;;370832:13:160;370840:4;370832:13;;:::i;:::-;370021:7;;:::i;:::-;4800:431:17:o;4987:87::-;5035:28;;;;4914:1;5035:28;;874:852:7;;4914:1:17;5035:28;4893:84;4939:27;;;;4914:1;4939:27;;874:852:7;;4914:1:17;4939:27;3034:276:21;;;-1:-1:-1;;;;;874:852:7;;;3034:276:21;6337:18:17;;6333:80;;-1:-1:-1;;;;;874:852:7;;;6427:16:17;;6423:78;;344922:44:160;325937:72;344922:44;;;:::i;:::-;325937:72;;:::i;:::-;874:852:7;;6353:1:17;874:852:7;6716:9:17;874:852:7;;6353:1:17;874:852:7;;;;;6707:38:17;;2482:22:160;196412:64;;3034:276:21;2482:22:160;;196485:64;;3034:276:21;-1:-1:-1;;;;;;;;;;;874:852:7;;;-1:-1:-1;;;5329:65:159;;6716:9:17;5329:65:159;;;874:852:7;;;;;;;;;;;;;;-1:-1:-1;;;;;;874:852:7;;;;;;;;;;;;;;-1:-1:-1;;;;;874:852:7;5329:65:159;;;;;;;6353:1:17;5329:65:159;;;3034:276:21;5320:74:159;;370021:7:160;6894:40:17;5320:74:159;;370021:7:160;5320:74:159;874:852:7;;6353:1:17;874:852:7;6716:9:17;874:852:7;;;;6353:1:17;874:852:7;;370832:13:160;370840:4;370832:13;;:::i;370021:7::-;874:852:7;6353:1:17;874:852:7;6716:9:17;874:852:7;;;6353:1:17;874:852:7;;6894:40:17;:::i;:::-;874:852:7;6353:1:17;874:852:7;6716:9:17;874:852:7;;;;6353:1:17;874:852:7;;370832:13:160;370840:4;370832:13;;:::i;370021:7::-;8596:13:23;874:852:7;-1:-1:-1;;874:852:7;;;;;;;;3261:42:21;874:852:7;;;;;;3261:42:21;3034:276::o;874:852:7:-;;;;6353:1:17;874:852:7;;6716:9:17;874:852:7;;6353:1:17;874:852:7;5329:65:159;;;;874:852:7;5329:65:159;;874:852:7;5329:65:159;;;;;;874:852:7;5329:65:159;;;:::i;:::-;;;874:852:7;;;;;;370021:7:160;5329:65:159;;;;;-1:-1:-1;5329:65:159;;196485:64:160;344922:44;;;:::i;:::-;196485:64;;196412;344922:44;;;;:::i;:::-;196412:64;;;6423:78:17;6466:24;;;;6353:1;6466:24;;874:852:7;;6353:1:17;6466:24;6333:80;6378:24;;;;6353:1;6378:24;;874:852:7;;6353:1:17;6378:24;1796:162:31;1710:6;874:852:7;-1:-1:-1;;;;;874:852:7;735:10:49;1855:23:31;1851:101;;1796:162::o;1851:101::-;2386:34:32;;;1710:6:31;1901:40;735:10:49;1901:40:31;874:852:7;;1710:6:31;1901:40;344561:198:160;874:852:7;344561:198:160;874:852:7;344561:198:160;874:852:7;;;;;-1:-1:-1;;;;;;;;;;;874:852:7;;;-1:-1:-1;874:852:7;;;;;;;;;;;13336:164:159;;;;;874:852:7;13428:10:159;874:852:7;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;874:852:7;;;;13336:164:159;;;;;;;;;-1:-1:-1;13336:164:159;;;344561:198:160;-1:-1:-1;;;;;;;;;;;;874:852:7;-1:-1:-1;;;;;874:852:7;13510:53:159;;;;;874:852:7;;-1:-1:-1;;;13510:53:159;;13336:164;13510:53;;874:852:7;;;13428:10:159;874:852:7;;;;;-1:-1:-1;;874:852:7;;;;;;-1:-1:-1;;13510:53:159;;;;;;;;344662:90:160;344561:198;:::o;13510:53:159:-;-1:-1:-1;13510:53:159;;;:::i;:::-;344561:198:160;:::o;13336:164:159:-;;;874:852:7;13336:164:159;;874:852:7;13336:164:159;;;;;;874:852:7;13336:164:159;;;:::i;:::-;;;874:852:7;;;;;13336:164:159;;;;;;-1:-1:-1;13336:164:159;;199848:293:160;;2482:22;;199917:64;;199848:293;2482:22;;199990:64;;199848:293;874:852:7;;11129:64:159;874:852:7;;;;;-1:-1:-1;;;;;;;;;;;874:852:7;;;-1:-1:-1;874:852:7;;;;;;;;;;11129:64:159;;;;;874:852:7;;;;;;;;;;11129:64:159;;;;;;;-1:-1:-1;11129:64:159;;;200063:71:160;199848:293;:::o;11129:64:159:-;;;874:852:7;11129:64:159;;874:852:7;11129:64:159;;;;;;874:852:7;11129:64:159;;;:::i;:::-;;;874:852:7;;;;;199848:293:160;:::o;11129:64:159:-;;;-1:-1:-1;11129:64:159;;199990::160;344922:44;874:852:7;344922:44:160;;:::i;:::-;199990:64;;;;199917;344922:44;;;;:::i;:::-;199917:64;;;6796:231:23;6897:13;874:852:7;;6796:231:23;-1:-1:-1;;874:852:7;;;;370832:13:160;874:852:7;;;;6897:13:23;874:852:7;;-1:-1:-1;874:852:7;6945:18:23;874:852:7;;;;-1:-1:-1;874:852:7;;370840:4:160;370832:13;;:::i;196694:299::-;5706:65:159;196694:299:160;-1:-1:-1;196694:299:160;2482:22;;196766:64;;196694:299;2482:22;;196839:64;;196694:299;-1:-1:-1;;;;;;;;;;;874:852:7;;;-1:-1:-1;;;5706:65:159;;;;;;874:852:7;;;;;;;;;;;;;;-1:-1:-1;;;;;;874:852:7;;;;;;;;;;;;;;-1:-1:-1;;;;;874:852:7;5706:65:159;;;;;;;-1:-1:-1;5706:65:159;;;5697:74;196694:299:160;:::o;196839:64::-;344922:44;;;:::i;:::-;196839:64;;196766;344922:44;;;;:::i;:::-;196766:64;;;15747:171:159;-1:-1:-1;;;;;;;;;;;874:852:7;-1:-1:-1;;;;;874:852:7;;15870:41:159;;;;;874:852:7;;-1:-1:-1;;;15870:41:159;;;;;874:852:7;;;;-1:-1:-1;;;;;874:852:7;;;;;;-1:-1:-1;;874:852:7;;;;;;-1:-1:-1;;15870:41:159;;;;;;;;15747:171;:::o;15870:41::-;-1:-1:-1;15870:41:159;;;:::i;12887:258::-;;13062:76;874:852:7;12887:258:159;-1:-1:-1;874:852:7;;;;;-1:-1:-1;;;;;;;;;;;874:852:7;;;;;;;;;;;;13062:76:159;;;;;874:852:7;;;;;;;;;13062:76:159;;;;;;;-1:-1:-1;13062:76:159;;;13053:85;12887:258;:::o;13815:243::-;-1:-1:-1;;;;;;;;;;;874:852:7;;;-1:-1:-1;;;13977:74:159;;874:852:7;13977:74:159;;;874:852:7;;;-1:-1:-1;;;874:852:7;;;;;;;;;;13977:74:159;;874:852:7;;-1:-1:-1;;;;;874:852:7;13977:74:159;;;;;;;874:852:7;13977:74:159;;;13968:83;13815:243;:::o","linkReferences":{},"immutableReferences":{"6572":[{"start":3213,"length":32},{"start":3985,"length":32}]}},"methodIdentifiers":{"acceptOwnership()":"79ba5097","allowance(address,address)":"dd62ed3e","approve(address,bytes32,bytes)":"b32c1001","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","balanceOfAllow(address)":"06e928fd","burn(uint64)":"9dbead42","decimals()":"313ce567","errorGetCounter()":"67a74a28","getErrorCodeForTransferId(uint256)":"a5184baf","mint(address,uint64)":"2893c5b0","name()":"06fdde03","owner()":"8da5cb5b","pendingOwner()":"e30c3978","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,bytes32,bytes)":"7b7e0a5a","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,bytes32,bytes)":"9a094352","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorIndexInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErrorIndexIsNull\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TFHESenderNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TotalNumberErrorCodesEqualToZero\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"placeholder\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"transferId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"euint64\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"euint64\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"einput\",\"name\":\"encryptedAmount\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"inputProof\",\"type\":\"bytes\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"euint64\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOfAllow\",\"outputs\":[{\"internalType\":\"euint64\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"errorGetCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"errorsCount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"transferId\",\"type\":\"uint256\"}],\"name\":\"getErrorCodeForTransferId\",\"outputs\":[{\"internalType\":\"euint8\",\"name\":\"errorCode\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"einput\",\"name\":\"encryptedAmount\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"inputProof\",\"type\":\"bytes\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"euint64\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"euint64\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"einput\",\"name\":\"encryptedAmount\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"inputProof\",\"type\":\"bytes\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This contract extends ConfidentialERC20WithErrorsMintableBurnable to provide encrypted token functionality for index funds. It enables confidential transfers, minting, and burning of tokens while maintaining privacy of balances and transactions. Key features: - Encrypted balance tracking using FHE - Confidential transfers between accounts - Minting and burning capabilities - Allowance management with encrypted values - Transient balance access for authorized parties\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"params\":{\"owner\":\"Owner address.\",\"placeholder\":\"Placeholder.\",\"spender\":\"Spender address.\"}},\"Transfer(address,address,uint256)\":{\"params\":{\"from\":\"Sender address.\",\"to\":\"Receiver address.\",\"transferId\":\"If the implementation does not support error handling, it must be set to a default placeholder (typically equal to max(uint256). However, it must be set to a transferId if the implementation supports encrypted error handling.\"}}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"balanceOfAllow(address)\":{\"details\":\"This function enables temporary access to encrypted balances for authorized parties while maintaining confidentiality. The balance is only accessible to the caller.\",\"params\":{\"account\":\"The address of the account whose balance to access\"},\"returns\":{\"_0\":\"The encrypted balance of the account\"}},\"getErrorCodeForTransferId(uint256)\":{\"params\":{\"transferId\":\"Transfer id. It can be read from the `Transfer` event.\"},\"returns\":{\"errorCode\":\" Encrypted error code.\"}},\"mint(address,uint64)\":{\"params\":{\"amount\":\"Amount of tokens to mint.\",\"to\":\"Address to mint tokens to.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer.\"}},\"title\":\"IndexFundToken\",\"version\":1},\"userdoc\":{\"errors\":{\"ErrorIndexInvalid()\":[{\"notice\":\"Returned if the error index is invalid.\"}],\"ErrorIndexIsNull()\":[{\"notice\":\"Returned if the error index is null.\"}],\"TFHESenderNotAllowed()\":[{\"notice\":\"Returned when the `sender` is not allowed to access a value.\"}],\"TotalNumberErrorCodesEqualToZero()\":[{\"notice\":\"Returned if the total number of errors is equal to zero.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"notice\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}.\"},\"Burn(address,uint64)\":{\"notice\":\"Emitted when `amount` tokens are minted to one account (`to`).\"},\"Mint(address,uint64)\":{\"notice\":\"Emitted when `amount` tokens are minted to one account (`to`).\"},\"Transfer(address,address,uint256)\":{\"notice\":\"Emitted when tokens are moved from one account (`from`) to another (`to`).\"}},\"kind\":\"user\",\"methods\":{\"allowance(address,address)\":{\"notice\":\"See {IConfidentialERC20-allowance}.\"},\"approve(address,bytes32,bytes)\":{\"notice\":\"See {IConfidentialERC20-approve}.\"},\"approve(address,uint256)\":{\"notice\":\"See {IConfidentialERC20-approve}.\"},\"balanceOf(address)\":{\"notice\":\"See {IConfidentialERC20-balanceOf}.\"},\"balanceOfAllow(address)\":{\"notice\":\"Allows temporary access to an account's encrypted balance\"},\"decimals()\":{\"notice\":\"See {IConfidentialERC20-decimals}.\"},\"getErrorCodeForTransferId(uint256)\":{\"notice\":\"Return the error for a transfer id.\"},\"mint(address,uint64)\":{\"notice\":\"Mint tokens.\"},\"name()\":{\"notice\":\"See {IConfidentialERC20-name}.\"},\"symbol()\":{\"notice\":\"See {IConfidentialERC20-symbol}.\"},\"totalSupply()\":{\"notice\":\"See {IConfidentialERC20-totalSupply}.\"},\"transfer(address,bytes32,bytes)\":{\"notice\":\"See {IConfidentialERC20-transfer}.\"},\"transfer(address,uint256)\":{\"notice\":\"See {IConfidentialERC20-transfer}.\"},\"transferFrom(address,address,bytes32,bytes)\":{\"notice\":\"See {IConfidentialERC20-transferFrom}.\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"See {IConfidentialERC20-transferFrom}.\"}},\"notice\":\"Implements a confidential ERC20 token for index funds using Zama's FHE (Fully Homomorphic Encryption)\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/IndexFundToken.sol\":\"IndexFundToken\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@chainlink/=lib/chainlink/\",\":@ensdomains/=lib/v4-core/node_modules/@ensdomains/\",\":@httpz-contracts/=lib/httpz-contracts/contracts/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/universal-router/=lib/universal-router.git/\",\":@uniswap/v2-core/=lib/v2-core/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/\",\":@uniswap/v4-core/=lib/v4-core/\",\":@uniswap/v4-periphery/=lib/v4-periphery/\",\":chainlink/=lib/chainlink/\",\":ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":fhevm-contracts/=node_modules/fhevm-contracts/\",\":fhevm-core-contracts/=node_modules/fhevm-core-contracts/\",\":fhevm/=node_modules/fhevm/\",\":forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":httpz-contracts/=lib/httpz-contracts/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":permit2/=lib/permit2/\",\":solmate/=lib/permit2/lib/solmate/\",\":universal-router.git/=lib/universal-router.git/\",\":v2-core/=lib/v2-core/contracts/\",\":v3-core/=lib/v3-core/\",\":v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/\",\":v4-core/=lib/v4-core/src/\",\":v4-periphery/=lib/v4-periphery/\"],\"viaIR\":true},\"sources\":{\"contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol\":{\"keccak256\":\"0x6f947e91a3369017e4d0147ac44ea39c6f8ffa4a5307d8339481f4e88355a62d\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://27794b1340f9299d7be061aacde65075fca40a1d722e8c5181cee22f257eeb25\",\"dweb:/ipfs/QmT3DReokqZhMtDcEDpkTgf1zG5cZELzPEZDjrqpfEXjWC\"]},\"contracts/IndexFundToken.sol\":{\"keccak256\":\"0x6d1e6a25f9d42b8d6a080a35f7a3b5349abae3f4a30c136f907cc52778a0fe27\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://1d81c68b7233cba175382a539bfbcfaf92b06197add787b3b429ec98c65c4669\",\"dweb:/ipfs/QmYEwXLUeBFNnK8ZZxYo3pVJe7hZrEMitxbGyrrotbU4yt\"]},\"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol\":{\"keccak256\":\"0x8b45e5bb2fd9212f99e61b4d25b9c9d5ed7cb1a9a684aac34f752c568ef16c76\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://1ca71bb5bfbb2f8a0779f8394baeea01680619637abddb572017d05d96862591\",\"dweb:/ipfs/QmPCzGBE1m6WtDZxrVL5jzkduNaS7fjtYovUWdnzN34qjh\"]},\"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol\":{\"keccak256\":\"0xe016a085f72ca3cf6d78ec1cb2182a398106cb7d425e984776a9caab0bad2569\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://3e79dc5075469d660908f5f8b6d0c863b14459d60a0b06fb786d58de8cf30a94\",\"dweb:/ipfs/QmePGRGtoWBnQ8T6ZRyZgiwVh4r67kcmWejwKgjyYN4AAY\"]},\"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol\":{\"keccak256\":\"0xfe322c8f9a8e4fba881715901a5bafd2efa23394ecbc9ec84282818baeff0a07\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://13dba831528dd16408b7abab23eac0664a2a3e5ecbfe5e58e6e321cf2921668a\",\"dweb:/ipfs/QmPq4YeugbayWfeBJR8H7s4jHsnZkACQX2xbdNQ4sdvZrk\"]},\"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol\":{\"keccak256\":\"0xecc6289a9791bef254911393b51d2bfbddc5650ede7fbe7b5cc2b8d3eb01d7a6\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://7463278a20bc5d7fd8b7ec2cb8e592b2d1e0afcf8b59d35d6929d18661d4b38c\",\"dweb:/ipfs/QmTKPoABwNDmK7g7vkti1AkTpkUBHu3iX3zsXQsEuSiqBM\"]},\"lib/httpz-contracts/contracts/utils/EncryptedErrors.sol\":{\"keccak256\":\"0x0b8d08f392884add1af672018359e8980ee0b5e1662fe5e36eb31f053d1d4505\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://2903dd49a88b36aba2e8a45548b6a68d203887356ebdf452b10e0148954ba1a5\",\"dweb:/ipfs/QmTRuP4QXagoV2cLr2ctzFtNK7FK1cDXMYm4feMoMsYoWG\"]},\"lib/httpz-contracts/contracts/utils/TFHEErrors.sol\":{\"keccak256\":\"0x5fef7c2d7d4449d724a2800b37dfcc61e2b635f2747378ce222b9187425f2d13\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://7c2ef113faaec2d74c8d958f80687d0b676082d6231720917aaa8aa934d689a3\",\"dweb:/ipfs/QmNn474JDQ5zvVDwEuicJs6Xq8YEXWGZLoW4KeTWDVG31f\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol\":{\"keccak256\":\"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0\",\"dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/fhevm/config/ZamaFHEVMConfig.sol\":{\"keccak256\":\"0x41782f4c707b81399916544fa2e7be94a695fa4ba468542732d29d3e383c0315\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://45a95a55c4bbb3418c2133cba6ed21a9444bb4e38d38b32cc707b7493cece2ca\",\"dweb:/ipfs/QmVU8EKmZgscdM43RgXD4EgbVMhQxBusTmBren3pbn1pUW\"]},\"node_modules/fhevm/lib/Impl.sol\":{\"keccak256\":\"0x89d4968cd956a8931f1a8a177b3bef1c6cf88a03665083db74430add50b88f21\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://aaaef2c82d56dacfb08946842ea1ce26757d13f3251de62fa79222232dfcb43c\",\"dweb:/ipfs/QmQ6QZPxJw9jb3qjRYCX7pMQVoYogjTsYgmdEnB3EnwFRy\"]},\"node_modules/fhevm/lib/TFHE.sol\":{\"keccak256\":\"0x221799c8332f83ab65a0b71746409f0c2c89f1cd8d9ba4091d967c667e1df734\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://2dba387fbc612a2ee64063b0ee6c27304b3944423d11045acc50abd84577fb5f\",\"dweb:/ipfs/QmThptDGnpd8PuncFk1rnQoCzEqwUED622yC9xZgFhwY59\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[],"type":"error","name":"ErrorIndexInvalid"},{"inputs":[],"type":"error","name":"ErrorIndexIsNull"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"TFHESenderNotAllowed"},{"inputs":[],"type":"error","name":"TotalNumberErrorCodesEqualToZero"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"placeholder","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint64","name":"amount","type":"uint64","indexed":false}],"type":"event","name":"Burn","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint64","name":"amount","type":"uint64","indexed":false}],"type":"event","name":"Mint","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferStarted","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"transferId","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"acceptOwnership"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"euint64","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"euint64","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"einput","name":"encryptedAmount","type":"bytes32"},{"internalType":"bytes","name":"inputProof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"euint64","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"balanceOfAllow","outputs":[{"internalType":"euint64","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"amount","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"errorGetCounter","outputs":[{"internalType":"uint256","name":"errorsCount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"transferId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getErrorCodeForTransferId","outputs":[{"internalType":"euint8","name":"errorCode","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint64","name":"amount","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"einput","name":"encryptedAmount","type":"bytes32"},{"internalType":"bytes","name":"inputProof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"euint64","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"euint64","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"einput","name":"encryptedAmount","type":"bytes32"},{"internalType":"bytes","name":"inputProof","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"balanceOfAllow(address)":{"details":"This function enables temporary access to encrypted balances for authorized parties while maintaining confidentiality. The balance is only accessible to the caller.","params":{"account":"The address of the account whose balance to access"},"returns":{"_0":"The encrypted balance of the account"}},"getErrorCodeForTransferId(uint256)":{"params":{"transferId":"Transfer id. It can be read from the `Transfer` event."},"returns":{"errorCode":" Encrypted error code."}},"mint(address,uint64)":{"params":{"amount":"Amount of tokens to mint.","to":"Address to mint tokens to."}},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer."}},"version":1},"userdoc":{"kind":"user","methods":{"allowance(address,address)":{"notice":"See {IConfidentialERC20-allowance}."},"approve(address,bytes32,bytes)":{"notice":"See {IConfidentialERC20-approve}."},"approve(address,uint256)":{"notice":"See {IConfidentialERC20-approve}."},"balanceOf(address)":{"notice":"See {IConfidentialERC20-balanceOf}."},"balanceOfAllow(address)":{"notice":"Allows temporary access to an account's encrypted balance"},"decimals()":{"notice":"See {IConfidentialERC20-decimals}."},"getErrorCodeForTransferId(uint256)":{"notice":"Return the error for a transfer id."},"mint(address,uint64)":{"notice":"Mint tokens."},"name()":{"notice":"See {IConfidentialERC20-name}."},"symbol()":{"notice":"See {IConfidentialERC20-symbol}."},"totalSupply()":{"notice":"See {IConfidentialERC20-totalSupply}."},"transfer(address,bytes32,bytes)":{"notice":"See {IConfidentialERC20-transfer}."},"transfer(address,uint256)":{"notice":"See {IConfidentialERC20-transfer}."},"transferFrom(address,address,bytes32,bytes)":{"notice":"See {IConfidentialERC20-transferFrom}."},"transferFrom(address,address,uint256)":{"notice":"See {IConfidentialERC20-transferFrom}."}},"version":1}},"settings":{"remappings":["@chainlink/=lib/chainlink/","@ensdomains/=lib/v4-core/node_modules/@ensdomains/","@httpz-contracts/=lib/httpz-contracts/contracts/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@uniswap/universal-router/=lib/universal-router.git/","@uniswap/v2-core/=lib/v2-core/","@uniswap/v3-core/=lib/v3-core/","@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/","@uniswap/v4-core/=lib/v4-core/","@uniswap/v4-periphery/=lib/v4-periphery/","chainlink/=lib/chainlink/","ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","eth-gas-reporter/=node_modules/eth-gas-reporter/","fhevm-contracts/=node_modules/fhevm-contracts/","fhevm-core-contracts/=node_modules/fhevm-core-contracts/","fhevm/=node_modules/fhevm/","forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","httpz-contracts/=lib/httpz-contracts/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","permit2/=lib/permit2/","solmate/=lib/permit2/lib/solmate/","universal-router.git/=lib/universal-router.git/","v2-core/=lib/v2-core/contracts/","v3-core/=lib/v3-core/","v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/","v4-core/=lib/v4-core/src/","v4-periphery/=lib/v4-periphery/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/IndexFundToken.sol":"IndexFundToken"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol":{"keccak256":"0x6f947e91a3369017e4d0147ac44ea39c6f8ffa4a5307d8339481f4e88355a62d","urls":["bzz-raw://27794b1340f9299d7be061aacde65075fca40a1d722e8c5181cee22f257eeb25","dweb:/ipfs/QmT3DReokqZhMtDcEDpkTgf1zG5cZELzPEZDjrqpfEXjWC"],"license":"BSD-3-Clause-Clear"},"contracts/IndexFundToken.sol":{"keccak256":"0x6d1e6a25f9d42b8d6a080a35f7a3b5349abae3f4a30c136f907cc52778a0fe27","urls":["bzz-raw://1d81c68b7233cba175382a539bfbcfaf92b06197add787b3b429ec98c65c4669","dweb:/ipfs/QmYEwXLUeBFNnK8ZZxYo3pVJe7hZrEMitxbGyrrotbU4yt"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol":{"keccak256":"0x8b45e5bb2fd9212f99e61b4d25b9c9d5ed7cb1a9a684aac34f752c568ef16c76","urls":["bzz-raw://1ca71bb5bfbb2f8a0779f8394baeea01680619637abddb572017d05d96862591","dweb:/ipfs/QmPCzGBE1m6WtDZxrVL5jzkduNaS7fjtYovUWdnzN34qjh"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol":{"keccak256":"0xe016a085f72ca3cf6d78ec1cb2182a398106cb7d425e984776a9caab0bad2569","urls":["bzz-raw://3e79dc5075469d660908f5f8b6d0c863b14459d60a0b06fb786d58de8cf30a94","dweb:/ipfs/QmePGRGtoWBnQ8T6ZRyZgiwVh4r67kcmWejwKgjyYN4AAY"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol":{"keccak256":"0xfe322c8f9a8e4fba881715901a5bafd2efa23394ecbc9ec84282818baeff0a07","urls":["bzz-raw://13dba831528dd16408b7abab23eac0664a2a3e5ecbfe5e58e6e321cf2921668a","dweb:/ipfs/QmPq4YeugbayWfeBJR8H7s4jHsnZkACQX2xbdNQ4sdvZrk"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol":{"keccak256":"0xecc6289a9791bef254911393b51d2bfbddc5650ede7fbe7b5cc2b8d3eb01d7a6","urls":["bzz-raw://7463278a20bc5d7fd8b7ec2cb8e592b2d1e0afcf8b59d35d6929d18661d4b38c","dweb:/ipfs/QmTKPoABwNDmK7g7vkti1AkTpkUBHu3iX3zsXQsEuSiqBM"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/utils/EncryptedErrors.sol":{"keccak256":"0x0b8d08f392884add1af672018359e8980ee0b5e1662fe5e36eb31f053d1d4505","urls":["bzz-raw://2903dd49a88b36aba2e8a45548b6a68d203887356ebdf452b10e0148954ba1a5","dweb:/ipfs/QmTRuP4QXagoV2cLr2ctzFtNK7FK1cDXMYm4feMoMsYoWG"],"license":"BSD-3-Clause-Clear"},"lib/httpz-contracts/contracts/utils/TFHEErrors.sol":{"keccak256":"0x5fef7c2d7d4449d724a2800b37dfcc61e2b635f2747378ce222b9187425f2d13","urls":["bzz-raw://7c2ef113faaec2d74c8d958f80687d0b676082d6231720917aaa8aa934d689a3","dweb:/ipfs/QmNn474JDQ5zvVDwEuicJs6Xq8YEXWGZLoW4KeTWDVG31f"],"license":"BSD-3-Clause-Clear"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol":{"keccak256":"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c","urls":["bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0","dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/fhevm/config/ZamaFHEVMConfig.sol":{"keccak256":"0x41782f4c707b81399916544fa2e7be94a695fa4ba468542732d29d3e383c0315","urls":["bzz-raw://45a95a55c4bbb3418c2133cba6ed21a9444bb4e38d38b32cc707b7493cece2ca","dweb:/ipfs/QmVU8EKmZgscdM43RgXD4EgbVMhQxBusTmBren3pbn1pUW"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/lib/Impl.sol":{"keccak256":"0x89d4968cd956a8931f1a8a177b3bef1c6cf88a03665083db74430add50b88f21","urls":["bzz-raw://aaaef2c82d56dacfb08946842ea1ce26757d13f3251de62fa79222232dfcb43c","dweb:/ipfs/QmQ6QZPxJw9jb3qjRYCX7pMQVoYogjTsYgmdEnB3EnwFRy"],"license":"BSD-3-Clause-Clear"},"node_modules/fhevm/lib/TFHE.sol":{"keccak256":"0x221799c8332f83ab65a0b71746409f0c2c89f1cd8d9ba4091d967c667e1df734","urls":["bzz-raw://2dba387fbc612a2ee64063b0ee6c27304b3944423d11045acc50abd84577fb5f","dweb:/ipfs/QmThptDGnpd8PuncFk1rnQoCzEqwUED622yC9xZgFhwY59"],"license":"BSD-3-Clause-Clear"}},"version":1},"id":7} \ No newline at end of file diff --git a/out/MarketDataFetcher.sol/MarketDataFetcher.json b/out/MarketDataFetcher.sol/MarketDataFetcher.json index 629ef5f..b3a34bb 100644 --- a/out/MarketDataFetcher.sol/MarketDataFetcher.json +++ b/out/MarketDataFetcher.sol/MarketDataFetcher.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"BTC_TOTAL_SUPPLY","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"ETH_TOTAL_SUPPLY","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"addDataFeed","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"dataFeed","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getIndexMarketCaps","inputs":[{"name":"indexTokenAddresses","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"totalMarketCap","type":"uint256","internalType":"uint256"},{"name":"individualMarketCaps","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getTokenDataFeed","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getTokenMarketCap","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTokenPrice","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeDataFeed","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setBTCTotalSupply","inputs":[{"name":"_BTCTotalSupply","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setETHTotalSupply","inputs":[{"name":"_ethTotalSupply","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"DataFeedDoesNotExist","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"isAgainstUSD","type":"bool","internalType":"bool"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608080604052346081573315606e575f8054336001600160a01b0319821681178355916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a363072debd06001556301406f406002556109a590816100868239f35b631e4fbdf760e01b5f525f60045260245ffd5b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c90816325e9181b146104805750806329f06f541461032357806339dbc3df146103005780636e202843146102b9578063715018a6146102625780638da5cb5b1461023b578063a37860571461021e578063b240add3146101fd578063bb79aed6146101e0578063d02641a0146101b5578063d8c7432314610194578063f2fde38b1461010f5763ff228df7146100ab575f80fd5b3461010b57604036600319011261010b576100c46104bf565b6024356001600160a01b038116919082900361010b576100e26108e6565b6001600160a01b03165f90815260036020526040902080546001600160a01b0319169091179055005b5f80fd5b3461010b57602036600319011261010b576101286104bf565b6101306108e6565b6001600160a01b03168015610181575f80546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b631e4fbdf760e01b5f525f60045260245ffd5b3461010b57602036600319011261010b576101ad6108e6565b600435600255005b3461010b57602036600319011261010b5760206101d86101d36104bf565b61059f565b604051908152f35b3461010b575f36600319011261010b576020600254604051908152f35b3461010b57602036600319011261010b576102166108e6565b600435600155005b3461010b575f36600319011261010b576020600154604051908152f35b3461010b575f36600319011261010b575f546040516001600160a01b039091168152602090f35b3461010b575f36600319011261010b5761027a6108e6565b5f80546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461010b57602036600319011261010b576102d26104bf565b6102da6108e6565b6001600160a01b03165f90815260036020526040902080546001600160a01b0319169055005b3461010b57602036600319011261010b5760206101d861031e6104bf565b610547565b3461010b57602036600319011261010b5760043567ffffffffffffffff811161010b573660238201121561010b57806004013567ffffffffffffffff811161010b576024820191602436918360051b01011161010b575f916103848261050b565b9161039260405193846104d5565b80835261039e8161050b565b602084019290601f19013684375f915b8083106103ff575050506040519283926040840191845260406020850152518091526060830191905f5b8181106103e6575050500390f35b82518452859450602093840193909201916001016103d8565b909192939461041a61031e610415868587610523565b610533565b810180911161046c579261043561031e610415838587610523565b9086518110156104585760019160208260051b89010152019190949392946103ae565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b3461010b57602036600319011261010b576020906001600160a01b036104a46104bf565b165f9081526003835260409020546001600160a01b03168152f35b600435906001600160a01b038216820361010b57565b90601f8019910116810190811067ffffffffffffffff8211176104f757604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff81116104f75760051b60200190565b91908110156104585760051b0190565b356001600160a01b038116810361010b5790565b6001600160a01b038181165f908152600360205260409020546105749161056e911661059f565b91610773565b9081810291818304149015171561046c5790565b519069ffffffffffffffffffff8216820361010b57565b6001600160a01b039081165f818152600360205260409020549091169081156106e95750604051633fabe5a360e21b81529060a082600481845afa91821561068a575f92610695575b5060206004916040519283809263313ce56760e01b82525afa801561068a575f9061064d575b60ff915016604d811161046c57600a0a90811561063957600160ff1b81145f1983141661046c570590565b634e487b7160e01b5f52601260045260245ffd5b506020813d602011610682575b81610667602093836104d5565b8101031261010b575160ff8116810361010b5760ff9061060e565b3d915061065a565b6040513d5f823e3d90fd5b90915060a0813d60a0116106e1575b816106b160a093836104d5565b8101031261010b576020816106c7600493610588565b506106d86080838301519201610588565b509291506105e8565b3d91506106a4565b630724090560e41b5f52600452600160245260445ffd5b60208183031261010b5780519067ffffffffffffffff821161010b570181601f8201121561010b5780519067ffffffffffffffff82116104f75760405192610752601f8401601f1916602001856104d5565b8284526020838301011161010b57815f9260208093018386015e8301015290565b6040516395d89b4160e01b8152906001600160a01b03165f82600481845afa91821561068a575f926108ca575b506107ca6040928351906107b485836104d5565b60048252635742544360e01b602083015261090c565b156107d757505060025490565b8015801561084d575b6108455760206004918351928380926318160ddd60e01b82525afa91821561083c57505f9161080d575090565b90506020813d602011610834575b81610828602093836104d5565b8101031261010b575190565b3d915061081b565b513d5f823e3d90fd5b505060015490565b5081516395d89b4160e01b81525f81600481855afa9081156108c05790610899915f9161089e575b5083519061088385836104d5565b60048252630ae8aa8960e31b602083015261090c565b6107e0565b6108ba91503d805f833e6108b281836104d5565b810190610700565b5f610875565b83513d5f823e3d90fd5b6108df9192503d805f833e6108b281836104d5565b905f6107a0565b5f546001600160a01b031633036108f957565b63118cdaa760e01b5f523360045260245ffd5b6040516109386020828180820195805191829101875e81015f838201520301601f1981018352826104d5565b519020906040516109686020828180820195805191829101875e81015f838201520301601f1981018352826104d5565b519020149056fea26469706673582212205fef1f3c25035cea9fca2669e0163ee456c5b90682f97120d1d564faee8e09a764736f6c634300081a0033","sourceMap":"381:3438:10:-:0;;;;;;;624:10;1273:26:28;1269:95;;1297:1;381:3438:10;;624:10;-1:-1:-1;;;;;;381:3438:10;;;;;;624:10;-1:-1:-1;;;;;381:3438:10;;;;3052:40:28;;1297:1;3052:40;479:11:10;;381:3438;531:10;;381:3438;;;;;;;;1269:95:28;1322:31;;;1297:1;1322:31;1297:1;1322:31;381:3438:10;;1297:1:28;1322:31;381:3438:10;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c90816325e9181b146104805750806329f06f541461032357806339dbc3df146103005780636e202843146102b9578063715018a6146102625780638da5cb5b1461023b578063a37860571461021e578063b240add3146101fd578063bb79aed6146101e0578063d02641a0146101b5578063d8c7432314610194578063f2fde38b1461010f5763ff228df7146100ab575f80fd5b3461010b57604036600319011261010b576100c46104bf565b6024356001600160a01b038116919082900361010b576100e26108e6565b6001600160a01b03165f90815260036020526040902080546001600160a01b0319169091179055005b5f80fd5b3461010b57602036600319011261010b576101286104bf565b6101306108e6565b6001600160a01b03168015610181575f80546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b631e4fbdf760e01b5f525f60045260245ffd5b3461010b57602036600319011261010b576101ad6108e6565b600435600255005b3461010b57602036600319011261010b5760206101d86101d36104bf565b61059f565b604051908152f35b3461010b575f36600319011261010b576020600254604051908152f35b3461010b57602036600319011261010b576102166108e6565b600435600155005b3461010b575f36600319011261010b576020600154604051908152f35b3461010b575f36600319011261010b575f546040516001600160a01b039091168152602090f35b3461010b575f36600319011261010b5761027a6108e6565b5f80546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461010b57602036600319011261010b576102d26104bf565b6102da6108e6565b6001600160a01b03165f90815260036020526040902080546001600160a01b0319169055005b3461010b57602036600319011261010b5760206101d861031e6104bf565b610547565b3461010b57602036600319011261010b5760043567ffffffffffffffff811161010b573660238201121561010b57806004013567ffffffffffffffff811161010b576024820191602436918360051b01011161010b575f916103848261050b565b9161039260405193846104d5565b80835261039e8161050b565b602084019290601f19013684375f915b8083106103ff575050506040519283926040840191845260406020850152518091526060830191905f5b8181106103e6575050500390f35b82518452859450602093840193909201916001016103d8565b909192939461041a61031e610415868587610523565b610533565b810180911161046c579261043561031e610415838587610523565b9086518110156104585760019160208260051b89010152019190949392946103ae565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b3461010b57602036600319011261010b576020906001600160a01b036104a46104bf565b165f9081526003835260409020546001600160a01b03168152f35b600435906001600160a01b038216820361010b57565b90601f8019910116810190811067ffffffffffffffff8211176104f757604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff81116104f75760051b60200190565b91908110156104585760051b0190565b356001600160a01b038116810361010b5790565b6001600160a01b038181165f908152600360205260409020546105749161056e911661059f565b91610773565b9081810291818304149015171561046c5790565b519069ffffffffffffffffffff8216820361010b57565b6001600160a01b039081165f818152600360205260409020549091169081156106e95750604051633fabe5a360e21b81529060a082600481845afa91821561068a575f92610695575b5060206004916040519283809263313ce56760e01b82525afa801561068a575f9061064d575b60ff915016604d811161046c57600a0a90811561063957600160ff1b81145f1983141661046c570590565b634e487b7160e01b5f52601260045260245ffd5b506020813d602011610682575b81610667602093836104d5565b8101031261010b575160ff8116810361010b5760ff9061060e565b3d915061065a565b6040513d5f823e3d90fd5b90915060a0813d60a0116106e1575b816106b160a093836104d5565b8101031261010b576020816106c7600493610588565b506106d86080838301519201610588565b509291506105e8565b3d91506106a4565b630724090560e41b5f52600452600160245260445ffd5b60208183031261010b5780519067ffffffffffffffff821161010b570181601f8201121561010b5780519067ffffffffffffffff82116104f75760405192610752601f8401601f1916602001856104d5565b8284526020838301011161010b57815f9260208093018386015e8301015290565b6040516395d89b4160e01b8152906001600160a01b03165f82600481845afa91821561068a575f926108ca575b506107ca6040928351906107b485836104d5565b60048252635742544360e01b602083015261090c565b156107d757505060025490565b8015801561084d575b6108455760206004918351928380926318160ddd60e01b82525afa91821561083c57505f9161080d575090565b90506020813d602011610834575b81610828602093836104d5565b8101031261010b575190565b3d915061081b565b513d5f823e3d90fd5b505060015490565b5081516395d89b4160e01b81525f81600481855afa9081156108c05790610899915f9161089e575b5083519061088385836104d5565b60048252630ae8aa8960e31b602083015261090c565b6107e0565b6108ba91503d805f833e6108b281836104d5565b810190610700565b5f610875565b83513d5f823e3d90fd5b6108df9192503d805f833e6108b281836104d5565b905f6107a0565b5f546001600160a01b031633036108f957565b63118cdaa760e01b5f523360045260245ffd5b6040516109386020828180820195805191829101875e81015f838201520301601f1981018352826104d5565b519020906040516109686020828180820195805191829101875e81015f838201520301601f1981018352826104d5565b519020149056fea26469706673582212205fef1f3c25035cea9fca2669e0163ee456c5b90682f97120d1d564faee8e09a764736f6c634300081a0033","sourceMap":"381:3438:10:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;381:3438:10;;;;;;:::i;:::-;;;-1:-1:-1;;;;;381:3438:10;;;;;;;;;1500:62:28;;:::i;:::-;-1:-1:-1;;;;;381:3438:10;;;;;1905:19;381:3438;;;;;;;-1:-1:-1;;;;;;381:3438:10;;;;;;;;;;;;;;;;;-1:-1:-1;;381:3438:10;;;;;;:::i;:::-;1500:62:28;;:::i;:::-;-1:-1:-1;;;;;381:3438:10;2627:22:28;;2623:91;;381:3438:10;;;-1:-1:-1;;;;;;381:3438:10;;;;;;-1:-1:-1;;;;;381:3438:10;;3052:40:28;;381:3438:10;3052:40:28;381:3438:10;2623:91:28;2672:31;;;381:3438:10;2672:31:28;381:3438:10;;;;;2672:31:28;381:3438:10;;;;;;-1:-1:-1;;381:3438:10;;;;1500:62:28;;:::i;:::-;381:3438:10;;1775:34;381:3438;;;;;;;;-1:-1:-1;;381:3438:10;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;381:3438:10;;;;;497:44;381:3438;;;;;;;;;;;;;-1:-1:-1;;381:3438:10;;;;1500:62:28;;:::i;:::-;381:3438:10;;;;;;;;;;;-1:-1:-1;;381:3438:10;;;;;445:45;381:3438;;;;;;;;;;;;;-1:-1:-1;;381:3438:10;;;;;;;;-1:-1:-1;;;;;381:3438:10;;;;;;;;;;;;;;-1:-1:-1;;381:3438:10;;;;1500:62:28;;:::i;:::-;381:3438:10;;;-1:-1:-1;;;;;;381:3438:10;;;;-1:-1:-1;;;;;381:3438:10;3052:40:28;381:3438:10;;3052:40:28;381:3438:10;;;;;;;-1:-1:-1;;381:3438:10;;;;;;:::i;:::-;1500:62:28;;:::i;:::-;-1:-1:-1;;;;;381:3438:10;;;;;2030:19;381:3438;;;;;;;-1:-1:-1;;;;;;381:3438:10;;;;;;;;;;-1:-1:-1;;381:3438:10;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;381:3438:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;381:3438:10;;;;;1277:222;1297:30;;;;;;381:3438;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;381:3438:10;;;;;;;;;;;;;1329:3;1384:22;;;;;1366:41;1384:22;;;;;;:::i;:::-;;:::i;1366:41::-;381:3438;;;;;;;1465:22;1447:41;1465:22;;;;;;:::i;1447:41::-;381:3438;;;;;;;;;;;;;;;;;;;1282:13;;;;;;;;381:3438;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;381:3438:10;;;;;;-1:-1:-1;;;;;381:3438:10;;:::i;:::-;;;;;;2451:19;381:3438;;;;;;-1:-1:-1;;;;;381:3438:10;;;;;;;;-1:-1:-1;;;;;381:3438:10;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;381:3438:10;;;;;-1:-1:-1;381:3438:10;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;381:3438:10;;;;;;;:::o;2069:288::-;-1:-1:-1;;;;;381:3438:10;;;-1:-1:-1;381:3438:10;;;2175:19;381:3438;;;;;;2287:27;;2227:28;;381:3438;2227:28;:::i;:::-;2287:27;;:::i;:::-;381:3438;;;;;;;;;;;;;;;2069:288;:::o;381:3438::-;;;;;;;;;;:::o;2540:709::-;-1:-1:-1;;;;;381:3438:10;;;-1:-1:-1;381:3438:10;;;2679:19;381:3438;;;;;;;;;;2719:22;;2715:93;;-1:-1:-1;381:3438:10;;-1:-1:-1;;;3067:49:10;;381:3438;3067:49;381:3438;3067:49;381:3438;;3067:49;;;;;;;-1:-1:-1;3067:49:10;;;2540:709;381:3438;;3067:49;381:3438;;;;;;;;;;3143:42;;;;;;;;-1:-1:-1;3143:42:10;;;2540:709;381:3438;;;;;;;;;;;;;;;;-1:-1:-1;;;381:3438:10;;-1:-1:-1;;381:3438:10;;;;;;2540:709;:::o;381:3438::-;;;;-1:-1:-1;381:3438:10;;3067:49;381:3438;;-1:-1:-1;381:3438:10;3143:42;;381:3438;3143:42;;381:3438;3143:42;;;;;;381:3438;3143:42;;;:::i;:::-;;;381:3438;;;;;;;;;;;;;3143:42;;;;;;-1:-1:-1;3143:42:10;;;381:3438;;;-1:-1:-1;381:3438:10;;;;;3067:49;;;;;;;;;;;;;;;;;;:::i;:::-;;;381:3438;;;;;;;3067:49;381:3438;;:::i;:::-;;;;;;;;;;;:::i;:::-;;3067:49;;;;;;;;-1:-1:-1;3067:49:10;;2715:93;2764:33;;;-1:-1:-1;2764:33:10;;381:3438;2792:4;381:3438;;;-1:-1:-1;2764:33:10;381:3438;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;381:3438:10;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;381:3438:10;;;;;;;;;;;;;;:::o;3443:374::-;381:3438;;-1:-1:-1;;;3550:21:10;;381:3438;-1:-1:-1;;;;;381:3438:10;;;3550:21;381:3438;;3550:21;;;;;;;381:3438;3550:21;;;3443:374;381:3438;3534:46;381:3438;;;;;;;;;:::i;:::-;3550:21;381:3438;;-1:-1:-1;;;381:3438:10;;;;3534:46;:::i;:::-;381:3438;;;;;3603:16;381:3438;3596:23;:::o;3530:238::-;3640:28;;:78;;;;3530:238;3636:132;;381:3438;3550:21;3530:238;381:3438;;;;;;;;;3784:26;;;;;;;;;;381:3438;3784:26;;;3777:33;3443:374;:::o;3784:26::-;;;381:3438;3784:26;;381:3438;3784:26;;;;;;381:3438;3784:26;;;:::i;:::-;;;381:3438;;;;;3443:374;:::o;3784:26::-;;;-1:-1:-1;3784:26:10;;;381:3438;;;;;;;;3636:132;381:3438;;3741:16;381:3438;3734:23;:::o;3640:78::-;-1:-1:-1;381:3438:10;;-1:-1:-1;;;3688:21:10;;381:3438;;3550:21;381:3438;3688:21;;;;;;;;;3672:46;3688:21;381:3438;3688:21;;;3640:78;381:3438;;;;;;;;:::i;:::-;3550:21;381:3438;;-1:-1:-1;;;381:3438:10;;;;3672:46;:::i;:::-;3640:78;;3688:21;;;;;;381:3438;3688:21;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;381:3438;;;;;;;;;3550:21;;;;;;;381:3438;3550:21;;;;;;:::i;:::-;;;;;1796:162:28;1710:6;381:3438:10;-1:-1:-1;;;;;381:3438:10;735:10:46;1855:23:28;1851:101;;1796:162::o;1851:101::-;1901:40;;;1710:6;1901:40;735:10:46;1901:40:28;381:3438:10;;1710:6:28;1901:40;3255:182:10;381:3438;;3371:21;;;;;;;381:3438;;;;;;;;;;;-1:-1:-1;381:3438:10;;;;3371:21;;381:3438;;3371:21;;;;;;:::i;:::-;381:3438;3361:32;;381:3438;;;3407:21;3371;3407;;;;;381:3438;;;;;;;;;;;-1:-1:-1;381:3438:10;;;;3407:21;;381:3438;;3407:21;;;;;;:::i;:::-;381:3438;3397:32;;3361:68;3255:182;:::o","linkReferences":{}},"methodIdentifiers":{"BTC_TOTAL_SUPPLY()":"bb79aed6","ETH_TOTAL_SUPPLY()":"a3786057","addDataFeed(address,address)":"ff228df7","getIndexMarketCaps(address[])":"29f06f54","getTokenDataFeed(address)":"25e9181b","getTokenMarketCap(address)":"39dbc3df","getTokenPrice(address)":"d02641a0","owner()":"8da5cb5b","removeDataFeed(address)":"6e202843","renounceOwnership()":"715018a6","setBTCTotalSupply(uint256)":"d8c74323","setETHTotalSupply(uint256)":"b240add3","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isAgainstUSD\",\"type\":\"bool\"}],\"name\":\"DataFeedDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BTC_TOTAL_SUPPLY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ETH_TOTAL_SUPPLY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dataFeed\",\"type\":\"address\"}],\"name\":\"addDataFeed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"indexTokenAddresses\",\"type\":\"address[]\"}],\"name\":\"getIndexMarketCaps\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalMarketCap\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"individualMarketCaps\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getTokenDataFeed\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getTokenMarketCap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getTokenPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"removeDataFeed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_BTCTotalSupply\",\"type\":\"uint256\"}],\"name\":\"setBTCTotalSupply\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_ethTotalSupply\",\"type\":\"uint256\"}],\"name\":\"setETHTotalSupply\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"getIndexMarketCaps(address[])\":{\"params\":{\"indexTokenAddresses\":\"Array of token addresses.\"},\"returns\":{\"individualMarketCaps\":\"Array of market capitalization values for each token.\",\"totalMarketCap\":\"The aggregated market capitalization.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getIndexMarketCaps(address[])\":{\"notice\":\"Calculates the total market capitalization for an index and individual token market caps.\"},\"getTokenPrice(address)\":{\"notice\":\"Returns the latest answer.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/marketData/MarketDataFetcher.sol\":\"MarketDataFetcher\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@chainlink/=lib/chainlink/\",\":@ensdomains/=lib/v4-core/node_modules/@ensdomains/\",\":@httpz-contracts/=lib/httpz-contracts/contracts/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/universal-router/=lib/universal-router.git/\",\":@uniswap/v2-core/=lib/v2-core/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/\",\":@uniswap/v4-core/=lib/v4-core/\",\":@uniswap/v4-periphery/=lib/v4-periphery/\",\":chainlink/=lib/chainlink/\",\":ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":fhevm-contracts/=node_modules/fhevm-contracts/\",\":fhevm-core-contracts/=node_modules/fhevm-core-contracts/\",\":fhevm/=node_modules/fhevm/\",\":forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":httpz-contracts/=lib/httpz-contracts/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":permit2/=lib/permit2/\",\":solmate/=lib/permit2/lib/solmate/\",\":universal-router.git/=lib/universal-router.git/\",\":v2-core/=lib/v2-core/contracts/\",\":v3-core/=lib/v3-core/\",\":v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/\",\":v4-core/=lib/v4-core/src/\",\":v4-periphery/=lib/v4-periphery/\"],\"viaIR\":true},\"sources\":{\"contracts/interfaces/IMarketDataFetcher.sol\":{\"keccak256\":\"0xa5343d6d80de89e9e259d51e9fd50444de43f61f6da31c26ad6f49029a47481a\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://e7fb90369df691fd542180e13cc7a881b46ef86dc1fdac4622d19cb292059112\",\"dweb:/ipfs/QmUnvC7eyCdg83tARSBSoEDPKjZHJZ4mKFWdPwSycki3KL\"]},\"contracts/marketData/MarketDataFetcher.sol\":{\"keccak256\":\"0xa756f8531752b5c71493a2c2ff98b3eb75add8b08f925d85313a1ee0c74f4268\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d16ae4cd7db8402c01772c5e11d68616e572f6d1f52167b3ca3749d3844a2d6\",\"dweb:/ipfs/QmbcxnqiDkBNhBCRQd9w7qjU2nC7nTUw9QGqWPiVoZ5DRP\"]},\"lib/chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol\":{\"keccak256\":\"0x257a8d28fa83d3d942547c8e129ef465e4b5f3f31171e7be4739a4c98da6b4f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d39e11b1dc7b9b8ccdabbc9be442ab7cda4a81c748f57e316dcb1bcb4a28bf9\",\"dweb:/ipfs/QmaG6vz6W6iEUBsbHSBob5mdcitYxWjoygxREHpsJHfWrS\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x6ef9389a2c07bc40d8a7ba48914724ab2c108fac391ce12314f01321813e6368\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7a5cb39b1e6df68f4dd9a5e76e853d745a74ffb3dfd7df4ae4d2ace6992a171\",\"dweb:/ipfs/QmPbzKR19rdM8X3PLQjsmHRepUKhvoZnedSR63XyGtXZib\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"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\":\"0x4c9571aed0c2b6ef11832545554fc11ffdb03746daaf5c73683c00600bfc7ec0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e78b34b58ce9de91b91943b4f3cc3ce121d0b151e123e8a600ac5ef64d91db6c\",\"dweb:/ipfs/QmRkaQnPCYwLrXgbpGujJTx32PaZK63KSPJJV1XmnQuCMb\"]},\"lib/v4-core/src/interfaces/IPoolManager.sol\":{\"keccak256\":\"0x3534f00531038e77ab8a7fc4d0a6e0993ee53fb7a396b1324ad917318ea46cea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4a7e771828dc40848485b568a1cf514f553ace6653f4f4d1ad3f3e9cdb6c27\",\"dweb:/ipfs/QmTjzQ7KVYnrEWtxPER2E4MXzycgcznfzSDsZtd5turk5V\"]},\"lib/v4-core/src/interfaces/IProtocolFees.sol\":{\"keccak256\":\"0x32a666e588a2f66334430357bb1e2424fe7eebeb98a3364b1dd16eb6ccca9848\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85751d302125881f72e5f8af051c2d5d9b1f606ebaea8ca7d04fccdd27cc252d\",\"dweb:/ipfs/QmeRwomeh9NWm6A6fgNA4KZPQZHPpdKsPQyYsHSFmvud7J\"]},\"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/CustomRevert.sol\":{\"keccak256\":\"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd\",\"dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt\"]},\"lib/v4-core/src/libraries/SafeCast.sol\":{\"keccak256\":\"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59\",\"dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj\"]},\"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\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"bool","name":"isAgainstUSD","type":"bool"}],"type":"error","name":"DataFeedDoesNotExist"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BTC_TOTAL_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ETH_TOTAL_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"dataFeed","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addDataFeed"},{"inputs":[{"internalType":"address[]","name":"indexTokenAddresses","type":"address[]"}],"stateMutability":"view","type":"function","name":"getIndexMarketCaps","outputs":[{"internalType":"uint256","name":"totalMarketCap","type":"uint256"},{"internalType":"uint256[]","name":"individualMarketCaps","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"getTokenDataFeed","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"getTokenMarketCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"getTokenPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeDataFeed"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"uint256","name":"_BTCTotalSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setBTCTotalSupply"},{"inputs":[{"internalType":"uint256","name":"_ethTotalSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setETHTotalSupply"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"getIndexMarketCaps(address[])":{"params":{"indexTokenAddresses":"Array of token addresses."},"returns":{"individualMarketCaps":"Array of market capitalization values for each token.","totalMarketCap":"The aggregated market capitalization."}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"getIndexMarketCaps(address[])":{"notice":"Calculates the total market capitalization for an index and individual token market caps."},"getTokenPrice(address)":{"notice":"Returns the latest answer."}},"version":1}},"settings":{"remappings":["@chainlink/=lib/chainlink/","@ensdomains/=lib/v4-core/node_modules/@ensdomains/","@httpz-contracts/=lib/httpz-contracts/contracts/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@uniswap/universal-router/=lib/universal-router.git/","@uniswap/v2-core/=lib/v2-core/","@uniswap/v3-core/=lib/v3-core/","@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/","@uniswap/v4-core/=lib/v4-core/","@uniswap/v4-periphery/=lib/v4-periphery/","chainlink/=lib/chainlink/","ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","eth-gas-reporter/=node_modules/eth-gas-reporter/","fhevm-contracts/=node_modules/fhevm-contracts/","fhevm-core-contracts/=node_modules/fhevm-core-contracts/","fhevm/=node_modules/fhevm/","forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","httpz-contracts/=lib/httpz-contracts/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","permit2/=lib/permit2/","solmate/=lib/permit2/lib/solmate/","universal-router.git/=lib/universal-router.git/","v2-core/=lib/v2-core/contracts/","v3-core/=lib/v3-core/","v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/","v4-core/=lib/v4-core/src/","v4-periphery/=lib/v4-periphery/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/marketData/MarketDataFetcher.sol":"MarketDataFetcher"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/interfaces/IMarketDataFetcher.sol":{"keccak256":"0xa5343d6d80de89e9e259d51e9fd50444de43f61f6da31c26ad6f49029a47481a","urls":["bzz-raw://e7fb90369df691fd542180e13cc7a881b46ef86dc1fdac4622d19cb292059112","dweb:/ipfs/QmUnvC7eyCdg83tARSBSoEDPKjZHJZ4mKFWdPwSycki3KL"],"license":"BSD-3-Clause-Clear"},"contracts/marketData/MarketDataFetcher.sol":{"keccak256":"0xa756f8531752b5c71493a2c2ff98b3eb75add8b08f925d85313a1ee0c74f4268","urls":["bzz-raw://2d16ae4cd7db8402c01772c5e11d68616e572f6d1f52167b3ca3749d3844a2d6","dweb:/ipfs/QmbcxnqiDkBNhBCRQd9w7qjU2nC7nTUw9QGqWPiVoZ5DRP"],"license":"MIT"},"lib/chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol":{"keccak256":"0x257a8d28fa83d3d942547c8e129ef465e4b5f3f31171e7be4739a4c98da6b4f0","urls":["bzz-raw://6d39e11b1dc7b9b8ccdabbc9be442ab7cda4a81c748f57e316dcb1bcb4a28bf9","dweb:/ipfs/QmaG6vz6W6iEUBsbHSBob5mdcitYxWjoygxREHpsJHfWrS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x6ef9389a2c07bc40d8a7ba48914724ab2c108fac391ce12314f01321813e6368","urls":["bzz-raw://b7a5cb39b1e6df68f4dd9a5e76e853d745a74ffb3dfd7df4ae4d2ace6992a171","dweb:/ipfs/QmPbzKR19rdM8X3PLQjsmHRepUKhvoZnedSR63XyGtXZib"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330","urls":["bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf","dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"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":"0x4c9571aed0c2b6ef11832545554fc11ffdb03746daaf5c73683c00600bfc7ec0","urls":["bzz-raw://e78b34b58ce9de91b91943b4f3cc3ce121d0b151e123e8a600ac5ef64d91db6c","dweb:/ipfs/QmRkaQnPCYwLrXgbpGujJTx32PaZK63KSPJJV1XmnQuCMb"],"license":"MIT"},"lib/v4-core/src/interfaces/IPoolManager.sol":{"keccak256":"0x3534f00531038e77ab8a7fc4d0a6e0993ee53fb7a396b1324ad917318ea46cea","urls":["bzz-raw://0a4a7e771828dc40848485b568a1cf514f553ace6653f4f4d1ad3f3e9cdb6c27","dweb:/ipfs/QmTjzQ7KVYnrEWtxPER2E4MXzycgcznfzSDsZtd5turk5V"],"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/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/CustomRevert.sol":{"keccak256":"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de","urls":["bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd","dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt"],"license":"MIT"},"lib/v4-core/src/libraries/SafeCast.sol":{"keccak256":"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86","urls":["bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59","dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj"],"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"}},"version":1},"id":10} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"BTC_TOTAL_SUPPLY","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"ETH_TOTAL_SUPPLY","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"addDataFeed","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"dataFeed","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getIndexMarketCaps","inputs":[{"name":"indexTokenAddresses","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"totalMarketCap","type":"uint256","internalType":"uint256"},{"name":"individualMarketCaps","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getTokenDataFeed","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getTokenMarketCap","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTokenPrice","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeDataFeed","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setBTCTotalSupply","inputs":[{"name":"_BTCTotalSupply","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setETHTotalSupply","inputs":[{"name":"_ethTotalSupply","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"DataFeedDoesNotExist","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"isAgainstUSD","type":"bool","internalType":"bool"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608080604052346081573315606e575f8054336001600160a01b0319821681178355916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a363072debd06001556301406f406002556109ab90816100868239f35b631e4fbdf760e01b5f525f60045260245ffd5b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c90816325e9181b146104805750806329f06f541461032357806339dbc3df146103005780636e202843146102b9578063715018a6146102625780638da5cb5b1461023b578063a37860571461021e578063b240add3146101fd578063bb79aed6146101e0578063d02641a0146101b5578063d8c7432314610194578063f2fde38b1461010f5763ff228df7146100ab575f80fd5b3461010b57604036600319011261010b576100c46104bf565b6024356001600160a01b038116919082900361010b576100e26108ec565b6001600160a01b03165f90815260036020526040902080546001600160a01b0319169091179055005b5f80fd5b3461010b57602036600319011261010b576101286104bf565b6101306108ec565b6001600160a01b03168015610181575f80546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b631e4fbdf760e01b5f525f60045260245ffd5b3461010b57602036600319011261010b576101ad6108ec565b600435600255005b3461010b57602036600319011261010b5760206101d86101d36104bf565b61059f565b604051908152f35b3461010b575f36600319011261010b576020600254604051908152f35b3461010b57602036600319011261010b576102166108ec565b600435600155005b3461010b575f36600319011261010b576020600154604051908152f35b3461010b575f36600319011261010b575f546040516001600160a01b039091168152602090f35b3461010b575f36600319011261010b5761027a6108ec565b5f80546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461010b57602036600319011261010b576102d26104bf565b6102da6108ec565b6001600160a01b03165f90815260036020526040902080546001600160a01b0319169055005b3461010b57602036600319011261010b5760206101d861031e6104bf565b610547565b3461010b57602036600319011261010b5760043567ffffffffffffffff811161010b573660238201121561010b57806004013567ffffffffffffffff811161010b576024820191602436918360051b01011161010b575f916103848261050b565b9161039260405193846104d5565b80835261039e8161050b565b602084019290601f19013684375f915b8083106103ff575050506040519283926040840191845260406020850152518091526060830191905f5b8181106103e6575050500390f35b82518452859450602093840193909201916001016103d8565b909192939461041a61031e610415868587610523565b610533565b810180911161046c579261043561031e610415838587610523565b9086518110156104585760019160208260051b89010152019190949392946103ae565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b3461010b57602036600319011261010b576020906001600160a01b036104a46104bf565b165f9081526003835260409020546001600160a01b03168152f35b600435906001600160a01b038216820361010b57565b90601f8019910116810190811067ffffffffffffffff8211176104f757604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff81116104f75760051b60200190565b91908110156104585760051b0190565b356001600160a01b038116810361010b5790565b6001600160a01b038181165f908152600360205260409020546105749161056e911661059f565b91610779565b9081810291818304149015171561046c5790565b519069ffffffffffffffffffff8216820361010b57565b6001600160a01b039081165f818152600360205260409020549091169081156106ef5750604051633fabe5a360e21b81529060a082600481845afa918215610690575f9261069b575b5060206004916040519283809263313ce56760e01b82525afa908115610690575f91610654575b50620f4240820291808304620f4240149015171561046c5760ff16604d811161046c57600a0a908115610640570490565b634e487b7160e01b5f52601260045260245ffd5b90506020813d602011610688575b8161066f602093836104d5565b8101031261010b575160ff8116810361010b575f61060f565b3d9150610662565b6040513d5f823e3d90fd5b90915060a0813d60a0116106e7575b816106b760a093836104d5565b8101031261010b576020816106cd600493610588565b506106de6080838301519201610588565b509291506105e8565b3d91506106aa565b630724090560e41b5f52600452600160245260445ffd5b60208183031261010b5780519067ffffffffffffffff821161010b570181601f8201121561010b5780519067ffffffffffffffff82116104f75760405192610758601f8401601f1916602001856104d5565b8284526020838301011161010b57815f9260208093018386015e8301015290565b6040516395d89b4160e01b8152906001600160a01b03165f82600481845afa918215610690575f926108d0575b506107d06040928351906107ba85836104d5565b60048252635742544360e01b6020830152610912565b156107dd57505060025490565b80158015610853575b61084b5760206004918351928380926318160ddd60e01b82525afa91821561084257505f91610813575090565b90506020813d60201161083a575b8161082e602093836104d5565b8101031261010b575190565b3d9150610821565b513d5f823e3d90fd5b505060015490565b5081516395d89b4160e01b81525f81600481855afa9081156108c6579061089f915f916108a4575b5083519061088985836104d5565b60048252630ae8aa8960e31b6020830152610912565b6107e6565b6108c091503d805f833e6108b881836104d5565b810190610706565b5f61087b565b83513d5f823e3d90fd5b6108e59192503d805f833e6108b881836104d5565b905f6107a6565b5f546001600160a01b031633036108ff57565b63118cdaa760e01b5f523360045260245ffd5b60405161093e6020828180820195805191829101875e81015f838201520301601f1981018352826104d5565b5190209060405161096e6020828180820195805191829101875e81015f838201520301601f1981018352826104d5565b519020149056fea2646970667358221220efcdcbc37cd6502978857cce928ed37e1645bb3837de92cdd83e79cbdbf6736a64736f6c634300081a0033","sourceMap":"730:4733:13:-:0;;;;;;;1024:10;1273:26:31;1269:95;;1297:1;730:4733:13;;1024:10;-1:-1:-1;;;;;;730:4733:13;;;;;;1024:10;-1:-1:-1;;;;;730:4733:13;;;;3052:40:31;;1297:1;3052:40;828:11:13;;730:4733;880:10;;730:4733;;;;;;;;1269:95:31;1322:31;;;1297:1;1322:31;1297:1;1322:31;730:4733:13;;1297:1:31;1322:31;730:4733:13;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c90816325e9181b146104805750806329f06f541461032357806339dbc3df146103005780636e202843146102b9578063715018a6146102625780638da5cb5b1461023b578063a37860571461021e578063b240add3146101fd578063bb79aed6146101e0578063d02641a0146101b5578063d8c7432314610194578063f2fde38b1461010f5763ff228df7146100ab575f80fd5b3461010b57604036600319011261010b576100c46104bf565b6024356001600160a01b038116919082900361010b576100e26108ec565b6001600160a01b03165f90815260036020526040902080546001600160a01b0319169091179055005b5f80fd5b3461010b57602036600319011261010b576101286104bf565b6101306108ec565b6001600160a01b03168015610181575f80546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b631e4fbdf760e01b5f525f60045260245ffd5b3461010b57602036600319011261010b576101ad6108ec565b600435600255005b3461010b57602036600319011261010b5760206101d86101d36104bf565b61059f565b604051908152f35b3461010b575f36600319011261010b576020600254604051908152f35b3461010b57602036600319011261010b576102166108ec565b600435600155005b3461010b575f36600319011261010b576020600154604051908152f35b3461010b575f36600319011261010b575f546040516001600160a01b039091168152602090f35b3461010b575f36600319011261010b5761027a6108ec565b5f80546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461010b57602036600319011261010b576102d26104bf565b6102da6108ec565b6001600160a01b03165f90815260036020526040902080546001600160a01b0319169055005b3461010b57602036600319011261010b5760206101d861031e6104bf565b610547565b3461010b57602036600319011261010b5760043567ffffffffffffffff811161010b573660238201121561010b57806004013567ffffffffffffffff811161010b576024820191602436918360051b01011161010b575f916103848261050b565b9161039260405193846104d5565b80835261039e8161050b565b602084019290601f19013684375f915b8083106103ff575050506040519283926040840191845260406020850152518091526060830191905f5b8181106103e6575050500390f35b82518452859450602093840193909201916001016103d8565b909192939461041a61031e610415868587610523565b610533565b810180911161046c579261043561031e610415838587610523565b9086518110156104585760019160208260051b89010152019190949392946103ae565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b3461010b57602036600319011261010b576020906001600160a01b036104a46104bf565b165f9081526003835260409020546001600160a01b03168152f35b600435906001600160a01b038216820361010b57565b90601f8019910116810190811067ffffffffffffffff8211176104f757604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff81116104f75760051b60200190565b91908110156104585760051b0190565b356001600160a01b038116810361010b5790565b6001600160a01b038181165f908152600360205260409020546105749161056e911661059f565b91610779565b9081810291818304149015171561046c5790565b519069ffffffffffffffffffff8216820361010b57565b6001600160a01b039081165f818152600360205260409020549091169081156106ef5750604051633fabe5a360e21b81529060a082600481845afa918215610690575f9261069b575b5060206004916040519283809263313ce56760e01b82525afa908115610690575f91610654575b50620f4240820291808304620f4240149015171561046c5760ff16604d811161046c57600a0a908115610640570490565b634e487b7160e01b5f52601260045260245ffd5b90506020813d602011610688575b8161066f602093836104d5565b8101031261010b575160ff8116810361010b575f61060f565b3d9150610662565b6040513d5f823e3d90fd5b90915060a0813d60a0116106e7575b816106b760a093836104d5565b8101031261010b576020816106cd600493610588565b506106de6080838301519201610588565b509291506105e8565b3d91506106aa565b630724090560e41b5f52600452600160245260445ffd5b60208183031261010b5780519067ffffffffffffffff821161010b570181601f8201121561010b5780519067ffffffffffffffff82116104f75760405192610758601f8401601f1916602001856104d5565b8284526020838301011161010b57815f9260208093018386015e8301015290565b6040516395d89b4160e01b8152906001600160a01b03165f82600481845afa918215610690575f926108d0575b506107d06040928351906107ba85836104d5565b60048252635742544360e01b6020830152610912565b156107dd57505060025490565b80158015610853575b61084b5760206004918351928380926318160ddd60e01b82525afa91821561084257505f91610813575090565b90506020813d60201161083a575b8161082e602093836104d5565b8101031261010b575190565b3d9150610821565b513d5f823e3d90fd5b505060015490565b5081516395d89b4160e01b81525f81600481855afa9081156108c6579061089f915f916108a4575b5083519061088985836104d5565b60048252630ae8aa8960e31b6020830152610912565b6107e6565b6108c091503d805f833e6108b881836104d5565b810190610706565b5f61087b565b83513d5f823e3d90fd5b6108e59192503d805f833e6108b881836104d5565b905f6107a6565b5f546001600160a01b031633036108ff57565b63118cdaa760e01b5f523360045260245ffd5b60405161093e6020828180820195805191829101875e81015f838201520301601f1981018352826104d5565b5190209060405161096e6020828180820195805191829101875e81015f838201520301601f1981018352826104d5565b519020149056fea2646970667358221220efcdcbc37cd6502978857cce928ed37e1645bb3837de92cdd83e79cbdbf6736a64736f6c634300081a0033","sourceMap":"730:4733:13:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;730:4733:13;;;;;;:::i;:::-;;;-1:-1:-1;;;;;730:4733:13;;;;;;;;;1500:62:31;;:::i;:::-;-1:-1:-1;;;;;730:4733:13;;;;;2793:19;730:4733;;;;;;;-1:-1:-1;;;;;;730:4733:13;;;;;;;;;;;;;;;;;-1:-1:-1;;730:4733:13;;;;;;:::i;:::-;1500:62:31;;:::i;:::-;-1:-1:-1;;;;;730:4733:13;2627:22:31;;2623:91;;730:4733:13;;;-1:-1:-1;;;;;;730:4733:13;;;;;;-1:-1:-1;;;;;730:4733:13;;3052:40:31;;730:4733:13;3052:40:31;730:4733:13;2623:91:31;2672:31;;;730:4733:13;2672:31:31;730:4733:13;;;;;2672:31:31;730:4733:13;;;;;;-1:-1:-1;;730:4733:13;;;;1500:62:31;;:::i;:::-;730:4733:13;;2490:34;730:4733;;;;;;;;-1:-1:-1;;730:4733:13;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;730:4733:13;;;;;846:44;730:4733;;;;;;;;;;;;;-1:-1:-1;;730:4733:13;;;;1500:62:31;;:::i;:::-;730:4733:13;;;;;;;;;;;-1:-1:-1;;730:4733:13;;;;;794:45;730:4733;;;;;;;;;;;;;-1:-1:-1;;730:4733:13;;;;;;;;-1:-1:-1;;;;;730:4733:13;;;;;;;;;;;;;;-1:-1:-1;;730:4733:13;;;;1500:62:31;;:::i;:::-;730:4733:13;;;-1:-1:-1;;;;;;730:4733:13;;;;-1:-1:-1;;;;;730:4733:13;3052:40:31;730:4733:13;;3052:40:31;730:4733:13;;;;;;;-1:-1:-1;;730:4733:13;;;;;;:::i;:::-;1500:62:31;;:::i;:::-;-1:-1:-1;;;;;730:4733:13;;;;;3056:19;730:4733;;;;;;;-1:-1:-1;;;;;;730:4733:13;;;;;;;;;;-1:-1:-1;;730:4733:13;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;730:4733:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;730:4733:13;;;;;1686:222;1706:30;;;;;;730:4733;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;730:4733:13;;;;;;;;;;;;;1738:3;1793:22;;;;;1775:41;1793:22;;;;;;:::i;:::-;;:::i;1775:41::-;730:4733;;;;;;;1874:22;1856:41;1874:22;;;;;;:::i;1856:41::-;730:4733;;;;;;;;;;;;;;;;;;;1691:13;;;;;;;;730:4733;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;730:4733:13;;;;;;-1:-1:-1;;;;;730:4733:13;;:::i;:::-;;;;;;3851:19;730:4733;;;;;;-1:-1:-1;;;;;730:4733:13;;;;;;;;-1:-1:-1;;;;;730:4733:13;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;730:4733:13;;;;;-1:-1:-1;730:4733:13;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;730:4733:13;;;;;;;:::o;3300:288::-;-1:-1:-1;;;;;730:4733:13;;;-1:-1:-1;730:4733:13;;;3406:19;730:4733;;;;;;3518:27;;3458:28;;730:4733;3458:28;:::i;:::-;3518:27;;:::i;:::-;3562:19;730:4733;;;;;;;;;;;;;;3300:288;:::o;730:4733::-;;;;;;;;;;:::o;4139:559::-;-1:-1:-1;;;;;730:4733:13;;;-1:-1:-1;730:4733:13;;;4278:19;730:4733;;;;;;;;;;4318:22;;4314:93;;-1:-1:-1;730:4733:13;;-1:-1:-1;;;4442:49:13;;730:4733;4442:49;730:4733;4442:49;730:4733;;4442:49;;;;;;;-1:-1:-1;4442:49:13;;;4139:559;730:4733;;4442:49;730:4733;;;;;;;;;;4522:42;;;;;;;;;-1:-1:-1;4522:42:13;;;4139:559;730:4733;938:3;730:4733;;;;;;938:3;730:4733;;;;;;;;;938:3;;;;;;;;;;;;;4139:559;:::o;938:3::-;730:4733;;;-1:-1:-1;938:3:13;;4442:49;938:3;;-1:-1:-1;938:3:13;4522:42;;;730:4733;4522:42;;730:4733;4522:42;;;;;;730:4733;4522:42;;;:::i;:::-;;;730:4733;;;;;;;;;;;;4522:42;;;;;;-1:-1:-1;4522:42:13;;;730:4733;;;-1:-1:-1;730:4733:13;;;;;4442:49;;;;;;;;;;;;;;;;;;:::i;:::-;;;730:4733;;;;;;;4442:49;730:4733;;:::i;:::-;;;;;;;;;;;:::i;:::-;;4442:49;;;;;;;;-1:-1:-1;4442:49:13;;4314:93;4363:33;;;-1:-1:-1;4363:33:13;;730:4733;4391:4;730:4733;;;-1:-1:-1;4363:33:13;730:4733;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;730:4733:13;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;730:4733:13;;;;;;;;;;;;;;:::o;5087:374::-;730:4733;;-1:-1:-1;;;5194:21:13;;730:4733;-1:-1:-1;;;;;730:4733:13;;;5194:21;730:4733;;5194:21;;;;;;;730:4733;5194:21;;;5087:374;730:4733;5178:46;730:4733;;;;;;;;;:::i;:::-;5194:21;730:4733;;-1:-1:-1;;;730:4733:13;;;;5178:46;:::i;:::-;730:4733;;;;;5247:16;730:4733;5240:23;:::o;5174:238::-;5284:28;;:78;;;;5174:238;5280:132;;730:4733;5194:21;5174:238;730:4733;;;;;;;;;5428:26;;;;;;;;;;730:4733;5428:26;;;5421:33;5087:374;:::o;5428:26::-;;;730:4733;5428:26;;730:4733;5428:26;;;;;;730:4733;5428:26;;;:::i;:::-;;;730:4733;;;;;5087:374;:::o;5428:26::-;;;-1:-1:-1;5428:26:13;;;730:4733;;;;;;;;5280:132;730:4733;;5385:16;730:4733;5378:23;:::o;5284:78::-;-1:-1:-1;730:4733:13;;-1:-1:-1;;;5332:21:13;;730:4733;;5194:21;730:4733;5332:21;;;;;;;;;5316:46;5332:21;730:4733;5332:21;;;5284:78;730:4733;;;;;;;;:::i;:::-;5194:21;730:4733;;-1:-1:-1;;;730:4733:13;;;;5316:46;:::i;:::-;5284:78;;5332:21;;;;;;730:4733;5332:21;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;730:4733;;;;;;;;;5194:21;;;;;;;730:4733;5194:21;;;;;;:::i;:::-;;;;;1796:162:31;1710:6;730:4733:13;-1:-1:-1;;;;;730:4733:13;735:10:49;1855:23:31;1851:101;;1796:162::o;1851:101::-;1901:40;;;1710:6;1901:40;735:10:49;1901:40:31;730:4733:13;;1710:6:31;1901:40;4704:182:13;730:4733;;4820:21;;;;;;;730:4733;;;;;;;;;;;-1:-1:-1;730:4733:13;;;;4820:21;;730:4733;;4820:21;;;;;;:::i;:::-;730:4733;4810:32;;730:4733;;;4856:21;4820;4856;;;;;730:4733;;;;;;;;;;;-1:-1:-1;730:4733:13;;;;4856:21;;730:4733;;4856:21;;;;;;:::i;:::-;730:4733;4846:32;;4810:68;4704:182;:::o","linkReferences":{}},"methodIdentifiers":{"BTC_TOTAL_SUPPLY()":"bb79aed6","ETH_TOTAL_SUPPLY()":"a3786057","addDataFeed(address,address)":"ff228df7","getIndexMarketCaps(address[])":"29f06f54","getTokenDataFeed(address)":"25e9181b","getTokenMarketCap(address)":"39dbc3df","getTokenPrice(address)":"d02641a0","owner()":"8da5cb5b","removeDataFeed(address)":"6e202843","renounceOwnership()":"715018a6","setBTCTotalSupply(uint256)":"d8c74323","setETHTotalSupply(uint256)":"b240add3","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isAgainstUSD\",\"type\":\"bool\"}],\"name\":\"DataFeedDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BTC_TOTAL_SUPPLY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ETH_TOTAL_SUPPLY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dataFeed\",\"type\":\"address\"}],\"name\":\"addDataFeed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"indexTokenAddresses\",\"type\":\"address[]\"}],\"name\":\"getIndexMarketCaps\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalMarketCap\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"individualMarketCaps\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getTokenDataFeed\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getTokenMarketCap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getTokenPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"removeDataFeed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_BTCTotalSupply\",\"type\":\"uint256\"}],\"name\":\"setBTCTotalSupply\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_ethTotalSupply\",\"type\":\"uint256\"}],\"name\":\"setETHTotalSupply\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This contract integrates with Chainlink price feeds to provide real-time token prices and calculates market capitalizations. It maintains a mapping of tokens to their price feeds and handles special cases for native ETH and wrapped BTC.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"addDataFeed(address,address)\":{\"params\":{\"dataFeed\":\"The address of the Chainlink price feed\",\"token\":\"The address of the token\"}},\"getIndexMarketCaps(address[])\":{\"params\":{\"indexTokenAddresses\":\"Array of token addresses in the index\"},\"returns\":{\"individualMarketCaps\":\"Array of market capitalization values for each token\",\"totalMarketCap\":\"The aggregated market capitalization of all tokens\"}},\"getTokenDataFeed(address)\":{\"params\":{\"token\":\"The address of the token\"},\"returns\":{\"_0\":\"The address of the token's price feed\"}},\"getTokenMarketCap(address)\":{\"params\":{\"token\":\"The address of the token\"},\"returns\":{\"_0\":\"The market capitalization in USD (price * total supply)\"}},\"getTokenPrice(address)\":{\"details\":\"Reverts if the price feed doesn't exist\",\"params\":{\"token\":\"The address of the token's price feed\"},\"returns\":{\"_0\":\"The token price in USD with 6 decimals\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"removeDataFeed(address)\":{\"params\":{\"token\":\"The address of the token whose feed should be removed\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setBTCTotalSupply(uint256)\":{\"params\":{\"_BTCTotalSupply\":\"The new total supply value\"}},\"setETHTotalSupply(uint256)\":{\"params\":{\"_ethTotalSupply\":\"The new total supply value\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"MarketDataFetcher\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addDataFeed(address,address)\":{\"notice\":\"Adds a new price feed for a token\"},\"getIndexMarketCaps(address[])\":{\"notice\":\"Calculates the total market capitalization for an index and individual token market caps\"},\"getTokenDataFeed(address)\":{\"notice\":\"Gets the price feed address for a token\"},\"getTokenMarketCap(address)\":{\"notice\":\"Calculates the market capitalization for a specific token\"},\"getTokenPrice(address)\":{\"notice\":\"Gets the latest price for a token from its price feed\"},\"removeDataFeed(address)\":{\"notice\":\"Removes a price feed for a token\"},\"setBTCTotalSupply(uint256)\":{\"notice\":\"Updates the total supply of BTC used for market cap calculations\"},\"setETHTotalSupply(uint256)\":{\"notice\":\"Updates the total supply of ETH used for market cap calculations\"}},\"notice\":\"Fetches and manages market data for tokens\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/marketData/MarketDataFetcher.sol\":\"MarketDataFetcher\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@chainlink/=lib/chainlink/\",\":@ensdomains/=lib/v4-core/node_modules/@ensdomains/\",\":@httpz-contracts/=lib/httpz-contracts/contracts/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/universal-router/=lib/universal-router.git/\",\":@uniswap/v2-core/=lib/v2-core/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/\",\":@uniswap/v4-core/=lib/v4-core/\",\":@uniswap/v4-periphery/=lib/v4-periphery/\",\":chainlink/=lib/chainlink/\",\":ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":fhevm-contracts/=node_modules/fhevm-contracts/\",\":fhevm-core-contracts/=node_modules/fhevm-core-contracts/\",\":fhevm/=node_modules/fhevm/\",\":forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":httpz-contracts/=lib/httpz-contracts/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":permit2/=lib/permit2/\",\":solmate/=lib/permit2/lib/solmate/\",\":universal-router.git/=lib/universal-router.git/\",\":v2-core/=lib/v2-core/contracts/\",\":v3-core/=lib/v3-core/\",\":v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/\",\":v4-core/=lib/v4-core/src/\",\":v4-periphery/=lib/v4-periphery/\"],\"viaIR\":true},\"sources\":{\"contracts/interfaces/IMarketDataFetcher.sol\":{\"keccak256\":\"0xa5343d6d80de89e9e259d51e9fd50444de43f61f6da31c26ad6f49029a47481a\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://e7fb90369df691fd542180e13cc7a881b46ef86dc1fdac4622d19cb292059112\",\"dweb:/ipfs/QmUnvC7eyCdg83tARSBSoEDPKjZHJZ4mKFWdPwSycki3KL\"]},\"contracts/marketData/MarketDataFetcher.sol\":{\"keccak256\":\"0x982be5c64a69b4e8bac986e1c18affd3686ec1a6dcff4b515c5918b924508997\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf5b5e27288f2a9fa156ecfec63fa84eb13a2b66cf84b17bb26097cd69bc7b7f\",\"dweb:/ipfs/QmW4NcWKfwuyRadWvYe6vB3xyw5pHKLtoNSbjaBG2j13NN\"]},\"lib/chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol\":{\"keccak256\":\"0x257a8d28fa83d3d942547c8e129ef465e4b5f3f31171e7be4739a4c98da6b4f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d39e11b1dc7b9b8ccdabbc9be442ab7cda4a81c748f57e316dcb1bcb4a28bf9\",\"dweb:/ipfs/QmaG6vz6W6iEUBsbHSBob5mdcitYxWjoygxREHpsJHfWrS\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x6ef9389a2c07bc40d8a7ba48914724ab2c108fac391ce12314f01321813e6368\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7a5cb39b1e6df68f4dd9a5e76e853d745a74ffb3dfd7df4ae4d2ace6992a171\",\"dweb:/ipfs/QmPbzKR19rdM8X3PLQjsmHRepUKhvoZnedSR63XyGtXZib\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"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\":\"0x4c9571aed0c2b6ef11832545554fc11ffdb03746daaf5c73683c00600bfc7ec0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e78b34b58ce9de91b91943b4f3cc3ce121d0b151e123e8a600ac5ef64d91db6c\",\"dweb:/ipfs/QmRkaQnPCYwLrXgbpGujJTx32PaZK63KSPJJV1XmnQuCMb\"]},\"lib/v4-core/src/interfaces/IPoolManager.sol\":{\"keccak256\":\"0x3534f00531038e77ab8a7fc4d0a6e0993ee53fb7a396b1324ad917318ea46cea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4a7e771828dc40848485b568a1cf514f553ace6653f4f4d1ad3f3e9cdb6c27\",\"dweb:/ipfs/QmTjzQ7KVYnrEWtxPER2E4MXzycgcznfzSDsZtd5turk5V\"]},\"lib/v4-core/src/interfaces/IProtocolFees.sol\":{\"keccak256\":\"0x32a666e588a2f66334430357bb1e2424fe7eebeb98a3364b1dd16eb6ccca9848\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85751d302125881f72e5f8af051c2d5d9b1f606ebaea8ca7d04fccdd27cc252d\",\"dweb:/ipfs/QmeRwomeh9NWm6A6fgNA4KZPQZHPpdKsPQyYsHSFmvud7J\"]},\"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/CustomRevert.sol\":{\"keccak256\":\"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd\",\"dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt\"]},\"lib/v4-core/src/libraries/SafeCast.sol\":{\"keccak256\":\"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59\",\"dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj\"]},\"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\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"bool","name":"isAgainstUSD","type":"bool"}],"type":"error","name":"DataFeedDoesNotExist"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BTC_TOTAL_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ETH_TOTAL_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"dataFeed","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addDataFeed"},{"inputs":[{"internalType":"address[]","name":"indexTokenAddresses","type":"address[]"}],"stateMutability":"view","type":"function","name":"getIndexMarketCaps","outputs":[{"internalType":"uint256","name":"totalMarketCap","type":"uint256"},{"internalType":"uint256[]","name":"individualMarketCaps","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"getTokenDataFeed","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"getTokenMarketCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"getTokenPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeDataFeed"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"uint256","name":"_BTCTotalSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setBTCTotalSupply"},{"inputs":[{"internalType":"uint256","name":"_ethTotalSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setETHTotalSupply"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"addDataFeed(address,address)":{"params":{"dataFeed":"The address of the Chainlink price feed","token":"The address of the token"}},"getIndexMarketCaps(address[])":{"params":{"indexTokenAddresses":"Array of token addresses in the index"},"returns":{"individualMarketCaps":"Array of market capitalization values for each token","totalMarketCap":"The aggregated market capitalization of all tokens"}},"getTokenDataFeed(address)":{"params":{"token":"The address of the token"},"returns":{"_0":"The address of the token's price feed"}},"getTokenMarketCap(address)":{"params":{"token":"The address of the token"},"returns":{"_0":"The market capitalization in USD (price * total supply)"}},"getTokenPrice(address)":{"details":"Reverts if the price feed doesn't exist","params":{"token":"The address of the token's price feed"},"returns":{"_0":"The token price in USD with 6 decimals"}},"owner()":{"details":"Returns the address of the current owner."},"removeDataFeed(address)":{"params":{"token":"The address of the token whose feed should be removed"}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setBTCTotalSupply(uint256)":{"params":{"_BTCTotalSupply":"The new total supply value"}},"setETHTotalSupply(uint256)":{"params":{"_ethTotalSupply":"The new total supply value"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"addDataFeed(address,address)":{"notice":"Adds a new price feed for a token"},"getIndexMarketCaps(address[])":{"notice":"Calculates the total market capitalization for an index and individual token market caps"},"getTokenDataFeed(address)":{"notice":"Gets the price feed address for a token"},"getTokenMarketCap(address)":{"notice":"Calculates the market capitalization for a specific token"},"getTokenPrice(address)":{"notice":"Gets the latest price for a token from its price feed"},"removeDataFeed(address)":{"notice":"Removes a price feed for a token"},"setBTCTotalSupply(uint256)":{"notice":"Updates the total supply of BTC used for market cap calculations"},"setETHTotalSupply(uint256)":{"notice":"Updates the total supply of ETH used for market cap calculations"}},"version":1}},"settings":{"remappings":["@chainlink/=lib/chainlink/","@ensdomains/=lib/v4-core/node_modules/@ensdomains/","@httpz-contracts/=lib/httpz-contracts/contracts/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@uniswap/universal-router/=lib/universal-router.git/","@uniswap/v2-core/=lib/v2-core/","@uniswap/v3-core/=lib/v3-core/","@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/","@uniswap/v4-core/=lib/v4-core/","@uniswap/v4-periphery/=lib/v4-periphery/","chainlink/=lib/chainlink/","ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","eth-gas-reporter/=node_modules/eth-gas-reporter/","fhevm-contracts/=node_modules/fhevm-contracts/","fhevm-core-contracts/=node_modules/fhevm-core-contracts/","fhevm/=node_modules/fhevm/","forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","httpz-contracts/=lib/httpz-contracts/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","permit2/=lib/permit2/","solmate/=lib/permit2/lib/solmate/","universal-router.git/=lib/universal-router.git/","v2-core/=lib/v2-core/contracts/","v3-core/=lib/v3-core/","v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/","v4-core/=lib/v4-core/src/","v4-periphery/=lib/v4-periphery/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/marketData/MarketDataFetcher.sol":"MarketDataFetcher"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/interfaces/IMarketDataFetcher.sol":{"keccak256":"0xa5343d6d80de89e9e259d51e9fd50444de43f61f6da31c26ad6f49029a47481a","urls":["bzz-raw://e7fb90369df691fd542180e13cc7a881b46ef86dc1fdac4622d19cb292059112","dweb:/ipfs/QmUnvC7eyCdg83tARSBSoEDPKjZHJZ4mKFWdPwSycki3KL"],"license":"BSD-3-Clause-Clear"},"contracts/marketData/MarketDataFetcher.sol":{"keccak256":"0x982be5c64a69b4e8bac986e1c18affd3686ec1a6dcff4b515c5918b924508997","urls":["bzz-raw://bf5b5e27288f2a9fa156ecfec63fa84eb13a2b66cf84b17bb26097cd69bc7b7f","dweb:/ipfs/QmW4NcWKfwuyRadWvYe6vB3xyw5pHKLtoNSbjaBG2j13NN"],"license":"MIT"},"lib/chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol":{"keccak256":"0x257a8d28fa83d3d942547c8e129ef465e4b5f3f31171e7be4739a4c98da6b4f0","urls":["bzz-raw://6d39e11b1dc7b9b8ccdabbc9be442ab7cda4a81c748f57e316dcb1bcb4a28bf9","dweb:/ipfs/QmaG6vz6W6iEUBsbHSBob5mdcitYxWjoygxREHpsJHfWrS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x6ef9389a2c07bc40d8a7ba48914724ab2c108fac391ce12314f01321813e6368","urls":["bzz-raw://b7a5cb39b1e6df68f4dd9a5e76e853d745a74ffb3dfd7df4ae4d2ace6992a171","dweb:/ipfs/QmPbzKR19rdM8X3PLQjsmHRepUKhvoZnedSR63XyGtXZib"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330","urls":["bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf","dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"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":"0x4c9571aed0c2b6ef11832545554fc11ffdb03746daaf5c73683c00600bfc7ec0","urls":["bzz-raw://e78b34b58ce9de91b91943b4f3cc3ce121d0b151e123e8a600ac5ef64d91db6c","dweb:/ipfs/QmRkaQnPCYwLrXgbpGujJTx32PaZK63KSPJJV1XmnQuCMb"],"license":"MIT"},"lib/v4-core/src/interfaces/IPoolManager.sol":{"keccak256":"0x3534f00531038e77ab8a7fc4d0a6e0993ee53fb7a396b1324ad917318ea46cea","urls":["bzz-raw://0a4a7e771828dc40848485b568a1cf514f553ace6653f4f4d1ad3f3e9cdb6c27","dweb:/ipfs/QmTjzQ7KVYnrEWtxPER2E4MXzycgcznfzSDsZtd5turk5V"],"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/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/CustomRevert.sol":{"keccak256":"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de","urls":["bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd","dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt"],"license":"MIT"},"lib/v4-core/src/libraries/SafeCast.sol":{"keccak256":"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86","urls":["bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59","dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj"],"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"}},"version":1},"id":13} \ No newline at end of file diff --git a/out/MockMarketDataFetcher.sol/MockMarketDataFetcher.json b/out/MockMarketDataFetcher.sol/MockMarketDataFetcher.json new file mode 100644 index 0000000..c59dcda --- /dev/null +++ b/out/MockMarketDataFetcher.sol/MockMarketDataFetcher.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"fakeIndiv","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"fakeTotal","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getIndexMarketCaps","inputs":[{"name":"","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"totalMarketCap","type":"uint256","internalType":"uint256"},{"name":"individualMarketCaps","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getTokenMarketCap","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"getTokenPrice","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"setIndexMarketCaps","inputs":[{"name":"_total","type":"uint256","internalType":"uint256"},{"name":"_indiv","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x60808060405234601557610359908161001a8239f35b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c90816329f06f54146101f55750806339dbc3df146101c85780636897960c1461018b5780638f47ba541461016f578063b60d4bd9146100905763d02641a01461005e575f80fd5b3461008c57602036600319011261008c576004356001600160a01b0381160361008c57602060405160018152f35b5f80fd5b3461008c57604036600319011261008c5760243567ffffffffffffffff811161008c576100c19036906004016102d2565b906004355f5567ffffffffffffffff821161015b5768010000000000000000821161015b5760015482600155808310610123575b50905f5b81811061010257005b60019060208435940193815f805160206103048339815191520155016100f9565b5f8051602061030483398151915201825f80516020610304833981519152015b81811061015057506100f5565b5f8155600101610143565b634e487b7160e01b5f52604160045260245ffd5b3461008c575f36600319011261008c5760205f54604051908152f35b3461008c57602036600319011261008c5760043560015481101561008c5760209060015f525f805160206103048339815191520154604051908152f35b3461008c57602036600319011261008c576004356001600160a01b0381160361008c5760206040515f8152f35b3461008c57602036600319011261008c5760043567ffffffffffffffff811161008c576102269036906004016102d2565b50505f546001549081835260208301809260015f525f80516020610304833981519152905f5b8181106102bc57505050839003601f01601f191683019267ffffffffffffffff84118185101761015b5760408481529184526020840182905251908301819052829160608301915f5b8181106102a3575050500390f35b8251845285945060209384019390920191600101610295565b825484526020909301926001928301920161024c565b9181601f8401121561008c5782359167ffffffffffffffff831161008c576020808501948460051b01011161008c5756feb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6a264697066735822122049065ab679436af04dc13bc0982faad7b8ed150bd584ec70d8d1241b7a95939f64736f6c634300081a0033","sourceMap":"57:815:15:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c90816329f06f54146101f55750806339dbc3df146101c85780636897960c1461018b5780638f47ba541461016f578063b60d4bd9146100905763d02641a01461005e575f80fd5b3461008c57602036600319011261008c576004356001600160a01b0381160361008c57602060405160018152f35b5f80fd5b3461008c57604036600319011261008c5760243567ffffffffffffffff811161008c576100c19036906004016102d2565b906004355f5567ffffffffffffffff821161015b5768010000000000000000821161015b5760015482600155808310610123575b50905f5b81811061010257005b60019060208435940193815f805160206103048339815191520155016100f9565b5f8051602061030483398151915201825f80516020610304833981519152015b81811061015057506100f5565b5f8155600101610143565b634e487b7160e01b5f52604160045260245ffd5b3461008c575f36600319011261008c5760205f54604051908152f35b3461008c57602036600319011261008c5760043560015481101561008c5760209060015f525f805160206103048339815191520154604051908152f35b3461008c57602036600319011261008c576004356001600160a01b0381160361008c5760206040515f8152f35b3461008c57602036600319011261008c5760043567ffffffffffffffff811161008c576102269036906004016102d2565b50505f546001549081835260208301809260015f525f80516020610304833981519152905f5b8181106102bc57505050839003601f01601f191683019267ffffffffffffffff84118185101761015b5760408481529184526020840182905251908301819052829160608301915f5b8181106102a3575050500390f35b8251845285945060209384019390920191600101610295565b825484526020909301926001928301920161024c565b9181601f8401121561008c5782359167ffffffffffffffff831161008c576020808501948460051b01011161008c5756feb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6a264697066735822122049065ab679436af04dc13bc0982faad7b8ed150bd584ec70d8d1241b7a95939f64736f6c634300081a0033","sourceMap":"57:815:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;57:815:15;;;;;;-1:-1:-1;;;;;57:815:15;;;;;;;;862:1;57:815;;;;;;;;;;;;;-1:-1:-1;;57:815:15;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;57:815:15;;;;;;-1:-1:-1;;;;;;;;;;;57:815:15;;-1:-1:-1;;;;;;;;;;;57:815:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;57:815:15;;;;;;;;;;;;;;;;;;;-1:-1:-1;;57:815:15;;;;;;;;124:26;;;;;57:815;;;;;-1:-1:-1;;;;;;;;;;;57:815:15;;;;;;;;;;;;;;-1:-1:-1;;57:815:15;;;;;;-1:-1:-1;;;;;57:815:15;;;;;;;;;;;;;;;;;;-1:-1:-1;;57:815:15;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;604:9;57:815;;;;;;;;;;604:9;57:815;;-1:-1:-1;;;;;;;;;;;57:815:15;;;;;;;;-1:-1:-1;;;57:815:15;;;;;-1:-1:-1;;57:815:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;57:815:15;;;;;;;;;;;;;;;;;;;-1:-1:-1;57:815:15;;;;;;;;;604:9;57:815;;;;;;;;;;;;;604:9;57:815;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"fakeIndiv(uint256)":"6897960c","fakeTotal()":"8f47ba54","getIndexMarketCaps(address[])":"29f06f54","getTokenMarketCap(address)":"39dbc3df","getTokenPrice(address)":"d02641a0","setIndexMarketCaps(uint256,uint256[])":"b60d4bd9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"fakeIndiv\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fakeTotal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"name\":\"getIndexMarketCaps\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalMarketCap\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"individualMarketCaps\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getTokenMarketCap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getTokenPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_total\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"_indiv\",\"type\":\"uint256[]\"}],\"name\":\"setIndexMarketCaps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"setIndexMarketCaps(uint256,uint256[])\":{\"notice\":\"Set the values that getIndexMarketCaps will return\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/mocks/MockMarketDataFetcher.sol\":\"MockMarketDataFetcher\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@chainlink/=lib/chainlink/\",\":@ensdomains/=lib/v4-core/node_modules/@ensdomains/\",\":@httpz-contracts/=lib/httpz-contracts/contracts/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/universal-router/=lib/universal-router.git/\",\":@uniswap/v2-core/=lib/v2-core/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/\",\":@uniswap/v4-core/=lib/v4-core/\",\":@uniswap/v4-periphery/=lib/v4-periphery/\",\":chainlink/=lib/chainlink/\",\":ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":fhevm-contracts/=node_modules/fhevm-contracts/\",\":fhevm-core-contracts/=node_modules/fhevm-core-contracts/\",\":fhevm/=node_modules/fhevm/\",\":forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":httpz-contracts/=lib/httpz-contracts/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":permit2/=lib/permit2/\",\":solmate/=lib/permit2/lib/solmate/\",\":universal-router.git/=lib/universal-router.git/\",\":v2-core/=lib/v2-core/contracts/\",\":v3-core/=lib/v3-core/\",\":v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/\",\":v4-core/=lib/v4-core/src/\",\":v4-periphery/=lib/v4-periphery/\"],\"viaIR\":true},\"sources\":{\"contracts/mocks/MockMarketDataFetcher.sol\":{\"keccak256\":\"0x325a7506adf09839465930b758106d0c9410222d06b31429b7f11d7170df73d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://941b6dd2e2a65ac1af15b781e068afc6a94322a50989fe02b79f0c4415bff6eb\",\"dweb:/ipfs/QmVbpUQH4Um9jqg7tAyjPrhwE3Nr9hFiEjCg6j95WAQFX5\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"fakeIndiv","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"fakeTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function","name":"getIndexMarketCaps","outputs":[{"internalType":"uint256","name":"totalMarketCap","type":"uint256"},{"internalType":"uint256[]","name":"individualMarketCaps","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"getTokenMarketCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"getTokenPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256[]","name":"_indiv","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"setIndexMarketCaps"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"setIndexMarketCaps(uint256,uint256[])":{"notice":"Set the values that getIndexMarketCaps will return"}},"version":1}},"settings":{"remappings":["@chainlink/=lib/chainlink/","@ensdomains/=lib/v4-core/node_modules/@ensdomains/","@httpz-contracts/=lib/httpz-contracts/contracts/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@uniswap/universal-router/=lib/universal-router.git/","@uniswap/v2-core/=lib/v2-core/","@uniswap/v3-core/=lib/v3-core/","@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/","@uniswap/v4-core/=lib/v4-core/","@uniswap/v4-periphery/=lib/v4-periphery/","chainlink/=lib/chainlink/","ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","eth-gas-reporter/=node_modules/eth-gas-reporter/","fhevm-contracts/=node_modules/fhevm-contracts/","fhevm-core-contracts/=node_modules/fhevm-core-contracts/","fhevm/=node_modules/fhevm/","forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","httpz-contracts/=lib/httpz-contracts/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","permit2/=lib/permit2/","solmate/=lib/permit2/lib/solmate/","universal-router.git/=lib/universal-router.git/","v2-core/=lib/v2-core/contracts/","v3-core/=lib/v3-core/","v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/","v4-core/=lib/v4-core/src/","v4-periphery/=lib/v4-periphery/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/mocks/MockMarketDataFetcher.sol":"MockMarketDataFetcher"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/mocks/MockMarketDataFetcher.sol":{"keccak256":"0x325a7506adf09839465930b758106d0c9410222d06b31429b7f11d7170df73d6","urls":["bzz-raw://941b6dd2e2a65ac1af15b781e068afc6a94322a50989fe02b79f0c4415bff6eb","dweb:/ipfs/QmVbpUQH4Um9jqg7tAyjPrhwE3Nr9hFiEjCg6j95WAQFX5"],"license":"MIT"}},"version":1},"id":15} \ No newline at end of file diff --git a/out/MockSwapsManager.sol/MockSwapsManager.json b/out/MockSwapsManager.sol/MockSwapsManager.json new file mode 100644 index 0000000..9f26e43 --- /dev/null +++ b/out/MockSwapsManager.sol/MockSwapsManager.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"approveTokenWithPermit2","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint160","internalType":"uint160"},{"name":"","type":"uint48","internalType":"uint48"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"nextAmountOut","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"setNextAmountOut","inputs":[{"name":"a","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swap","inputs":[{"name":"","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":"","type":"uint128","internalType":"uint128"},{"name":"","type":"uint128","internalType":"uint128"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bool","internalType":"bool"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x60808060405234601557610198908161001a8239f35b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c908163157fedba146100bf57508063267b14bd146100805780634c0169e21461006857635252f0ed14610048575f80fd5b34610064575f3660031901126100645760205f54604051908152f35b5f80fd5b34610064576020366003190112610064576004355f55005b346100645760603660031901126100645761009961014c565b506024356001600160a01b038116036100645760443565ffffffffffff81160361006457005b3461006457366003190161014081126100645760a013610064576100e1610109565b506100ea61011f565b50610104358015150361006457602090610102610135565b505f548152f35b60a435906001600160801b038216820361006457565b60c435906001600160801b038216820361006457565b61012435906001600160a01b038216820361006457565b600435906001600160a01b03821682036100645756fea26469706673582212203baaf4e0450d3ac50697ccf71608b6982c8b673d25339a85e7835d7658b354f364736f6c634300081a0033","sourceMap":"122:417:16:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c908163157fedba146100bf57508063267b14bd146100805780634c0169e21461006857635252f0ed14610048575f80fd5b34610064575f3660031901126100645760205f54604051908152f35b5f80fd5b34610064576020366003190112610064576004355f55005b346100645760603660031901126100645761009961014c565b506024356001600160a01b038116036100645760443565ffffffffffff81160361006457005b3461006457366003190161014081126100645760a013610064576100e1610109565b506100ea61011f565b50610104358015150361006457602090610102610135565b505f548152f35b60a435906001600160801b038216820361006457565b60c435906001600160801b038216820361006457565b61012435906001600160a01b038216820361006457565b600435906001600160a01b03821682036100645756fea26469706673582212203baaf4e0450d3ac50697ccf71608b6982c8b673d25339a85e7835d7658b354f364736f6c634300081a0033","sourceMap":"122:417:16:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;122:417:16;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;122:417:16;;;;;;;;;;;;;;;-1:-1:-1;;122:417:16;;;;;;:::i;:::-;-1:-1:-1;122:417:16;;-1:-1:-1;;;;;122:417:16;;;;;;;;;;;;;;;;;;;-1:-1:-1;;122:417:16;;;;;;;-1:-1:-1;122:417:16;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;122:417:16;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;122:417:16;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;122:417:16;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;122:417:16;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"approveTokenWithPermit2(address,uint160,uint48)":"267b14bd","nextAmountOut()":"5252f0ed","setNextAmountOut(uint256)":"4c0169e2","swap((address,address,uint24,int24,address),uint128,uint128,uint256,bool,address)":"157fedba"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint160\",\"name\":\"\",\"type\":\"uint160\"},{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"name\":\"approveTokenWithPermit2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"a\",\"type\":\"uint256\"}],\"name\":\"setNextAmountOut\",\"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\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/mocks/MockSwapsManager.sol\":\"MockSwapsManager\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@chainlink/=lib/chainlink/\",\":@ensdomains/=lib/v4-core/node_modules/@ensdomains/\",\":@httpz-contracts/=lib/httpz-contracts/contracts/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/universal-router/=lib/universal-router.git/\",\":@uniswap/v2-core/=lib/v2-core/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/\",\":@uniswap/v4-core/=lib/v4-core/\",\":@uniswap/v4-periphery/=lib/v4-periphery/\",\":chainlink/=lib/chainlink/\",\":ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":fhevm-contracts/=node_modules/fhevm-contracts/\",\":fhevm-core-contracts/=node_modules/fhevm-core-contracts/\",\":fhevm/=node_modules/fhevm/\",\":forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":httpz-contracts/=lib/httpz-contracts/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":permit2/=lib/permit2/\",\":solmate/=lib/permit2/lib/solmate/\",\":universal-router.git/=lib/universal-router.git/\",\":v2-core/=lib/v2-core/contracts/\",\":v3-core/=lib/v3-core/\",\":v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/\",\":v4-core/=lib/v4-core/src/\",\":v4-periphery/=lib/v4-periphery/\"],\"viaIR\":true},\"sources\":{\"contracts/mocks/MockSwapsManager.sol\":{\"keccak256\":\"0xfe5c9ea5a684bf66665b167368f301291fbf383443e178181ad8eba58ca7fb8f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67d750c9be8ef33d6a635d64e933fcc6345ad617cd3f805e952fdf8951aea25b\",\"dweb:/ipfs/QmeAtXKVyJxzxDrTngx3jZskQg9Njhc5M18MspZLuH4msG\"]},\"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\":\"0x4c9571aed0c2b6ef11832545554fc11ffdb03746daaf5c73683c00600bfc7ec0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e78b34b58ce9de91b91943b4f3cc3ce121d0b151e123e8a600ac5ef64d91db6c\",\"dweb:/ipfs/QmRkaQnPCYwLrXgbpGujJTx32PaZK63KSPJJV1XmnQuCMb\"]},\"lib/v4-core/src/interfaces/IPoolManager.sol\":{\"keccak256\":\"0x3534f00531038e77ab8a7fc4d0a6e0993ee53fb7a396b1324ad917318ea46cea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4a7e771828dc40848485b568a1cf514f553ace6653f4f4d1ad3f3e9cdb6c27\",\"dweb:/ipfs/QmTjzQ7KVYnrEWtxPER2E4MXzycgcznfzSDsZtd5turk5V\"]},\"lib/v4-core/src/interfaces/IProtocolFees.sol\":{\"keccak256\":\"0x32a666e588a2f66334430357bb1e2424fe7eebeb98a3364b1dd16eb6ccca9848\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85751d302125881f72e5f8af051c2d5d9b1f606ebaea8ca7d04fccdd27cc252d\",\"dweb:/ipfs/QmeRwomeh9NWm6A6fgNA4KZPQZHPpdKsPQyYsHSFmvud7J\"]},\"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/CustomRevert.sol\":{\"keccak256\":\"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd\",\"dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt\"]},\"lib/v4-core/src/libraries/SafeCast.sol\":{\"keccak256\":\"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59\",\"dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj\"]},\"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\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint160","name":"","type":"uint160"},{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"nonpayable","type":"function","name":"approveTokenWithPermit2"},{"inputs":[],"stateMutability":"view","type":"function","name":"nextAmountOut","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setNextAmountOut"},{"inputs":[{"internalType":"struct PoolKey","name":"","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":"uint128","name":"","type":"uint128"},{"internalType":"uint128","name":"","type":"uint128"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bool","name":"","type":"bool"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"swap","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@chainlink/=lib/chainlink/","@ensdomains/=lib/v4-core/node_modules/@ensdomains/","@httpz-contracts/=lib/httpz-contracts/contracts/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@uniswap/universal-router/=lib/universal-router.git/","@uniswap/v2-core/=lib/v2-core/","@uniswap/v3-core/=lib/v3-core/","@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/","@uniswap/v4-core/=lib/v4-core/","@uniswap/v4-periphery/=lib/v4-periphery/","chainlink/=lib/chainlink/","ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","eth-gas-reporter/=node_modules/eth-gas-reporter/","fhevm-contracts/=node_modules/fhevm-contracts/","fhevm-core-contracts/=node_modules/fhevm-core-contracts/","fhevm/=node_modules/fhevm/","forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","httpz-contracts/=lib/httpz-contracts/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","permit2/=lib/permit2/","solmate/=lib/permit2/lib/solmate/","universal-router.git/=lib/universal-router.git/","v2-core/=lib/v2-core/contracts/","v3-core/=lib/v3-core/","v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/","v4-core/=lib/v4-core/src/","v4-periphery/=lib/v4-periphery/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/mocks/MockSwapsManager.sol":"MockSwapsManager"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/mocks/MockSwapsManager.sol":{"keccak256":"0xfe5c9ea5a684bf66665b167368f301291fbf383443e178181ad8eba58ca7fb8f","urls":["bzz-raw://67d750c9be8ef33d6a635d64e933fcc6345ad617cd3f805e952fdf8951aea25b","dweb:/ipfs/QmeAtXKVyJxzxDrTngx3jZskQg9Njhc5M18MspZLuH4msG"],"license":"MIT"},"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":"0x4c9571aed0c2b6ef11832545554fc11ffdb03746daaf5c73683c00600bfc7ec0","urls":["bzz-raw://e78b34b58ce9de91b91943b4f3cc3ce121d0b151e123e8a600ac5ef64d91db6c","dweb:/ipfs/QmRkaQnPCYwLrXgbpGujJTx32PaZK63KSPJJV1XmnQuCMb"],"license":"MIT"},"lib/v4-core/src/interfaces/IPoolManager.sol":{"keccak256":"0x3534f00531038e77ab8a7fc4d0a6e0993ee53fb7a396b1324ad917318ea46cea","urls":["bzz-raw://0a4a7e771828dc40848485b568a1cf514f553ace6653f4f4d1ad3f3e9cdb6c27","dweb:/ipfs/QmTjzQ7KVYnrEWtxPER2E4MXzycgcznfzSDsZtd5turk5V"],"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/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/CustomRevert.sol":{"keccak256":"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de","urls":["bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd","dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt"],"license":"MIT"},"lib/v4-core/src/libraries/SafeCast.sol":{"keccak256":"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86","urls":["bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59","dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj"],"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"}},"version":1},"id":16} \ No newline at end of file diff --git a/out/SwapsManager.sol/SwapsManager.json b/out/SwapsManager.sol/SwapsManager.json index b3a9643..ed81374 100644 --- a/out/SwapsManager.sol/SwapsManager.json +++ b/out/SwapsManager.sol/SwapsManager.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"approveTokenWithPermit2","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint160","internalType":"uint160"},{"name":"expiration","type":"uint48","internalType":"uint48"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"_router","type":"address","internalType":"address"},{"name":"_poolManager","type":"address","internalType":"address"},{"name":"_permit2","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"permit2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPermit2"}],"stateMutability":"view"},{"type":"function","name":"poolManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPoolManager"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"router","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract UniversalRouter"}],"stateMutability":"view"},{"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":"amountIn","type":"uint128","internalType":"uint128"},{"name":"minAmountOut","type":"uint128","internalType":"uint128"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"stablecoinForToken","type":"bool","internalType":"bool"},{"name":"stablecoinAddress","type":"address","internalType":"address"}],"outputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InsufficientSwapOutput","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"expectedAmount","type":"uint256","internalType":"uint256"},{"name":"actualAmount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"SwapOutputTransferFailed","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"contract IERC20"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60a08060405234602957306080526111d6908161002e82396080518181816103e101526104b10152f35b5f80fdfe6080806040526004361015610012575f80fd5b5f905f3560e01c90816312261ee714610e1757508063157fedba1461079c578063267b14bd146106605780634f1ef2861461043557806352d1902d146103ce578063715018a6146103655780638da5cb5b14610330578063ad3cb1cc146102e3578063c0c53b8b14610121578063dc4c90d3146100f8578063f2fde38b146100cb5763f887ea40146100a2575f80fd5b346100c857806003193601126100c857546040516001600160a01b039091168152602090f35b80fd5b50346100c85760203660031901126100c8576100f56100e8610e3a565b6100f0611084565b611013565b80f35b50346100c857806003193601126100c8576001546040516001600160a01b039091168152602090f35b50346100c85760603660031901126100c85761013b610e3a565b610143610e50565b6044356001600160a01b03811691908290036102df575f80516020611181833981519152549260ff8460401c16159367ffffffffffffffff8116801590816102d7575b60011490816102cd575b1590816102c4575b506102b55767ffffffffffffffff1981166001175f805160206111818339815191525584610289575b506101ca6110b7565b6101d26110b7565b6101db33611013565b6101e36110b7565b60018060a01b03166001600160601b0360a01b85541617845560018060a01b03166001600160601b0360a01b60015416176001556001600160601b0360a01b60025416176002556102315780f35b68ff0000000000000000195f8051602061118183398151915254165f80516020611181833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b68ffffffffffffffffff191668010000000000000001175f80516020611181833981519152555f6101c1565b63f92ee8a960e01b8652600486fd5b9050155f610198565b303b159150610190565b869150610186565b8380fd5b50346100c857806003193601126100c8575061032c604051610306604082610e82565b60058152640352e302e360dc1b6020820152604051918291602083526020830190610ec0565b0390f35b50346100c857806003193601126100c8575f80516020611141833981519152546040516001600160a01b039091168152602090f35b50346100c857806003193601126100c85761037e611084565b5f8051602061114183398151915280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346100c857806003193601126100c8577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036104265760206040515f805160206111618339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126100c85761044a610e3a565b6024359067ffffffffffffffff821161065c573660238301121561065c578160040135908361047883610ea4565b936104866040519586610e82565b8385526020850193366024828401011161065c57806024602093018637850101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630811490811561063a575b5061062b576104e9611084565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa8691816105f3575b5061052c57634c9c8ce360e01b86526004859052602486fd5b93845f805160206111618339815191528796036105e15750823b156105cf575f8051602061116183398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a28051156105b4576105b09382915190845af46105aa610fe4565b916110e2565b5080f35b50505050346105c05780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011610623575b8161060f60209383610e82565b8101031261061f5751905f610513565b8680fd5b3d9150610602565b63703e46dd60e11b8452600484fd5b5f80516020611161833981519152546001600160a01b0316141590505f6104dc565b8280fd5b50346100c85760603660031901126100c8578061067b610e3a565b6024356001600160a01b0381169190829003610798576044359065ffffffffffff82168092036107935760025460405163095ea7b360e01b81526001600160a01b0391821660048201525f19602482015291169060208160448188865af180156107885761075b575b5060025484546001600160a01b0390811692911690813b156107575785608492819560405197889687956387517c4560e01b875260048701526024860152604485015260648401525af1801561074c5761073b5750f35b8161074591610e82565b6100c85780f35b6040513d84823e3d90fd5b8580fd5b61077c9060203d602011610781575b6107748183610e82565b810190610fcc565b6106e4565b503d61076a565b6040513d87823e3d90fd5b505050fd5b5050fd5b5034610d1f5736600319016101408112610d1f5760a013610d1f5760a435906001600160801b03821690818303610d1f5760c435916001600160801b03831692838103610d1f5761010435918215158303610d1f57610124356001600160a01b03811690819003610d1f57604051600160fc1b60208201526001815292610824602185610e82565b6040805195906108348188610e82565b60018752601f19015f5b818110610e06575050604051600360f91b6020820152600360fa1b6021820152600f60f81b60228201526003815291610878602384610e82565b6040519060806108888184610e82565b60038352601f19015f5b818110610de157505060209a8b95604051946108ae8887610e82565b5f8652604051986108be8a610e66565b604051986108cb8a610e66565b6108d3610e3a565b8a526108dd610e50565b908a015260443562ffffff81168103610d1f5760408a01526064358060020b8103610d1f5760608a01526084356001600160a01b0381168103610d1f578f919a8f6109e8996001600160801b036109e892610af29f610b049f90816109f698608086940152875288870160018152604088019182526060880193845260808801958652604051998a9881808b0152519060018060a01b0382511660408b015260018060a01b03908201511660608a015262ffffff60408201511660808a0152606081015160020b60a08a0152608060018060a01b039101511660c089015251151560e08801525116610100860152511661012084015251610120610140840152610160830190610ec0565b03601f198101835282610e82565b6109ff86610ee4565b52610a0985610ee4565b5015610d8a576001600160a01b03610a1f610f25565b1603610d2357610a2d610f25565b610a428d6109e8846040519485938401610f51565b610a4b84610f05565b52610a5583610f05565b50610a5e610f3b565b610a738d6109e8856040519485938401610f51565b610a7c84610f15565b52610a8683610f15565b505b610aa58c6109e8610a97610f25565b936040519485938401610f51565b610aae83610f05565b52610ab882610f05565b50610ac88b6109e8610a97610f3b565b610ad182610f15565b52610adb81610f15565b5060405194859360408c8601526060850190610ec0565b838103601f1901604085015290610f74565b610b0d83610ee4565b52610b1782610ee4565b505f546001600160a01b031691823b15610d1f57610b6c92610b5a5f809460405196879586948593630d64d59360e21b8552606060048601526064850190610ec0565b83810360031901602485015290610f74565b60e435604483015203925af18015610d1457610d01575b506001600160a01b03610b94610f3b565b1615610c1b5747918180808086335af1610bac610fe4565b50905b808410610bef575015610bc55750604051908152f35b6064916001600160a01b03610bd8610f3b565b635d8c0faf60e11b84523360045216602452604452fd5b6064939091506001600160a01b03610c05610f3b565b630c95a6ab60e31b855216600452602452604452fd5b602491836001600160a01b03610c2f610f3b565b16604051948580926370a0823160e01b82523060048301525afa92831561074c578293610cce575b5082846001600160a01b03610c6a610f3b565b60405163a9059cbb60e01b81523360048201526024810194909452839160449183918891165af1908115610cc3578391610ca6575b5090610baf565b610cbd9150853d8711610781576107748183610e82565b5f610c9f565b6040513d85823e3d90fd5b9092508381813d8311610cfa575b610ce68183610e82565b81010312610cf65751915f610c57565b5080fd5b503d610cdc565b610d0d91505f90610e82565b5f80610b83565b6040513d5f823e3d90fd5b5f80fd5b610d2b610f3b565b610d408d6109e8846040519485938401610f51565b610d4984610f05565b52610d5383610f05565b50610d5c610f25565b610d718d6109e8856040519485938401610f51565b610d7a84610f15565b52610d8483610f15565b50610a88565b6001600160a01b03610d9a610f25565b1603610da857610d2b610f3b565b610db0610f25565b610dc58d6109e8846040519485938401610f51565b610dce84610f05565b52610dd883610f05565b50610d5c610f3b565b806060602080938701015201610892565b634e487b7160e01b5f52604160045260245ffd5b806060602080938b0101520161083e565b34610d1f575f366003190112610d1f576002546001600160a01b03168152602090f35b600435906001600160a01b0382168203610d1f57565b602435906001600160a01b0382168203610d1f57565b60a0810190811067ffffffffffffffff821117610df257604052565b90601f8019910116810190811067ffffffffffffffff821117610df257604052565b67ffffffffffffffff8111610df257601f01601f191660200190565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b805115610ef15760200190565b634e487b7160e01b5f52603260045260245ffd5b805160011015610ef15760400190565b805160021015610ef15760600190565b6004356001600160a01b0381168103610d1f5790565b6024356001600160a01b0381168103610d1f5790565b6001600160a01b0390911681526001600160801b03909116602082015260400190565b9080602083519182815201916020808360051b8301019401925f915b838310610f9f57505050505090565b9091929394602080610fbd600193601f198682030187528951610ec0565b97019301930191939290610f90565b90816020910312610d1f57518015158103610d1f5790565b3d1561100e573d90610ff582610ea4565b916110036040519384610e82565b82523d5f602084013e565b606090565b6001600160a01b03168015611071575f8051602061114183398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f80516020611141833981519152546001600160a01b031633036110a457565b63118cdaa760e01b5f523360045260245ffd5b60ff5f805160206111818339815191525460401c16156110d357565b631afcd79f60e31b5f5260045ffd5b9061110657508051156110f757805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580611137575b611117575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561110f56fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212206a82562e45b669489fefba8c9f296c508fe34d8d7c5172d46d4f14f0991490fe64736f6c634300081a0033","sourceMap":"1192:3712:11:-:0;;;;;;;1171:4:24;1163:13;;1192:3712:11;;;;;;1163:13:24;1192:3712:11;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f905f3560e01c90816312261ee714610e1757508063157fedba1461079c578063267b14bd146106605780634f1ef2861461043557806352d1902d146103ce578063715018a6146103655780638da5cb5b14610330578063ad3cb1cc146102e3578063c0c53b8b14610121578063dc4c90d3146100f8578063f2fde38b146100cb5763f887ea40146100a2575f80fd5b346100c857806003193601126100c857546040516001600160a01b039091168152602090f35b80fd5b50346100c85760203660031901126100c8576100f56100e8610e3a565b6100f0611084565b611013565b80f35b50346100c857806003193601126100c8576001546040516001600160a01b039091168152602090f35b50346100c85760603660031901126100c85761013b610e3a565b610143610e50565b6044356001600160a01b03811691908290036102df575f80516020611181833981519152549260ff8460401c16159367ffffffffffffffff8116801590816102d7575b60011490816102cd575b1590816102c4575b506102b55767ffffffffffffffff1981166001175f805160206111818339815191525584610289575b506101ca6110b7565b6101d26110b7565b6101db33611013565b6101e36110b7565b60018060a01b03166001600160601b0360a01b85541617845560018060a01b03166001600160601b0360a01b60015416176001556001600160601b0360a01b60025416176002556102315780f35b68ff0000000000000000195f8051602061118183398151915254165f80516020611181833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b68ffffffffffffffffff191668010000000000000001175f80516020611181833981519152555f6101c1565b63f92ee8a960e01b8652600486fd5b9050155f610198565b303b159150610190565b869150610186565b8380fd5b50346100c857806003193601126100c8575061032c604051610306604082610e82565b60058152640352e302e360dc1b6020820152604051918291602083526020830190610ec0565b0390f35b50346100c857806003193601126100c8575f80516020611141833981519152546040516001600160a01b039091168152602090f35b50346100c857806003193601126100c85761037e611084565b5f8051602061114183398151915280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346100c857806003193601126100c8577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036104265760206040515f805160206111618339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126100c85761044a610e3a565b6024359067ffffffffffffffff821161065c573660238301121561065c578160040135908361047883610ea4565b936104866040519586610e82565b8385526020850193366024828401011161065c57806024602093018637850101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630811490811561063a575b5061062b576104e9611084565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa8691816105f3575b5061052c57634c9c8ce360e01b86526004859052602486fd5b93845f805160206111618339815191528796036105e15750823b156105cf575f8051602061116183398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a28051156105b4576105b09382915190845af46105aa610fe4565b916110e2565b5080f35b50505050346105c05780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011610623575b8161060f60209383610e82565b8101031261061f5751905f610513565b8680fd5b3d9150610602565b63703e46dd60e11b8452600484fd5b5f80516020611161833981519152546001600160a01b0316141590505f6104dc565b8280fd5b50346100c85760603660031901126100c8578061067b610e3a565b6024356001600160a01b0381169190829003610798576044359065ffffffffffff82168092036107935760025460405163095ea7b360e01b81526001600160a01b0391821660048201525f19602482015291169060208160448188865af180156107885761075b575b5060025484546001600160a01b0390811692911690813b156107575785608492819560405197889687956387517c4560e01b875260048701526024860152604485015260648401525af1801561074c5761073b5750f35b8161074591610e82565b6100c85780f35b6040513d84823e3d90fd5b8580fd5b61077c9060203d602011610781575b6107748183610e82565b810190610fcc565b6106e4565b503d61076a565b6040513d87823e3d90fd5b505050fd5b5050fd5b5034610d1f5736600319016101408112610d1f5760a013610d1f5760a435906001600160801b03821690818303610d1f5760c435916001600160801b03831692838103610d1f5761010435918215158303610d1f57610124356001600160a01b03811690819003610d1f57604051600160fc1b60208201526001815292610824602185610e82565b6040805195906108348188610e82565b60018752601f19015f5b818110610e06575050604051600360f91b6020820152600360fa1b6021820152600f60f81b60228201526003815291610878602384610e82565b6040519060806108888184610e82565b60038352601f19015f5b818110610de157505060209a8b95604051946108ae8887610e82565b5f8652604051986108be8a610e66565b604051986108cb8a610e66565b6108d3610e3a565b8a526108dd610e50565b908a015260443562ffffff81168103610d1f5760408a01526064358060020b8103610d1f5760608a01526084356001600160a01b0381168103610d1f578f919a8f6109e8996001600160801b036109e892610af29f610b049f90816109f698608086940152875288870160018152604088019182526060880193845260808801958652604051998a9881808b0152519060018060a01b0382511660408b015260018060a01b03908201511660608a015262ffffff60408201511660808a0152606081015160020b60a08a0152608060018060a01b039101511660c089015251151560e08801525116610100860152511661012084015251610120610140840152610160830190610ec0565b03601f198101835282610e82565b6109ff86610ee4565b52610a0985610ee4565b5015610d8a576001600160a01b03610a1f610f25565b1603610d2357610a2d610f25565b610a428d6109e8846040519485938401610f51565b610a4b84610f05565b52610a5583610f05565b50610a5e610f3b565b610a738d6109e8856040519485938401610f51565b610a7c84610f15565b52610a8683610f15565b505b610aa58c6109e8610a97610f25565b936040519485938401610f51565b610aae83610f05565b52610ab882610f05565b50610ac88b6109e8610a97610f3b565b610ad182610f15565b52610adb81610f15565b5060405194859360408c8601526060850190610ec0565b838103601f1901604085015290610f74565b610b0d83610ee4565b52610b1782610ee4565b505f546001600160a01b031691823b15610d1f57610b6c92610b5a5f809460405196879586948593630d64d59360e21b8552606060048601526064850190610ec0565b83810360031901602485015290610f74565b60e435604483015203925af18015610d1457610d01575b506001600160a01b03610b94610f3b565b1615610c1b5747918180808086335af1610bac610fe4565b50905b808410610bef575015610bc55750604051908152f35b6064916001600160a01b03610bd8610f3b565b635d8c0faf60e11b84523360045216602452604452fd5b6064939091506001600160a01b03610c05610f3b565b630c95a6ab60e31b855216600452602452604452fd5b602491836001600160a01b03610c2f610f3b565b16604051948580926370a0823160e01b82523060048301525afa92831561074c578293610cce575b5082846001600160a01b03610c6a610f3b565b60405163a9059cbb60e01b81523360048201526024810194909452839160449183918891165af1908115610cc3578391610ca6575b5090610baf565b610cbd9150853d8711610781576107748183610e82565b5f610c9f565b6040513d85823e3d90fd5b9092508381813d8311610cfa575b610ce68183610e82565b81010312610cf65751915f610c57565b5080fd5b503d610cdc565b610d0d91505f90610e82565b5f80610b83565b6040513d5f823e3d90fd5b5f80fd5b610d2b610f3b565b610d408d6109e8846040519485938401610f51565b610d4984610f05565b52610d5383610f05565b50610d5c610f25565b610d718d6109e8856040519485938401610f51565b610d7a84610f15565b52610d8483610f15565b50610a88565b6001600160a01b03610d9a610f25565b1603610da857610d2b610f3b565b610db0610f25565b610dc58d6109e8846040519485938401610f51565b610dce84610f05565b52610dd883610f05565b50610d5c610f3b565b806060602080938701015201610892565b634e487b7160e01b5f52604160045260245ffd5b806060602080938b0101520161083e565b34610d1f575f366003190112610d1f576002546001600160a01b03168152602090f35b600435906001600160a01b0382168203610d1f57565b602435906001600160a01b0382168203610d1f57565b60a0810190811067ffffffffffffffff821117610df257604052565b90601f8019910116810190811067ffffffffffffffff821117610df257604052565b67ffffffffffffffff8111610df257601f01601f191660200190565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b805115610ef15760200190565b634e487b7160e01b5f52603260045260245ffd5b805160011015610ef15760400190565b805160021015610ef15760600190565b6004356001600160a01b0381168103610d1f5790565b6024356001600160a01b0381168103610d1f5790565b6001600160a01b0390911681526001600160801b03909116602082015260400190565b9080602083519182815201916020808360051b8301019401925f915b838310610f9f57505050505090565b9091929394602080610fbd600193601f198682030187528951610ec0565b97019301930191939290610f90565b90816020910312610d1f57518015158103610d1f5790565b3d1561100e573d90610ff582610ea4565b916110036040519384610e82565b82523d5f602084013e565b606090565b6001600160a01b03168015611071575f8051602061114183398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f80516020611141833981519152546001600160a01b031633036110a457565b63118cdaa760e01b5f523360045260245ffd5b60ff5f805160206111818339815191525460401c16156110d357565b631afcd79f60e31b5f5260045ffd5b9061110657508051156110f757805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580611137575b611117575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561110f56fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212206a82562e45b669489fefba8c9f296c508fe34d8d7c5172d46d4f14f0991490fe64736f6c634300081a0033","sourceMap":"1192:3712:11:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1951:41;1192:3712;1951:41;;;1192:3712;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1192:3712:11;;;;;;;;;;;;;;;;;;-1:-1:-1;;1192:3712:11;;;;2357:1:22;1192:3712:11;;:::i;:::-;2303:62:22;;:::i;:::-;2357:1;:::i;:::-;1192:3712:11;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1192:3712:11;;;;;;;;;;;;;;;-1:-1:-1;;1192:3712:11;;;;;;:::i;:::-;;;:::i;:::-;;;-1:-1:-1;;;;;1192:3712:11;;;;;;;;;-1:-1:-1;;;;;;;;;;;1192:3712:11;;1454:4:70;1192:3712:11;;;1454:4:70;4301:16:23;1192:3712:11;;;;4726:16:23;;:34;;;;1192:3712:11;4805:1:23;4790:16;:50;;;;1192:3712:11;4855:13:23;:30;;;;1192:3712:11;4851:91:23;;;-1:-1:-1;;1192:3712:11;;4805:1:23;1192:3712:11;-1:-1:-1;;;;;;;;;;;1192:3712:11;;4979:67:23;;1192:3712:11;6893:76:23;;;:::i;:::-;;;:::i;:::-;6961:1;4620:10:11;6961:1:23;:::i;:::-;6893:76;;:::i;:::-;1192:3712:11;;;;;;-1:-1:-1;;;;;1192:3712:11;;;;;;;;;;;;;;-1:-1:-1;;;;;1192:3712:11;;4805:1:23;1192:3712:11;;;4805:1:23;1192:3712:11;-1:-1:-1;;;;;1192:3712:11;;4777:28;1192:3712;;;4777:28;1192:3712;5066:101:23;;1192:3712:11;;5066:101:23;1192:3712:11;;-1:-1:-1;;;;;;;;;;;1192:3712:11;;-1:-1:-1;;;;;;;;;;;1192:3712:11;5142:14:23;1192:3712:11;;;4805:1:23;1192:3712:11;;5142:14:23;1192:3712:11;;4979:67:23;-1:-1:-1;;1192:3712:11;;;-1:-1:-1;;;;;;;;;;;1192:3712:11;4979:67:23;;;4851:91;-1:-1:-1;;;4908:23:23;;1192:3712:11;4908:23:23;;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:23;;4726:34;;;-1:-1:-1;4726:34:23;;1192:3712:11;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1192:3712:11;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1192:3712:11;;;-1:-1:-1;;;;;1192:3712:11;;;;;;;;;;;;;;;;;;;;;2303:62:22;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1192:3712:11;;-1:-1:-1;;;;;;1192:3712:11;;;;;;;-1:-1:-1;;;;;1192:3712:11;3975:40:22;1192:3712:11;;3975:40:22;1192:3712:11;;;;;;;;;;;;;;;5115:6:24;-1:-1:-1;;;;;1192:3712:11;5106:4:24;5098:23;5094:145;;1192:3712:11;;;-1:-1:-1;;;;;;;;;;;1192:3712:11;;;5094:145:24;-1:-1:-1;;;5199:29:24;;1192:3712:11;;5199:29:24;1192:3712:11;-1:-1:-1;1192:3712:11;;-1:-1:-1;;1192:3712:11;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4692:6:24;1192:3712:11;4683:4:24;4675:23;;;:120;;;;1192:3712:11;4658:251:24;;;2303:62:22;;:::i;:::-;1192:3712:11;;-1:-1:-1;;;6156:52:24;;-1:-1:-1;;;;;1192:3712:11;;;;;;;;;6156:52:24;;;;;;;1192:3712:11;-1:-1:-1;6152:437:24;;-1:-1:-1;;;6518:60:24;;1192:3712:11;;;;;1805:47:36;6518:60:24;6152:437;6250:40;;-1:-1:-1;;;;;;;;;;;6250:40:24;;;6246:120;;1748:29:36;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;1192:3712:11;;-1:-1:-1;;;;;;1192:3712:11;;;;;;;;2407:36:36;1192:3712:11;;2407:36:36;1192:3712:11;;2458:15:36;:11;;4107:55:45;4065:25;;;;;;;;;;:::i;:::-;4107:55;;:::i;:::-;;1192:3712:11;;2454:148:36;6163:9;;;;;6159:70;;1192:3712:11;;6159:70:36;-1:-1:-1;;;6199:19:36;;1192:3712:11;;6199:19:36;1744:119;-1:-1:-1;;;1805:47:36;;1192:3712:11;;;1805:47:36;;6246:120:24;-1:-1:-1;;;6317:34:24;;1192:3712:11;;;6317:34:24;;6156:52;;;;1192:3712:11;6156:52:24;;1192:3712:11;6156:52:24;;;;;;1192:3712:11;6156:52:24;;;:::i;:::-;;;1192:3712:11;;;;;6156:52:24;;;;1192:3712:11;;;;6156:52:24;;;-1:-1:-1;6156:52:24;;4658:251;-1:-1:-1;;;4869:29:24;;1192:3712:11;4869:29:24;;4675:120;-1:-1:-1;;;;;;;;;;;1192:3712:11;-1:-1:-1;;;;;1192:3712:11;4753:42:24;;;-1:-1:-1;4675:120:24;;;1192:3712:11;;;;;;;;;;;-1:-1:-1;;1192:3712:11;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1192:3712:11;;;;;;;;;;;;;;;;;;;;1525:7;1192:3712;;;-1:-1:-1;;;1495:58:11;;-1:-1:-1;;;;;1192:3712:11;;;;1495:58;;1192:3712;-1:-1:-1;;1192:3712:11;1440:25:126;;1192:3712:11;;;;;;;;1495:58;1192:3712;1495:58;;;;;;;;1192:3712;-1:-1:-1;1525:7:11;1192:3712;1475:4:147;;-1:-1:-1;;;;;1192:3712:11;;;;;;;1563:59;;;;;1192:3712;1563:59;1192:3712;;;;;1475:4:147;;;;;;;;1563:59:11;;1192:3712;1563:59;;1192:3712;;;;;;;;;;;;;1563:59;;;;;;;;1192:3712;;1563:59;;;;;:::i;:::-;1192:3712;;1563:59;1192:3712;1563:59;1192:3712;;1475:4:147;1192:3712:11;;1475:4:147;;;;1563:59:11;1192:3712;;;1495:58;;;1192:3712;1495:58;1192:3712;1495:58;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;1192:3712;;1475:4:147;1192:3712:11;;1475:4:147;;;;1192:3712:11;;;;;;;;;;;;;;;-1:-1:-1;;1192:3712:11;;;;;;;-1:-1:-1;1192:3712:11;;;;;-1:-1:-1;;;;;1192:3712:11;;;;;;;;;;;-1:-1:-1;;;;;1192:3712:11;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1192:3712:11;;;;;;;;;;-1:-1:-1;;;1951:41:11;;;1454:4:70;1192:3712:11;1951:41;;1192:3712;1951:41;;1192:3712;1951:41;:::i;:::-;1454:4:70;1192:3712:11;;;;;1454:4:70;1192:3712:11;;:::i;:::-;;1454:4:70;;-1:-1:-1;;1454:4:70;1192:3712:11;1454:4:70;;;;;;-1:-1:-1;;1192:3712:11;;-1:-1:-1;;;1951:41:11;2121:105;;1454:4:70;-1:-1:-1;;;1951:41:11;1475:4:147;;1454::70;-1:-1:-1;;;1475:4:147;;;1454::70;1192:3712:11;2121:105;;1192:3712;2121:105;;1192:3712;2121:105;:::i;:::-;1192:3712;;;1454:4:70;1192:3712:11;1454:4:70;1192:3712:11;;:::i;:::-;2121:105;1454:4:70;;-1:-1:-1;;1454:4:70;1192:3712:11;1454:4:70;;;;;;1192:3712:11;;1951:41;1192:3712;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;1475:4:147;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;1192:3712:11;1475:4:147;;;;;;;;;;;;1454::70;1475::147;;;;;-1:-1:-1;;;;;1192:3712:11;;;;;;1475:4:147;;;;;;-1:-1:-1;;;;;1475:4:147;;;;3610:27:11;1475:4:147;;;2343:267:11;1475:4:147;;;;;;;;2367:233:11;;;1192:3712;1475:4:147;;1192:3712:11;2367:233;;1475:4:147;;;1454::70;2367:233:11;;1475:4:147;;;;2367:233:11;;1475:4:147;;;1192:3712:11;;2343:267;;;;;;;1475:4:147;;1192:3712:11;;;;;;1475:4:147;;1192:3712:11;;1475:4:147;;1192:3712:11;;;;;;1475:4:147;;;;1192:3712:11;1454:4:70;1475::147;;1192:3712:11;1475:4:147;1192:3712:11;1475:4:147;;;;;;;;1454::70;1475::147;;;;;1192:3712:11;1475:4:147;;;;1192:3712:11;;;;;1475:4:147;;;1192:3712:11;;1475:4:147;;1192:3712:11;1475:4:147;1192:3712:11;;;1475:4:147;;;;1192:3712:11;;1475:4:147;;;;1192:3712:11;;1475:4:147;;;;1192:3712:11;;1475:4:147;;;;;;;;:::i;:::-;2343:267:11;1951:41;;2343:267;;;;;;:::i;:::-;2331:279;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;2620:800:11;;;-1:-1:-1;;;;;2678:13:11;;:::i;:::-;1192:3712;2662:51;1192:3712;;2756:13;;:::i;:::-;2745:35;1192:3712;2745:35;1192:3712;;;2745:35;;;;;;:::i;:::-;2733:47;;;:::i;:::-;;;;;:::i;:::-;;2821:13;;:::i;:::-;2810:39;1192:3712;2810:39;1192:3712;;;2810:39;;;;;;:::i;:::-;2798:51;;;:::i;:::-;;;;;:::i;:::-;;2658:361;3441:35;3452:13;3441:35;3452:13;;:::i;:::-;1192:3712;;;3441:35;;;;;;:::i;:::-;3429:47;;;:::i;:::-;;;;;:::i;:::-;;3498:39;3509:13;3498:39;3509:13;;:::i;3498:39::-;3486:51;;;:::i;:::-;;;;;:::i;:::-;;1192:3712;;3610:27;;;1192:3712;3610:27;;;1475:4:147;1454::70;1475::147;;;;:::i;:::-;;;;-1:-1:-1;;1475:4:147;1192:3712:11;1475:4:147;;;1951:41:11;1475:4:147;:::i;3610:27:11:-;3598:39;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;1192:3712:11;1475:4:147;-1:-1:-1;;;;;1192:3712:11;;3676:42;;;;;1475:4:147;1192:3712:11;1475:4:147;1192:3712:11;;;;;1475:4:147;;;;;;;;;;3676:42:11;;1454:4:70;1192:3712:11;3676:42;;1475:4:147;;;;;;:::i;:::-;;;;-1:-1:-1;;1475:4:147;;;;;1192:3712:11;1475:4:147;:::i;:::-;1192:3712:11;;1475:4:147;;;1192:3712:11;3676:42;;;;;;;;;;2620:800;-1:-1:-1;;;;;;3825:13:11;;:::i;:::-;1192:3712;448:51:126;1192:3712:11;;3897:21;3945:10;;;;;;;:37;;;;:::i;:::-;;3813:380;;4206:24;;;4202:141;;4356:8;;4352:108;;1192:3712;;;;;;;4352:108;1475:4:147;;-1:-1:-1;;;;;4433:13:11;;:::i;:::-;-1:-1:-1;;;4373:87:11;;4398:10;1192:3712;;;1475:4:147;1192:3712:11;1475:4:147;1192:3712:11;4373:87;4202:141;1475:4:147;;1192:3712:11;;-1:-1:-1;;;;;;4292:13:11;;:::i;:::-;-1:-1:-1;;;4253:79:11;;1192:3712;;;1475:4:147;1192:3712:11;1475:4:147;;4253:79:11;3813:380;1475:4:147;;1192:3712:11;-1:-1:-1;;;;;4048:13:11;;:::i;:::-;1192:3712;;;1475:4:147;;;;;;;4025:63:11;;4082:4;1192:3712;4025:63;;1192:3712;4025:63;;;;;;;;;;;3813:380;-1:-1:-1;4013:75:11;1192:3712;-1:-1:-1;;;;;4135:13:11;;:::i;:::-;1192:3712;;-1:-1:-1;;;4112:70:11;;4160:10;1192:3712;4112:70;;1192:3712;1475:4:147;1440:25:126;;1192:3712:11;;;;;;1475:4:147;;1192:3712:11;;4112:70;;1192:3712;4112:70;;;;;;;;;;;3813:380;4102:80;3813:380;;;4112:70;;;;;;;;;;;;;;:::i;:::-;;;;;1192:3712;;1475:4:147;1192:3712:11;;1475:4:147;;;;4025:63:11;;;;;;;;;;;;;;;;;:::i;:::-;;;1440:25:126;;;;;4025:63:11;;;;1440:25:126;1192:3712:11;;;4025:63;;;;;3676:42;;;;1192:3712;3676:42;;:::i;:::-;1192:3712;3676:42;;;;1192:3712;;1475:4:147;1192:3712:11;1475:4:147;;;;;3676:42:11;1192:3712;;;2658:361;2911:13;;:::i;:::-;2900:35;1192:3712;2900:35;1192:3712;;;2900:35;;;;;;:::i;:::-;2888:47;;;:::i;:::-;;;;;:::i;:::-;;2976:13;;:::i;:::-;2965:39;1192:3712;2965:39;1192:3712;;;2965:39;;;;;;:::i;:::-;2953:51;;;:::i;:::-;;;;;:::i;:::-;;2658:361;;2620:800;-1:-1:-1;;;;;3069:13:11;;:::i;:::-;1192:3712;3053:51;1192:3712;;3147:13;;:::i;3049:361::-;3302:13;;:::i;:::-;3291:35;1192:3712;3291:35;1192:3712;;;3291:35;;;;;;:::i;:::-;3279:47;;;:::i;:::-;;;;;:::i;:::-;;3367:13;;:::i;1454:4:70:-;;;1951:41:11;1454:4:70;;;;;;;;;;1192:3712:11;;;;;;;;;;;1454:4:70;;;1951:41:11;1454:4:70;;;;;;;;;1192:3712:11;;;;;;-1:-1:-1;;1192:3712:11;;;;1363:23;1192:3712;-1:-1:-1;;;;;1192:3712:11;;;;;;;;;;-1:-1:-1;;;;;1192:3712:11;;;;;;:::o;:::-;1475:4:147;1192:3712:11;;-1:-1:-1;;;;;1192:3712:11;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;1951:41;;1192:3712;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;1192:3712:11;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1192:3712:11;;;;;;;;-1:-1:-1;;1192:3712:11;;;;:::o;1475:4:147:-;1192:3712:11;;1475:4:147;;;;;;:::o;:::-;1192:3712:11;;;;1475:4:147;;;;;1192:3712:11;1475:4:147;;1192:3712:11;;1454:4:70;1475::147;;;;;;;:::o;:::-;1192:3712:11;;1475:4:147;;;;;;;;:::o;:::-;1192:3712:11;1475:4:147;-1:-1:-1;;;;;1192:3712:11;;;;;;1475:4:147;:::o;:::-;;;-1:-1:-1;;;;;1192:3712:11;;;;;;1475:4:147;:::o;:::-;-1:-1:-1;;;;;1192:3712:11;;;;;-1:-1:-1;;;;;1192:3712:11;;;1475:4:147;;;;;;;:::o;:::-;;;1192:3712:11;;;;;;;;1475:4:147;1192:3712:11;1475:4:147;;;;;;;;;;-1:-1:-1;1475:4:147;;;;;;;;;;;;;:::o;:::-;1951:41:11;;;;;1192:3712;1951:41;1475:4:147;;1951:41:11;;;1475:4:147;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1440:25:126;;;;;;;;;;1192:3712:11;;;;;;;1440:25:126;:::o;:::-;;;;;;1192:3712:11;;;;:::i;:::-;;;;;;;;:::i;:::-;;;1440:25:126;-1:-1:-1;1440:25:126;;;;:::o;:::-;1454:4:70;1440:25:126;:::o;3405:215:22:-;-1:-1:-1;;;;;1192:3712:11;3489:22:22;;3485:91;;-1:-1:-1;;;;;;;;;;;1192:3712:11;;-1:-1:-1;;;;;;1192:3712:11;;;;;;;-1:-1:-1;;;;;1192:3712:11;3975:40:22;-1:-1:-1;;3975:40:22;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;1192:3712:11;;3509:1:22;3534:31;2658:162;-1:-1:-1;;;;;;;;;;;1192:3712:11;-1:-1:-1;;;;;1192:3712:11;966:10:25;2717:23:22;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:22;966:10:25;2763:40:22;1192:3712:11;;-1:-1:-1;2763:40:22;7084:141:23;1454:4:70;-1:-1:-1;;;;;;;;;;;1192:3712:11;;;1454:4:70;7150:18:23;7146:73;;7084:141::o;7146:73::-;7191:17;;;-1:-1:-1;7191:17:23;;-1:-1:-1;7191:17:23;4437:582:45;;4609:8;;-1:-1:-1;1192:3712:11;;5690:21:45;:17;;5815:158;;;;;;5686:354;6010:19;;;5710:1;6010:19;;5710:1;6010:19;4605:408;1192:3712:11;;4857:22:45;:49;;;4605:408;4853:119;;4985:17;;:::o;4853:119::-;-1:-1:-1;;;4878:1:45;4933:24;;;-1:-1:-1;;;;;1192:3712:11;;;;4933:24:45;1192:3712:11;;;4933:24:45;4857:49;4883:18;;;:23;4857:49;","linkReferences":{},"immutableReferences":{"7989":[{"start":993,"length":32},{"start":1201,"length":32}]}},"methodIdentifiers":{"UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","approveTokenWithPermit2(address,uint160,uint48)":"267b14bd","initialize(address,address,address)":"c0c53b8b","owner()":"8da5cb5b","permit2()":"12261ee7","poolManager()":"dc4c90d3","proxiableUUID()":"52d1902d","renounceOwnership()":"715018a6","router()":"f887ea40","swap((address,address,uint24,int24,address),uint128,uint128,uint256,bool,address)":"157fedba","transferOwnership(address)":"f2fde38b","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expectedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actualAmount\",\"type\":\"uint256\"}],\"name\":\"InsufficientSwapOutput\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SwapOutputTransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint160\",\"name\":\"amount\",\"type\":\"uint160\"},{\"internalType\":\"uint48\",\"name\":\"expiration\",\"type\":\"uint48\"}],\"name\":\"approveTokenWithPermit2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_poolManager\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_permit2\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"permit2\",\"outputs\":[{\"internalType\":\"contract IPermit2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"poolManager\",\"outputs\":[{\"internalType\":\"contract IPoolManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"contract UniversalRouter\",\"name\":\"\",\"type\":\"address\"}],\"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\"},{\"internalType\":\"uint128\",\"name\":\"amountIn\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"minAmountOut\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"stablecoinForToken\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"stablecoinAddress\",\"type\":\"address\"}],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/swaps/SwapsManager.sol\":\"SwapsManager\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@chainlink/=lib/chainlink/\",\":@ensdomains/=lib/v4-core/node_modules/@ensdomains/\",\":@httpz-contracts/=lib/httpz-contracts/contracts/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/universal-router/=lib/universal-router.git/\",\":@uniswap/v2-core/=lib/v2-core/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/\",\":@uniswap/v4-core/=lib/v4-core/\",\":@uniswap/v4-periphery/=lib/v4-periphery/\",\":chainlink/=lib/chainlink/\",\":ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":fhevm-contracts/=node_modules/fhevm-contracts/\",\":fhevm-core-contracts/=node_modules/fhevm-core-contracts/\",\":fhevm/=node_modules/fhevm/\",\":forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":httpz-contracts/=lib/httpz-contracts/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":permit2/=lib/permit2/\",\":solmate/=lib/permit2/lib/solmate/\",\":universal-router.git/=lib/universal-router.git/\",\":v2-core/=lib/v2-core/contracts/\",\":v3-core/=lib/v3-core/\",\":v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/\",\":v4-core/=lib/v4-core/src/\",\":v4-periphery/=lib/v4-periphery/\"],\"viaIR\":true},\"sources\":{\"contracts/interfaces/ISwapsManager.sol\":{\"keccak256\":\"0xa98bd09c0946399a4f4ae05e713b3207593528df54e8695a4aa4db885b47e894\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://eca854b1cf38859c81648a4bc824aa8e8e7a6347a3b902ceff0d2eb98cff384d\",\"dweb:/ipfs/QmTFzfKREewMg1xjbuCU5DDPbq8Wi1euCzpE2xJ8RAeJi8\"]},\"contracts/swaps/SwapsManager.sol\":{\"keccak256\":\"0xbf9c74550a5d7f91c56cb8832f5240c1f3e96316ddc67d9391409f1799234071\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c8df81cc2c3fc11287e39be63e97601a943caa10f753add2e05e867ca3171e\",\"dweb:/ipfs/QmVE1svFQVypEFKwSbCbEfVVL5jovsocpKidNSoyFD9g4j\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xd861907d1168dcaec2a7846edbaed12feb8bad2d6781dba987be01374f90b495\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12ff809243040419e2fc2aa7ef0aaa60b3e6ebc901553ba1de970ceeef208c4c\",\"dweb:/ipfs/QmX2dwMVNrQAahqVzEx94gqcVB6Z8ovifPYdEfHZzj7aEb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x8decfa54cec979c824b044b8128cd91d713f72c71fd7dfa54974624d8c949898\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://271f914261a19d87117a777e0924ada545c16191ef9b00cc40b0134fc14ebc70\",\"dweb:/ipfs/QmdvVNWHGHQrGGPonZJs5NuzTevTjZRM2zayKrDJf7WBA2\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff\",\"dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaaa1d17c1129b127a4a401db2fbd72960e2671474be3d08cae71ccdc42f7624c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb2f27cd3952aa667e198fba0d9b7bcec52fbb12c16f013c25fe6fb52b29cc0e\",\"dweb:/ipfs/QmeuohBFoeyDPZA9JNCTEDz3VBfBD4EABWuWXVhHAuEpKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/permit2/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0xcdfd8db76b2a3415620e4d18cc5545f3d50de792dbf2c3dd5adb40cbe6f94b10\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://57b3ab70cde374af1cf2c9888636e8de6cf660f087b1c9abd805e9271e19fa35\",\"dweb:/ipfs/QmNrLDBAHYFjpjSd12jerm1AdBkDqEYUUaXgnT854BUZ97\"]},\"lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0xbadf3d708cf532b12f75f78a1d423135954b63774a6d4ba15914a551d348db8a\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://88ac8256bd520d1b8e6f9c4ac9e8777bffdc4a6c8afb1a848f596665779a55b4\",\"dweb:/ipfs/QmXx7X1dxe6f5VM91vgQ5BA4r2eF97GWDcQDrgHytcvfjU\"]},\"lib/permit2/src/interfaces/IAllowanceTransfer.sol\":{\"keccak256\":\"0x37f0ac203b6ef605c9533e1a739477e8e9dcea90710b40e645a367f8a21ace29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0104d72aeaec1cd66cc232e7de7b7ead08608efcc179491b8a66387614670b0\",\"dweb:/ipfs/QmfAZDyuNC9FXXbnJUwqHNwmAK6uRrXxtWEytLsxjskPsN\"]},\"lib/permit2/src/interfaces/IEIP712.sol\":{\"keccak256\":\"0xfdccf2b9639070803cd0e4198427fb0df3cc452ca59bd3b8a0d957a9a4254138\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f7c936ac42ce89e827db905a1544397f8bdf46db34cdb6aa1b90dea42fdb4c72\",\"dweb:/ipfs/QmVgurxo1N31qZqkPBirw9Z7S9tLYmv6jSwQp8R8ur2cBk\"]},\"lib/permit2/src/interfaces/IPermit2.sol\":{\"keccak256\":\"0xaa631cc9f53e699301d94233007110a345e6779011def484e8dd97b8fe0af771\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc0502cf19c9c18f320a3001201e89e350393b75837f6b7971de18b2de06f30d\",\"dweb:/ipfs/QmT9SfhdJ7VJNNrf94g4H5usyi7ShqWGx7Cqsz9jZTjX96\"]},\"lib/permit2/src/interfaces/ISignatureTransfer.sol\":{\"keccak256\":\"0xe6df9966f8841dc3958ee86169c89de97e7f614c81c28b9dc947b12d732df64e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d4eafdee7f48c3be8350a94eb6edd0bfb2af2c105df65787a77174f356c0317\",\"dweb:/ipfs/QmY1j2adeeAhNpn6cUuthemxGCdLXHTfyMh9yTKsY4mZ2d\"]},\"lib/permit2/src/libraries/SafeCast160.sol\":{\"keccak256\":\"0x8a34e2beac108d74f89510c949983212b5f09307a93ee9e17a9d50e93f6bc8e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828697f9567ce617c5c1c8f76b6bcd250e93aea2c4f3ee188be6dff8443c19e7\",\"dweb:/ipfs/QmafxeSPhUc9gGtNDLAw26oZooC5XNLhDMxHxYhJxL5Nwi\"]},\"lib/universal-router.git/contracts/UniversalRouter.sol\":{\"keccak256\":\"0x5c7515720fa9b429bc83f0044f3a02cdd065fe1773b9fd32151dc5ff9042d368\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://dd77517f3a73a07fdff8f3a52c268afca749a678ea11442140d401eb102f4404\",\"dweb:/ipfs/QmeJiwCtgF1rMB7Foi6PrqWEaXktztPGQfHoAsw1BRhLU3\"]},\"lib/universal-router.git/contracts/base/Dispatcher.sol\":{\"keccak256\":\"0x1564339a5163c5d27f06a64f994a7457b061aa0f5046377bcc5078cd6907cc5d\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://82dc3ed71c19d6e5d1f72304e62e360954fc40a4d92a2a94e862c5474490d58d\",\"dweb:/ipfs/QmcNamJcGijcEetbHWVJHNjSE2WCyQsmEGEGDg9ZNwqSjR\"]},\"lib/universal-router.git/contracts/base/Lock.sol\":{\"keccak256\":\"0x92f953dda0d671178d054eeb3915b70f8ba80be33df8670a9146af4a4bc2c6ac\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://f73faac9532c8a8870d31bcef68a0dde387579d7b755c342b3352a54a4b63682\",\"dweb:/ipfs/QmXLvJb6vxfrUG84ASLhEf7tL62MN3oxkp7aXUxemrZTy3\"]},\"lib/universal-router.git/contracts/interfaces/IUniversalRouter.sol\":{\"keccak256\":\"0x2525b52d1edf5df89bfd093c5b933b9e8f65236f44f58096763a6c87a5cafb63\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5cc0fcfedd6b32586099ee0f6781bb81da99175c65013c06bb6f61a125babb18\",\"dweb:/ipfs/QmcEkSzkjkPpp3YyJZaY232TjuNU4Pw6CSiTWz7sk2Sq5D\"]},\"lib/universal-router.git/contracts/libraries/Commands.sol\":{\"keccak256\":\"0xa08ae7be62972a4f17779257641065d41fa5cc2d5fc7050e5e5b76fbda9e6a9f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0b94d73c5cd54aba5e1ad4ccfc33df13c1b04417f53fda188275fc15f95f02f2\",\"dweb:/ipfs/QmNpigDf9g9AAbFr27gug5hAZjb6iuFekRqXonC6upoEcp\"]},\"lib/universal-router.git/contracts/libraries/Constants.sol\":{\"keccak256\":\"0xb668498f11a4bb576a0a61c183da7ca348249dd9176c57dcb6532912b1b49b0e\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://87d8588baf0b7b72faec637843c7623ac416d45e0f7719d0a635afe7981b2cf2\",\"dweb:/ipfs/QmSu7Jr8JM6mab2dddk1UaiPhyLZvsA8iLxC9MEcBUaMzT\"]},\"lib/universal-router.git/contracts/libraries/Locker.sol\":{\"keccak256\":\"0xfccb45f77b5c66f0f417d803b4b3f7ae97206d8d850a383ab7d97f25d0617cc0\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b47f3f4e74961f8e9d918c2cc3514cb8d097caee6ab2c20c10735235dec440ec\",\"dweb:/ipfs/QmfTWUjP7g7zTw67C2RvoMhWRX6ExLNV3UYSb5LqfE4bqC\"]},\"lib/universal-router.git/contracts/libraries/MaxInputAmount.sol\":{\"keccak256\":\"0x2dd6efbcaf9991c852e29a726f9876a0a6d08f2271912e69efa5c6a5e8034739\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://949ebd746eee3589d1e466c738884bd3532043d9e8a7b77c1521a098ba3c69b6\",\"dweb:/ipfs/QmZC9idgGQDfLksqfz41FrcsVXhqkfRZCZH9MJXQkQavt6\"]},\"lib/universal-router.git/contracts/modules/MigratorImmutables.sol\":{\"keccak256\":\"0x666d1622a10509c69b679df9d175a3e0c176a62b9e18d1cee7634219aded8f68\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a88e472495d32648ba3e7964c4c88b68853b49540f40afbaf2ede6822372b49f\",\"dweb:/ipfs/QmQoaWbCpwFYCnRgehM7ruYaa7za8fBghT5aQCRCPYJr1V\"]},\"lib/universal-router.git/contracts/modules/Payments.sol\":{\"keccak256\":\"0x19a103b3269ee2f7bc28a6e1850091b2087dd2558662494d1104ac8e5ac68524\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://ba64c600f57bb13672a5549b6dba11ae4dfe49f688c24eadb3289dcc87d226a8\",\"dweb:/ipfs/QmWkmVyeai1WeymuWqEk1fQE5R2frrQQjJv81cytrKvFuA\"]},\"lib/universal-router.git/contracts/modules/PaymentsImmutables.sol\":{\"keccak256\":\"0x9ca2535b69b15d3bdb7a15871c5bca83f5536cffb0191c64f4c6a2db4a154338\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://dc85fb3ddd19481bf0d1a8a9f5d9631b396d86344a33e30b4c4ab6cd58d51169\",\"dweb:/ipfs/QmeEGFqfHFUo1Mu6tRfCjvVGJYyoDu29ZspZgxxcj6ykvq\"]},\"lib/universal-router.git/contracts/modules/Permit2Payments.sol\":{\"keccak256\":\"0x887ec1f57144cd91a1b86d5a7b1d1119146f41dae6865e6fd0e849801e968628\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://08b713e82f3f192976902497e1c02dd60bf7e90c83a471eb4c7ac7710b086f95\",\"dweb:/ipfs/QmWJSGZ9Dj7FmFCnDWpDdL5fx76JYDgYWhggXCroxV7cjX\"]},\"lib/universal-router.git/contracts/modules/V3ToV4Migrator.sol\":{\"keccak256\":\"0x5ee3774b749b9a8d851dc6074c8de8c61f408a4cfd829c47c753840c839ba91c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://337e17b84f4fdad7e32be0e482e7b2471d7f927ba3b3174cae38cf2509d97443\",\"dweb:/ipfs/QmbzgdyxAC5vpvWRGaemn3Qn7DRbNDjHSH3KbHSDPwJ8LY\"]},\"lib/universal-router.git/contracts/modules/uniswap/UniswapImmutables.sol\":{\"keccak256\":\"0xb810727f5e734a30871ff1d83d8c96d99150f1ce77bb39e032aec6254ca43cd0\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5eb9df8b6c81f8e33b8a6bace294ed0d81c541988f7ba42027e3041eff32e1bd\",\"dweb:/ipfs/QmVPSWBv7WegGySGV4BoewKKx7iAetHsjydxQyKk3dh5yw\"]},\"lib/universal-router.git/contracts/modules/uniswap/v2/UniswapV2Library.sol\":{\"keccak256\":\"0x829d48c1b69d2e1bc078a57aae8d87dc31d920b01c62d6268d20d517fd24150c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b87236ea4c1e64c12434f31abbd658ca3fc510ebe65be731d84d3ce8efa71c32\",\"dweb:/ipfs/QmUerjg5Ebt3pfQZtk2sArUy414gQtHwvFNgsQNe4PhxbN\"]},\"lib/universal-router.git/contracts/modules/uniswap/v2/V2SwapRouter.sol\":{\"keccak256\":\"0x0fcb6ad6c4d5a7b25054dd9951432b2b41cb2c0077e6bc7ca0d0416115ef2326\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://124b1dd54d27914306bdd1021e171111f0ae622fffb2974ccdee24eab31b359d\",\"dweb:/ipfs/QmfKr2sbxdc31aPWv9d6ETA4GyfqHiKVZRKqhREnMkR5j9\"]},\"lib/universal-router.git/contracts/modules/uniswap/v3/BytesLib.sol\":{\"keccak256\":\"0xc3c23e83afd06781c4a0a5c418c20c40611e71d049766eb70987007ce372656e\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://c62989beb75edad6de18c31be31eb68f0c3fb15c5f9e9bb380221afc6785fda5\",\"dweb:/ipfs/QmVEsp5yivbmjP7HcXS5kJ1XJY5Uic3J3y4zjpwD1SNySD\"]},\"lib/universal-router.git/contracts/modules/uniswap/v3/V3Path.sol\":{\"keccak256\":\"0xf6abbf4c7cd0975ddabb0ddb641ea9ae3b0cc1dd9a1cabf5e7cc271a974eabc2\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1e0987fc9b81c65eada64cb65f981680c2054e489a6049d397b5ecbbf4c9a0a9\",\"dweb:/ipfs/QmW7mbbHsfc2GLy2GkCUv3VwXV93y6UFtKDD7E9QEtzFH7\"]},\"lib/universal-router.git/contracts/modules/uniswap/v3/V3SwapRouter.sol\":{\"keccak256\":\"0x31fe8777a6de583c54a0f09ec11d318c253b7fe50c7a2af1608b2b89a03ca660\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://780219ff0d6d333727655719d31d61ce345cdbca7f906467a2d00e3162b3c0aa\",\"dweb:/ipfs/QmbauA5Kvj7m9P9hxe4hhnLY5w2TEXMMnCc9oWehVgj2jo\"]},\"lib/universal-router.git/contracts/modules/uniswap/v4/V4SwapRouter.sol\":{\"keccak256\":\"0x68b7666641ad5ba227b500c9845c4bc71eaaac6556d97d31d123fce41b51969a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://40a99bb5e9e407ad6741f5c210ac23a32950e7567c73f21975444e9729fc6cfb\",\"dweb:/ipfs/QmUK98HjyQ7NDGR36DD9owjLDk7ujEj5b5uKt9zjUsCFG5\"]},\"lib/universal-router.git/contracts/types/RouterParameters.sol\":{\"keccak256\":\"0x9efe9912d44e56cff8fc23e1411c80b47ffc9f5c0ad5ca5c66ab77a1b7ddfcbf\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://473acf49dc1be1ca997ad20258124e26e03b3cef15412a8827ecf9b52e4cef21\",\"dweb:/ipfs/QmaGR2QL6im4XYJpubqhUuP82nFytemX7wwEk4cXECJYJN\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56\",\"dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0xa72de315bd655a0fd5043ff97c7fd3868a1b5b1986afd75c6f5f8fd0f904985f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8838e68aba9caf2b2cb13bd4cb661b1f9c167cca4dfcd50ac72ae96691392df\",\"dweb:/ipfs/QmfLq3cmsSQTuLLxiF4bgceaf2jx8CoiVXQd7BZXGgJG1E\"]},\"lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol\":{\"keccak256\":\"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b\",\"urls\":[\"bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf\",\"dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH\"]},\"lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"lib/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652\",\"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"lib/v3-core/contracts/libraries/SafeCast.sol\":{\"keccak256\":\"0x4c12bf820c0b011f5490a209960ca34dd8af34660ef9e01de0438393d15e3fd8\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://fed11489e218e55d087d42b4f350a30e10cd2aedec8f432bd3cc712f648d5869\",\"dweb:/ipfs/QmWfRnRxyXwHUDcTQPazxYYk5jxErGeQqdvnYtyg5nBPbU\"]},\"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\":\"0x4c9571aed0c2b6ef11832545554fc11ffdb03746daaf5c73683c00600bfc7ec0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e78b34b58ce9de91b91943b4f3cc3ce121d0b151e123e8a600ac5ef64d91db6c\",\"dweb:/ipfs/QmRkaQnPCYwLrXgbpGujJTx32PaZK63KSPJJV1XmnQuCMb\"]},\"lib/v4-core/src/interfaces/IPoolManager.sol\":{\"keccak256\":\"0x3534f00531038e77ab8a7fc4d0a6e0993ee53fb7a396b1324ad917318ea46cea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4a7e771828dc40848485b568a1cf514f553ace6653f4f4d1ad3f3e9cdb6c27\",\"dweb:/ipfs/QmTjzQ7KVYnrEWtxPER2E4MXzycgcznfzSDsZtd5turk5V\"]},\"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/CurrencyReserves.sol\":{\"keccak256\":\"0x1576616129933fcdf3b684cea33cffd9c95e18fafbd2832a8c48ac3d8526d4c3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://33b050efb9b81803b18f562271e7cca2ec5362c4d505860d6419b4a345636725\",\"dweb:/ipfs/QmQtFtTwKZ5pFVGD2ENDUXvp7ECFvzqeCuJ1miJcUHdmiX\"]},\"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/Lock.sol\":{\"keccak256\":\"0x9338be4b5695f1da5f3d3f7a3eeaf7a356c1045458289586ac0cbe9cef77c6d5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://485ec42ed6155469d612a9a0c18068ebfbad74448792a338a435503de3ef1b2c\",\"dweb:/ipfs/QmVnnv5u74MYatfRmBgrcfFYQcsMAJMG9jQ6ju8UiydKNF\"]},\"lib/v4-core/src/libraries/NonzeroDeltaCount.sol\":{\"keccak256\":\"0x0666ebd5d3528d7d52c48538296367a4cff97a578cf13365c51983fae3219b87\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://d27f1be3bd09d85c53d3e6a539dd6529ddd8b2b764ccb47fd7765fc81f9add59\",\"dweb:/ipfs/QmQdZujNXhKEXQBkKtF5jbdvo1yXMqPDUoBBaF9S5u3Kpm\"]},\"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/libraries/TransientStateLibrary.sol\":{\"keccak256\":\"0x7d1e0875747bd89b32c25f1a48da2766e5f4aff1f671ad5f3c0c07ebbbcb946a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d76cfeb1cb60595b41ecc51c8a12fb4bf63a7fc733d0b1a2e3adb55abeb1f9d5\",\"dweb:/ipfs/Qmb8oX7DtsRpw3tTtdWZwGhauj1evq43d3PLwe4nSDAKkV\"]},\"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-periphery/src/V4Router.sol\":{\"keccak256\":\"0x8ede1e538ae9b74984c52347a3bbaee7b3d69f00ed9b3a6db1f1bd6e058a2326\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e370416fa9681ad124414e2b2fb57a5455e15dd873c9e61c964177ae5c2d544\",\"dweb:/ipfs/QmWrM97ezNB9CpawqhkwpubXHcXUbMFWKYEbD3D6EyAe1w\"]},\"lib/v4-periphery/src/base/BaseActionsRouter.sol\":{\"keccak256\":\"0xca1ee500f88951ad351d18ba2adfb5fe23abef6d502f234ce5748a3497674a4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f03ab458be27c29cef1b7ace5b11517d3fef8bf6131af7dd80d6297c224cf71\",\"dweb:/ipfs/QmYoH6o8yeRzbeLoaMG9TjS8q2Fw7T1h4vXvvMnp3XfsUa\"]},\"lib/v4-periphery/src/base/DeltaResolver.sol\":{\"keccak256\":\"0x94a2da2be5c924df65a8e1e29f585bbe4c37777fedd43b45989c66d509a4a83c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42bba590f6e817fd56328b74ae99bfdc4df57386d0a69ee22b9108341953ed36\",\"dweb:/ipfs/QmdusastK7FWYouLz9gvV5J3z8MQbNKLJNNHTrc1vi7DWw\"]},\"lib/v4-periphery/src/base/ImmutableState.sol\":{\"keccak256\":\"0x1867c9fa2f9b4fa73bab0fcdc9d19ccef4eeac552273d8b84a170cd1cc90350a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af2d699b439e13b599632fddfe82718aebd41055fba7c075f186675c588d1337\",\"dweb:/ipfs/Qmc111gckSKb9aESn3wRFLeLiS4KGujaUcaYJgRnCRfwQU\"]},\"lib/v4-periphery/src/base/SafeCallback.sol\":{\"keccak256\":\"0xd78b583df1b9ee06d58e83b84fc9f08971389b34dd34bc13db072e0c13c710da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0a47f4bcd6060c4462153b9a7c52a60a460ace91acb6ddd5492eab28ec26173\",\"dweb:/ipfs/QmdRCTRS1dhFjWEy6z577j4xz9J5HPfHBwcNzAic8G59oT\"]},\"lib/v4-periphery/src/interfaces/IEIP712_v4.sol\":{\"keccak256\":\"0xd7f7115476e307a0bfc32a0f0a0f5434e9e5ca62a6c5af1e18b75e48161bb408\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1600b953556da38a7adc5ad2a2925ec5fb138fecf8eec48743646543195b736\",\"dweb:/ipfs/QmarZi2aiLVAfHXgnDWV1cCFiZk2DdPW7KJnWHqzuRChJR\"]},\"lib/v4-periphery/src/interfaces/IERC721Permit_v4.sol\":{\"keccak256\":\"0x103adbba724ef536abc536fe8a4d7dc12880724c562109b69f2adce4a91fa017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06f51b5a5a218e0bc866a83e7821be53c9db9de0ca921f16abd3d13ea0eab69d\",\"dweb:/ipfs/QmbnhLy992hpQZyphTkj7fpr6jKKVva2AzfmLiDZEuqHAk\"]},\"lib/v4-periphery/src/interfaces/IImmutableState.sol\":{\"keccak256\":\"0x36ab3100e87457ecf04887f4f540e34fd7f21d8e3b83880cb679239e60b7b06b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f290c7ce8e4832608d637a51b13dff95abecf6549485448e647a11c8ed01341\",\"dweb:/ipfs/QmfD1R6mTp8j4EjQXmQZW3vCh11EYFjnvoaw8rXRP27mMq\"]},\"lib/v4-periphery/src/interfaces/IMulticall_v4.sol\":{\"keccak256\":\"0x336bec303f7ff86497d2679464c5adad5040f412b3d0769ce5e1d2a42f7e2c08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7734f047d98d331c8abc51ad9f358ceee0a6dcae8d89ac49084b84de0d2d42e7\",\"dweb:/ipfs/QmWij2h7mU36LsXhb9P6pkYXrSCua4ixeWaVFSrsEcEmPQ\"]},\"lib/v4-periphery/src/interfaces/INotifier.sol\":{\"keccak256\":\"0xfdc5187a98240a1691aae98b7dd2444d4c2bfb4746f3c34de9f3d18399c17c5e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://683af56401ec4f8817e8dfe150e7b3febaf0baaf40efe8d0d0475f735275f746\",\"dweb:/ipfs/QmRQ6S3nFnSc2jjDcQTvUJdTf4xKPojmvCkpvgyr6qTuVV\"]},\"lib/v4-periphery/src/interfaces/IPermit2Forwarder.sol\":{\"keccak256\":\"0xfad472937280e861125ff12aa6f9c2cf7440fbb20a2cc29485c24662ad4279c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31bfbc331f5972fc373d9469fd1ca1d14818db3275f21b7b590f20820cb4439d\",\"dweb:/ipfs/QmX3Bv9wfYpAFZKBcxKsQSXUrSC8mqNBdzh6XVMS72aNx9\"]},\"lib/v4-periphery/src/interfaces/IPoolInitializer_v4.sol\":{\"keccak256\":\"0x2e4feda94650a2642039e0309ffdec480ee050bc40864bf5e1dba42bb4dc9e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://964c178b4da8bab9ef898b94bb26d7c17cc44c5cf20485f55dcf5e9c7e1b1d92\",\"dweb:/ipfs/QmVd2c3SYteyr5xZgUS4sDAiZF43dLwVAEKdCfvQbkZpRJ\"]},\"lib/v4-periphery/src/interfaces/IPositionManager.sol\":{\"keccak256\":\"0x62dfa0cbee8314ee7e6787db8bc1d364245c340f940875ac7ff11e89d074fc7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26f560c77d8a187bf93a710b827e3167eab3446922192fa8f92f208da2103834\",\"dweb:/ipfs/Qmbzp5gSYdTpMBF9aAb2GraxMEQZb5LRJCyg8VaRUyjTFc\"]},\"lib/v4-periphery/src/interfaces/ISubscriber.sol\":{\"keccak256\":\"0x34ceadec4a63019680e543fe73197f198a55c825d86e18f327840354760b57e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31734feafe1fe162a0702ddf862fcc3bd97505931afb3c685033c0185d898051\",\"dweb:/ipfs/QmQEANYVyaXTNzXKcjUVfPhLU71Bix5vxQH75BpPWMkWgw\"]},\"lib/v4-periphery/src/interfaces/IUnorderedNonce.sol\":{\"keccak256\":\"0xd7f32fee74dc7d1a3b078ca1263961baccaa6bf434c79e8fe0e092e30c3e0ec3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7d1e92d89d5f49c84aa82f3b259678c2c97a4473b22d753ca4411a6b0cec36d\",\"dweb:/ipfs/QmNZoQyminStaAdaLqoDLoWaBU5QWrWjXFjmBm4aFhzL8i\"]},\"lib/v4-periphery/src/interfaces/IV4Router.sol\":{\"keccak256\":\"0xc4133fae25e61cc2447d7331729f6035322d7c1fe26b39b225422bf98cc63459\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c24ff8428504e973e947a059f96289a66c520cd7f8ef47a3224f9cb6abdaf25\",\"dweb:/ipfs/QmVqxYnngWXXcCiuTC143vTEJrjZK5NXWB92pjvVbuJBQ5\"]},\"lib/v4-periphery/src/interfaces/external/IWETH9.sol\":{\"keccak256\":\"0xe88abf12501ac275619aec0687240a07d26968aecbbcdfea88ba8bbd5d6e5e14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7097065d4492b4eccb1a73f99af1e5bec45404c6b973b8f5965c4c91403f5f92\",\"dweb:/ipfs/QmZK8oEqmjmTqhBoh3D3fBpyKGkUEFnptY8xwH9xpNjDm2\"]},\"lib/v4-periphery/src/libraries/ActionConstants.sol\":{\"keccak256\":\"0x3d6f0e5b4a7b1e60bad93e73dce5db67fb66bebef11c31ed8355014a79aa03b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6dfa42e24b1b5c7f66e75304ab034fbb6768518eb2410ccfff8b3defdd1658f2\",\"dweb:/ipfs/QmQQ7fud9mmv7PEWPAQiNzeZhNkWf28Z6nCHc2e6WJFfa7\"]},\"lib/v4-periphery/src/libraries/Actions.sol\":{\"keccak256\":\"0x8efd4b8b289177ee27e557d9d0a5a9f973d66fe1eb1ef8959d316b11987ca830\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07fe35f194eb99465028f0546359befea574d844da53767d32f22b233c3bcc98\",\"dweb:/ipfs/Qmc19631uFxABTHAbGrDrroexi9GdyxWntaum1v8npPYz5\"]},\"lib/v4-periphery/src/libraries/BipsLibrary.sol\":{\"keccak256\":\"0x37ebf99f5d086d9d9f6e7cecbf4d62167f47c63c30248cfcb921e828f0d7a359\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4f8e68a66bb6c166d72cdba6ed6fb83a93f713b79c2c572e8058084eb90ab6c\",\"dweb:/ipfs/QmY32FxtSBRf9PJzNUVzXqFY4i2ApTPHTUMpCBGovd2zo3\"]},\"lib/v4-periphery/src/libraries/CalldataDecoder.sol\":{\"keccak256\":\"0x26df49e13fb5410fd4db253cca877dfdfb3a1ba03e394d054c0e0514a88a56e5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72a0c98c52171708f332f83d517deeb97fdd50ecf28f2510e1866e54593a6ff8\",\"dweb:/ipfs/QmY4LiDUfSKGj86nML7B6a8euiPciUqwYehasAyAVnMCHq\"]},\"lib/v4-periphery/src/libraries/PathKey.sol\":{\"keccak256\":\"0xbbd79ffefe045f025263e389539021266fb4d371463aefba405e1ff1d3fcf9bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d1c47b81a01218be46ee79f0a8837095479b94dc5cfd18abbf2006709f0ea89\",\"dweb:/ipfs/QmRb6CQ13Zp7f3WF5jbZtsF2szhxpPgcuWs9mjwQXxzqtg\"]},\"lib/v4-periphery/src/libraries/PositionInfoLibrary.sol\":{\"keccak256\":\"0xc5ddf96bd088bc87ea50a20f907fc932fb28397a42682a301b268a11b7f34078\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7dfeb4dc747537240f8167243e8066b6f5f08057386fb8bda93f82973fc18ad6\",\"dweb:/ipfs/Qmby9DAAaHj8hjsMUnqY3vjqCHKGAKrT5EULMmeGcjbbGx\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"expectedAmount","type":"uint256"},{"internalType":"uint256","name":"actualAmount","type":"uint256"}],"type":"error","name":"InsufficientSwapOutput"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"type":"error","name":"SwapOutputTransferFailed"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint160","name":"amount","type":"uint160"},{"internalType":"uint48","name":"expiration","type":"uint48"}],"stateMutability":"nonpayable","type":"function","name":"approveTokenWithPermit2"},{"inputs":[{"internalType":"address","name":"_router","type":"address"},{"internalType":"address","name":"_poolManager","type":"address"},{"internalType":"address","name":"_permit2","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"permit2","outputs":[{"internalType":"contract IPermit2","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"poolManager","outputs":[{"internalType":"contract IPoolManager","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"router","outputs":[{"internalType":"contract UniversalRouter","name":"","type":"address"}]},{"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":"uint128","name":"amountIn","type":"uint128"},{"internalType":"uint128","name":"minAmountOut","type":"uint128"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"stablecoinForToken","type":"bool"},{"internalType":"address","name":"stablecoinAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"swap","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@chainlink/=lib/chainlink/","@ensdomains/=lib/v4-core/node_modules/@ensdomains/","@httpz-contracts/=lib/httpz-contracts/contracts/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@uniswap/universal-router/=lib/universal-router.git/","@uniswap/v2-core/=lib/v2-core/","@uniswap/v3-core/=lib/v3-core/","@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/","@uniswap/v4-core/=lib/v4-core/","@uniswap/v4-periphery/=lib/v4-periphery/","chainlink/=lib/chainlink/","ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","eth-gas-reporter/=node_modules/eth-gas-reporter/","fhevm-contracts/=node_modules/fhevm-contracts/","fhevm-core-contracts/=node_modules/fhevm-core-contracts/","fhevm/=node_modules/fhevm/","forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","httpz-contracts/=lib/httpz-contracts/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","permit2/=lib/permit2/","solmate/=lib/permit2/lib/solmate/","universal-router.git/=lib/universal-router.git/","v2-core/=lib/v2-core/contracts/","v3-core/=lib/v3-core/","v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/","v4-core/=lib/v4-core/src/","v4-periphery/=lib/v4-periphery/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/swaps/SwapsManager.sol":"SwapsManager"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/interfaces/ISwapsManager.sol":{"keccak256":"0xa98bd09c0946399a4f4ae05e713b3207593528df54e8695a4aa4db885b47e894","urls":["bzz-raw://eca854b1cf38859c81648a4bc824aa8e8e7a6347a3b902ceff0d2eb98cff384d","dweb:/ipfs/QmTFzfKREewMg1xjbuCU5DDPbq8Wi1euCzpE2xJ8RAeJi8"],"license":"BSD-3-Clause-Clear"},"contracts/swaps/SwapsManager.sol":{"keccak256":"0xbf9c74550a5d7f91c56cb8832f5240c1f3e96316ddc67d9391409f1799234071","urls":["bzz-raw://35c8df81cc2c3fc11287e39be63e97601a943caa10f753add2e05e867ca3171e","dweb:/ipfs/QmVE1svFQVypEFKwSbCbEfVVL5jovsocpKidNSoyFD9g4j"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xd861907d1168dcaec2a7846edbaed12feb8bad2d6781dba987be01374f90b495","urls":["bzz-raw://12ff809243040419e2fc2aa7ef0aaa60b3e6ebc901553ba1de970ceeef208c4c","dweb:/ipfs/QmX2dwMVNrQAahqVzEx94gqcVB6Z8ovifPYdEfHZzj7aEb"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x8decfa54cec979c824b044b8128cd91d713f72c71fd7dfa54974624d8c949898","urls":["bzz-raw://271f914261a19d87117a777e0924ada545c16191ef9b00cc40b0134fc14ebc70","dweb:/ipfs/QmdvVNWHGHQrGGPonZJs5NuzTevTjZRM2zayKrDJf7WBA2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de","urls":["bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff","dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xaaa1d17c1129b127a4a401db2fbd72960e2671474be3d08cae71ccdc42f7624c","urls":["bzz-raw://cb2f27cd3952aa667e198fba0d9b7bcec52fbb12c16f013c25fe6fb52b29cc0e","dweb:/ipfs/QmeuohBFoeyDPZA9JNCTEDz3VBfBD4EABWuWXVhHAuEpKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/permit2/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0xcdfd8db76b2a3415620e4d18cc5545f3d50de792dbf2c3dd5adb40cbe6f94b10","urls":["bzz-raw://57b3ab70cde374af1cf2c9888636e8de6cf660f087b1c9abd805e9271e19fa35","dweb:/ipfs/QmNrLDBAHYFjpjSd12jerm1AdBkDqEYUUaXgnT854BUZ97"],"license":"AGPL-3.0-only"},"lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol":{"keccak256":"0xbadf3d708cf532b12f75f78a1d423135954b63774a6d4ba15914a551d348db8a","urls":["bzz-raw://88ac8256bd520d1b8e6f9c4ac9e8777bffdc4a6c8afb1a848f596665779a55b4","dweb:/ipfs/QmXx7X1dxe6f5VM91vgQ5BA4r2eF97GWDcQDrgHytcvfjU"],"license":"AGPL-3.0-only"},"lib/permit2/src/interfaces/IAllowanceTransfer.sol":{"keccak256":"0x37f0ac203b6ef605c9533e1a739477e8e9dcea90710b40e645a367f8a21ace29","urls":["bzz-raw://e0104d72aeaec1cd66cc232e7de7b7ead08608efcc179491b8a66387614670b0","dweb:/ipfs/QmfAZDyuNC9FXXbnJUwqHNwmAK6uRrXxtWEytLsxjskPsN"],"license":"MIT"},"lib/permit2/src/interfaces/IEIP712.sol":{"keccak256":"0xfdccf2b9639070803cd0e4198427fb0df3cc452ca59bd3b8a0d957a9a4254138","urls":["bzz-raw://f7c936ac42ce89e827db905a1544397f8bdf46db34cdb6aa1b90dea42fdb4c72","dweb:/ipfs/QmVgurxo1N31qZqkPBirw9Z7S9tLYmv6jSwQp8R8ur2cBk"],"license":"MIT"},"lib/permit2/src/interfaces/IPermit2.sol":{"keccak256":"0xaa631cc9f53e699301d94233007110a345e6779011def484e8dd97b8fe0af771","urls":["bzz-raw://fc0502cf19c9c18f320a3001201e89e350393b75837f6b7971de18b2de06f30d","dweb:/ipfs/QmT9SfhdJ7VJNNrf94g4H5usyi7ShqWGx7Cqsz9jZTjX96"],"license":"MIT"},"lib/permit2/src/interfaces/ISignatureTransfer.sol":{"keccak256":"0xe6df9966f8841dc3958ee86169c89de97e7f614c81c28b9dc947b12d732df64e","urls":["bzz-raw://3d4eafdee7f48c3be8350a94eb6edd0bfb2af2c105df65787a77174f356c0317","dweb:/ipfs/QmY1j2adeeAhNpn6cUuthemxGCdLXHTfyMh9yTKsY4mZ2d"],"license":"MIT"},"lib/permit2/src/libraries/SafeCast160.sol":{"keccak256":"0x8a34e2beac108d74f89510c949983212b5f09307a93ee9e17a9d50e93f6bc8e9","urls":["bzz-raw://828697f9567ce617c5c1c8f76b6bcd250e93aea2c4f3ee188be6dff8443c19e7","dweb:/ipfs/QmafxeSPhUc9gGtNDLAw26oZooC5XNLhDMxHxYhJxL5Nwi"],"license":"MIT"},"lib/universal-router.git/contracts/UniversalRouter.sol":{"keccak256":"0x5c7515720fa9b429bc83f0044f3a02cdd065fe1773b9fd32151dc5ff9042d368","urls":["bzz-raw://dd77517f3a73a07fdff8f3a52c268afca749a678ea11442140d401eb102f4404","dweb:/ipfs/QmeJiwCtgF1rMB7Foi6PrqWEaXktztPGQfHoAsw1BRhLU3"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/base/Dispatcher.sol":{"keccak256":"0x1564339a5163c5d27f06a64f994a7457b061aa0f5046377bcc5078cd6907cc5d","urls":["bzz-raw://82dc3ed71c19d6e5d1f72304e62e360954fc40a4d92a2a94e862c5474490d58d","dweb:/ipfs/QmcNamJcGijcEetbHWVJHNjSE2WCyQsmEGEGDg9ZNwqSjR"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/base/Lock.sol":{"keccak256":"0x92f953dda0d671178d054eeb3915b70f8ba80be33df8670a9146af4a4bc2c6ac","urls":["bzz-raw://f73faac9532c8a8870d31bcef68a0dde387579d7b755c342b3352a54a4b63682","dweb:/ipfs/QmXLvJb6vxfrUG84ASLhEf7tL62MN3oxkp7aXUxemrZTy3"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/interfaces/IUniversalRouter.sol":{"keccak256":"0x2525b52d1edf5df89bfd093c5b933b9e8f65236f44f58096763a6c87a5cafb63","urls":["bzz-raw://5cc0fcfedd6b32586099ee0f6781bb81da99175c65013c06bb6f61a125babb18","dweb:/ipfs/QmcEkSzkjkPpp3YyJZaY232TjuNU4Pw6CSiTWz7sk2Sq5D"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/libraries/Commands.sol":{"keccak256":"0xa08ae7be62972a4f17779257641065d41fa5cc2d5fc7050e5e5b76fbda9e6a9f","urls":["bzz-raw://0b94d73c5cd54aba5e1ad4ccfc33df13c1b04417f53fda188275fc15f95f02f2","dweb:/ipfs/QmNpigDf9g9AAbFr27gug5hAZjb6iuFekRqXonC6upoEcp"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/libraries/Constants.sol":{"keccak256":"0xb668498f11a4bb576a0a61c183da7ca348249dd9176c57dcb6532912b1b49b0e","urls":["bzz-raw://87d8588baf0b7b72faec637843c7623ac416d45e0f7719d0a635afe7981b2cf2","dweb:/ipfs/QmSu7Jr8JM6mab2dddk1UaiPhyLZvsA8iLxC9MEcBUaMzT"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/libraries/Locker.sol":{"keccak256":"0xfccb45f77b5c66f0f417d803b4b3f7ae97206d8d850a383ab7d97f25d0617cc0","urls":["bzz-raw://b47f3f4e74961f8e9d918c2cc3514cb8d097caee6ab2c20c10735235dec440ec","dweb:/ipfs/QmfTWUjP7g7zTw67C2RvoMhWRX6ExLNV3UYSb5LqfE4bqC"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/libraries/MaxInputAmount.sol":{"keccak256":"0x2dd6efbcaf9991c852e29a726f9876a0a6d08f2271912e69efa5c6a5e8034739","urls":["bzz-raw://949ebd746eee3589d1e466c738884bd3532043d9e8a7b77c1521a098ba3c69b6","dweb:/ipfs/QmZC9idgGQDfLksqfz41FrcsVXhqkfRZCZH9MJXQkQavt6"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/MigratorImmutables.sol":{"keccak256":"0x666d1622a10509c69b679df9d175a3e0c176a62b9e18d1cee7634219aded8f68","urls":["bzz-raw://a88e472495d32648ba3e7964c4c88b68853b49540f40afbaf2ede6822372b49f","dweb:/ipfs/QmQoaWbCpwFYCnRgehM7ruYaa7za8fBghT5aQCRCPYJr1V"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/Payments.sol":{"keccak256":"0x19a103b3269ee2f7bc28a6e1850091b2087dd2558662494d1104ac8e5ac68524","urls":["bzz-raw://ba64c600f57bb13672a5549b6dba11ae4dfe49f688c24eadb3289dcc87d226a8","dweb:/ipfs/QmWkmVyeai1WeymuWqEk1fQE5R2frrQQjJv81cytrKvFuA"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/PaymentsImmutables.sol":{"keccak256":"0x9ca2535b69b15d3bdb7a15871c5bca83f5536cffb0191c64f4c6a2db4a154338","urls":["bzz-raw://dc85fb3ddd19481bf0d1a8a9f5d9631b396d86344a33e30b4c4ab6cd58d51169","dweb:/ipfs/QmeEGFqfHFUo1Mu6tRfCjvVGJYyoDu29ZspZgxxcj6ykvq"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/Permit2Payments.sol":{"keccak256":"0x887ec1f57144cd91a1b86d5a7b1d1119146f41dae6865e6fd0e849801e968628","urls":["bzz-raw://08b713e82f3f192976902497e1c02dd60bf7e90c83a471eb4c7ac7710b086f95","dweb:/ipfs/QmWJSGZ9Dj7FmFCnDWpDdL5fx76JYDgYWhggXCroxV7cjX"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/V3ToV4Migrator.sol":{"keccak256":"0x5ee3774b749b9a8d851dc6074c8de8c61f408a4cfd829c47c753840c839ba91c","urls":["bzz-raw://337e17b84f4fdad7e32be0e482e7b2471d7f927ba3b3174cae38cf2509d97443","dweb:/ipfs/QmbzgdyxAC5vpvWRGaemn3Qn7DRbNDjHSH3KbHSDPwJ8LY"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/UniswapImmutables.sol":{"keccak256":"0xb810727f5e734a30871ff1d83d8c96d99150f1ce77bb39e032aec6254ca43cd0","urls":["bzz-raw://5eb9df8b6c81f8e33b8a6bace294ed0d81c541988f7ba42027e3041eff32e1bd","dweb:/ipfs/QmVPSWBv7WegGySGV4BoewKKx7iAetHsjydxQyKk3dh5yw"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v2/UniswapV2Library.sol":{"keccak256":"0x829d48c1b69d2e1bc078a57aae8d87dc31d920b01c62d6268d20d517fd24150c","urls":["bzz-raw://b87236ea4c1e64c12434f31abbd658ca3fc510ebe65be731d84d3ce8efa71c32","dweb:/ipfs/QmUerjg5Ebt3pfQZtk2sArUy414gQtHwvFNgsQNe4PhxbN"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v2/V2SwapRouter.sol":{"keccak256":"0x0fcb6ad6c4d5a7b25054dd9951432b2b41cb2c0077e6bc7ca0d0416115ef2326","urls":["bzz-raw://124b1dd54d27914306bdd1021e171111f0ae622fffb2974ccdee24eab31b359d","dweb:/ipfs/QmfKr2sbxdc31aPWv9d6ETA4GyfqHiKVZRKqhREnMkR5j9"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v3/BytesLib.sol":{"keccak256":"0xc3c23e83afd06781c4a0a5c418c20c40611e71d049766eb70987007ce372656e","urls":["bzz-raw://c62989beb75edad6de18c31be31eb68f0c3fb15c5f9e9bb380221afc6785fda5","dweb:/ipfs/QmVEsp5yivbmjP7HcXS5kJ1XJY5Uic3J3y4zjpwD1SNySD"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v3/V3Path.sol":{"keccak256":"0xf6abbf4c7cd0975ddabb0ddb641ea9ae3b0cc1dd9a1cabf5e7cc271a974eabc2","urls":["bzz-raw://1e0987fc9b81c65eada64cb65f981680c2054e489a6049d397b5ecbbf4c9a0a9","dweb:/ipfs/QmW7mbbHsfc2GLy2GkCUv3VwXV93y6UFtKDD7E9QEtzFH7"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v3/V3SwapRouter.sol":{"keccak256":"0x31fe8777a6de583c54a0f09ec11d318c253b7fe50c7a2af1608b2b89a03ca660","urls":["bzz-raw://780219ff0d6d333727655719d31d61ce345cdbca7f906467a2d00e3162b3c0aa","dweb:/ipfs/QmbauA5Kvj7m9P9hxe4hhnLY5w2TEXMMnCc9oWehVgj2jo"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v4/V4SwapRouter.sol":{"keccak256":"0x68b7666641ad5ba227b500c9845c4bc71eaaac6556d97d31d123fce41b51969a","urls":["bzz-raw://40a99bb5e9e407ad6741f5c210ac23a32950e7567c73f21975444e9729fc6cfb","dweb:/ipfs/QmUK98HjyQ7NDGR36DD9owjLDk7ujEj5b5uKt9zjUsCFG5"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/types/RouterParameters.sol":{"keccak256":"0x9efe9912d44e56cff8fc23e1411c80b47ffc9f5c0ad5ca5c66ab77a1b7ddfcbf","urls":["bzz-raw://473acf49dc1be1ca997ad20258124e26e03b3cef15412a8827ecf9b52e4cef21","dweb:/ipfs/QmaGR2QL6im4XYJpubqhUuP82nFytemX7wwEk4cXECJYJN"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IERC721Permit.sol":{"keccak256":"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4","urls":["bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471","dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL"],"license":"GPL-2.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol":{"keccak256":"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984","urls":["bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56","dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW"],"license":"GPL-2.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol":{"keccak256":"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d","urls":["bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f","dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127"],"license":"GPL-2.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryPayments.sol":{"keccak256":"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274","urls":["bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407","dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp"],"license":"GPL-2.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPoolInitializer.sol":{"keccak256":"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862","urls":["bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f","dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu"],"license":"GPL-2.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/libraries/PoolAddress.sol":{"keccak256":"0xa72de315bd655a0fd5043ff97c7fd3868a1b5b1986afd75c6f5f8fd0f904985f","urls":["bzz-raw://a8838e68aba9caf2b2cb13bd4cb661b1f9c167cca4dfcd50ac72ae96691392df","dweb:/ipfs/QmfLq3cmsSQTuLLxiF4bgceaf2jx8CoiVXQd7BZXGgJG1E"],"license":"GPL-2.0-or-later"},"lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol":{"keccak256":"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b","urls":["bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf","dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH"],"license":null},"lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol":{"keccak256":"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1","urls":["bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5","dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol":{"keccak256":"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69","urls":["bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652","dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol":{"keccak256":"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634","urls":["bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5","dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol":{"keccak256":"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5","urls":["bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7","dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol":{"keccak256":"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd","urls":["bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03","dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol":{"keccak256":"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7","urls":["bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047","dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol":{"keccak256":"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235","urls":["bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735","dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol":{"keccak256":"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f","urls":["bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f","dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/libraries/SafeCast.sol":{"keccak256":"0x4c12bf820c0b011f5490a209960ca34dd8af34660ef9e01de0438393d15e3fd8","urls":["bzz-raw://fed11489e218e55d087d42b4f350a30e10cd2aedec8f432bd3cc712f648d5869","dweb:/ipfs/QmWfRnRxyXwHUDcTQPazxYYk5jxErGeQqdvnYtyg5nBPbU"],"license":"GPL-2.0-or-later"},"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":"0x4c9571aed0c2b6ef11832545554fc11ffdb03746daaf5c73683c00600bfc7ec0","urls":["bzz-raw://e78b34b58ce9de91b91943b4f3cc3ce121d0b151e123e8a600ac5ef64d91db6c","dweb:/ipfs/QmRkaQnPCYwLrXgbpGujJTx32PaZK63KSPJJV1XmnQuCMb"],"license":"MIT"},"lib/v4-core/src/interfaces/IPoolManager.sol":{"keccak256":"0x3534f00531038e77ab8a7fc4d0a6e0993ee53fb7a396b1324ad917318ea46cea","urls":["bzz-raw://0a4a7e771828dc40848485b568a1cf514f553ace6653f4f4d1ad3f3e9cdb6c27","dweb:/ipfs/QmTjzQ7KVYnrEWtxPER2E4MXzycgcznfzSDsZtd5turk5V"],"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/CurrencyReserves.sol":{"keccak256":"0x1576616129933fcdf3b684cea33cffd9c95e18fafbd2832a8c48ac3d8526d4c3","urls":["bzz-raw://33b050efb9b81803b18f562271e7cca2ec5362c4d505860d6419b4a345636725","dweb:/ipfs/QmQtFtTwKZ5pFVGD2ENDUXvp7ECFvzqeCuJ1miJcUHdmiX"],"license":"BUSL-1.1"},"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/Lock.sol":{"keccak256":"0x9338be4b5695f1da5f3d3f7a3eeaf7a356c1045458289586ac0cbe9cef77c6d5","urls":["bzz-raw://485ec42ed6155469d612a9a0c18068ebfbad74448792a338a435503de3ef1b2c","dweb:/ipfs/QmVnnv5u74MYatfRmBgrcfFYQcsMAJMG9jQ6ju8UiydKNF"],"license":"BUSL-1.1"},"lib/v4-core/src/libraries/NonzeroDeltaCount.sol":{"keccak256":"0x0666ebd5d3528d7d52c48538296367a4cff97a578cf13365c51983fae3219b87","urls":["bzz-raw://d27f1be3bd09d85c53d3e6a539dd6529ddd8b2b764ccb47fd7765fc81f9add59","dweb:/ipfs/QmQdZujNXhKEXQBkKtF5jbdvo1yXMqPDUoBBaF9S5u3Kpm"],"license":"BUSL-1.1"},"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/libraries/TransientStateLibrary.sol":{"keccak256":"0x7d1e0875747bd89b32c25f1a48da2766e5f4aff1f671ad5f3c0c07ebbbcb946a","urls":["bzz-raw://d76cfeb1cb60595b41ecc51c8a12fb4bf63a7fc733d0b1a2e3adb55abeb1f9d5","dweb:/ipfs/Qmb8oX7DtsRpw3tTtdWZwGhauj1evq43d3PLwe4nSDAKkV"],"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-periphery/src/V4Router.sol":{"keccak256":"0x8ede1e538ae9b74984c52347a3bbaee7b3d69f00ed9b3a6db1f1bd6e058a2326","urls":["bzz-raw://8e370416fa9681ad124414e2b2fb57a5455e15dd873c9e61c964177ae5c2d544","dweb:/ipfs/QmWrM97ezNB9CpawqhkwpubXHcXUbMFWKYEbD3D6EyAe1w"],"license":"MIT"},"lib/v4-periphery/src/base/BaseActionsRouter.sol":{"keccak256":"0xca1ee500f88951ad351d18ba2adfb5fe23abef6d502f234ce5748a3497674a4c","urls":["bzz-raw://1f03ab458be27c29cef1b7ace5b11517d3fef8bf6131af7dd80d6297c224cf71","dweb:/ipfs/QmYoH6o8yeRzbeLoaMG9TjS8q2Fw7T1h4vXvvMnp3XfsUa"],"license":"MIT"},"lib/v4-periphery/src/base/DeltaResolver.sol":{"keccak256":"0x94a2da2be5c924df65a8e1e29f585bbe4c37777fedd43b45989c66d509a4a83c","urls":["bzz-raw://42bba590f6e817fd56328b74ae99bfdc4df57386d0a69ee22b9108341953ed36","dweb:/ipfs/QmdusastK7FWYouLz9gvV5J3z8MQbNKLJNNHTrc1vi7DWw"],"license":"MIT"},"lib/v4-periphery/src/base/ImmutableState.sol":{"keccak256":"0x1867c9fa2f9b4fa73bab0fcdc9d19ccef4eeac552273d8b84a170cd1cc90350a","urls":["bzz-raw://af2d699b439e13b599632fddfe82718aebd41055fba7c075f186675c588d1337","dweb:/ipfs/Qmc111gckSKb9aESn3wRFLeLiS4KGujaUcaYJgRnCRfwQU"],"license":"MIT"},"lib/v4-periphery/src/base/SafeCallback.sol":{"keccak256":"0xd78b583df1b9ee06d58e83b84fc9f08971389b34dd34bc13db072e0c13c710da","urls":["bzz-raw://c0a47f4bcd6060c4462153b9a7c52a60a460ace91acb6ddd5492eab28ec26173","dweb:/ipfs/QmdRCTRS1dhFjWEy6z577j4xz9J5HPfHBwcNzAic8G59oT"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IEIP712_v4.sol":{"keccak256":"0xd7f7115476e307a0bfc32a0f0a0f5434e9e5ca62a6c5af1e18b75e48161bb408","urls":["bzz-raw://b1600b953556da38a7adc5ad2a2925ec5fb138fecf8eec48743646543195b736","dweb:/ipfs/QmarZi2aiLVAfHXgnDWV1cCFiZk2DdPW7KJnWHqzuRChJR"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IERC721Permit_v4.sol":{"keccak256":"0x103adbba724ef536abc536fe8a4d7dc12880724c562109b69f2adce4a91fa017","urls":["bzz-raw://06f51b5a5a218e0bc866a83e7821be53c9db9de0ca921f16abd3d13ea0eab69d","dweb:/ipfs/QmbnhLy992hpQZyphTkj7fpr6jKKVva2AzfmLiDZEuqHAk"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IImmutableState.sol":{"keccak256":"0x36ab3100e87457ecf04887f4f540e34fd7f21d8e3b83880cb679239e60b7b06b","urls":["bzz-raw://7f290c7ce8e4832608d637a51b13dff95abecf6549485448e647a11c8ed01341","dweb:/ipfs/QmfD1R6mTp8j4EjQXmQZW3vCh11EYFjnvoaw8rXRP27mMq"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IMulticall_v4.sol":{"keccak256":"0x336bec303f7ff86497d2679464c5adad5040f412b3d0769ce5e1d2a42f7e2c08","urls":["bzz-raw://7734f047d98d331c8abc51ad9f358ceee0a6dcae8d89ac49084b84de0d2d42e7","dweb:/ipfs/QmWij2h7mU36LsXhb9P6pkYXrSCua4ixeWaVFSrsEcEmPQ"],"license":"MIT"},"lib/v4-periphery/src/interfaces/INotifier.sol":{"keccak256":"0xfdc5187a98240a1691aae98b7dd2444d4c2bfb4746f3c34de9f3d18399c17c5e","urls":["bzz-raw://683af56401ec4f8817e8dfe150e7b3febaf0baaf40efe8d0d0475f735275f746","dweb:/ipfs/QmRQ6S3nFnSc2jjDcQTvUJdTf4xKPojmvCkpvgyr6qTuVV"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IPermit2Forwarder.sol":{"keccak256":"0xfad472937280e861125ff12aa6f9c2cf7440fbb20a2cc29485c24662ad4279c5","urls":["bzz-raw://31bfbc331f5972fc373d9469fd1ca1d14818db3275f21b7b590f20820cb4439d","dweb:/ipfs/QmX3Bv9wfYpAFZKBcxKsQSXUrSC8mqNBdzh6XVMS72aNx9"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IPoolInitializer_v4.sol":{"keccak256":"0x2e4feda94650a2642039e0309ffdec480ee050bc40864bf5e1dba42bb4dc9e98","urls":["bzz-raw://964c178b4da8bab9ef898b94bb26d7c17cc44c5cf20485f55dcf5e9c7e1b1d92","dweb:/ipfs/QmVd2c3SYteyr5xZgUS4sDAiZF43dLwVAEKdCfvQbkZpRJ"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IPositionManager.sol":{"keccak256":"0x62dfa0cbee8314ee7e6787db8bc1d364245c340f940875ac7ff11e89d074fc7e","urls":["bzz-raw://26f560c77d8a187bf93a710b827e3167eab3446922192fa8f92f208da2103834","dweb:/ipfs/Qmbzp5gSYdTpMBF9aAb2GraxMEQZb5LRJCyg8VaRUyjTFc"],"license":"MIT"},"lib/v4-periphery/src/interfaces/ISubscriber.sol":{"keccak256":"0x34ceadec4a63019680e543fe73197f198a55c825d86e18f327840354760b57e7","urls":["bzz-raw://31734feafe1fe162a0702ddf862fcc3bd97505931afb3c685033c0185d898051","dweb:/ipfs/QmQEANYVyaXTNzXKcjUVfPhLU71Bix5vxQH75BpPWMkWgw"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IUnorderedNonce.sol":{"keccak256":"0xd7f32fee74dc7d1a3b078ca1263961baccaa6bf434c79e8fe0e092e30c3e0ec3","urls":["bzz-raw://e7d1e92d89d5f49c84aa82f3b259678c2c97a4473b22d753ca4411a6b0cec36d","dweb:/ipfs/QmNZoQyminStaAdaLqoDLoWaBU5QWrWjXFjmBm4aFhzL8i"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IV4Router.sol":{"keccak256":"0xc4133fae25e61cc2447d7331729f6035322d7c1fe26b39b225422bf98cc63459","urls":["bzz-raw://3c24ff8428504e973e947a059f96289a66c520cd7f8ef47a3224f9cb6abdaf25","dweb:/ipfs/QmVqxYnngWXXcCiuTC143vTEJrjZK5NXWB92pjvVbuJBQ5"],"license":"MIT"},"lib/v4-periphery/src/interfaces/external/IWETH9.sol":{"keccak256":"0xe88abf12501ac275619aec0687240a07d26968aecbbcdfea88ba8bbd5d6e5e14","urls":["bzz-raw://7097065d4492b4eccb1a73f99af1e5bec45404c6b973b8f5965c4c91403f5f92","dweb:/ipfs/QmZK8oEqmjmTqhBoh3D3fBpyKGkUEFnptY8xwH9xpNjDm2"],"license":"MIT"},"lib/v4-periphery/src/libraries/ActionConstants.sol":{"keccak256":"0x3d6f0e5b4a7b1e60bad93e73dce5db67fb66bebef11c31ed8355014a79aa03b3","urls":["bzz-raw://6dfa42e24b1b5c7f66e75304ab034fbb6768518eb2410ccfff8b3defdd1658f2","dweb:/ipfs/QmQQ7fud9mmv7PEWPAQiNzeZhNkWf28Z6nCHc2e6WJFfa7"],"license":"MIT"},"lib/v4-periphery/src/libraries/Actions.sol":{"keccak256":"0x8efd4b8b289177ee27e557d9d0a5a9f973d66fe1eb1ef8959d316b11987ca830","urls":["bzz-raw://07fe35f194eb99465028f0546359befea574d844da53767d32f22b233c3bcc98","dweb:/ipfs/Qmc19631uFxABTHAbGrDrroexi9GdyxWntaum1v8npPYz5"],"license":"MIT"},"lib/v4-periphery/src/libraries/BipsLibrary.sol":{"keccak256":"0x37ebf99f5d086d9d9f6e7cecbf4d62167f47c63c30248cfcb921e828f0d7a359","urls":["bzz-raw://c4f8e68a66bb6c166d72cdba6ed6fb83a93f713b79c2c572e8058084eb90ab6c","dweb:/ipfs/QmY32FxtSBRf9PJzNUVzXqFY4i2ApTPHTUMpCBGovd2zo3"],"license":"MIT"},"lib/v4-periphery/src/libraries/CalldataDecoder.sol":{"keccak256":"0x26df49e13fb5410fd4db253cca877dfdfb3a1ba03e394d054c0e0514a88a56e5","urls":["bzz-raw://72a0c98c52171708f332f83d517deeb97fdd50ecf28f2510e1866e54593a6ff8","dweb:/ipfs/QmY4LiDUfSKGj86nML7B6a8euiPciUqwYehasAyAVnMCHq"],"license":"MIT"},"lib/v4-periphery/src/libraries/PathKey.sol":{"keccak256":"0xbbd79ffefe045f025263e389539021266fb4d371463aefba405e1ff1d3fcf9bc","urls":["bzz-raw://2d1c47b81a01218be46ee79f0a8837095479b94dc5cfd18abbf2006709f0ea89","dweb:/ipfs/QmRb6CQ13Zp7f3WF5jbZtsF2szhxpPgcuWs9mjwQXxzqtg"],"license":"MIT"},"lib/v4-periphery/src/libraries/PositionInfoLibrary.sol":{"keccak256":"0xc5ddf96bd088bc87ea50a20f907fc932fb28397a42682a301b268a11b7f34078","urls":["bzz-raw://7dfeb4dc747537240f8167243e8066b6f5f08057386fb8bda93f82973fc18ad6","dweb:/ipfs/Qmby9DAAaHj8hjsMUnqY3vjqCHKGAKrT5EULMmeGcjbbGx"],"license":"MIT"}},"version":1},"id":11} \ No newline at end of file +{"abi":[{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"approveTokenWithPermit2","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint160","internalType":"uint160"},{"name":"expiration","type":"uint48","internalType":"uint48"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"_router","type":"address","internalType":"address"},{"name":"_poolManager","type":"address","internalType":"address"},{"name":"_permit2","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"permit2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPermit2"}],"stateMutability":"view"},{"type":"function","name":"poolManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPoolManager"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"router","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract UniversalRouter"}],"stateMutability":"view"},{"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":"amountIn","type":"uint128","internalType":"uint128"},{"name":"minAmountOut","type":"uint128","internalType":"uint128"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"stablecoinForToken","type":"bool","internalType":"bool"},{"name":"stablecoinAddress","type":"address","internalType":"address"}],"outputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InsufficientSwapOutput","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"expectedAmount","type":"uint256","internalType":"uint256"},{"name":"actualAmount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"SwapOutputTransferFailed","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"contract IERC20"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60a08060405234602957306080526111d6908161002e82396080518181816103e101526104b10152f35b5f80fdfe6080806040526004361015610012575f80fd5b5f905f3560e01c90816312261ee714610e1757508063157fedba1461079c578063267b14bd146106605780634f1ef2861461043557806352d1902d146103ce578063715018a6146103655780638da5cb5b14610330578063ad3cb1cc146102e3578063c0c53b8b14610121578063dc4c90d3146100f8578063f2fde38b146100cb5763f887ea40146100a2575f80fd5b346100c857806003193601126100c857546040516001600160a01b039091168152602090f35b80fd5b50346100c85760203660031901126100c8576100f56100e8610e3a565b6100f0611084565b611013565b80f35b50346100c857806003193601126100c8576001546040516001600160a01b039091168152602090f35b50346100c85760603660031901126100c85761013b610e3a565b610143610e50565b6044356001600160a01b03811691908290036102df575f80516020611181833981519152549260ff8460401c16159367ffffffffffffffff8116801590816102d7575b60011490816102cd575b1590816102c4575b506102b55767ffffffffffffffff1981166001175f805160206111818339815191525584610289575b506101ca6110b7565b6101d26110b7565b6101db33611013565b6101e36110b7565b60018060a01b03166001600160601b0360a01b85541617845560018060a01b03166001600160601b0360a01b60015416176001556001600160601b0360a01b60025416176002556102315780f35b68ff0000000000000000195f8051602061118183398151915254165f80516020611181833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b68ffffffffffffffffff191668010000000000000001175f80516020611181833981519152555f6101c1565b63f92ee8a960e01b8652600486fd5b9050155f610198565b303b159150610190565b869150610186565b8380fd5b50346100c857806003193601126100c8575061032c604051610306604082610e82565b60058152640352e302e360dc1b6020820152604051918291602083526020830190610ec0565b0390f35b50346100c857806003193601126100c8575f80516020611141833981519152546040516001600160a01b039091168152602090f35b50346100c857806003193601126100c85761037e611084565b5f8051602061114183398151915280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346100c857806003193601126100c8577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036104265760206040515f805160206111618339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126100c85761044a610e3a565b6024359067ffffffffffffffff821161065c573660238301121561065c578160040135908361047883610ea4565b936104866040519586610e82565b8385526020850193366024828401011161065c57806024602093018637850101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630811490811561063a575b5061062b576104e9611084565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa8691816105f3575b5061052c57634c9c8ce360e01b86526004859052602486fd5b93845f805160206111618339815191528796036105e15750823b156105cf575f8051602061116183398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a28051156105b4576105b09382915190845af46105aa610fe4565b916110e2565b5080f35b50505050346105c05780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011610623575b8161060f60209383610e82565b8101031261061f5751905f610513565b8680fd5b3d9150610602565b63703e46dd60e11b8452600484fd5b5f80516020611161833981519152546001600160a01b0316141590505f6104dc565b8280fd5b50346100c85760603660031901126100c8578061067b610e3a565b6024356001600160a01b0381169190829003610798576044359065ffffffffffff82168092036107935760025460405163095ea7b360e01b81526001600160a01b0391821660048201525f19602482015291169060208160448188865af180156107885761075b575b5060025484546001600160a01b0390811692911690813b156107575785608492819560405197889687956387517c4560e01b875260048701526024860152604485015260648401525af1801561074c5761073b5750f35b8161074591610e82565b6100c85780f35b6040513d84823e3d90fd5b8580fd5b61077c9060203d602011610781575b6107748183610e82565b810190610fcc565b6106e4565b503d61076a565b6040513d87823e3d90fd5b505050fd5b5050fd5b5034610d1f5736600319016101408112610d1f5760a013610d1f5760a435906001600160801b03821690818303610d1f5760c435916001600160801b03831692838103610d1f5761010435918215158303610d1f57610124356001600160a01b03811690819003610d1f57604051600160fc1b60208201526001815292610824602185610e82565b6040805195906108348188610e82565b60018752601f19015f5b818110610e06575050604051600360f91b6020820152600360fa1b6021820152600f60f81b60228201526003815291610878602384610e82565b6040519060806108888184610e82565b60038352601f19015f5b818110610de157505060209a8b95604051946108ae8887610e82565b5f8652604051986108be8a610e66565b604051986108cb8a610e66565b6108d3610e3a565b8a526108dd610e50565b908a015260443562ffffff81168103610d1f5760408a01526064358060020b8103610d1f5760608a01526084356001600160a01b0381168103610d1f578f919a8f6109e8996001600160801b036109e892610af29f610b049f90816109f698608086940152875288870160018152604088019182526060880193845260808801958652604051998a9881808b0152519060018060a01b0382511660408b015260018060a01b03908201511660608a015262ffffff60408201511660808a0152606081015160020b60a08a0152608060018060a01b039101511660c089015251151560e08801525116610100860152511661012084015251610120610140840152610160830190610ec0565b03601f198101835282610e82565b6109ff86610ee4565b52610a0985610ee4565b5015610d8a576001600160a01b03610a1f610f25565b1603610d2357610a2d610f25565b610a428d6109e8846040519485938401610f51565b610a4b84610f05565b52610a5583610f05565b50610a5e610f3b565b610a738d6109e8856040519485938401610f51565b610a7c84610f15565b52610a8683610f15565b505b610aa58c6109e8610a97610f25565b936040519485938401610f51565b610aae83610f05565b52610ab882610f05565b50610ac88b6109e8610a97610f3b565b610ad182610f15565b52610adb81610f15565b5060405194859360408c8601526060850190610ec0565b838103601f1901604085015290610f74565b610b0d83610ee4565b52610b1782610ee4565b505f546001600160a01b031691823b15610d1f57610b6c92610b5a5f809460405196879586948593630d64d59360e21b8552606060048601526064850190610ec0565b83810360031901602485015290610f74565b60e435604483015203925af18015610d1457610d01575b506001600160a01b03610b94610f3b565b1615610c1b5747918180808086335af1610bac610fe4565b50905b808410610bef575015610bc55750604051908152f35b6064916001600160a01b03610bd8610f3b565b635d8c0faf60e11b84523360045216602452604452fd5b6064939091506001600160a01b03610c05610f3b565b630c95a6ab60e31b855216600452602452604452fd5b602491836001600160a01b03610c2f610f3b565b16604051948580926370a0823160e01b82523060048301525afa92831561074c578293610cce575b5082846001600160a01b03610c6a610f3b565b60405163a9059cbb60e01b81523360048201526024810194909452839160449183918891165af1908115610cc3578391610ca6575b5090610baf565b610cbd9150853d8711610781576107748183610e82565b5f610c9f565b6040513d85823e3d90fd5b9092508381813d8311610cfa575b610ce68183610e82565b81010312610cf65751915f610c57565b5080fd5b503d610cdc565b610d0d91505f90610e82565b5f80610b83565b6040513d5f823e3d90fd5b5f80fd5b610d2b610f3b565b610d408d6109e8846040519485938401610f51565b610d4984610f05565b52610d5383610f05565b50610d5c610f25565b610d718d6109e8856040519485938401610f51565b610d7a84610f15565b52610d8483610f15565b50610a88565b6001600160a01b03610d9a610f25565b1603610da857610d2b610f3b565b610db0610f25565b610dc58d6109e8846040519485938401610f51565b610dce84610f05565b52610dd883610f05565b50610d5c610f3b565b806060602080938701015201610892565b634e487b7160e01b5f52604160045260245ffd5b806060602080938b0101520161083e565b34610d1f575f366003190112610d1f576002546001600160a01b03168152602090f35b600435906001600160a01b0382168203610d1f57565b602435906001600160a01b0382168203610d1f57565b60a0810190811067ffffffffffffffff821117610df257604052565b90601f8019910116810190811067ffffffffffffffff821117610df257604052565b67ffffffffffffffff8111610df257601f01601f191660200190565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b805115610ef15760200190565b634e487b7160e01b5f52603260045260245ffd5b805160011015610ef15760400190565b805160021015610ef15760600190565b6004356001600160a01b0381168103610d1f5790565b6024356001600160a01b0381168103610d1f5790565b6001600160a01b0390911681526001600160801b03909116602082015260400190565b9080602083519182815201916020808360051b8301019401925f915b838310610f9f57505050505090565b9091929394602080610fbd600193601f198682030187528951610ec0565b97019301930191939290610f90565b90816020910312610d1f57518015158103610d1f5790565b3d1561100e573d90610ff582610ea4565b916110036040519384610e82565b82523d5f602084013e565b606090565b6001600160a01b03168015611071575f8051602061114183398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f80516020611141833981519152546001600160a01b031633036110a457565b63118cdaa760e01b5f523360045260245ffd5b60ff5f805160206111818339815191525460401c16156110d357565b631afcd79f60e31b5f5260045ffd5b9061110657508051156110f757805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580611137575b611117575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561110f56fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212207d6d4bad7cf4f7be7969b75c753de3602f740d443375a8d35f8faea4362c20bf64736f6c634300081a0033","sourceMap":"1542:4952:14:-:0;;;;;;;1171:4:27;1163:13;;1542:4952:14;;;;;;1163:13:27;1542:4952:14;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f905f3560e01c90816312261ee714610e1757508063157fedba1461079c578063267b14bd146106605780634f1ef2861461043557806352d1902d146103ce578063715018a6146103655780638da5cb5b14610330578063ad3cb1cc146102e3578063c0c53b8b14610121578063dc4c90d3146100f8578063f2fde38b146100cb5763f887ea40146100a2575f80fd5b346100c857806003193601126100c857546040516001600160a01b039091168152602090f35b80fd5b50346100c85760203660031901126100c8576100f56100e8610e3a565b6100f0611084565b611013565b80f35b50346100c857806003193601126100c8576001546040516001600160a01b039091168152602090f35b50346100c85760603660031901126100c85761013b610e3a565b610143610e50565b6044356001600160a01b03811691908290036102df575f80516020611181833981519152549260ff8460401c16159367ffffffffffffffff8116801590816102d7575b60011490816102cd575b1590816102c4575b506102b55767ffffffffffffffff1981166001175f805160206111818339815191525584610289575b506101ca6110b7565b6101d26110b7565b6101db33611013565b6101e36110b7565b60018060a01b03166001600160601b0360a01b85541617845560018060a01b03166001600160601b0360a01b60015416176001556001600160601b0360a01b60025416176002556102315780f35b68ff0000000000000000195f8051602061118183398151915254165f80516020611181833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b68ffffffffffffffffff191668010000000000000001175f80516020611181833981519152555f6101c1565b63f92ee8a960e01b8652600486fd5b9050155f610198565b303b159150610190565b869150610186565b8380fd5b50346100c857806003193601126100c8575061032c604051610306604082610e82565b60058152640352e302e360dc1b6020820152604051918291602083526020830190610ec0565b0390f35b50346100c857806003193601126100c8575f80516020611141833981519152546040516001600160a01b039091168152602090f35b50346100c857806003193601126100c85761037e611084565b5f8051602061114183398151915280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346100c857806003193601126100c8577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036104265760206040515f805160206111618339815191528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126100c85761044a610e3a565b6024359067ffffffffffffffff821161065c573660238301121561065c578160040135908361047883610ea4565b936104866040519586610e82565b8385526020850193366024828401011161065c57806024602093018637850101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630811490811561063a575b5061062b576104e9611084565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa8691816105f3575b5061052c57634c9c8ce360e01b86526004859052602486fd5b93845f805160206111618339815191528796036105e15750823b156105cf575f8051602061116183398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a28051156105b4576105b09382915190845af46105aa610fe4565b916110e2565b5080f35b50505050346105c05780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011610623575b8161060f60209383610e82565b8101031261061f5751905f610513565b8680fd5b3d9150610602565b63703e46dd60e11b8452600484fd5b5f80516020611161833981519152546001600160a01b0316141590505f6104dc565b8280fd5b50346100c85760603660031901126100c8578061067b610e3a565b6024356001600160a01b0381169190829003610798576044359065ffffffffffff82168092036107935760025460405163095ea7b360e01b81526001600160a01b0391821660048201525f19602482015291169060208160448188865af180156107885761075b575b5060025484546001600160a01b0390811692911690813b156107575785608492819560405197889687956387517c4560e01b875260048701526024860152604485015260648401525af1801561074c5761073b5750f35b8161074591610e82565b6100c85780f35b6040513d84823e3d90fd5b8580fd5b61077c9060203d602011610781575b6107748183610e82565b810190610fcc565b6106e4565b503d61076a565b6040513d87823e3d90fd5b505050fd5b5050fd5b5034610d1f5736600319016101408112610d1f5760a013610d1f5760a435906001600160801b03821690818303610d1f5760c435916001600160801b03831692838103610d1f5761010435918215158303610d1f57610124356001600160a01b03811690819003610d1f57604051600160fc1b60208201526001815292610824602185610e82565b6040805195906108348188610e82565b60018752601f19015f5b818110610e06575050604051600360f91b6020820152600360fa1b6021820152600f60f81b60228201526003815291610878602384610e82565b6040519060806108888184610e82565b60038352601f19015f5b818110610de157505060209a8b95604051946108ae8887610e82565b5f8652604051986108be8a610e66565b604051986108cb8a610e66565b6108d3610e3a565b8a526108dd610e50565b908a015260443562ffffff81168103610d1f5760408a01526064358060020b8103610d1f5760608a01526084356001600160a01b0381168103610d1f578f919a8f6109e8996001600160801b036109e892610af29f610b049f90816109f698608086940152875288870160018152604088019182526060880193845260808801958652604051998a9881808b0152519060018060a01b0382511660408b015260018060a01b03908201511660608a015262ffffff60408201511660808a0152606081015160020b60a08a0152608060018060a01b039101511660c089015251151560e08801525116610100860152511661012084015251610120610140840152610160830190610ec0565b03601f198101835282610e82565b6109ff86610ee4565b52610a0985610ee4565b5015610d8a576001600160a01b03610a1f610f25565b1603610d2357610a2d610f25565b610a428d6109e8846040519485938401610f51565b610a4b84610f05565b52610a5583610f05565b50610a5e610f3b565b610a738d6109e8856040519485938401610f51565b610a7c84610f15565b52610a8683610f15565b505b610aa58c6109e8610a97610f25565b936040519485938401610f51565b610aae83610f05565b52610ab882610f05565b50610ac88b6109e8610a97610f3b565b610ad182610f15565b52610adb81610f15565b5060405194859360408c8601526060850190610ec0565b838103601f1901604085015290610f74565b610b0d83610ee4565b52610b1782610ee4565b505f546001600160a01b031691823b15610d1f57610b6c92610b5a5f809460405196879586948593630d64d59360e21b8552606060048601526064850190610ec0565b83810360031901602485015290610f74565b60e435604483015203925af18015610d1457610d01575b506001600160a01b03610b94610f3b565b1615610c1b5747918180808086335af1610bac610fe4565b50905b808410610bef575015610bc55750604051908152f35b6064916001600160a01b03610bd8610f3b565b635d8c0faf60e11b84523360045216602452604452fd5b6064939091506001600160a01b03610c05610f3b565b630c95a6ab60e31b855216600452602452604452fd5b602491836001600160a01b03610c2f610f3b565b16604051948580926370a0823160e01b82523060048301525afa92831561074c578293610cce575b5082846001600160a01b03610c6a610f3b565b60405163a9059cbb60e01b81523360048201526024810194909452839160449183918891165af1908115610cc3578391610ca6575b5090610baf565b610cbd9150853d8711610781576107748183610e82565b5f610c9f565b6040513d85823e3d90fd5b9092508381813d8311610cfa575b610ce68183610e82565b81010312610cf65751915f610c57565b5080fd5b503d610cdc565b610d0d91505f90610e82565b5f80610b83565b6040513d5f823e3d90fd5b5f80fd5b610d2b610f3b565b610d408d6109e8846040519485938401610f51565b610d4984610f05565b52610d5383610f05565b50610d5c610f25565b610d718d6109e8856040519485938401610f51565b610d7a84610f15565b52610d8483610f15565b50610a88565b6001600160a01b03610d9a610f25565b1603610da857610d2b610f3b565b610db0610f25565b610dc58d6109e8846040519485938401610f51565b610dce84610f05565b52610dd883610f05565b50610d5c610f3b565b806060602080938701015201610892565b634e487b7160e01b5f52604160045260245ffd5b806060602080938b0101520161083e565b34610d1f575f366003190112610d1f576002546001600160a01b03168152602090f35b600435906001600160a01b0382168203610d1f57565b602435906001600160a01b0382168203610d1f57565b60a0810190811067ffffffffffffffff821117610df257604052565b90601f8019910116810190811067ffffffffffffffff821117610df257604052565b67ffffffffffffffff8111610df257601f01601f191660200190565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b805115610ef15760200190565b634e487b7160e01b5f52603260045260245ffd5b805160011015610ef15760400190565b805160021015610ef15760600190565b6004356001600160a01b0381168103610d1f5790565b6024356001600160a01b0381168103610d1f5790565b6001600160a01b0390911681526001600160801b03909116602082015260400190565b9080602083519182815201916020808360051b8301019401925f915b838310610f9f57505050505090565b9091929394602080610fbd600193601f198682030187528951610ec0565b97019301930191939290610f90565b90816020910312610d1f57518015158103610d1f5790565b3d1561100e573d90610ff582610ea4565b916110036040519384610e82565b82523d5f602084013e565b606090565b6001600160a01b03168015611071575f8051602061114183398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f80516020611141833981519152546001600160a01b031633036110a457565b63118cdaa760e01b5f523360045260245ffd5b60ff5f805160206111818339815191525460401c16156110d357565b631afcd79f60e31b5f5260045ffd5b9061110657508051156110f757805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580611137575b611117575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561110f56fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212207d6d4bad7cf4f7be7969b75c753de3602f740d443375a8d35f8faea4362c20bf64736f6c634300081a0033","sourceMap":"1542:4952:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3090:41;1542:4952;3090:41;;;1542:4952;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1542:4952:14;;;;;;;;;;;;;;;;;;-1:-1:-1;;1542:4952:14;;;;2357:1:25;1542:4952:14;;:::i;:::-;2303:62:25;;:::i;:::-;2357:1;:::i;:::-;1542:4952:14;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1542:4952:14;;;;;;;;;;;;;;;-1:-1:-1;;1542:4952:14;;;;;;:::i;:::-;;;:::i;:::-;;;-1:-1:-1;;;;;1542:4952:14;;;;;;;;;-1:-1:-1;;;;;;;;;;;1542:4952:14;;1454:4:73;1542:4952:14;;;1454:4:73;4301:16:26;1542:4952:14;;;;4726:16:26;;:34;;;;1542:4952:14;4805:1:26;4790:16;:50;;;;1542:4952:14;4855:13:26;:30;;;;1542:4952:14;4851:91:26;;;-1:-1:-1;;1542:4952:14;;4805:1:26;1542:4952:14;-1:-1:-1;;;;;;;;;;;1542:4952:14;;4979:67:26;;1542:4952:14;6893:76:26;;;:::i;:::-;;;:::i;:::-;6961:1;6063:10:14;6961:1:26;:::i;:::-;6893:76;;:::i;:::-;1542:4952:14;;;;;;-1:-1:-1;;;;;1542:4952:14;;;;;;;;;;;;;;-1:-1:-1;;;;;1542:4952:14;;4805:1:26;1542:4952:14;;;4805:1:26;1542:4952:14;-1:-1:-1;;;;;1542:4952:14;;6220:28;1542:4952;;;6220:28;1542:4952;5066:101:26;;1542:4952:14;;5066:101:26;1542:4952:14;;-1:-1:-1;;;;;;;;;;;1542:4952:14;;-1:-1:-1;;;;;;;;;;;1542:4952:14;5142:14:26;1542:4952:14;;;4805:1:26;1542:4952:14;;5142:14:26;1542:4952:14;;4979:67:26;-1:-1:-1;;1542:4952:14;;;-1:-1:-1;;;;;;;;;;;1542:4952:14;4979:67:26;;;4851:91;-1:-1:-1;;;4908:23:26;;1542:4952:14;4908:23:26;;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:26;;4726:34;;;-1:-1:-1;4726:34:26;;1542:4952:14;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1542:4952:14;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1542:4952:14;;;-1:-1:-1;;;;;1542:4952:14;;;;;;;;;;;;;;;;;;;;;2303:62:25;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1542:4952:14;;-1:-1:-1;;;;;;1542:4952:14;;;;;;;-1:-1:-1;;;;;1542:4952:14;3975:40:25;1542:4952:14;;3975:40:25;1542:4952:14;;;;;;;;;;;;;;;5115:6:27;-1:-1:-1;;;;;1542:4952:14;5106:4:27;5098:23;5094:145;;1542:4952:14;;;-1:-1:-1;;;;;;;;;;;1542:4952:14;;;5094:145:27;-1:-1:-1;;;5199:29:27;;1542:4952:14;;5199:29:27;1542:4952:14;-1:-1:-1;1542:4952:14;;-1:-1:-1;;1542:4952:14;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4692:6:27;1542:4952:14;4683:4:27;4675:23;;;:120;;;;1542:4952:14;4658:251:27;;;2303:62:25;;:::i;:::-;1542:4952:14;;-1:-1:-1;;;6156:52:27;;-1:-1:-1;;;;;1542:4952:14;;;;;;;;;6156:52:27;;;;;;;1542:4952:14;-1:-1:-1;6152:437:27;;-1:-1:-1;;;6518:60:27;;1542:4952:14;;;;;1805:47:39;6518:60:27;6152:437;6250:40;;-1:-1:-1;;;;;;;;;;;6250:40:27;;;6246:120;;1748:29:39;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;1542:4952:14;;-1:-1:-1;;;;;;1542:4952:14;;;;;;;;2407:36:39;1542:4952:14;;2407:36:39;1542:4952:14;;2458:15:39;:11;;4107:55:48;4065:25;;;;;;;;;;:::i;:::-;4107:55;;:::i;:::-;;1542:4952:14;;2454:148:39;6163:9;;;;;6159:70;;1542:4952:14;;6159:70:39;-1:-1:-1;;;6199:19:39;;1542:4952:14;;6199:19:39;1744:119;-1:-1:-1;;;1805:47:39;;1542:4952:14;;;1805:47:39;;6246:120:27;-1:-1:-1;;;6317:34:27;;1542:4952:14;;;6317:34:27;;6156:52;;;;1542:4952:14;6156:52:27;;1542:4952:14;6156:52:27;;;;;;1542:4952:14;6156:52:27;;;:::i;:::-;;;1542:4952:14;;;;;6156:52:27;;;;1542:4952:14;;;;6156:52:27;;;-1:-1:-1;6156:52:27;;4658:251;-1:-1:-1;;;4869:29:27;;1542:4952:14;4869:29:27;;4675:120;-1:-1:-1;;;;;;;;;;;1542:4952:14;-1:-1:-1;;;;;1542:4952:14;4753:42:27;;;-1:-1:-1;4675:120:27;;;1542:4952:14;;;;;;;;;;;-1:-1:-1;;1542:4952:14;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1542:4952:14;;;;;;;;;;;;;;;;;;;;2126:7;1542:4952;;;-1:-1:-1;;;2096:58:14;;-1:-1:-1;;;;;1542:4952:14;;;;2096:58;;1542:4952;-1:-1:-1;;1542:4952:14;1440:25:129;;1542:4952:14;;;;;;;;2096:58;1542:4952;2096:58;;;;;;;;1542:4952;-1:-1:-1;2126:7:14;1542:4952;1475:4:150;;-1:-1:-1;;;;;1542:4952:14;;;;;;;2164:59;;;;;1542:4952;2164:59;1542:4952;;;;;1475:4:150;;;;;;;;2164:59:14;;1542:4952;2164:59;;1542:4952;;;;;;;;;;;;;2164:59;;;;;;;;1542:4952;;2164:59;;;;;:::i;:::-;1542:4952;;2164:59;1542:4952;2164:59;1542:4952;;1475:4:150;1542:4952:14;;1475:4:150;;;;2164:59:14;1542:4952;;;2096:58;;;1542:4952;2096:58;1542:4952;2096:58;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;1542:4952;;1475:4:150;1542:4952:14;;1475:4:150;;;;1542:4952:14;;;;;;;;;;;;;;;-1:-1:-1;;1542:4952:14;;;;;;;-1:-1:-1;1542:4952:14;;;;;-1:-1:-1;;;;;1542:4952:14;;;;;;;;;;;-1:-1:-1;;;;;1542:4952:14;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1542:4952:14;;;;;;;;;;-1:-1:-1;;;3090:41:14;;;1454:4:73;1542:4952:14;3090:41;;1542:4952;3090:41;;1542:4952;3090:41;:::i;:::-;1454:4:73;1542:4952:14;;;;;1454:4:73;1542:4952:14;;:::i;:::-;;1454:4:73;;-1:-1:-1;;1454:4:73;1542:4952:14;1454:4:73;;;;;;-1:-1:-1;;1542:4952:14;;-1:-1:-1;;;3090:41:14;3248:151;;1454:4:73;-1:-1:-1;;;3090:41:14;1475:4:150;;1454::73;-1:-1:-1;;;1475:4:150;;;1454::73;1542:4952:14;3248:151;;1542:4952;3248:151;;1542:4952;3248:151;:::i;:::-;1542:4952;;;1454:4:73;1542:4952:14;1454:4:73;1542:4952:14;;:::i;:::-;3248:151;1454:4:73;;-1:-1:-1;;1454:4:73;1542:4952:14;1454:4:73;;;;;;1542:4952:14;;3090:41;1542:4952;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;1475:4:150;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;1542:4952:14;1475:4:150;;;;;;;;;;;;1454::73;1475::150;;;;;-1:-1:-1;;;;;1542:4952:14;;;;;;1475:4:150;;;;;;-1:-1:-1;;;;;1475:4:150;;;;4783:27:14;1475:4:150;;;3516:267:14;1475:4:150;;;;;;;;3540:233:14;;;1542:4952;1475:4:150;;1542:4952:14;3540:233;;1475:4:150;;;1454::73;3540:233:14;;1475:4:150;;;;3540:233:14;;1475:4:150;;;1542:4952:14;;3516:267;;;;;;;1475:4:150;;1542:4952:14;;;;;;1475:4:150;;1542:4952:14;;1475:4:150;;1542:4952:14;;;;;;1475:4:150;;;;1542:4952:14;1454:4:73;1475::150;;1542:4952:14;1475:4:150;1542:4952:14;1475:4:150;;;;;;;;1454::73;1475::150;;;;;1542:4952:14;1475:4:150;;;;1542:4952:14;;;;;1475:4:150;;;1542:4952:14;;1475:4:150;;1542:4952:14;1475:4:150;1542:4952:14;;;1475:4:150;;;;1542:4952:14;;1475:4:150;;;;1542:4952:14;;1475:4:150;;;;1542:4952:14;;1475:4:150;;;;;;;;:::i;:::-;3516:267:14;3090:41;;3516:267;;;;;;:::i;:::-;3504:279;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;3793:800:14;;;-1:-1:-1;;;;;3851:13:14;;:::i;:::-;1542:4952;3835:51;1542:4952;;3929:13;;:::i;:::-;3918:35;1542:4952;3918:35;1542:4952;;;3918:35;;;;;;:::i;:::-;3906:47;;;:::i;:::-;;;;;:::i;:::-;;3994:13;;:::i;:::-;3983:39;1542:4952;3983:39;1542:4952;;;3983:39;;;;;;:::i;:::-;3971:51;;;:::i;:::-;;;;;:::i;:::-;;3831:361;4614:35;4625:13;4614:35;4625:13;;:::i;:::-;1542:4952;;;4614:35;;;;;;:::i;:::-;4602:47;;;:::i;:::-;;;;;:::i;:::-;;4671:39;4682:13;4671:39;4682:13;;:::i;4671:39::-;4659:51;;;:::i;:::-;;;;;:::i;:::-;;1542:4952;;4783:27;;;1542:4952;4783:27;;;1475:4:150;1454::73;1475::150;;;;:::i;:::-;;;;-1:-1:-1;;1475:4:150;1542:4952:14;1475:4:150;;;3090:41:14;1475:4:150;:::i;4783:27:14:-;4771:39;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;1542:4952:14;1475:4:150;-1:-1:-1;;;;;1542:4952:14;;4849:42;;;;;1475:4:150;1542:4952:14;1475:4:150;1542:4952:14;;;;;1475:4:150;;;;;;;;;;4849:42:14;;1454:4:73;1542:4952:14;4849:42;;1475:4:150;;;;;;:::i;:::-;;;;-1:-1:-1;;1475:4:150;;;;;1542:4952:14;1475:4:150;:::i;:::-;1542:4952:14;;1475:4:150;;;1542:4952:14;4849:42;;;;;;;;;;3793:800;-1:-1:-1;;;;;;4998:13:14;;:::i;:::-;1542:4952;448:51:129;1542:4952:14;;5070:21;5119:10;;;;;;;:39;;;;:::i;:::-;;4986:383;;5382:24;;;5378:141;;5532:8;;5528:108;;1542:4952;;;;;;;5528:108;1475:4:150;;-1:-1:-1;;;;;5609:13:14;;:::i;:::-;-1:-1:-1;;;5549:87:14;;5574:10;1542:4952;;;1475:4:150;1542:4952:14;1475:4:150;1542:4952:14;5549:87;5378:141;1475:4:150;;1542:4952:14;;-1:-1:-1;;;;;;5468:13:14;;:::i;:::-;-1:-1:-1;;;5429:79:14;;1542:4952;;;1475:4:150;1542:4952:14;1475:4:150;;5429:79:14;4986:383;1475:4:150;;1542:4952:14;-1:-1:-1;;;;;5224:13:14;;:::i;:::-;1542:4952;;;1475:4:150;;;;;;;5201:63:14;;5258:4;1542:4952;5201:63;;1542:4952;5201:63;;;;;;;;;;;4986:383;-1:-1:-1;5189:75:14;1542:4952;-1:-1:-1;;;;;5311:13:14;;:::i;:::-;1542:4952;;-1:-1:-1;;;5288:70:14;;5336:10;1542:4952;5288:70;;1542:4952;1475:4:150;1440:25:129;;1542:4952:14;;;;;;1475:4:150;;1542:4952:14;;5288:70;;1542:4952;5288:70;;;;;;;;;;;4986:383;5278:80;4986:383;;;5288:70;;;;;;;;;;;;;;:::i;:::-;;;;;1542:4952;;1475:4:150;1542:4952:14;;1475:4:150;;;;5201:63:14;;;;;;;;;;;;;;;;;:::i;:::-;;;1440:25:129;;;;;5201:63:14;;;;1440:25:129;1542:4952:14;;;5201:63;;;;;4849:42;;;;1542:4952;4849:42;;:::i;:::-;1542:4952;4849:42;;;;1542:4952;;1475:4:150;1542:4952:14;1475:4:150;;;;;4849:42:14;1542:4952;;;3831:361;4084:13;;:::i;:::-;4073:35;1542:4952;4073:35;1542:4952;;;4073:35;;;;;;:::i;:::-;4061:47;;;:::i;:::-;;;;;:::i;:::-;;4149:13;;:::i;:::-;4138:39;1542:4952;4138:39;1542:4952;;;4138:39;;;;;;:::i;:::-;4126:51;;;:::i;:::-;;;;;:::i;:::-;;3831:361;;3793:800;-1:-1:-1;;;;;4242:13:14;;:::i;:::-;1542:4952;4226:51;1542:4952;;4320:13;;:::i;4222:361::-;4475:13;;:::i;:::-;4464:35;1542:4952;4464:35;1542:4952;;;4464:35;;;;;;:::i;:::-;4452:47;;;:::i;:::-;;;;;:::i;:::-;;4540:13;;:::i;1454:4:73:-;;;3090:41:14;1454:4:73;;;;;;;;;;1542:4952:14;;;;;;;;;;;1454:4:73;;;3090:41:14;1454:4:73;;;;;;;;;1542:4952:14;;;;;;-1:-1:-1;;1542:4952:14;;;;1713:23;1542:4952;-1:-1:-1;;;;;1542:4952:14;;;;;;;;;;-1:-1:-1;;;;;1542:4952:14;;;;;;:::o;:::-;1475:4:150;1542:4952:14;;-1:-1:-1;;;;;1542:4952:14;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;3090:41;;1542:4952;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;1542:4952:14;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1542:4952:14;;;;;;;;-1:-1:-1;;1542:4952:14;;;;:::o;1475:4:150:-;1542:4952:14;;1475:4:150;;;;;;:::o;:::-;1542:4952:14;;;;1475:4:150;;;;;1542:4952:14;1475:4:150;;1542:4952:14;;1454:4:73;1475::150;;;;;;;:::o;:::-;1542:4952:14;;1475:4:150;;;;;;;;:::o;:::-;1542:4952:14;1475:4:150;-1:-1:-1;;;;;1542:4952:14;;;;;;1475:4:150;:::o;:::-;;;-1:-1:-1;;;;;1542:4952:14;;;;;;1475:4:150;:::o;:::-;-1:-1:-1;;;;;1542:4952:14;;;;;-1:-1:-1;;;;;1542:4952:14;;;1475:4:150;;;;;;;:::o;:::-;;;1542:4952:14;;;;;;;;1475:4:150;1542:4952:14;1475:4:150;;;;;;;;;;-1:-1:-1;1475:4:150;;;;;;;;;;;;;:::o;:::-;3090:41:14;;;;;1542:4952;3090:41;1475:4:150;;3090:41:14;;;1475:4:150;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1440:25:129;;;;;;;;;;1542:4952:14;;;;;;;1440:25:129;:::o;:::-;;;;;;1542:4952:14;;;;:::i;:::-;;;;;;;;:::i;:::-;;;1440:25:129;-1:-1:-1;1440:25:129;;;;:::o;:::-;1454:4:73;1440:25:129;:::o;3405:215:25:-;-1:-1:-1;;;;;1542:4952:14;3489:22:25;;3485:91;;-1:-1:-1;;;;;;;;;;;1542:4952:14;;-1:-1:-1;;;;;;1542:4952:14;;;;;;;-1:-1:-1;;;;;1542:4952:14;3975:40:25;-1:-1:-1;;3975:40:25;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;1542:4952:14;;3509:1:25;3534:31;2658:162;-1:-1:-1;;;;;;;;;;;1542:4952:14;-1:-1:-1;;;;;1542:4952:14;966:10:28;2717:23:25;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:25;966:10:28;2763:40:25;1542:4952:14;;-1:-1:-1;2763:40:25;7084:141:26;1454:4:73;-1:-1:-1;;;;;;;;;;;1542:4952:14;;;1454:4:73;7150:18:26;7146:73;;7084:141::o;7146:73::-;7191:17;;;-1:-1:-1;7191:17:26;;-1:-1:-1;7191:17:26;4437:582:48;;4609:8;;-1:-1:-1;1542:4952:14;;5690:21:48;:17;;5815:158;;;;;;5686:354;6010:19;;;5710:1;6010:19;;5710:1;6010:19;4605:408;1542:4952:14;;4857:22:48;:49;;;4605:408;4853:119;;4985:17;;:::o;4853:119::-;-1:-1:-1;;;4878:1:48;4933:24;;;-1:-1:-1;;;;;1542:4952:14;;;;4933:24:48;1542:4952:14;;;4933:24:48;4857:49;4883:18;;;:23;4857:49;","linkReferences":{},"immutableReferences":{"7366":[{"start":993,"length":32},{"start":1201,"length":32}]}},"methodIdentifiers":{"UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","approveTokenWithPermit2(address,uint160,uint48)":"267b14bd","initialize(address,address,address)":"c0c53b8b","owner()":"8da5cb5b","permit2()":"12261ee7","poolManager()":"dc4c90d3","proxiableUUID()":"52d1902d","renounceOwnership()":"715018a6","router()":"f887ea40","swap((address,address,uint24,int24,address),uint128,uint128,uint256,bool,address)":"157fedba","transferOwnership(address)":"f2fde38b","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expectedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actualAmount\",\"type\":\"uint256\"}],\"name\":\"InsufficientSwapOutput\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SwapOutputTransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint160\",\"name\":\"amount\",\"type\":\"uint160\"},{\"internalType\":\"uint48\",\"name\":\"expiration\",\"type\":\"uint48\"}],\"name\":\"approveTokenWithPermit2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_poolManager\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_permit2\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"permit2\",\"outputs\":[{\"internalType\":\"contract IPermit2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"poolManager\",\"outputs\":[{\"internalType\":\"contract IPoolManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"contract UniversalRouter\",\"name\":\"\",\"type\":\"address\"}],\"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\"},{\"internalType\":\"uint128\",\"name\":\"amountIn\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"minAmountOut\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"stablecoinForToken\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"stablecoinAddress\",\"type\":\"address\"}],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This contract handles the execution of swaps between tokens and stablecoins, including permit2 approvals and swap execution through Uniswap V4 pools. It is upgradeable and ownable for administrative control.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"approveTokenWithPermit2(address,uint160,uint48)\":{\"params\":{\"amount\":\"The amount to approve\",\"expiration\":\"The expiration timestamp for the approval\",\"token\":\"The address of the token to approve\"}},\"initialize(address,address,address)\":{\"params\":{\"_permit2\":\"The address of the Permit2 contract\",\"_poolManager\":\"The address of the Uniswap V4 Pool Manager\",\"_router\":\"The address of the Universal Router\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"swap((address,address,uint24,int24,address),uint128,uint128,uint256,bool,address)\":{\"params\":{\"amountIn\":\"The amount of input token to swap\",\"deadline\":\"The deadline for the swap execution\",\"key\":\"The pool key containing the token pair information\",\"minAmountOut\":\"The minimum amount of output token to receive\",\"stablecoinAddress\":\"The address of the stablecoin\",\"stablecoinForToken\":\"Whether the swap is from stablecoin to token\"},\"returns\":{\"amountOut\":\"The amount of output token received\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"title\":\"SwapsManager\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"approveTokenWithPermit2(address,uint160,uint48)\":{\"notice\":\"Approves a token for spending by the permit2 contract\"},\"initialize(address,address,address)\":{\"notice\":\"Initializes the contract with required addresses\"},\"swap((address,address,uint24,int24,address),uint128,uint128,uint256,bool,address)\":{\"notice\":\"Executes a swap between tokens using Uniswap V4\"}},\"notice\":\"Manages token swaps using Uniswap V4 and Universal Router\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/swaps/SwapsManager.sol\":\"SwapsManager\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@chainlink/=lib/chainlink/\",\":@ensdomains/=lib/v4-core/node_modules/@ensdomains/\",\":@httpz-contracts/=lib/httpz-contracts/contracts/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/universal-router/=lib/universal-router.git/\",\":@uniswap/v2-core/=lib/v2-core/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/\",\":@uniswap/v4-core/=lib/v4-core/\",\":@uniswap/v4-periphery/=lib/v4-periphery/\",\":chainlink/=lib/chainlink/\",\":ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":fhevm-contracts/=node_modules/fhevm-contracts/\",\":fhevm-core-contracts/=node_modules/fhevm-core-contracts/\",\":fhevm/=node_modules/fhevm/\",\":forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":httpz-contracts/=lib/httpz-contracts/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":permit2/=lib/permit2/\",\":solmate/=lib/permit2/lib/solmate/\",\":universal-router.git/=lib/universal-router.git/\",\":v2-core/=lib/v2-core/contracts/\",\":v3-core/=lib/v3-core/\",\":v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/\",\":v4-core/=lib/v4-core/src/\",\":v4-periphery/=lib/v4-periphery/\"],\"viaIR\":true},\"sources\":{\"contracts/interfaces/ISwapsManager.sol\":{\"keccak256\":\"0xa98bd09c0946399a4f4ae05e713b3207593528df54e8695a4aa4db885b47e894\",\"license\":\"BSD-3-Clause-Clear\",\"urls\":[\"bzz-raw://eca854b1cf38859c81648a4bc824aa8e8e7a6347a3b902ceff0d2eb98cff384d\",\"dweb:/ipfs/QmTFzfKREewMg1xjbuCU5DDPbq8Wi1euCzpE2xJ8RAeJi8\"]},\"contracts/swaps/SwapsManager.sol\":{\"keccak256\":\"0x3d4d9b33ac2e97bafbe46a47fba285246649b3b75473b809706de58bba6abcf5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37ce21e2eca2ebcc4b971680a20cf20d2b6cc929c45b0dc5b5746dc705d77b40\",\"dweb:/ipfs/QmUfrJ5Pzjh8bpM1uCtECD9dHS8jBMrG4T68ufMccXeQvs\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xd861907d1168dcaec2a7846edbaed12feb8bad2d6781dba987be01374f90b495\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12ff809243040419e2fc2aa7ef0aaa60b3e6ebc901553ba1de970ceeef208c4c\",\"dweb:/ipfs/QmX2dwMVNrQAahqVzEx94gqcVB6Z8ovifPYdEfHZzj7aEb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x8decfa54cec979c824b044b8128cd91d713f72c71fd7dfa54974624d8c949898\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://271f914261a19d87117a777e0924ada545c16191ef9b00cc40b0134fc14ebc70\",\"dweb:/ipfs/QmdvVNWHGHQrGGPonZJs5NuzTevTjZRM2zayKrDJf7WBA2\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff\",\"dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaaa1d17c1129b127a4a401db2fbd72960e2671474be3d08cae71ccdc42f7624c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb2f27cd3952aa667e198fba0d9b7bcec52fbb12c16f013c25fe6fb52b29cc0e\",\"dweb:/ipfs/QmeuohBFoeyDPZA9JNCTEDz3VBfBD4EABWuWXVhHAuEpKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/permit2/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0xcdfd8db76b2a3415620e4d18cc5545f3d50de792dbf2c3dd5adb40cbe6f94b10\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://57b3ab70cde374af1cf2c9888636e8de6cf660f087b1c9abd805e9271e19fa35\",\"dweb:/ipfs/QmNrLDBAHYFjpjSd12jerm1AdBkDqEYUUaXgnT854BUZ97\"]},\"lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0xbadf3d708cf532b12f75f78a1d423135954b63774a6d4ba15914a551d348db8a\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://88ac8256bd520d1b8e6f9c4ac9e8777bffdc4a6c8afb1a848f596665779a55b4\",\"dweb:/ipfs/QmXx7X1dxe6f5VM91vgQ5BA4r2eF97GWDcQDrgHytcvfjU\"]},\"lib/permit2/src/interfaces/IAllowanceTransfer.sol\":{\"keccak256\":\"0x37f0ac203b6ef605c9533e1a739477e8e9dcea90710b40e645a367f8a21ace29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0104d72aeaec1cd66cc232e7de7b7ead08608efcc179491b8a66387614670b0\",\"dweb:/ipfs/QmfAZDyuNC9FXXbnJUwqHNwmAK6uRrXxtWEytLsxjskPsN\"]},\"lib/permit2/src/interfaces/IEIP712.sol\":{\"keccak256\":\"0xfdccf2b9639070803cd0e4198427fb0df3cc452ca59bd3b8a0d957a9a4254138\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f7c936ac42ce89e827db905a1544397f8bdf46db34cdb6aa1b90dea42fdb4c72\",\"dweb:/ipfs/QmVgurxo1N31qZqkPBirw9Z7S9tLYmv6jSwQp8R8ur2cBk\"]},\"lib/permit2/src/interfaces/IPermit2.sol\":{\"keccak256\":\"0xaa631cc9f53e699301d94233007110a345e6779011def484e8dd97b8fe0af771\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc0502cf19c9c18f320a3001201e89e350393b75837f6b7971de18b2de06f30d\",\"dweb:/ipfs/QmT9SfhdJ7VJNNrf94g4H5usyi7ShqWGx7Cqsz9jZTjX96\"]},\"lib/permit2/src/interfaces/ISignatureTransfer.sol\":{\"keccak256\":\"0xe6df9966f8841dc3958ee86169c89de97e7f614c81c28b9dc947b12d732df64e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d4eafdee7f48c3be8350a94eb6edd0bfb2af2c105df65787a77174f356c0317\",\"dweb:/ipfs/QmY1j2adeeAhNpn6cUuthemxGCdLXHTfyMh9yTKsY4mZ2d\"]},\"lib/permit2/src/libraries/SafeCast160.sol\":{\"keccak256\":\"0x8a34e2beac108d74f89510c949983212b5f09307a93ee9e17a9d50e93f6bc8e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828697f9567ce617c5c1c8f76b6bcd250e93aea2c4f3ee188be6dff8443c19e7\",\"dweb:/ipfs/QmafxeSPhUc9gGtNDLAw26oZooC5XNLhDMxHxYhJxL5Nwi\"]},\"lib/universal-router.git/contracts/UniversalRouter.sol\":{\"keccak256\":\"0x5c7515720fa9b429bc83f0044f3a02cdd065fe1773b9fd32151dc5ff9042d368\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://dd77517f3a73a07fdff8f3a52c268afca749a678ea11442140d401eb102f4404\",\"dweb:/ipfs/QmeJiwCtgF1rMB7Foi6PrqWEaXktztPGQfHoAsw1BRhLU3\"]},\"lib/universal-router.git/contracts/base/Dispatcher.sol\":{\"keccak256\":\"0x1564339a5163c5d27f06a64f994a7457b061aa0f5046377bcc5078cd6907cc5d\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://82dc3ed71c19d6e5d1f72304e62e360954fc40a4d92a2a94e862c5474490d58d\",\"dweb:/ipfs/QmcNamJcGijcEetbHWVJHNjSE2WCyQsmEGEGDg9ZNwqSjR\"]},\"lib/universal-router.git/contracts/base/Lock.sol\":{\"keccak256\":\"0x92f953dda0d671178d054eeb3915b70f8ba80be33df8670a9146af4a4bc2c6ac\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://f73faac9532c8a8870d31bcef68a0dde387579d7b755c342b3352a54a4b63682\",\"dweb:/ipfs/QmXLvJb6vxfrUG84ASLhEf7tL62MN3oxkp7aXUxemrZTy3\"]},\"lib/universal-router.git/contracts/interfaces/IUniversalRouter.sol\":{\"keccak256\":\"0x2525b52d1edf5df89bfd093c5b933b9e8f65236f44f58096763a6c87a5cafb63\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5cc0fcfedd6b32586099ee0f6781bb81da99175c65013c06bb6f61a125babb18\",\"dweb:/ipfs/QmcEkSzkjkPpp3YyJZaY232TjuNU4Pw6CSiTWz7sk2Sq5D\"]},\"lib/universal-router.git/contracts/libraries/Commands.sol\":{\"keccak256\":\"0xa08ae7be62972a4f17779257641065d41fa5cc2d5fc7050e5e5b76fbda9e6a9f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0b94d73c5cd54aba5e1ad4ccfc33df13c1b04417f53fda188275fc15f95f02f2\",\"dweb:/ipfs/QmNpigDf9g9AAbFr27gug5hAZjb6iuFekRqXonC6upoEcp\"]},\"lib/universal-router.git/contracts/libraries/Constants.sol\":{\"keccak256\":\"0xb668498f11a4bb576a0a61c183da7ca348249dd9176c57dcb6532912b1b49b0e\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://87d8588baf0b7b72faec637843c7623ac416d45e0f7719d0a635afe7981b2cf2\",\"dweb:/ipfs/QmSu7Jr8JM6mab2dddk1UaiPhyLZvsA8iLxC9MEcBUaMzT\"]},\"lib/universal-router.git/contracts/libraries/Locker.sol\":{\"keccak256\":\"0xfccb45f77b5c66f0f417d803b4b3f7ae97206d8d850a383ab7d97f25d0617cc0\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b47f3f4e74961f8e9d918c2cc3514cb8d097caee6ab2c20c10735235dec440ec\",\"dweb:/ipfs/QmfTWUjP7g7zTw67C2RvoMhWRX6ExLNV3UYSb5LqfE4bqC\"]},\"lib/universal-router.git/contracts/libraries/MaxInputAmount.sol\":{\"keccak256\":\"0x2dd6efbcaf9991c852e29a726f9876a0a6d08f2271912e69efa5c6a5e8034739\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://949ebd746eee3589d1e466c738884bd3532043d9e8a7b77c1521a098ba3c69b6\",\"dweb:/ipfs/QmZC9idgGQDfLksqfz41FrcsVXhqkfRZCZH9MJXQkQavt6\"]},\"lib/universal-router.git/contracts/modules/MigratorImmutables.sol\":{\"keccak256\":\"0x666d1622a10509c69b679df9d175a3e0c176a62b9e18d1cee7634219aded8f68\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a88e472495d32648ba3e7964c4c88b68853b49540f40afbaf2ede6822372b49f\",\"dweb:/ipfs/QmQoaWbCpwFYCnRgehM7ruYaa7za8fBghT5aQCRCPYJr1V\"]},\"lib/universal-router.git/contracts/modules/Payments.sol\":{\"keccak256\":\"0x19a103b3269ee2f7bc28a6e1850091b2087dd2558662494d1104ac8e5ac68524\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://ba64c600f57bb13672a5549b6dba11ae4dfe49f688c24eadb3289dcc87d226a8\",\"dweb:/ipfs/QmWkmVyeai1WeymuWqEk1fQE5R2frrQQjJv81cytrKvFuA\"]},\"lib/universal-router.git/contracts/modules/PaymentsImmutables.sol\":{\"keccak256\":\"0x9ca2535b69b15d3bdb7a15871c5bca83f5536cffb0191c64f4c6a2db4a154338\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://dc85fb3ddd19481bf0d1a8a9f5d9631b396d86344a33e30b4c4ab6cd58d51169\",\"dweb:/ipfs/QmeEGFqfHFUo1Mu6tRfCjvVGJYyoDu29ZspZgxxcj6ykvq\"]},\"lib/universal-router.git/contracts/modules/Permit2Payments.sol\":{\"keccak256\":\"0x887ec1f57144cd91a1b86d5a7b1d1119146f41dae6865e6fd0e849801e968628\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://08b713e82f3f192976902497e1c02dd60bf7e90c83a471eb4c7ac7710b086f95\",\"dweb:/ipfs/QmWJSGZ9Dj7FmFCnDWpDdL5fx76JYDgYWhggXCroxV7cjX\"]},\"lib/universal-router.git/contracts/modules/V3ToV4Migrator.sol\":{\"keccak256\":\"0x5ee3774b749b9a8d851dc6074c8de8c61f408a4cfd829c47c753840c839ba91c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://337e17b84f4fdad7e32be0e482e7b2471d7f927ba3b3174cae38cf2509d97443\",\"dweb:/ipfs/QmbzgdyxAC5vpvWRGaemn3Qn7DRbNDjHSH3KbHSDPwJ8LY\"]},\"lib/universal-router.git/contracts/modules/uniswap/UniswapImmutables.sol\":{\"keccak256\":\"0xb810727f5e734a30871ff1d83d8c96d99150f1ce77bb39e032aec6254ca43cd0\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5eb9df8b6c81f8e33b8a6bace294ed0d81c541988f7ba42027e3041eff32e1bd\",\"dweb:/ipfs/QmVPSWBv7WegGySGV4BoewKKx7iAetHsjydxQyKk3dh5yw\"]},\"lib/universal-router.git/contracts/modules/uniswap/v2/UniswapV2Library.sol\":{\"keccak256\":\"0x829d48c1b69d2e1bc078a57aae8d87dc31d920b01c62d6268d20d517fd24150c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b87236ea4c1e64c12434f31abbd658ca3fc510ebe65be731d84d3ce8efa71c32\",\"dweb:/ipfs/QmUerjg5Ebt3pfQZtk2sArUy414gQtHwvFNgsQNe4PhxbN\"]},\"lib/universal-router.git/contracts/modules/uniswap/v2/V2SwapRouter.sol\":{\"keccak256\":\"0x0fcb6ad6c4d5a7b25054dd9951432b2b41cb2c0077e6bc7ca0d0416115ef2326\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://124b1dd54d27914306bdd1021e171111f0ae622fffb2974ccdee24eab31b359d\",\"dweb:/ipfs/QmfKr2sbxdc31aPWv9d6ETA4GyfqHiKVZRKqhREnMkR5j9\"]},\"lib/universal-router.git/contracts/modules/uniswap/v3/BytesLib.sol\":{\"keccak256\":\"0xc3c23e83afd06781c4a0a5c418c20c40611e71d049766eb70987007ce372656e\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://c62989beb75edad6de18c31be31eb68f0c3fb15c5f9e9bb380221afc6785fda5\",\"dweb:/ipfs/QmVEsp5yivbmjP7HcXS5kJ1XJY5Uic3J3y4zjpwD1SNySD\"]},\"lib/universal-router.git/contracts/modules/uniswap/v3/V3Path.sol\":{\"keccak256\":\"0xf6abbf4c7cd0975ddabb0ddb641ea9ae3b0cc1dd9a1cabf5e7cc271a974eabc2\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1e0987fc9b81c65eada64cb65f981680c2054e489a6049d397b5ecbbf4c9a0a9\",\"dweb:/ipfs/QmW7mbbHsfc2GLy2GkCUv3VwXV93y6UFtKDD7E9QEtzFH7\"]},\"lib/universal-router.git/contracts/modules/uniswap/v3/V3SwapRouter.sol\":{\"keccak256\":\"0x31fe8777a6de583c54a0f09ec11d318c253b7fe50c7a2af1608b2b89a03ca660\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://780219ff0d6d333727655719d31d61ce345cdbca7f906467a2d00e3162b3c0aa\",\"dweb:/ipfs/QmbauA5Kvj7m9P9hxe4hhnLY5w2TEXMMnCc9oWehVgj2jo\"]},\"lib/universal-router.git/contracts/modules/uniswap/v4/V4SwapRouter.sol\":{\"keccak256\":\"0x68b7666641ad5ba227b500c9845c4bc71eaaac6556d97d31d123fce41b51969a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://40a99bb5e9e407ad6741f5c210ac23a32950e7567c73f21975444e9729fc6cfb\",\"dweb:/ipfs/QmUK98HjyQ7NDGR36DD9owjLDk7ujEj5b5uKt9zjUsCFG5\"]},\"lib/universal-router.git/contracts/types/RouterParameters.sol\":{\"keccak256\":\"0x9efe9912d44e56cff8fc23e1411c80b47ffc9f5c0ad5ca5c66ab77a1b7ddfcbf\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://473acf49dc1be1ca997ad20258124e26e03b3cef15412a8827ecf9b52e4cef21\",\"dweb:/ipfs/QmaGR2QL6im4XYJpubqhUuP82nFytemX7wwEk4cXECJYJN\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56\",\"dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"lib/universal-router.git/lib/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0xa72de315bd655a0fd5043ff97c7fd3868a1b5b1986afd75c6f5f8fd0f904985f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8838e68aba9caf2b2cb13bd4cb661b1f9c167cca4dfcd50ac72ae96691392df\",\"dweb:/ipfs/QmfLq3cmsSQTuLLxiF4bgceaf2jx8CoiVXQd7BZXGgJG1E\"]},\"lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol\":{\"keccak256\":\"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b\",\"urls\":[\"bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf\",\"dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH\"]},\"lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"lib/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652\",\"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"lib/v3-core/contracts/libraries/SafeCast.sol\":{\"keccak256\":\"0x4c12bf820c0b011f5490a209960ca34dd8af34660ef9e01de0438393d15e3fd8\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://fed11489e218e55d087d42b4f350a30e10cd2aedec8f432bd3cc712f648d5869\",\"dweb:/ipfs/QmWfRnRxyXwHUDcTQPazxYYk5jxErGeQqdvnYtyg5nBPbU\"]},\"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\":\"0x4c9571aed0c2b6ef11832545554fc11ffdb03746daaf5c73683c00600bfc7ec0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e78b34b58ce9de91b91943b4f3cc3ce121d0b151e123e8a600ac5ef64d91db6c\",\"dweb:/ipfs/QmRkaQnPCYwLrXgbpGujJTx32PaZK63KSPJJV1XmnQuCMb\"]},\"lib/v4-core/src/interfaces/IPoolManager.sol\":{\"keccak256\":\"0x3534f00531038e77ab8a7fc4d0a6e0993ee53fb7a396b1324ad917318ea46cea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4a7e771828dc40848485b568a1cf514f553ace6653f4f4d1ad3f3e9cdb6c27\",\"dweb:/ipfs/QmTjzQ7KVYnrEWtxPER2E4MXzycgcznfzSDsZtd5turk5V\"]},\"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/CurrencyReserves.sol\":{\"keccak256\":\"0x1576616129933fcdf3b684cea33cffd9c95e18fafbd2832a8c48ac3d8526d4c3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://33b050efb9b81803b18f562271e7cca2ec5362c4d505860d6419b4a345636725\",\"dweb:/ipfs/QmQtFtTwKZ5pFVGD2ENDUXvp7ECFvzqeCuJ1miJcUHdmiX\"]},\"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/Lock.sol\":{\"keccak256\":\"0x9338be4b5695f1da5f3d3f7a3eeaf7a356c1045458289586ac0cbe9cef77c6d5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://485ec42ed6155469d612a9a0c18068ebfbad74448792a338a435503de3ef1b2c\",\"dweb:/ipfs/QmVnnv5u74MYatfRmBgrcfFYQcsMAJMG9jQ6ju8UiydKNF\"]},\"lib/v4-core/src/libraries/NonzeroDeltaCount.sol\":{\"keccak256\":\"0x0666ebd5d3528d7d52c48538296367a4cff97a578cf13365c51983fae3219b87\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://d27f1be3bd09d85c53d3e6a539dd6529ddd8b2b764ccb47fd7765fc81f9add59\",\"dweb:/ipfs/QmQdZujNXhKEXQBkKtF5jbdvo1yXMqPDUoBBaF9S5u3Kpm\"]},\"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/libraries/TransientStateLibrary.sol\":{\"keccak256\":\"0x7d1e0875747bd89b32c25f1a48da2766e5f4aff1f671ad5f3c0c07ebbbcb946a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d76cfeb1cb60595b41ecc51c8a12fb4bf63a7fc733d0b1a2e3adb55abeb1f9d5\",\"dweb:/ipfs/Qmb8oX7DtsRpw3tTtdWZwGhauj1evq43d3PLwe4nSDAKkV\"]},\"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-periphery/src/V4Router.sol\":{\"keccak256\":\"0x8ede1e538ae9b74984c52347a3bbaee7b3d69f00ed9b3a6db1f1bd6e058a2326\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e370416fa9681ad124414e2b2fb57a5455e15dd873c9e61c964177ae5c2d544\",\"dweb:/ipfs/QmWrM97ezNB9CpawqhkwpubXHcXUbMFWKYEbD3D6EyAe1w\"]},\"lib/v4-periphery/src/base/BaseActionsRouter.sol\":{\"keccak256\":\"0xca1ee500f88951ad351d18ba2adfb5fe23abef6d502f234ce5748a3497674a4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f03ab458be27c29cef1b7ace5b11517d3fef8bf6131af7dd80d6297c224cf71\",\"dweb:/ipfs/QmYoH6o8yeRzbeLoaMG9TjS8q2Fw7T1h4vXvvMnp3XfsUa\"]},\"lib/v4-periphery/src/base/DeltaResolver.sol\":{\"keccak256\":\"0x94a2da2be5c924df65a8e1e29f585bbe4c37777fedd43b45989c66d509a4a83c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42bba590f6e817fd56328b74ae99bfdc4df57386d0a69ee22b9108341953ed36\",\"dweb:/ipfs/QmdusastK7FWYouLz9gvV5J3z8MQbNKLJNNHTrc1vi7DWw\"]},\"lib/v4-periphery/src/base/ImmutableState.sol\":{\"keccak256\":\"0x1867c9fa2f9b4fa73bab0fcdc9d19ccef4eeac552273d8b84a170cd1cc90350a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af2d699b439e13b599632fddfe82718aebd41055fba7c075f186675c588d1337\",\"dweb:/ipfs/Qmc111gckSKb9aESn3wRFLeLiS4KGujaUcaYJgRnCRfwQU\"]},\"lib/v4-periphery/src/base/SafeCallback.sol\":{\"keccak256\":\"0xd78b583df1b9ee06d58e83b84fc9f08971389b34dd34bc13db072e0c13c710da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0a47f4bcd6060c4462153b9a7c52a60a460ace91acb6ddd5492eab28ec26173\",\"dweb:/ipfs/QmdRCTRS1dhFjWEy6z577j4xz9J5HPfHBwcNzAic8G59oT\"]},\"lib/v4-periphery/src/interfaces/IEIP712_v4.sol\":{\"keccak256\":\"0xd7f7115476e307a0bfc32a0f0a0f5434e9e5ca62a6c5af1e18b75e48161bb408\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1600b953556da38a7adc5ad2a2925ec5fb138fecf8eec48743646543195b736\",\"dweb:/ipfs/QmarZi2aiLVAfHXgnDWV1cCFiZk2DdPW7KJnWHqzuRChJR\"]},\"lib/v4-periphery/src/interfaces/IERC721Permit_v4.sol\":{\"keccak256\":\"0x103adbba724ef536abc536fe8a4d7dc12880724c562109b69f2adce4a91fa017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06f51b5a5a218e0bc866a83e7821be53c9db9de0ca921f16abd3d13ea0eab69d\",\"dweb:/ipfs/QmbnhLy992hpQZyphTkj7fpr6jKKVva2AzfmLiDZEuqHAk\"]},\"lib/v4-periphery/src/interfaces/IImmutableState.sol\":{\"keccak256\":\"0x36ab3100e87457ecf04887f4f540e34fd7f21d8e3b83880cb679239e60b7b06b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f290c7ce8e4832608d637a51b13dff95abecf6549485448e647a11c8ed01341\",\"dweb:/ipfs/QmfD1R6mTp8j4EjQXmQZW3vCh11EYFjnvoaw8rXRP27mMq\"]},\"lib/v4-periphery/src/interfaces/IMulticall_v4.sol\":{\"keccak256\":\"0x336bec303f7ff86497d2679464c5adad5040f412b3d0769ce5e1d2a42f7e2c08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7734f047d98d331c8abc51ad9f358ceee0a6dcae8d89ac49084b84de0d2d42e7\",\"dweb:/ipfs/QmWij2h7mU36LsXhb9P6pkYXrSCua4ixeWaVFSrsEcEmPQ\"]},\"lib/v4-periphery/src/interfaces/INotifier.sol\":{\"keccak256\":\"0xfdc5187a98240a1691aae98b7dd2444d4c2bfb4746f3c34de9f3d18399c17c5e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://683af56401ec4f8817e8dfe150e7b3febaf0baaf40efe8d0d0475f735275f746\",\"dweb:/ipfs/QmRQ6S3nFnSc2jjDcQTvUJdTf4xKPojmvCkpvgyr6qTuVV\"]},\"lib/v4-periphery/src/interfaces/IPermit2Forwarder.sol\":{\"keccak256\":\"0xfad472937280e861125ff12aa6f9c2cf7440fbb20a2cc29485c24662ad4279c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31bfbc331f5972fc373d9469fd1ca1d14818db3275f21b7b590f20820cb4439d\",\"dweb:/ipfs/QmX3Bv9wfYpAFZKBcxKsQSXUrSC8mqNBdzh6XVMS72aNx9\"]},\"lib/v4-periphery/src/interfaces/IPoolInitializer_v4.sol\":{\"keccak256\":\"0x2e4feda94650a2642039e0309ffdec480ee050bc40864bf5e1dba42bb4dc9e98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://964c178b4da8bab9ef898b94bb26d7c17cc44c5cf20485f55dcf5e9c7e1b1d92\",\"dweb:/ipfs/QmVd2c3SYteyr5xZgUS4sDAiZF43dLwVAEKdCfvQbkZpRJ\"]},\"lib/v4-periphery/src/interfaces/IPositionManager.sol\":{\"keccak256\":\"0x62dfa0cbee8314ee7e6787db8bc1d364245c340f940875ac7ff11e89d074fc7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26f560c77d8a187bf93a710b827e3167eab3446922192fa8f92f208da2103834\",\"dweb:/ipfs/Qmbzp5gSYdTpMBF9aAb2GraxMEQZb5LRJCyg8VaRUyjTFc\"]},\"lib/v4-periphery/src/interfaces/ISubscriber.sol\":{\"keccak256\":\"0x34ceadec4a63019680e543fe73197f198a55c825d86e18f327840354760b57e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31734feafe1fe162a0702ddf862fcc3bd97505931afb3c685033c0185d898051\",\"dweb:/ipfs/QmQEANYVyaXTNzXKcjUVfPhLU71Bix5vxQH75BpPWMkWgw\"]},\"lib/v4-periphery/src/interfaces/IUnorderedNonce.sol\":{\"keccak256\":\"0xd7f32fee74dc7d1a3b078ca1263961baccaa6bf434c79e8fe0e092e30c3e0ec3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7d1e92d89d5f49c84aa82f3b259678c2c97a4473b22d753ca4411a6b0cec36d\",\"dweb:/ipfs/QmNZoQyminStaAdaLqoDLoWaBU5QWrWjXFjmBm4aFhzL8i\"]},\"lib/v4-periphery/src/interfaces/IV4Router.sol\":{\"keccak256\":\"0xc4133fae25e61cc2447d7331729f6035322d7c1fe26b39b225422bf98cc63459\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c24ff8428504e973e947a059f96289a66c520cd7f8ef47a3224f9cb6abdaf25\",\"dweb:/ipfs/QmVqxYnngWXXcCiuTC143vTEJrjZK5NXWB92pjvVbuJBQ5\"]},\"lib/v4-periphery/src/interfaces/external/IWETH9.sol\":{\"keccak256\":\"0xe88abf12501ac275619aec0687240a07d26968aecbbcdfea88ba8bbd5d6e5e14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7097065d4492b4eccb1a73f99af1e5bec45404c6b973b8f5965c4c91403f5f92\",\"dweb:/ipfs/QmZK8oEqmjmTqhBoh3D3fBpyKGkUEFnptY8xwH9xpNjDm2\"]},\"lib/v4-periphery/src/libraries/ActionConstants.sol\":{\"keccak256\":\"0x3d6f0e5b4a7b1e60bad93e73dce5db67fb66bebef11c31ed8355014a79aa03b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6dfa42e24b1b5c7f66e75304ab034fbb6768518eb2410ccfff8b3defdd1658f2\",\"dweb:/ipfs/QmQQ7fud9mmv7PEWPAQiNzeZhNkWf28Z6nCHc2e6WJFfa7\"]},\"lib/v4-periphery/src/libraries/Actions.sol\":{\"keccak256\":\"0x8efd4b8b289177ee27e557d9d0a5a9f973d66fe1eb1ef8959d316b11987ca830\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07fe35f194eb99465028f0546359befea574d844da53767d32f22b233c3bcc98\",\"dweb:/ipfs/Qmc19631uFxABTHAbGrDrroexi9GdyxWntaum1v8npPYz5\"]},\"lib/v4-periphery/src/libraries/BipsLibrary.sol\":{\"keccak256\":\"0x37ebf99f5d086d9d9f6e7cecbf4d62167f47c63c30248cfcb921e828f0d7a359\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4f8e68a66bb6c166d72cdba6ed6fb83a93f713b79c2c572e8058084eb90ab6c\",\"dweb:/ipfs/QmY32FxtSBRf9PJzNUVzXqFY4i2ApTPHTUMpCBGovd2zo3\"]},\"lib/v4-periphery/src/libraries/CalldataDecoder.sol\":{\"keccak256\":\"0x26df49e13fb5410fd4db253cca877dfdfb3a1ba03e394d054c0e0514a88a56e5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72a0c98c52171708f332f83d517deeb97fdd50ecf28f2510e1866e54593a6ff8\",\"dweb:/ipfs/QmY4LiDUfSKGj86nML7B6a8euiPciUqwYehasAyAVnMCHq\"]},\"lib/v4-periphery/src/libraries/PathKey.sol\":{\"keccak256\":\"0xbbd79ffefe045f025263e389539021266fb4d371463aefba405e1ff1d3fcf9bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d1c47b81a01218be46ee79f0a8837095479b94dc5cfd18abbf2006709f0ea89\",\"dweb:/ipfs/QmRb6CQ13Zp7f3WF5jbZtsF2szhxpPgcuWs9mjwQXxzqtg\"]},\"lib/v4-periphery/src/libraries/PositionInfoLibrary.sol\":{\"keccak256\":\"0xc5ddf96bd088bc87ea50a20f907fc932fb28397a42682a301b268a11b7f34078\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7dfeb4dc747537240f8167243e8066b6f5f08057386fb8bda93f82973fc18ad6\",\"dweb:/ipfs/Qmby9DAAaHj8hjsMUnqY3vjqCHKGAKrT5EULMmeGcjbbGx\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"expectedAmount","type":"uint256"},{"internalType":"uint256","name":"actualAmount","type":"uint256"}],"type":"error","name":"InsufficientSwapOutput"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"type":"error","name":"SwapOutputTransferFailed"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint160","name":"amount","type":"uint160"},{"internalType":"uint48","name":"expiration","type":"uint48"}],"stateMutability":"nonpayable","type":"function","name":"approveTokenWithPermit2"},{"inputs":[{"internalType":"address","name":"_router","type":"address"},{"internalType":"address","name":"_poolManager","type":"address"},{"internalType":"address","name":"_permit2","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"permit2","outputs":[{"internalType":"contract IPermit2","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"poolManager","outputs":[{"internalType":"contract IPoolManager","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"router","outputs":[{"internalType":"contract UniversalRouter","name":"","type":"address"}]},{"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":"uint128","name":"amountIn","type":"uint128"},{"internalType":"uint128","name":"minAmountOut","type":"uint128"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"stablecoinForToken","type":"bool"},{"internalType":"address","name":"stablecoinAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"swap","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"approveTokenWithPermit2(address,uint160,uint48)":{"params":{"amount":"The amount to approve","expiration":"The expiration timestamp for the approval","token":"The address of the token to approve"}},"initialize(address,address,address)":{"params":{"_permit2":"The address of the Permit2 contract","_poolManager":"The address of the Uniswap V4 Pool Manager","_router":"The address of the Universal Router"}},"owner()":{"details":"Returns the address of the current owner."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"swap((address,address,uint24,int24,address),uint128,uint128,uint256,bool,address)":{"params":{"amountIn":"The amount of input token to swap","deadline":"The deadline for the swap execution","key":"The pool key containing the token pair information","minAmountOut":"The minimum amount of output token to receive","stablecoinAddress":"The address of the stablecoin","stablecoinForToken":"Whether the swap is from stablecoin to token"},"returns":{"amountOut":"The amount of output token received"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"approveTokenWithPermit2(address,uint160,uint48)":{"notice":"Approves a token for spending by the permit2 contract"},"initialize(address,address,address)":{"notice":"Initializes the contract with required addresses"},"swap((address,address,uint24,int24,address),uint128,uint128,uint256,bool,address)":{"notice":"Executes a swap between tokens using Uniswap V4"}},"version":1}},"settings":{"remappings":["@chainlink/=lib/chainlink/","@ensdomains/=lib/v4-core/node_modules/@ensdomains/","@httpz-contracts/=lib/httpz-contracts/contracts/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@uniswap/universal-router/=lib/universal-router.git/","@uniswap/v2-core/=lib/v2-core/","@uniswap/v3-core/=lib/v3-core/","@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/","@uniswap/v4-core/=lib/v4-core/","@uniswap/v4-periphery/=lib/v4-periphery/","chainlink/=lib/chainlink/","ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","eth-gas-reporter/=node_modules/eth-gas-reporter/","fhevm-contracts/=node_modules/fhevm-contracts/","fhevm-core-contracts/=node_modules/fhevm-core-contracts/","fhevm/=node_modules/fhevm/","forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","httpz-contracts/=lib/httpz-contracts/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","permit2/=lib/permit2/","solmate/=lib/permit2/lib/solmate/","universal-router.git/=lib/universal-router.git/","v2-core/=lib/v2-core/contracts/","v3-core/=lib/v3-core/","v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/","v4-core/=lib/v4-core/src/","v4-periphery/=lib/v4-periphery/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/swaps/SwapsManager.sol":"SwapsManager"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/interfaces/ISwapsManager.sol":{"keccak256":"0xa98bd09c0946399a4f4ae05e713b3207593528df54e8695a4aa4db885b47e894","urls":["bzz-raw://eca854b1cf38859c81648a4bc824aa8e8e7a6347a3b902ceff0d2eb98cff384d","dweb:/ipfs/QmTFzfKREewMg1xjbuCU5DDPbq8Wi1euCzpE2xJ8RAeJi8"],"license":"BSD-3-Clause-Clear"},"contracts/swaps/SwapsManager.sol":{"keccak256":"0x3d4d9b33ac2e97bafbe46a47fba285246649b3b75473b809706de58bba6abcf5","urls":["bzz-raw://37ce21e2eca2ebcc4b971680a20cf20d2b6cc929c45b0dc5b5746dc705d77b40","dweb:/ipfs/QmUfrJ5Pzjh8bpM1uCtECD9dHS8jBMrG4T68ufMccXeQvs"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xd861907d1168dcaec2a7846edbaed12feb8bad2d6781dba987be01374f90b495","urls":["bzz-raw://12ff809243040419e2fc2aa7ef0aaa60b3e6ebc901553ba1de970ceeef208c4c","dweb:/ipfs/QmX2dwMVNrQAahqVzEx94gqcVB6Z8ovifPYdEfHZzj7aEb"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x8decfa54cec979c824b044b8128cd91d713f72c71fd7dfa54974624d8c949898","urls":["bzz-raw://271f914261a19d87117a777e0924ada545c16191ef9b00cc40b0134fc14ebc70","dweb:/ipfs/QmdvVNWHGHQrGGPonZJs5NuzTevTjZRM2zayKrDJf7WBA2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de","urls":["bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff","dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xaaa1d17c1129b127a4a401db2fbd72960e2671474be3d08cae71ccdc42f7624c","urls":["bzz-raw://cb2f27cd3952aa667e198fba0d9b7bcec52fbb12c16f013c25fe6fb52b29cc0e","dweb:/ipfs/QmeuohBFoeyDPZA9JNCTEDz3VBfBD4EABWuWXVhHAuEpKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"lib/permit2/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0xcdfd8db76b2a3415620e4d18cc5545f3d50de792dbf2c3dd5adb40cbe6f94b10","urls":["bzz-raw://57b3ab70cde374af1cf2c9888636e8de6cf660f087b1c9abd805e9271e19fa35","dweb:/ipfs/QmNrLDBAHYFjpjSd12jerm1AdBkDqEYUUaXgnT854BUZ97"],"license":"AGPL-3.0-only"},"lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol":{"keccak256":"0xbadf3d708cf532b12f75f78a1d423135954b63774a6d4ba15914a551d348db8a","urls":["bzz-raw://88ac8256bd520d1b8e6f9c4ac9e8777bffdc4a6c8afb1a848f596665779a55b4","dweb:/ipfs/QmXx7X1dxe6f5VM91vgQ5BA4r2eF97GWDcQDrgHytcvfjU"],"license":"AGPL-3.0-only"},"lib/permit2/src/interfaces/IAllowanceTransfer.sol":{"keccak256":"0x37f0ac203b6ef605c9533e1a739477e8e9dcea90710b40e645a367f8a21ace29","urls":["bzz-raw://e0104d72aeaec1cd66cc232e7de7b7ead08608efcc179491b8a66387614670b0","dweb:/ipfs/QmfAZDyuNC9FXXbnJUwqHNwmAK6uRrXxtWEytLsxjskPsN"],"license":"MIT"},"lib/permit2/src/interfaces/IEIP712.sol":{"keccak256":"0xfdccf2b9639070803cd0e4198427fb0df3cc452ca59bd3b8a0d957a9a4254138","urls":["bzz-raw://f7c936ac42ce89e827db905a1544397f8bdf46db34cdb6aa1b90dea42fdb4c72","dweb:/ipfs/QmVgurxo1N31qZqkPBirw9Z7S9tLYmv6jSwQp8R8ur2cBk"],"license":"MIT"},"lib/permit2/src/interfaces/IPermit2.sol":{"keccak256":"0xaa631cc9f53e699301d94233007110a345e6779011def484e8dd97b8fe0af771","urls":["bzz-raw://fc0502cf19c9c18f320a3001201e89e350393b75837f6b7971de18b2de06f30d","dweb:/ipfs/QmT9SfhdJ7VJNNrf94g4H5usyi7ShqWGx7Cqsz9jZTjX96"],"license":"MIT"},"lib/permit2/src/interfaces/ISignatureTransfer.sol":{"keccak256":"0xe6df9966f8841dc3958ee86169c89de97e7f614c81c28b9dc947b12d732df64e","urls":["bzz-raw://3d4eafdee7f48c3be8350a94eb6edd0bfb2af2c105df65787a77174f356c0317","dweb:/ipfs/QmY1j2adeeAhNpn6cUuthemxGCdLXHTfyMh9yTKsY4mZ2d"],"license":"MIT"},"lib/permit2/src/libraries/SafeCast160.sol":{"keccak256":"0x8a34e2beac108d74f89510c949983212b5f09307a93ee9e17a9d50e93f6bc8e9","urls":["bzz-raw://828697f9567ce617c5c1c8f76b6bcd250e93aea2c4f3ee188be6dff8443c19e7","dweb:/ipfs/QmafxeSPhUc9gGtNDLAw26oZooC5XNLhDMxHxYhJxL5Nwi"],"license":"MIT"},"lib/universal-router.git/contracts/UniversalRouter.sol":{"keccak256":"0x5c7515720fa9b429bc83f0044f3a02cdd065fe1773b9fd32151dc5ff9042d368","urls":["bzz-raw://dd77517f3a73a07fdff8f3a52c268afca749a678ea11442140d401eb102f4404","dweb:/ipfs/QmeJiwCtgF1rMB7Foi6PrqWEaXktztPGQfHoAsw1BRhLU3"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/base/Dispatcher.sol":{"keccak256":"0x1564339a5163c5d27f06a64f994a7457b061aa0f5046377bcc5078cd6907cc5d","urls":["bzz-raw://82dc3ed71c19d6e5d1f72304e62e360954fc40a4d92a2a94e862c5474490d58d","dweb:/ipfs/QmcNamJcGijcEetbHWVJHNjSE2WCyQsmEGEGDg9ZNwqSjR"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/base/Lock.sol":{"keccak256":"0x92f953dda0d671178d054eeb3915b70f8ba80be33df8670a9146af4a4bc2c6ac","urls":["bzz-raw://f73faac9532c8a8870d31bcef68a0dde387579d7b755c342b3352a54a4b63682","dweb:/ipfs/QmXLvJb6vxfrUG84ASLhEf7tL62MN3oxkp7aXUxemrZTy3"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/interfaces/IUniversalRouter.sol":{"keccak256":"0x2525b52d1edf5df89bfd093c5b933b9e8f65236f44f58096763a6c87a5cafb63","urls":["bzz-raw://5cc0fcfedd6b32586099ee0f6781bb81da99175c65013c06bb6f61a125babb18","dweb:/ipfs/QmcEkSzkjkPpp3YyJZaY232TjuNU4Pw6CSiTWz7sk2Sq5D"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/libraries/Commands.sol":{"keccak256":"0xa08ae7be62972a4f17779257641065d41fa5cc2d5fc7050e5e5b76fbda9e6a9f","urls":["bzz-raw://0b94d73c5cd54aba5e1ad4ccfc33df13c1b04417f53fda188275fc15f95f02f2","dweb:/ipfs/QmNpigDf9g9AAbFr27gug5hAZjb6iuFekRqXonC6upoEcp"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/libraries/Constants.sol":{"keccak256":"0xb668498f11a4bb576a0a61c183da7ca348249dd9176c57dcb6532912b1b49b0e","urls":["bzz-raw://87d8588baf0b7b72faec637843c7623ac416d45e0f7719d0a635afe7981b2cf2","dweb:/ipfs/QmSu7Jr8JM6mab2dddk1UaiPhyLZvsA8iLxC9MEcBUaMzT"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/libraries/Locker.sol":{"keccak256":"0xfccb45f77b5c66f0f417d803b4b3f7ae97206d8d850a383ab7d97f25d0617cc0","urls":["bzz-raw://b47f3f4e74961f8e9d918c2cc3514cb8d097caee6ab2c20c10735235dec440ec","dweb:/ipfs/QmfTWUjP7g7zTw67C2RvoMhWRX6ExLNV3UYSb5LqfE4bqC"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/libraries/MaxInputAmount.sol":{"keccak256":"0x2dd6efbcaf9991c852e29a726f9876a0a6d08f2271912e69efa5c6a5e8034739","urls":["bzz-raw://949ebd746eee3589d1e466c738884bd3532043d9e8a7b77c1521a098ba3c69b6","dweb:/ipfs/QmZC9idgGQDfLksqfz41FrcsVXhqkfRZCZH9MJXQkQavt6"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/MigratorImmutables.sol":{"keccak256":"0x666d1622a10509c69b679df9d175a3e0c176a62b9e18d1cee7634219aded8f68","urls":["bzz-raw://a88e472495d32648ba3e7964c4c88b68853b49540f40afbaf2ede6822372b49f","dweb:/ipfs/QmQoaWbCpwFYCnRgehM7ruYaa7za8fBghT5aQCRCPYJr1V"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/Payments.sol":{"keccak256":"0x19a103b3269ee2f7bc28a6e1850091b2087dd2558662494d1104ac8e5ac68524","urls":["bzz-raw://ba64c600f57bb13672a5549b6dba11ae4dfe49f688c24eadb3289dcc87d226a8","dweb:/ipfs/QmWkmVyeai1WeymuWqEk1fQE5R2frrQQjJv81cytrKvFuA"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/PaymentsImmutables.sol":{"keccak256":"0x9ca2535b69b15d3bdb7a15871c5bca83f5536cffb0191c64f4c6a2db4a154338","urls":["bzz-raw://dc85fb3ddd19481bf0d1a8a9f5d9631b396d86344a33e30b4c4ab6cd58d51169","dweb:/ipfs/QmeEGFqfHFUo1Mu6tRfCjvVGJYyoDu29ZspZgxxcj6ykvq"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/Permit2Payments.sol":{"keccak256":"0x887ec1f57144cd91a1b86d5a7b1d1119146f41dae6865e6fd0e849801e968628","urls":["bzz-raw://08b713e82f3f192976902497e1c02dd60bf7e90c83a471eb4c7ac7710b086f95","dweb:/ipfs/QmWJSGZ9Dj7FmFCnDWpDdL5fx76JYDgYWhggXCroxV7cjX"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/V3ToV4Migrator.sol":{"keccak256":"0x5ee3774b749b9a8d851dc6074c8de8c61f408a4cfd829c47c753840c839ba91c","urls":["bzz-raw://337e17b84f4fdad7e32be0e482e7b2471d7f927ba3b3174cae38cf2509d97443","dweb:/ipfs/QmbzgdyxAC5vpvWRGaemn3Qn7DRbNDjHSH3KbHSDPwJ8LY"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/UniswapImmutables.sol":{"keccak256":"0xb810727f5e734a30871ff1d83d8c96d99150f1ce77bb39e032aec6254ca43cd0","urls":["bzz-raw://5eb9df8b6c81f8e33b8a6bace294ed0d81c541988f7ba42027e3041eff32e1bd","dweb:/ipfs/QmVPSWBv7WegGySGV4BoewKKx7iAetHsjydxQyKk3dh5yw"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v2/UniswapV2Library.sol":{"keccak256":"0x829d48c1b69d2e1bc078a57aae8d87dc31d920b01c62d6268d20d517fd24150c","urls":["bzz-raw://b87236ea4c1e64c12434f31abbd658ca3fc510ebe65be731d84d3ce8efa71c32","dweb:/ipfs/QmUerjg5Ebt3pfQZtk2sArUy414gQtHwvFNgsQNe4PhxbN"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v2/V2SwapRouter.sol":{"keccak256":"0x0fcb6ad6c4d5a7b25054dd9951432b2b41cb2c0077e6bc7ca0d0416115ef2326","urls":["bzz-raw://124b1dd54d27914306bdd1021e171111f0ae622fffb2974ccdee24eab31b359d","dweb:/ipfs/QmfKr2sbxdc31aPWv9d6ETA4GyfqHiKVZRKqhREnMkR5j9"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v3/BytesLib.sol":{"keccak256":"0xc3c23e83afd06781c4a0a5c418c20c40611e71d049766eb70987007ce372656e","urls":["bzz-raw://c62989beb75edad6de18c31be31eb68f0c3fb15c5f9e9bb380221afc6785fda5","dweb:/ipfs/QmVEsp5yivbmjP7HcXS5kJ1XJY5Uic3J3y4zjpwD1SNySD"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v3/V3Path.sol":{"keccak256":"0xf6abbf4c7cd0975ddabb0ddb641ea9ae3b0cc1dd9a1cabf5e7cc271a974eabc2","urls":["bzz-raw://1e0987fc9b81c65eada64cb65f981680c2054e489a6049d397b5ecbbf4c9a0a9","dweb:/ipfs/QmW7mbbHsfc2GLy2GkCUv3VwXV93y6UFtKDD7E9QEtzFH7"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v3/V3SwapRouter.sol":{"keccak256":"0x31fe8777a6de583c54a0f09ec11d318c253b7fe50c7a2af1608b2b89a03ca660","urls":["bzz-raw://780219ff0d6d333727655719d31d61ce345cdbca7f906467a2d00e3162b3c0aa","dweb:/ipfs/QmbauA5Kvj7m9P9hxe4hhnLY5w2TEXMMnCc9oWehVgj2jo"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/modules/uniswap/v4/V4SwapRouter.sol":{"keccak256":"0x68b7666641ad5ba227b500c9845c4bc71eaaac6556d97d31d123fce41b51969a","urls":["bzz-raw://40a99bb5e9e407ad6741f5c210ac23a32950e7567c73f21975444e9729fc6cfb","dweb:/ipfs/QmUK98HjyQ7NDGR36DD9owjLDk7ujEj5b5uKt9zjUsCFG5"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/contracts/types/RouterParameters.sol":{"keccak256":"0x9efe9912d44e56cff8fc23e1411c80b47ffc9f5c0ad5ca5c66ab77a1b7ddfcbf","urls":["bzz-raw://473acf49dc1be1ca997ad20258124e26e03b3cef15412a8827ecf9b52e4cef21","dweb:/ipfs/QmaGR2QL6im4XYJpubqhUuP82nFytemX7wwEk4cXECJYJN"],"license":"GPL-3.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IERC721Permit.sol":{"keccak256":"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4","urls":["bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471","dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL"],"license":"GPL-2.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol":{"keccak256":"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984","urls":["bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56","dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW"],"license":"GPL-2.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol":{"keccak256":"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d","urls":["bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f","dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127"],"license":"GPL-2.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryPayments.sol":{"keccak256":"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274","urls":["bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407","dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp"],"license":"GPL-2.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPoolInitializer.sol":{"keccak256":"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862","urls":["bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f","dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu"],"license":"GPL-2.0-or-later"},"lib/universal-router.git/lib/v3-periphery/contracts/libraries/PoolAddress.sol":{"keccak256":"0xa72de315bd655a0fd5043ff97c7fd3868a1b5b1986afd75c6f5f8fd0f904985f","urls":["bzz-raw://a8838e68aba9caf2b2cb13bd4cb661b1f9c167cca4dfcd50ac72ae96691392df","dweb:/ipfs/QmfLq3cmsSQTuLLxiF4bgceaf2jx8CoiVXQd7BZXGgJG1E"],"license":"GPL-2.0-or-later"},"lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol":{"keccak256":"0x7c9bc70e5996c763e02ff38905282bc24fb242b0ef2519a003b36824fc524a4b","urls":["bzz-raw://85d5ad2dd23ee127f40907a12865a1e8cb5828814f6f2480285e1827dd72dedf","dweb:/ipfs/QmayKQWJgWmr46DqWseADyUanmqxh662hPNdAkdHRjiQQH"],"license":null},"lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol":{"keccak256":"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1","urls":["bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5","dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol":{"keccak256":"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69","urls":["bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652","dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol":{"keccak256":"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634","urls":["bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5","dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol":{"keccak256":"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5","urls":["bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7","dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol":{"keccak256":"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd","urls":["bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03","dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol":{"keccak256":"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7","urls":["bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047","dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol":{"keccak256":"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235","urls":["bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735","dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol":{"keccak256":"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f","urls":["bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f","dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg"],"license":"GPL-2.0-or-later"},"lib/v3-core/contracts/libraries/SafeCast.sol":{"keccak256":"0x4c12bf820c0b011f5490a209960ca34dd8af34660ef9e01de0438393d15e3fd8","urls":["bzz-raw://fed11489e218e55d087d42b4f350a30e10cd2aedec8f432bd3cc712f648d5869","dweb:/ipfs/QmWfRnRxyXwHUDcTQPazxYYk5jxErGeQqdvnYtyg5nBPbU"],"license":"GPL-2.0-or-later"},"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":"0x4c9571aed0c2b6ef11832545554fc11ffdb03746daaf5c73683c00600bfc7ec0","urls":["bzz-raw://e78b34b58ce9de91b91943b4f3cc3ce121d0b151e123e8a600ac5ef64d91db6c","dweb:/ipfs/QmRkaQnPCYwLrXgbpGujJTx32PaZK63KSPJJV1XmnQuCMb"],"license":"MIT"},"lib/v4-core/src/interfaces/IPoolManager.sol":{"keccak256":"0x3534f00531038e77ab8a7fc4d0a6e0993ee53fb7a396b1324ad917318ea46cea","urls":["bzz-raw://0a4a7e771828dc40848485b568a1cf514f553ace6653f4f4d1ad3f3e9cdb6c27","dweb:/ipfs/QmTjzQ7KVYnrEWtxPER2E4MXzycgcznfzSDsZtd5turk5V"],"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/CurrencyReserves.sol":{"keccak256":"0x1576616129933fcdf3b684cea33cffd9c95e18fafbd2832a8c48ac3d8526d4c3","urls":["bzz-raw://33b050efb9b81803b18f562271e7cca2ec5362c4d505860d6419b4a345636725","dweb:/ipfs/QmQtFtTwKZ5pFVGD2ENDUXvp7ECFvzqeCuJ1miJcUHdmiX"],"license":"BUSL-1.1"},"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/Lock.sol":{"keccak256":"0x9338be4b5695f1da5f3d3f7a3eeaf7a356c1045458289586ac0cbe9cef77c6d5","urls":["bzz-raw://485ec42ed6155469d612a9a0c18068ebfbad74448792a338a435503de3ef1b2c","dweb:/ipfs/QmVnnv5u74MYatfRmBgrcfFYQcsMAJMG9jQ6ju8UiydKNF"],"license":"BUSL-1.1"},"lib/v4-core/src/libraries/NonzeroDeltaCount.sol":{"keccak256":"0x0666ebd5d3528d7d52c48538296367a4cff97a578cf13365c51983fae3219b87","urls":["bzz-raw://d27f1be3bd09d85c53d3e6a539dd6529ddd8b2b764ccb47fd7765fc81f9add59","dweb:/ipfs/QmQdZujNXhKEXQBkKtF5jbdvo1yXMqPDUoBBaF9S5u3Kpm"],"license":"BUSL-1.1"},"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/libraries/TransientStateLibrary.sol":{"keccak256":"0x7d1e0875747bd89b32c25f1a48da2766e5f4aff1f671ad5f3c0c07ebbbcb946a","urls":["bzz-raw://d76cfeb1cb60595b41ecc51c8a12fb4bf63a7fc733d0b1a2e3adb55abeb1f9d5","dweb:/ipfs/Qmb8oX7DtsRpw3tTtdWZwGhauj1evq43d3PLwe4nSDAKkV"],"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-periphery/src/V4Router.sol":{"keccak256":"0x8ede1e538ae9b74984c52347a3bbaee7b3d69f00ed9b3a6db1f1bd6e058a2326","urls":["bzz-raw://8e370416fa9681ad124414e2b2fb57a5455e15dd873c9e61c964177ae5c2d544","dweb:/ipfs/QmWrM97ezNB9CpawqhkwpubXHcXUbMFWKYEbD3D6EyAe1w"],"license":"MIT"},"lib/v4-periphery/src/base/BaseActionsRouter.sol":{"keccak256":"0xca1ee500f88951ad351d18ba2adfb5fe23abef6d502f234ce5748a3497674a4c","urls":["bzz-raw://1f03ab458be27c29cef1b7ace5b11517d3fef8bf6131af7dd80d6297c224cf71","dweb:/ipfs/QmYoH6o8yeRzbeLoaMG9TjS8q2Fw7T1h4vXvvMnp3XfsUa"],"license":"MIT"},"lib/v4-periphery/src/base/DeltaResolver.sol":{"keccak256":"0x94a2da2be5c924df65a8e1e29f585bbe4c37777fedd43b45989c66d509a4a83c","urls":["bzz-raw://42bba590f6e817fd56328b74ae99bfdc4df57386d0a69ee22b9108341953ed36","dweb:/ipfs/QmdusastK7FWYouLz9gvV5J3z8MQbNKLJNNHTrc1vi7DWw"],"license":"MIT"},"lib/v4-periphery/src/base/ImmutableState.sol":{"keccak256":"0x1867c9fa2f9b4fa73bab0fcdc9d19ccef4eeac552273d8b84a170cd1cc90350a","urls":["bzz-raw://af2d699b439e13b599632fddfe82718aebd41055fba7c075f186675c588d1337","dweb:/ipfs/Qmc111gckSKb9aESn3wRFLeLiS4KGujaUcaYJgRnCRfwQU"],"license":"MIT"},"lib/v4-periphery/src/base/SafeCallback.sol":{"keccak256":"0xd78b583df1b9ee06d58e83b84fc9f08971389b34dd34bc13db072e0c13c710da","urls":["bzz-raw://c0a47f4bcd6060c4462153b9a7c52a60a460ace91acb6ddd5492eab28ec26173","dweb:/ipfs/QmdRCTRS1dhFjWEy6z577j4xz9J5HPfHBwcNzAic8G59oT"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IEIP712_v4.sol":{"keccak256":"0xd7f7115476e307a0bfc32a0f0a0f5434e9e5ca62a6c5af1e18b75e48161bb408","urls":["bzz-raw://b1600b953556da38a7adc5ad2a2925ec5fb138fecf8eec48743646543195b736","dweb:/ipfs/QmarZi2aiLVAfHXgnDWV1cCFiZk2DdPW7KJnWHqzuRChJR"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IERC721Permit_v4.sol":{"keccak256":"0x103adbba724ef536abc536fe8a4d7dc12880724c562109b69f2adce4a91fa017","urls":["bzz-raw://06f51b5a5a218e0bc866a83e7821be53c9db9de0ca921f16abd3d13ea0eab69d","dweb:/ipfs/QmbnhLy992hpQZyphTkj7fpr6jKKVva2AzfmLiDZEuqHAk"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IImmutableState.sol":{"keccak256":"0x36ab3100e87457ecf04887f4f540e34fd7f21d8e3b83880cb679239e60b7b06b","urls":["bzz-raw://7f290c7ce8e4832608d637a51b13dff95abecf6549485448e647a11c8ed01341","dweb:/ipfs/QmfD1R6mTp8j4EjQXmQZW3vCh11EYFjnvoaw8rXRP27mMq"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IMulticall_v4.sol":{"keccak256":"0x336bec303f7ff86497d2679464c5adad5040f412b3d0769ce5e1d2a42f7e2c08","urls":["bzz-raw://7734f047d98d331c8abc51ad9f358ceee0a6dcae8d89ac49084b84de0d2d42e7","dweb:/ipfs/QmWij2h7mU36LsXhb9P6pkYXrSCua4ixeWaVFSrsEcEmPQ"],"license":"MIT"},"lib/v4-periphery/src/interfaces/INotifier.sol":{"keccak256":"0xfdc5187a98240a1691aae98b7dd2444d4c2bfb4746f3c34de9f3d18399c17c5e","urls":["bzz-raw://683af56401ec4f8817e8dfe150e7b3febaf0baaf40efe8d0d0475f735275f746","dweb:/ipfs/QmRQ6S3nFnSc2jjDcQTvUJdTf4xKPojmvCkpvgyr6qTuVV"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IPermit2Forwarder.sol":{"keccak256":"0xfad472937280e861125ff12aa6f9c2cf7440fbb20a2cc29485c24662ad4279c5","urls":["bzz-raw://31bfbc331f5972fc373d9469fd1ca1d14818db3275f21b7b590f20820cb4439d","dweb:/ipfs/QmX3Bv9wfYpAFZKBcxKsQSXUrSC8mqNBdzh6XVMS72aNx9"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IPoolInitializer_v4.sol":{"keccak256":"0x2e4feda94650a2642039e0309ffdec480ee050bc40864bf5e1dba42bb4dc9e98","urls":["bzz-raw://964c178b4da8bab9ef898b94bb26d7c17cc44c5cf20485f55dcf5e9c7e1b1d92","dweb:/ipfs/QmVd2c3SYteyr5xZgUS4sDAiZF43dLwVAEKdCfvQbkZpRJ"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IPositionManager.sol":{"keccak256":"0x62dfa0cbee8314ee7e6787db8bc1d364245c340f940875ac7ff11e89d074fc7e","urls":["bzz-raw://26f560c77d8a187bf93a710b827e3167eab3446922192fa8f92f208da2103834","dweb:/ipfs/Qmbzp5gSYdTpMBF9aAb2GraxMEQZb5LRJCyg8VaRUyjTFc"],"license":"MIT"},"lib/v4-periphery/src/interfaces/ISubscriber.sol":{"keccak256":"0x34ceadec4a63019680e543fe73197f198a55c825d86e18f327840354760b57e7","urls":["bzz-raw://31734feafe1fe162a0702ddf862fcc3bd97505931afb3c685033c0185d898051","dweb:/ipfs/QmQEANYVyaXTNzXKcjUVfPhLU71Bix5vxQH75BpPWMkWgw"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IUnorderedNonce.sol":{"keccak256":"0xd7f32fee74dc7d1a3b078ca1263961baccaa6bf434c79e8fe0e092e30c3e0ec3","urls":["bzz-raw://e7d1e92d89d5f49c84aa82f3b259678c2c97a4473b22d753ca4411a6b0cec36d","dweb:/ipfs/QmNZoQyminStaAdaLqoDLoWaBU5QWrWjXFjmBm4aFhzL8i"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IV4Router.sol":{"keccak256":"0xc4133fae25e61cc2447d7331729f6035322d7c1fe26b39b225422bf98cc63459","urls":["bzz-raw://3c24ff8428504e973e947a059f96289a66c520cd7f8ef47a3224f9cb6abdaf25","dweb:/ipfs/QmVqxYnngWXXcCiuTC143vTEJrjZK5NXWB92pjvVbuJBQ5"],"license":"MIT"},"lib/v4-periphery/src/interfaces/external/IWETH9.sol":{"keccak256":"0xe88abf12501ac275619aec0687240a07d26968aecbbcdfea88ba8bbd5d6e5e14","urls":["bzz-raw://7097065d4492b4eccb1a73f99af1e5bec45404c6b973b8f5965c4c91403f5f92","dweb:/ipfs/QmZK8oEqmjmTqhBoh3D3fBpyKGkUEFnptY8xwH9xpNjDm2"],"license":"MIT"},"lib/v4-periphery/src/libraries/ActionConstants.sol":{"keccak256":"0x3d6f0e5b4a7b1e60bad93e73dce5db67fb66bebef11c31ed8355014a79aa03b3","urls":["bzz-raw://6dfa42e24b1b5c7f66e75304ab034fbb6768518eb2410ccfff8b3defdd1658f2","dweb:/ipfs/QmQQ7fud9mmv7PEWPAQiNzeZhNkWf28Z6nCHc2e6WJFfa7"],"license":"MIT"},"lib/v4-periphery/src/libraries/Actions.sol":{"keccak256":"0x8efd4b8b289177ee27e557d9d0a5a9f973d66fe1eb1ef8959d316b11987ca830","urls":["bzz-raw://07fe35f194eb99465028f0546359befea574d844da53767d32f22b233c3bcc98","dweb:/ipfs/Qmc19631uFxABTHAbGrDrroexi9GdyxWntaum1v8npPYz5"],"license":"MIT"},"lib/v4-periphery/src/libraries/BipsLibrary.sol":{"keccak256":"0x37ebf99f5d086d9d9f6e7cecbf4d62167f47c63c30248cfcb921e828f0d7a359","urls":["bzz-raw://c4f8e68a66bb6c166d72cdba6ed6fb83a93f713b79c2c572e8058084eb90ab6c","dweb:/ipfs/QmY32FxtSBRf9PJzNUVzXqFY4i2ApTPHTUMpCBGovd2zo3"],"license":"MIT"},"lib/v4-periphery/src/libraries/CalldataDecoder.sol":{"keccak256":"0x26df49e13fb5410fd4db253cca877dfdfb3a1ba03e394d054c0e0514a88a56e5","urls":["bzz-raw://72a0c98c52171708f332f83d517deeb97fdd50ecf28f2510e1866e54593a6ff8","dweb:/ipfs/QmY4LiDUfSKGj86nML7B6a8euiPciUqwYehasAyAVnMCHq"],"license":"MIT"},"lib/v4-periphery/src/libraries/PathKey.sol":{"keccak256":"0xbbd79ffefe045f025263e389539021266fb4d371463aefba405e1ff1d3fcf9bc","urls":["bzz-raw://2d1c47b81a01218be46ee79f0a8837095479b94dc5cfd18abbf2006709f0ea89","dweb:/ipfs/QmRb6CQ13Zp7f3WF5jbZtsF2szhxpPgcuWs9mjwQXxzqtg"],"license":"MIT"},"lib/v4-periphery/src/libraries/PositionInfoLibrary.sol":{"keccak256":"0xc5ddf96bd088bc87ea50a20f907fc932fb28397a42682a301b268a11b7f34078","urls":["bzz-raw://7dfeb4dc747537240f8167243e8066b6f5f08057386fb8bda93f82973fc18ad6","dweb:/ipfs/Qmby9DAAaHj8hjsMUnqY3vjqCHKGAKrT5EULMmeGcjbbGx"],"license":"MIT"}},"version":1},"id":14} \ No newline at end of file diff --git a/out/build-info/6c6cc69ac3acdbb7e76597baa51096f4.json b/out/build-info/6c6cc69ac3acdbb7e76597baa51096f4.json new file mode 100644 index 0000000..3cb5cc5 --- /dev/null +++ b/out/build-info/6c6cc69ac3acdbb7e76597baa51096f4.json @@ -0,0 +1 @@ +{"id":"6c6cc69ac3acdbb7e76597baa51096f4","source_id_to_path":{"0":"contracts/ConfidentialIndexFund.sol","1":"contracts/ERC20Encryption/ConfidentialERC20Base.sol","2":"contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol","3":"contracts/ERC20Encryption/ConfidentialERC20WithErrorsWrapped.sol","4":"contracts/ERC20Encryption/CustomConfidentialERC20WithErrors.sol","5":"contracts/ERC20Encryption/CustomConfidentialERC20Wrapped.sol","6":"contracts/IndexFundFactory.sol","7":"contracts/IndexFundToken.sol","8":"contracts/interfaces/IIndexFund.sol","9":"contracts/interfaces/IIndexFundFactory.sol","10":"contracts/interfaces/IMarketDataFetcher.sol","11":"contracts/interfaces/ISwapsManager.sol","12":"contracts/lib/IndexFundStateManagement.sol","13":"contracts/marketData/MarketDataFetcher.sol","14":"contracts/swaps/SwapsManager.sol","15":"contracts/test/testERC20.sol","16":"lib/chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol","17":"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol","18":"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20Wrapped.sol","19":"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol","20":"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20Wrapped.sol","21":"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol","22":"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol","23":"lib/httpz-contracts/contracts/utils/EncryptedErrors.sol","24":"lib/httpz-contracts/contracts/utils/TFHEErrors.sol","25":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","26":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","27":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol","28":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol","29":"lib/openzeppelin-contracts/contracts/access/AccessControl.sol","30":"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol","31":"lib/openzeppelin-contracts/contracts/access/Ownable.sol","32":"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol","33":"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","34":"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","35":"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol","36":"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","37":"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol","38":"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","39":"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol","40":"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol","41":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","42":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","43":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","44":"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","45":"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","46":"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol","47":"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol","48":"lib/openzeppelin-contracts/contracts/utils/Address.sol","49":"lib/openzeppelin-contracts/contracts/utils/Context.sol","50":"lib/openzeppelin-contracts/contracts/utils/Errors.sol","51":"lib/openzeppelin-contracts/contracts/utils/Panic.sol","52":"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol","53":"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol","54":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","55":"lib/openzeppelin-contracts/contracts/utils/Strings.sol","56":"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol","57":"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol","58":"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","59":"lib/openzeppelin-contracts/contracts/utils/math/Math.sol","60":"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol","61":"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol","62":"lib/permit2/lib/solmate/src/tokens/ERC20.sol","63":"lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol","64":"lib/permit2/src/interfaces/IAllowanceTransfer.sol","65":"lib/permit2/src/interfaces/IEIP712.sol","66":"lib/permit2/src/interfaces/IPermit2.sol","67":"lib/permit2/src/interfaces/ISignatureTransfer.sol","68":"lib/permit2/src/libraries/SafeCast160.sol","69":"lib/universal-router.git/contracts/UniversalRouter.sol","70":"lib/universal-router.git/contracts/base/Dispatcher.sol","71":"lib/universal-router.git/contracts/base/Lock.sol","72":"lib/universal-router.git/contracts/interfaces/IUniversalRouter.sol","73":"lib/universal-router.git/contracts/libraries/Commands.sol","74":"lib/universal-router.git/contracts/libraries/Constants.sol","75":"lib/universal-router.git/contracts/libraries/Locker.sol","76":"lib/universal-router.git/contracts/libraries/MaxInputAmount.sol","77":"lib/universal-router.git/contracts/modules/MigratorImmutables.sol","78":"lib/universal-router.git/contracts/modules/Payments.sol","79":"lib/universal-router.git/contracts/modules/PaymentsImmutables.sol","80":"lib/universal-router.git/contracts/modules/Permit2Payments.sol","81":"lib/universal-router.git/contracts/modules/V3ToV4Migrator.sol","82":"lib/universal-router.git/contracts/modules/uniswap/UniswapImmutables.sol","83":"lib/universal-router.git/contracts/modules/uniswap/v2/UniswapV2Library.sol","84":"lib/universal-router.git/contracts/modules/uniswap/v2/V2SwapRouter.sol","85":"lib/universal-router.git/contracts/modules/uniswap/v3/BytesLib.sol","86":"lib/universal-router.git/contracts/modules/uniswap/v3/V3Path.sol","87":"lib/universal-router.git/contracts/modules/uniswap/v3/V3SwapRouter.sol","88":"lib/universal-router.git/contracts/modules/uniswap/v4/V4SwapRouter.sol","89":"lib/universal-router.git/contracts/types/RouterParameters.sol","90":"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IERC721Permit.sol","91":"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol","92":"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol","93":"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryPayments.sol","94":"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPoolInitializer.sol","95":"lib/universal-router.git/lib/v3-periphery/contracts/libraries/PoolAddress.sol","96":"lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol","97":"lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol","98":"lib/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol","99":"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol","100":"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol","101":"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol","102":"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol","103":"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol","104":"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol","105":"lib/v3-core/contracts/libraries/SafeCast.sol","106":"lib/v4-core/src/interfaces/IExtsload.sol","107":"lib/v4-core/src/interfaces/IExttload.sol","108":"lib/v4-core/src/interfaces/IHooks.sol","109":"lib/v4-core/src/interfaces/IPoolManager.sol","110":"lib/v4-core/src/interfaces/IProtocolFees.sol","111":"lib/v4-core/src/interfaces/callback/IUnlockCallback.sol","112":"lib/v4-core/src/interfaces/external/IERC20Minimal.sol","113":"lib/v4-core/src/interfaces/external/IERC6909Claims.sol","114":"lib/v4-core/src/libraries/BitMath.sol","115":"lib/v4-core/src/libraries/CurrencyReserves.sol","116":"lib/v4-core/src/libraries/CustomRevert.sol","117":"lib/v4-core/src/libraries/FixedPoint128.sol","118":"lib/v4-core/src/libraries/FullMath.sol","119":"lib/v4-core/src/libraries/LiquidityMath.sol","120":"lib/v4-core/src/libraries/Lock.sol","121":"lib/v4-core/src/libraries/NonzeroDeltaCount.sol","122":"lib/v4-core/src/libraries/Position.sol","123":"lib/v4-core/src/libraries/SafeCast.sol","124":"lib/v4-core/src/libraries/StateLibrary.sol","125":"lib/v4-core/src/libraries/TickMath.sol","126":"lib/v4-core/src/libraries/TransientStateLibrary.sol","127":"lib/v4-core/src/types/BalanceDelta.sol","128":"lib/v4-core/src/types/BeforeSwapDelta.sol","129":"lib/v4-core/src/types/Currency.sol","130":"lib/v4-core/src/types/PoolId.sol","131":"lib/v4-core/src/types/PoolKey.sol","132":"lib/v4-periphery/src/V4Router.sol","133":"lib/v4-periphery/src/base/BaseActionsRouter.sol","134":"lib/v4-periphery/src/base/DeltaResolver.sol","135":"lib/v4-periphery/src/base/ImmutableState.sol","136":"lib/v4-periphery/src/base/SafeCallback.sol","137":"lib/v4-periphery/src/interfaces/IEIP712_v4.sol","138":"lib/v4-periphery/src/interfaces/IERC721Permit_v4.sol","139":"lib/v4-periphery/src/interfaces/IImmutableState.sol","140":"lib/v4-periphery/src/interfaces/IMulticall_v4.sol","141":"lib/v4-periphery/src/interfaces/INotifier.sol","142":"lib/v4-periphery/src/interfaces/IPermit2Forwarder.sol","143":"lib/v4-periphery/src/interfaces/IPoolInitializer_v4.sol","144":"lib/v4-periphery/src/interfaces/IPositionManager.sol","145":"lib/v4-periphery/src/interfaces/ISubscriber.sol","146":"lib/v4-periphery/src/interfaces/IUnorderedNonce.sol","147":"lib/v4-periphery/src/interfaces/IV4Router.sol","148":"lib/v4-periphery/src/interfaces/external/IWETH9.sol","149":"lib/v4-periphery/src/libraries/ActionConstants.sol","150":"lib/v4-periphery/src/libraries/Actions.sol","151":"lib/v4-periphery/src/libraries/BipsLibrary.sol","152":"lib/v4-periphery/src/libraries/CalldataDecoder.sol","153":"lib/v4-periphery/src/libraries/PathKey.sol","154":"lib/v4-periphery/src/libraries/PositionInfoLibrary.sol","155":"node_modules/fhevm/config/ZamaFHEVMConfig.sol","156":"node_modules/fhevm/config/ZamaGatewayConfig.sol","157":"node_modules/fhevm/gateway/GatewayCaller.sol","158":"node_modules/fhevm/gateway/lib/Gateway.sol","159":"node_modules/fhevm/lib/Impl.sol","160":"node_modules/fhevm/lib/TFHE.sol"},"language":"Solidity"} \ No newline at end of file diff --git a/out/build-info/c9c371a10fdf476c3d80cbfb9ab3fb34.json b/out/build-info/c9c371a10fdf476c3d80cbfb9ab3fb34.json new file mode 100644 index 0000000..c53451a --- /dev/null +++ b/out/build-info/c9c371a10fdf476c3d80cbfb9ab3fb34.json @@ -0,0 +1 @@ +{"id":"c9c371a10fdf476c3d80cbfb9ab3fb34","source_id_to_path":{"0":"contracts/ConfidentialIndexFund.sol","1":"contracts/ERC20Encryption/ConfidentialERC20Base.sol","2":"contracts/ERC20Encryption/ConfidentialERC20WithErrorsMintableBurnable.sol","3":"contracts/ERC20Encryption/ConfidentialERC20WithErrorsWrapped.sol","4":"contracts/ERC20Encryption/CustomConfidentialERC20WithErrors.sol","5":"contracts/ERC20Encryption/CustomConfidentialERC20WithErrorsMintable.sol","6":"contracts/ERC20Encryption/CustomConfidentialERC20Wrapped.sol","7":"contracts/IndexFundFactory.sol","8":"contracts/IndexFundToken.sol","9":"contracts/interfaces/IIndexFund.sol","10":"contracts/interfaces/IIndexFundFactory.sol","11":"contracts/interfaces/IMarketDataFetcher.sol","12":"contracts/interfaces/ISwapsManager.sol","13":"contracts/lib/IndexFundStateManagement.sol","14":"contracts/marketData/MarketDataFetcher.sol","15":"contracts/mocks/MockMarketDataFetcher.sol","16":"contracts/mocks/MockSwapsManager.sol","17":"contracts/swaps/SwapsManager.sol","18":"contracts/test/testERC20.sol","19":"lib/chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol","20":"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20.sol","21":"lib/httpz-contracts/contracts/token/ERC20/ConfidentialERC20Wrapped.sol","22":"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20.sol","23":"lib/httpz-contracts/contracts/token/ERC20/IConfidentialERC20Wrapped.sol","24":"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrors.sol","25":"lib/httpz-contracts/contracts/token/ERC20/extensions/ConfidentialERC20WithErrorsMintable.sol","26":"lib/httpz-contracts/contracts/utils/EncryptedErrors.sol","27":"lib/httpz-contracts/contracts/utils/TFHEErrors.sol","28":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","29":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","30":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol","31":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol","32":"lib/openzeppelin-contracts/contracts/access/AccessControl.sol","33":"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol","34":"lib/openzeppelin-contracts/contracts/access/Ownable.sol","35":"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol","36":"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","37":"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","38":"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol","39":"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","40":"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol","41":"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","42":"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol","43":"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol","44":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","45":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","46":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","47":"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","48":"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","49":"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol","50":"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol","51":"lib/openzeppelin-contracts/contracts/utils/Address.sol","52":"lib/openzeppelin-contracts/contracts/utils/Context.sol","53":"lib/openzeppelin-contracts/contracts/utils/Errors.sol","54":"lib/openzeppelin-contracts/contracts/utils/Panic.sol","55":"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol","56":"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sol","57":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","58":"lib/openzeppelin-contracts/contracts/utils/Strings.sol","59":"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol","60":"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol","61":"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","62":"lib/openzeppelin-contracts/contracts/utils/math/Math.sol","63":"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol","64":"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol","65":"lib/permit2/lib/solmate/src/tokens/ERC20.sol","66":"lib/permit2/lib/solmate/src/utils/SafeTransferLib.sol","67":"lib/permit2/src/interfaces/IAllowanceTransfer.sol","68":"lib/permit2/src/interfaces/IEIP712.sol","69":"lib/permit2/src/interfaces/IPermit2.sol","70":"lib/permit2/src/interfaces/ISignatureTransfer.sol","71":"lib/permit2/src/libraries/SafeCast160.sol","72":"lib/universal-router.git/contracts/UniversalRouter.sol","73":"lib/universal-router.git/contracts/base/Dispatcher.sol","74":"lib/universal-router.git/contracts/base/Lock.sol","75":"lib/universal-router.git/contracts/interfaces/IUniversalRouter.sol","76":"lib/universal-router.git/contracts/libraries/Commands.sol","77":"lib/universal-router.git/contracts/libraries/Constants.sol","78":"lib/universal-router.git/contracts/libraries/Locker.sol","79":"lib/universal-router.git/contracts/libraries/MaxInputAmount.sol","80":"lib/universal-router.git/contracts/modules/MigratorImmutables.sol","81":"lib/universal-router.git/contracts/modules/Payments.sol","82":"lib/universal-router.git/contracts/modules/PaymentsImmutables.sol","83":"lib/universal-router.git/contracts/modules/Permit2Payments.sol","84":"lib/universal-router.git/contracts/modules/V3ToV4Migrator.sol","85":"lib/universal-router.git/contracts/modules/uniswap/UniswapImmutables.sol","86":"lib/universal-router.git/contracts/modules/uniswap/v2/UniswapV2Library.sol","87":"lib/universal-router.git/contracts/modules/uniswap/v2/V2SwapRouter.sol","88":"lib/universal-router.git/contracts/modules/uniswap/v3/BytesLib.sol","89":"lib/universal-router.git/contracts/modules/uniswap/v3/V3Path.sol","90":"lib/universal-router.git/contracts/modules/uniswap/v3/V3SwapRouter.sol","91":"lib/universal-router.git/contracts/modules/uniswap/v4/V4SwapRouter.sol","92":"lib/universal-router.git/contracts/types/RouterParameters.sol","93":"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IERC721Permit.sol","94":"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol","95":"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol","96":"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPeripheryPayments.sol","97":"lib/universal-router.git/lib/v3-periphery/contracts/interfaces/IPoolInitializer.sol","98":"lib/universal-router.git/lib/v3-periphery/contracts/libraries/PoolAddress.sol","99":"lib/v2-core/contracts/interfaces/IUniswapV2Pair.sol","100":"lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol","101":"lib/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol","102":"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol","103":"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol","104":"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol","105":"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol","106":"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol","107":"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol","108":"lib/v3-core/contracts/libraries/SafeCast.sol","109":"lib/v4-core/src/interfaces/IExtsload.sol","110":"lib/v4-core/src/interfaces/IExttload.sol","111":"lib/v4-core/src/interfaces/IHooks.sol","112":"lib/v4-core/src/interfaces/IPoolManager.sol","113":"lib/v4-core/src/interfaces/IProtocolFees.sol","114":"lib/v4-core/src/interfaces/callback/IUnlockCallback.sol","115":"lib/v4-core/src/interfaces/external/IERC20Minimal.sol","116":"lib/v4-core/src/interfaces/external/IERC6909Claims.sol","117":"lib/v4-core/src/libraries/BitMath.sol","118":"lib/v4-core/src/libraries/CurrencyReserves.sol","119":"lib/v4-core/src/libraries/CustomRevert.sol","120":"lib/v4-core/src/libraries/FixedPoint128.sol","121":"lib/v4-core/src/libraries/FullMath.sol","122":"lib/v4-core/src/libraries/LiquidityMath.sol","123":"lib/v4-core/src/libraries/Lock.sol","124":"lib/v4-core/src/libraries/NonzeroDeltaCount.sol","125":"lib/v4-core/src/libraries/Position.sol","126":"lib/v4-core/src/libraries/SafeCast.sol","127":"lib/v4-core/src/libraries/StateLibrary.sol","128":"lib/v4-core/src/libraries/TickMath.sol","129":"lib/v4-core/src/libraries/TransientStateLibrary.sol","130":"lib/v4-core/src/types/BalanceDelta.sol","131":"lib/v4-core/src/types/BeforeSwapDelta.sol","132":"lib/v4-core/src/types/Currency.sol","133":"lib/v4-core/src/types/PoolId.sol","134":"lib/v4-core/src/types/PoolKey.sol","135":"lib/v4-periphery/src/V4Router.sol","136":"lib/v4-periphery/src/base/BaseActionsRouter.sol","137":"lib/v4-periphery/src/base/DeltaResolver.sol","138":"lib/v4-periphery/src/base/ImmutableState.sol","139":"lib/v4-periphery/src/base/SafeCallback.sol","140":"lib/v4-periphery/src/interfaces/IEIP712_v4.sol","141":"lib/v4-periphery/src/interfaces/IERC721Permit_v4.sol","142":"lib/v4-periphery/src/interfaces/IImmutableState.sol","143":"lib/v4-periphery/src/interfaces/IMulticall_v4.sol","144":"lib/v4-periphery/src/interfaces/INotifier.sol","145":"lib/v4-periphery/src/interfaces/IPermit2Forwarder.sol","146":"lib/v4-periphery/src/interfaces/IPoolInitializer_v4.sol","147":"lib/v4-periphery/src/interfaces/IPositionManager.sol","148":"lib/v4-periphery/src/interfaces/ISubscriber.sol","149":"lib/v4-periphery/src/interfaces/IUnorderedNonce.sol","150":"lib/v4-periphery/src/interfaces/IV4Router.sol","151":"lib/v4-periphery/src/interfaces/external/IWETH9.sol","152":"lib/v4-periphery/src/libraries/ActionConstants.sol","153":"lib/v4-periphery/src/libraries/Actions.sol","154":"lib/v4-periphery/src/libraries/BipsLibrary.sol","155":"lib/v4-periphery/src/libraries/CalldataDecoder.sol","156":"lib/v4-periphery/src/libraries/PathKey.sol","157":"lib/v4-periphery/src/libraries/PositionInfoLibrary.sol","158":"node_modules/fhevm/config/ZamaFHEVMConfig.sol","159":"node_modules/fhevm/config/ZamaGatewayConfig.sol","160":"node_modules/fhevm/gateway/GatewayCaller.sol","161":"node_modules/fhevm/gateway/lib/Gateway.sol","162":"node_modules/fhevm/lib/Impl.sol","163":"node_modules/fhevm/lib/TFHE.sol"},"language":"Solidity"} \ No newline at end of file diff --git a/out/testERC20.sol/TestErc20.json b/out/testERC20.sol/TestErc20.json index 097423b..c93837e 100644 --- a/out/testERC20.sol/TestErc20.json +++ b/out/testERC20.sol/TestErc20.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60806040523461036d57610be48038038061001981610371565b92833981019060408183031261036d5780516001600160401b03811161036d5782610045918301610396565b60208201519092906001600160401b03811161036d576100659201610396565b81516001600160401b03811161028057600354600181811c91168015610363575b602082101461026257601f8111610300575b50602092601f821160011461029f57928192935f92610294575b50508160011b915f199060031b1c1916176003555b80516001600160401b03811161028057600454600181811c91168015610276575b602082101461026257601f81116101ff575b50602091601f821160011461019f579181925f92610194575b50508160011b915f199060031b1c1916176004555b33156101815760058054336001600160a01b03198216811790925560405191906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a36107fc90816103e88239f35b631e4fbdf760e01b5f525f60045260245ffd5b015190505f80610113565b601f1982169260045f52805f20915f5b8581106101e7575083600195106101cf575b505050811b01600455610128565b01515f1960f88460031b161c191690555f80806101c1565b919260206001819286850151815501940192016101af565b60045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c81019160208410610258575b601f0160051c01905b81811061024d57506100fa565b5f8155600101610240565b9091508190610237565b634e487b7160e01b5f52602260045260245ffd5b90607f16906100e8565b634e487b7160e01b5f52604160045260245ffd5b015190505f806100b2565b601f1982169360035f52805f20915f5b8681106102e857508360019596106102d0575b505050811b016003556100c7565b01515f1960f88460031b161c191690555f80806102c2565b919260206001819286850151815501940192016102af565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c81019160208410610359575b601f0160051c01905b81811061034e5750610098565b5f8155600101610341565b9091508190610338565b90607f1690610086565b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761028057604052565b81601f8201121561036d578051906001600160401b038211610280576103c5601f8301601f1916602001610371565b928284526020838301011161036d57815f9260208093018386015e830101529056fe6080806040526004361015610012575f80fd5b5f3560e01c90816306fdde03146105d057508063095ea7b31461054e57806318160ddd1461053157806323b872dd14610452578063313ce5671461043757806340c10f191461038b57806370a0823114610354578063715018a6146102f95780638da5cb5b146102d157806395d89b41146101b6578063a9059cbb14610185578063dd62ed3e146101355763f2fde38b146100ab575f80fd5b34610131576020366003190112610131576100c46106c9565b6100cc61079f565b6001600160a01b0316801561011e57600580546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b346101315760403660031901126101315761014e6106c9565b6101566106df565b6001600160a01b039182165f908152600160209081526040808320949093168252928352819020549051908152f35b34610131576040366003190112610131576101ab6101a16106c9565b60243590336106f5565b602060405160018152f35b34610131575f366003190112610131576040515f6004548060011c906001811680156102c7575b6020831081146102b3578285529081156102975750600114610242575b50819003601f01601f191681019067ffffffffffffffff82118183101761022e5761022a8291826040528261069f565b0390f35b634e487b7160e01b5f52604160045260245ffd5b905060045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5f905b828210610281575060209150820101826101fa565b600181602092548385880101520191019061026c565b90506020925060ff191682840152151560051b820101826101fa565b634e487b7160e01b5f52602260045260245ffd5b91607f16916101dd565b34610131575f366003190112610131576005546040516001600160a01b039091168152602090f35b34610131575f3660031901126101315761031161079f565b600580546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610131576020366003190112610131576001600160a01b036103756106c9565b165f525f602052602060405f2054604051908152f35b34610131576040366003190112610131576103a46106c9565b602435906103b061079f565b6001600160a01b031690811561042457600254908082018092116104105760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef915f9360025584845283825260408420818154019055604051908152a3005b634e487b7160e01b5f52601160045260245ffd5b63ec442f0560e01b5f525f60045260245ffd5b34610131575f36600319011261013157602060405160128152f35b346101315760603660031901126101315761046b6106c9565b6104736106df565b6001600160a01b0382165f818152600160209081526040808320338452909152902054909260443592915f1981106104b1575b506101ab93506106f5565b8381106105165784156105035733156104f0576101ab945f52600160205260405f2060018060a01b0333165f526020528360405f2091039055846104a6565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b8390637dc7a0d960e11b5f523360045260245260445260645ffd5b34610131575f366003190112610131576020600254604051908152f35b34610131576040366003190112610131576105676106c9565b602435903315610503576001600160a01b03169081156104f057335f52600160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b34610131575f366003190112610131575f6003548060011c90600181168015610695575b6020831081146102b35782855290811561029757506001146106405750819003601f01601f191681019067ffffffffffffffff82118183101761022e5761022a8291826040528261069f565b905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5f905b82821061067f575060209150820101826101fa565b600181602092548385880101520191019061066a565b91607f16916105f4565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361013157565b602435906001600160a01b038216820361013157565b6001600160a01b031690811561078c576001600160a01b031691821561042457815f525f60205260405f205481811061077357817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f525f825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b6005546001600160a01b031633036107b357565b63118cdaa760e01b5f523360045260245ffdfea2646970667358221220b0b2d5ba6c3ccdc171f88539e396c1773d138f86b6f131af9e98b105017c688e64736f6c634300081a0033","sourceMap":"196:240:12:-:0;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;196:240:12;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;196:240:12;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;196:240:12;;;;1667:13:38;196:240:12;;;;;;;;;;;-1:-1:-1;196:240:12;;;;;;;;;;;-1:-1:-1;196:240:12;;;;;;;;;;;;;;-1:-1:-1;196:240:12;;;;;;;;;;;;;1667:13:38;196:240:12;;;;;1667:13:38;196:240:12;;;;-1:-1:-1;;;;;196:240:12;;;;1690:17:38;196:240:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;196:240:12;;;;;;;;;;;;;1667:13:38;196:240:12;;;;;1690:17:38;196:240:12;;321:10;1273:26:28;1269:95;;3004:6;196:240:12;;321:10;-1:-1:-1;;;;;;196:240:12;;;;;;;;;;321:10;-1:-1:-1;;;;;196:240:12;3052:40:28;-1:-1:-1;;3052:40:28;196:240:12;;;;;;;1269:95:28;1322:31;;;-1:-1:-1;1322:31:28;-1:-1:-1;1690:17:38;196:240:12;;-1:-1:-1;1322:31:28;196:240:12;;;;-1:-1:-1;196:240:12;;;;;;;;;;1690:17:38;-1:-1:-1;196:240:12;;-1:-1:-1;196:240:12;;-1:-1:-1;196:240:12;;;;;;;;;;;;;;;;;;;;1690:17:38;196:240:12;;;;;;;;;;1667:13:38;196:240:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1690:17:38;-1:-1:-1;196:240:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;196:240:12;;;;;;;;;-1:-1:-1;196:240:12;;;;;;;;-1:-1:-1;196:240:12;;1690:17:38;196:240:12;;-1:-1:-1;196:240:12;;;;;;;;;;;;-1:-1:-1;196:240:12;;1690:17:38;196:240:12;;-1:-1:-1;196:240:12;;;;;-1:-1:-1;196:240:12;;;;;;;;;;1667:13:38;-1:-1:-1;196:240:12;;-1:-1:-1;196:240:12;;-1:-1:-1;196:240:12;;;;;;;;;;;;;;;;;;;;;1667:13:38;196:240:12;;;;;;;;;;1667:13:38;196:240:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1667:13:38;-1:-1:-1;196:240:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;196:240:12;;;;;;;;;-1:-1:-1;196:240:12;;;;;;;;;;;;-1:-1:-1;196:240:12;;;;;;;;;-1:-1:-1;;196:240:12;;;-1:-1:-1;;;;;196:240:12;;;;;;;;;;:::o;:::-;;;;;;;;;;;;-1:-1:-1;;;;;196:240:12;;;;;;;;-1:-1:-1;;196:240:12;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;196:240:12;;;;;;;;;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c90816306fdde03146105d057508063095ea7b31461054e57806318160ddd1461053157806323b872dd14610452578063313ce5671461043757806340c10f191461038b57806370a0823114610354578063715018a6146102f95780638da5cb5b146102d157806395d89b41146101b6578063a9059cbb14610185578063dd62ed3e146101355763f2fde38b146100ab575f80fd5b34610131576020366003190112610131576100c46106c9565b6100cc61079f565b6001600160a01b0316801561011e57600580546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b346101315760403660031901126101315761014e6106c9565b6101566106df565b6001600160a01b039182165f908152600160209081526040808320949093168252928352819020549051908152f35b34610131576040366003190112610131576101ab6101a16106c9565b60243590336106f5565b602060405160018152f35b34610131575f366003190112610131576040515f6004548060011c906001811680156102c7575b6020831081146102b3578285529081156102975750600114610242575b50819003601f01601f191681019067ffffffffffffffff82118183101761022e5761022a8291826040528261069f565b0390f35b634e487b7160e01b5f52604160045260245ffd5b905060045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5f905b828210610281575060209150820101826101fa565b600181602092548385880101520191019061026c565b90506020925060ff191682840152151560051b820101826101fa565b634e487b7160e01b5f52602260045260245ffd5b91607f16916101dd565b34610131575f366003190112610131576005546040516001600160a01b039091168152602090f35b34610131575f3660031901126101315761031161079f565b600580546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610131576020366003190112610131576001600160a01b036103756106c9565b165f525f602052602060405f2054604051908152f35b34610131576040366003190112610131576103a46106c9565b602435906103b061079f565b6001600160a01b031690811561042457600254908082018092116104105760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef915f9360025584845283825260408420818154019055604051908152a3005b634e487b7160e01b5f52601160045260245ffd5b63ec442f0560e01b5f525f60045260245ffd5b34610131575f36600319011261013157602060405160128152f35b346101315760603660031901126101315761046b6106c9565b6104736106df565b6001600160a01b0382165f818152600160209081526040808320338452909152902054909260443592915f1981106104b1575b506101ab93506106f5565b8381106105165784156105035733156104f0576101ab945f52600160205260405f2060018060a01b0333165f526020528360405f2091039055846104a6565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b8390637dc7a0d960e11b5f523360045260245260445260645ffd5b34610131575f366003190112610131576020600254604051908152f35b34610131576040366003190112610131576105676106c9565b602435903315610503576001600160a01b03169081156104f057335f52600160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b34610131575f366003190112610131575f6003548060011c90600181168015610695575b6020831081146102b35782855290811561029757506001146106405750819003601f01601f191681019067ffffffffffffffff82118183101761022e5761022a8291826040528261069f565b905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5f905b82821061067f575060209150820101826101fa565b600181602092548385880101520191019061066a565b91607f16916105f4565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361013157565b602435906001600160a01b038216820361013157565b6001600160a01b031690811561078c576001600160a01b031691821561042457815f525f60205260405f205481811061077357817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f525f825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b6005546001600160a01b031633036107b357565b63118cdaa760e01b5f523360045260245ffdfea2646970667358221220b0b2d5ba6c3ccdc171f88539e396c1773d138f86b6f131af9e98b105017c688e64736f6c634300081a0033","sourceMap":"196:240:12:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;196:240:12;;;;;;:::i;:::-;1500:62:28;;:::i;:::-;-1:-1:-1;;;;;196:240:12;2627:22:28;;2623:91;;3004:6;196:240:12;;-1:-1:-1;;;;;;196:240:12;;;;;;;-1:-1:-1;;;;;196:240:12;3052:40:28;-1:-1:-1;;3052:40:28;196:240:12;2623:91:28;2672:31;;;196:240:12;2672:31:28;196:240:12;;;;;2672:31:28;196:240:12;;;;;;;;;;-1:-1:-1;;196:240:12;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;196:240:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;196:240:12;;;;3459:5:38;196:240:12;;:::i;:::-;;;735:10:46;;3459:5:38;:::i;:::-;196:240:12;;;;;;;;;;;;;-1:-1:-1;;196:240:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;196:240:12;;;;;-1:-1:-1;;196:240:12;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;196:240:12;;;;1710:6:28;196:240:12;;;-1:-1:-1;;;;;196:240:12;;;;;;;;;;;;;;-1:-1:-1;;196:240:12;;;;1500:62:28;;:::i;:::-;3004:6;196:240:12;;-1:-1:-1;;;;;;196:240:12;;;;;;;-1:-1:-1;;;;;196:240:12;3052:40:28;196:240:12;;3052:40:28;196:240:12;;;;;;;-1:-1:-1;;196:240:12;;;;-1:-1:-1;;;;;196:240:12;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;196:240:12;;;;;;:::i;:::-;;;1500:62:28;;;:::i;:::-;-1:-1:-1;;;;;196:240:12;;7528:21:38;;7524:91;;6233:21;196:240:12;;;;;;;;;;;7083:25:38;196:240:12;;;6233:21:38;196:240:12;;;;;;;;;;;;;;;;;;;;;7083:25:38;196:240:12;;;;;;;;;;;;;7524:91:38;7572:32;;;196:240:12;7572:32:38;196:240:12;;;;;7572:32:38;196:240:12;;;;;;-1:-1:-1;;196:240:12;;;;;;;2780:2:38;196:240:12;;;;;;;;;-1:-1:-1;;196:240:12;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;196:240:12;;;;;;;;;;;;;;;735:10:46;196:240:12;;;;;;;;;;;;;;-1:-1:-1;;10580:36:38;;10576:309;;196:240:12;4986:5:38;;;;;:::i;10576:309::-;10636:24;;;10632:130;;9813:19;;9809:89;;735:10:46;9911:21:38;9907:90;;4986:5;196:240:12;;;;;;;;;;;;;;735:10:46;196:240:12;-1:-1:-1;196:240:12;;;;;-1:-1:-1;196:240:12;;;;;10576:309:38;;;9907:90;9955:31;;;196:240:12;9955:31:38;196:240:12;;;;;9955:31:38;9809:89;9855:32;;;196:240:12;9855:32:38;196:240:12;;;;;9855:32:38;10632:130;10687:60;;;;;196:240:12;10687:60:38;735:10:46;196:240:12;;;;;;;;10687:60:38;196:240:12;;;;;;-1:-1:-1;;196:240:12;;;;;2927:12:38;196:240:12;;;;;;;;;;;;;-1:-1:-1;;196:240:12;;;;;;:::i;:::-;;;735:10:46;;9813:19:38;9809:89;;-1:-1:-1;;;;;196:240:12;;9911:21:38;;9907:90;;735:10:46;196:240:12;;;;;;;;;-1:-1:-1;196:240:12;;;;;-1:-1:-1;196:240:12;;;;;;;10085:31:38;196:240:12;735:10:46;10085:31:38;;196:240:12;;;;;;;;;;;;;-1:-1:-1;;196:240:12;;;;;1856:5:38;196:240:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;196:240:12;;;;;-1:-1:-1;;196:240:12;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1856:5:38;196:240:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;196:240:12;;;;:::o;:::-;;;;-1:-1:-1;;;;;196:240:12;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;196:240:12;;;;;;:::o;5393:300:38:-;-1:-1:-1;;;;;196:240:12;;5476:18:38;;5472:86;;-1:-1:-1;;;;;196:240:12;;5571:16:38;;5567:86;;196:240:12;5492:1:38;196:240:12;5492:1:38;196:240:12;;;5492:1:38;196:240:12;;6340:19:38;;;6336:115;;196:240:12;7083:25:38;196:240:12;;;;5492:1:38;196:240:12;5492:1:38;196:240:12;;;;5492:1:38;196:240:12;;;5492:1:38;196:240:12;5492:1:38;196:240:12;;;5492:1:38;196:240:12;;;;;;;;;;;;7083:25:38;5393:300::o;6336:115::-;6386:50;;;;5492:1;6386:50;;196:240:12;;;;;;5492:1:38;6386:50;5472:86;5517:30;;;5492:1;5517:30;5492:1;5517:30;196:240:12;;5492:1:38;5517:30;1796:162:28;1710:6;196:240:12;-1:-1:-1;;;;;196:240:12;735:10:46;1855:23:28;1851:101;;1796:162::o;1851:101::-;1901:40;;;-1:-1:-1;1901:40:28;735:10:46;1901:40:28;196:240:12;;-1:-1:-1;1901:40:28","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","mint(address,uint256)":"40c10f19","name()":"06fdde03","owner()":"8da5cb5b","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/testERC20.sol\":\"TestErc20\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@chainlink/=lib/chainlink/\",\":@ensdomains/=lib/v4-core/node_modules/@ensdomains/\",\":@httpz-contracts/=lib/httpz-contracts/contracts/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/universal-router/=lib/universal-router.git/\",\":@uniswap/v2-core/=lib/v2-core/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/\",\":@uniswap/v4-core/=lib/v4-core/\",\":@uniswap/v4-periphery/=lib/v4-periphery/\",\":chainlink/=lib/chainlink/\",\":ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":fhevm-contracts/=node_modules/fhevm-contracts/\",\":fhevm-core-contracts/=node_modules/fhevm-core-contracts/\",\":fhevm/=node_modules/fhevm/\",\":forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":httpz-contracts/=lib/httpz-contracts/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":permit2/=lib/permit2/\",\":solmate/=lib/permit2/lib/solmate/\",\":universal-router.git/=lib/universal-router.git/\",\":v2-core/=lib/v2-core/contracts/\",\":v3-core/=lib/v3-core/\",\":v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/\",\":v4-core/=lib/v4-core/src/\",\":v4-periphery/=lib/v4-periphery/\"],\"viaIR\":true},\"sources\":{\"contracts/test/testERC20.sol\":{\"keccak256\":\"0xc1cd5f3e5df37ef131532febbc0f2beee17f6e48e17a51e5ea8f80a2ad1af0d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf4ac87fdfe3083c7a104d5c351ea6f33be653aac6ca29a75217160fea6ef7eb\",\"dweb:/ipfs/QmfFHBeNkfw66H6GnaQcubZdBxgKUgvat6iG2o11ni6vow\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x6ef9389a2c07bc40d8a7ba48914724ab2c108fac391ce12314f01321813e6368\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7a5cb39b1e6df68f4dd9a5e76e853d745a74ffb3dfd7df4ae4d2ace6992a171\",\"dweb:/ipfs/QmPbzKR19rdM8X3PLQjsmHRepUKhvoZnedSR63XyGtXZib\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"name()":{"details":"Returns the name of the token."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@chainlink/=lib/chainlink/","@ensdomains/=lib/v4-core/node_modules/@ensdomains/","@httpz-contracts/=lib/httpz-contracts/contracts/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@uniswap/universal-router/=lib/universal-router.git/","@uniswap/v2-core/=lib/v2-core/","@uniswap/v3-core/=lib/v3-core/","@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/","@uniswap/v4-core/=lib/v4-core/","@uniswap/v4-periphery/=lib/v4-periphery/","chainlink/=lib/chainlink/","ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","eth-gas-reporter/=node_modules/eth-gas-reporter/","fhevm-contracts/=node_modules/fhevm-contracts/","fhevm-core-contracts/=node_modules/fhevm-core-contracts/","fhevm/=node_modules/fhevm/","forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","httpz-contracts/=lib/httpz-contracts/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","permit2/=lib/permit2/","solmate/=lib/permit2/lib/solmate/","universal-router.git/=lib/universal-router.git/","v2-core/=lib/v2-core/contracts/","v3-core/=lib/v3-core/","v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/","v4-core/=lib/v4-core/src/","v4-periphery/=lib/v4-periphery/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/test/testERC20.sol":"TestErc20"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/test/testERC20.sol":{"keccak256":"0xc1cd5f3e5df37ef131532febbc0f2beee17f6e48e17a51e5ea8f80a2ad1af0d9","urls":["bzz-raw://cf4ac87fdfe3083c7a104d5c351ea6f33be653aac6ca29a75217160fea6ef7eb","dweb:/ipfs/QmfFHBeNkfw66H6GnaQcubZdBxgKUgvat6iG2o11ni6vow"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x6ef9389a2c07bc40d8a7ba48914724ab2c108fac391ce12314f01321813e6368","urls":["bzz-raw://b7a5cb39b1e6df68f4dd9a5e76e853d745a74ffb3dfd7df4ae4d2ace6992a171","dweb:/ipfs/QmPbzKR19rdM8X3PLQjsmHRepUKhvoZnedSR63XyGtXZib"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330","urls":["bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf","dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":12} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"pure"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60806040523461036d57610be48038038061001981610371565b92833981019060408183031261036d5780516001600160401b03811161036d5782610045918301610396565b60208201519092906001600160401b03811161036d576100659201610396565b81516001600160401b03811161028057600354600181811c91168015610363575b602082101461026257601f8111610300575b50602092601f821160011461029f57928192935f92610294575b50508160011b915f199060031b1c1916176003555b80516001600160401b03811161028057600454600181811c91168015610276575b602082101461026257601f81116101ff575b50602091601f821160011461019f579181925f92610194575b50508160011b915f199060031b1c1916176004555b33156101815760058054336001600160a01b03198216811790925560405191906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a36107fc90816103e88239f35b631e4fbdf760e01b5f525f60045260245ffd5b015190505f80610113565b601f1982169260045f52805f20915f5b8581106101e7575083600195106101cf575b505050811b01600455610128565b01515f1960f88460031b161c191690555f80806101c1565b919260206001819286850151815501940192016101af565b60045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c81019160208410610258575b601f0160051c01905b81811061024d57506100fa565b5f8155600101610240565b9091508190610237565b634e487b7160e01b5f52602260045260245ffd5b90607f16906100e8565b634e487b7160e01b5f52604160045260245ffd5b015190505f806100b2565b601f1982169360035f52805f20915f5b8681106102e857508360019596106102d0575b505050811b016003556100c7565b01515f1960f88460031b161c191690555f80806102c2565b919260206001819286850151815501940192016102af565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c81019160208410610359575b601f0160051c01905b81811061034e5750610098565b5f8155600101610341565b9091508190610338565b90607f1690610086565b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761028057604052565b81601f8201121561036d578051906001600160401b038211610280576103c5601f8301601f1916602001610371565b928284526020838301011161036d57815f9260208093018386015e830101529056fe6080806040526004361015610012575f80fd5b5f3560e01c90816306fdde03146105d057508063095ea7b31461054e57806318160ddd1461053157806323b872dd14610452578063313ce5671461043757806340c10f191461038b57806370a0823114610354578063715018a6146102f95780638da5cb5b146102d157806395d89b41146101b6578063a9059cbb14610185578063dd62ed3e146101355763f2fde38b146100ab575f80fd5b34610131576020366003190112610131576100c46106c9565b6100cc61079f565b6001600160a01b0316801561011e57600580546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b346101315760403660031901126101315761014e6106c9565b6101566106df565b6001600160a01b039182165f908152600160209081526040808320949093168252928352819020549051908152f35b34610131576040366003190112610131576101ab6101a16106c9565b60243590336106f5565b602060405160018152f35b34610131575f366003190112610131576040515f6004548060011c906001811680156102c7575b6020831081146102b3578285529081156102975750600114610242575b50819003601f01601f191681019067ffffffffffffffff82118183101761022e5761022a8291826040528261069f565b0390f35b634e487b7160e01b5f52604160045260245ffd5b905060045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5f905b828210610281575060209150820101826101fa565b600181602092548385880101520191019061026c565b90506020925060ff191682840152151560051b820101826101fa565b634e487b7160e01b5f52602260045260245ffd5b91607f16916101dd565b34610131575f366003190112610131576005546040516001600160a01b039091168152602090f35b34610131575f3660031901126101315761031161079f565b600580546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610131576020366003190112610131576001600160a01b036103756106c9565b165f525f602052602060405f2054604051908152f35b34610131576040366003190112610131576103a46106c9565b602435906103b061079f565b6001600160a01b031690811561042457600254908082018092116104105760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef915f9360025584845283825260408420818154019055604051908152a3005b634e487b7160e01b5f52601160045260245ffd5b63ec442f0560e01b5f525f60045260245ffd5b34610131575f36600319011261013157602060405160068152f35b346101315760603660031901126101315761046b6106c9565b6104736106df565b6001600160a01b0382165f818152600160209081526040808320338452909152902054909260443592915f1981106104b1575b506101ab93506106f5565b8381106105165784156105035733156104f0576101ab945f52600160205260405f2060018060a01b0333165f526020528360405f2091039055846104a6565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b8390637dc7a0d960e11b5f523360045260245260445260645ffd5b34610131575f366003190112610131576020604051620f42408152f35b34610131576040366003190112610131576105676106c9565b602435903315610503576001600160a01b03169081156104f057335f52600160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b34610131575f366003190112610131575f6003548060011c90600181168015610695575b6020831081146102b35782855290811561029757506001146106405750819003601f01601f191681019067ffffffffffffffff82118183101761022e5761022a8291826040528261069f565b905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5f905b82821061067f575060209150820101826101fa565b600181602092548385880101520191019061066a565b91607f16916105f4565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361013157565b602435906001600160a01b038216820361013157565b6001600160a01b031690811561078c576001600160a01b031691821561042457815f525f60205260405f205481811061077357817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f525f825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b6005546001600160a01b031633036107b357565b63118cdaa760e01b5f523360045260245ffdfea26469706673582212206e5501beeb3b06352db7a408e879867be632ff017a8b77c6aeb23f898b16a43864736f6c634300081a0033","sourceMap":"200:423:15:-:0;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;200:423:15;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;200:423:15;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;200:423:15;;;;1667:13:41;200:423:15;;;;;;;;;;;-1:-1:-1;200:423:15;;;;;;;;;;;-1:-1:-1;200:423:15;;;;;;;;;;;;;;-1:-1:-1;200:423:15;;;;;;;;;;;;;1667:13:41;200:423:15;;;;;1667:13:41;200:423:15;;;;-1:-1:-1;;;;;200:423:15;;;;1690:17:41;200:423:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;200:423:15;;;;;;;;;;;;;1667:13:41;200:423:15;;;;;1690:17:41;200:423:15;;325:10;1273:26:31;1269:95;;3004:6;200:423:15;;325:10;-1:-1:-1;;;;;;200:423:15;;;;;;;;;;325:10;-1:-1:-1;;;;;200:423:15;3052:40:31;-1:-1:-1;;3052:40:31;200:423:15;;;;;;;1269:95:31;1322:31;;;-1:-1:-1;1322:31:31;-1:-1:-1;1690:17:41;200:423:15;;-1:-1:-1;1322:31:31;200:423:15;;;;-1:-1:-1;200:423:15;;;;;;;;;;1690:17:41;-1:-1:-1;200:423:15;;-1:-1:-1;200:423:15;;-1:-1:-1;200:423:15;;;;;;;;;;;;;;;;;;;;1690:17:41;200:423:15;;;;;;;;;;1667:13:41;200:423:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1690:17:41;-1:-1:-1;200:423:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;200:423:15;;;;;;;;;-1:-1:-1;200:423:15;;;;;;;;-1:-1:-1;200:423:15;;1690:17:41;200:423:15;;-1:-1:-1;200:423:15;;;;;;;;;;;;-1:-1:-1;200:423:15;;1690:17:41;200:423:15;;-1:-1:-1;200:423:15;;;;;-1:-1:-1;200:423:15;;;;;;;;;;1667:13:41;-1:-1:-1;200:423:15;;-1:-1:-1;200:423:15;;-1:-1:-1;200:423:15;;;;;;;;;;;;;;;;;;;;;1667:13:41;200:423:15;;;;;;;;;;1667:13:41;200:423:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1667:13:41;-1:-1:-1;200:423:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;200:423:15;;;;;;;;;-1:-1:-1;200:423:15;;;;;;;;;;;;-1:-1:-1;200:423:15;;;;;;;;;-1:-1:-1;;200:423:15;;;-1:-1:-1;;;;;200:423:15;;;;;;;;;;:::o;:::-;;;;;;;;;;;;-1:-1:-1;;;;;200:423:15;;;;;;;;-1:-1:-1;;200:423:15;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;200:423:15;;;;;;;;;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c90816306fdde03146105d057508063095ea7b31461054e57806318160ddd1461053157806323b872dd14610452578063313ce5671461043757806340c10f191461038b57806370a0823114610354578063715018a6146102f95780638da5cb5b146102d157806395d89b41146101b6578063a9059cbb14610185578063dd62ed3e146101355763f2fde38b146100ab575f80fd5b34610131576020366003190112610131576100c46106c9565b6100cc61079f565b6001600160a01b0316801561011e57600580546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b346101315760403660031901126101315761014e6106c9565b6101566106df565b6001600160a01b039182165f908152600160209081526040808320949093168252928352819020549051908152f35b34610131576040366003190112610131576101ab6101a16106c9565b60243590336106f5565b602060405160018152f35b34610131575f366003190112610131576040515f6004548060011c906001811680156102c7575b6020831081146102b3578285529081156102975750600114610242575b50819003601f01601f191681019067ffffffffffffffff82118183101761022e5761022a8291826040528261069f565b0390f35b634e487b7160e01b5f52604160045260245ffd5b905060045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5f905b828210610281575060209150820101826101fa565b600181602092548385880101520191019061026c565b90506020925060ff191682840152151560051b820101826101fa565b634e487b7160e01b5f52602260045260245ffd5b91607f16916101dd565b34610131575f366003190112610131576005546040516001600160a01b039091168152602090f35b34610131575f3660031901126101315761031161079f565b600580546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610131576020366003190112610131576001600160a01b036103756106c9565b165f525f602052602060405f2054604051908152f35b34610131576040366003190112610131576103a46106c9565b602435906103b061079f565b6001600160a01b031690811561042457600254908082018092116104105760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef915f9360025584845283825260408420818154019055604051908152a3005b634e487b7160e01b5f52601160045260245ffd5b63ec442f0560e01b5f525f60045260245ffd5b34610131575f36600319011261013157602060405160068152f35b346101315760603660031901126101315761046b6106c9565b6104736106df565b6001600160a01b0382165f818152600160209081526040808320338452909152902054909260443592915f1981106104b1575b506101ab93506106f5565b8381106105165784156105035733156104f0576101ab945f52600160205260405f2060018060a01b0333165f526020528360405f2091039055846104a6565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b8390637dc7a0d960e11b5f523360045260245260445260645ffd5b34610131575f366003190112610131576020604051620f42408152f35b34610131576040366003190112610131576105676106c9565b602435903315610503576001600160a01b03169081156104f057335f52600160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b34610131575f366003190112610131575f6003548060011c90600181168015610695575b6020831081146102b35782855290811561029757506001146106405750819003601f01601f191681019067ffffffffffffffff82118183101761022e5761022a8291826040528261069f565b905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5f905b82821061067f575060209150820101826101fa565b600181602092548385880101520191019061066a565b91607f16916105f4565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361013157565b602435906001600160a01b038216820361013157565b6001600160a01b031690811561078c576001600160a01b031691821561042457815f525f60205260405f205481811061077357817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f525f825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b6005546001600160a01b031633036107b357565b63118cdaa760e01b5f523360045260245ffdfea26469706673582212206e5501beeb3b06352db7a408e879867be632ff017a8b77c6aeb23f898b16a43864736f6c634300081a0033","sourceMap":"200:423:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;200:423:15;;;;;;:::i;:::-;1500:62:31;;:::i;:::-;-1:-1:-1;;;;;200:423:15;2627:22:31;;2623:91;;3004:6;200:423:15;;-1:-1:-1;;;;;;200:423:15;;;;;;;-1:-1:-1;;;;;200:423:15;3052:40:31;-1:-1:-1;;3052:40:31;200:423:15;2623:91:31;2672:31;;;200:423:15;2672:31:31;200:423:15;;;;;2672:31:31;200:423:15;;;;;;;;;;-1:-1:-1;;200:423:15;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;200:423:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;200:423:15;;;;3459:5:41;200:423:15;;:::i;:::-;;;735:10:49;;3459:5:41;:::i;:::-;200:423:15;;;;;;;;;;;;;-1:-1:-1;;200:423:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;200:423:15;;;;;-1:-1:-1;;200:423:15;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;200:423:15;;;;1710:6:31;200:423:15;;;-1:-1:-1;;;;;200:423:15;;;;;;;;;;;;;;-1:-1:-1;;200:423:15;;;;1500:62:31;;:::i;:::-;3004:6;200:423:15;;-1:-1:-1;;;;;;200:423:15;;;;;;;-1:-1:-1;;;;;200:423:15;3052:40:31;200:423:15;;3052:40:31;200:423:15;;;;;;;-1:-1:-1;;200:423:15;;;;-1:-1:-1;;;;;200:423:15;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;200:423:15;;;;;;:::i;:::-;;;1500:62:31;;;:::i;:::-;-1:-1:-1;;;;;200:423:15;;7528:21:41;;7524:91;;6233:21;200:423:15;;;;;;;;;;;7083:25:41;200:423:15;;;6233:21:41;200:423:15;;;;;;;;;;;;;;;;;;;;;7083:25:41;200:423:15;;;;;;;;;;;;;7524:91:41;7572:32;;;200:423:15;7572:32:41;200:423:15;;;;;7572:32:41;200:423:15;;;;;;-1:-1:-1;;200:423:15;;;;;;;518:1;200:423;;;;;;;;;-1:-1:-1;;200:423:15;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;200:423:15;;;;;;;;;;;;;;;735:10:49;200:423:15;;;;;;;;;;;;;;-1:-1:-1;;10580:36:41;;10576:309;;200:423:15;4986:5:41;;;;;:::i;10576:309::-;10636:24;;;10632:130;;9813:19;;9809:89;;735:10:49;9911:21:41;9907:90;;4986:5;200:423:15;;;;;;;;;;;;;;735:10:49;200:423:15;-1:-1:-1;200:423:15;;;;;-1:-1:-1;200:423:15;;;;;10576:309:41;;;9907:90;9955:31;;;200:423:15;9955:31:41;200:423:15;;;;;9955:31:41;9809:89;9855:32;;;200:423:15;9855:32:41;200:423:15;;;;;9855:32:41;10632:130;10687:60;;;;;200:423:15;10687:60:41;735:10:49;200:423:15;;;;;;;;10687:60:41;200:423:15;;;;;;-1:-1:-1;;200:423:15;;;;;;;611:3;200:423;;;;;;;;;-1:-1:-1;;200:423:15;;;;;;:::i;:::-;;;735:10:49;;9813:19:41;9809:89;;-1:-1:-1;;;;;200:423:15;;9911:21:41;;9907:90;;735:10:49;200:423:15;;;;;;;;;-1:-1:-1;200:423:15;;;;;-1:-1:-1;200:423:15;;;;;;;10085:31:41;200:423:15;735:10:49;10085:31:41;;200:423:15;;;;;;;;;;;;;-1:-1:-1;;200:423:15;;;;;1856:5:41;200:423:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;200:423:15;;;;;-1:-1:-1;;200:423:15;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1856:5:41;200:423:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;200:423:15;;;;:::o;:::-;;;;-1:-1:-1;;;;;200:423:15;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;200:423:15;;;;;;:::o;5393:300:41:-;-1:-1:-1;;;;;200:423:15;;5476:18:41;;5472:86;;-1:-1:-1;;;;;200:423:15;;5571:16:41;;5567:86;;200:423:15;5492:1:41;200:423:15;5492:1:41;200:423:15;;;5492:1:41;200:423:15;;6340:19:41;;;6336:115;;200:423:15;7083:25:41;200:423:15;;;;5492:1:41;200:423:15;5492:1:41;200:423:15;;;;5492:1:41;200:423:15;;;5492:1:41;200:423:15;5492:1:41;200:423:15;;;5492:1:41;200:423:15;;;;;;;;;;;;7083:25:41;5393:300::o;6336:115::-;6386:50;;;;5492:1;6386:50;;200:423:15;;;;;;5492:1:41;6386:50;5472:86;5517:30;;;5492:1;5517:30;5492:1;5517:30;200:423:15;;5492:1:41;5517:30;1796:162:31;1710:6;200:423:15;-1:-1:-1;;;;;200:423:15;735:10:49;1855:23:31;1851:101;;1796:162::o;1851:101::-;1901:40;;;-1:-1:-1;1901:40:31;735:10:49;1901:40:31;200:423:15;;-1:-1:-1;1901:40:31","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","mint(address,uint256)":"40c10f19","name()":"06fdde03","owner()":"8da5cb5b","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/testERC20.sol\":\"TestErc20\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@chainlink/=lib/chainlink/\",\":@ensdomains/=lib/v4-core/node_modules/@ensdomains/\",\":@httpz-contracts/=lib/httpz-contracts/contracts/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/universal-router/=lib/universal-router.git/\",\":@uniswap/v2-core/=lib/v2-core/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/\",\":@uniswap/v4-core/=lib/v4-core/\",\":@uniswap/v4-periphery/=lib/v4-periphery/\",\":chainlink/=lib/chainlink/\",\":ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":fhevm-contracts/=node_modules/fhevm-contracts/\",\":fhevm-core-contracts/=node_modules/fhevm-core-contracts/\",\":fhevm/=node_modules/fhevm/\",\":forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":httpz-contracts/=lib/httpz-contracts/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":permit2/=lib/permit2/\",\":solmate/=lib/permit2/lib/solmate/\",\":universal-router.git/=lib/universal-router.git/\",\":v2-core/=lib/v2-core/contracts/\",\":v3-core/=lib/v3-core/\",\":v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/\",\":v4-core/=lib/v4-core/src/\",\":v4-periphery/=lib/v4-periphery/\"],\"viaIR\":true},\"sources\":{\"contracts/test/testERC20.sol\":{\"keccak256\":\"0x3c1f9aaa4d895770de3428b6a37562bd4be9df7a576183a96fedbfccabb0b56c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://149c6904e2602a42b3961f6bb93b68854dd61138e91fb4250a5993baf58567dc\",\"dweb:/ipfs/QmdbRtdQxaXjXmzrEthmNeBTQrhet65BfXVGmzgHWDjbvW\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x6ef9389a2c07bc40d8a7ba48914724ab2c108fac391ce12314f01321813e6368\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7a5cb39b1e6df68f4dd9a5e76e853d745a74ffb3dfd7df4ae4d2ace6992a171\",\"dweb:/ipfs/QmPbzKR19rdM8X3PLQjsmHRepUKhvoZnedSR63XyGtXZib\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"name()":{"details":"Returns the name of the token."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@chainlink/=lib/chainlink/","@ensdomains/=lib/v4-core/node_modules/@ensdomains/","@httpz-contracts/=lib/httpz-contracts/contracts/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@uniswap/universal-router/=lib/universal-router.git/","@uniswap/v2-core/=lib/v2-core/","@uniswap/v3-core/=lib/v3-core/","@uniswap/v3-periphery/=lib/universal-router.git/lib/v3-periphery/","@uniswap/v4-core/=lib/v4-core/","@uniswap/v4-periphery/=lib/v4-periphery/","chainlink/=lib/chainlink/","ds-test/=lib/permit2/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","eth-gas-reporter/=node_modules/eth-gas-reporter/","fhevm-contracts/=node_modules/fhevm-contracts/","fhevm-core-contracts/=node_modules/fhevm-core-contracts/","fhevm/=node_modules/fhevm/","forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","httpz-contracts/=lib/httpz-contracts/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","permit2/=lib/permit2/","solmate/=lib/permit2/lib/solmate/","universal-router.git/=lib/universal-router.git/","v2-core/=lib/v2-core/contracts/","v3-core/=lib/v3-core/","v3-periphery/=lib/universal-router.git/lib/v3-periphery/contracts/","v4-core/=lib/v4-core/src/","v4-periphery/=lib/v4-periphery/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/test/testERC20.sol":"TestErc20"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/test/testERC20.sol":{"keccak256":"0x3c1f9aaa4d895770de3428b6a37562bd4be9df7a576183a96fedbfccabb0b56c","urls":["bzz-raw://149c6904e2602a42b3961f6bb93b68854dd61138e91fb4250a5993baf58567dc","dweb:/ipfs/QmdbRtdQxaXjXmzrEthmNeBTQrhet65BfXVGmzgHWDjbvW"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x6ef9389a2c07bc40d8a7ba48914724ab2c108fac391ce12314f01321813e6368","urls":["bzz-raw://b7a5cb39b1e6df68f4dd9a5e76e853d745a74ffb3dfd7df4ae4d2ace6992a171","dweb:/ipfs/QmPbzKR19rdM8X3PLQjsmHRepUKhvoZnedSR63XyGtXZib"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330","urls":["bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf","dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":15} \ No newline at end of file