From 9c8288cd64f6904c7f04d83b16d9d86ae2d80a99 Mon Sep 17 00:00:00 2001 From: Filipp Makarov Date: Thu, 12 Dec 2024 12:20:31 +0300 Subject: [PATCH] deploy ready --- .../BiconomyTokenPaymaster/BiconomyTokenPaymaster.json | 2 +- scripts/foundry/DeployGasdaddy.s.sol | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/bash-deploy/artifacts/BiconomyTokenPaymaster/BiconomyTokenPaymaster.json b/scripts/bash-deploy/artifacts/BiconomyTokenPaymaster/BiconomyTokenPaymaster.json index 6576d33..a6bb22e 100644 --- a/scripts/bash-deploy/artifacts/BiconomyTokenPaymaster/BiconomyTokenPaymaster.json +++ b/scripts/bash-deploy/artifacts/BiconomyTokenPaymaster/BiconomyTokenPaymaster.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"verifyingSignerArg","type":"address","internalType":"address"},{"name":"entryPoint","type":"address","internalType":"contract IEntryPoint"},{"name":"unaccountedGasArg","type":"uint256","internalType":"uint256"},{"name":"nativeAssetDecimalsArg","type":"uint256","internalType":"uint256"},{"name":"nativeAssetToUsdOracleArg","type":"address","internalType":"contract IOracle"},{"name":"nativeAssetPriceExpiryDurationArg","type":"uint256","internalType":"uint256"},{"name":"uniswapRouterArg","type":"address","internalType":"contract IV3SwapRouter"},{"name":"wrappedNativeArg","type":"address","internalType":"address"},{"name":"independentTokensArg","type":"address[]","internalType":"address[]"},{"name":"tokenInfosArg","type":"tuple[]","internalType":"struct IBiconomyTokenPaymaster.TokenInfo[]","components":[{"name":"oracle","type":"address","internalType":"contract IOracle"},{"name":"priceMarkup","type":"uint32","internalType":"uint32"},{"name":"priceExpiryDuration","type":"uint256","internalType":"uint256"}]},{"name":"swappableTokens","type":"address[]","internalType":"address[]"},{"name":"swappableTokenPoolFeeTiers","type":"uint24[]","internalType":"uint24[]"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"addStake","inputs":[{"name":"unstakeDelaySec","type":"uint32","internalType":"uint32"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"addToTokenDirectory","inputs":[{"name":"tokenAddress","type":"address","internalType":"address"},{"name":"tokenInfo","type":"tuple","internalType":"struct IBiconomyTokenPaymaster.TokenInfo","components":[{"name":"oracle","type":"address","internalType":"contract IOracle"},{"name":"priceMarkup","type":"uint32","internalType":"uint32"},{"name":"priceExpiryDuration","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"cancelOwnershipHandover","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"completeOwnershipHandover","inputs":[{"name":"pendingOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"deposit","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"entryPoint","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IEntryPoint"}],"stateMutability":"view"},{"type":"function","name":"getDeposit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getHash","inputs":[{"name":"userOp","type":"tuple","internalType":"struct PackedUserOperation","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"validUntil","type":"uint48","internalType":"uint48"},{"name":"validAfter","type":"uint48","internalType":"uint48"},{"name":"tokenAddress","type":"address","internalType":"address"},{"name":"tokenPrice","type":"uint256","internalType":"uint256"},{"name":"appliedPriceMarkup","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getPrice","inputs":[{"name":"tokenAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"independentPriceExpiryDuration","inputs":[{"name":"tokenAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"independentPriceMarkup","inputs":[{"name":"tokenAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"independentTokenDirectory","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"oracle","type":"address","internalType":"contract IOracle"},{"name":"priceMarkup","type":"uint32","internalType":"uint32"},{"name":"priceExpiryDuration","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"isTokenSupported","inputs":[{"name":"tokenAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"nativeAssetToUsdOracle","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IOracle"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"result","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"ownershipHandoverExpiresAt","inputs":[{"name":"pendingOwner","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"postOp","inputs":[{"name":"mode","type":"uint8","internalType":"enum IPaymaster.PostOpMode"},{"name":"context","type":"bytes","internalType":"bytes"},{"name":"actualGasCost","type":"uint256","internalType":"uint256"},{"name":"actualUserOpFeePerGas","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeFromTokenDirectory","inputs":[{"name":"tokenAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"requestOwnershipHandover","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setNativeAssetToUsdOracle","inputs":[{"name":"oracle","type":"address","internalType":"contract IOracle"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setPriceExpiryDurationForToken","inputs":[{"name":"tokenAddress","type":"address","internalType":"address"},{"name":"newPriceExpiryDuration","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setPriceMarkupForToken","inputs":[{"name":"tokenAddress","type":"address","internalType":"address"},{"name":"newIndependentPriceMarkup","type":"uint32","internalType":"uint32"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setSigner","inputs":[{"name":"newVerifyingSigner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setUnaccountedGas","inputs":[{"name":"newUnaccountedGas","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"swapTokenAndDeposit","inputs":[{"name":"tokenAddress","type":"address","internalType":"address"},{"name":"tokenAmount","type":"uint256","internalType":"uint256"},{"name":"minEthAmountRecevied","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"tokenToPools","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint24","internalType":"uint24"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"unaccountedGas","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"uniswapRouter","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IV3SwapRouter"}],"stateMutability":"view"},{"type":"function","name":"unlockStake","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateSwappableTokens","inputs":[{"name":"tokenAddresses","type":"address[]","internalType":"address[]"},{"name":"poolFeeTiers","type":"uint24[]","internalType":"uint24[]"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"validatePaymasterUserOp","inputs":[{"name":"userOp","type":"tuple","internalType":"struct PackedUserOperation","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"userOpHash","type":"bytes32","internalType":"bytes32"},{"name":"maxCost","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"context","type":"bytes","internalType":"bytes"},{"name":"validationData","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"verifyingSigner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"withdrawERC20","inputs":[{"name":"token","type":"address","internalType":"contract IERC20"},{"name":"target","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"withdrawERC20Full","inputs":[{"name":"token","type":"address","internalType":"contract IERC20"},{"name":"target","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"withdrawEth","inputs":[{"name":"recipient","type":"address","internalType":"address payable"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"withdrawMultipleERC20","inputs":[{"name":"token","type":"address[]","internalType":"contract IERC20[]"},{"name":"target","type":"address","internalType":"address"},{"name":"amount","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"withdrawMultipleERC20Full","inputs":[{"name":"token","type":"address[]","internalType":"contract IERC20[]"},{"name":"target","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"withdrawStake","inputs":[{"name":"withdrawAddress","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawTo","inputs":[{"name":"withdrawAddress","type":"address","internalType":"address payable"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"wrappedNative","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"AddedToTokenDirectory","inputs":[{"name":"tokenAddress","type":"address","indexed":true,"internalType":"address"},{"name":"oracle","type":"address","indexed":true,"internalType":"contract IOracle"},{"name":"decimals","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"EthWithdrawn","inputs":[{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipHandoverCanceled","inputs":[{"name":"pendingOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipHandoverRequested","inputs":[{"name":"pendingOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"oldOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PaidGasInTokens","inputs":[{"name":"userOpSender","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"gasCostBeforePostOpAndPenalty","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"tokenCharge","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"priceMarkup","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"tokenPrice","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"userOpHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Received","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RemovedFromTokenDirectory","inputs":[{"name":"tokenAddress","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SwappableTokensAdded","inputs":[{"name":"tokenAddresses","type":"address[]","indexed":true,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"SwappingReverted","inputs":[{"name":"tokenIn","type":"address","indexed":false,"internalType":"address"},{"name":"amountIn","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"reason","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"TokensSwappedAndRefilledEntryPoint","inputs":[{"name":"tokenAddress","type":"address","indexed":true,"internalType":"address"},{"name":"tokenAmount","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"amountOut","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"actor","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokensWithdrawn","inputs":[{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"actor","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"UpdatedFeeCollector","inputs":[{"name":"oldFeeCollector","type":"address","indexed":true,"internalType":"address"},{"name":"newFeeCollector","type":"address","indexed":true,"internalType":"address"},{"name":"actor","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"UpdatedFixedPriceMarkup","inputs":[{"name":"oldValue","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"newValue","type":"uint32","indexed":true,"internalType":"uint32"}],"anonymous":false},{"type":"event","name":"UpdatedNativeAssetOracle","inputs":[{"name":"oldOracle","type":"address","indexed":true,"internalType":"contract IOracle"},{"name":"newOracle","type":"address","indexed":true,"internalType":"contract IOracle"}],"anonymous":false},{"type":"event","name":"UpdatedPriceExpiryDuration","inputs":[{"name":"oldValue","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"newValue","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"UpdatedUnaccountedGas","inputs":[{"name":"oldValue","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"newValue","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"UpdatedVerifyingSigner","inputs":[{"name":"oldSigner","type":"address","indexed":true,"internalType":"address"},{"name":"newSigner","type":"address","indexed":true,"internalType":"address"},{"name":"actor","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadyInitialized","inputs":[]},{"type":"error","name":"CanNotWithdrawToZeroAddress","inputs":[]},{"type":"error","name":"FailedToChargeTokens","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"userOpHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"FeeCollectorCanNotBeZero","inputs":[]},{"type":"error","name":"InvalidOracleDecimals","inputs":[]},{"type":"error","name":"InvalidPaymasterMode","inputs":[]},{"type":"error","name":"InvalidPriceExpiryDuration","inputs":[]},{"type":"error","name":"InvalidPriceMarkup","inputs":[]},{"type":"error","name":"InvalidSignatureLength","inputs":[]},{"type":"error","name":"InvalidTokenAddress","inputs":[]},{"type":"error","name":"NewOwnerIsZeroAddress","inputs":[]},{"type":"error","name":"NoHandoverRequest","inputs":[]},{"type":"error","name":"OraclePriceExpired","inputs":[]},{"type":"error","name":"OraclePriceNotPositive","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"TokenNotSupported","inputs":[]},{"type":"error","name":"TokensAndAmountsLengthMismatch","inputs":[]},{"type":"error","name":"TokensAndInfoLengthMismatch","inputs":[]},{"type":"error","name":"TokensAndPoolsLengthMismatch","inputs":[]},{"type":"error","name":"UnaccountedGasTooHigh","inputs":[]},{"type":"error","name":"Unauthorized","inputs":[]},{"type":"error","name":"UniswapReverted","inputs":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"amountIn","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"UnwrappingReverted","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"VerifyingSignerCanNotBeContract","inputs":[]},{"type":"error","name":"VerifyingSignerCanNotBeZero","inputs":[]},{"type":"error","name":"WithdrawalFailed","inputs":[]}],"bytecode":{"object":"0x6101206040523461019f57613140803803809161001b826101b7565b610120396101a08161012001911261019f57610035610232565b610040610140610242565b61004b610160610242565b610180516101a05161005e6101c0610242565b6101e05161006d610200610242565b91610079610220610242565b610240519094906001600160401b03811161019f578a61009c9161012001610264565b610260519096906001600160401b03811161019f578b6100bf91610120016102cb565b610280519098906001600160401b03811161019f578c6100e29161012001610264565b6102a051909a906001600160401b03811161019f5761010e9d6101089161012001610370565b9b610426565b60405161284890816108f882396080518181816106b10152818161082d015281816108df01528181610c2c01528181610cd40152818161189c01528181611a1c01528181611b5501526121b9015260a051818181610a330152818161119401526117c3015260c0518181816102d5015281816117240152611f60015260e05181610e8e015261010051816120690152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b610120601f91909101601f19168101906001600160401b038211908210176101de57604052565b6101a3565b606081019081106001600160401b038211176101de57604052565b601f909101601f19168101906001600160401b038211908210176101de57604052565b6001600160a01b0381160361019f57565b610120519061024082610221565b565b519061024082610221565b6001600160401b0381116101de5760051b60200190565b9080601f8301121561019f57815161027b8161024d565b9261028960405194856101fe565b81845260208085019260051b82010192831161019f57602001905b8282106102b15750505090565b6020809183516102c081610221565b8152019101906102a4565b81601f8201121561019f578051906102e28261024d565b926102f060405194856101fe565b8284526020606081860194028301019181831161019f57602001925b82841061031a575050505090565b60608483031261019f5760405190610331826101e3565b845161033c81610221565b825260208501519063ffffffff8216820361019f57826020928360609501526040870151604082015281520193019261030c565b9080601f8301121561019f578151906103888261024d565b9261039660405194856101fe565b82845260208085019360051b82010191821161019f57602001915b8183106103be5750505090565b825162ffffff8116810361019f578152602092830192016103b1565b9081602091031261019f575160ff8116810361019f5790565b6040513d5f823e3d90fd5b80518210156104125760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b92989c9b919395969761043c959a9b91986105f7565b60e05261010052803b6105d0576001600160a01b038116156105c15762030d4082116105b25785518451036105a35760405163313ce56760e01b81526020816004816001600160a01b0388165afa90811561059e5760089160ff915f9161056f575b501603610560576001556002556003555f5b835181101561055a57806104cf6104c9600193856103fe565b5161082e565b6105546104dc82856103fe565b516105136104fa6104ed858a6103fe565b516001600160a01b031690565b6001600160a01b03165f90815260046020526040902090565b81518154602084015163ffffffff60a01b60a09190911b166001600160a01b039092166001600160c01b031990911617178155604090910151600190910155565b016104b0565b50509050565b631c5f5f5d60e11b5f5260045ffd5b610591915060203d602011610597575b61058981836101fe565b8101906103da565b5f61049e565b503d61057f565b6103f3565b631b90532360e21b5f5260045ffd5b63313db2a560e11b5f5260045ffd5b6381618de160e01b5f5260045ffd5b63edc30c2760e01b5f5260045ffd5b9081602091031261019f5751801515810361019f5790565b91939461060691939695610738565b82518551036107295760a05260c0525f5b815181101561055a5780602061068e61064661063a61063a6104ed5f97896103fe565b6001600160a01b031690565b60a05161065b906001600160a01b031661063a565b60405163095ea7b360e01b81526001600160a01b0390911660048201525f19602482015294859283919082906044820190565b03925af191821561059e576001926106fd575b506106f76106bb6106b283886103fe565b5162ffffff1690565b6106e46106cb6104ed85886103fe565b6001600160a01b03165f90815260208190526040902090565b9062ffffff1662ffffff19825416179055565b01610617565b61071d9060203d8111610722575b61071581836101fe565b8101906105df565b6106a1565b503d61070b565b63552a04c960e01b5f5260045ffd5b8060601b15610821576001600160a01b0316638b78c6d8198190555f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a36040516301ffc9a760e01b815263122a0e9b60e31b60048201526020816024816001600160a01b0386165afa90811561059e575f91610802575b50156107bd57608052565b60405162461bcd60e51b815260206004820152601e60248201527f49456e747279506f696e7420696e74657266616365206d69736d6174636800006044820152606490fd5b61081b915060203d6020116107225761071581836101fe565b5f6107b2565b637448fbae5f526004601cfd5b8051600490602090610848906001600160a01b031661063a565b60405163313ce56760e01b815292839182905afa90811561059e5760089160ff915f916108d8575b5016036105605763ffffffff61088d602083015163ffffffff1690565b16621e848081119081156108cb575b506108bc576040015142106108ad57565b6347b4803b60e01b5f5260045ffd5b630a02dbf760e21b5f5260045ffd5b620f42409150105f61089c565b6108f1915060203d6020116105975761058981836101fe565b5f61087056fe6080604052600436101561001a575b3615610018575f80fd5b005b5f5f3560e01c80630396cb6014611b255780631b9a91a414611a97578063205c2878146119d757806323d9ac9b146119b05780632569296214611965578063406637941461169f57806341976e091461167b5780634230aa9e146115f357806344004cc1146115ba57806350f6ab101461155e57806352b7512c146114f157806354d1f13d146114ab5780635deef2aa146113f6578063617d057a1461132f57806361dcc50f146112ee5780636adf47421461128d5780636c19e78314611203578063715018a6146111b8578063735de9f71461117457806373acf5421461111557806375151b63146110d957806378b1da2314610fd85780637c627b2114610da3578063889e146814610d685780638da5cb5b14610d3d578063a6e1278014610d16578063ab94cad714610cf8578063b0d691fe14610cb4578063bacb4b7c14610c78578063bb9fe6bf14610c08578063c23461a914610950578063c23a5cea146108b2578063c399ec8814610800578063c87558cb14610738578063d0e30db014610692578063dab0f762146105f1578063e0d873f2146103d3578063e5a29e18146102f9578063eb6d3a11146102b5578063f04e283e14610267578063f2fde38b146102285763fee81cf4146101f3575061000e565b346102255760203660031901126102255761020c611bbf565b9063389a75e1600c5252602080600c2054604051908152f35b80fd5b5060203660031901126102255761023d611bbf565b610245611edb565b8060601b1561025a576102579061259d565b80f35b637448fbae82526004601cfd5b5060203660031901126102255761027c611bbf565b610284611edb565b63389a75e1600c528082526020600c20805442116102a8579082610257925561259d565b636f5e881883526004601cfd5b503461022557806003193601126102255760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b5060203660031901126102255761030e611bbf565b610316611edb565b60405163313ce56760e01b81526001600160a01b0382169190602081600481865afa9081156103c85760089160ff918691610399575b50160361038a576001600160a01b0360035416906003557f5575976ac84cfdef78545577f730cc9e1d97e34b91ce2821248c40f315c2c0ab8380a380f35b631c5f5f5d60e11b8352600483fd5b6103bb915060203d6020116103c1575b6103b38183611c84565b810190611ec2565b5f61034c565b503d6103a9565b6040513d86823e3d90fd5b506080366003190112610225576103e8611bbf565b60603660231901126105ed576040519061040182611c54565b610409611be9565b82526044359163ffffffff831683036105e9576020810192835260408101916064358352610435611edb565b600460206001600160a01b038451166040519283809263313ce56760e01b82525afa9081156105de5760089160ff9188916105bf575b5016036105b05763ffffffff845116621e848081119081156105a3575b506105945782514210610585576001600160a01b036001911692838652600460205261050d63ffffffff6001600160a01b036040892095511696877fffffffffffffffffffffffff00000000000000000000000000000000000000008754161786555116849063ffffffff60a01b1963ffffffff60a01b83549260a01b169116179055565b5191015560405163313ce56760e01b8152602081600481855afa9081156103c8577f84f87257a86c08a530e687f37b67e004d58505bbd85491a49281af661e831d62916020918691610568575b5060ff60405191168152a380f35b61057f9150823d84116103c1576103b38183611c84565b5f61055a565b6347b4803b60e01b8552600485fd5b630a02dbf760e21b8552600485fd5b620f42409150105f610488565b631c5f5f5d60e11b8552600485fd5b6105d8915060203d6020116103c1576103b38183611c84565b5f61046b565b6040513d88823e3d90fd5b8380fd5b5080fd5b50346102255760c03660031901126102255760043567ffffffffffffffff81116105ed5761012060031982360301126105ed5760243565ffffffffffff8116810361068e5760443565ffffffffffff811681036105e957606435916001600160a01b038316830361068a5760a4359463ffffffff861686036102255760206106828760843587878760048c01611dbe565b604051908152f35b8480fd5b8280fd5b5080600319360112610225576106a6611ef7565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561073557816024916040519283809263b760faf960e01b825230600483015234905af1801561072a57610715575b505f51602061281c5f395f51905f525d80f35b8161071f91611c84565b61022557805f610702565b6040513d84823e3d90fd5b50fd5b5060403660031901126102255761074d611bbf565b60243563ffffffff8116918282036105e957610767611edb565b621e8480831180156107f4575b6107e5576001600160a01b0316808452600460208181526040808720549387529190528420805463ffffffff60a01b191660a093841b63ffffffff60a01b16179055901c63ffffffff167facc62dff631d64bb26e99854b6fd5a402f6b86db87bec882490e9227b569301d8380a380f35b630a02dbf760e21b8452600484fd5b50620f42408310610774565b50346102255780600319360112610225576040516370a0823160e01b8152306004820152906020826024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108a6579061086f575b602090604051908152f35b506020813d60201161089e575b8161088960209383611c84565b8101031261089a5760209051610864565b5f80fd5b3d915061087c565b604051903d90823e3d90fd5b503461022557602036600319011261022557806108cd611bbf565b6108d5611edb565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561094c576001600160a01b036024849283604051958694859363611d2e7560e11b85521660048401525af1801561072a5761093b5750f35b8161094591611c84565b6102255780f35b5050fd5b5060403660031901126102255760043567ffffffffffffffff81116105ed57366023820112156105ed57806004013561098881611ca6565b916109966040519384611c84565b818352602083016024819360051b83010191368311610c0457602401905b828210610bec5750505060243567ffffffffffffffff81116105e957366023820112156105e95780600401356109e981611ca6565b916109f76040519384611c84565b8183526024602084019260051b82010190368211610be857602401915b818310610bc857505050610a26611edb565b8251815103610bb95790917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169190845b8151811015610b5357806001600160a01b03610a7d60019385611d41565b511662ffffff610a8d8387611d41565b51169060405160208a81830163095ea7b360e01b81528a60248501525f19604485015260448452610abf606485611c84565b83519082865af18a513d82610b38575b505015610af4575b50885287602052604088209062ffffff1982541617905501610a5f565b610b3290610b2c60405163095ea7b360e01b60208201528a60248201528c604482015260448152610b26606482611c84565b846127c7565b826127c7565b5f610ad7565b909150610b4c5750813b15155b5f80610acf565b8514610b45565b8585836040519182839251909190855b818110610b97575050500390207f8da1eee856eda075166c17f15b4618bd1c46fce796c12d70b4c8f6057c20a7788280a280f35b82516001600160a01b0316845285945060209384019390920191600101610b63565b63552a04c960e01b8452600484fd5b823562ffffff81168103610be457815260209283019201610a14565b8780fd5b8680fd5b60208091610bf984611bd5565b8152019101906109b4565b8580fd5b5034610225578060031936011261022557610c21611edb565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b156107355781809160046040518094819363bb9fe6bf60e01b83525af1801561072a5761093b5750f35b50346102255760203660031901126102255762ffffff60406020926001600160a01b03610ca3611bbf565b168152808452205416604051908152f35b503461022557806003193601126102255760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346102255780600319360112610225576020600254604051908152f35b503461022557806003193601126102255760206001600160a01b0360035416604051908152f35b50346102255780600319360112610225576020638b78c6d819546001600160a01b0360405191168152f35b503461022557602036600319011261022557600160406020926001600160a01b03610d91611bbf565b16815260048452200154604051908152f35b503461022557608036600319011261022557600360043510156102255760243567ffffffffffffffff81116105ed57366023820112156105ed57806004013567ffffffffffffffff811161068e57810136602482011161068e5760c060443591610e0b6121af565b8390031261068e57610e1f60248301611bd5565b90610e2c60448401611bd5565b91608484013560a485013563ffffffff8116809103610be85760c4860135926001600160a01b038082169616968315610fb8575b83610e8184610e81610e86610e8c95610e81606480359201356002546125db565b611fa7565b8a6125db565b7f000000000000000000000000000000000000000000000000000000000000000090620f4240820291808304620f42401490151715610fa45790610ecf91611fce565b906040519082606052306040526bffffffffffffffffffffffff199060601b16602c526f23b872dd000000000000000000000000600c526020896064601c828c5af18060018b51141615610f99575b89606052816040525f14610f7357509160a093917f9b02391759649674b016374b782fbd862605050c75d26c3e4c0b385e75bc1c4895936040519485526020850152604084015260608301526080820152a380f35b84608492898963590bc6cb60e11b85526004850152602484015260448301526064820152fd5b3d893b151710610f1e565b634e487b7160e01b8a52601160045260248afd5b9250610fc387611fec565b9283610e6057633dd1b30560e01b8952600489fd5b5060403660031901126102255760043567ffffffffffffffff81116105ed57611005903690600401611c23565b61100d611be9565b90611016611edb565b61101e611ef7565b835b81811061103b5784805f51602061281c5f395f51905f525d80f35b8060206001600160a01b0361105b611056602495878a611d09565b611d2d565b16604051938480926370a0823160e01b82523060048301525afa9182156105de5786926110a4575b5061109e6001928561109961105685888b611d09565b612103565b01611020565b91506020823d82116110d1575b816110be60209383611c84565b8101031261089a5790519061109e611083565b3d91506110b1565b5034610225576020366003190112610225576001600160a01b03604060209282611101611bbf565b168152600484522054161515604051908152f35b5060203660031901126102255760043561112d611edb565b62030d40811161116557600254816002557f2fcf69360e1d372881528eb806fae2b9226a258176570a4aef1d87cb811b0eb28380a380f35b63313db2a560e11b8252600482fd5b503461022557806003193601126102255760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b5080600319360112610225576111cc611edb565b80638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380638b78c6d8195580f35b50602036600319011261022557611218611bbf565b611220611edb565b803b61127e576001600160a01b038116801561126f576001600160a01b03600154169160015533917f0789b50c6940fa8935aaafcb17af50f66128e76c1c12c984884d6cf35411c3d98480a480f35b6381618de160e01b8352600483fd5b63edc30c2760e01b8252600482fd5b506020366003190112610225576001600160a01b036112aa611bbf565b6112b2611edb565b1680825260046020528160016040822082815501557f70cf61416226155841dbe8e5007a92de878a678754db8abd48a2b34d039693638280a280f35b50346102255760203660031901126102255763ffffffff60406020926001600160a01b0361131a611bbf565b16815260048452205460a01c16604051908152f35b5060603660031901126102255760043567ffffffffffffffff81116105ed5761135c903690600401611c23565b611364611be9565b60443567ffffffffffffffff811161068a57611384903690600401611c23565b909261138e611edb565b611396611ef7565b8181036113e757855b8181106113ba5786805f51602061281c5f395f51905f525d80f35b806113e16113ce611056600194868b611d09565b866113da84888b611d09565b3591612103565b0161139f565b630483384360e11b8652600486fd5b5060403660031901126102255761140b611bbf565b611413611be9565b9061141c611edb565b611424611ef7565b6040516370a0823160e01b8152306004820152916020836024816001600160a01b0386165afa9182156103c8578492611475575b6114629350612103565b805f51602061281c5f395f51905f525d80f35b91506020833d6020116114a3575b8161149060209383611c84565b8101031261089a57611462925191611458565b3d9150611483565b50806003193601126102255763389a75e1600c52338152806020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c928280a280f35b5034610225576060366003190112610225576004359067ffffffffffffffff821161022557610120600319833603011261022557611554611540836115346121af565b60243590600401612226565b604051928392604084526040840190611bff565b9060208301520390f35b50346102255760203660031901126102255760406060916001600160a01b03611585611bbf565b1681526004602052206001815491015463ffffffff604051926001600160a01b038116845260a01c1660208301526040820152f35b506060366003190112610225576114626115d2611bbf565b6115da611be9565b6115e2611edb565b6115ea611ef7565b60443591612103565b50604036600319011261022557611608611bbf565b60243590611614611edb565b81421061166c576001600160a01b03168083526004602052600160408420015490835260046020528160016040852001557f5c6422fd0fdb3c8a87212d2f3d69bd50d985fe20413fa4025e589ae32d7882a98380a380f35b6347b4803b60e01b8352600483fd5b503461022557602036600319011261022557602061068261169a611bbf565b611fec565b506060366003190112610225576116b4611bbf565b6001600160a01b03602435916116c8611ef7565b16908183528260205262ffffff60408420541615611956578183528260205262ffffff6040842054166040519060e0820182811067ffffffffffffffff82111761194257906001600160a01b03916040528483526020830190827f0000000000000000000000000000000000000000000000000000000000000000168252604084019081526060840130815283608086019187835262ffffff60a088019460443586528360c08a01978d8952816040519b6304e45aaf60e01b8d52511660048c0152511660248a015251166044880152511660648601525160848501525160a4840152511660c482015260208160e481876001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af184918161190e575b5061190857507f0cba6018de7a308d62a909cf070bd4adce14183eecb0e81896a7a2166381f28161183f61181f611cda565b604051918291868352856020840152606060408401526060830190611bff565b0390a182915b82611888575b7f1167bb4d1b193b67a7db44fae87314c8dd5df00b345b9c62d0436599755e93316020604051338152a4805f51602061281c5f395f51905f525d80f35b61189183611f2c565b836001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b156105ed5781859160246040518094819363b760faf960e01b83523060048401525af1801561072a576118f3575b505061184b565b816118fd91611c84565b6105e957835f6118ec565b91611845565b9091506020813d60201161193a575b8161192a60209383611c84565b8101031261089a5751905f6117ed565b3d915061191d565b634e487b7160e01b86526041600452602486fd5b633dd1b30560e01b8352600483fd5b50806003193601126102255763389a75e1600c523381526202a30042016020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d8280a280f35b503461022557806003193601126102255760206001600160a01b0360015416604051908152f35b5034610225576040366003190112610225576001600160a01b036119f9611bbf565b611a01611edb565b611a09611ef7565b168015611a885781906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561094c57829160448392604051948593849263040b850f60e31b8452600484015260243560248401525af1801561072a5761071557505f51602061281c5f395f51905f525d80f35b6392bc9df360e01b8252600482fd5b50604036600319011261022557611aac611bbf565b6001600160a01b0360243591611ac0611edb565b611ac8611ef7565b168280808085855af1611ad9611cda565b5015611b16577f8455ae6be5d92f1df1c3c1484388e247a36c7e60d72055ae216dbc258f257d4b8380a3805f51602061281c5f395f51905f525d80f35b6327fcd9d160e01b8352600483fd5b50602036600319011261089a5760043563ffffffff811680910361089a57611b4b611edb565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561089a575f90602460405180948193621cb65b60e51b8352600483015234905af18015611bb457611ba8575080f35b61001891505f90611c84565b6040513d5f823e3d90fd5b600435906001600160a01b038216820361089a57565b35906001600160a01b038216820361089a57565b602435906001600160a01b038216820361089a57565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9181601f8401121561089a5782359167ffffffffffffffff831161089a576020808501948460051b01011161089a57565b6060810190811067ffffffffffffffff821117611c7057604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff821117611c7057604052565b67ffffffffffffffff8111611c705760051b60200190565b67ffffffffffffffff8111611c7057601f01601f191660200190565b3d15611d04573d90611ceb82611cbe565b91611cf96040519384611c84565b82523d5f602084013e565b606090565b9190811015611d195760051b0190565b634e487b7160e01b5f52603260045260245ffd5b356001600160a01b038116810361089a5790565b8051821015611d195760209160051b010190565b903590601e198136030182121561089a570180359067ffffffffffffffff821161089a5760200191813603831361089a57565b929192611d9482611cbe565b91611da26040519384611c84565b82948184528183011161089a578281602093845f960137010152565b939194929094611ddb611dd46040870187611d55565b3691611d88565b6020815191012095611df3611dd46060880188611d55565b6020815191012095611e0860e0820182611d55565b60341161089a576014013560405197602089019983356001600160a01b03168b52602084013560408b015260608a01526080890152608082013560a089015260c088015260a081013560e088015260c00135610100870152466101208701523061014087015265ffffffffffff1661016086015265ffffffffffff166101808501526001600160a01b03166101a08401526101c083015263ffffffff166101e08201526101e08152611ebc61020082611c84565b51902090565b9081602091031261089a575160ff8116810361089a5790565b638b78c6d819543303611eea57565b6382b429005f526004601cfd5b5f51602061281c5f395f51905f525c611f1d5760015f51602061281c5f395f51905f525d565b633ee5aeb560e01b5f5260045ffd5b8015611fa4575f806040516020810190632e1a7d4d60e01b825284602482015260248152611f5b604482611c84565b5190827f00000000000000000000000000000000000000000000000000000000000000005af1611f89611cda565b5015611f925750565b637bd5213f60e11b5f5260045260245ffd5b50565b81810292918115918404141715611fba57565b634e487b7160e01b5f52601160045260245ffd5b8115611fd8570490565b634e487b7160e01b5f52601260045260245ffd5b6001600160a01b0316805f52600460205260405f206040519061200e82611c54565b600181549163ffffffff6001600160a01b0384169384865260a01c16602085015201549060408301918252156120f4576001600160a01b036120549251169051906125ff565b6004602061208e6001600160a01b03600354167f0000000000000000000000000000000000000000000000000000000000000000906125ff565b936040519283809263313ce56760e01b82525afa8015611bb45760ff915f916120d5575b5016604d8111611fba576120d2926120cd91600a0a90611fa7565b611fce565b90565b6120ee915060203d6020116103c1576103b38183611c84565b5f6120b2565b633dd1b30560e01b5f5260045ffd5b906001600160a01b0381169182156121a0576001600160a01b031690601452826034526fa9059cbb0000000000000000000000005f5260205f6044601082855af18060015f51141615612182575b505f6034527f4e5ba90310f16273bb12f3c33f23905e573b86df58a2895a525285d083bf043f6020604051338152a4565b3d823b15171015612193575f612151565b6390b8ec185f526004601cfd5b6392bc9df360e01b5f5260045ffd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036121e157565b60405162461bcd60e51b815260206004820152601560248201527f53656e646572206e6f7420456e747279506f696e7400000000000000000000006044820152606490fd5b919060609060e08401905f61223b8387611d55565b9390918460341015611d1957603483013560f81c956002871015612589578560351161089a5760358401916034198701936001891161257a5761227e908b611d55565b60341161089a576024013560801c6fffffffffffffffffffffffffffffffff60808c013516016fffffffffffffffffffffffffffffffff8111611fba576fffffffffffffffffffffffffffffffff600a9116026fffffffffffffffffffffffffffffffff8116908103611fba57606490046fffffffffffffffffffffffffffffffff1697806124c3575050508160061161089a573560d01c94600c821061089a57603b83013560d01c976020831061089a57604184013560601c956040841061089a5760558501359360441161089a5761236a90607586013560e01c9560793692607819019101611d88565b8051604081141590816124b7575b506124a8576123c9908861239c87878b8f6001600160a01b03600154169589611dbe565b6020527b19457468657265756d205369676e6564204d6573736167653a0a33325f52603c600420906126c0565b15612452579165ffffffffffff60a01b9593916001600160a01b0361240f7fffffffffffff00000000000000000000000000000000000000000000000000009795611d2d565b9581604051971660208801521660408601526060850152608084015260a083015260c082015260c0815261244460e082611c84565b9460d01b169160a01b161790565b50505050505065ffffffffffff60a01b7fffffffffffff00000000000000000000000000000000000000000000000000006001939460d01b169160a01b161717906040516124a1602082611c84565b5f81529190565b634be6321b60e01b5f5260045ffd5b6041915014155f612378565b90989794506001919993959650146124dd575b5050505050565b90919280949597965060141161089a5735851c6001600160a01b0316926013190161256b5761250b90611d2d565b93825f5260046020526001600160a01b0363ffffffff60405f205460a01c169381604051971660208801521660408601528401525f608084015260a083015260c082015260c0815261255e60e082611c84565b905f905f808080806124d6565b630f58058360e11b5f5260045ffd5b63817c70e760e01b5f5260045ffd5b634e487b7160e01b5f52602160045260245ffd5b6001600160a01b031680638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3638b78c6d81955565b91908201809211611fba57565b519069ffffffffffffffffffff8216820361089a57565b9060a06001600160a01b0392600460405180958193633fabe5a360e21b8352165afa908115611bb4575f925f9261266a575b505f83131561265b57420390428211611fba571061264c5790565b63757ee0c360e11b5f5260045ffd5b631319f4b960e11b5f5260045ffd5b9250905060a0823d60a0116126b8575b8161268760a09383611c84565b8101031261089a57612698826125e8565b5060208201516126af6080606085015194016125e8565b5091905f612631565b3d915061267a565b92915f936001600160a01b038116156127bf576040519282518060401461278357604114612743575b85156126f6575b50505050565b602093949550630b135d3f60e11b855260048501526024840193849260408452805185019081604484019160045afa5060443d01915afa9051630b135d3f60e11b1416905f8080806126f0565b945060608201515f1a60205260408201516060525b845f5260208201516040526020600160805f825afa51811860601b3d11945f606052836040526126e9565b5094507f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040830151601b8160ff1c0160205216606052612758565b505f93505050565b905f602091828151910182855af115611bb4575f513d61281257506001600160a01b0381163b155b6127f65750565b6001600160a01b0390635274afe760e01b5f521660045260245ffd5b600114156127ef56fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a164736f6c634300081b000a","sourceMap":"2174:24914:8:-:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;2174:24914:8;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;2174:24914:8;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;2174:24914:8;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;2174:24914:8;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2174:24914:8;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2174:24914:8;;;;-1:-1:-1;;;;;2174:24914:8;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2174:24914:8;;;;;;;:::o;:::-;;;;;-1:-1:-1;;2174:24914:8;;;;-1:-1:-1;;;;;2174:24914:8;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;2174:24914:8;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;:::i;:::-;-1:-1:-1;;;;;2174:24914:8;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;2870:7;;;;;;;;;;;;;;;;;;:::o;:::-;2174:24914;;2870:7;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;2174:24914;;;2870:7;;;;;;;;3639:2172;;;;;;;;;;;;;;;;;:::i;:::-;4543:47;;4600:71;;6221:74:0;;4682:102:8;;-1:-1:-1;;;;;2174:24914:8;;4797:32;4793:99;;2870:7;4905:42;;4901:103;;2870:7;;;;5018:51;5014:118;;2174:24914;;-1:-1:-1;;;5145:36:8;;;2174:24914;5145:36;2174:24914;-1:-1:-1;;;;;2174:24914:8;;5145:36;;;;;;;5185:1;5145:36;2870:7;5145:36;4827:1;5145:36;;;3639:2172;2870:7;;5145:41;5141:179;;5361:231;;;;;;4827:1;5655:3;2870:7;;5622:31;;;;;5693:16;;;5361:231;5693:16;;;:::i;:::-;;;:::i;:::-;2870:7;5777:16;;;;:::i;:::-;;5724:50;5750:23;;;;;:::i;:::-;2870:7;-1:-1:-1;;;;;2174:24914:8;;2870:7;5750:23;-1:-1:-1;;;;;2174:24914:8;2870:7;;;;5145:36;2870:7;;;;;;;5724:50;2870:7;;;;;;;;-1:-1:-1;;;2174:24914:8;2870:7;;;;;-1:-1:-1;;;;;2174:24914:8;;;-1:-1:-1;;;;;;2870:7:8;;;;;;;;;;;;-1:-1:-1;2870:7:8;;;;;;;5607:13;;5622:31;;;;;3639:2172::o;5141:179::-;5286:23;;;4827:1;5286:23;5145:36;4827:1;5286:23;5145:36;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;5014:118::-;5092:29;;;4827:1;5092:29;;4827:1;5092:29;4901:103;4970:23;;;4827:1;4970:23;;4827:1;4970:23;4793:99;4852:29;;;4827:1;4852:29;;4827:1;4852:29;4682:102;4740:33;;;;;;;;2174:24914;;;;;;;;;;;;;;;;;;:::o;1274:723:9:-;;;;377:1683:49;1274:723:9;;;;377:1683:49;:::i;:::-;2870:7:8;;;;1456:41:9;1452:109;;1628:32;;1670;;-1:-1:-1;1752:3:9;2870:7:8;;1733:17:9;;;;;1778:9;1771:68;;:25;:17;1778:9;;-1:-1:-1;1778:9:9;;;:::i;:::-;-1:-1:-1;;;;;2174:24914:8;;;1771:25:9;1628:32;2174:24914:8;1797:22:9;;-1:-1:-1;;;;;2174:24914:8;;;1797:22:9;2174:24914:8;;-1:-1:-1;;;1771:68:9;;-1:-1:-1;;;;;2174:24914:8;;;1771:68:9;;;2174:24914:8;-1:-1:-1;;2174:24914:8;;;;;;;;;2870:7;2174:24914;;;;;;;1771:68:9;;;;;;;;;;2870:7:8;1771:68:9;;;1752:3;1904:20;1878:46;1904:20;;;;;:::i;:::-;2174:24914:8;;;;;1904:20:9;1878:23;1891:9;;;;;:::i;:::-;-1:-1:-1;;;;;2174:24914:8;1730:1:9;2870:7:8;;;;;;;;;;;;1878:23:9;2174:24914:8;;;;;;;;;;;;1878:46:9;2870:7:8;1718:13:9;;1771:68;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;1452:109;1520:30;;;-1:-1:-1;1520:30:9;;-1:-1:-1;1520:30:9;1021:171:0;198:181:10;;;;;;-1:-1:-1;;;;;5710:347:130;-1:-1:-1;;5710:347:130;;;-1:-1:-1;5710:347:130;-1:-1:-1;;5710:347:130;2174:24914:8;;-1:-1:-1;;;3843:80:0;;-1:-1:-1;;;3843:80:0;;;2174:24914:8;;;3843:80:0;2174:24914:8;-1:-1:-1;;;;;2174:24914:8;;3843:80:0;;;;;;;-1:-1:-1;3843:80:0;;;1021:171;2174:24914:8;;;;1159:26:0;;1021:171::o;2174:24914:8:-;;;-1:-1:-1;;;2174:24914:8;;;3843:80:0;2174:24914:8;;;;3843:80:0;2174:24914:8;;;;;;;;;;;3843:80:0;;;;2174:24914:8;3843:80:0;2174:24914:8;3843:80:0;;;;;;;:::i;:::-;;;;198:181:10;;;;;;;24578:455:8;2870:7;;24662:27;;;;:25;;-1:-1:-1;;;;;2174:24914:8;2870:7;2174:24914;24662:25;2174:24914;;-1:-1:-1;;;24662:27:8;;2174:24914;;;;;24662:27;;;;;;;24693:1;24662:27;2870:7;24662:27;:16;:27;;;24578:455;2870:7;;24662:32;24658:93;;2174:24914;2870:7;24662:27;24764:21;;2870:7;2174:24914;;;;2870:7;2174:24914;3075:3;24764:41;;:87;;;;;24578:455;24760:145;;;2174:24914;24936:29;2870:7;24918:15;:47;24914:113;;24578:455::o;24914:113::-;24988:28;;;24662:16;24988:28;24662:27;:16;24988:28;24760:145;24874:20;;;24662:16;24874:20;24662:27;:16;24874:20;24764:87;2962:3;24809:42;;;24764:87;;;24662:27;;;;;;;;;;;;;;:::i;:::-;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001a575b3615610018575f80fd5b005b5f5f3560e01c80630396cb6014611b255780631b9a91a414611a97578063205c2878146119d757806323d9ac9b146119b05780632569296214611965578063406637941461169f57806341976e091461167b5780634230aa9e146115f357806344004cc1146115ba57806350f6ab101461155e57806352b7512c146114f157806354d1f13d146114ab5780635deef2aa146113f6578063617d057a1461132f57806361dcc50f146112ee5780636adf47421461128d5780636c19e78314611203578063715018a6146111b8578063735de9f71461117457806373acf5421461111557806375151b63146110d957806378b1da2314610fd85780637c627b2114610da3578063889e146814610d685780638da5cb5b14610d3d578063a6e1278014610d16578063ab94cad714610cf8578063b0d691fe14610cb4578063bacb4b7c14610c78578063bb9fe6bf14610c08578063c23461a914610950578063c23a5cea146108b2578063c399ec8814610800578063c87558cb14610738578063d0e30db014610692578063dab0f762146105f1578063e0d873f2146103d3578063e5a29e18146102f9578063eb6d3a11146102b5578063f04e283e14610267578063f2fde38b146102285763fee81cf4146101f3575061000e565b346102255760203660031901126102255761020c611bbf565b9063389a75e1600c5252602080600c2054604051908152f35b80fd5b5060203660031901126102255761023d611bbf565b610245611edb565b8060601b1561025a576102579061259d565b80f35b637448fbae82526004601cfd5b5060203660031901126102255761027c611bbf565b610284611edb565b63389a75e1600c528082526020600c20805442116102a8579082610257925561259d565b636f5e881883526004601cfd5b503461022557806003193601126102255760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b5060203660031901126102255761030e611bbf565b610316611edb565b60405163313ce56760e01b81526001600160a01b0382169190602081600481865afa9081156103c85760089160ff918691610399575b50160361038a576001600160a01b0360035416906003557f5575976ac84cfdef78545577f730cc9e1d97e34b91ce2821248c40f315c2c0ab8380a380f35b631c5f5f5d60e11b8352600483fd5b6103bb915060203d6020116103c1575b6103b38183611c84565b810190611ec2565b5f61034c565b503d6103a9565b6040513d86823e3d90fd5b506080366003190112610225576103e8611bbf565b60603660231901126105ed576040519061040182611c54565b610409611be9565b82526044359163ffffffff831683036105e9576020810192835260408101916064358352610435611edb565b600460206001600160a01b038451166040519283809263313ce56760e01b82525afa9081156105de5760089160ff9188916105bf575b5016036105b05763ffffffff845116621e848081119081156105a3575b506105945782514210610585576001600160a01b036001911692838652600460205261050d63ffffffff6001600160a01b036040892095511696877fffffffffffffffffffffffff00000000000000000000000000000000000000008754161786555116849063ffffffff60a01b1963ffffffff60a01b83549260a01b169116179055565b5191015560405163313ce56760e01b8152602081600481855afa9081156103c8577f84f87257a86c08a530e687f37b67e004d58505bbd85491a49281af661e831d62916020918691610568575b5060ff60405191168152a380f35b61057f9150823d84116103c1576103b38183611c84565b5f61055a565b6347b4803b60e01b8552600485fd5b630a02dbf760e21b8552600485fd5b620f42409150105f610488565b631c5f5f5d60e11b8552600485fd5b6105d8915060203d6020116103c1576103b38183611c84565b5f61046b565b6040513d88823e3d90fd5b8380fd5b5080fd5b50346102255760c03660031901126102255760043567ffffffffffffffff81116105ed5761012060031982360301126105ed5760243565ffffffffffff8116810361068e5760443565ffffffffffff811681036105e957606435916001600160a01b038316830361068a5760a4359463ffffffff861686036102255760206106828760843587878760048c01611dbe565b604051908152f35b8480fd5b8280fd5b5080600319360112610225576106a6611ef7565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561073557816024916040519283809263b760faf960e01b825230600483015234905af1801561072a57610715575b505f51602061281c5f395f51905f525d80f35b8161071f91611c84565b61022557805f610702565b6040513d84823e3d90fd5b50fd5b5060403660031901126102255761074d611bbf565b60243563ffffffff8116918282036105e957610767611edb565b621e8480831180156107f4575b6107e5576001600160a01b0316808452600460208181526040808720549387529190528420805463ffffffff60a01b191660a093841b63ffffffff60a01b16179055901c63ffffffff167facc62dff631d64bb26e99854b6fd5a402f6b86db87bec882490e9227b569301d8380a380f35b630a02dbf760e21b8452600484fd5b50620f42408310610774565b50346102255780600319360112610225576040516370a0823160e01b8152306004820152906020826024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108a6579061086f575b602090604051908152f35b506020813d60201161089e575b8161088960209383611c84565b8101031261089a5760209051610864565b5f80fd5b3d915061087c565b604051903d90823e3d90fd5b503461022557602036600319011261022557806108cd611bbf565b6108d5611edb565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561094c576001600160a01b036024849283604051958694859363611d2e7560e11b85521660048401525af1801561072a5761093b5750f35b8161094591611c84565b6102255780f35b5050fd5b5060403660031901126102255760043567ffffffffffffffff81116105ed57366023820112156105ed57806004013561098881611ca6565b916109966040519384611c84565b818352602083016024819360051b83010191368311610c0457602401905b828210610bec5750505060243567ffffffffffffffff81116105e957366023820112156105e95780600401356109e981611ca6565b916109f76040519384611c84565b8183526024602084019260051b82010190368211610be857602401915b818310610bc857505050610a26611edb565b8251815103610bb95790917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169190845b8151811015610b5357806001600160a01b03610a7d60019385611d41565b511662ffffff610a8d8387611d41565b51169060405160208a81830163095ea7b360e01b81528a60248501525f19604485015260448452610abf606485611c84565b83519082865af18a513d82610b38575b505015610af4575b50885287602052604088209062ffffff1982541617905501610a5f565b610b3290610b2c60405163095ea7b360e01b60208201528a60248201528c604482015260448152610b26606482611c84565b846127c7565b826127c7565b5f610ad7565b909150610b4c5750813b15155b5f80610acf565b8514610b45565b8585836040519182839251909190855b818110610b97575050500390207f8da1eee856eda075166c17f15b4618bd1c46fce796c12d70b4c8f6057c20a7788280a280f35b82516001600160a01b0316845285945060209384019390920191600101610b63565b63552a04c960e01b8452600484fd5b823562ffffff81168103610be457815260209283019201610a14565b8780fd5b8680fd5b60208091610bf984611bd5565b8152019101906109b4565b8580fd5b5034610225578060031936011261022557610c21611edb565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b156107355781809160046040518094819363bb9fe6bf60e01b83525af1801561072a5761093b5750f35b50346102255760203660031901126102255762ffffff60406020926001600160a01b03610ca3611bbf565b168152808452205416604051908152f35b503461022557806003193601126102255760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346102255780600319360112610225576020600254604051908152f35b503461022557806003193601126102255760206001600160a01b0360035416604051908152f35b50346102255780600319360112610225576020638b78c6d819546001600160a01b0360405191168152f35b503461022557602036600319011261022557600160406020926001600160a01b03610d91611bbf565b16815260048452200154604051908152f35b503461022557608036600319011261022557600360043510156102255760243567ffffffffffffffff81116105ed57366023820112156105ed57806004013567ffffffffffffffff811161068e57810136602482011161068e5760c060443591610e0b6121af565b8390031261068e57610e1f60248301611bd5565b90610e2c60448401611bd5565b91608484013560a485013563ffffffff8116809103610be85760c4860135926001600160a01b038082169616968315610fb8575b83610e8184610e81610e86610e8c95610e81606480359201356002546125db565b611fa7565b8a6125db565b7f000000000000000000000000000000000000000000000000000000000000000090620f4240820291808304620f42401490151715610fa45790610ecf91611fce565b906040519082606052306040526bffffffffffffffffffffffff199060601b16602c526f23b872dd000000000000000000000000600c526020896064601c828c5af18060018b51141615610f99575b89606052816040525f14610f7357509160a093917f9b02391759649674b016374b782fbd862605050c75d26c3e4c0b385e75bc1c4895936040519485526020850152604084015260608301526080820152a380f35b84608492898963590bc6cb60e11b85526004850152602484015260448301526064820152fd5b3d893b151710610f1e565b634e487b7160e01b8a52601160045260248afd5b9250610fc387611fec565b9283610e6057633dd1b30560e01b8952600489fd5b5060403660031901126102255760043567ffffffffffffffff81116105ed57611005903690600401611c23565b61100d611be9565b90611016611edb565b61101e611ef7565b835b81811061103b5784805f51602061281c5f395f51905f525d80f35b8060206001600160a01b0361105b611056602495878a611d09565b611d2d565b16604051938480926370a0823160e01b82523060048301525afa9182156105de5786926110a4575b5061109e6001928561109961105685888b611d09565b612103565b01611020565b91506020823d82116110d1575b816110be60209383611c84565b8101031261089a5790519061109e611083565b3d91506110b1565b5034610225576020366003190112610225576001600160a01b03604060209282611101611bbf565b168152600484522054161515604051908152f35b5060203660031901126102255760043561112d611edb565b62030d40811161116557600254816002557f2fcf69360e1d372881528eb806fae2b9226a258176570a4aef1d87cb811b0eb28380a380f35b63313db2a560e11b8252600482fd5b503461022557806003193601126102255760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b5080600319360112610225576111cc611edb565b80638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380638b78c6d8195580f35b50602036600319011261022557611218611bbf565b611220611edb565b803b61127e576001600160a01b038116801561126f576001600160a01b03600154169160015533917f0789b50c6940fa8935aaafcb17af50f66128e76c1c12c984884d6cf35411c3d98480a480f35b6381618de160e01b8352600483fd5b63edc30c2760e01b8252600482fd5b506020366003190112610225576001600160a01b036112aa611bbf565b6112b2611edb565b1680825260046020528160016040822082815501557f70cf61416226155841dbe8e5007a92de878a678754db8abd48a2b34d039693638280a280f35b50346102255760203660031901126102255763ffffffff60406020926001600160a01b0361131a611bbf565b16815260048452205460a01c16604051908152f35b5060603660031901126102255760043567ffffffffffffffff81116105ed5761135c903690600401611c23565b611364611be9565b60443567ffffffffffffffff811161068a57611384903690600401611c23565b909261138e611edb565b611396611ef7565b8181036113e757855b8181106113ba5786805f51602061281c5f395f51905f525d80f35b806113e16113ce611056600194868b611d09565b866113da84888b611d09565b3591612103565b0161139f565b630483384360e11b8652600486fd5b5060403660031901126102255761140b611bbf565b611413611be9565b9061141c611edb565b611424611ef7565b6040516370a0823160e01b8152306004820152916020836024816001600160a01b0386165afa9182156103c8578492611475575b6114629350612103565b805f51602061281c5f395f51905f525d80f35b91506020833d6020116114a3575b8161149060209383611c84565b8101031261089a57611462925191611458565b3d9150611483565b50806003193601126102255763389a75e1600c52338152806020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c928280a280f35b5034610225576060366003190112610225576004359067ffffffffffffffff821161022557610120600319833603011261022557611554611540836115346121af565b60243590600401612226565b604051928392604084526040840190611bff565b9060208301520390f35b50346102255760203660031901126102255760406060916001600160a01b03611585611bbf565b1681526004602052206001815491015463ffffffff604051926001600160a01b038116845260a01c1660208301526040820152f35b506060366003190112610225576114626115d2611bbf565b6115da611be9565b6115e2611edb565b6115ea611ef7565b60443591612103565b50604036600319011261022557611608611bbf565b60243590611614611edb565b81421061166c576001600160a01b03168083526004602052600160408420015490835260046020528160016040852001557f5c6422fd0fdb3c8a87212d2f3d69bd50d985fe20413fa4025e589ae32d7882a98380a380f35b6347b4803b60e01b8352600483fd5b503461022557602036600319011261022557602061068261169a611bbf565b611fec565b506060366003190112610225576116b4611bbf565b6001600160a01b03602435916116c8611ef7565b16908183528260205262ffffff60408420541615611956578183528260205262ffffff6040842054166040519060e0820182811067ffffffffffffffff82111761194257906001600160a01b03916040528483526020830190827f0000000000000000000000000000000000000000000000000000000000000000168252604084019081526060840130815283608086019187835262ffffff60a088019460443586528360c08a01978d8952816040519b6304e45aaf60e01b8d52511660048c0152511660248a015251166044880152511660648601525160848501525160a4840152511660c482015260208160e481876001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af184918161190e575b5061190857507f0cba6018de7a308d62a909cf070bd4adce14183eecb0e81896a7a2166381f28161183f61181f611cda565b604051918291868352856020840152606060408401526060830190611bff565b0390a182915b82611888575b7f1167bb4d1b193b67a7db44fae87314c8dd5df00b345b9c62d0436599755e93316020604051338152a4805f51602061281c5f395f51905f525d80f35b61189183611f2c565b836001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b156105ed5781859160246040518094819363b760faf960e01b83523060048401525af1801561072a576118f3575b505061184b565b816118fd91611c84565b6105e957835f6118ec565b91611845565b9091506020813d60201161193a575b8161192a60209383611c84565b8101031261089a5751905f6117ed565b3d915061191d565b634e487b7160e01b86526041600452602486fd5b633dd1b30560e01b8352600483fd5b50806003193601126102255763389a75e1600c523381526202a30042016020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d8280a280f35b503461022557806003193601126102255760206001600160a01b0360015416604051908152f35b5034610225576040366003190112610225576001600160a01b036119f9611bbf565b611a01611edb565b611a09611ef7565b168015611a885781906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561094c57829160448392604051948593849263040b850f60e31b8452600484015260243560248401525af1801561072a5761071557505f51602061281c5f395f51905f525d80f35b6392bc9df360e01b8252600482fd5b50604036600319011261022557611aac611bbf565b6001600160a01b0360243591611ac0611edb565b611ac8611ef7565b168280808085855af1611ad9611cda565b5015611b16577f8455ae6be5d92f1df1c3c1484388e247a36c7e60d72055ae216dbc258f257d4b8380a3805f51602061281c5f395f51905f525d80f35b6327fcd9d160e01b8352600483fd5b50602036600319011261089a5760043563ffffffff811680910361089a57611b4b611edb565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561089a575f90602460405180948193621cb65b60e51b8352600483015234905af18015611bb457611ba8575080f35b61001891505f90611c84565b6040513d5f823e3d90fd5b600435906001600160a01b038216820361089a57565b35906001600160a01b038216820361089a57565b602435906001600160a01b038216820361089a57565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9181601f8401121561089a5782359167ffffffffffffffff831161089a576020808501948460051b01011161089a57565b6060810190811067ffffffffffffffff821117611c7057604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff821117611c7057604052565b67ffffffffffffffff8111611c705760051b60200190565b67ffffffffffffffff8111611c7057601f01601f191660200190565b3d15611d04573d90611ceb82611cbe565b91611cf96040519384611c84565b82523d5f602084013e565b606090565b9190811015611d195760051b0190565b634e487b7160e01b5f52603260045260245ffd5b356001600160a01b038116810361089a5790565b8051821015611d195760209160051b010190565b903590601e198136030182121561089a570180359067ffffffffffffffff821161089a5760200191813603831361089a57565b929192611d9482611cbe565b91611da26040519384611c84565b82948184528183011161089a578281602093845f960137010152565b939194929094611ddb611dd46040870187611d55565b3691611d88565b6020815191012095611df3611dd46060880188611d55565b6020815191012095611e0860e0820182611d55565b60341161089a576014013560405197602089019983356001600160a01b03168b52602084013560408b015260608a01526080890152608082013560a089015260c088015260a081013560e088015260c00135610100870152466101208701523061014087015265ffffffffffff1661016086015265ffffffffffff166101808501526001600160a01b03166101a08401526101c083015263ffffffff166101e08201526101e08152611ebc61020082611c84565b51902090565b9081602091031261089a575160ff8116810361089a5790565b638b78c6d819543303611eea57565b6382b429005f526004601cfd5b5f51602061281c5f395f51905f525c611f1d5760015f51602061281c5f395f51905f525d565b633ee5aeb560e01b5f5260045ffd5b8015611fa4575f806040516020810190632e1a7d4d60e01b825284602482015260248152611f5b604482611c84565b5190827f00000000000000000000000000000000000000000000000000000000000000005af1611f89611cda565b5015611f925750565b637bd5213f60e11b5f5260045260245ffd5b50565b81810292918115918404141715611fba57565b634e487b7160e01b5f52601160045260245ffd5b8115611fd8570490565b634e487b7160e01b5f52601260045260245ffd5b6001600160a01b0316805f52600460205260405f206040519061200e82611c54565b600181549163ffffffff6001600160a01b0384169384865260a01c16602085015201549060408301918252156120f4576001600160a01b036120549251169051906125ff565b6004602061208e6001600160a01b03600354167f0000000000000000000000000000000000000000000000000000000000000000906125ff565b936040519283809263313ce56760e01b82525afa8015611bb45760ff915f916120d5575b5016604d8111611fba576120d2926120cd91600a0a90611fa7565b611fce565b90565b6120ee915060203d6020116103c1576103b38183611c84565b5f6120b2565b633dd1b30560e01b5f5260045ffd5b906001600160a01b0381169182156121a0576001600160a01b031690601452826034526fa9059cbb0000000000000000000000005f5260205f6044601082855af18060015f51141615612182575b505f6034527f4e5ba90310f16273bb12f3c33f23905e573b86df58a2895a525285d083bf043f6020604051338152a4565b3d823b15171015612193575f612151565b6390b8ec185f526004601cfd5b6392bc9df360e01b5f5260045ffd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036121e157565b60405162461bcd60e51b815260206004820152601560248201527f53656e646572206e6f7420456e747279506f696e7400000000000000000000006044820152606490fd5b919060609060e08401905f61223b8387611d55565b9390918460341015611d1957603483013560f81c956002871015612589578560351161089a5760358401916034198701936001891161257a5761227e908b611d55565b60341161089a576024013560801c6fffffffffffffffffffffffffffffffff60808c013516016fffffffffffffffffffffffffffffffff8111611fba576fffffffffffffffffffffffffffffffff600a9116026fffffffffffffffffffffffffffffffff8116908103611fba57606490046fffffffffffffffffffffffffffffffff1697806124c3575050508160061161089a573560d01c94600c821061089a57603b83013560d01c976020831061089a57604184013560601c956040841061089a5760558501359360441161089a5761236a90607586013560e01c9560793692607819019101611d88565b8051604081141590816124b7575b506124a8576123c9908861239c87878b8f6001600160a01b03600154169589611dbe565b6020527b19457468657265756d205369676e6564204d6573736167653a0a33325f52603c600420906126c0565b15612452579165ffffffffffff60a01b9593916001600160a01b0361240f7fffffffffffff00000000000000000000000000000000000000000000000000009795611d2d565b9581604051971660208801521660408601526060850152608084015260a083015260c082015260c0815261244460e082611c84565b9460d01b169160a01b161790565b50505050505065ffffffffffff60a01b7fffffffffffff00000000000000000000000000000000000000000000000000006001939460d01b169160a01b161717906040516124a1602082611c84565b5f81529190565b634be6321b60e01b5f5260045ffd5b6041915014155f612378565b90989794506001919993959650146124dd575b5050505050565b90919280949597965060141161089a5735851c6001600160a01b0316926013190161256b5761250b90611d2d565b93825f5260046020526001600160a01b0363ffffffff60405f205460a01c169381604051971660208801521660408601528401525f608084015260a083015260c082015260c0815261255e60e082611c84565b905f905f808080806124d6565b630f58058360e11b5f5260045ffd5b63817c70e760e01b5f5260045ffd5b634e487b7160e01b5f52602160045260245ffd5b6001600160a01b031680638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3638b78c6d81955565b91908201809211611fba57565b519069ffffffffffffffffffff8216820361089a57565b9060a06001600160a01b0392600460405180958193633fabe5a360e21b8352165afa908115611bb4575f925f9261266a575b505f83131561265b57420390428211611fba571061264c5790565b63757ee0c360e11b5f5260045ffd5b631319f4b960e11b5f5260045ffd5b9250905060a0823d60a0116126b8575b8161268760a09383611c84565b8101031261089a57612698826125e8565b5060208201516126af6080606085015194016125e8565b5091905f612631565b3d915061267a565b92915f936001600160a01b038116156127bf576040519282518060401461278357604114612743575b85156126f6575b50505050565b602093949550630b135d3f60e11b855260048501526024840193849260408452805185019081604484019160045afa5060443d01915afa9051630b135d3f60e11b1416905f8080806126f0565b945060608201515f1a60205260408201516060525b845f5260208201516040526020600160805f825afa51811860601b3d11945f606052836040526126e9565b5094507f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040830151601b8160ff1c0160205216606052612758565b505f93505050565b905f602091828151910182855af115611bb4575f513d61281257506001600160a01b0381163b155b6127f65750565b6001600160a01b0390635274afe760e01b5f521660045260245ffd5b600114156127ef56fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a164736f6c634300081b000a","sourceMap":"2174:24914:8:-:0;;;;;;;;;-1:-1:-1;2174:24914:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2174:24914:8;;;;;;:::i;:::-;11885:237:130;;;;;2174:24914:8;11885:237:130;;;;2174:24914:8;;;;;;;;;;-1:-1:-1;2174:24914:8;;-1:-1:-1;;2174:24914:8;;;;;;:::i;:::-;12478:70:130;;:::i;:::-;8479:183;;;;;;8681:8;;;:::i;:::-;2174:24914:8;;8479:183:130;;;;2174:24914:8;8479:183:130;;2174:24914:8;-1:-1:-1;2174:24914:8;;-1:-1:-1;;2174:24914:8;;;;;;:::i;:::-;12478:70:130;;:::i;:::-;10506:526;;;;;;2174:24914:8;10506:526:130;;;;;;;;;;11051:12;10506:526;;11051:12;:::i;10506:526::-;;;;2174:24914:8;10506:526:130;;2174:24914:8;;;;;;;;;;;;;;;;-1:-1:-1;;;;;947:38:9;2174:24914:8;;;;;-1:-1:-1;2174:24914:8;;-1:-1:-1;;2174:24914:8;;;;;;:::i;:::-;12478:70:130;;:::i;:::-;2174:24914:8;;-1:-1:-1;;;11937:17:8;;-1:-1:-1;;;;;2174:24914:8;;;;;;;;;11937:17;;;;;;;11958:1;11937:17;2174:24914;11937:17;;;;;2174:24914;;;11937:22;11933:140;;-1:-1:-1;;;;;12119:22:8;2174:24914;;12151:92;12119:22;12151:92;12258:59;;;;2174:24914;;11933:140;-1:-1:-1;;;12039:23:8;;2174:24914;24717:23;12039;11937:17;;;;2174:24914;11937:17;2174:24914;11937:17;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2174:24914;;;;;;;;;;-1:-1:-1;2174:24914:8;;-1:-1:-1;;2174:24914:8;;;;;;:::i;:::-;;;-1:-1:-1;;2174:24914:8;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;12478:70:130;;:::i;:::-;2174:24914:8;;-1:-1:-1;;;;;2174:24914:8;;;;;;;;;;;;24662:27;;;;;;;;;24693:1;24662:27;2174:24914;24662:27;;;;;2174:24914;;;24662:32;24658:93;;2174:24914;;;;3075:3;24764:41;;:87;;;;;2174:24914;24760:145;;;2174:24914;;24918:15;:47;24914:113;;-1:-1:-1;;;;;2174:24914:8;;;;;;;;;;;;-1:-1:-1;;;;;2174:24914:8;;;;;;;;;;;;;;;;;;2962:3;-1:-1:-1;;;;;;;2962:3:8;;;;;;;;;;;;2174:24914;;;;;;;-1:-1:-1;;;12909:39:8;;2174:24914;;;;12909:39;;;;;;;;12855:94;12909:39;2174:24914;12909:39;;;;;2174:24914;;;;;;;;;12855:94;2174:24914;;12909:39;;;;;;;;;;;;;;:::i;:::-;;;;24914:113;-1:-1:-1;;;24988:28:8;;2174:24914;11346:28;24988;24760:145;-1:-1:-1;;;24874:20:8;;2174:24914;10629:20;24874;24764:87;2962:3;24809:42;;;24764:87;;;24658:93;-1:-1:-1;;;24717:23:8;;2174:24914;24717:23;;24662:27;;;;2174:24914;24662:27;2174:24914;24662:27;;;;;;;:::i;:::-;;;;;2174:24914;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2174:24914:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2174:24914:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1181:103:49;;:::i;:::-;15500:10:8;-1:-1:-1;;;;;15500:10:8;2174:24914;15500:55;;;;;2174:24914;15500:55;2174:24914;;;;;;;;;;15500:55;;15549:4;2174:24914;15500:55;;2174:24914;15529:9;15500:55;;;;;;;;;2174:24914;3550:68:51;-1:-1:-1;;;;;;;;;;;3550:68:51;2174:24914:8;;15500:55;;;;;:::i;:::-;2174:24914;;15500:55;;;;;2174:24914;;;;;;;;;15500:55;2174:24914;;;-1:-1:-1;2174:24914:8;;-1:-1:-1;;2174:24914:8;;;;;;:::i;:::-;;;;;;;;;;;;12478:70:130;;:::i;:::-;3075:3:8;10465:45;;:95;;;;2174:24914;10461:199;;-1:-1:-1;;;;;2174:24914:8;;;;;;;;;;;;;;;;;;;;;;2962:3;;-1:-1:-1;;;;2962:3:8;2174:24914;2962:3;;;-1:-1:-1;;;2962:3:8;;;;2174:24914;;;;10859:77;;;;2174:24914;;10461:199;-1:-1:-1;;;10629:20:8;;2174:24914;10629:20;;10465:95;10514:46;2962:3;10514:46;;10465:95;;2174:24914;;;;;;;;;;;;;;;-1:-1:-1;;;3569:35:0;;3598:4;2174:24914:8;3569:35:0;;2174:24914:8;;;;3569:35:0;2174:24914:8;3569:10:0;-1:-1:-1;;;;;2174:24914:8;3569:35:0;;;;;;;;;;2174:24914:8;;;;;;;;;3569:35:0;;2174:24914:8;3569:35:0;;2174:24914:8;3569:35:0;;;;;;2174:24914:8;3569:35:0;;;:::i;:::-;;;2174:24914:8;;;;;;;3569:35:0;;2174:24914:8;-1:-1:-1;2174:24914:8;;3569:35:0;;;-1:-1:-1;3569:35:0;;;2174:24914:8;;;;;;;;;;;;;;;;;-1:-1:-1;;2174:24914:8;;;;;;;:::i;:::-;12478:70:130;;:::i;:::-;-1:-1:-1;;;;;2107:10:0;2174:24914:8;2107:41:0;;;;;;-1:-1:-1;;;;;2107:41:0;2174:24914:8;;;;;;;;;;;;;2107:41:0;;2174:24914:8;;2107:41:0;;2174:24914:8;2107:41:0;;;;;;;;2174:24914:8;;2107:41:0;;;;;:::i;:::-;2174:24914:8;;2107:41:0;2174:24914:8;2107:41:0;2174:24914:8;;;;-1:-1:-1;2174:24914:8;;-1:-1:-1;;2174:24914:8;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12478:70:130;;;;;:::i;:::-;2174:24914:8;;;;13882:44;13878:112;;14005:13;;2126::9;-1:-1:-1;;;;;2174:24914:8;;-1:-1:-1;14005:13:8;14047:3;2174:24914;;14020:25;;;;;14080:17;-1:-1:-1;;;;;14080:17:8;2174:24914;14080:17;;;:::i;:::-;2174:24914;;;14099:15;;;;:::i;:::-;2174:24914;;;;;;4567:47:43;;;;2174:24914:8;;;4567:47:43;;;2174:24914:8;4567:47:43;;2174:24914:8;2142:17:9;;4567:47:43;2174:24914:8;;;4567:47:43;;;;;;;:::i;:::-;9138:199;;;;;;;;;;9353:80;;;14047:3:8;4629:45:43;;;4625:201;;14047:3:8;2174:24914;;;;;;;;;;;;;;;;;;;14005:13;;4625:201:43;4802:12;2174:24914:8;4717:43:43;2174:24914:8;;;;;;4717:43:43;;;;2174:24914:8;4717:43:43;;2174:24914:8;;4567:47:43;2174:24914:8;;;4567:47:43;4717:43;;;4567:47;4717:43;;:::i;:::-;;;:::i;:::-;4802:12;;:::i;:::-;4625:201;;;9353:80;9365:67;;-1:-1:-1;9365:15:43;;9383:26;;;:30;;9365:67;9353:80;;;;9365:67;9416:16;;9365:67;;14020:25:8;;;;2174:24914;;;;;;;;;;;;;;;;;;;;;;;14140:36;;;;2174:24914;;;;;-1:-1:-1;;;;;2174:24914:8;;;;;-1:-1:-1;2174:24914:8;;;;;;;;;;;;;13878:112;-1:-1:-1;;;13949:30:8;;2174:24914;13949:30;;2174:24914;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;12478:70:130;;:::i;:::-;1770:10:0;-1:-1:-1;;;;;1770:10:0;2174:24914:8;1770:24:0;;;;;2174:24914:8;;;;;;;;;;;;;1770:24:0;;;;;;;;;;2174:24914:8;;;;;;;;;-1:-1:-1;;2174:24914:8;;;;;;;;-1:-1:-1;;;;;2174:24914:8;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;657:39:0;2174:24914:8;;;;;;;;;;;;;;;;;;2600:29;2174:24914;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2635:37:8;2174:24914;;;;;;;;;;;;;;;;;;;;;;6813:405:130;;11523:61;-1:-1:-1;;;;;2174:24914:8;;;;;;;;;;;;;;-1:-1:-1;;2174:24914:8;;;;18985:59;2174:24914;;;-1:-1:-1;;;;;2174:24914:8;;:::i;:::-;;;;;;;;18985:59;2174:24914;;;;;;;;;;;;;;-1:-1:-1;;2174:24914:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2192:298:0;;;:::i;:::-;2174:24914:8;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2174:24914:8;;;;;22898:290;;23380:15;23377:250;;2174:24914;;24016:109;2174:24914;24031:71;24047:55;24016:122;2174:24914;24049:27;2174:24914;;;;;;24049:14;2174:24914;24049:27;:::i;:::-;24047:55;:::i;:::-;24031:71;;:::i;24016:122::-;24150:22;:43;2174:24914;;;;;;;;;;;;;;;24016:178;;;;:::i;:::-;24209:91;2174:24914;10384:740:134;;;2174:24914:8;10384:740:134;24281:4:8;2174:24914;10384:740:134;;;;2174:24914:8;10384:740:134;;;;;;;2174:24914:8;10384:740:134;2174:24914:8;10384:740:134;;;;;;2174:24914:8;10384:740:134;;;;;;;2174:24914:8;10384:740:134;2174:24914:8;10384:740:134;;2174:24914:8;10384:740:134;24205:353:8;24209:91;;;2174:24914;;;;;24321:115;2174:24914;;;;;;;;;;;;;;;;;;;;;;;24321:115;2174:24914;;24205:353;24474:73;2174:24914;24474:73;;;;;;;;2174:24914;24474:73;;2174:24914;;;;;;;;;;;;;24474:73;10384:740:134;;;;;;;;;2174:24914:8;-1:-1:-1;;;2174:24914:8;;;;;;;;23377:250;23424:23;;;;;:::i;:::-;23541:15;;23377:250;23538:79;-1:-1:-1;;;23583:19:8;;2174:24914;;23583:19;2174:24914;-1:-1:-1;2174:24914:8;;-1:-1:-1;;2174:24914:8;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;12478:70:130;;;:::i;:::-;1181:103:49;;:::i;:::-;8365:9:8;8376:16;;;;;;3550:68:51;;-1:-1:-1;;;;;;;;;;;3550:68:51;2174:24914:8;;8365:9;8430:8;2174:24914;-1:-1:-1;;;;;8430:8:8;;2174:24914;8430:8;;;;:::i;:::-;;:::i;:::-;2174:24914;;;;;;;;;;8430:33;;8457:4;2174:24914;8430:33;;2174:24914;8430:33;;;;;;;;;;;8365:9;8496:8;8514:6;2174:24914;8496:8;;;;;;;;:::i;:::-;8514:6;:::i;:::-;2174:24914;8365:9;;8430:33;;;2174:24914;8430:33;;;;;;;;;2174:24914;8430:33;;;:::i;:::-;;;2174:24914;;;;;;;8514:6;8430:33;;;;;-1:-1:-1;8430:33:8;;2174:24914;;;;;;;-1:-1:-1;;2174:24914:8;;;;-1:-1:-1;;;;;2174:24914:8;;;;;;:::i;:::-;;;;;;;;;;18199:69;;2174:24914;;;;;;;-1:-1:-1;2174:24914:8;;-1:-1:-1;;2174:24914:8;;;;;;12478:70:130;;:::i;:::-;2870:7:8;9791:42;;9787:103;;9927:14;2174:24914;9951:95;9927:14;9951:95;10060:59;;;;2174:24914;;9787:103;-1:-1:-1;;;9856:23:8;;2174:24914;9856:23;;2174:24914;;;;;;;;;;;;;;;;-1:-1:-1;;;;;817:44:9;2174:24914:8;;;;;;;;;;;;;;12478:70:130;;:::i;:::-;6813:405;;;;;;;;;;;;2174:24914:8;;;-1:-1:-1;2174:24914:8;;-1:-1:-1;;2174:24914:8;;;;;;:::i;:::-;12478:70:130;;:::i;:::-;6221:74:0;;9049:77:8;;-1:-1:-1;;;;;2174:24914:8;;9140:32;;9136:99;;-1:-1:-1;;;;;9264:15:8;2174:24914;;9289:97;9264:15;9289:97;9454:10;9400:65;;;;;2174:24914;;9136:99;-1:-1:-1;;;9195:29:8;;2174:24914;9195:29;;9049:77;-1:-1:-1;;;9093:33:8;;2174:24914;9093:33;;2174:24914;-1:-1:-1;2174:24914:8;;-1:-1:-1;;2174:24914:8;;;;-1:-1:-1;;;;;2174:24914:8;;:::i;:::-;12478:70:130;;:::i;:::-;2174:24914:8;;;;;;;;;;;;;;;;;13336:39;;;;2174:24914;;;;;;;;;-1:-1:-1;;2174:24914:8;;;;;;;;-1:-1:-1;;;;;2174:24914:8;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;2174:24914:8;;-1:-1:-1;;2174:24914:8;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;12478:70:130;;;;:::i;:::-;1181:103:49;;:::i;:::-;7659:29:8;;;7655:99;;7792:9;7803:16;;;;;;3550:68:51;;-1:-1:-1;;;;;;;;;;;3550:68:51;2174:24914:8;;7792:9;7855:8;7873:9;7855:8;;2174:24914;7855:8;;;;:::i;:::-;7873:9;;;;;;:::i;:::-;2174:24914;7873:9;;:::i;:::-;2174:24914;7792:9;;7655:99;-1:-1:-1;;;7711:32:8;;2174:24914;7711:32;;2174:24914;-1:-1:-1;2174:24914:8;;-1:-1:-1;;2174:24914:8;;;;;;:::i;:::-;;;:::i;:::-;12478:70:130;;;:::i;:::-;1181:103:49;;:::i;:::-;2174:24914:8;;-1:-1:-1;;;7098:30:8;;7122:4;2174:24914;7098:30;;2174:24914;;;;;;-1:-1:-1;;;;;2174:24914:8;;7098:30;;;;;;;;;;;2174:24914;7168:6;;;;:::i;:::-;3550:68:51;-1:-1:-1;;;;;;;;;;;3550:68:51;2174:24914:8;;7098:30;;;2174:24914;7098:30;;2174:24914;7098:30;;;;;;2174:24914;7098:30;;;:::i;:::-;;;2174:24914;;;;7168:6;2174:24914;;7098:30;;;;;;-1:-1:-1;7098:30:8;;2174:24914;;;;;;;;;;9831:339:130;;;;;;;;;;;;;;;;2174:24914:8;;;;;;;;;-1:-1:-1;;2174:24914:8;;;;;;;;;;;;;;;;;;;;;;;19366:2958;2737:22:0;;;:::i;:::-;2174:24914:8;;;;;19366:2958;:::i;:::-;2174:24914;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;2174:24914:8;;;;;;;-1:-1:-1;;;;;2174:24914:8;;:::i;:::-;;;;;;;;2705:62;2174:24914;;2705:62;;2174:24914;;;;;-1:-1:-1;;;;;2174:24914:8;;;;;;;;;;;;;;;;;-1:-1:-1;2174:24914:8;;-1:-1:-1;;2174:24914:8;;;;6288:6;2174:24914;;:::i;:::-;;;:::i;:::-;12478:70:130;;:::i;:::-;1181:103:49;;:::i;:::-;2174:24914:8;;6288:6;;:::i;2174:24914::-;-1:-1:-1;2174:24914:8;;-1:-1:-1;;2174:24914:8;;;;;;:::i;:::-;;;12478:70:130;;;:::i;:::-;11297:15:8;;:40;11294:80;;-1:-1:-1;;;;;2174:24914:8;;;;;;;;;;;11417:59;2174:24914;;;;;;;;;;;;11486:59;2174:24914;11585:74;;;;2174:24914;;11294:80;-1:-1:-1;;;11346:28:8;;2174:24914;11346:28;;2174:24914;;;;;;;-1:-1:-1;;2174:24914:8;;;;;17884:23;2174:24914;;:::i;:::-;17884:23;:::i;2174:24914::-;-1:-1:-1;2174:24914:8;;-1:-1:-1;;2174:24914:8;;;;;;:::i;:::-;-1:-1:-1;;;;;2174:24914:8;;1181:103:49;;;:::i;:::-;2174:24914:8;;;;;;;;;;;;;;2435:26:9;2174:24914:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2174:24914:8;;;;;;;2546:344:9;;2637:13;;;2174:24914:8;;;;2546:344:9;;2174:24914:8;;;;2546:344:9;;2723:4;2174:24914:8;;2546:344:9;;;;2174:24914:8;;;;;2546:344:9;;;2174:24914:8;;;;;2546:344:9;;;;2174:24914:8;;;;;;;;;;;2905:38:9;;2174:24914:8;;;2905:38:9;;2174:24914:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2905:13:9;:38;:13;;-1:-1:-1;;;;;2905:13:9;2174:24914:8;2905:38:9;;;;;;;2174:24914:8;-1:-1:-1;2901:248:9;;3021:128;3068:43;2174:24914:8;3021:128:9;;:::i;:::-;2174:24914:8;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3068:43:9;;;3125:13;2901:248;;14912:13:8;14909:203;;2901:248:9;15126:84:8;2174:24914;;;15199:10;2174:24914;;15126:84;3550:68:51;-1:-1:-1;;;;;;;;;;;3550:68:51;2174:24914:8;;14909:203;14987:9;;;:::i;:::-;15046:10;-1:-1:-1;;;;;15046:10:8;2174:24914;15046:55;;;;;2174:24914;;;;;;;;;;;;;15046:55;;2723:4:9;2174:24914:8;15046:55;;2174:24914;15046:55;;;;;;;;14909:203;;;;;15046:55;;;;;:::i;:::-;2174:24914;;15046:55;;;;2901:248:9;;;;2905:38;;;;2174:24914:8;2905:38:9;;2174:24914:8;2905:38:9;;;;;;2174:24914:8;2905:38:9;;;:::i;:::-;;;2174:24914:8;;;;;2905:38:9;;;;;;;-1:-1:-1;2905:38:9;;2174:24914:8;-1:-1:-1;;;2174:24914:8;;;;;;;;;-1:-1:-1;;;2174:24914:8;;;;;;;;;;;;;;;9239:383:130;;;;;;7972:9;9132:15;2174:24914:8;9239:383:130;;;;;;;;;2174:24914:8;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2506:30:8;2174:24914;;;;;;;;;;;;;;;-1:-1:-1;;2174:24914:8;;;;-1:-1:-1;;;;;2174:24914:8;;:::i;:::-;12478:70:130;;:::i;:::-;1181:103:49;;:::i;:::-;2174:24914:8;15992:29;;15988:71;;16069:10;;-1:-1:-1;;;;;16069:10:8;2174:24914;16069:46;;;;;;2174:24914;;16069:46;2174:24914;;;;;;;;;;;;16069:46;;2174:24914;16069:46;;2174:24914;;;;;;;16069:46;;;;;;;;3550:68:51;-1:-1:-1;;;;;;;;;;;3550:68:51;2174:24914:8;;15988:71;-1:-1:-1;;;16030:29:8;;2174:24914;16030:29;;2174:24914;-1:-1:-1;2174:24914:8;;-1:-1:-1;;2174:24914:8;;;;;;:::i;:::-;-1:-1:-1;;;;;2174:24914:8;;12478:70:130;;;:::i;:::-;1181:103:49;;:::i;:::-;2174:24914:8;6606:35;;;;;;;;;;:::i;:::-;;6655:8;6651:64;;6729:31;;;;3550:68:51;-1:-1:-1;;;;;;;;;;;3550:68:51;2174:24914:8;;6651:64;-1:-1:-1;;;6686:18:8;;2174:24914;6686:18;;2174:24914;-1:-1:-1;2174:24914:8;;-1:-1:-1;;2174:24914:8;;;;;;;;;;;;;;12478:70:130;;:::i;:::-;-1:-1:-1;;;;;1496:10:0;2174:24914:8;1496:56:0;;;;;;2174:24914:8;;1496:56:0;2174:24914:8;;;;;;;;;1496:56:0;;2174:24914:8;1496:56:0;;2174:24914:8;1524:9:0;1496:56;;;;;;;;;2174:24914:8;;;1496:56:0;;;;2174:24914:8;1496:56:0;;:::i;:::-;2174:24914:8;;;;;;;;;;;;;-1:-1:-1;;;;;2174:24914:8;;;;;;:::o;:::-;;;-1:-1:-1;;;;;2174:24914:8;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;2174:24914:8;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;2174:24914:8;;;;;;;;-1:-1:-1;;2174:24914:8;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;2174:24914:8;;;;;-1:-1:-1;2174:24914:8;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;2174:24914:8;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;2174:24914:8;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;2174:24914:8;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;2174:24914:8;;;;;;:::o;16536:1072::-;;;;;;;2174:24914;17073:15;;;;;;:::i;:::-;2174:24914;;;:::i;:::-;17033:12;2174:24914;;;;17063:26;17117:15;2174:24914;17117:15;;;;;;:::i;2174:24914::-;17033:12;2174:24914;;;;17107:26;17208:23;;;;;;;:::i;:::-;490:2:68;976:38:0;;;372:2:68;976:38:0;;17073:15:8;2174:24914;16981:610;17033:12;16981:610;;823:61:68;;;-1:-1:-1;;;;;2174:24914:8;;;17033:12;;;2174:24914;17073:15;976:38:0;;2174:24914:8;17117:15;976:38:0;;2174:24914:8;17151:23;976:38:0;;2174:24914:8;17151:23;;;2174:24914;17308:25;976:38:0;;2174:24914:8;17351:14;976:38:0;;2174:24914:8;17308:25;;;2174:24914;17208:23;976:38:0;;2174:24914:8;17351:14;;2174:24914;976:38:0;;;2174:24914:8;17383:13;976:38:0;;;2174:24914:8;17422:4;976:38:0;;;2174:24914:8;;;976:38:0;;;;2174:24914:8;;976:38:0;;;;-1:-1:-1;;;;;2174:24914:8;976:38:0;;;2174:24914:8;976:38:0;;;2174:24914:8;;;976:38:0;;;2174:24914:8;976:38:0;16981:610:8;;;;;;:::i;:::-;2174:24914;16958:643;;16536:1072;:::o;2174:24914::-;;;;;;;;;;;;;;;;;;:::o;7292:355:130:-;-1:-1:-1;;7390:251:130;;;;;7292:355::o;7390:251::-;;;;;;;1290:346:49;-1:-1:-1;;;;;;;;;;;3321:69:51;1413:93:49;;1624:4;-1:-1:-1;;;;;;;;;;;3550:68:51;1290:346:49:o;1413:93::-;1465:30;;;-1:-1:-1;1465:30:49;;-1:-1:-1;1465:30:49;3161:252:9;3220:11;;3217:23;;3230:1;2174:24914:8;;;3296:52:9;;;;;;;;;;;;;2174:24914:8;3296:52:9;;;;;;;:::i;:::-;3268:81;3276:13;;;3268:81;;;;:::i;:::-;;3363:8;3359:47;;3161:252;:::o;3359:47::-;3380:26;;;3230:1;3380:26;3296:52;2174:24914:8;3296:52:9;3230:1;3380:26;3217:23;3233:7;:::o;2174:24914:8:-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;25158:770;-1:-1:-1;;;;;2174:24914:8;;-1:-1:-1;2174:24914:8;25326:25;2174:24914;;;-1:-1:-1;2174:24914:8;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;2174:24914:8;;;;;;;;;;;;;;;;;;;;;;25380:39;25376:152;;-1:-1:-1;;;;;25619:60:8;2174:24914;;;;;25619:60;;:::i;:::-;25326:25;2174:24914;25716:72;-1:-1:-1;;;;;25728:22:8;2174:24914;;25752:35;25716:72;;:::i;:::-;2174:24914;;;;;;;;;;25868:39;;;;;;;;2174:24914;25868:39;-1:-1:-1;25868:39:8;;;25158:770;2174:24914;;;;;;;25844:77;2174:24914;25845:62;2174:24914;;;25845:62;;:::i;:::-;25844:77;:::i;:::-;25158:770;:::o;25868:39::-;;;;2174:24914;25868:39;2174:24914;25868:39;;;;;;;:::i;:::-;;;;25376:152;2174:24914;;;-1:-1:-1;25498:19:8;25326:25;-1:-1:-1;25498:19:8;26785:301;;-1:-1:-1;;;;;2174:24914:8;;26877:20;;;26873:62;;-1:-1:-1;;;;;2174:24914:8;13252:754:134;;;;;;;26895:1:8;13252:754:134;;26895:1:8;13252:754:134;;;;;;;;26895:1:8;13252:754:134;;;;;;26785:301:8;13252:754:134;26895:1:8;13252:754:134;;27020:59:8;13252:754:134;2174:24914:8;;27068:10;2174:24914;;27020:59;26785:301::o;13252:754:134:-;;;;;;;;;;;;;;;26895:1:8;13252:754:134;;;;26873:62:8;16030:29;;;26895:1;26906:29;;26895:1;26906:29;5930:135:0;-1:-1:-1;;;;;6021:10:0;2174:24914:8;5999:10:0;:33;2174:24914:8;;5930:135:0:o;2174:24914:8:-;;;-1:-1:-1;;;2174:24914:8;;;;;;;;;;;;;;;;;;;;19366:2958;;;2174:24914;;19671:23;;;;2174:24914;19671:23;;19366:2958;19671:23;:::i;:::-;374:38:6;;;;490:2:68;374:38:6;;;;490:2:68;374:38:6;;717:39;374:38;;2174:24914:8;;;;;;;976:38:0;2174:24914:8;976:38:0;;;2174:24914:8;976:38:0;;;;;;;2174:24914:8;833:1:6;19733:15:8;;19729:75;;19931:23;;;;:::i;:::-;490:2:68;976:38:0;;;434:2:68;976:38:0;875:44;19867:23:8;875:44:0;2174:24914:8;19867:23;;;2174:24914;;875:44:0;2174:24914:8;875:44:0;;;;2174:24914:8;20030:2;2174:24914;;875:44:0;2174:24914:8;;;875:44:0;;;;;20037:3:8;875:44:0;;2174:24914:8;;;20055:30;;;976:38:0;;;;1267:1:6;976:38:0;;;2174:24914:8;;;;1327:2:6;976:38:0;-1:-1:-1;976:38:0;;;;;2174:24914:8;;;;1393:2:6;976:38:0;-1:-1:-1;976:38:0;;;;;2174:24914:8;;;;1457:2:6;976:38:0;-1:-1:-1;976:38:0;;;;;;;1527:2:6;976:38:0;;;2174:24914:8;976:38:0;;;;2174:24914:8;19671:23;2174:24914;976:38:0;;2174:24914:8;976:38:0;;;;;;2174:24914:8;:::i;:::-;;;1457:2:6;20589:22:8;;;:48;;;;20051:2267;20585:118;;;20733:255;2174:24914;;20843:86;2174:24914;;;;-1:-1:-1;;;;;833:1:6;2174:24914:8;;20843:86;;;:::i;:::-;1393:2:6;13414:265:131;;-1:-1:-1;13414:265:131;;976:38:0;13414:265:131;20733:255:8;;:::i;:::-;21085:9;21081:110;;21243:13;-1:-1:-1;;;21243:13:8;;;-1:-1:-1;;;;;21243:13:8;2174:24914;21243:13;;;:::i;:::-;2174:24914;;1457:2:6;2174:24914:8;21215:208;2174:24914;1393:2:6;21215:208:8;;2174:24914;;1457:2:6;875:44:0;;2174:24914:8;;875:44:0;;2174:24914:8;19867:23;875:44:0;;2174:24914:8;875:44:0;;;2174:24914:8;875:44:0;;;2174:24914:8;875:44:0;21215:208:8;;;19671:23;21215:208;;:::i;:::-;21454:50;2174:24914;;;;875:44:0;2174:24914:8;;2589:104:64;20051:2267:8;19366:2958::o;21081:110::-;21126:49;;;;;;-1:-1:-1;;;2174:24914:8;833:1:6;21126:49:8;;2174:24914;;;;2643:3:64;2174:24914:8;;2589:104:64;;2174:24914:8;1457:2:6;2174:24914:8;;1393:2:6;2174:24914:8;;:::i;:::-;-1:-1:-1;2174:24914:8;;21114:62;;:::o;20585:118::-;20664:24;;;-1:-1:-1;20664:24:8;976:38:0;-1:-1:-1;20664:24:8;20589:48;20635:2;20615:22;;;;20589:48;;;20051:2267;2174:24914;;;;;833:1:6;2174:24914:8;;;;;;21563:33;21559:759;;20051:2267;;;;;;19366:2958::o;21559:759::-;976:38:0;;;;;;;;;1809:2:6;976:38:0;;;2174:24914:8;;;-1:-1:-1;;;;;2174:24914:8;;-1:-1:-1;;21794:29:8;21790:96;;21938:13;;;:::i;:::-;2174:24914;;-1:-1:-1;2174:24914:8;22125:25;2174:24914;;-1:-1:-1;;;;;2174:24914:8;;-1:-1:-1;2174:24914:8;;;;;;;;;21910:312;2174:24914;;21910:312;;2174:24914;;;875:44:0;;2174:24914:8;875:44:0;;2174:24914:8;-1:-1:-1;19867:23:8;875:44:0;;2174:24914:8;;875:44:0;;2174:24914:8;875:44:0;;;2174:24914:8;875:44:0;21910:312:8;;;19671:23;21910:312;;:::i;:::-;22236:18;-1:-1:-1;21559:759:8;;;;;;;;21790:96;21850:21;;;-1:-1:-1;21850:21:8;;-1:-1:-1;21850:21:8;19729:75;19771:22;;;-1:-1:-1;19771:22:8;;-1:-1:-1;19771:22:8;2174:24914;;;;;;;;;;;;6145:1089:130;-1:-1:-1;;;;;6813:405:130;;;;;;-1:-1:-1;6813:405:130;;-1:-1:-1;;6813:405:130;6145:1089::o;2174:24914:8:-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;26362:417::-;;26517:24;-1:-1:-1;;;;;26362:417:8;26517:24;2174:24914;;;;;;;;;26517:24;;2174:24914;26517:24;;;;;;;-1:-1:-1;;;26517:24:8;;;26362:417;26555:11;-1:-1:-1;26555:11:8;;;26551:73;;26649:15;2174:24914;26649:15;;2174:24914;;;;26637:49;26633:107;;26362:417;:::o;26633:107::-;26709:20;;;-1:-1:-1;26709:20:8;26517:24;-1:-1:-1;26709:20:8;26551:73;26589:24;;;-1:-1:-1;26589:24:8;26517;-1:-1:-1;26589:24:8;26517;;;;;;;;;;;;;;;;;;;:::i;:::-;;;2174:24914;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;26517:24;;;;;;;;-1:-1:-1;26517:24:8;;1974:1926:135;;;2174:24914:8;;-1:-1:-1;;;;;2174:24914:8;;2136:20:135;2132:40;;2225:1669;;;;;;;;;;;;;;;;;;;;1974:1926;;;;:::o;2225:1669::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2225:1669:135;;;;;;;;;;;;;;;;2174:24914:8;2225:1669:135;;;;;;;;;;;2174:24914:8;2225:1669:135;;;;;;;;;;2174:24914:8;2225:1669:135;;;;;;;;;;;2174:24914:8;2225:1669:135;;;;;;;;;;;;;;;;;;;;;;;;;;;;2132:40;-1:-1:-1;2174:24914:8;;-1:-1:-1;;;2158:14:135:o;7738:720:43:-;;-1:-1:-1;7875:421:43;7738:720;7875:421;;;;;;;;;;;;-1:-1:-1;7875:421:43;;8310:15;;2174:24914:8;-1:-1:-1;;;;;2174:24914:8;;8328:26:43;:31;8310:68;8306:146;;7738:720;:::o;8306:146::-;-1:-1:-1;;;;;8401:40:43;;;;-1:-1:-1;8401:40:43;2174:24914:8;8401:40:43;2174:24914:8;;-1:-1:-1;8401:40:43;8310:68;8377:1;8362:16;;8310:68;","linkReferences":{},"immutableReferences":{"17":[{"start":1713,"length":32},{"start":2093,"length":32},{"start":2271,"length":32},{"start":3116,"length":32},{"start":3284,"length":32},{"start":6300,"length":32},{"start":6684,"length":32},{"start":6997,"length":32},{"start":8633,"length":32}],"2303":[{"start":3726,"length":32}],"2305":[{"start":8297,"length":32}],"3671":[{"start":2611,"length":32},{"start":4500,"length":32},{"start":6083,"length":32}],"3674":[{"start":725,"length":32},{"start":5924,"length":32},{"start":8032,"length":32}]}},"methodIdentifiers":{"addStake(uint32)":"0396cb60","addToTokenDirectory(address,(address,uint32,uint256))":"e0d873f2","cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","deposit()":"d0e30db0","entryPoint()":"b0d691fe","getDeposit()":"c399ec88","getHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint48,uint48,address,uint256,uint32)":"dab0f762","getPrice(address)":"41976e09","independentPriceExpiryDuration(address)":"889e1468","independentPriceMarkup(address)":"61dcc50f","independentTokenDirectory(address)":"50f6ab10","isTokenSupported(address)":"75151b63","nativeAssetToUsdOracle()":"a6e12780","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","postOp(uint8,bytes,uint256,uint256)":"7c627b21","removeFromTokenDirectory(address)":"6adf4742","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","setNativeAssetToUsdOracle(address)":"e5a29e18","setPriceExpiryDurationForToken(address,uint256)":"4230aa9e","setPriceMarkupForToken(address,uint32)":"c87558cb","setSigner(address)":"6c19e783","setUnaccountedGas(uint256)":"73acf542","swapTokenAndDeposit(address,uint256,uint256)":"40663794","tokenToPools(address)":"bacb4b7c","transferOwnership(address)":"f2fde38b","unaccountedGas()":"ab94cad7","uniswapRouter()":"735de9f7","unlockStake()":"bb9fe6bf","updateSwappableTokens(address[],uint24[])":"c23461a9","validatePaymasterUserOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),bytes32,uint256)":"52b7512c","verifyingSigner()":"23d9ac9b","withdrawERC20(address,address,uint256)":"44004cc1","withdrawERC20Full(address,address)":"5deef2aa","withdrawEth(address,uint256)":"1b9a91a4","withdrawMultipleERC20(address[],address,uint256[])":"617d057a","withdrawMultipleERC20Full(address[],address)":"78b1da23","withdrawStake(address)":"c23a5cea","withdrawTo(address,uint256)":"205c2878","wrappedNative()":"eb6d3a11"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifyingSignerArg\",\"type\":\"address\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"unaccountedGasArg\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nativeAssetDecimalsArg\",\"type\":\"uint256\"},{\"internalType\":\"contract IOracle\",\"name\":\"nativeAssetToUsdOracleArg\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nativeAssetPriceExpiryDurationArg\",\"type\":\"uint256\"},{\"internalType\":\"contract IV3SwapRouter\",\"name\":\"uniswapRouterArg\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"wrappedNativeArg\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"independentTokensArg\",\"type\":\"address[]\"},{\"components\":[{\"internalType\":\"contract IOracle\",\"name\":\"oracle\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"priceMarkup\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"priceExpiryDuration\",\"type\":\"uint256\"}],\"internalType\":\"struct IBiconomyTokenPaymaster.TokenInfo[]\",\"name\":\"tokenInfosArg\",\"type\":\"tuple[]\"},{\"internalType\":\"address[]\",\"name\":\"swappableTokens\",\"type\":\"address[]\"},{\"internalType\":\"uint24[]\",\"name\":\"swappableTokenPoolFeeTiers\",\"type\":\"uint24[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CanNotWithdrawToZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"}],\"name\":\"FailedToChargeTokens\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FeeCollectorCanNotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOracleDecimals\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPaymasterMode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPriceExpiryDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPriceMarkup\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTokenAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OraclePriceExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OraclePriceNotPositive\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokenNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokensAndAmountsLengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokensAndInfoLengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokensAndPoolsLengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnaccountedGasTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"}],\"name\":\"UniswapReverted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"UnwrappingReverted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VerifyingSignerCanNotBeContract\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VerifyingSignerCanNotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WithdrawalFailed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IOracle\",\"name\":\"oracle\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"}],\"name\":\"AddedToTokenDirectory\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"EthWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"userOpSender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasCostBeforePostOpAndPenalty\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenCharge\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"priceMarkup\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"}],\"name\":\"PaidGasInTokens\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Received\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"name\":\"RemovedFromTokenDirectory\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address[]\",\"name\":\"tokenAddresses\",\"type\":\"address[]\"}],\"name\":\"SwappableTokensAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"SwappingReverted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenAmount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"actor\",\"type\":\"address\"}],\"name\":\"TokensSwappedAndRefilledEntryPoint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"actor\",\"type\":\"address\"}],\"name\":\"TokensWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldFeeCollector\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newFeeCollector\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"actor\",\"type\":\"address\"}],\"name\":\"UpdatedFeeCollector\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"oldValue\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"newValue\",\"type\":\"uint32\"}],\"name\":\"UpdatedFixedPriceMarkup\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IOracle\",\"name\":\"oldOracle\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IOracle\",\"name\":\"newOracle\",\"type\":\"address\"}],\"name\":\"UpdatedNativeAssetOracle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldValue\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newValue\",\"type\":\"uint256\"}],\"name\":\"UpdatedPriceExpiryDuration\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldValue\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newValue\",\"type\":\"uint256\"}],\"name\":\"UpdatedUnaccountedGas\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldSigner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newSigner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"actor\",\"type\":\"address\"}],\"name\":\"UpdatedVerifyingSigner\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"unstakeDelaySec\",\"type\":\"uint32\"}],\"name\":\"addStake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"contract IOracle\",\"name\":\"oracle\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"priceMarkup\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"priceExpiryDuration\",\"type\":\"uint256\"}],\"internalType\":\"struct IBiconomyTokenPaymaster.TokenInfo\",\"name\":\"tokenInfo\",\"type\":\"tuple\"}],\"name\":\"addToTokenDirectory\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"entryPoint\",\"outputs\":[{\"internalType\":\"contract IEntryPoint\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"},{\"internalType\":\"uint48\",\"name\":\"validUntil\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"validAfter\",\"type\":\"uint48\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"appliedPriceMarkup\",\"type\":\"uint32\"}],\"name\":\"getHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"name\":\"independentPriceExpiryDuration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"name\":\"independentPriceMarkup\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"independentTokenDirectory\",\"outputs\":[{\"internalType\":\"contract IOracle\",\"name\":\"oracle\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"priceMarkup\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"priceExpiryDuration\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"name\":\"isTokenSupported\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nativeAssetToUsdOracle\",\"outputs\":[{\"internalType\":\"contract IOracle\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum IPaymaster.PostOpMode\",\"name\":\"mode\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"context\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"actualGasCost\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actualUserOpFeePerGas\",\"type\":\"uint256\"}],\"name\":\"postOp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"name\":\"removeFromTokenDirectory\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IOracle\",\"name\":\"oracle\",\"type\":\"address\"}],\"name\":\"setNativeAssetToUsdOracle\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"newPriceExpiryDuration\",\"type\":\"uint256\"}],\"name\":\"setPriceExpiryDurationForToken\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"newIndependentPriceMarkup\",\"type\":\"uint32\"}],\"name\":\"setPriceMarkupForToken\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newVerifyingSigner\",\"type\":\"address\"}],\"name\":\"setSigner\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newUnaccountedGas\",\"type\":\"uint256\"}],\"name\":\"setUnaccountedGas\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minEthAmountRecevied\",\"type\":\"uint256\"}],\"name\":\"swapTokenAndDeposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"tokenToPools\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unaccountedGas\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"uniswapRouter\",\"outputs\":[{\"internalType\":\"contract IV3SwapRouter\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unlockStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"tokenAddresses\",\"type\":\"address[]\"},{\"internalType\":\"uint24[]\",\"name\":\"poolFeeTiers\",\"type\":\"uint24[]\"}],\"name\":\"updateSwappableTokens\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"maxCost\",\"type\":\"uint256\"}],\"name\":\"validatePaymasterUserOp\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"context\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"validationData\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"verifyingSigner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawERC20\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"withdrawERC20Full\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawEth\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20[]\",\"name\":\"token\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"amount\",\"type\":\"uint256[]\"}],\"name\":\"withdrawMultipleERC20\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20[]\",\"name\":\"token\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"withdrawMultipleERC20Full\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"withdrawAddress\",\"type\":\"address\"}],\"name\":\"withdrawStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wrappedNative\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"author\":\"ShivaanshKlivingrockrises\",\"details\":\"A paymaster that allows users to pay gas fees in ERC20 tokens. The paymaster uses the precharge and refund model to handle gas remittances. Currently, the paymaster supports two modes: 1. EXTERNAL - Relies on a quoted token price from a trusted entity (verifyingSigner). 2. INDEPENDENT - Relies purely on price oracles (Chainlink and TWAP) which implement the IOracle interface. This mode doesn't require a signature and is \\\"always available\\\" to use. The paymaster's owner has full discretion over the supported tokens (for independent mode), price adjustments applied, and how to manage the assets received by the paymaster.\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"addStake(uint32)\":{\"params\":{\"unstakeDelaySec\":\"- The unstake delay for this paymaster. Can only be increased.\"}},\"addToTokenDirectory(address,(address,uint32,uint256))\":{\"details\":\"Set or update a TokenInfo entry in the independentTokenDirectory mapping.\",\"params\":{\"tokenAddress\":\"The token address to add or update in directory\",\"tokenInfo\":\"The TokenInfo struct to add or update\"}},\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"markup and expiry duration are provided for each token. Price expiry duration should be set to the heartbeat value of the token. Additionally, priceMarkup must be higher than Chainlink\\u2019s deviation threshold value. More: https://docs.chain.link/architecture-overview/architecture-decentralized-model \"},\"getPrice(address)\":{\"details\":\"Get the price of a token in USD\",\"params\":{\"tokenAddress\":\"The address of the token to get the price of\"},\"returns\":{\"_0\":\"price The price of the token in USD\"}},\"independentPriceExpiryDuration(address)\":{\"details\":\"Get the price expiry duration for a token\",\"params\":{\"tokenAddress\":\"The address of the token to get the price expiry duration of\"},\"returns\":{\"_0\":\"priceExpiryDuration The price expiry duration for the token\"}},\"independentPriceMarkup(address)\":{\"details\":\"Get the price markup for a token\",\"params\":{\"tokenAddress\":\"The address of the token to get the price markup of\"},\"returns\":{\"_0\":\"priceMarkup The price markup for the token\"}},\"isTokenSupported(address)\":{\"details\":\"Check if a token is supported\",\"params\":{\"tokenAddress\":\"The address of the token to check\"},\"returns\":{\"_0\":\"bool True if the token is supported, false otherwise\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"postOp(uint8,bytes,uint256,uint256)\":{\"params\":{\"actualGasCost\":\"- Actual gas used so far (without this postOp call).\",\"actualUserOpFeePerGas\":\"- the gas price this UserOp pays. This value is based on the UserOp's maxFeePerGas and maxPriorityFee (and basefee) It is not the same as tx.gasprice, which is what the bundler pays.\",\"context\":\"- The context value returned by validatePaymasterUserOp\",\"mode\":\"- Enum with the following options: opSucceeded - User operation succeeded. opReverted - User op reverted. The paymaster still has to pay for gas. postOpReverted - never passed in a call to postOp().\"}},\"removeFromTokenDirectory(address)\":{\"details\":\"Remove a token from the independentTokenDirectory mapping.\",\"params\":{\"tokenAddress\":\"The token address to remove from directory\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"setNativeAssetToUsdOracle(address)\":{\"details\":\"Update the native oracle address\",\"params\":{\"oracle\":\"The new native asset oracle\"}},\"setPriceExpiryDurationForToken(address,uint256)\":{\"details\":\"Set a new price expiry duration.\",\"params\":{\"newPriceExpiryDuration\":\"The new value to be set as the price expiry duration\"}},\"setPriceMarkupForToken(address,uint32)\":{\"details\":\"Set a new priceMarkup value.\",\"params\":{\"newIndependentPriceMarkup\":\"The new value to be set as the price markup\"}},\"setSigner(address)\":{\"details\":\"Set a new verifying signer address. Can only be called by the owner of the contract.\",\"params\":{\"newVerifyingSigner\":\"The new address to be set as the verifying signer.\"}},\"setUnaccountedGas(uint256)\":{\"details\":\"Set a new unaccountedEPGasOverhead value.\",\"params\":{\"newUnaccountedGas\":\"The new value to be set as the unaccounted gas value\"}},\"swapTokenAndDeposit(address,uint256,uint256)\":{\"details\":\"Swap a token in the paymaster for ETH and deposit the amount received into the entry point\",\"params\":{\"minEthAmountRecevied\":\"The minimum amount of ETH amount recevied post-swap\",\"tokenAddress\":\"The token address of the token to swap\",\"tokenAmount\":\"The amount of the token to swap\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"},\"updateSwappableTokens(address[],uint24[])\":{\"details\":\"Update or add a swappable token to the Uniswapper\",\"params\":{\"poolFeeTiers\":\"The pool fee tiers for the corresponding token address to use\",\"tokenAddresses\":\"The token address to add/update to/for uniswapper\"}},\"validatePaymasterUserOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),bytes32,uint256)\":{\"params\":{\"maxCost\":\"- The maximum cost of this transaction (based on maximum gas and gas price from userOp).\",\"userOp\":\"- The user operation.\",\"userOpHash\":\"- Hash of the user's request data.\"},\"returns\":{\"context\":\" - Value to send to a postOp. Zero length to signify postOp is not required.\",\"validationData\":\"- Signature and time-range of this operation, encoded the same as the return value of validateUserOperation. <20-byte> sigAuthorizer - 0 for valid signature, 1 to mark signature failure, other values are invalid for paymaster. <6-byte> validUntil - last timestamp this operation is valid. 0 for \\\"indefinite\\\" <6-byte> validAfter - first timestamp this operation is valid Note that the validation code cannot use block.timestamp (or block.number) directly.\"}},\"withdrawERC20(address,address,uint256)\":{\"details\":\"pull tokens out of paymaster in case they were sent to the paymaster at any point.\",\"params\":{\"amount\":\"amount to withdraw\",\"target\":\"address to send to\",\"token\":\"the token deposit to withdraw\"}},\"withdrawERC20Full(address,address)\":{\"details\":\"pull tokens out of paymaster in case they were sent to the paymaster at any point.\",\"params\":{\"target\":\"address to send to\",\"token\":\"the token deposit to withdraw\"}},\"withdrawEth(address,uint256)\":{\"details\":\"Withdraw ETH from the paymaster\",\"params\":{\"amount\":\"The amount of ETH to withdraw\",\"recipient\":\"The address to send the ETH to\"}},\"withdrawMultipleERC20(address[],address,uint256[])\":{\"details\":\"pull multiple tokens out of paymaster in case they were sent to the paymaster at any point.\",\"params\":{\"amount\":\"amounts to withdraw\",\"target\":\"address to send to\",\"token\":\"the tokens deposit to withdraw\"}},\"withdrawMultipleERC20Full(address[],address)\":{\"details\":\"pull multiple tokens out of paymaster in case they were sent to the paymaster at any point.\",\"params\":{\"target\":\"address to send to\",\"token\":\"the tokens deposit to withdraw\"}},\"withdrawStake(address)\":{\"params\":{\"withdrawAddress\":\"- The address to send withdrawn value.\"}},\"withdrawTo(address,uint256)\":{\"details\":\"Withdraws the specified amount of gas tokens from the paymaster's balance and transfers them to the specified address.\",\"params\":{\"amount\":\"The amount of gas tokens to withdraw.\",\"withdrawAddress\":\"The address to which the gas tokens should be transferred.\"}}},\"title\":\"BiconomyTokenPaymaster\",\"version\":1},\"userdoc\":{\"errors\":{\"CanNotWithdrawToZeroAddress()\":[{\"notice\":\"Throws when trying to withdraw to address(0)\"}],\"FailedToChargeTokens(address,address,uint256,bytes32)\":[{\"notice\":\"Throws when PM was not able to charge user\"}],\"FeeCollectorCanNotBeZero()\":[{\"notice\":\"Throws when the fee collector address provided is address(0)\"}],\"InvalidOracleDecimals()\":[{\"notice\":\"Throws when oracle decimals aren't equal to 8\"}],\"InvalidPaymasterMode()\":[{\"notice\":\"Throws when invalid PaymasterMode specified in paymasterAndData\"}],\"InvalidPriceExpiryDuration()\":[{\"notice\":\"Throws when price expiry duration is in the past\"}],\"InvalidPriceMarkup()\":[{\"notice\":\"Throws when invalid signature length in paymasterAndData\"}],\"InvalidSignatureLength()\":[{\"notice\":\"Throws when external signer's signature has invalid length\"}],\"InvalidTokenAddress()\":[{\"notice\":\"Throws when token address to pay with is invalid\"}],\"OraclePriceExpired()\":[{\"notice\":\"Throws when oracle price hasn't been updated for a duration of time the owner is comfortable with\"}],\"OraclePriceNotPositive()\":[{\"notice\":\"Throws when oracle returns invalid price\"}],\"TokensAndAmountsLengthMismatch()\":[{\"notice\":\"Throws when trying to withdraw multiple tokens, but each token doesn't have a corresponding amount\"}],\"TokensAndInfoLengthMismatch()\":[{\"notice\":\"Throws when each token doesnt have a corresponding oracle\"}],\"UnaccountedGasTooHigh()\":[{\"notice\":\"Throws when trying unaccountedGas is too high\"}],\"VerifyingSignerCanNotBeContract()\":[{\"notice\":\"Throws when the fee collector address provided is a deployed contract\"}],\"VerifyingSignerCanNotBeZero()\":[{\"notice\":\"Throws when the verifiying signer address provided is address(0)\"}],\"WithdrawalFailed()\":[{\"notice\":\"Throws when ETH withdrawal fails\"}]},\"kind\":\"user\",\"methods\":{\"addStake(uint32)\":{\"notice\":\"Add stake for this paymaster. This method can also carry eth value to add to the current stake.\"},\"addToTokenDirectory(address,(address,uint32,uint256))\":{\"notice\":\"only to be called by the owner of the contract.\"},\"deposit()\":{\"notice\":\"Add a deposit in native currency for this paymaster, used for paying for transaction fees. This is ideally done by the entity who is managing the received ERC20 gas tokens.\"},\"getDeposit()\":{\"notice\":\"Return current paymaster's deposit on the entryPoint.\"},\"getHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint48,uint48,address,uint256,uint32)\":{\"notice\":\"return the hash we're going to sign off-chain (and validate on-chain) this method is called by the off-chain service, to sign the request. it is called on-chain from the validatePaymasterUserOp, to validate the signature. note that this signature covers all fields of the UserOperation, except the \\\"paymasterAndData\\\", which will carry the signature itself.\"},\"postOp(uint8,bytes,uint256,uint256)\":{\"notice\":\"Post-operation handler. Must verify sender is the entryPoint.\"},\"removeFromTokenDirectory(address)\":{\"notice\":\"only to be called by the owner of the contract.\"},\"setNativeAssetToUsdOracle(address)\":{\"notice\":\"only to be called by the owner of the contract.\"},\"setPriceExpiryDurationForToken(address,uint256)\":{\"notice\":\"only to be called by the owner of the contract.\"},\"setPriceMarkupForToken(address,uint32)\":{\"notice\":\"only to be called by the owner of the contract.\"},\"setSigner(address)\":{\"notice\":\"If newVerifyingSigner is set to zero address, it will revert with an error. After setting the new signer address, it will emit an event UpdatedVerifyingSigner.\"},\"setUnaccountedGas(uint256)\":{\"notice\":\"only to be called by the owner of the contract.\"},\"swapTokenAndDeposit(address,uint256,uint256)\":{\"notice\":\"only to be called by the owner of the contract.\"},\"uniswapRouter()\":{\"notice\":\"The Uniswap V3 SwapRouter contract\"},\"unlockStake()\":{\"notice\":\"Unlock the stake, in order to withdraw it. The paymaster can't serve requests once unlocked, until it calls addStake again\"},\"updateSwappableTokens(address[],uint24[])\":{\"notice\":\"only to be called by the owner of the contract.\"},\"validatePaymasterUserOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),bytes32,uint256)\":{\"notice\":\"Payment validation: check if paymaster agrees to pay. Must verify sender is the entryPoint. Revert to reject this request. Note that bundlers will reject this method if it changes the state, unless the paymaster is trusted (whitelisted). The paymaster pre-pays using its deposit, and receive back a refund after the postOp method returns.\"},\"withdrawStake(address)\":{\"notice\":\"Withdraw the entire paymaster's stake. stake must be unlocked first (and then wait for the unstakeDelay to be over)\"},\"wrappedNative()\":{\"notice\":\"The ERC-20 token that wraps the native asset for current chain\"}},\"notice\":\"Biconomy's Token Paymaster for Entry Point v0.7\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/token/BiconomyTokenPaymaster.sol\":\"BiconomyTokenPaymaster\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":800},\"remappings\":[\":@ERC4337/account-abstraction/=node_modules/account-abstraction/\",\":@biconomy-devx/=node_modules/@biconomy-devx/\",\":@erc7579/=node_modules/@erc7579/\",\":@gnosis.pm/=node_modules/@gnosis.pm/\",\":@modulekit/=node_modules/modulekit/src/\",\":@nexus/=node_modules/nexus/\",\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\",\":@prb/math/=node_modules/erc7739-validator-base/node_modules/@prb/math/src/\",\":@prb/test/=node_modules/@prb/test/\",\":@rhinestone/=node_modules/@rhinestone/\",\":@safe-global/=node_modules/@safe-global/\",\":@uniswap/swap-router-contracts/contracts/=node_modules/@uniswap/swap-router-contracts/contracts/\",\":@uniswap/v3-core/contracts/=node_modules/@uniswap/v3-core/contracts/\",\":@uniswap/v3-periphery/contracts/=node_modules/@uniswap/v3-periphery/contracts/\",\":@zerodev/=node_modules/@zerodev/\",\":ExcessivelySafeCall/=node_modules/erc7739-validator-base/node_modules/excessively-safe-call/src/\",\":account-abstraction-v0.6/=node_modules/account-abstraction-v0.6/\",\":account-abstraction/=node_modules/account-abstraction/contracts/\",\":accountabstraction/=node_modules/accountabstraction/\",\":base64-sol/=node_modules/base64-sol/\",\":ds-test/=node_modules/ds-test/\",\":enumerableset4337/=node_modules/erc7739-validator-base/node_modules/@erc7579/enumerablemap4337/src/\",\":erc4337-validation/=node_modules/erc7739-validator-base/node_modules/@rhinestone/erc4337-validation/src/\",\":erc7579/=node_modules/erc7579/src/\",\":erc7739-validator-base/=node_modules/erc7739-validator-base/\",\":erc7739Validator/=node_modules/erc7739-validator-base/src/\",\":excessively-safe-call/=node_modules/excessively-safe-call/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":kernel/=node_modules/@zerodev/kernel/src/\",\":module-bases/=node_modules/module-bases/src/\",\":modulekit/=node_modules/@rhinestone/modulekit/src/\",\":nexus/=node_modules/nexus/\",\":registry/=node_modules/modulekit/node_modules/@rhinestone/registry/src/\",\":safe7579/=node_modules/erc7739-validator-base/node_modules/@rhinestone/safe7579/src/\",\":sentinellist/=node_modules/sentinellist/src/\",\":solady/=node_modules/solady/src/\",\":solady/src/=node_modules/solady/src/\",\":solarray/=node_modules/solarray/src/\"],\"viaIR\":true},\"sources\":{\"contracts/base/BasePaymaster.sol\":{\"keccak256\":\"0xde235ba59fa9febfab83433be7020fbba2798fb8ed601e7ef076e9f4693671a2\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e3ee35669cb1b0db5325f948800589b5f012ba8099e57827eb76875d95a016d3\",\"dweb:/ipfs/QmTBpW9RCubh28tHxgL6Ee8UEM8bNLVKEyEiFCrEL4pQ9a\"]},\"contracts/common/BiconomyTokenPaymasterErrors.sol\":{\"keccak256\":\"0x9f88957b0f2414649080d90bff3cb2c8eb77c73768e9c421024802f2e32c3116\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://9ac80f8b00d478257b2e7ac9bc40d0e0d984260112676b0ae095a01cf5afdfc7\",\"dweb:/ipfs/QmUWEm7MdihdcGX23nEGNy6aXot4tvaknC39JGbjf6mkFV\"]},\"contracts/interfaces/IBiconomyTokenPaymaster.sol\":{\"keccak256\":\"0x231cc91d24bc1fb979266ddab5b1c0eabad1f881fcfe8fee4352b36da8cc3fc8\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://756012864054475ef1001ed3a054128e5781702ce8b7419c0662f8f7a21dfced\",\"dweb:/ipfs/QmZdkmgEAukWxMM3h2HHqSk66aXKrtr4BwYFicuuaRcVhR\"]},\"contracts/interfaces/oracles/IOracle.sol\":{\"keccak256\":\"0xe9a21c93ef09e4c8bbdfe2848136d6ce3562185e257d846b9cc578f8af2ec03b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2755e9c5bab8109b67a722529ec3e8e829de98b9c983c81e9780a8f950a4e88\",\"dweb:/ipfs/QmW23eRspR5YDu2j9fXNAGdXXWyKg6768DCqUa5cBJsc1e\"]},\"contracts/libraries/TokenPaymasterParserLib.sol\":{\"keccak256\":\"0x09a96b2da449f45b87343ead1c0bdc1dbf1465ad7f20447ea469e8783b9a68cf\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e2cc39472cc044713816ce97f59ba297f7ffd93d22346bc98892c01de36b5ee1\",\"dweb:/ipfs/QmeZTnPdjfKTDTNPYTr5bhWRVmJbKHRMcm1G1bFv3GX1QG\"]},\"contracts/token/BiconomyTokenPaymaster.sol\":{\"keccak256\":\"0x52de889207b391f23e0f466792a833cf879109f4f8786531e7a9818431654b28\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://33fda6795ccf79f304633918a0172ccfc947cc4e60a56a8a9beed80348f36c3b\",\"dweb:/ipfs/QmQMC118WgnHTpbznhdD2iytT4RyMMpbZGwU2yQ9rfJruM\"]},\"contracts/token/swaps/Uniswapper.sol\":{\"keccak256\":\"0xf3f815b7d93b672cae86c86d41fbb4af7127feda8981b079f043f108e10b5726\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0b9347f9f363269067a9f66c073f9c68d36975ae5e6e9281ce8678052370c778\",\"dweb:/ipfs/QmZaL9HubmctEpFHrpTfDumThdQ9xbckHAUyXHFczJzu8v\"]},\"contracts/utils/SoladyOwnable.sol\":{\"keccak256\":\"0xa8d7b45c34f96e24ae669cdc5add90088b8236a101cb36a7148b05c678d2f8ce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05d1686b40ce43c7ebb674c64ec6695c7822f3380954028c218bf59b64f8165d\",\"dweb:/ipfs/Qmc6Vr8Ru1EpupJ7gp6kmdPA5BqcoPY5GqF8ZLvMPzvBaX\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/ReentrancyGuardTransient.sol\":{\"keccak256\":\"0x534bf5c25d6003a8ce50b400d20fa460c03169ad7baa90d47a912917c36dfe2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc0cc39c40ea23d3c46e8517e19ebdd877719d3159fa032f2a91802cdd205c79\",\"dweb:/ipfs/QmSoNh7HTkD4TJcBkBKSGSPMMpLUZKE7s9f2G6mjdaJywg\"]},\"node_modules/@openzeppelin/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889\",\"dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/@uniswap/swap-router-contracts/contracts/interfaces/IV3SwapRouter.sol\":{\"keccak256\":\"0xa2300af2b82af292216a8f3f301a86e65463655fff9fb791515e3fd2ccf4a14c\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a0a9bece58527fb5c1773d86666c7a71884a78f413e230dfa8c8a7f8ea564ef9\",\"dweb:/ipfs/QmbDhvpoZJN1KntxUUxkYV89RPTwqVBiyHBkvVh4QHSveo\"]},\"node_modules/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652\",\"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS\"]},\"node_modules/@uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"node_modules/account-abstraction/contracts/core/Helpers.sol\":{\"keccak256\":\"0x6247e011a6cb0b263b3aa098822977181674d91b62e5bdfe04c6e66f72da25d6\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://ca829a69b3fbc74fec8e140d42a2bf93bc3512609272f031c846470f61f0ab7e\",\"dweb:/ipfs/QmP3r3MBgAN39KeVB1rCGJWwcBcotNt26ALtAR54poQ1Jc\"]},\"node_modules/account-abstraction/contracts/core/UserOperationLib.sol\":{\"keccak256\":\"0x9d50ece985d35f82e33e5da417595c86fac10449e3d10895d08363d33aad454b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://b1d11cc364c8bf7ed5388268c895b5ffed16e87dfbcb320ddeeba5e7974315dc\",\"dweb:/ipfs/QmYSpvjxEjweietQrYZagwQ52ipy7eXx4rwvnTzXKeGeMS\"]},\"node_modules/account-abstraction/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0xf100d6fcc0c3b450b13e979b6a42c628c292a1bc340eccc2e7796b80e3975588\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://192938b5b27234d35c8098a319e879363c79f750eea4d0e409dc889a8ce5b155\",\"dweb:/ipfs/QmURpaJFPqEtkKP2ngBsgZhAGN8wAWh5XQpYmCkiz4Urz5\"]},\"node_modules/account-abstraction/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x1972a5fcb3a808b58c85af5741949ef6af11ab0debd3ae8c708171ae1ae0d0c4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://baa9837ae73b9e2362a47d42d081d7c0f3d8e878e5edb381117d94a6968949c9\",\"dweb:/ipfs/QmUmo6FUE7fv5z1WzW1YFjxp8PqaeN2JrEee9au59w3Xhe\"]},\"node_modules/account-abstraction/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0xd575af0f6ebbd5f0b2933307d44cd7b4e03a69f4b817a67db5409bd3c89aeecb\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://3b1e2dea9b05cfba9d13339ed16d96457dc861013cc4f3f35b71a80f82448db3\",\"dweb:/ipfs/QmVaGy5uGDMSiU2SzyokTjoHFyb39VVG5wtaM9KTnHyZSk\"]},\"node_modules/account-abstraction/contracts/interfaces/IPaymaster.sol\":{\"keccak256\":\"0x49d8dbf8a85b006bcd89bbc40e4e9e113997cc016007de85263bdae70572d07f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://bc0d83804c1b795d5c216b3518cd176c48f90db28550f267cbd89746d6b476c8\",\"dweb:/ipfs/QmNdCm4c6hnt7f6Q8q21QjtCNZWWRUaMVEYnQHEv68VnKt\"]},\"node_modules/account-abstraction/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xbe5ca9e7f254d031687419e7b96ef48c9c63e9398bbe992dc72ffc6dc14e0a04\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://1fffec71c38627a26fabb423350148009579f092623fb02b471a12d973763a00\",\"dweb:/ipfs/QmRBi31QEYXHj3x1AnQ2jKa2eziZH1b9av396P3b4dw6bj\"]},\"node_modules/account-abstraction/contracts/interfaces/PackedUserOperation.sol\":{\"keccak256\":\"0x1129b46381db68eddbc5cb49e50664667b66b03c480453858e7b25eabe444359\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://499a948aba60480dba6e25c763b8d918f1c246eb7a3302e04f493e080f3295be\",\"dweb:/ipfs/QmeRhhswf4NACcBKam2PyjpTP2ddSm648kah5kkQJsvwz3\"]},\"node_modules/solady/src/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"node_modules/solady/src/utils/ECDSA.sol\":{\"keccak256\":\"0x5a37fbc86ff99139e1cffad4ec05ffeeef17c1d1401113f107665d08a6abe7df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4253a9d0cf4eab99f858fe798904f02ddaabfca3133c07a6314dc479ddd2e217\",\"dweb:/ipfs/QmXeK8yCQ8G4KsqkiP2Yewi2kPV9vdpUU9Qi1xcdX92p8v\"]},\"node_modules/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x7d0de1ff3be5dc32635283280b000d4794015a1b61d7dae7f3ff7b0721b07210\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e307c9eece677565e7d584ee77c56134b5db38a70f557f9d2b1b308219276c0c\",\"dweb:/ipfs/QmTEtqaTFgRBFGpJyb5o4v2w8yrSpcNThov4bNpcLr2tTR\"]},\"node_modules/solady/src/utils/SignatureCheckerLib.sol\":{\"keccak256\":\"0x0eb1575bafc5537fcb4bba519123c694db66840d7a13b7d3b867c55bf95e9c8b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33b81539b6c6901660ab7c134789178146f18622813de5bc984d4c6dad7b13e6\",\"dweb:/ipfs/QmNdG7Y74GbymWqbhMbMY92AHYxLug9sR5gNWfzwB7hM1b\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"verifyingSignerArg","type":"address"},{"internalType":"contract IEntryPoint","name":"entryPoint","type":"address"},{"internalType":"uint256","name":"unaccountedGasArg","type":"uint256"},{"internalType":"uint256","name":"nativeAssetDecimalsArg","type":"uint256"},{"internalType":"contract IOracle","name":"nativeAssetToUsdOracleArg","type":"address"},{"internalType":"uint256","name":"nativeAssetPriceExpiryDurationArg","type":"uint256"},{"internalType":"contract IV3SwapRouter","name":"uniswapRouterArg","type":"address"},{"internalType":"address","name":"wrappedNativeArg","type":"address"},{"internalType":"address[]","name":"independentTokensArg","type":"address[]"},{"internalType":"struct IBiconomyTokenPaymaster.TokenInfo[]","name":"tokenInfosArg","type":"tuple[]","components":[{"internalType":"contract IOracle","name":"oracle","type":"address"},{"internalType":"uint32","name":"priceMarkup","type":"uint32"},{"internalType":"uint256","name":"priceExpiryDuration","type":"uint256"}]},{"internalType":"address[]","name":"swappableTokens","type":"address[]"},{"internalType":"uint24[]","name":"swappableTokenPoolFeeTiers","type":"uint24[]"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyInitialized"},{"inputs":[],"type":"error","name":"CanNotWithdrawToZeroAddress"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"userOpHash","type":"bytes32"}],"type":"error","name":"FailedToChargeTokens"},{"inputs":[],"type":"error","name":"FeeCollectorCanNotBeZero"},{"inputs":[],"type":"error","name":"InvalidOracleDecimals"},{"inputs":[],"type":"error","name":"InvalidPaymasterMode"},{"inputs":[],"type":"error","name":"InvalidPriceExpiryDuration"},{"inputs":[],"type":"error","name":"InvalidPriceMarkup"},{"inputs":[],"type":"error","name":"InvalidSignatureLength"},{"inputs":[],"type":"error","name":"InvalidTokenAddress"},{"inputs":[],"type":"error","name":"NewOwnerIsZeroAddress"},{"inputs":[],"type":"error","name":"NoHandoverRequest"},{"inputs":[],"type":"error","name":"OraclePriceExpired"},{"inputs":[],"type":"error","name":"OraclePriceNotPositive"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"TokenNotSupported"},{"inputs":[],"type":"error","name":"TokensAndAmountsLengthMismatch"},{"inputs":[],"type":"error","name":"TokensAndInfoLengthMismatch"},{"inputs":[],"type":"error","name":"TokensAndPoolsLengthMismatch"},{"inputs":[],"type":"error","name":"UnaccountedGasTooHigh"},{"inputs":[],"type":"error","name":"Unauthorized"},{"inputs":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"}],"type":"error","name":"UniswapReverted"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"type":"error","name":"UnwrappingReverted"},{"inputs":[],"type":"error","name":"VerifyingSignerCanNotBeContract"},{"inputs":[],"type":"error","name":"VerifyingSignerCanNotBeZero"},{"inputs":[],"type":"error","name":"WithdrawalFailed"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address","indexed":true},{"internalType":"contract IOracle","name":"oracle","type":"address","indexed":true},{"internalType":"uint8","name":"decimals","type":"uint8","indexed":false}],"type":"event","name":"AddedToTokenDirectory","anonymous":false},{"inputs":[{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":true}],"type":"event","name":"EthWithdrawn","anonymous":false},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipHandoverCanceled","anonymous":false},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipHandoverRequested","anonymous":false},{"inputs":[{"internalType":"address","name":"oldOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"userOpSender","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"gasCostBeforePostOpAndPenalty","type":"uint256","indexed":false},{"internalType":"uint256","name":"tokenCharge","type":"uint256","indexed":false},{"internalType":"uint32","name":"priceMarkup","type":"uint32","indexed":false},{"internalType":"uint256","name":"tokenPrice","type":"uint256","indexed":false},{"internalType":"bytes32","name":"userOpHash","type":"bytes32","indexed":false}],"type":"event","name":"PaidGasInTokens","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Received","anonymous":false},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address","indexed":true}],"type":"event","name":"RemovedFromTokenDirectory","anonymous":false},{"inputs":[{"internalType":"address[]","name":"tokenAddresses","type":"address[]","indexed":true}],"type":"event","name":"SwappableTokensAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"tokenIn","type":"address","indexed":false},{"internalType":"uint256","name":"amountIn","type":"uint256","indexed":false},{"internalType":"bytes","name":"reason","type":"bytes","indexed":false}],"type":"event","name":"SwappingReverted","anonymous":false},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address","indexed":true},{"internalType":"uint256","name":"tokenAmount","type":"uint256","indexed":true},{"internalType":"uint256","name":"amountOut","type":"uint256","indexed":true},{"internalType":"address","name":"actor","type":"address","indexed":false}],"type":"event","name":"TokensSwappedAndRefilledEntryPoint","anonymous":false},{"inputs":[{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":true},{"internalType":"address","name":"actor","type":"address","indexed":false}],"type":"event","name":"TokensWithdrawn","anonymous":false},{"inputs":[{"internalType":"address","name":"oldFeeCollector","type":"address","indexed":true},{"internalType":"address","name":"newFeeCollector","type":"address","indexed":true},{"internalType":"address","name":"actor","type":"address","indexed":true}],"type":"event","name":"UpdatedFeeCollector","anonymous":false},{"inputs":[{"internalType":"uint32","name":"oldValue","type":"uint32","indexed":true},{"internalType":"uint32","name":"newValue","type":"uint32","indexed":true}],"type":"event","name":"UpdatedFixedPriceMarkup","anonymous":false},{"inputs":[{"internalType":"contract IOracle","name":"oldOracle","type":"address","indexed":true},{"internalType":"contract IOracle","name":"newOracle","type":"address","indexed":true}],"type":"event","name":"UpdatedNativeAssetOracle","anonymous":false},{"inputs":[{"internalType":"uint256","name":"oldValue","type":"uint256","indexed":true},{"internalType":"uint256","name":"newValue","type":"uint256","indexed":true}],"type":"event","name":"UpdatedPriceExpiryDuration","anonymous":false},{"inputs":[{"internalType":"uint256","name":"oldValue","type":"uint256","indexed":true},{"internalType":"uint256","name":"newValue","type":"uint256","indexed":true}],"type":"event","name":"UpdatedUnaccountedGas","anonymous":false},{"inputs":[{"internalType":"address","name":"oldSigner","type":"address","indexed":true},{"internalType":"address","name":"newSigner","type":"address","indexed":true},{"internalType":"address","name":"actor","type":"address","indexed":true}],"type":"event","name":"UpdatedVerifyingSigner","anonymous":false},{"inputs":[{"internalType":"uint32","name":"unstakeDelaySec","type":"uint32"}],"stateMutability":"payable","type":"function","name":"addStake"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"struct IBiconomyTokenPaymaster.TokenInfo","name":"tokenInfo","type":"tuple","components":[{"internalType":"contract IOracle","name":"oracle","type":"address"},{"internalType":"uint32","name":"priceMarkup","type":"uint32"},{"internalType":"uint256","name":"priceExpiryDuration","type":"uint256"}]}],"stateMutability":"payable","type":"function","name":"addToTokenDirectory"},{"inputs":[],"stateMutability":"payable","type":"function","name":"cancelOwnershipHandover"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"stateMutability":"payable","type":"function","name":"completeOwnershipHandover"},{"inputs":[],"stateMutability":"payable","type":"function","name":"deposit"},{"inputs":[],"stateMutability":"view","type":"function","name":"entryPoint","outputs":[{"internalType":"contract IEntryPoint","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct PackedUserOperation","name":"userOp","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"uint48","name":"validUntil","type":"uint48"},{"internalType":"uint48","name":"validAfter","type":"uint48"},{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokenPrice","type":"uint256"},{"internalType":"uint32","name":"appliedPriceMarkup","type":"uint32"}],"stateMutability":"view","type":"function","name":"getHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"stateMutability":"view","type":"function","name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"stateMutability":"view","type":"function","name":"independentPriceExpiryDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"stateMutability":"view","type":"function","name":"independentPriceMarkup","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"independentTokenDirectory","outputs":[{"internalType":"contract IOracle","name":"oracle","type":"address"},{"internalType":"uint32","name":"priceMarkup","type":"uint32"},{"internalType":"uint256","name":"priceExpiryDuration","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenSupported","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nativeAssetToUsdOracle","outputs":[{"internalType":"contract IOracle","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}]},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"stateMutability":"view","type":"function","name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"enum IPaymaster.PostOpMode","name":"mode","type":"uint8"},{"internalType":"bytes","name":"context","type":"bytes"},{"internalType":"uint256","name":"actualGasCost","type":"uint256"},{"internalType":"uint256","name":"actualUserOpFeePerGas","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"postOp"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"stateMutability":"payable","type":"function","name":"removeFromTokenDirectory"},{"inputs":[],"stateMutability":"payable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"payable","type":"function","name":"requestOwnershipHandover"},{"inputs":[{"internalType":"contract IOracle","name":"oracle","type":"address"}],"stateMutability":"payable","type":"function","name":"setNativeAssetToUsdOracle"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"newPriceExpiryDuration","type":"uint256"}],"stateMutability":"payable","type":"function","name":"setPriceExpiryDurationForToken"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint32","name":"newIndependentPriceMarkup","type":"uint32"}],"stateMutability":"payable","type":"function","name":"setPriceMarkupForToken"},{"inputs":[{"internalType":"address","name":"newVerifyingSigner","type":"address"}],"stateMutability":"payable","type":"function","name":"setSigner"},{"inputs":[{"internalType":"uint256","name":"newUnaccountedGas","type":"uint256"}],"stateMutability":"payable","type":"function","name":"setUnaccountedGas"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"internalType":"uint256","name":"minEthAmountRecevied","type":"uint256"}],"stateMutability":"payable","type":"function","name":"swapTokenAndDeposit"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"tokenToPools","outputs":[{"internalType":"uint24","name":"","type":"uint24"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"payable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"unaccountedGas","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"uniswapRouter","outputs":[{"internalType":"contract IV3SwapRouter","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unlockStake"},{"inputs":[{"internalType":"address[]","name":"tokenAddresses","type":"address[]"},{"internalType":"uint24[]","name":"poolFeeTiers","type":"uint24[]"}],"stateMutability":"payable","type":"function","name":"updateSwappableTokens"},{"inputs":[{"internalType":"struct PackedUserOperation","name":"userOp","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"bytes32","name":"userOpHash","type":"bytes32"},{"internalType":"uint256","name":"maxCost","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"validatePaymasterUserOp","outputs":[{"internalType":"bytes","name":"context","type":"bytes"},{"internalType":"uint256","name":"validationData","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"verifyingSigner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"withdrawERC20"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"target","type":"address"}],"stateMutability":"payable","type":"function","name":"withdrawERC20Full"},{"inputs":[{"internalType":"address payable","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"withdrawEth"},{"inputs":[{"internalType":"contract IERC20[]","name":"token","type":"address[]"},{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256[]","name":"amount","type":"uint256[]"}],"stateMutability":"payable","type":"function","name":"withdrawMultipleERC20"},{"inputs":[{"internalType":"contract IERC20[]","name":"token","type":"address[]"},{"internalType":"address","name":"target","type":"address"}],"stateMutability":"payable","type":"function","name":"withdrawMultipleERC20Full"},{"inputs":[{"internalType":"address payable","name":"withdrawAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdrawStake"},{"inputs":[{"internalType":"address payable","name":"withdrawAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawTo"},{"inputs":[],"stateMutability":"view","type":"function","name":"wrappedNative","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"addStake(uint32)":{"params":{"unstakeDelaySec":"- The unstake delay for this paymaster. Can only be increased."}},"addToTokenDirectory(address,(address,uint32,uint256))":{"details":"Set or update a TokenInfo entry in the independentTokenDirectory mapping.","params":{"tokenAddress":"The token address to add or update in directory","tokenInfo":"The TokenInfo struct to add or update"}},"cancelOwnershipHandover()":{"details":"Cancels the two-step ownership handover to the caller, if any."},"completeOwnershipHandover(address)":{"details":"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`."},"constructor":{"details":"markup and expiry duration are provided for each token. Price expiry duration should be set to the heartbeat value of the token. Additionally, priceMarkup must be higher than Chainlink’s deviation threshold value. More: https://docs.chain.link/architecture-overview/architecture-decentralized-model "},"getPrice(address)":{"details":"Get the price of a token in USD","params":{"tokenAddress":"The address of the token to get the price of"},"returns":{"_0":"price The price of the token in USD"}},"independentPriceExpiryDuration(address)":{"details":"Get the price expiry duration for a token","params":{"tokenAddress":"The address of the token to get the price expiry duration of"},"returns":{"_0":"priceExpiryDuration The price expiry duration for the token"}},"independentPriceMarkup(address)":{"details":"Get the price markup for a token","params":{"tokenAddress":"The address of the token to get the price markup of"},"returns":{"_0":"priceMarkup The price markup for the token"}},"isTokenSupported(address)":{"details":"Check if a token is supported","params":{"tokenAddress":"The address of the token to check"},"returns":{"_0":"bool True if the token is supported, false otherwise"}},"owner()":{"details":"Returns the owner of the contract."},"ownershipHandoverExpiresAt(address)":{"details":"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`."},"postOp(uint8,bytes,uint256,uint256)":{"params":{"actualGasCost":"- Actual gas used so far (without this postOp call).","actualUserOpFeePerGas":"- the gas price this UserOp pays. This value is based on the UserOp's maxFeePerGas and maxPriorityFee (and basefee) It is not the same as tx.gasprice, which is what the bundler pays.","context":"- The context value returned by validatePaymasterUserOp","mode":"- Enum with the following options: opSucceeded - User operation succeeded. opReverted - User op reverted. The paymaster still has to pay for gas. postOpReverted - never passed in a call to postOp()."}},"removeFromTokenDirectory(address)":{"details":"Remove a token from the independentTokenDirectory mapping.","params":{"tokenAddress":"The token address to remove from directory"}},"renounceOwnership()":{"details":"Allows the owner to renounce their ownership."},"requestOwnershipHandover()":{"details":"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default."},"setNativeAssetToUsdOracle(address)":{"details":"Update the native oracle address","params":{"oracle":"The new native asset oracle"}},"setPriceExpiryDurationForToken(address,uint256)":{"details":"Set a new price expiry duration.","params":{"newPriceExpiryDuration":"The new value to be set as the price expiry duration"}},"setPriceMarkupForToken(address,uint32)":{"details":"Set a new priceMarkup value.","params":{"newIndependentPriceMarkup":"The new value to be set as the price markup"}},"setSigner(address)":{"details":"Set a new verifying signer address. Can only be called by the owner of the contract.","params":{"newVerifyingSigner":"The new address to be set as the verifying signer."}},"setUnaccountedGas(uint256)":{"details":"Set a new unaccountedEPGasOverhead value.","params":{"newUnaccountedGas":"The new value to be set as the unaccounted gas value"}},"swapTokenAndDeposit(address,uint256,uint256)":{"details":"Swap a token in the paymaster for ETH and deposit the amount received into the entry point","params":{"minEthAmountRecevied":"The minimum amount of ETH amount recevied post-swap","tokenAddress":"The token address of the token to swap","tokenAmount":"The amount of the token to swap"}},"transferOwnership(address)":{"details":"Allows the owner to transfer the ownership to `newOwner`."},"updateSwappableTokens(address[],uint24[])":{"details":"Update or add a swappable token to the Uniswapper","params":{"poolFeeTiers":"The pool fee tiers for the corresponding token address to use","tokenAddresses":"The token address to add/update to/for uniswapper"}},"validatePaymasterUserOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),bytes32,uint256)":{"params":{"maxCost":"- The maximum cost of this transaction (based on maximum gas and gas price from userOp).","userOp":"- The user operation.","userOpHash":"- Hash of the user's request data."},"returns":{"context":" - Value to send to a postOp. Zero length to signify postOp is not required.","validationData":"- Signature and time-range of this operation, encoded the same as the return value of validateUserOperation. <20-byte> sigAuthorizer - 0 for valid signature, 1 to mark signature failure, other values are invalid for paymaster. <6-byte> validUntil - last timestamp this operation is valid. 0 for \"indefinite\" <6-byte> validAfter - first timestamp this operation is valid Note that the validation code cannot use block.timestamp (or block.number) directly."}},"withdrawERC20(address,address,uint256)":{"details":"pull tokens out of paymaster in case they were sent to the paymaster at any point.","params":{"amount":"amount to withdraw","target":"address to send to","token":"the token deposit to withdraw"}},"withdrawERC20Full(address,address)":{"details":"pull tokens out of paymaster in case they were sent to the paymaster at any point.","params":{"target":"address to send to","token":"the token deposit to withdraw"}},"withdrawEth(address,uint256)":{"details":"Withdraw ETH from the paymaster","params":{"amount":"The amount of ETH to withdraw","recipient":"The address to send the ETH to"}},"withdrawMultipleERC20(address[],address,uint256[])":{"details":"pull multiple tokens out of paymaster in case they were sent to the paymaster at any point.","params":{"amount":"amounts to withdraw","target":"address to send to","token":"the tokens deposit to withdraw"}},"withdrawMultipleERC20Full(address[],address)":{"details":"pull multiple tokens out of paymaster in case they were sent to the paymaster at any point.","params":{"target":"address to send to","token":"the tokens deposit to withdraw"}},"withdrawStake(address)":{"params":{"withdrawAddress":"- The address to send withdrawn value."}},"withdrawTo(address,uint256)":{"details":"Withdraws the specified amount of gas tokens from the paymaster's balance and transfers them to the specified address.","params":{"amount":"The amount of gas tokens to withdraw.","withdrawAddress":"The address to which the gas tokens should be transferred."}}},"version":1},"userdoc":{"kind":"user","methods":{"addStake(uint32)":{"notice":"Add stake for this paymaster. This method can also carry eth value to add to the current stake."},"addToTokenDirectory(address,(address,uint32,uint256))":{"notice":"only to be called by the owner of the contract."},"deposit()":{"notice":"Add a deposit in native currency for this paymaster, used for paying for transaction fees. This is ideally done by the entity who is managing the received ERC20 gas tokens."},"getDeposit()":{"notice":"Return current paymaster's deposit on the entryPoint."},"getHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint48,uint48,address,uint256,uint32)":{"notice":"return the hash we're going to sign off-chain (and validate on-chain) this method is called by the off-chain service, to sign the request. it is called on-chain from the validatePaymasterUserOp, to validate the signature. note that this signature covers all fields of the UserOperation, except the \"paymasterAndData\", which will carry the signature itself."},"postOp(uint8,bytes,uint256,uint256)":{"notice":"Post-operation handler. Must verify sender is the entryPoint."},"removeFromTokenDirectory(address)":{"notice":"only to be called by the owner of the contract."},"setNativeAssetToUsdOracle(address)":{"notice":"only to be called by the owner of the contract."},"setPriceExpiryDurationForToken(address,uint256)":{"notice":"only to be called by the owner of the contract."},"setPriceMarkupForToken(address,uint32)":{"notice":"only to be called by the owner of the contract."},"setSigner(address)":{"notice":"If newVerifyingSigner is set to zero address, it will revert with an error. After setting the new signer address, it will emit an event UpdatedVerifyingSigner."},"setUnaccountedGas(uint256)":{"notice":"only to be called by the owner of the contract."},"swapTokenAndDeposit(address,uint256,uint256)":{"notice":"only to be called by the owner of the contract."},"uniswapRouter()":{"notice":"The Uniswap V3 SwapRouter contract"},"unlockStake()":{"notice":"Unlock the stake, in order to withdraw it. The paymaster can't serve requests once unlocked, until it calls addStake again"},"updateSwappableTokens(address[],uint24[])":{"notice":"only to be called by the owner of the contract."},"validatePaymasterUserOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),bytes32,uint256)":{"notice":"Payment validation: check if paymaster agrees to pay. Must verify sender is the entryPoint. Revert to reject this request. Note that bundlers will reject this method if it changes the state, unless the paymaster is trusted (whitelisted). The paymaster pre-pays using its deposit, and receive back a refund after the postOp method returns."},"withdrawStake(address)":{"notice":"Withdraw the entire paymaster's stake. stake must be unlocked first (and then wait for the unstakeDelay to be over)"},"wrappedNative()":{"notice":"The ERC-20 token that wraps the native asset for current chain"}},"version":1}},"settings":{"remappings":["@ERC4337/account-abstraction/=node_modules/account-abstraction/","@biconomy-devx/=node_modules/@biconomy-devx/","@erc7579/=node_modules/@erc7579/","@gnosis.pm/=node_modules/@gnosis.pm/","@modulekit/=node_modules/modulekit/src/","@nexus/=node_modules/nexus/","@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/","@prb/math/=node_modules/erc7739-validator-base/node_modules/@prb/math/src/","@prb/test/=node_modules/@prb/test/","@rhinestone/=node_modules/@rhinestone/","@safe-global/=node_modules/@safe-global/","@uniswap/swap-router-contracts/contracts/=node_modules/@uniswap/swap-router-contracts/contracts/","@uniswap/v3-core/contracts/=node_modules/@uniswap/v3-core/contracts/","@uniswap/v3-periphery/contracts/=node_modules/@uniswap/v3-periphery/contracts/","@zerodev/=node_modules/@zerodev/","ExcessivelySafeCall/=node_modules/erc7739-validator-base/node_modules/excessively-safe-call/src/","account-abstraction-v0.6/=node_modules/account-abstraction-v0.6/","account-abstraction/=node_modules/account-abstraction/contracts/","accountabstraction/=node_modules/accountabstraction/","base64-sol/=node_modules/base64-sol/","ds-test/=node_modules/ds-test/","enumerableset4337/=node_modules/erc7739-validator-base/node_modules/@erc7579/enumerablemap4337/src/","erc4337-validation/=node_modules/erc7739-validator-base/node_modules/@rhinestone/erc4337-validation/src/","erc7579/=node_modules/erc7579/src/","erc7739-validator-base/=node_modules/erc7739-validator-base/","erc7739Validator/=node_modules/erc7739-validator-base/src/","excessively-safe-call/=node_modules/excessively-safe-call/src/","forge-std/=lib/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","kernel/=node_modules/@zerodev/kernel/src/","module-bases/=node_modules/module-bases/src/","modulekit/=node_modules/@rhinestone/modulekit/src/","nexus/=node_modules/nexus/","registry/=node_modules/modulekit/node_modules/@rhinestone/registry/src/","safe7579/=node_modules/erc7739-validator-base/node_modules/@rhinestone/safe7579/src/","sentinellist/=node_modules/sentinellist/src/","solady/=node_modules/solady/src/","solady/src/=node_modules/solady/src/","solarray/=node_modules/solarray/src/"],"optimizer":{"enabled":true,"runs":800},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"contracts/token/BiconomyTokenPaymaster.sol":"BiconomyTokenPaymaster"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/base/BasePaymaster.sol":{"keccak256":"0xde235ba59fa9febfab83433be7020fbba2798fb8ed601e7ef076e9f4693671a2","urls":["bzz-raw://e3ee35669cb1b0db5325f948800589b5f012ba8099e57827eb76875d95a016d3","dweb:/ipfs/QmTBpW9RCubh28tHxgL6Ee8UEM8bNLVKEyEiFCrEL4pQ9a"],"license":"GPL-3.0"},"contracts/common/BiconomyTokenPaymasterErrors.sol":{"keccak256":"0x9f88957b0f2414649080d90bff3cb2c8eb77c73768e9c421024802f2e32c3116","urls":["bzz-raw://9ac80f8b00d478257b2e7ac9bc40d0e0d984260112676b0ae095a01cf5afdfc7","dweb:/ipfs/QmUWEm7MdihdcGX23nEGNy6aXot4tvaknC39JGbjf6mkFV"],"license":"LGPL-3.0-only"},"contracts/interfaces/IBiconomyTokenPaymaster.sol":{"keccak256":"0x231cc91d24bc1fb979266ddab5b1c0eabad1f881fcfe8fee4352b36da8cc3fc8","urls":["bzz-raw://756012864054475ef1001ed3a054128e5781702ce8b7419c0662f8f7a21dfced","dweb:/ipfs/QmZdkmgEAukWxMM3h2HHqSk66aXKrtr4BwYFicuuaRcVhR"],"license":"GPL-3.0"},"contracts/interfaces/oracles/IOracle.sol":{"keccak256":"0xe9a21c93ef09e4c8bbdfe2848136d6ce3562185e257d846b9cc578f8af2ec03b","urls":["bzz-raw://c2755e9c5bab8109b67a722529ec3e8e829de98b9c983c81e9780a8f950a4e88","dweb:/ipfs/QmW23eRspR5YDu2j9fXNAGdXXWyKg6768DCqUa5cBJsc1e"],"license":"MIT"},"contracts/libraries/TokenPaymasterParserLib.sol":{"keccak256":"0x09a96b2da449f45b87343ead1c0bdc1dbf1465ad7f20447ea469e8783b9a68cf","urls":["bzz-raw://e2cc39472cc044713816ce97f59ba297f7ffd93d22346bc98892c01de36b5ee1","dweb:/ipfs/QmeZTnPdjfKTDTNPYTr5bhWRVmJbKHRMcm1G1bFv3GX1QG"],"license":"GPL-3.0"},"contracts/token/BiconomyTokenPaymaster.sol":{"keccak256":"0x52de889207b391f23e0f466792a833cf879109f4f8786531e7a9818431654b28","urls":["bzz-raw://33fda6795ccf79f304633918a0172ccfc947cc4e60a56a8a9beed80348f36c3b","dweb:/ipfs/QmQMC118WgnHTpbznhdD2iytT4RyMMpbZGwU2yQ9rfJruM"],"license":"GPL-3.0"},"contracts/token/swaps/Uniswapper.sol":{"keccak256":"0xf3f815b7d93b672cae86c86d41fbb4af7127feda8981b079f043f108e10b5726","urls":["bzz-raw://0b9347f9f363269067a9f66c073f9c68d36975ae5e6e9281ce8678052370c778","dweb:/ipfs/QmZaL9HubmctEpFHrpTfDumThdQ9xbckHAUyXHFczJzu8v"],"license":"GPL-3.0"},"contracts/utils/SoladyOwnable.sol":{"keccak256":"0xa8d7b45c34f96e24ae669cdc5add90088b8236a101cb36a7148b05c678d2f8ce","urls":["bzz-raw://05d1686b40ce43c7ebb674c64ec6695c7822f3380954028c218bf59b64f8165d","dweb:/ipfs/Qmc6Vr8Ru1EpupJ7gp6kmdPA5BqcoPY5GqF8ZLvMPzvBaX"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31","urls":["bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09","dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330","urls":["bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf","dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/ReentrancyGuardTransient.sol":{"keccak256":"0x534bf5c25d6003a8ce50b400d20fa460c03169ad7baa90d47a912917c36dfe2b","urls":["bzz-raw://cc0cc39c40ea23d3c46e8517e19ebdd877719d3159fa032f2a91802cdd205c79","dweb:/ipfs/QmSoNh7HTkD4TJcBkBKSGSPMMpLUZKE7s9f2G6mjdaJywg"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/TransientSlot.sol":{"keccak256":"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1","urls":["bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889","dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"node_modules/@uniswap/swap-router-contracts/contracts/interfaces/IV3SwapRouter.sol":{"keccak256":"0xa2300af2b82af292216a8f3f301a86e65463655fff9fb791515e3fd2ccf4a14c","urls":["bzz-raw://a0a9bece58527fb5c1773d86666c7a71884a78f413e230dfa8c8a7f8ea564ef9","dweb:/ipfs/QmbDhvpoZJN1KntxUUxkYV89RPTwqVBiyHBkvVh4QHSveo"],"license":"GPL-2.0-or-later"},"node_modules/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol":{"keccak256":"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69","urls":["bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652","dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS"],"license":"GPL-2.0-or-later"},"node_modules/@uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol":{"keccak256":"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274","urls":["bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407","dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp"],"license":"GPL-2.0-or-later"},"node_modules/account-abstraction/contracts/core/Helpers.sol":{"keccak256":"0x6247e011a6cb0b263b3aa098822977181674d91b62e5bdfe04c6e66f72da25d6","urls":["bzz-raw://ca829a69b3fbc74fec8e140d42a2bf93bc3512609272f031c846470f61f0ab7e","dweb:/ipfs/QmP3r3MBgAN39KeVB1rCGJWwcBcotNt26ALtAR54poQ1Jc"],"license":"GPL-3.0"},"node_modules/account-abstraction/contracts/core/UserOperationLib.sol":{"keccak256":"0x9d50ece985d35f82e33e5da417595c86fac10449e3d10895d08363d33aad454b","urls":["bzz-raw://b1d11cc364c8bf7ed5388268c895b5ffed16e87dfbcb320ddeeba5e7974315dc","dweb:/ipfs/QmYSpvjxEjweietQrYZagwQ52ipy7eXx4rwvnTzXKeGeMS"],"license":"GPL-3.0"},"node_modules/account-abstraction/contracts/interfaces/IAggregator.sol":{"keccak256":"0xf100d6fcc0c3b450b13e979b6a42c628c292a1bc340eccc2e7796b80e3975588","urls":["bzz-raw://192938b5b27234d35c8098a319e879363c79f750eea4d0e409dc889a8ce5b155","dweb:/ipfs/QmURpaJFPqEtkKP2ngBsgZhAGN8wAWh5XQpYmCkiz4Urz5"],"license":"GPL-3.0"},"node_modules/account-abstraction/contracts/interfaces/IEntryPoint.sol":{"keccak256":"0x1972a5fcb3a808b58c85af5741949ef6af11ab0debd3ae8c708171ae1ae0d0c4","urls":["bzz-raw://baa9837ae73b9e2362a47d42d081d7c0f3d8e878e5edb381117d94a6968949c9","dweb:/ipfs/QmUmo6FUE7fv5z1WzW1YFjxp8PqaeN2JrEee9au59w3Xhe"],"license":"GPL-3.0"},"node_modules/account-abstraction/contracts/interfaces/INonceManager.sol":{"keccak256":"0xd575af0f6ebbd5f0b2933307d44cd7b4e03a69f4b817a67db5409bd3c89aeecb","urls":["bzz-raw://3b1e2dea9b05cfba9d13339ed16d96457dc861013cc4f3f35b71a80f82448db3","dweb:/ipfs/QmVaGy5uGDMSiU2SzyokTjoHFyb39VVG5wtaM9KTnHyZSk"],"license":"GPL-3.0"},"node_modules/account-abstraction/contracts/interfaces/IPaymaster.sol":{"keccak256":"0x49d8dbf8a85b006bcd89bbc40e4e9e113997cc016007de85263bdae70572d07f","urls":["bzz-raw://bc0d83804c1b795d5c216b3518cd176c48f90db28550f267cbd89746d6b476c8","dweb:/ipfs/QmNdCm4c6hnt7f6Q8q21QjtCNZWWRUaMVEYnQHEv68VnKt"],"license":"GPL-3.0"},"node_modules/account-abstraction/contracts/interfaces/IStakeManager.sol":{"keccak256":"0xbe5ca9e7f254d031687419e7b96ef48c9c63e9398bbe992dc72ffc6dc14e0a04","urls":["bzz-raw://1fffec71c38627a26fabb423350148009579f092623fb02b471a12d973763a00","dweb:/ipfs/QmRBi31QEYXHj3x1AnQ2jKa2eziZH1b9av396P3b4dw6bj"],"license":"GPL-3.0-only"},"node_modules/account-abstraction/contracts/interfaces/PackedUserOperation.sol":{"keccak256":"0x1129b46381db68eddbc5cb49e50664667b66b03c480453858e7b25eabe444359","urls":["bzz-raw://499a948aba60480dba6e25c763b8d918f1c246eb7a3302e04f493e080f3295be","dweb:/ipfs/QmeRhhswf4NACcBKam2PyjpTP2ddSm648kah5kkQJsvwz3"],"license":"GPL-3.0"},"node_modules/solady/src/auth/Ownable.sol":{"keccak256":"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3","urls":["bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3","dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs"],"license":"MIT"},"node_modules/solady/src/utils/ECDSA.sol":{"keccak256":"0x5a37fbc86ff99139e1cffad4ec05ffeeef17c1d1401113f107665d08a6abe7df","urls":["bzz-raw://4253a9d0cf4eab99f858fe798904f02ddaabfca3133c07a6314dc479ddd2e217","dweb:/ipfs/QmXeK8yCQ8G4KsqkiP2Yewi2kPV9vdpUU9Qi1xcdX92p8v"],"license":"MIT"},"node_modules/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x7d0de1ff3be5dc32635283280b000d4794015a1b61d7dae7f3ff7b0721b07210","urls":["bzz-raw://e307c9eece677565e7d584ee77c56134b5db38a70f557f9d2b1b308219276c0c","dweb:/ipfs/QmTEtqaTFgRBFGpJyb5o4v2w8yrSpcNThov4bNpcLr2tTR"],"license":"MIT"},"node_modules/solady/src/utils/SignatureCheckerLib.sol":{"keccak256":"0x0eb1575bafc5537fcb4bba519123c694db66840d7a13b7d3b867c55bf95e9c8b","urls":["bzz-raw://33b81539b6c6901660ab7c134789178146f18622813de5bc984d4c6dad7b13e6","dweb:/ipfs/QmNdG7Y74GbymWqbhMbMY92AHYxLug9sR5gNWfzwB7hM1b"],"license":"MIT"}},"version":1},"id":8} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"verifyingSignerArg","type":"address","internalType":"address"},{"name":"entryPoint","type":"address","internalType":"contract IEntryPoint"},{"name":"unaccountedGasArg","type":"uint256","internalType":"uint256"},{"name":"nativeAssetDecimalsArg","type":"uint256","internalType":"uint256"},{"name":"nativeAssetToUsdOracleArg","type":"address","internalType":"contract IOracle"},{"name":"nativeAssetPriceExpiryDurationArg","type":"uint256","internalType":"uint256"},{"name":"uniswapRouterArg","type":"address","internalType":"contract IV3SwapRouter"},{"name":"wrappedNativeArg","type":"address","internalType":"address"},{"name":"independentTokensArg","type":"address[]","internalType":"address[]"},{"name":"tokenInfosArg","type":"tuple[]","internalType":"struct IBiconomyTokenPaymaster.TokenInfo[]","components":[{"name":"oracle","type":"address","internalType":"contract IOracle"},{"name":"priceMarkup","type":"uint32","internalType":"uint32"},{"name":"priceExpiryDuration","type":"uint256","internalType":"uint256"}]},{"name":"swappableTokens","type":"address[]","internalType":"address[]"},{"name":"swappableTokenPoolFeeTiers","type":"uint24[]","internalType":"uint24[]"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"addStake","inputs":[{"name":"unstakeDelaySec","type":"uint32","internalType":"uint32"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"addToTokenDirectory","inputs":[{"name":"tokenAddress","type":"address","internalType":"address"},{"name":"tokenInfo","type":"tuple","internalType":"struct IBiconomyTokenPaymaster.TokenInfo","components":[{"name":"oracle","type":"address","internalType":"contract IOracle"},{"name":"priceMarkup","type":"uint32","internalType":"uint32"},{"name":"priceExpiryDuration","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"cancelOwnershipHandover","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"completeOwnershipHandover","inputs":[{"name":"pendingOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"deposit","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"entryPoint","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IEntryPoint"}],"stateMutability":"view"},{"type":"function","name":"getDeposit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getHash","inputs":[{"name":"userOp","type":"tuple","internalType":"struct PackedUserOperation","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"validUntil","type":"uint48","internalType":"uint48"},{"name":"validAfter","type":"uint48","internalType":"uint48"},{"name":"tokenAddress","type":"address","internalType":"address"},{"name":"tokenPrice","type":"uint256","internalType":"uint256"},{"name":"appliedPriceMarkup","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getPrice","inputs":[{"name":"tokenAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"independentPriceExpiryDuration","inputs":[{"name":"tokenAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"independentPriceMarkup","inputs":[{"name":"tokenAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"independentTokenDirectory","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"oracle","type":"address","internalType":"contract IOracle"},{"name":"priceMarkup","type":"uint32","internalType":"uint32"},{"name":"priceExpiryDuration","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"isTokenSupported","inputs":[{"name":"tokenAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"nativeAssetToUsdOracle","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IOracle"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"result","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"ownershipHandoverExpiresAt","inputs":[{"name":"pendingOwner","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"postOp","inputs":[{"name":"mode","type":"uint8","internalType":"enum IPaymaster.PostOpMode"},{"name":"context","type":"bytes","internalType":"bytes"},{"name":"actualGasCost","type":"uint256","internalType":"uint256"},{"name":"actualUserOpFeePerGas","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeFromTokenDirectory","inputs":[{"name":"tokenAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"requestOwnershipHandover","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setNativeAssetToUsdOracle","inputs":[{"name":"oracle","type":"address","internalType":"contract IOracle"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setPriceExpiryDurationForToken","inputs":[{"name":"tokenAddress","type":"address","internalType":"address"},{"name":"newPriceExpiryDuration","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setPriceMarkupForToken","inputs":[{"name":"tokenAddress","type":"address","internalType":"address"},{"name":"newIndependentPriceMarkup","type":"uint32","internalType":"uint32"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setSigner","inputs":[{"name":"newVerifyingSigner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setUnaccountedGas","inputs":[{"name":"newUnaccountedGas","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setUniswapRouter","inputs":[{"name":"uniswapRouterArg","type":"address","internalType":"contract IV3SwapRouter"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swapTokenAndDeposit","inputs":[{"name":"tokenAddress","type":"address","internalType":"address"},{"name":"tokenAmount","type":"uint256","internalType":"uint256"},{"name":"minEthAmountRecevied","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"tokenToPools","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint24","internalType":"uint24"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"unaccountedGas","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"uniswapRouter","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IV3SwapRouter"}],"stateMutability":"view"},{"type":"function","name":"unlockStake","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateSwappableTokens","inputs":[{"name":"tokenAddresses","type":"address[]","internalType":"address[]"},{"name":"poolFeeTiers","type":"uint24[]","internalType":"uint24[]"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"validatePaymasterUserOp","inputs":[{"name":"userOp","type":"tuple","internalType":"struct PackedUserOperation","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"userOpHash","type":"bytes32","internalType":"bytes32"},{"name":"maxCost","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"context","type":"bytes","internalType":"bytes"},{"name":"validationData","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"verifyingSigner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"withdrawERC20","inputs":[{"name":"token","type":"address","internalType":"contract IERC20"},{"name":"target","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"withdrawERC20Full","inputs":[{"name":"token","type":"address","internalType":"contract IERC20"},{"name":"target","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"withdrawEth","inputs":[{"name":"recipient","type":"address","internalType":"address payable"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"withdrawMultipleERC20","inputs":[{"name":"token","type":"address[]","internalType":"contract IERC20[]"},{"name":"target","type":"address","internalType":"address"},{"name":"amount","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"withdrawMultipleERC20Full","inputs":[{"name":"token","type":"address[]","internalType":"contract IERC20[]"},{"name":"target","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"withdrawStake","inputs":[{"name":"withdrawAddress","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawTo","inputs":[{"name":"withdrawAddress","type":"address","internalType":"address payable"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"wrappedNative","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"AddedToTokenDirectory","inputs":[{"name":"tokenAddress","type":"address","indexed":true,"internalType":"address"},{"name":"oracle","type":"address","indexed":true,"internalType":"contract IOracle"},{"name":"decimals","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"EthWithdrawn","inputs":[{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipHandoverCanceled","inputs":[{"name":"pendingOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipHandoverRequested","inputs":[{"name":"pendingOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"oldOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PaidGasInTokens","inputs":[{"name":"userOpSender","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"gasCostBeforePostOpAndPenalty","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"tokenCharge","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"priceMarkup","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"tokenPrice","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"userOpHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Received","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RemovedFromTokenDirectory","inputs":[{"name":"tokenAddress","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SwappableTokensAdded","inputs":[{"name":"tokenAddresses","type":"address[]","indexed":true,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"SwappingReverted","inputs":[{"name":"tokenIn","type":"address","indexed":false,"internalType":"address"},{"name":"amountIn","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"reason","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"TokensSwappedAndRefilledEntryPoint","inputs":[{"name":"tokenAddress","type":"address","indexed":true,"internalType":"address"},{"name":"tokenAmount","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"amountOut","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"actor","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokensWithdrawn","inputs":[{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"actor","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"UpdatedFeeCollector","inputs":[{"name":"oldFeeCollector","type":"address","indexed":true,"internalType":"address"},{"name":"newFeeCollector","type":"address","indexed":true,"internalType":"address"},{"name":"actor","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"UpdatedFixedPriceMarkup","inputs":[{"name":"oldValue","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"newValue","type":"uint32","indexed":true,"internalType":"uint32"}],"anonymous":false},{"type":"event","name":"UpdatedNativeAssetOracle","inputs":[{"name":"oldOracle","type":"address","indexed":true,"internalType":"contract IOracle"},{"name":"newOracle","type":"address","indexed":true,"internalType":"contract IOracle"}],"anonymous":false},{"type":"event","name":"UpdatedPriceExpiryDuration","inputs":[{"name":"oldValue","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"newValue","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"UpdatedUnaccountedGas","inputs":[{"name":"oldValue","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"newValue","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"UpdatedVerifyingSigner","inputs":[{"name":"oldSigner","type":"address","indexed":true,"internalType":"address"},{"name":"newSigner","type":"address","indexed":true,"internalType":"address"},{"name":"actor","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadyInitialized","inputs":[]},{"type":"error","name":"CanNotWithdrawToZeroAddress","inputs":[]},{"type":"error","name":"FailedToChargeTokens","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"userOpHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"FeeCollectorCanNotBeZero","inputs":[]},{"type":"error","name":"InvalidOracleDecimals","inputs":[]},{"type":"error","name":"InvalidPaymasterMode","inputs":[]},{"type":"error","name":"InvalidPriceExpiryDuration","inputs":[]},{"type":"error","name":"InvalidPriceMarkup","inputs":[]},{"type":"error","name":"InvalidSignatureLength","inputs":[]},{"type":"error","name":"InvalidTokenAddress","inputs":[]},{"type":"error","name":"NewOwnerIsZeroAddress","inputs":[]},{"type":"error","name":"NoHandoverRequest","inputs":[]},{"type":"error","name":"OraclePriceExpired","inputs":[]},{"type":"error","name":"OraclePriceNotPositive","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"TokenNotSupported","inputs":[]},{"type":"error","name":"TokensAndAmountsLengthMismatch","inputs":[]},{"type":"error","name":"TokensAndInfoLengthMismatch","inputs":[]},{"type":"error","name":"TokensAndPoolsLengthMismatch","inputs":[]},{"type":"error","name":"UnaccountedGasTooHigh","inputs":[]},{"type":"error","name":"Unauthorized","inputs":[]},{"type":"error","name":"UniswapReverted","inputs":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"amountIn","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"UnwrappingReverted","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"VerifyingSignerCanNotBeContract","inputs":[]},{"type":"error","name":"VerifyingSignerCanNotBeZero","inputs":[]},{"type":"error","name":"WithdrawalFailed","inputs":[]}],"bytecode":{"object":"0x6101006040523461018757613156803803809161001b8261019f565b610100396101a0816101000191126101875761003561021a565b61004061012061022a565b61004b61014061022a565b610160516101805161005e6101a061022a565b6101c05161006d6101e061022a565b9161007961020061022a565b610220519094906001600160401b038111610187578a61009c916101000161024c565b610240519096906001600160401b038111610187578b6100bf91610100016102b3565b610260519098906001600160401b038111610187578c6100e2916101000161024c565b61028051909a906001600160401b0381116101875761010e9d6101089161010001610358565b9b61040e565b60405161285b90816108fb82396080518181816106b10152818161082d015281816108df01528181610c5c01528181610d04015281816118b001528181611a3001528181611b6901526121cc015260a0518181816102e00152818161172e0152611f74015260c05181610ebe015260e0518161207c0152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b610100601f91909101601f19168101906001600160401b038211908210176101c657604052565b61018b565b606081019081106001600160401b038211176101c657604052565b601f909101601f19168101906001600160401b038211908210176101c657604052565b6001600160a01b0381160361018757565b610100519061022882610209565b565b519061022882610209565b6001600160401b0381116101c65760051b60200190565b9080601f8301121561018757815161026381610235565b9261027160405194856101e6565b81845260208085019260051b82010192831161018757602001905b8282106102995750505090565b6020809183516102a881610209565b81520191019061028c565b81601f82011215610187578051906102ca82610235565b926102d860405194856101e6565b8284526020606081860194028301019181831161018757602001925b828410610302575050505090565b6060848303126101875760405190610319826101cb565b845161032481610209565b825260208501519063ffffffff821682036101875782602092836060950152604087015160408201528152019301926102f4565b9080601f830112156101875781519061037082610235565b9261037e60405194856101e6565b82845260208085019360051b82010191821161018757602001915b8183106103a65750505090565b825162ffffff8116810361018757815260209283019201610399565b90816020910312610187575160ff811681036101875790565b6040513d5f823e3d90fd5b80518210156103fa5760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b92989c9b9193959697610424959a9b91986105de565b60c05260e052803b6105b7576001600160a01b038116156105a85762030d40821161059957855184510361058a5760405163313ce56760e01b81526020816004816001600160a01b0388165afa9081156105855760089160ff915f91610556575b501603610547576002556003556004555f5b835181101561054157806104b66104b0600193856103e6565b51610831565b61053b6104c382856103e6565b516104fa6104e16104d4858a6103e6565b516001600160a01b031690565b6001600160a01b03165f90815260056020526040902090565b81518154602084015163ffffffff60a01b60a09190911b166001600160a01b039092166001600160c01b031990911617178155604090910151600190910155565b01610497565b50509050565b631c5f5f5d60e11b5f5260045ffd5b610578915060203d60201161057e575b61057081836101e6565b8101906103c2565b5f610485565b503d610566565b6103db565b631b90532360e21b5f5260045ffd5b63313db2a560e11b5f5260045ffd5b6381618de160e01b5f5260045ffd5b63edc30c2760e01b5f5260045ffd5b90816020910312610187575180151581036101875790565b9193946105ed9193969561073b565b825185510361072c57600180546001600160a01b0319166001600160a01b0390921691909117905560a0525f5b81518110156105415780602061069161064961063d61063d6104d45f97896103e6565b6001600160a01b031690565b60015461065e906001600160a01b031661063d565b60405163095ea7b360e01b81526001600160a01b0390911660048201525f19602482015294859283919082906044820190565b03925af191821561058557600192610700575b506106fa6106be6106b583886103e6565b5162ffffff1690565b6106e76106ce6104d485886103e6565b6001600160a01b03165f90815260208190526040902090565b9062ffffff1662ffffff19825416179055565b0161061a565b6107209060203d8111610725575b61071881836101e6565b8101906105c6565b6106a4565b503d61070e565b63552a04c960e01b5f5260045ffd5b8060601b15610824576001600160a01b0316638b78c6d8198190555f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a36040516301ffc9a760e01b815263122a0e9b60e31b60048201526020816024816001600160a01b0386165afa908115610585575f91610805575b50156107c057608052565b60405162461bcd60e51b815260206004820152601e60248201527f49456e747279506f696e7420696e74657266616365206d69736d6174636800006044820152606490fd5b61081e915060203d6020116107255761071881836101e6565b5f6107b5565b637448fbae5f526004601cfd5b805160049060209061084b906001600160a01b031661063d565b60405163313ce56760e01b815292839182905afa9081156105855760089160ff915f916108db575b5016036105475763ffffffff610890602083015163ffffffff1690565b16621e848081119081156108ce575b506108bf576040015142106108b057565b6347b4803b60e01b5f5260045ffd5b630a02dbf760e21b5f5260045ffd5b620f42409150105f61089f565b6108f4915060203d60201161057e5761057081836101e6565b5f61087356fe6080604052600436101561001a575b3615610018575f80fd5b005b5f5f3560e01c80630396cb6014611b395780631b9a91a414611aab578063205c2878146119eb57806323d9ac9b146119c4578063256929621461197957806340663794146116b257806341976e091461168e5780634230aa9e1461160657806344004cc1146115cd57806350f6ab101461157157806352b7512c1461150457806354d1f13d146114be5780635deef2aa14611409578063617d057a1461134257806361dcc50f146113015780636adf4742146112a05780636c19e78314611216578063715018a6146111cb578063735de9f7146111a457806373acf5421461114557806375151b631461110957806378b1da23146110085780637c627b2114610dd3578063889e146814610d985780638da5cb5b14610d6d578063a6e1278014610d46578063ab94cad714610d28578063b0d691fe14610ce4578063bacb4b7c14610ca8578063bb9fe6bf14610c38578063bea9849e14610be9578063c23461a914610950578063c23a5cea146108b2578063c399ec8814610800578063c87558cb14610738578063d0e30db014610692578063dab0f762146105f1578063e0d873f2146103de578063e5a29e1814610304578063eb6d3a11146102c0578063f04e283e14610272578063f2fde38b146102335763fee81cf4146101fe575061000e565b3461023057602036600319011261023057610217611bd3565b9063389a75e1600c5252602080600c2054604051908152f35b80fd5b50602036600319011261023057610248611bd3565b610250611eef565b8060601b1561026557610262906125b0565b80f35b637448fbae82526004601cfd5b50602036600319011261023057610287611bd3565b61028f611eef565b63389a75e1600c528082526020600c20805442116102b357908261026292556125b0565b636f5e881883526004601cfd5b503461023057806003193601126102305760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b50602036600319011261023057610319611bd3565b610321611eef565b60405163313ce56760e01b81526001600160a01b0382169190602081600481865afa9081156103d35760089160ff9186916103a4575b501603610395576001600160a01b0360045416906004557f5575976ac84cfdef78545577f730cc9e1d97e34b91ce2821248c40f315c2c0ab8380a380f35b631c5f5f5d60e11b8352600483fd5b6103c6915060203d6020116103cc575b6103be8183611c98565b810190611ed6565b5f610357565b503d6103b4565b6040513d86823e3d90fd5b506080366003190112610230576103f3611bd3565b60603660231901126105ed576040519061040c82611c68565b610414611bfd565b82526044359163ffffffff831683036105e9576020810192835260408101916064358352610440611eef565b600460206001600160a01b038451166040519283809263313ce56760e01b82525afa9081156105de5760089160ff9188916105bf575b5016036105b05763ffffffff845116621e848081119081156105a3575b506105945782514210610585576001600160a01b036001911692838652600560205261050d63ffffffff6001600160a01b0360408920955116968773ffffffffffffffffffffffffffffffffffffffff198754161786555116849063ffffffff60a01b1963ffffffff60a01b83549260a01b169116179055565b5191015560405163313ce56760e01b8152602081600481855afa9081156103d3577f84f87257a86c08a530e687f37b67e004d58505bbd85491a49281af661e831d62916020918691610568575b5060ff60405191168152a380f35b61057f9150823d84116103cc576103be8183611c98565b5f61055a565b6347b4803b60e01b8552600485fd5b630a02dbf760e21b8552600485fd5b620f42409150105f610493565b631c5f5f5d60e11b8552600485fd5b6105d8915060203d6020116103cc576103be8183611c98565b5f610476565b6040513d88823e3d90fd5b8380fd5b5080fd5b50346102305760c03660031901126102305760043567ffffffffffffffff81116105ed5761012060031982360301126105ed5760243565ffffffffffff8116810361068e5760443565ffffffffffff811681036105e957606435916001600160a01b038316830361068a5760a4359463ffffffff861686036102305760206106828760843587878760048c01611dd2565b604051908152f35b8480fd5b8280fd5b5080600319360112610230576106a6611f0b565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561073557816024916040519283809263b760faf960e01b825230600483015234905af1801561072a57610715575b505f51602061282f5f395f51905f525d80f35b8161071f91611c98565b61023057805f610702565b6040513d84823e3d90fd5b50fd5b5060403660031901126102305761074d611bd3565b60243563ffffffff8116918282036105e957610767611eef565b621e8480831180156107f4575b6107e5576001600160a01b0316808452600560208181526040808720549387529190528420805463ffffffff60a01b191660a093841b63ffffffff60a01b16179055901c63ffffffff167facc62dff631d64bb26e99854b6fd5a402f6b86db87bec882490e9227b569301d8380a380f35b630a02dbf760e21b8452600484fd5b50620f42408310610774565b50346102305780600319360112610230576040516370a0823160e01b8152306004820152906020826024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108a6579061086f575b602090604051908152f35b506020813d60201161089e575b8161088960209383611c98565b8101031261089a5760209051610864565b5f80fd5b3d915061087c565b604051903d90823e3d90fd5b503461023057602036600319011261023057806108cd611bd3565b6108d5611eef565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561094c576001600160a01b036024849283604051958694859363611d2e7560e11b85521660048401525af1801561072a5761093b5750f35b8161094591611c98565b6102305780f35b5050fd5b5060403660031901126102305760043567ffffffffffffffff81116105ed57366023820112156105ed5780600401359061098982611cba565b906109976040519283611c98565b828252602082016024819460051b83010191368311610be557602401905b828210610bcd575050506024359067ffffffffffffffff82116105e957366023830112156105e95781600401356109eb81611cba565b926109f96040519485611c98565b8184526024602085019260051b82010190368211610bc957602401915b818310610ba957505050610a28611eef565b8051825103610b9a57835b8151811015610b3457806001600160a01b03610a5160019385611d55565b511662ffffff610a618387611d55565b5116906001600160a01b0384541660405160208a81830163095ea7b360e01b81528460248501525f19604485015260448452610a9e606485611c98565b83519082875af18a513d82610b19575b505015610ad4575b5050875286602052604087209062ffffff1982541617905501610a33565b610b0c610b12926040519063095ea7b360e01b602083015260248201528b604482015260448152610b06606482611c98565b846127da565b826127da565b5f80610ab6565b909150610b2d5750823b15155b5f80610aae565b8614610b26565b8484836040519182839251909190855b818110610b78575050500390207f8da1eee856eda075166c17f15b4618bd1c46fce796c12d70b4c8f6057c20a7788280a280f35b82516001600160a01b0316845285945060209384019390920191600101610b44565b63552a04c960e01b8452600484fd5b823562ffffff81168103610bc557815260209283019201610a16565b8780fd5b8680fd5b60208091610bda84611be9565b8152019101906109b5565b8580fd5b5034610230576020366003190112610230576004356001600160a01b0381168091036105ed57610c17611eef565b73ffffffffffffffffffffffffffffffffffffffff19600154161760015580f35b5034610230578060031936011261023057610c51611eef565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b156107355781809160046040518094819363bb9fe6bf60e01b83525af1801561072a5761093b5750f35b50346102305760203660031901126102305762ffffff60406020926001600160a01b03610cd3611bd3565b168152808452205416604051908152f35b503461023057806003193601126102305760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346102305780600319360112610230576020600354604051908152f35b503461023057806003193601126102305760206001600160a01b0360045416604051908152f35b50346102305780600319360112610230576020638b78c6d819546001600160a01b0360405191168152f35b503461023057602036600319011261023057600160406020926001600160a01b03610dc1611bd3565b16815260058452200154604051908152f35b503461023057608036600319011261023057600360043510156102305760243567ffffffffffffffff81116105ed57366023820112156105ed57806004013567ffffffffffffffff811161068e57810136602482011161068e5760c060443591610e3b6121c2565b8390031261068e57610e4f60248301611be9565b90610e5c60448401611be9565b91608484013560a485013563ffffffff8116809103610bc95760c4860135926001600160a01b038082169616968315610fe8575b83610eb184610eb1610eb6610ebc95610eb1606480359201356003546125ee565b611fbb565b8a6125ee565b7f000000000000000000000000000000000000000000000000000000000000000090620f4240820291808304620f42401490151715610fd45790610eff91611fe2565b906040519082606052306040526bffffffffffffffffffffffff199060601b16602c526f23b872dd000000000000000000000000600c526020896064601c828c5af18060018b51141615610fc9575b89606052816040525f14610fa357509160a093917f9b02391759649674b016374b782fbd862605050c75d26c3e4c0b385e75bc1c4895936040519485526020850152604084015260608301526080820152a380f35b84608492898963590bc6cb60e11b85526004850152602484015260448301526064820152fd5b3d893b151710610f4e565b634e487b7160e01b8a52601160045260248afd5b9250610ff387612000565b9283610e9057633dd1b30560e01b8952600489fd5b5060403660031901126102305760043567ffffffffffffffff81116105ed57611035903690600401611c37565b61103d611bfd565b90611046611eef565b61104e611f0b565b835b81811061106b5784805f51602061282f5f395f51905f525d80f35b8060206001600160a01b0361108b611086602495878a611d1d565b611d41565b16604051938480926370a0823160e01b82523060048301525afa9182156105de5786926110d4575b506110ce600192856110c961108685888b611d1d565b612116565b01611050565b91506020823d8211611101575b816110ee60209383611c98565b8101031261089a579051906110ce6110b3565b3d91506110e1565b5034610230576020366003190112610230576001600160a01b03604060209282611131611bd3565b168152600584522054161515604051908152f35b5060203660031901126102305760043561115d611eef565b62030d40811161119557600354816003557f2fcf69360e1d372881528eb806fae2b9226a258176570a4aef1d87cb811b0eb28380a380f35b63313db2a560e11b8252600482fd5b503461023057806003193601126102305760206001600160a01b0360015416604051908152f35b5080600319360112610230576111df611eef565b80638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380638b78c6d8195580f35b5060203660031901126102305761122b611bd3565b611233611eef565b803b611291576001600160a01b0381168015611282576001600160a01b03600254169160025533917f0789b50c6940fa8935aaafcb17af50f66128e76c1c12c984884d6cf35411c3d98480a480f35b6381618de160e01b8352600483fd5b63edc30c2760e01b8252600482fd5b506020366003190112610230576001600160a01b036112bd611bd3565b6112c5611eef565b1680825260056020528160016040822082815501557f70cf61416226155841dbe8e5007a92de878a678754db8abd48a2b34d039693638280a280f35b50346102305760203660031901126102305763ffffffff60406020926001600160a01b0361132d611bd3565b16815260058452205460a01c16604051908152f35b5060603660031901126102305760043567ffffffffffffffff81116105ed5761136f903690600401611c37565b611377611bfd565b60443567ffffffffffffffff811161068a57611397903690600401611c37565b90926113a1611eef565b6113a9611f0b565b8181036113fa57855b8181106113cd5786805f51602061282f5f395f51905f525d80f35b806113f46113e1611086600194868b611d1d565b866113ed84888b611d1d565b3591612116565b016113b2565b630483384360e11b8652600486fd5b5060403660031901126102305761141e611bd3565b611426611bfd565b9061142f611eef565b611437611f0b565b6040516370a0823160e01b8152306004820152916020836024816001600160a01b0386165afa9182156103d3578492611488575b6114759350612116565b805f51602061282f5f395f51905f525d80f35b91506020833d6020116114b6575b816114a360209383611c98565b8101031261089a5761147592519161146b565b3d9150611496565b50806003193601126102305763389a75e1600c52338152806020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c928280a280f35b5034610230576060366003190112610230576004359067ffffffffffffffff821161023057610120600319833603011261023057611567611553836115476121c2565b60243590600401612239565b604051928392604084526040840190611c13565b9060208301520390f35b50346102305760203660031901126102305760406060916001600160a01b03611598611bd3565b1681526005602052206001815491015463ffffffff604051926001600160a01b038116845260a01c1660208301526040820152f35b506060366003190112610230576114756115e5611bd3565b6115ed611bfd565b6115f5611eef565b6115fd611f0b565b60443591612116565b5060403660031901126102305761161b611bd3565b60243590611627611eef565b81421061167f576001600160a01b03168083526005602052600160408420015490835260056020528160016040852001557f5c6422fd0fdb3c8a87212d2f3d69bd50d985fe20413fa4025e589ae32d7882a98380a380f35b6347b4803b60e01b8352600483fd5b50346102305760203660031901126102305760206106826116ad611bd3565b612000565b506060366003190112610230576116c7611bd3565b6001600160a01b03602435916116db611f0b565b16908183528260205262ffffff6040842054161561196a578183528260205262ffffff60408420541660405160e0810181811067ffffffffffffffff8211176119565790859160405284815260208101927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316845260408201908152606082013081526080830186815260a0840190604435825260c08501928684526001546001600160a01b0316946040519889976304e45aaf60e01b8952516001600160a01b03166004890152516001600160a01b031660248801525162ffffff166044870152516001600160a01b031660648601525160848501525160a4840152516001600160a01b031660c4830152815a9360e492602095f1849181611922575b5061191c57507f0cba6018de7a308d62a909cf070bd4adce14183eecb0e81896a7a2166381f281611853611833611cee565b604051918291868352856020840152606060408401526060830190611c13565b0390a182915b8261189c575b7f1167bb4d1b193b67a7db44fae87314c8dd5df00b345b9c62d0436599755e93316020604051338152a4805f51602061282f5f395f51905f525d80f35b6118a583611f40565b836001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b156105ed5781859160246040518094819363b760faf960e01b83523060048401525af1801561072a57611907575b505061185f565b8161191191611c98565b6105e957835f611900565b91611859565b9091506020813d60201161194e575b8161193e60209383611c98565b8101031261089a5751905f611801565b3d9150611931565b634e487b7160e01b86526041600452602486fd5b633dd1b30560e01b8352600483fd5b50806003193601126102305763389a75e1600c523381526202a30042016020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d8280a280f35b503461023057806003193601126102305760206001600160a01b0360025416604051908152f35b5034610230576040366003190112610230576001600160a01b03611a0d611bd3565b611a15611eef565b611a1d611f0b565b168015611a9c5781906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561094c57829160448392604051948593849263040b850f60e31b8452600484015260243560248401525af1801561072a5761071557505f51602061282f5f395f51905f525d80f35b6392bc9df360e01b8252600482fd5b50604036600319011261023057611ac0611bd3565b6001600160a01b0360243591611ad4611eef565b611adc611f0b565b168280808085855af1611aed611cee565b5015611b2a577f8455ae6be5d92f1df1c3c1484388e247a36c7e60d72055ae216dbc258f257d4b8380a3805f51602061282f5f395f51905f525d80f35b6327fcd9d160e01b8352600483fd5b50602036600319011261089a5760043563ffffffff811680910361089a57611b5f611eef565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561089a575f90602460405180948193621cb65b60e51b8352600483015234905af18015611bc857611bbc575080f35b61001891505f90611c98565b6040513d5f823e3d90fd5b600435906001600160a01b038216820361089a57565b35906001600160a01b038216820361089a57565b602435906001600160a01b038216820361089a57565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9181601f8401121561089a5782359167ffffffffffffffff831161089a576020808501948460051b01011161089a57565b6060810190811067ffffffffffffffff821117611c8457604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff821117611c8457604052565b67ffffffffffffffff8111611c845760051b60200190565b67ffffffffffffffff8111611c8457601f01601f191660200190565b3d15611d18573d90611cff82611cd2565b91611d0d6040519384611c98565b82523d5f602084013e565b606090565b9190811015611d2d5760051b0190565b634e487b7160e01b5f52603260045260245ffd5b356001600160a01b038116810361089a5790565b8051821015611d2d5760209160051b010190565b903590601e198136030182121561089a570180359067ffffffffffffffff821161089a5760200191813603831361089a57565b929192611da882611cd2565b91611db66040519384611c98565b82948184528183011161089a578281602093845f960137010152565b939194929094611def611de86040870187611d69565b3691611d9c565b6020815191012095611e07611de86060880188611d69565b6020815191012095611e1c60e0820182611d69565b60341161089a576014013560405197602089019983356001600160a01b03168b52602084013560408b015260608a01526080890152608082013560a089015260c088015260a081013560e088015260c00135610100870152466101208701523061014087015265ffffffffffff1661016086015265ffffffffffff166101808501526001600160a01b03166101a08401526101c083015263ffffffff166101e08201526101e08152611ed061020082611c98565b51902090565b9081602091031261089a575160ff8116810361089a5790565b638b78c6d819543303611efe57565b6382b429005f526004601cfd5b5f51602061282f5f395f51905f525c611f315760015f51602061282f5f395f51905f525d565b633ee5aeb560e01b5f5260045ffd5b8015611fb8575f806040516020810190632e1a7d4d60e01b825284602482015260248152611f6f604482611c98565b5190827f00000000000000000000000000000000000000000000000000000000000000005af1611f9d611cee565b5015611fa65750565b637bd5213f60e11b5f5260045260245ffd5b50565b81810292918115918404141715611fce57565b634e487b7160e01b5f52601160045260245ffd5b8115611fec570490565b634e487b7160e01b5f52601260045260245ffd5b6001600160a01b0316805f52600560205260405f206040519061202282611c68565b600181549163ffffffff6001600160a01b0384169384865260a01c1660208501520154906040830191825215612107576001600160a01b03612068925116905190612612565b600460206120a16001600160a01b038354167f000000000000000000000000000000000000000000000000000000000000000090612612565b936040519283809263313ce56760e01b82525afa8015611bc85760ff915f916120e8575b5016604d8111611fce576120e5926120e091600a0a90611fbb565b611fe2565b90565b612101915060203d6020116103cc576103be8183611c98565b5f6120c5565b633dd1b30560e01b5f5260045ffd5b906001600160a01b0381169182156121b3576001600160a01b031690601452826034526fa9059cbb0000000000000000000000005f5260205f6044601082855af18060015f51141615612195575b505f6034527f4e5ba90310f16273bb12f3c33f23905e573b86df58a2895a525285d083bf043f6020604051338152a4565b3d823b151710156121a6575f612164565b6390b8ec185f526004601cfd5b6392bc9df360e01b5f5260045ffd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036121f457565b60405162461bcd60e51b815260206004820152601560248201527f53656e646572206e6f7420456e747279506f696e7400000000000000000000006044820152606490fd5b919060609060e08401905f61224e8387611d69565b9390918460341015611d2d57603483013560f81c95600287101561259c578560351161089a5760358401916034198701936001891161258d57612291908b611d69565b60341161089a576024013560801c6fffffffffffffffffffffffffffffffff60808c013516016fffffffffffffffffffffffffffffffff8111611fce576fffffffffffffffffffffffffffffffff600a9116026fffffffffffffffffffffffffffffffff8116908103611fce57606490046fffffffffffffffffffffffffffffffff1697806124d6575050508160061161089a573560d01c94600c821061089a57603b83013560d01c976020831061089a57604184013560601c956040841061089a5760558501359360441161089a5761237d90607586013560e01c9560793692607819019101611d9c565b8051604081141590816124ca575b506124bb576123dc90886123af87878b8f6001600160a01b03600254169589611dd2565b6020527b19457468657265756d205369676e6564204d6573736167653a0a33325f52603c600420906126d3565b15612465579165ffffffffffff60a01b9593916001600160a01b036124227fffffffffffff00000000000000000000000000000000000000000000000000009795611d41565b9581604051971660208801521660408601526060850152608084015260a083015260c082015260c0815261245760e082611c98565b9460d01b169160a01b161790565b50505050505065ffffffffffff60a01b7fffffffffffff00000000000000000000000000000000000000000000000000006001939460d01b169160a01b161717906040516124b4602082611c98565b5f81529190565b634be6321b60e01b5f5260045ffd5b6041915014155f61238b565b90989794506001919993959650146124f0575b5050505050565b90919280949597965060141161089a5735851c6001600160a01b0316926013190161257e5761251e90611d41565b93825f5260056020526001600160a01b0363ffffffff60405f205460a01c169381604051971660208801521660408601528401525f608084015260a083015260c082015260c0815261257160e082611c98565b905f905f808080806124e9565b630f58058360e11b5f5260045ffd5b63817c70e760e01b5f5260045ffd5b634e487b7160e01b5f52602160045260245ffd5b6001600160a01b031680638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3638b78c6d81955565b91908201809211611fce57565b519069ffffffffffffffffffff8216820361089a57565b9060a06001600160a01b0392600460405180958193633fabe5a360e21b8352165afa908115611bc8575f925f9261267d575b505f83131561266e57420390428211611fce571061265f5790565b63757ee0c360e11b5f5260045ffd5b631319f4b960e11b5f5260045ffd5b9250905060a0823d60a0116126cb575b8161269a60a09383611c98565b8101031261089a576126ab826125fb565b5060208201516126c26080606085015194016125fb565b5091905f612644565b3d915061268d565b92915f936001600160a01b038116156127d2576040519282518060401461279657604114612756575b8515612709575b50505050565b602093949550630b135d3f60e11b855260048501526024840193849260408452805185019081604484019160045afa5060443d01915afa9051630b135d3f60e11b1416905f808080612703565b945060608201515f1a60205260408201516060525b845f5260208201516040526020600160805f825afa51811860601b3d11945f606052836040526126fc565b5094507f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040830151601b8160ff1c016020521660605261276b565b505f93505050565b905f602091828151910182855af115611bc8575f513d61282557506001600160a01b0381163b155b6128095750565b6001600160a01b0390635274afe760e01b5f521660045260245ffd5b6001141561280256fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a164736f6c634300081b000a","sourceMap":"2174:25049:8:-:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;2174:25049:8;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;2174:25049:8;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;2174:25049:8;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;2174:25049:8;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2174:25049:8;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2174:25049:8;;;;-1:-1:-1;;;;;2174:25049:8;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2174:25049:8;;;;;;;:::o;:::-;;;;;-1:-1:-1;;2174:25049:8;;;;-1:-1:-1;;;;;2174:25049:8;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;2174:25049:8;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;:::i;:::-;-1:-1:-1;;;;;2174:25049:8;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;2870:7;;;;;;;;;;;;;;;;;;:::o;:::-;2174:25049;;2870:7;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;2174:25049;;;2870:7;;;;;;;;3639:2172;;;;;;;;;;;;;;;;;:::i;:::-;4543:47;;4600:71;;6221:74:0;;4682:102:8;;-1:-1:-1;;;;;2174:25049:8;;4797:32;4793:99;;2870:7;4905:42;;4901:103;;2870:7;;;;5018:51;5014:118;;2174:25049;;-1:-1:-1;;;5145:36:8;;;2174:25049;5145:36;2174:25049;-1:-1:-1;;;;;2174:25049:8;;5145:36;;;;;;;5185:1;5145:36;2870:7;5145:36;4827:1;5145:36;;;3639:2172;2870:7;;5145:41;5141:179;;5361:231;;;;5145:36;5361:231;4827:1;5655:3;2870:7;;5622:31;;;;;5693:16;;;2870:7;5693:16;;;:::i;:::-;;;:::i;:::-;2870:7;5777:16;;;;:::i;:::-;;5724:50;5750:23;;;;;:::i;:::-;2870:7;-1:-1:-1;;;;;2174:25049:8;;2870:7;5750:23;-1:-1:-1;;;;;2174:25049:8;2870:7;;;;5724:25;2870:7;;;;;;;5724:50;2870:7;;;;;;;;-1:-1:-1;;;2174:25049:8;2870:7;;;;;-1:-1:-1;;;;;2174:25049:8;;;-1:-1:-1;;;;;;2870:7:8;;;;;;;;;;;;-1:-1:-1;2870:7:8;;;;;;;5607:13;;5622:31;;;;;3639:2172::o;5141:179::-;5286:23;;;4827:1;5286:23;5145:36;4827:1;5286:23;5145:36;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;5014:118::-;5092:29;;;4827:1;5092:29;;4827:1;5092:29;4901:103;4970:23;;;4827:1;4970:23;;4827:1;4970:23;4793:99;4852:29;;;4827:1;4852:29;;4827:1;4852:29;4682:102;4740:33;;;;;;;;2174:25049;;;;;;;;;;;;;;;;;;:::o;1264:723:9:-;;;;377:1683:48;1264:723:9;;;;377:1683:48;:::i;:::-;2870:7:8;;;;1446:41:9;1442:109;;2174:25049:8;2870:7;;-1:-1:-1;;;;;;2870:7:8;-1:-1:-1;;;;;2174:25049:8;;;2870:7;;;;;;1660:32:9;;-1:-1:-1;1742:3:9;2870:7:8;;1723:17:9;;;;;1768:9;1761:68;;:25;:17;1768:9;;-1:-1:-1;1768:9:9;;;:::i;:::-;-1:-1:-1;;;;;2174:25049:8;;;1761:25:9;1618:32;2174:25049:8;1787:22:9;;-1:-1:-1;;;;;2174:25049:8;;;1787:22:9;2174:25049:8;;-1:-1:-1;;;1761:68:9;;-1:-1:-1;;;;;2174:25049:8;;;1761:68:9;;;2174:25049:8;-1:-1:-1;;2174:25049:8;;;;;;;;;2870:7;2174:25049;;;;;;;1761:68:9;;;;;;;;;;1618:32;1761:68;;;1742:3;1894:20;1868:46;1894:20;;;;;:::i;:::-;2174:25049:8;;;;;1894:20:9;1868:23;1881:9;;;;;:::i;:::-;-1:-1:-1;;;;;2174:25049:8;1720:1:9;2870:7:8;;;;;;;;;;;;1868:23:9;2174:25049:8;;;;;;;;;;;;1868:46:9;2870:7:8;1708:13:9;;1761:68;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;1442:109;1510:30;;;-1:-1:-1;1510:30:9;;-1:-1:-1;1510:30:9;1021:171:0;198:181:10;;;;;;-1:-1:-1;;;;;5710:347:129;-1:-1:-1;;5710:347:129;;;-1:-1:-1;5710:347:129;-1:-1:-1;;5710:347:129;2174:25049:8;;-1:-1:-1;;;3843:80:0;;-1:-1:-1;;;3843:80:0;;;2174:25049:8;;;3843:80:0;2174:25049:8;-1:-1:-1;;;;;2174:25049:8;;3843:80:0;;;;;;;-1:-1:-1;3843:80:0;;;1021:171;2174:25049:8;;;;1159:26:0;;1021:171::o;2174:25049:8:-;;;-1:-1:-1;;;2174:25049:8;;;3843:80:0;2174:25049:8;;;;3843:80:0;2174:25049:8;;;;;;;;;;;3843:80:0;;;;2174:25049:8;3843:80:0;2174:25049:8;3843:80:0;;;;;;;:::i;:::-;;;;198:181:10;;;;;;;24713:455:8;2870:7;;24797:27;;;;:25;;-1:-1:-1;;;;;2174:25049:8;2870:7;2174:25049;24797:25;2174:25049;;-1:-1:-1;;;24797:27:8;;2174:25049;;;;;24797:27;;;;;;;24828:1;24797:27;2870:7;24797:27;:16;:27;;;24713:455;2870:7;;24797:32;24793:93;;2174:25049;2870:7;24797:27;24899:21;;2870:7;2174:25049;;;;2870:7;2174:25049;3075:3;24899:41;;:87;;;;;24713:455;24895:145;;;2174:25049;25071:29;2870:7;25053:15;:47;25049:113;;24713:455::o;25049:113::-;25123:28;;;24797:16;25123:28;24797:27;:16;25123:28;24895:145;25009:20;;;24797:16;25009:20;24797:27;:16;25009:20;24899:87;2962:3;24944:42;;;24899:87;;;24797:27;;;;;;;;;;;;;;:::i;:::-;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001a575b3615610018575f80fd5b005b5f5f3560e01c80630396cb6014611b395780631b9a91a414611aab578063205c2878146119eb57806323d9ac9b146119c4578063256929621461197957806340663794146116b257806341976e091461168e5780634230aa9e1461160657806344004cc1146115cd57806350f6ab101461157157806352b7512c1461150457806354d1f13d146114be5780635deef2aa14611409578063617d057a1461134257806361dcc50f146113015780636adf4742146112a05780636c19e78314611216578063715018a6146111cb578063735de9f7146111a457806373acf5421461114557806375151b631461110957806378b1da23146110085780637c627b2114610dd3578063889e146814610d985780638da5cb5b14610d6d578063a6e1278014610d46578063ab94cad714610d28578063b0d691fe14610ce4578063bacb4b7c14610ca8578063bb9fe6bf14610c38578063bea9849e14610be9578063c23461a914610950578063c23a5cea146108b2578063c399ec8814610800578063c87558cb14610738578063d0e30db014610692578063dab0f762146105f1578063e0d873f2146103de578063e5a29e1814610304578063eb6d3a11146102c0578063f04e283e14610272578063f2fde38b146102335763fee81cf4146101fe575061000e565b3461023057602036600319011261023057610217611bd3565b9063389a75e1600c5252602080600c2054604051908152f35b80fd5b50602036600319011261023057610248611bd3565b610250611eef565b8060601b1561026557610262906125b0565b80f35b637448fbae82526004601cfd5b50602036600319011261023057610287611bd3565b61028f611eef565b63389a75e1600c528082526020600c20805442116102b357908261026292556125b0565b636f5e881883526004601cfd5b503461023057806003193601126102305760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b50602036600319011261023057610319611bd3565b610321611eef565b60405163313ce56760e01b81526001600160a01b0382169190602081600481865afa9081156103d35760089160ff9186916103a4575b501603610395576001600160a01b0360045416906004557f5575976ac84cfdef78545577f730cc9e1d97e34b91ce2821248c40f315c2c0ab8380a380f35b631c5f5f5d60e11b8352600483fd5b6103c6915060203d6020116103cc575b6103be8183611c98565b810190611ed6565b5f610357565b503d6103b4565b6040513d86823e3d90fd5b506080366003190112610230576103f3611bd3565b60603660231901126105ed576040519061040c82611c68565b610414611bfd565b82526044359163ffffffff831683036105e9576020810192835260408101916064358352610440611eef565b600460206001600160a01b038451166040519283809263313ce56760e01b82525afa9081156105de5760089160ff9188916105bf575b5016036105b05763ffffffff845116621e848081119081156105a3575b506105945782514210610585576001600160a01b036001911692838652600560205261050d63ffffffff6001600160a01b0360408920955116968773ffffffffffffffffffffffffffffffffffffffff198754161786555116849063ffffffff60a01b1963ffffffff60a01b83549260a01b169116179055565b5191015560405163313ce56760e01b8152602081600481855afa9081156103d3577f84f87257a86c08a530e687f37b67e004d58505bbd85491a49281af661e831d62916020918691610568575b5060ff60405191168152a380f35b61057f9150823d84116103cc576103be8183611c98565b5f61055a565b6347b4803b60e01b8552600485fd5b630a02dbf760e21b8552600485fd5b620f42409150105f610493565b631c5f5f5d60e11b8552600485fd5b6105d8915060203d6020116103cc576103be8183611c98565b5f610476565b6040513d88823e3d90fd5b8380fd5b5080fd5b50346102305760c03660031901126102305760043567ffffffffffffffff81116105ed5761012060031982360301126105ed5760243565ffffffffffff8116810361068e5760443565ffffffffffff811681036105e957606435916001600160a01b038316830361068a5760a4359463ffffffff861686036102305760206106828760843587878760048c01611dd2565b604051908152f35b8480fd5b8280fd5b5080600319360112610230576106a6611f0b565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561073557816024916040519283809263b760faf960e01b825230600483015234905af1801561072a57610715575b505f51602061282f5f395f51905f525d80f35b8161071f91611c98565b61023057805f610702565b6040513d84823e3d90fd5b50fd5b5060403660031901126102305761074d611bd3565b60243563ffffffff8116918282036105e957610767611eef565b621e8480831180156107f4575b6107e5576001600160a01b0316808452600560208181526040808720549387529190528420805463ffffffff60a01b191660a093841b63ffffffff60a01b16179055901c63ffffffff167facc62dff631d64bb26e99854b6fd5a402f6b86db87bec882490e9227b569301d8380a380f35b630a02dbf760e21b8452600484fd5b50620f42408310610774565b50346102305780600319360112610230576040516370a0823160e01b8152306004820152906020826024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108a6579061086f575b602090604051908152f35b506020813d60201161089e575b8161088960209383611c98565b8101031261089a5760209051610864565b5f80fd5b3d915061087c565b604051903d90823e3d90fd5b503461023057602036600319011261023057806108cd611bd3565b6108d5611eef565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561094c576001600160a01b036024849283604051958694859363611d2e7560e11b85521660048401525af1801561072a5761093b5750f35b8161094591611c98565b6102305780f35b5050fd5b5060403660031901126102305760043567ffffffffffffffff81116105ed57366023820112156105ed5780600401359061098982611cba565b906109976040519283611c98565b828252602082016024819460051b83010191368311610be557602401905b828210610bcd575050506024359067ffffffffffffffff82116105e957366023830112156105e95781600401356109eb81611cba565b926109f96040519485611c98565b8184526024602085019260051b82010190368211610bc957602401915b818310610ba957505050610a28611eef565b8051825103610b9a57835b8151811015610b3457806001600160a01b03610a5160019385611d55565b511662ffffff610a618387611d55565b5116906001600160a01b0384541660405160208a81830163095ea7b360e01b81528460248501525f19604485015260448452610a9e606485611c98565b83519082875af18a513d82610b19575b505015610ad4575b5050875286602052604087209062ffffff1982541617905501610a33565b610b0c610b12926040519063095ea7b360e01b602083015260248201528b604482015260448152610b06606482611c98565b846127da565b826127da565b5f80610ab6565b909150610b2d5750823b15155b5f80610aae565b8614610b26565b8484836040519182839251909190855b818110610b78575050500390207f8da1eee856eda075166c17f15b4618bd1c46fce796c12d70b4c8f6057c20a7788280a280f35b82516001600160a01b0316845285945060209384019390920191600101610b44565b63552a04c960e01b8452600484fd5b823562ffffff81168103610bc557815260209283019201610a16565b8780fd5b8680fd5b60208091610bda84611be9565b8152019101906109b5565b8580fd5b5034610230576020366003190112610230576004356001600160a01b0381168091036105ed57610c17611eef565b73ffffffffffffffffffffffffffffffffffffffff19600154161760015580f35b5034610230578060031936011261023057610c51611eef565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b156107355781809160046040518094819363bb9fe6bf60e01b83525af1801561072a5761093b5750f35b50346102305760203660031901126102305762ffffff60406020926001600160a01b03610cd3611bd3565b168152808452205416604051908152f35b503461023057806003193601126102305760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346102305780600319360112610230576020600354604051908152f35b503461023057806003193601126102305760206001600160a01b0360045416604051908152f35b50346102305780600319360112610230576020638b78c6d819546001600160a01b0360405191168152f35b503461023057602036600319011261023057600160406020926001600160a01b03610dc1611bd3565b16815260058452200154604051908152f35b503461023057608036600319011261023057600360043510156102305760243567ffffffffffffffff81116105ed57366023820112156105ed57806004013567ffffffffffffffff811161068e57810136602482011161068e5760c060443591610e3b6121c2565b8390031261068e57610e4f60248301611be9565b90610e5c60448401611be9565b91608484013560a485013563ffffffff8116809103610bc95760c4860135926001600160a01b038082169616968315610fe8575b83610eb184610eb1610eb6610ebc95610eb1606480359201356003546125ee565b611fbb565b8a6125ee565b7f000000000000000000000000000000000000000000000000000000000000000090620f4240820291808304620f42401490151715610fd45790610eff91611fe2565b906040519082606052306040526bffffffffffffffffffffffff199060601b16602c526f23b872dd000000000000000000000000600c526020896064601c828c5af18060018b51141615610fc9575b89606052816040525f14610fa357509160a093917f9b02391759649674b016374b782fbd862605050c75d26c3e4c0b385e75bc1c4895936040519485526020850152604084015260608301526080820152a380f35b84608492898963590bc6cb60e11b85526004850152602484015260448301526064820152fd5b3d893b151710610f4e565b634e487b7160e01b8a52601160045260248afd5b9250610ff387612000565b9283610e9057633dd1b30560e01b8952600489fd5b5060403660031901126102305760043567ffffffffffffffff81116105ed57611035903690600401611c37565b61103d611bfd565b90611046611eef565b61104e611f0b565b835b81811061106b5784805f51602061282f5f395f51905f525d80f35b8060206001600160a01b0361108b611086602495878a611d1d565b611d41565b16604051938480926370a0823160e01b82523060048301525afa9182156105de5786926110d4575b506110ce600192856110c961108685888b611d1d565b612116565b01611050565b91506020823d8211611101575b816110ee60209383611c98565b8101031261089a579051906110ce6110b3565b3d91506110e1565b5034610230576020366003190112610230576001600160a01b03604060209282611131611bd3565b168152600584522054161515604051908152f35b5060203660031901126102305760043561115d611eef565b62030d40811161119557600354816003557f2fcf69360e1d372881528eb806fae2b9226a258176570a4aef1d87cb811b0eb28380a380f35b63313db2a560e11b8252600482fd5b503461023057806003193601126102305760206001600160a01b0360015416604051908152f35b5080600319360112610230576111df611eef565b80638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380638b78c6d8195580f35b5060203660031901126102305761122b611bd3565b611233611eef565b803b611291576001600160a01b0381168015611282576001600160a01b03600254169160025533917f0789b50c6940fa8935aaafcb17af50f66128e76c1c12c984884d6cf35411c3d98480a480f35b6381618de160e01b8352600483fd5b63edc30c2760e01b8252600482fd5b506020366003190112610230576001600160a01b036112bd611bd3565b6112c5611eef565b1680825260056020528160016040822082815501557f70cf61416226155841dbe8e5007a92de878a678754db8abd48a2b34d039693638280a280f35b50346102305760203660031901126102305763ffffffff60406020926001600160a01b0361132d611bd3565b16815260058452205460a01c16604051908152f35b5060603660031901126102305760043567ffffffffffffffff81116105ed5761136f903690600401611c37565b611377611bfd565b60443567ffffffffffffffff811161068a57611397903690600401611c37565b90926113a1611eef565b6113a9611f0b565b8181036113fa57855b8181106113cd5786805f51602061282f5f395f51905f525d80f35b806113f46113e1611086600194868b611d1d565b866113ed84888b611d1d565b3591612116565b016113b2565b630483384360e11b8652600486fd5b5060403660031901126102305761141e611bd3565b611426611bfd565b9061142f611eef565b611437611f0b565b6040516370a0823160e01b8152306004820152916020836024816001600160a01b0386165afa9182156103d3578492611488575b6114759350612116565b805f51602061282f5f395f51905f525d80f35b91506020833d6020116114b6575b816114a360209383611c98565b8101031261089a5761147592519161146b565b3d9150611496565b50806003193601126102305763389a75e1600c52338152806020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c928280a280f35b5034610230576060366003190112610230576004359067ffffffffffffffff821161023057610120600319833603011261023057611567611553836115476121c2565b60243590600401612239565b604051928392604084526040840190611c13565b9060208301520390f35b50346102305760203660031901126102305760406060916001600160a01b03611598611bd3565b1681526005602052206001815491015463ffffffff604051926001600160a01b038116845260a01c1660208301526040820152f35b506060366003190112610230576114756115e5611bd3565b6115ed611bfd565b6115f5611eef565b6115fd611f0b565b60443591612116565b5060403660031901126102305761161b611bd3565b60243590611627611eef565b81421061167f576001600160a01b03168083526005602052600160408420015490835260056020528160016040852001557f5c6422fd0fdb3c8a87212d2f3d69bd50d985fe20413fa4025e589ae32d7882a98380a380f35b6347b4803b60e01b8352600483fd5b50346102305760203660031901126102305760206106826116ad611bd3565b612000565b506060366003190112610230576116c7611bd3565b6001600160a01b03602435916116db611f0b565b16908183528260205262ffffff6040842054161561196a578183528260205262ffffff60408420541660405160e0810181811067ffffffffffffffff8211176119565790859160405284815260208101927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316845260408201908152606082013081526080830186815260a0840190604435825260c08501928684526001546001600160a01b0316946040519889976304e45aaf60e01b8952516001600160a01b03166004890152516001600160a01b031660248801525162ffffff166044870152516001600160a01b031660648601525160848501525160a4840152516001600160a01b031660c4830152815a9360e492602095f1849181611922575b5061191c57507f0cba6018de7a308d62a909cf070bd4adce14183eecb0e81896a7a2166381f281611853611833611cee565b604051918291868352856020840152606060408401526060830190611c13565b0390a182915b8261189c575b7f1167bb4d1b193b67a7db44fae87314c8dd5df00b345b9c62d0436599755e93316020604051338152a4805f51602061282f5f395f51905f525d80f35b6118a583611f40565b836001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b156105ed5781859160246040518094819363b760faf960e01b83523060048401525af1801561072a57611907575b505061185f565b8161191191611c98565b6105e957835f611900565b91611859565b9091506020813d60201161194e575b8161193e60209383611c98565b8101031261089a5751905f611801565b3d9150611931565b634e487b7160e01b86526041600452602486fd5b633dd1b30560e01b8352600483fd5b50806003193601126102305763389a75e1600c523381526202a30042016020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d8280a280f35b503461023057806003193601126102305760206001600160a01b0360025416604051908152f35b5034610230576040366003190112610230576001600160a01b03611a0d611bd3565b611a15611eef565b611a1d611f0b565b168015611a9c5781906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561094c57829160448392604051948593849263040b850f60e31b8452600484015260243560248401525af1801561072a5761071557505f51602061282f5f395f51905f525d80f35b6392bc9df360e01b8252600482fd5b50604036600319011261023057611ac0611bd3565b6001600160a01b0360243591611ad4611eef565b611adc611f0b565b168280808085855af1611aed611cee565b5015611b2a577f8455ae6be5d92f1df1c3c1484388e247a36c7e60d72055ae216dbc258f257d4b8380a3805f51602061282f5f395f51905f525d80f35b6327fcd9d160e01b8352600483fd5b50602036600319011261089a5760043563ffffffff811680910361089a57611b5f611eef565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561089a575f90602460405180948193621cb65b60e51b8352600483015234905af18015611bc857611bbc575080f35b61001891505f90611c98565b6040513d5f823e3d90fd5b600435906001600160a01b038216820361089a57565b35906001600160a01b038216820361089a57565b602435906001600160a01b038216820361089a57565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9181601f8401121561089a5782359167ffffffffffffffff831161089a576020808501948460051b01011161089a57565b6060810190811067ffffffffffffffff821117611c8457604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff821117611c8457604052565b67ffffffffffffffff8111611c845760051b60200190565b67ffffffffffffffff8111611c8457601f01601f191660200190565b3d15611d18573d90611cff82611cd2565b91611d0d6040519384611c98565b82523d5f602084013e565b606090565b9190811015611d2d5760051b0190565b634e487b7160e01b5f52603260045260245ffd5b356001600160a01b038116810361089a5790565b8051821015611d2d5760209160051b010190565b903590601e198136030182121561089a570180359067ffffffffffffffff821161089a5760200191813603831361089a57565b929192611da882611cd2565b91611db66040519384611c98565b82948184528183011161089a578281602093845f960137010152565b939194929094611def611de86040870187611d69565b3691611d9c565b6020815191012095611e07611de86060880188611d69565b6020815191012095611e1c60e0820182611d69565b60341161089a576014013560405197602089019983356001600160a01b03168b52602084013560408b015260608a01526080890152608082013560a089015260c088015260a081013560e088015260c00135610100870152466101208701523061014087015265ffffffffffff1661016086015265ffffffffffff166101808501526001600160a01b03166101a08401526101c083015263ffffffff166101e08201526101e08152611ed061020082611c98565b51902090565b9081602091031261089a575160ff8116810361089a5790565b638b78c6d819543303611efe57565b6382b429005f526004601cfd5b5f51602061282f5f395f51905f525c611f315760015f51602061282f5f395f51905f525d565b633ee5aeb560e01b5f5260045ffd5b8015611fb8575f806040516020810190632e1a7d4d60e01b825284602482015260248152611f6f604482611c98565b5190827f00000000000000000000000000000000000000000000000000000000000000005af1611f9d611cee565b5015611fa65750565b637bd5213f60e11b5f5260045260245ffd5b50565b81810292918115918404141715611fce57565b634e487b7160e01b5f52601160045260245ffd5b8115611fec570490565b634e487b7160e01b5f52601260045260245ffd5b6001600160a01b0316805f52600560205260405f206040519061202282611c68565b600181549163ffffffff6001600160a01b0384169384865260a01c1660208501520154906040830191825215612107576001600160a01b03612068925116905190612612565b600460206120a16001600160a01b038354167f000000000000000000000000000000000000000000000000000000000000000090612612565b936040519283809263313ce56760e01b82525afa8015611bc85760ff915f916120e8575b5016604d8111611fce576120e5926120e091600a0a90611fbb565b611fe2565b90565b612101915060203d6020116103cc576103be8183611c98565b5f6120c5565b633dd1b30560e01b5f5260045ffd5b906001600160a01b0381169182156121b3576001600160a01b031690601452826034526fa9059cbb0000000000000000000000005f5260205f6044601082855af18060015f51141615612195575b505f6034527f4e5ba90310f16273bb12f3c33f23905e573b86df58a2895a525285d083bf043f6020604051338152a4565b3d823b151710156121a6575f612164565b6390b8ec185f526004601cfd5b6392bc9df360e01b5f5260045ffd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036121f457565b60405162461bcd60e51b815260206004820152601560248201527f53656e646572206e6f7420456e747279506f696e7400000000000000000000006044820152606490fd5b919060609060e08401905f61224e8387611d69565b9390918460341015611d2d57603483013560f81c95600287101561259c578560351161089a5760358401916034198701936001891161258d57612291908b611d69565b60341161089a576024013560801c6fffffffffffffffffffffffffffffffff60808c013516016fffffffffffffffffffffffffffffffff8111611fce576fffffffffffffffffffffffffffffffff600a9116026fffffffffffffffffffffffffffffffff8116908103611fce57606490046fffffffffffffffffffffffffffffffff1697806124d6575050508160061161089a573560d01c94600c821061089a57603b83013560d01c976020831061089a57604184013560601c956040841061089a5760558501359360441161089a5761237d90607586013560e01c9560793692607819019101611d9c565b8051604081141590816124ca575b506124bb576123dc90886123af87878b8f6001600160a01b03600254169589611dd2565b6020527b19457468657265756d205369676e6564204d6573736167653a0a33325f52603c600420906126d3565b15612465579165ffffffffffff60a01b9593916001600160a01b036124227fffffffffffff00000000000000000000000000000000000000000000000000009795611d41565b9581604051971660208801521660408601526060850152608084015260a083015260c082015260c0815261245760e082611c98565b9460d01b169160a01b161790565b50505050505065ffffffffffff60a01b7fffffffffffff00000000000000000000000000000000000000000000000000006001939460d01b169160a01b161717906040516124b4602082611c98565b5f81529190565b634be6321b60e01b5f5260045ffd5b6041915014155f61238b565b90989794506001919993959650146124f0575b5050505050565b90919280949597965060141161089a5735851c6001600160a01b0316926013190161257e5761251e90611d41565b93825f5260056020526001600160a01b0363ffffffff60405f205460a01c169381604051971660208801521660408601528401525f608084015260a083015260c082015260c0815261257160e082611c98565b905f905f808080806124e9565b630f58058360e11b5f5260045ffd5b63817c70e760e01b5f5260045ffd5b634e487b7160e01b5f52602160045260245ffd5b6001600160a01b031680638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3638b78c6d81955565b91908201809211611fce57565b519069ffffffffffffffffffff8216820361089a57565b9060a06001600160a01b0392600460405180958193633fabe5a360e21b8352165afa908115611bc8575f925f9261267d575b505f83131561266e57420390428211611fce571061265f5790565b63757ee0c360e11b5f5260045ffd5b631319f4b960e11b5f5260045ffd5b9250905060a0823d60a0116126cb575b8161269a60a09383611c98565b8101031261089a576126ab826125fb565b5060208201516126c26080606085015194016125fb565b5091905f612644565b3d915061268d565b92915f936001600160a01b038116156127d2576040519282518060401461279657604114612756575b8515612709575b50505050565b602093949550630b135d3f60e11b855260048501526024840193849260408452805185019081604484019160045afa5060443d01915afa9051630b135d3f60e11b1416905f808080612703565b945060608201515f1a60205260408201516060525b845f5260208201516040526020600160805f825afa51811860601b3d11945f606052836040526126fc565b5094507f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040830151601b8160ff1c016020521660605261276b565b505f93505050565b905f602091828151910182855af115611bc8575f513d61282557506001600160a01b0381163b155b6128095750565b6001600160a01b0390635274afe760e01b5f521660045260245ffd5b6001141561280256fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a164736f6c634300081b000a","sourceMap":"2174:25049:8:-:0;;;;;;;;;-1:-1:-1;2174:25049:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2174:25049:8;;;;;;:::i;:::-;11885:237:129;;;;;2174:25049:8;11885:237:129;;;;2174:25049:8;;;;;;;;;;-1:-1:-1;2174:25049:8;;-1:-1:-1;;2174:25049:8;;;;;;:::i;:::-;12478:70:129;;:::i;:::-;8479:183;;;;;;8681:8;;;:::i;:::-;2174:25049:8;;8479:183:129;;;;2174:25049:8;8479:183:129;;2174:25049:8;-1:-1:-1;2174:25049:8;;-1:-1:-1;;2174:25049:8;;;;;;:::i;:::-;12478:70:129;;:::i;:::-;10506:526;;;;;;2174:25049:8;10506:526:129;;;;;;;;;;11051:12;10506:526;;11051:12;:::i;10506:526::-;;;;2174:25049:8;10506:526:129;;2174:25049:8;;;;;;;;;;;;;;;;-1:-1:-1;;;;;845:38:9;2174:25049:8;;;;;-1:-1:-1;2174:25049:8;;-1:-1:-1;;2174:25049:8;;;;;;:::i;:::-;12478:70:129;;:::i;:::-;2174:25049:8;;-1:-1:-1;;;11937:17:8;;-1:-1:-1;;;;;2174:25049:8;;;;;;;;;11937:17;;;;;;;11958:1;11937:17;2174:25049;11937:17;;;;;2174:25049;;;11937:22;11933:140;;-1:-1:-1;;;;;2174:25049:8;;;12151:92;2174:25049;12151:92;12258:59;;;;2174:25049;;11933:140;-1:-1:-1;;;12039:23:8;;2174:25049;24852:23;12039;11937:17;;;;2174:25049;11937:17;2174:25049;11937:17;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2174:25049;;;;;;;;;;-1:-1:-1;2174:25049:8;;-1:-1:-1;;2174:25049:8;;;;;;:::i;:::-;;;-1:-1:-1;;2174:25049:8;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;12478:70:129;;:::i;:::-;2174:25049:8;;-1:-1:-1;;;;;2174:25049:8;;;;;;;;;;;;24797:27;;;;;;;;;24828:1;24797:27;2174:25049;24797:27;;;;;2174:25049;;;24797:32;24793:93;;2174:25049;;;;3075:3;24899:41;;:87;;;;;2174:25049;24895:145;;;2174:25049;;25053:15;:47;25049:113;;-1:-1:-1;;;;;2174:25049:8;;;;;;;12788:25;2174:25049;;;;-1:-1:-1;;;;;2174:25049:8;;;;;;;;-1:-1:-1;;2174:25049:8;;;;;;;;;2962:3;-1:-1:-1;;;;;;;2962:3:8;;;;;;;;;;;;2174:25049;;;;;;;-1:-1:-1;;;12909:39:8;;2174:25049;;;;12909:39;;;;;;;;12855:94;12909:39;2174:25049;12909:39;;;;;2174:25049;;;;;;;;;12855:94;2174:25049;;12909:39;;;;;;;;;;;;;;:::i;:::-;;;;25049:113;-1:-1:-1;;;25123:28:8;;2174:25049;11346:28;25123;24895:145;-1:-1:-1;;;25009:20:8;;2174:25049;10629:20;25009;24899:87;2962:3;24944:42;;;24899:87;;;24793:93;-1:-1:-1;;;24852:23:8;;2174:25049;24852:23;;24797:27;;;;2174:25049;24797:27;2174:25049;24797:27;;;;;;;:::i;:::-;;;;;2174:25049;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2174:25049:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2174:25049:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1181:103:48;;:::i;:::-;15500:10:8;-1:-1:-1;;;;;15500:10:8;2174:25049;15500:55;;;;;2174:25049;15500:55;2174:25049;;;;;;;;;;15500:55;;15549:4;2174:25049;15500:55;;2174:25049;15529:9;15500:55;;;;;;;;;2174:25049;3550:68:50;-1:-1:-1;;;;;;;;;;;3550:68:50;2174:25049:8;;15500:55;;;;;:::i;:::-;2174:25049;;15500:55;;;;;2174:25049;;;;;;;;;15500:55;2174:25049;;;-1:-1:-1;2174:25049:8;;-1:-1:-1;;2174:25049:8;;;;;;:::i;:::-;;;;;;;;;;;;12478:70:129;;:::i;:::-;3075:3:8;10465:45;;:95;;;;2174:25049;10461:199;;-1:-1:-1;;;;;2174:25049:8;;;;10704:25;2174:25049;;;;;;;;;;;;;;;;;2962:3;;-1:-1:-1;;;;2962:3:8;2174:25049;2962:3;;;-1:-1:-1;;;2962:3:8;;;;2174:25049;;;;10859:77;;;;2174:25049;;10461:199;-1:-1:-1;;;10629:20:8;;2174:25049;10629:20;;10465:95;10514:46;2962:3;10514:46;;10465:95;;2174:25049;;;;;;;;;;;;;;;-1:-1:-1;;;3569:35:0;;3598:4;2174:25049:8;3569:35:0;;2174:25049:8;;;;3569:35:0;2174:25049:8;3569:10:0;-1:-1:-1;;;;;2174:25049:8;3569:35:0;;;;;;;;;;2174:25049:8;;;;;;;;;3569:35:0;;2174:25049:8;3569:35:0;;2174:25049:8;3569:35:0;;;;;;2174:25049:8;3569:35:0;;;:::i;:::-;;;2174:25049:8;;;;;;;3569:35:0;;2174:25049:8;-1:-1:-1;2174:25049:8;;3569:35:0;;;-1:-1:-1;3569:35:0;;;2174:25049:8;;;;;;;;;;;;;;;;;-1:-1:-1;;2174:25049:8;;;;;;;:::i;:::-;12478:70:129;;:::i;:::-;-1:-1:-1;;;;;2107:10:0;2174:25049:8;2107:41:0;;;;;;-1:-1:-1;;;;;2107:41:0;2174:25049:8;;;;;;;;;;;;;2107:41:0;;2174:25049:8;;2107:41:0;;2174:25049:8;2107:41:0;;;;;;;;2174:25049:8;;2107:41:0;;;;;:::i;:::-;2174:25049:8;;2107:41:0;2174:25049:8;2107:41:0;2174:25049:8;;;;-1:-1:-1;2174:25049:8;;-1:-1:-1;;2174:25049:8;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12478:70:129;;;;;:::i;:::-;2174:25049:8;;;;13882:44;13878:112;;14005:13;14047:3;2174:25049;;14020:25;;;;;14080:17;-1:-1:-1;;;;;14080:17:8;2174:25049;14080:17;;;:::i;:::-;2174:25049;;;14099:15;;;;:::i;:::-;2174:25049;;;-1:-1:-1;;;;;2174:25049:8;;;;;;4567:47:42;;;;2174:25049:8;;;4567:47:42;;;2174:25049:8;4567:47:42;;2174:25049:8;2132:17:9;;4567:47:42;2174:25049:8;;;4567:47:42;;;;;;;:::i;:::-;9138:199;;;;;;;;;;9353:80;;;14047:3:8;4629:45:42;;;4625:201;;14047:3:8;2174:25049;;;;;;;;;;;;;;;;;;;;14005:13;;4625:201:42;4717:43;4802:12;2174:25049:8;;;;;;;;4717:43:42;;;2174:25049:8;4717:43:42;;2174:25049:8;;4567:47:42;2174:25049:8;;;4567:47:42;4717:43;;;4567:47;4717:43;;:::i;:::-;;;:::i;:::-;4802:12;;:::i;:::-;4625:201;;;;9353:80;9365:67;;-1:-1:-1;9365:15:42;;9383:26;;;:30;;9365:67;9353:80;;;;9365:67;9416:16;;9365:67;;14020:25:8;;;;2174:25049;;;;;;;;;;;;;;;;;;;;;;;14140:36;;;;2174:25049;;;;;-1:-1:-1;;;;;2174:25049:8;;;;;-1:-1:-1;2174:25049:8;;;;;;;;;;;;;13878:112;-1:-1:-1;;;13949:30:8;;2174:25049;13949:30;;2174:25049;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2174:25049:8;;;;;;-1:-1:-1;;;;;2174:25049:8;;;;;;;12478:70:129;;:::i;:::-;-1:-1:-1;;3536:32:9;2174:25049:8;;;3536:32:9;2174:25049:8;;;;;;;;;;;;;;;;12478:70:129;;:::i;:::-;1770:10:0;-1:-1:-1;;;;;1770:10:0;2174:25049:8;1770:24:0;;;;;2174:25049:8;;;;;;;;;;;;;1770:24:0;;;;;;;;;;2174:25049:8;;;;;;;;;-1:-1:-1;;2174:25049:8;;;;;;;;-1:-1:-1;;;;;2174:25049:8;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;657:39:0;2174:25049:8;;;;;;;;;;;;;;;;;;2600:29;2174:25049;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2174:25049:8;;;;;;;;;;;;;;;;;;;;;;;6813:405:129;;11523:61;-1:-1:-1;;;;;2174:25049:8;;;;;;;;;;;;;;-1:-1:-1;;2174:25049:8;;;;19120:59;2174:25049;;;-1:-1:-1;;;;;2174:25049:8;;:::i;:::-;;;;19120:25;2174:25049;;;19120:59;2174:25049;;;;;;;;;;;;;;-1:-1:-1;;2174:25049:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2192:298:0;;;:::i;:::-;2174:25049:8;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2174:25049:8;;;;;23033:290;;23515:15;23512:250;;2174:25049;;24151:109;2174:25049;24166:71;24182:55;24151:122;2174:25049;24184:27;2174:25049;;;;;;;;24184:27;:::i;:::-;24182:55;:::i;:::-;24166:71;;:::i;24151:122::-;24285:22;:43;2174:25049;;;;;;;;;;;;;;;24151:178;;;;:::i;:::-;24344:91;2174:25049;10384:740:133;;;2174:25049:8;10384:740:133;24416:4:8;2174:25049;10384:740:133;;;;2174:25049:8;10384:740:133;;;;;;;2174:25049:8;10384:740:133;2174:25049:8;10384:740:133;;;;;;2174:25049:8;10384:740:133;;;;;;;2174:25049:8;10384:740:133;2174:25049:8;10384:740:133;;2174:25049:8;10384:740:133;24340:353:8;24344:91;;;2174:25049;;;;;24456:115;2174:25049;;;;;;;;;;;;;;;;;;;;;;;24456:115;2174:25049;;24340:353;24609:73;2174:25049;24609:73;;;;;;;;2174:25049;24609:73;;2174:25049;;;;;;;;;;;;;24609:73;10384:740:133;;;;;;;;;2174:25049:8;-1:-1:-1;;;2174:25049:8;;;;;;;;23512:250;23559:23;;;;;:::i;:::-;23676:15;;23512:250;23673:79;-1:-1:-1;;;23718:19:8;;2174:25049;;23718:19;2174:25049;-1:-1:-1;2174:25049:8;;-1:-1:-1;;2174:25049:8;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;12478:70:129;;;:::i;:::-;1181:103:48;;:::i;:::-;8365:9:8;8376:16;;;;;;3550:68:50;;-1:-1:-1;;;;;;;;;;;3550:68:50;2174:25049:8;;8365:9;8430:8;2174:25049;-1:-1:-1;;;;;8430:8:8;;2174:25049;8430:8;;;;:::i;:::-;;:::i;:::-;2174:25049;;;;;;;;;;8430:33;;8457:4;2174:25049;8430:33;;2174:25049;8430:33;;;;;;;;;;;8365:9;8496:8;8514:6;2174:25049;8496:8;;;;;;;;:::i;:::-;8514:6;:::i;:::-;2174:25049;8365:9;;8430:33;;;2174:25049;8430:33;;;;;;;;;2174:25049;8430:33;;;:::i;:::-;;;2174:25049;;;;;;;8514:6;8430:33;;;;;-1:-1:-1;8430:33:8;;2174:25049;;;;;;;-1:-1:-1;;2174:25049:8;;;;-1:-1:-1;;;;;2174:25049:8;;;;;;:::i;:::-;;;;18334:25;2174:25049;;;;;18334:69;;2174:25049;;;;;;;-1:-1:-1;2174:25049:8;;-1:-1:-1;;2174:25049:8;;;;;;12478:70:129;;:::i;:::-;2870:7:8;9791:42;;9787:103;;9927:14;2174:25049;9951:95;9927:14;9951:95;10060:59;;;;2174:25049;;9787:103;-1:-1:-1;;;9856:23:8;;2174:25049;9856:23;;2174:25049;;;;;;;;;;;;;;-1:-1:-1;;;;;1055:34:9;2174:25049:8;;;;;;;;;;;;;;;;;;12478:70:129;;:::i;:::-;6813:405;;;;;;;;;;;;2174:25049:8;;;-1:-1:-1;2174:25049:8;;-1:-1:-1;;2174:25049:8;;;;;;:::i;:::-;12478:70:129;;:::i;:::-;6221:74:0;;9049:77:8;;-1:-1:-1;;;;;2174:25049:8;;9140:32;;9136:99;;-1:-1:-1;;;;;9264:15:8;2174:25049;;9289:97;9264:15;9289:97;9454:10;9400:65;;;;;2174:25049;;9136:99;-1:-1:-1;;;9195:29:8;;2174:25049;9195:29;;9049:77;-1:-1:-1;;;9093:33:8;;2174:25049;9093:33;;2174:25049;-1:-1:-1;2174:25049:8;;-1:-1:-1;;2174:25049:8;;;;-1:-1:-1;;;;;2174:25049:8;;:::i;:::-;12478:70:129;;:::i;:::-;2174:25049:8;;;;13282:25;2174:25049;;;;;;;;;;;;13336:39;;;;2174:25049;;;;;;;;;-1:-1:-1;;2174:25049:8;;;;;;;;-1:-1:-1;;;;;2174:25049:8;;:::i;:::-;;;;18714:25;2174:25049;;;;;;;;;;;;;;-1:-1:-1;2174:25049:8;;-1:-1:-1;;2174:25049:8;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;12478:70:129;;;;:::i;:::-;1181:103:48;;:::i;:::-;7659:29:8;;;7655:99;;7792:9;7803:16;;;;;;3550:68:50;;-1:-1:-1;;;;;;;;;;;3550:68:50;2174:25049:8;;7792:9;7855:8;7873:9;7855:8;;2174:25049;7855:8;;;;:::i;:::-;7873:9;;;;;;:::i;:::-;2174:25049;7873:9;;:::i;:::-;2174:25049;7792:9;;7655:99;-1:-1:-1;;;7711:32:8;;2174:25049;7711:32;;2174:25049;-1:-1:-1;2174:25049:8;;-1:-1:-1;;2174:25049:8;;;;;;:::i;:::-;;;:::i;:::-;12478:70:129;;;:::i;:::-;1181:103:48;;:::i;:::-;2174:25049:8;;-1:-1:-1;;;7098:30:8;;7122:4;2174:25049;7098:30;;2174:25049;;;;;;-1:-1:-1;;;;;2174:25049:8;;7098:30;;;;;;;;;;;2174:25049;7168:6;;;;:::i;:::-;3550:68:50;-1:-1:-1;;;;;;;;;;;3550:68:50;2174:25049:8;;7098:30;;;2174:25049;7098:30;;2174:25049;7098:30;;;;;;2174:25049;7098:30;;;:::i;:::-;;;2174:25049;;;;7168:6;2174:25049;;7098:30;;;;;;-1:-1:-1;7098:30:8;;2174:25049;;;;;;;;;;9831:339:129;;;;;;;;;;;;;;;;2174:25049:8;;;;;;;;;-1:-1:-1;;2174:25049:8;;;;;;;;;;;;;;;;;;;;;;;19501:2958;2737:22:0;;;:::i;:::-;2174:25049:8;;;;;19501:2958;:::i;:::-;2174:25049;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;2174:25049:8;;;;;;;-1:-1:-1;;;;;2174:25049:8;;:::i;:::-;;;;2705:62;2174:25049;;;2705:62;2174:25049;;2705:62;;2174:25049;;;;;-1:-1:-1;;;;;2174:25049:8;;;;;;;;;;;;;;;;;-1:-1:-1;2174:25049:8;;-1:-1:-1;;2174:25049:8;;;;6288:6;2174:25049;;:::i;:::-;;;:::i;:::-;12478:70:129;;:::i;:::-;1181:103:48;;:::i;:::-;2174:25049:8;;6288:6;;:::i;2174:25049::-;-1:-1:-1;2174:25049:8;;-1:-1:-1;;2174:25049:8;;;;;;:::i;:::-;;;12478:70:129;;;:::i;:::-;11297:15:8;;:40;11294:80;;-1:-1:-1;;;;;2174:25049:8;;;;11417:25;2174:25049;;;;;;11417:59;2174:25049;;;;11417:25;2174:25049;;;;;;;11486:59;2174:25049;11585:74;;;;2174:25049;;11294:80;-1:-1:-1;;;11346:28:8;;2174:25049;11346:28;;2174:25049;;;;;;;-1:-1:-1;;2174:25049:8;;;;;18019:23;2174:25049;;:::i;:::-;18019:23;:::i;2174:25049::-;-1:-1:-1;2174:25049:8;;-1:-1:-1;;2174:25049:8;;;;;;:::i;:::-;-1:-1:-1;;;;;2174:25049:8;;1181:103:48;;;:::i;:::-;2174:25049:8;;;;;;;;;;;;;;2425:26:9;2174:25049:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2536:393:9;;2627:13;;-1:-1:-1;;;;;2174:25049:8;;;;2536:393:9;;2174:25049:8;;;;2536:393:9;;2713:4;2174:25049:8;;2536:393:9;;;2174:25049:8;;;2536:393:9;;;2174:25049:8;;;;;2536:393:9;;;2174:25049:8;;;;;;-1:-1:-1;;;;;2174:25049:8;;;;;;;;;;2944:38:9;;2174:25049:8;-1:-1:-1;;;;;2174:25049:8;;2944:38:9;;2174:25049:8;;-1:-1:-1;;;;;2174:25049:8;;;;;;;;;;;;;-1:-1:-1;;;;;2174:25049:8;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2174:25049:8;;;;;2944:38:9;;;;;2174:25049:8;2944:38:9;;;;;;;2174:25049:8;-1:-1:-1;2940:248:9;;3060:128;3107:43;2174:25049:8;3060:128:9;;:::i;:::-;2174:25049:8;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3107:43:9;;;3164:13;2940:248;;14912:13:8;14909:203;;2940:248:9;15126:84:8;2174:25049;;;15199:10;2174:25049;;15126:84;3550:68:50;-1:-1:-1;;;;;;;;;;;3550:68:50;2174:25049:8;;14909:203;14987:9;;;:::i;:::-;15046:10;-1:-1:-1;;;;;15046:10:8;2174:25049;15046:55;;;;;2174:25049;;;;;;;;;;;;;15046:55;;2713:4:9;2174:25049:8;15046:55;;2174:25049;15046:55;;;;;;;;14909:203;;;;;15046:55;;;;;:::i;:::-;2174:25049;;15046:55;;;;2940:248:9;;;;2944:38;;;;2174:25049:8;2944:38:9;;2174:25049:8;2944:38:9;;;;;;2174:25049:8;2944:38:9;;;:::i;:::-;;;2174:25049:8;;;;;2944:38:9;;;;;;;-1:-1:-1;2944:38:9;;2174:25049:8;-1:-1:-1;;;2174:25049:8;;;;;;;;;-1:-1:-1;;;2174:25049:8;;;;;;;;;;;;;;;9239:383:129;;;;;;7972:9;9132:15;2174:25049:8;9239:383:129;;;;;;;;;2174:25049:8;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2506:30:8;2174:25049;;;;;;;;;;;;;;;-1:-1:-1;;2174:25049:8;;;;-1:-1:-1;;;;;2174:25049:8;;:::i;:::-;12478:70:129;;:::i;:::-;1181:103:48;;:::i;:::-;2174:25049:8;15992:29;;15988:71;;16069:10;;-1:-1:-1;;;;;16069:10:8;2174:25049;16069:46;;;;;;2174:25049;;16069:46;2174:25049;;;;;;;;;;;;16069:46;;2174:25049;16069:46;;2174:25049;;;;;;;16069:46;;;;;;;;3550:68:50;-1:-1:-1;;;;;;;;;;;3550:68:50;2174:25049:8;;15988:71;-1:-1:-1;;;16030:29:8;;2174:25049;16030:29;;2174:25049;-1:-1:-1;2174:25049:8;;-1:-1:-1;;2174:25049:8;;;;;;:::i;:::-;-1:-1:-1;;;;;2174:25049:8;;12478:70:129;;;:::i;:::-;1181:103:48;;:::i;:::-;2174:25049:8;6606:35;;;;;;;;;;:::i;:::-;;6655:8;6651:64;;6729:31;;;;3550:68:50;-1:-1:-1;;;;;;;;;;;3550:68:50;2174:25049:8;;6651:64;-1:-1:-1;;;6686:18:8;;2174:25049;6686:18;;2174:25049;-1:-1:-1;2174:25049:8;;-1:-1:-1;;2174:25049:8;;;;;;;;;;;;;;12478:70:129;;:::i;:::-;-1:-1:-1;;;;;1496:10:0;2174:25049:8;1496:56:0;;;;;;2174:25049:8;;1496:56:0;2174:25049:8;;;;;;;;;1496:56:0;;2174:25049:8;1496:56:0;;2174:25049:8;1524:9:0;1496:56;;;;;;;;;2174:25049:8;;;1496:56:0;;;;2174:25049:8;1496:56:0;;:::i;:::-;2174:25049:8;;;;;;;;;;;;;-1:-1:-1;;;;;2174:25049:8;;;;;;:::o;:::-;;;-1:-1:-1;;;;;2174:25049:8;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;2174:25049:8;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;2174:25049:8;;;;;;;;-1:-1:-1;;2174:25049:8;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;2174:25049:8;;;;;-1:-1:-1;2174:25049:8;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;2174:25049:8;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;2174:25049:8;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;2174:25049:8;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;2174:25049:8;;;;;;:::o;16671:1072::-;;;;;;;2174:25049;17208:15;;;;;;:::i;:::-;2174:25049;;;:::i;:::-;17168:12;2174:25049;;;;17198:26;17252:15;2174:25049;17252:15;;;;;;:::i;2174:25049::-;17168:12;2174:25049;;;;17242:26;17343:23;;;;;;;:::i;:::-;490:2:67;976:38:0;;;372:2:67;976:38:0;;17208:15:8;2174:25049;17116:610;17168:12;17116:610;;823:61:67;;;-1:-1:-1;;;;;2174:25049:8;;;17168:12;;;2174:25049;17208:15;976:38:0;;2174:25049:8;17252:15;976:38:0;;2174:25049:8;17286:23;976:38:0;;2174:25049:8;17286:23;;;2174:25049;17443:25;976:38:0;;2174:25049:8;17486:14;976:38:0;;2174:25049:8;17443:25;;;2174:25049;17343:23;976:38:0;;2174:25049:8;17486:14;;2174:25049;976:38:0;;;2174:25049:8;17518:13;976:38:0;;;2174:25049:8;17557:4;976:38:0;;;2174:25049:8;;;976:38:0;;;;2174:25049:8;;976:38:0;;;;-1:-1:-1;;;;;2174:25049:8;976:38:0;;;2174:25049:8;976:38:0;;;2174:25049:8;;;976:38:0;;;2174:25049:8;976:38:0;17116:610:8;;;;;;:::i;:::-;2174:25049;17093:643;;16671:1072;:::o;2174:25049::-;;;;;;;;;;;;;;;;;;:::o;7292:355:129:-;-1:-1:-1;;7390:251:129;;;;;7292:355::o;7390:251::-;;;;;;;1290:346:48;-1:-1:-1;;;;;;;;;;;3321:69:50;1413:93:48;;1624:4;-1:-1:-1;;;;;;;;;;;3550:68:50;1290:346:48:o;1413:93::-;1465:30;;;-1:-1:-1;1465:30:48;;-1:-1:-1;1465:30:48;3200:252:9;3259:11;;3256:23;;3269:1;2174:25049:8;;;3335:52:9;;;;;;;;;;;;;2174:25049:8;3335:52:9;;;;;;;:::i;:::-;3307:81;3315:13;;;3307:81;;;;:::i;:::-;;3402:8;3398:47;;3200:252;:::o;3398:47::-;3419:26;;;3269:1;3419:26;3335:52;2174:25049:8;3335:52:9;3269:1;3419:26;3256:23;3272:7;:::o;2174:25049:8:-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;25293:770;-1:-1:-1;;;;;2174:25049:8;;-1:-1:-1;2174:25049:8;25461:25;2174:25049;;;-1:-1:-1;2174:25049:8;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;2174:25049:8;;;;;;;;;;;;;;;;;;;;;;25515:39;25511:152;;-1:-1:-1;;;;;25754:60:8;2174:25049;;;;;25754:60;;:::i;:::-;25863:22;2174:25049;25851:72;-1:-1:-1;;;;;2174:25049:8;;;25887:35;25851:72;;:::i;:::-;2174:25049;;;;;;;;;;26003:39;;;;;;;;2174:25049;26003:39;-1:-1:-1;26003:39:8;;;25293:770;2174:25049;;;;;;;25979:77;2174:25049;25980:62;2174:25049;;;25980:62;;:::i;:::-;25979:77;:::i;:::-;25293:770;:::o;26003:39::-;;;;2174:25049;26003:39;2174:25049;26003:39;;;;;;;:::i;:::-;;;;25511:152;2174:25049;;;-1:-1:-1;25633:19:8;;-1:-1:-1;25633:19:8;26920:301;;-1:-1:-1;;;;;2174:25049:8;;27012:20;;;27008:62;;-1:-1:-1;;;;;2174:25049:8;13252:754:133;;;;;;;27030:1:8;13252:754:133;;27030:1:8;13252:754:133;;;;;;;;27030:1:8;13252:754:133;;;;;;26920:301:8;13252:754:133;27030:1:8;13252:754:133;;27155:59:8;13252:754:133;2174:25049:8;;27203:10;2174:25049;;27155:59;26920:301::o;13252:754:133:-;;;;;;;;;;;;;;;27030:1:8;13252:754:133;;;;27008:62:8;16030:29;;;27030:1;27041:29;;27030:1;27041:29;5930:135:0;-1:-1:-1;;;;;6021:10:0;2174:25049:8;5999:10:0;:33;2174:25049:8;;5930:135:0:o;2174:25049:8:-;;;-1:-1:-1;;;2174:25049:8;;;;;;;;;;;;;;;;;;;;19501:2958;;;2174:25049;;19806:23;;;;2174:25049;19806:23;;19501:2958;19806:23;:::i;:::-;374:38:6;;;;490:2:67;374:38:6;;;;490:2:67;374:38:6;;717:39;374:38;;2174:25049:8;;;;;;;976:38:0;2174:25049:8;976:38:0;;;2174:25049:8;976:38:0;;;;;;;2174:25049:8;833:1:6;19868:15:8;;19864:75;;20066:23;;;;:::i;:::-;490:2:67;976:38:0;;;434:2:67;976:38:0;875:44;20002:23:8;875:44:0;2174:25049:8;20002:23;;;2174:25049;;875:44:0;2174:25049:8;875:44:0;;;;2174:25049:8;20165:2;2174:25049;;875:44:0;2174:25049:8;;;875:44:0;;;;;20172:3:8;875:44:0;;2174:25049:8;;;20190:30;;;976:38:0;;;;1267:1:6;976:38:0;;;2174:25049:8;;;;1327:2:6;976:38:0;-1:-1:-1;976:38:0;;;;;2174:25049:8;;;;1393:2:6;976:38:0;-1:-1:-1;976:38:0;;;;;2174:25049:8;;;;1457:2:6;976:38:0;-1:-1:-1;976:38:0;;;;;;;1527:2:6;976:38:0;;;2174:25049:8;976:38:0;;;;2174:25049:8;19806:23;2174:25049;976:38:0;;2174:25049:8;976:38:0;;;;;;2174:25049:8;:::i;:::-;;;1457:2:6;20724:22:8;;;:48;;;;20186:2267;20720:118;;;20868:255;2174:25049;;20978:86;2174:25049;;;;-1:-1:-1;;;;;2174:25049:8;;;20978:86;;;:::i;:::-;1393:2:6;13414:265:130;;-1:-1:-1;13414:265:130;;976:38:0;13414:265:130;20868:255:8;;:::i;:::-;21220:9;21216:110;;21378:13;-1:-1:-1;;;21378:13:8;;;-1:-1:-1;;;;;21378:13:8;2174:25049;21378:13;;;:::i;:::-;2174:25049;;1457:2:6;2174:25049:8;21350:208;2174:25049;1393:2:6;21350:208:8;;2174:25049;;1457:2:6;875:44:0;;2174:25049:8;;875:44:0;;2174:25049:8;20002:23;875:44:0;;2174:25049:8;875:44:0;;;2174:25049:8;875:44:0;;;2174:25049:8;875:44:0;21350:208:8;;;19806:23;21350:208;;:::i;:::-;21589:50;2174:25049;;;;875:44:0;2174:25049:8;;2589:104:63;20186:2267:8;19501:2958::o;21216:110::-;21261:49;;;;;;-1:-1:-1;;;2174:25049:8;833:1:6;21261:49:8;;2174:25049;;;;2643:3:63;2174:25049:8;;2589:104:63;;2174:25049:8;1457:2:6;2174:25049:8;;1393:2:6;2174:25049:8;;:::i;:::-;-1:-1:-1;2174:25049:8;;21249:62;;:::o;20720:118::-;20799:24;;;-1:-1:-1;20799:24:8;976:38:0;-1:-1:-1;20799:24:8;20724:48;20770:2;20750:22;;;;20724:48;;;20186:2267;2174:25049;;;;;833:1:6;2174:25049:8;;;;;;21698:33;21694:759;;20186:2267;;;;;;19501:2958::o;21694:759::-;976:38:0;;;;;;;;;1809:2:6;976:38:0;;;2174:25049:8;;;-1:-1:-1;;;;;2174:25049:8;;-1:-1:-1;;21929:29:8;21925:96;;22073:13;;;:::i;:::-;2174:25049;;-1:-1:-1;2174:25049:8;22260:25;2174:25049;;-1:-1:-1;;;;;2174:25049:8;;-1:-1:-1;2174:25049:8;;;;;;;;;22045:312;2174:25049;;22045:312;;2174:25049;;;875:44:0;;2174:25049:8;875:44:0;;2174:25049:8;-1:-1:-1;20002:23:8;875:44:0;;2174:25049:8;;875:44:0;;2174:25049:8;875:44:0;;;2174:25049:8;875:44:0;22045:312:8;;;19806:23;22045:312;;:::i;:::-;22371:18;-1:-1:-1;21694:759:8;;;;;;;;21925:96;21985:21;;;-1:-1:-1;21985:21:8;;-1:-1:-1;21985:21:8;19864:75;19906:22;;;-1:-1:-1;19906:22:8;;-1:-1:-1;19906:22:8;2174:25049;;;;;;;;;;;;6145:1089:129;-1:-1:-1;;;;;6813:405:129;;;;;;-1:-1:-1;6813:405:129;;-1:-1:-1;;6813:405:129;6145:1089::o;2174:25049:8:-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;26497:417::-;;26652:24;-1:-1:-1;;;;;26497:417:8;26652:24;2174:25049;;;;;;;;;26652:24;;2174:25049;26652:24;;;;;;;-1:-1:-1;;;26652:24:8;;;26497:417;26690:11;-1:-1:-1;26690:11:8;;;26686:73;;26784:15;2174:25049;26784:15;;2174:25049;;;;26772:49;26768:107;;26497:417;:::o;26768:107::-;26844:20;;;-1:-1:-1;26844:20:8;26652:24;-1:-1:-1;26844:20:8;26686:73;26724:24;;;-1:-1:-1;26724:24:8;26652;-1:-1:-1;26724:24:8;26652;;;;;;;;;;;;;;;;;;;:::i;:::-;;;2174:25049;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;26652:24;;;;;;;;-1:-1:-1;26652:24:8;;1974:1926:134;;;2174:25049:8;;-1:-1:-1;;;;;2174:25049:8;;2136:20:134;2132:40;;2225:1669;;;;;;;;;;;;;;;;;;;;1974:1926;;;;:::o;2225:1669::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2225:1669:134;;;;;;;;;;;;;;;;2174:25049:8;2225:1669:134;;;;;;;;;;;2174:25049:8;2225:1669:134;;;;;;;;;;2174:25049:8;2225:1669:134;;;;;;;;;;;2174:25049:8;2225:1669:134;;;;;;;;;;;;;;;;;;;;;;;;;;;;2132:40;-1:-1:-1;2174:25049:8;;-1:-1:-1;;;2158:14:134:o;7738:720:42:-;;-1:-1:-1;7875:421:42;7738:720;7875:421;;;;;;;;;;;;-1:-1:-1;7875:421:42;;8310:15;;2174:25049:8;-1:-1:-1;;;;;2174:25049:8;;8328:26:42;:31;8310:68;8306:146;;7738:720;:::o;8306:146::-;-1:-1:-1;;;;;8401:40:42;;;;-1:-1:-1;8401:40:42;2174:25049:8;8401:40:42;2174:25049:8;;-1:-1:-1;8401:40:42;8310:68;8377:1;8362:16;;8310:68;","linkReferences":{},"immutableReferences":{"17":[{"start":1713,"length":32},{"start":2093,"length":32},{"start":2271,"length":32},{"start":3164,"length":32},{"start":3332,"length":32},{"start":6320,"length":32},{"start":6704,"length":32},{"start":7017,"length":32},{"start":8652,"length":32}],"2303":[{"start":3774,"length":32}],"2305":[{"start":8316,"length":32}],"3683":[{"start":736,"length":32},{"start":5934,"length":32},{"start":8052,"length":32}]}},"methodIdentifiers":{"addStake(uint32)":"0396cb60","addToTokenDirectory(address,(address,uint32,uint256))":"e0d873f2","cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","deposit()":"d0e30db0","entryPoint()":"b0d691fe","getDeposit()":"c399ec88","getHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint48,uint48,address,uint256,uint32)":"dab0f762","getPrice(address)":"41976e09","independentPriceExpiryDuration(address)":"889e1468","independentPriceMarkup(address)":"61dcc50f","independentTokenDirectory(address)":"50f6ab10","isTokenSupported(address)":"75151b63","nativeAssetToUsdOracle()":"a6e12780","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","postOp(uint8,bytes,uint256,uint256)":"7c627b21","removeFromTokenDirectory(address)":"6adf4742","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","setNativeAssetToUsdOracle(address)":"e5a29e18","setPriceExpiryDurationForToken(address,uint256)":"4230aa9e","setPriceMarkupForToken(address,uint32)":"c87558cb","setSigner(address)":"6c19e783","setUnaccountedGas(uint256)":"73acf542","setUniswapRouter(address)":"bea9849e","swapTokenAndDeposit(address,uint256,uint256)":"40663794","tokenToPools(address)":"bacb4b7c","transferOwnership(address)":"f2fde38b","unaccountedGas()":"ab94cad7","uniswapRouter()":"735de9f7","unlockStake()":"bb9fe6bf","updateSwappableTokens(address[],uint24[])":"c23461a9","validatePaymasterUserOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),bytes32,uint256)":"52b7512c","verifyingSigner()":"23d9ac9b","withdrawERC20(address,address,uint256)":"44004cc1","withdrawERC20Full(address,address)":"5deef2aa","withdrawEth(address,uint256)":"1b9a91a4","withdrawMultipleERC20(address[],address,uint256[])":"617d057a","withdrawMultipleERC20Full(address[],address)":"78b1da23","withdrawStake(address)":"c23a5cea","withdrawTo(address,uint256)":"205c2878","wrappedNative()":"eb6d3a11"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifyingSignerArg\",\"type\":\"address\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"unaccountedGasArg\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nativeAssetDecimalsArg\",\"type\":\"uint256\"},{\"internalType\":\"contract IOracle\",\"name\":\"nativeAssetToUsdOracleArg\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nativeAssetPriceExpiryDurationArg\",\"type\":\"uint256\"},{\"internalType\":\"contract IV3SwapRouter\",\"name\":\"uniswapRouterArg\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"wrappedNativeArg\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"independentTokensArg\",\"type\":\"address[]\"},{\"components\":[{\"internalType\":\"contract IOracle\",\"name\":\"oracle\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"priceMarkup\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"priceExpiryDuration\",\"type\":\"uint256\"}],\"internalType\":\"struct IBiconomyTokenPaymaster.TokenInfo[]\",\"name\":\"tokenInfosArg\",\"type\":\"tuple[]\"},{\"internalType\":\"address[]\",\"name\":\"swappableTokens\",\"type\":\"address[]\"},{\"internalType\":\"uint24[]\",\"name\":\"swappableTokenPoolFeeTiers\",\"type\":\"uint24[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CanNotWithdrawToZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"}],\"name\":\"FailedToChargeTokens\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FeeCollectorCanNotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOracleDecimals\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPaymasterMode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPriceExpiryDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPriceMarkup\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTokenAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OraclePriceExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OraclePriceNotPositive\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokenNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokensAndAmountsLengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokensAndInfoLengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokensAndPoolsLengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnaccountedGasTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"}],\"name\":\"UniswapReverted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"UnwrappingReverted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VerifyingSignerCanNotBeContract\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VerifyingSignerCanNotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WithdrawalFailed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IOracle\",\"name\":\"oracle\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"}],\"name\":\"AddedToTokenDirectory\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"EthWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"userOpSender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasCostBeforePostOpAndPenalty\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenCharge\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"priceMarkup\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"}],\"name\":\"PaidGasInTokens\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Received\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"name\":\"RemovedFromTokenDirectory\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address[]\",\"name\":\"tokenAddresses\",\"type\":\"address[]\"}],\"name\":\"SwappableTokensAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"SwappingReverted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenAmount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"actor\",\"type\":\"address\"}],\"name\":\"TokensSwappedAndRefilledEntryPoint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"actor\",\"type\":\"address\"}],\"name\":\"TokensWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldFeeCollector\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newFeeCollector\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"actor\",\"type\":\"address\"}],\"name\":\"UpdatedFeeCollector\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"oldValue\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"newValue\",\"type\":\"uint32\"}],\"name\":\"UpdatedFixedPriceMarkup\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IOracle\",\"name\":\"oldOracle\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IOracle\",\"name\":\"newOracle\",\"type\":\"address\"}],\"name\":\"UpdatedNativeAssetOracle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldValue\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newValue\",\"type\":\"uint256\"}],\"name\":\"UpdatedPriceExpiryDuration\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldValue\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newValue\",\"type\":\"uint256\"}],\"name\":\"UpdatedUnaccountedGas\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldSigner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newSigner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"actor\",\"type\":\"address\"}],\"name\":\"UpdatedVerifyingSigner\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"unstakeDelaySec\",\"type\":\"uint32\"}],\"name\":\"addStake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"contract IOracle\",\"name\":\"oracle\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"priceMarkup\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"priceExpiryDuration\",\"type\":\"uint256\"}],\"internalType\":\"struct IBiconomyTokenPaymaster.TokenInfo\",\"name\":\"tokenInfo\",\"type\":\"tuple\"}],\"name\":\"addToTokenDirectory\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"entryPoint\",\"outputs\":[{\"internalType\":\"contract IEntryPoint\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"},{\"internalType\":\"uint48\",\"name\":\"validUntil\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"validAfter\",\"type\":\"uint48\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"appliedPriceMarkup\",\"type\":\"uint32\"}],\"name\":\"getHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"name\":\"independentPriceExpiryDuration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"name\":\"independentPriceMarkup\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"independentTokenDirectory\",\"outputs\":[{\"internalType\":\"contract IOracle\",\"name\":\"oracle\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"priceMarkup\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"priceExpiryDuration\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"name\":\"isTokenSupported\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nativeAssetToUsdOracle\",\"outputs\":[{\"internalType\":\"contract IOracle\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum IPaymaster.PostOpMode\",\"name\":\"mode\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"context\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"actualGasCost\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actualUserOpFeePerGas\",\"type\":\"uint256\"}],\"name\":\"postOp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"name\":\"removeFromTokenDirectory\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IOracle\",\"name\":\"oracle\",\"type\":\"address\"}],\"name\":\"setNativeAssetToUsdOracle\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"newPriceExpiryDuration\",\"type\":\"uint256\"}],\"name\":\"setPriceExpiryDurationForToken\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"newIndependentPriceMarkup\",\"type\":\"uint32\"}],\"name\":\"setPriceMarkupForToken\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newVerifyingSigner\",\"type\":\"address\"}],\"name\":\"setSigner\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newUnaccountedGas\",\"type\":\"uint256\"}],\"name\":\"setUnaccountedGas\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IV3SwapRouter\",\"name\":\"uniswapRouterArg\",\"type\":\"address\"}],\"name\":\"setUniswapRouter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minEthAmountRecevied\",\"type\":\"uint256\"}],\"name\":\"swapTokenAndDeposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"tokenToPools\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unaccountedGas\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"uniswapRouter\",\"outputs\":[{\"internalType\":\"contract IV3SwapRouter\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unlockStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"tokenAddresses\",\"type\":\"address[]\"},{\"internalType\":\"uint24[]\",\"name\":\"poolFeeTiers\",\"type\":\"uint24[]\"}],\"name\":\"updateSwappableTokens\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"maxCost\",\"type\":\"uint256\"}],\"name\":\"validatePaymasterUserOp\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"context\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"validationData\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"verifyingSigner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawERC20\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"withdrawERC20Full\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawEth\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20[]\",\"name\":\"token\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"amount\",\"type\":\"uint256[]\"}],\"name\":\"withdrawMultipleERC20\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20[]\",\"name\":\"token\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"withdrawMultipleERC20Full\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"withdrawAddress\",\"type\":\"address\"}],\"name\":\"withdrawStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wrappedNative\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"author\":\"ShivaanshKlivingrockrises\",\"details\":\"A paymaster that allows users to pay gas fees in ERC20 tokens. The paymaster uses the precharge and refund model to handle gas remittances. Currently, the paymaster supports two modes: 1. EXTERNAL - Relies on a quoted token price from a trusted entity (verifyingSigner). 2. INDEPENDENT - Relies purely on price oracles (Chainlink and TWAP) which implement the IOracle interface. This mode doesn't require a signature and is \\\"always available\\\" to use. The paymaster's owner has full discretion over the supported tokens (for independent mode), price adjustments applied, and how to manage the assets received by the paymaster.\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"addStake(uint32)\":{\"params\":{\"unstakeDelaySec\":\"- The unstake delay for this paymaster. Can only be increased.\"}},\"addToTokenDirectory(address,(address,uint32,uint256))\":{\"details\":\"Set or update a TokenInfo entry in the independentTokenDirectory mapping.\",\"params\":{\"tokenAddress\":\"The token address to add or update in directory\",\"tokenInfo\":\"The TokenInfo struct to add or update\"}},\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"markup and expiry duration are provided for each token. Price expiry duration should be set to the heartbeat value of the token. Additionally, priceMarkup must be higher than Chainlink\\u2019s deviation threshold value. More: https://docs.chain.link/architecture-overview/architecture-decentralized-model \"},\"getPrice(address)\":{\"details\":\"Get the price of a token in USD\",\"params\":{\"tokenAddress\":\"The address of the token to get the price of\"},\"returns\":{\"_0\":\"price The price of the token in USD\"}},\"independentPriceExpiryDuration(address)\":{\"details\":\"Get the price expiry duration for a token\",\"params\":{\"tokenAddress\":\"The address of the token to get the price expiry duration of\"},\"returns\":{\"_0\":\"priceExpiryDuration The price expiry duration for the token\"}},\"independentPriceMarkup(address)\":{\"details\":\"Get the price markup for a token\",\"params\":{\"tokenAddress\":\"The address of the token to get the price markup of\"},\"returns\":{\"_0\":\"priceMarkup The price markup for the token\"}},\"isTokenSupported(address)\":{\"details\":\"Check if a token is supported\",\"params\":{\"tokenAddress\":\"The address of the token to check\"},\"returns\":{\"_0\":\"bool True if the token is supported, false otherwise\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"postOp(uint8,bytes,uint256,uint256)\":{\"params\":{\"actualGasCost\":\"- Actual gas used so far (without this postOp call).\",\"actualUserOpFeePerGas\":\"- the gas price this UserOp pays. This value is based on the UserOp's maxFeePerGas and maxPriorityFee (and basefee) It is not the same as tx.gasprice, which is what the bundler pays.\",\"context\":\"- The context value returned by validatePaymasterUserOp\",\"mode\":\"- Enum with the following options: opSucceeded - User operation succeeded. opReverted - User op reverted. The paymaster still has to pay for gas. postOpReverted - never passed in a call to postOp().\"}},\"removeFromTokenDirectory(address)\":{\"details\":\"Remove a token from the independentTokenDirectory mapping.\",\"params\":{\"tokenAddress\":\"The token address to remove from directory\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"setNativeAssetToUsdOracle(address)\":{\"details\":\"Update the native oracle address\",\"params\":{\"oracle\":\"The new native asset oracle\"}},\"setPriceExpiryDurationForToken(address,uint256)\":{\"details\":\"Set a new price expiry duration.\",\"params\":{\"newPriceExpiryDuration\":\"The new value to be set as the price expiry duration\"}},\"setPriceMarkupForToken(address,uint32)\":{\"details\":\"Set a new priceMarkup value.\",\"params\":{\"newIndependentPriceMarkup\":\"The new value to be set as the price markup\"}},\"setSigner(address)\":{\"details\":\"Set a new verifying signer address. Can only be called by the owner of the contract.\",\"params\":{\"newVerifyingSigner\":\"The new address to be set as the verifying signer.\"}},\"setUnaccountedGas(uint256)\":{\"details\":\"Set a new unaccountedEPGasOverhead value.\",\"params\":{\"newUnaccountedGas\":\"The new value to be set as the unaccounted gas value\"}},\"swapTokenAndDeposit(address,uint256,uint256)\":{\"details\":\"Swap a token in the paymaster for ETH and deposit the amount received into the entry point\",\"params\":{\"minEthAmountRecevied\":\"The minimum amount of ETH amount recevied post-swap\",\"tokenAddress\":\"The token address of the token to swap\",\"tokenAmount\":\"The amount of the token to swap\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"},\"updateSwappableTokens(address[],uint24[])\":{\"details\":\"Update or add a swappable token to the Uniswapper\",\"params\":{\"poolFeeTiers\":\"The pool fee tiers for the corresponding token address to use\",\"tokenAddresses\":\"The token address to add/update to/for uniswapper\"}},\"validatePaymasterUserOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),bytes32,uint256)\":{\"params\":{\"maxCost\":\"- The maximum cost of this transaction (based on maximum gas and gas price from userOp).\",\"userOp\":\"- The user operation.\",\"userOpHash\":\"- Hash of the user's request data.\"},\"returns\":{\"context\":\" - Value to send to a postOp. Zero length to signify postOp is not required.\",\"validationData\":\"- Signature and time-range of this operation, encoded the same as the return value of validateUserOperation. <20-byte> sigAuthorizer - 0 for valid signature, 1 to mark signature failure, other values are invalid for paymaster. <6-byte> validUntil - last timestamp this operation is valid. 0 for \\\"indefinite\\\" <6-byte> validAfter - first timestamp this operation is valid Note that the validation code cannot use block.timestamp (or block.number) directly.\"}},\"withdrawERC20(address,address,uint256)\":{\"details\":\"pull tokens out of paymaster in case they were sent to the paymaster at any point.\",\"params\":{\"amount\":\"amount to withdraw\",\"target\":\"address to send to\",\"token\":\"the token deposit to withdraw\"}},\"withdrawERC20Full(address,address)\":{\"details\":\"pull tokens out of paymaster in case they were sent to the paymaster at any point.\",\"params\":{\"target\":\"address to send to\",\"token\":\"the token deposit to withdraw\"}},\"withdrawEth(address,uint256)\":{\"details\":\"Withdraw ETH from the paymaster\",\"params\":{\"amount\":\"The amount of ETH to withdraw\",\"recipient\":\"The address to send the ETH to\"}},\"withdrawMultipleERC20(address[],address,uint256[])\":{\"details\":\"pull multiple tokens out of paymaster in case they were sent to the paymaster at any point.\",\"params\":{\"amount\":\"amounts to withdraw\",\"target\":\"address to send to\",\"token\":\"the tokens deposit to withdraw\"}},\"withdrawMultipleERC20Full(address[],address)\":{\"details\":\"pull multiple tokens out of paymaster in case they were sent to the paymaster at any point.\",\"params\":{\"target\":\"address to send to\",\"token\":\"the tokens deposit to withdraw\"}},\"withdrawStake(address)\":{\"params\":{\"withdrawAddress\":\"- The address to send withdrawn value.\"}},\"withdrawTo(address,uint256)\":{\"details\":\"Withdraws the specified amount of gas tokens from the paymaster's balance and transfers them to the specified address.\",\"params\":{\"amount\":\"The amount of gas tokens to withdraw.\",\"withdrawAddress\":\"The address to which the gas tokens should be transferred.\"}}},\"title\":\"BiconomyTokenPaymaster\",\"version\":1},\"userdoc\":{\"errors\":{\"CanNotWithdrawToZeroAddress()\":[{\"notice\":\"Throws when trying to withdraw to address(0)\"}],\"FailedToChargeTokens(address,address,uint256,bytes32)\":[{\"notice\":\"Throws when PM was not able to charge user\"}],\"FeeCollectorCanNotBeZero()\":[{\"notice\":\"Throws when the fee collector address provided is address(0)\"}],\"InvalidOracleDecimals()\":[{\"notice\":\"Throws when oracle decimals aren't equal to 8\"}],\"InvalidPaymasterMode()\":[{\"notice\":\"Throws when invalid PaymasterMode specified in paymasterAndData\"}],\"InvalidPriceExpiryDuration()\":[{\"notice\":\"Throws when price expiry duration is in the past\"}],\"InvalidPriceMarkup()\":[{\"notice\":\"Throws when invalid signature length in paymasterAndData\"}],\"InvalidSignatureLength()\":[{\"notice\":\"Throws when external signer's signature has invalid length\"}],\"InvalidTokenAddress()\":[{\"notice\":\"Throws when token address to pay with is invalid\"}],\"OraclePriceExpired()\":[{\"notice\":\"Throws when oracle price hasn't been updated for a duration of time the owner is comfortable with\"}],\"OraclePriceNotPositive()\":[{\"notice\":\"Throws when oracle returns invalid price\"}],\"TokensAndAmountsLengthMismatch()\":[{\"notice\":\"Throws when trying to withdraw multiple tokens, but each token doesn't have a corresponding amount\"}],\"TokensAndInfoLengthMismatch()\":[{\"notice\":\"Throws when each token doesnt have a corresponding oracle\"}],\"UnaccountedGasTooHigh()\":[{\"notice\":\"Throws when trying unaccountedGas is too high\"}],\"VerifyingSignerCanNotBeContract()\":[{\"notice\":\"Throws when the fee collector address provided is a deployed contract\"}],\"VerifyingSignerCanNotBeZero()\":[{\"notice\":\"Throws when the verifiying signer address provided is address(0)\"}],\"WithdrawalFailed()\":[{\"notice\":\"Throws when ETH withdrawal fails\"}]},\"kind\":\"user\",\"methods\":{\"addStake(uint32)\":{\"notice\":\"Add stake for this paymaster. This method can also carry eth value to add to the current stake.\"},\"addToTokenDirectory(address,(address,uint32,uint256))\":{\"notice\":\"only to be called by the owner of the contract.\"},\"deposit()\":{\"notice\":\"Add a deposit in native currency for this paymaster, used for paying for transaction fees. This is ideally done by the entity who is managing the received ERC20 gas tokens.\"},\"getDeposit()\":{\"notice\":\"Return current paymaster's deposit on the entryPoint.\"},\"getHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint48,uint48,address,uint256,uint32)\":{\"notice\":\"return the hash we're going to sign off-chain (and validate on-chain) this method is called by the off-chain service, to sign the request. it is called on-chain from the validatePaymasterUserOp, to validate the signature. note that this signature covers all fields of the UserOperation, except the \\\"paymasterAndData\\\", which will carry the signature itself.\"},\"postOp(uint8,bytes,uint256,uint256)\":{\"notice\":\"Post-operation handler. Must verify sender is the entryPoint.\"},\"removeFromTokenDirectory(address)\":{\"notice\":\"only to be called by the owner of the contract.\"},\"setNativeAssetToUsdOracle(address)\":{\"notice\":\"only to be called by the owner of the contract.\"},\"setPriceExpiryDurationForToken(address,uint256)\":{\"notice\":\"only to be called by the owner of the contract.\"},\"setPriceMarkupForToken(address,uint32)\":{\"notice\":\"only to be called by the owner of the contract.\"},\"setSigner(address)\":{\"notice\":\"If newVerifyingSigner is set to zero address, it will revert with an error. After setting the new signer address, it will emit an event UpdatedVerifyingSigner.\"},\"setUnaccountedGas(uint256)\":{\"notice\":\"only to be called by the owner of the contract.\"},\"swapTokenAndDeposit(address,uint256,uint256)\":{\"notice\":\"only to be called by the owner of the contract.\"},\"uniswapRouter()\":{\"notice\":\"The Uniswap V3 SwapRouter contract\"},\"unlockStake()\":{\"notice\":\"Unlock the stake, in order to withdraw it. The paymaster can't serve requests once unlocked, until it calls addStake again\"},\"updateSwappableTokens(address[],uint24[])\":{\"notice\":\"only to be called by the owner of the contract.\"},\"validatePaymasterUserOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),bytes32,uint256)\":{\"notice\":\"Payment validation: check if paymaster agrees to pay. Must verify sender is the entryPoint. Revert to reject this request. Note that bundlers will reject this method if it changes the state, unless the paymaster is trusted (whitelisted). The paymaster pre-pays using its deposit, and receive back a refund after the postOp method returns.\"},\"withdrawStake(address)\":{\"notice\":\"Withdraw the entire paymaster's stake. stake must be unlocked first (and then wait for the unstakeDelay to be over)\"},\"wrappedNative()\":{\"notice\":\"The ERC-20 token that wraps the native asset for current chain\"}},\"notice\":\"Biconomy's Token Paymaster for Entry Point v0.7\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/token/BiconomyTokenPaymaster.sol\":\"BiconomyTokenPaymaster\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":800},\"remappings\":[\":@ERC4337/account-abstraction/=node_modules/account-abstraction/\",\":@biconomy-devx/=node_modules/@biconomy-devx/\",\":@erc7579/=node_modules/@erc7579/\",\":@gnosis.pm/=node_modules/@gnosis.pm/\",\":@modulekit/=node_modules/modulekit/src/\",\":@nexus/=node_modules/nexus/\",\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\",\":@prb/math/=node_modules/erc7739-validator-base/node_modules/@prb/math/src/\",\":@prb/test/=node_modules/@prb/test/\",\":@rhinestone/=node_modules/@rhinestone/\",\":@safe-global/=node_modules/@safe-global/\",\":@uniswap/swap-router-contracts/contracts/=node_modules/@uniswap/swap-router-contracts/contracts/\",\":@uniswap/v3-core/contracts/=node_modules/@uniswap/v3-core/contracts/\",\":@uniswap/v3-periphery/contracts/=node_modules/@uniswap/v3-periphery/contracts/\",\":@zerodev/=node_modules/@zerodev/\",\":ExcessivelySafeCall/=node_modules/erc7739-validator-base/node_modules/excessively-safe-call/src/\",\":account-abstraction-v0.6/=node_modules/account-abstraction-v0.6/\",\":account-abstraction/=node_modules/account-abstraction/contracts/\",\":accountabstraction/=node_modules/accountabstraction/\",\":base64-sol/=node_modules/base64-sol/\",\":ds-test/=node_modules/ds-test/\",\":enumerableset4337/=node_modules/erc7739-validator-base/node_modules/@erc7579/enumerablemap4337/src/\",\":erc4337-validation/=node_modules/erc7739-validator-base/node_modules/@rhinestone/erc4337-validation/src/\",\":erc7579/=node_modules/erc7579/src/\",\":erc7739-validator-base/=node_modules/erc7739-validator-base/\",\":erc7739Validator/=node_modules/erc7739-validator-base/src/\",\":excessively-safe-call/=node_modules/excessively-safe-call/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\",\":kernel/=node_modules/@zerodev/kernel/src/\",\":module-bases/=node_modules/module-bases/src/\",\":modulekit/=node_modules/@rhinestone/modulekit/src/\",\":nexus/=node_modules/nexus/\",\":registry/=node_modules/modulekit/node_modules/@rhinestone/registry/src/\",\":safe7579/=node_modules/erc7739-validator-base/node_modules/@rhinestone/safe7579/src/\",\":sentinellist/=node_modules/sentinellist/src/\",\":solady/=node_modules/solady/src/\",\":solady/src/=node_modules/solady/src/\",\":solarray/=node_modules/solarray/src/\"],\"viaIR\":true},\"sources\":{\"contracts/base/BasePaymaster.sol\":{\"keccak256\":\"0xde235ba59fa9febfab83433be7020fbba2798fb8ed601e7ef076e9f4693671a2\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e3ee35669cb1b0db5325f948800589b5f012ba8099e57827eb76875d95a016d3\",\"dweb:/ipfs/QmTBpW9RCubh28tHxgL6Ee8UEM8bNLVKEyEiFCrEL4pQ9a\"]},\"contracts/common/BiconomyTokenPaymasterErrors.sol\":{\"keccak256\":\"0x9f88957b0f2414649080d90bff3cb2c8eb77c73768e9c421024802f2e32c3116\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://9ac80f8b00d478257b2e7ac9bc40d0e0d984260112676b0ae095a01cf5afdfc7\",\"dweb:/ipfs/QmUWEm7MdihdcGX23nEGNy6aXot4tvaknC39JGbjf6mkFV\"]},\"contracts/interfaces/IBiconomyTokenPaymaster.sol\":{\"keccak256\":\"0x231cc91d24bc1fb979266ddab5b1c0eabad1f881fcfe8fee4352b36da8cc3fc8\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://756012864054475ef1001ed3a054128e5781702ce8b7419c0662f8f7a21dfced\",\"dweb:/ipfs/QmZdkmgEAukWxMM3h2HHqSk66aXKrtr4BwYFicuuaRcVhR\"]},\"contracts/interfaces/oracles/IOracle.sol\":{\"keccak256\":\"0xe9a21c93ef09e4c8bbdfe2848136d6ce3562185e257d846b9cc578f8af2ec03b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2755e9c5bab8109b67a722529ec3e8e829de98b9c983c81e9780a8f950a4e88\",\"dweb:/ipfs/QmW23eRspR5YDu2j9fXNAGdXXWyKg6768DCqUa5cBJsc1e\"]},\"contracts/libraries/TokenPaymasterParserLib.sol\":{\"keccak256\":\"0x09a96b2da449f45b87343ead1c0bdc1dbf1465ad7f20447ea469e8783b9a68cf\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e2cc39472cc044713816ce97f59ba297f7ffd93d22346bc98892c01de36b5ee1\",\"dweb:/ipfs/QmeZTnPdjfKTDTNPYTr5bhWRVmJbKHRMcm1G1bFv3GX1QG\"]},\"contracts/token/BiconomyTokenPaymaster.sol\":{\"keccak256\":\"0xee2d45a8e24f5e5aa001583dc40b47a336047b11ef3352fec43a3685c6b6f269\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e42005df7994fa8147c8a05ddfe933e79fb9fb9c19613dd43193a2f4b1e800c3\",\"dweb:/ipfs/QmZcfB3SKKqsFHvxvjKLRtabZzQwxtHizbeTXq2nQRnhdX\"]},\"contracts/token/swaps/Uniswapper.sol\":{\"keccak256\":\"0x5f39a396413493cf6152e46dc752e318964a502c71fe3d22bd0ba6e8ae5cd1be\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://8b3172779be90c6f7c389493603bc928ff4e2ec07fe88fd8aef618a5489c7914\",\"dweb:/ipfs/QmSjdNcHUZPxDfd5At2U67CsX1zKur4ZNWPq3EnRqFpVJp\"]},\"contracts/utils/SoladyOwnable.sol\":{\"keccak256\":\"0xa8d7b45c34f96e24ae669cdc5add90088b8236a101cb36a7148b05c678d2f8ce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05d1686b40ce43c7ebb674c64ec6695c7822f3380954028c218bf59b64f8165d\",\"dweb:/ipfs/Qmc6Vr8Ru1EpupJ7gp6kmdPA5BqcoPY5GqF8ZLvMPzvBaX\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/ReentrancyGuardTransient.sol\":{\"keccak256\":\"0x534bf5c25d6003a8ce50b400d20fa460c03169ad7baa90d47a912917c36dfe2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc0cc39c40ea23d3c46e8517e19ebdd877719d3159fa032f2a91802cdd205c79\",\"dweb:/ipfs/QmSoNh7HTkD4TJcBkBKSGSPMMpLUZKE7s9f2G6mjdaJywg\"]},\"node_modules/@openzeppelin/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889\",\"dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/@uniswap/swap-router-contracts/contracts/interfaces/IV3SwapRouter.sol\":{\"keccak256\":\"0xa2300af2b82af292216a8f3f301a86e65463655fff9fb791515e3fd2ccf4a14c\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a0a9bece58527fb5c1773d86666c7a71884a78f413e230dfa8c8a7f8ea564ef9\",\"dweb:/ipfs/QmbDhvpoZJN1KntxUUxkYV89RPTwqVBiyHBkvVh4QHSveo\"]},\"node_modules/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652\",\"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS\"]},\"node_modules/@uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"node_modules/account-abstraction/contracts/core/Helpers.sol\":{\"keccak256\":\"0x6247e011a6cb0b263b3aa098822977181674d91b62e5bdfe04c6e66f72da25d6\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://ca829a69b3fbc74fec8e140d42a2bf93bc3512609272f031c846470f61f0ab7e\",\"dweb:/ipfs/QmP3r3MBgAN39KeVB1rCGJWwcBcotNt26ALtAR54poQ1Jc\"]},\"node_modules/account-abstraction/contracts/core/UserOperationLib.sol\":{\"keccak256\":\"0x9d50ece985d35f82e33e5da417595c86fac10449e3d10895d08363d33aad454b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://b1d11cc364c8bf7ed5388268c895b5ffed16e87dfbcb320ddeeba5e7974315dc\",\"dweb:/ipfs/QmYSpvjxEjweietQrYZagwQ52ipy7eXx4rwvnTzXKeGeMS\"]},\"node_modules/account-abstraction/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0xf100d6fcc0c3b450b13e979b6a42c628c292a1bc340eccc2e7796b80e3975588\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://192938b5b27234d35c8098a319e879363c79f750eea4d0e409dc889a8ce5b155\",\"dweb:/ipfs/QmURpaJFPqEtkKP2ngBsgZhAGN8wAWh5XQpYmCkiz4Urz5\"]},\"node_modules/account-abstraction/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x1972a5fcb3a808b58c85af5741949ef6af11ab0debd3ae8c708171ae1ae0d0c4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://baa9837ae73b9e2362a47d42d081d7c0f3d8e878e5edb381117d94a6968949c9\",\"dweb:/ipfs/QmUmo6FUE7fv5z1WzW1YFjxp8PqaeN2JrEee9au59w3Xhe\"]},\"node_modules/account-abstraction/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0xd575af0f6ebbd5f0b2933307d44cd7b4e03a69f4b817a67db5409bd3c89aeecb\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://3b1e2dea9b05cfba9d13339ed16d96457dc861013cc4f3f35b71a80f82448db3\",\"dweb:/ipfs/QmVaGy5uGDMSiU2SzyokTjoHFyb39VVG5wtaM9KTnHyZSk\"]},\"node_modules/account-abstraction/contracts/interfaces/IPaymaster.sol\":{\"keccak256\":\"0x49d8dbf8a85b006bcd89bbc40e4e9e113997cc016007de85263bdae70572d07f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://bc0d83804c1b795d5c216b3518cd176c48f90db28550f267cbd89746d6b476c8\",\"dweb:/ipfs/QmNdCm4c6hnt7f6Q8q21QjtCNZWWRUaMVEYnQHEv68VnKt\"]},\"node_modules/account-abstraction/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xbe5ca9e7f254d031687419e7b96ef48c9c63e9398bbe992dc72ffc6dc14e0a04\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://1fffec71c38627a26fabb423350148009579f092623fb02b471a12d973763a00\",\"dweb:/ipfs/QmRBi31QEYXHj3x1AnQ2jKa2eziZH1b9av396P3b4dw6bj\"]},\"node_modules/account-abstraction/contracts/interfaces/PackedUserOperation.sol\":{\"keccak256\":\"0x1129b46381db68eddbc5cb49e50664667b66b03c480453858e7b25eabe444359\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://499a948aba60480dba6e25c763b8d918f1c246eb7a3302e04f493e080f3295be\",\"dweb:/ipfs/QmeRhhswf4NACcBKam2PyjpTP2ddSm648kah5kkQJsvwz3\"]},\"node_modules/solady/src/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"node_modules/solady/src/utils/ECDSA.sol\":{\"keccak256\":\"0x5a37fbc86ff99139e1cffad4ec05ffeeef17c1d1401113f107665d08a6abe7df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4253a9d0cf4eab99f858fe798904f02ddaabfca3133c07a6314dc479ddd2e217\",\"dweb:/ipfs/QmXeK8yCQ8G4KsqkiP2Yewi2kPV9vdpUU9Qi1xcdX92p8v\"]},\"node_modules/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x7d0de1ff3be5dc32635283280b000d4794015a1b61d7dae7f3ff7b0721b07210\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e307c9eece677565e7d584ee77c56134b5db38a70f557f9d2b1b308219276c0c\",\"dweb:/ipfs/QmTEtqaTFgRBFGpJyb5o4v2w8yrSpcNThov4bNpcLr2tTR\"]},\"node_modules/solady/src/utils/SignatureCheckerLib.sol\":{\"keccak256\":\"0x0eb1575bafc5537fcb4bba519123c694db66840d7a13b7d3b867c55bf95e9c8b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33b81539b6c6901660ab7c134789178146f18622813de5bc984d4c6dad7b13e6\",\"dweb:/ipfs/QmNdG7Y74GbymWqbhMbMY92AHYxLug9sR5gNWfzwB7hM1b\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"verifyingSignerArg","type":"address"},{"internalType":"contract IEntryPoint","name":"entryPoint","type":"address"},{"internalType":"uint256","name":"unaccountedGasArg","type":"uint256"},{"internalType":"uint256","name":"nativeAssetDecimalsArg","type":"uint256"},{"internalType":"contract IOracle","name":"nativeAssetToUsdOracleArg","type":"address"},{"internalType":"uint256","name":"nativeAssetPriceExpiryDurationArg","type":"uint256"},{"internalType":"contract IV3SwapRouter","name":"uniswapRouterArg","type":"address"},{"internalType":"address","name":"wrappedNativeArg","type":"address"},{"internalType":"address[]","name":"independentTokensArg","type":"address[]"},{"internalType":"struct IBiconomyTokenPaymaster.TokenInfo[]","name":"tokenInfosArg","type":"tuple[]","components":[{"internalType":"contract IOracle","name":"oracle","type":"address"},{"internalType":"uint32","name":"priceMarkup","type":"uint32"},{"internalType":"uint256","name":"priceExpiryDuration","type":"uint256"}]},{"internalType":"address[]","name":"swappableTokens","type":"address[]"},{"internalType":"uint24[]","name":"swappableTokenPoolFeeTiers","type":"uint24[]"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyInitialized"},{"inputs":[],"type":"error","name":"CanNotWithdrawToZeroAddress"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"userOpHash","type":"bytes32"}],"type":"error","name":"FailedToChargeTokens"},{"inputs":[],"type":"error","name":"FeeCollectorCanNotBeZero"},{"inputs":[],"type":"error","name":"InvalidOracleDecimals"},{"inputs":[],"type":"error","name":"InvalidPaymasterMode"},{"inputs":[],"type":"error","name":"InvalidPriceExpiryDuration"},{"inputs":[],"type":"error","name":"InvalidPriceMarkup"},{"inputs":[],"type":"error","name":"InvalidSignatureLength"},{"inputs":[],"type":"error","name":"InvalidTokenAddress"},{"inputs":[],"type":"error","name":"NewOwnerIsZeroAddress"},{"inputs":[],"type":"error","name":"NoHandoverRequest"},{"inputs":[],"type":"error","name":"OraclePriceExpired"},{"inputs":[],"type":"error","name":"OraclePriceNotPositive"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"TokenNotSupported"},{"inputs":[],"type":"error","name":"TokensAndAmountsLengthMismatch"},{"inputs":[],"type":"error","name":"TokensAndInfoLengthMismatch"},{"inputs":[],"type":"error","name":"TokensAndPoolsLengthMismatch"},{"inputs":[],"type":"error","name":"UnaccountedGasTooHigh"},{"inputs":[],"type":"error","name":"Unauthorized"},{"inputs":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"}],"type":"error","name":"UniswapReverted"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"type":"error","name":"UnwrappingReverted"},{"inputs":[],"type":"error","name":"VerifyingSignerCanNotBeContract"},{"inputs":[],"type":"error","name":"VerifyingSignerCanNotBeZero"},{"inputs":[],"type":"error","name":"WithdrawalFailed"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address","indexed":true},{"internalType":"contract IOracle","name":"oracle","type":"address","indexed":true},{"internalType":"uint8","name":"decimals","type":"uint8","indexed":false}],"type":"event","name":"AddedToTokenDirectory","anonymous":false},{"inputs":[{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":true}],"type":"event","name":"EthWithdrawn","anonymous":false},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipHandoverCanceled","anonymous":false},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipHandoverRequested","anonymous":false},{"inputs":[{"internalType":"address","name":"oldOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"userOpSender","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"gasCostBeforePostOpAndPenalty","type":"uint256","indexed":false},{"internalType":"uint256","name":"tokenCharge","type":"uint256","indexed":false},{"internalType":"uint32","name":"priceMarkup","type":"uint32","indexed":false},{"internalType":"uint256","name":"tokenPrice","type":"uint256","indexed":false},{"internalType":"bytes32","name":"userOpHash","type":"bytes32","indexed":false}],"type":"event","name":"PaidGasInTokens","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Received","anonymous":false},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address","indexed":true}],"type":"event","name":"RemovedFromTokenDirectory","anonymous":false},{"inputs":[{"internalType":"address[]","name":"tokenAddresses","type":"address[]","indexed":true}],"type":"event","name":"SwappableTokensAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"tokenIn","type":"address","indexed":false},{"internalType":"uint256","name":"amountIn","type":"uint256","indexed":false},{"internalType":"bytes","name":"reason","type":"bytes","indexed":false}],"type":"event","name":"SwappingReverted","anonymous":false},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address","indexed":true},{"internalType":"uint256","name":"tokenAmount","type":"uint256","indexed":true},{"internalType":"uint256","name":"amountOut","type":"uint256","indexed":true},{"internalType":"address","name":"actor","type":"address","indexed":false}],"type":"event","name":"TokensSwappedAndRefilledEntryPoint","anonymous":false},{"inputs":[{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":true},{"internalType":"address","name":"actor","type":"address","indexed":false}],"type":"event","name":"TokensWithdrawn","anonymous":false},{"inputs":[{"internalType":"address","name":"oldFeeCollector","type":"address","indexed":true},{"internalType":"address","name":"newFeeCollector","type":"address","indexed":true},{"internalType":"address","name":"actor","type":"address","indexed":true}],"type":"event","name":"UpdatedFeeCollector","anonymous":false},{"inputs":[{"internalType":"uint32","name":"oldValue","type":"uint32","indexed":true},{"internalType":"uint32","name":"newValue","type":"uint32","indexed":true}],"type":"event","name":"UpdatedFixedPriceMarkup","anonymous":false},{"inputs":[{"internalType":"contract IOracle","name":"oldOracle","type":"address","indexed":true},{"internalType":"contract IOracle","name":"newOracle","type":"address","indexed":true}],"type":"event","name":"UpdatedNativeAssetOracle","anonymous":false},{"inputs":[{"internalType":"uint256","name":"oldValue","type":"uint256","indexed":true},{"internalType":"uint256","name":"newValue","type":"uint256","indexed":true}],"type":"event","name":"UpdatedPriceExpiryDuration","anonymous":false},{"inputs":[{"internalType":"uint256","name":"oldValue","type":"uint256","indexed":true},{"internalType":"uint256","name":"newValue","type":"uint256","indexed":true}],"type":"event","name":"UpdatedUnaccountedGas","anonymous":false},{"inputs":[{"internalType":"address","name":"oldSigner","type":"address","indexed":true},{"internalType":"address","name":"newSigner","type":"address","indexed":true},{"internalType":"address","name":"actor","type":"address","indexed":true}],"type":"event","name":"UpdatedVerifyingSigner","anonymous":false},{"inputs":[{"internalType":"uint32","name":"unstakeDelaySec","type":"uint32"}],"stateMutability":"payable","type":"function","name":"addStake"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"struct IBiconomyTokenPaymaster.TokenInfo","name":"tokenInfo","type":"tuple","components":[{"internalType":"contract IOracle","name":"oracle","type":"address"},{"internalType":"uint32","name":"priceMarkup","type":"uint32"},{"internalType":"uint256","name":"priceExpiryDuration","type":"uint256"}]}],"stateMutability":"payable","type":"function","name":"addToTokenDirectory"},{"inputs":[],"stateMutability":"payable","type":"function","name":"cancelOwnershipHandover"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"stateMutability":"payable","type":"function","name":"completeOwnershipHandover"},{"inputs":[],"stateMutability":"payable","type":"function","name":"deposit"},{"inputs":[],"stateMutability":"view","type":"function","name":"entryPoint","outputs":[{"internalType":"contract IEntryPoint","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct PackedUserOperation","name":"userOp","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"uint48","name":"validUntil","type":"uint48"},{"internalType":"uint48","name":"validAfter","type":"uint48"},{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokenPrice","type":"uint256"},{"internalType":"uint32","name":"appliedPriceMarkup","type":"uint32"}],"stateMutability":"view","type":"function","name":"getHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"stateMutability":"view","type":"function","name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"stateMutability":"view","type":"function","name":"independentPriceExpiryDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"stateMutability":"view","type":"function","name":"independentPriceMarkup","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"independentTokenDirectory","outputs":[{"internalType":"contract IOracle","name":"oracle","type":"address"},{"internalType":"uint32","name":"priceMarkup","type":"uint32"},{"internalType":"uint256","name":"priceExpiryDuration","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"stateMutability":"view","type":"function","name":"isTokenSupported","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nativeAssetToUsdOracle","outputs":[{"internalType":"contract IOracle","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}]},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"stateMutability":"view","type":"function","name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"enum IPaymaster.PostOpMode","name":"mode","type":"uint8"},{"internalType":"bytes","name":"context","type":"bytes"},{"internalType":"uint256","name":"actualGasCost","type":"uint256"},{"internalType":"uint256","name":"actualUserOpFeePerGas","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"postOp"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"stateMutability":"payable","type":"function","name":"removeFromTokenDirectory"},{"inputs":[],"stateMutability":"payable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"payable","type":"function","name":"requestOwnershipHandover"},{"inputs":[{"internalType":"contract IOracle","name":"oracle","type":"address"}],"stateMutability":"payable","type":"function","name":"setNativeAssetToUsdOracle"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"newPriceExpiryDuration","type":"uint256"}],"stateMutability":"payable","type":"function","name":"setPriceExpiryDurationForToken"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint32","name":"newIndependentPriceMarkup","type":"uint32"}],"stateMutability":"payable","type":"function","name":"setPriceMarkupForToken"},{"inputs":[{"internalType":"address","name":"newVerifyingSigner","type":"address"}],"stateMutability":"payable","type":"function","name":"setSigner"},{"inputs":[{"internalType":"uint256","name":"newUnaccountedGas","type":"uint256"}],"stateMutability":"payable","type":"function","name":"setUnaccountedGas"},{"inputs":[{"internalType":"contract IV3SwapRouter","name":"uniswapRouterArg","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setUniswapRouter"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"internalType":"uint256","name":"minEthAmountRecevied","type":"uint256"}],"stateMutability":"payable","type":"function","name":"swapTokenAndDeposit"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"tokenToPools","outputs":[{"internalType":"uint24","name":"","type":"uint24"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"payable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"unaccountedGas","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"uniswapRouter","outputs":[{"internalType":"contract IV3SwapRouter","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unlockStake"},{"inputs":[{"internalType":"address[]","name":"tokenAddresses","type":"address[]"},{"internalType":"uint24[]","name":"poolFeeTiers","type":"uint24[]"}],"stateMutability":"payable","type":"function","name":"updateSwappableTokens"},{"inputs":[{"internalType":"struct PackedUserOperation","name":"userOp","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"bytes32","name":"userOpHash","type":"bytes32"},{"internalType":"uint256","name":"maxCost","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"validatePaymasterUserOp","outputs":[{"internalType":"bytes","name":"context","type":"bytes"},{"internalType":"uint256","name":"validationData","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"verifyingSigner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"withdrawERC20"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"target","type":"address"}],"stateMutability":"payable","type":"function","name":"withdrawERC20Full"},{"inputs":[{"internalType":"address payable","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"withdrawEth"},{"inputs":[{"internalType":"contract IERC20[]","name":"token","type":"address[]"},{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256[]","name":"amount","type":"uint256[]"}],"stateMutability":"payable","type":"function","name":"withdrawMultipleERC20"},{"inputs":[{"internalType":"contract IERC20[]","name":"token","type":"address[]"},{"internalType":"address","name":"target","type":"address"}],"stateMutability":"payable","type":"function","name":"withdrawMultipleERC20Full"},{"inputs":[{"internalType":"address payable","name":"withdrawAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdrawStake"},{"inputs":[{"internalType":"address payable","name":"withdrawAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawTo"},{"inputs":[],"stateMutability":"view","type":"function","name":"wrappedNative","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"addStake(uint32)":{"params":{"unstakeDelaySec":"- The unstake delay for this paymaster. Can only be increased."}},"addToTokenDirectory(address,(address,uint32,uint256))":{"details":"Set or update a TokenInfo entry in the independentTokenDirectory mapping.","params":{"tokenAddress":"The token address to add or update in directory","tokenInfo":"The TokenInfo struct to add or update"}},"cancelOwnershipHandover()":{"details":"Cancels the two-step ownership handover to the caller, if any."},"completeOwnershipHandover(address)":{"details":"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`."},"constructor":{"details":"markup and expiry duration are provided for each token. Price expiry duration should be set to the heartbeat value of the token. Additionally, priceMarkup must be higher than Chainlink’s deviation threshold value. More: https://docs.chain.link/architecture-overview/architecture-decentralized-model "},"getPrice(address)":{"details":"Get the price of a token in USD","params":{"tokenAddress":"The address of the token to get the price of"},"returns":{"_0":"price The price of the token in USD"}},"independentPriceExpiryDuration(address)":{"details":"Get the price expiry duration for a token","params":{"tokenAddress":"The address of the token to get the price expiry duration of"},"returns":{"_0":"priceExpiryDuration The price expiry duration for the token"}},"independentPriceMarkup(address)":{"details":"Get the price markup for a token","params":{"tokenAddress":"The address of the token to get the price markup of"},"returns":{"_0":"priceMarkup The price markup for the token"}},"isTokenSupported(address)":{"details":"Check if a token is supported","params":{"tokenAddress":"The address of the token to check"},"returns":{"_0":"bool True if the token is supported, false otherwise"}},"owner()":{"details":"Returns the owner of the contract."},"ownershipHandoverExpiresAt(address)":{"details":"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`."},"postOp(uint8,bytes,uint256,uint256)":{"params":{"actualGasCost":"- Actual gas used so far (without this postOp call).","actualUserOpFeePerGas":"- the gas price this UserOp pays. This value is based on the UserOp's maxFeePerGas and maxPriorityFee (and basefee) It is not the same as tx.gasprice, which is what the bundler pays.","context":"- The context value returned by validatePaymasterUserOp","mode":"- Enum with the following options: opSucceeded - User operation succeeded. opReverted - User op reverted. The paymaster still has to pay for gas. postOpReverted - never passed in a call to postOp()."}},"removeFromTokenDirectory(address)":{"details":"Remove a token from the independentTokenDirectory mapping.","params":{"tokenAddress":"The token address to remove from directory"}},"renounceOwnership()":{"details":"Allows the owner to renounce their ownership."},"requestOwnershipHandover()":{"details":"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default."},"setNativeAssetToUsdOracle(address)":{"details":"Update the native oracle address","params":{"oracle":"The new native asset oracle"}},"setPriceExpiryDurationForToken(address,uint256)":{"details":"Set a new price expiry duration.","params":{"newPriceExpiryDuration":"The new value to be set as the price expiry duration"}},"setPriceMarkupForToken(address,uint32)":{"details":"Set a new priceMarkup value.","params":{"newIndependentPriceMarkup":"The new value to be set as the price markup"}},"setSigner(address)":{"details":"Set a new verifying signer address. Can only be called by the owner of the contract.","params":{"newVerifyingSigner":"The new address to be set as the verifying signer."}},"setUnaccountedGas(uint256)":{"details":"Set a new unaccountedEPGasOverhead value.","params":{"newUnaccountedGas":"The new value to be set as the unaccounted gas value"}},"swapTokenAndDeposit(address,uint256,uint256)":{"details":"Swap a token in the paymaster for ETH and deposit the amount received into the entry point","params":{"minEthAmountRecevied":"The minimum amount of ETH amount recevied post-swap","tokenAddress":"The token address of the token to swap","tokenAmount":"The amount of the token to swap"}},"transferOwnership(address)":{"details":"Allows the owner to transfer the ownership to `newOwner`."},"updateSwappableTokens(address[],uint24[])":{"details":"Update or add a swappable token to the Uniswapper","params":{"poolFeeTiers":"The pool fee tiers for the corresponding token address to use","tokenAddresses":"The token address to add/update to/for uniswapper"}},"validatePaymasterUserOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),bytes32,uint256)":{"params":{"maxCost":"- The maximum cost of this transaction (based on maximum gas and gas price from userOp).","userOp":"- The user operation.","userOpHash":"- Hash of the user's request data."},"returns":{"context":" - Value to send to a postOp. Zero length to signify postOp is not required.","validationData":"- Signature and time-range of this operation, encoded the same as the return value of validateUserOperation. <20-byte> sigAuthorizer - 0 for valid signature, 1 to mark signature failure, other values are invalid for paymaster. <6-byte> validUntil - last timestamp this operation is valid. 0 for \"indefinite\" <6-byte> validAfter - first timestamp this operation is valid Note that the validation code cannot use block.timestamp (or block.number) directly."}},"withdrawERC20(address,address,uint256)":{"details":"pull tokens out of paymaster in case they were sent to the paymaster at any point.","params":{"amount":"amount to withdraw","target":"address to send to","token":"the token deposit to withdraw"}},"withdrawERC20Full(address,address)":{"details":"pull tokens out of paymaster in case they were sent to the paymaster at any point.","params":{"target":"address to send to","token":"the token deposit to withdraw"}},"withdrawEth(address,uint256)":{"details":"Withdraw ETH from the paymaster","params":{"amount":"The amount of ETH to withdraw","recipient":"The address to send the ETH to"}},"withdrawMultipleERC20(address[],address,uint256[])":{"details":"pull multiple tokens out of paymaster in case they were sent to the paymaster at any point.","params":{"amount":"amounts to withdraw","target":"address to send to","token":"the tokens deposit to withdraw"}},"withdrawMultipleERC20Full(address[],address)":{"details":"pull multiple tokens out of paymaster in case they were sent to the paymaster at any point.","params":{"target":"address to send to","token":"the tokens deposit to withdraw"}},"withdrawStake(address)":{"params":{"withdrawAddress":"- The address to send withdrawn value."}},"withdrawTo(address,uint256)":{"details":"Withdraws the specified amount of gas tokens from the paymaster's balance and transfers them to the specified address.","params":{"amount":"The amount of gas tokens to withdraw.","withdrawAddress":"The address to which the gas tokens should be transferred."}}},"version":1},"userdoc":{"kind":"user","methods":{"addStake(uint32)":{"notice":"Add stake for this paymaster. This method can also carry eth value to add to the current stake."},"addToTokenDirectory(address,(address,uint32,uint256))":{"notice":"only to be called by the owner of the contract."},"deposit()":{"notice":"Add a deposit in native currency for this paymaster, used for paying for transaction fees. This is ideally done by the entity who is managing the received ERC20 gas tokens."},"getDeposit()":{"notice":"Return current paymaster's deposit on the entryPoint."},"getHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint48,uint48,address,uint256,uint32)":{"notice":"return the hash we're going to sign off-chain (and validate on-chain) this method is called by the off-chain service, to sign the request. it is called on-chain from the validatePaymasterUserOp, to validate the signature. note that this signature covers all fields of the UserOperation, except the \"paymasterAndData\", which will carry the signature itself."},"postOp(uint8,bytes,uint256,uint256)":{"notice":"Post-operation handler. Must verify sender is the entryPoint."},"removeFromTokenDirectory(address)":{"notice":"only to be called by the owner of the contract."},"setNativeAssetToUsdOracle(address)":{"notice":"only to be called by the owner of the contract."},"setPriceExpiryDurationForToken(address,uint256)":{"notice":"only to be called by the owner of the contract."},"setPriceMarkupForToken(address,uint32)":{"notice":"only to be called by the owner of the contract."},"setSigner(address)":{"notice":"If newVerifyingSigner is set to zero address, it will revert with an error. After setting the new signer address, it will emit an event UpdatedVerifyingSigner."},"setUnaccountedGas(uint256)":{"notice":"only to be called by the owner of the contract."},"swapTokenAndDeposit(address,uint256,uint256)":{"notice":"only to be called by the owner of the contract."},"uniswapRouter()":{"notice":"The Uniswap V3 SwapRouter contract"},"unlockStake()":{"notice":"Unlock the stake, in order to withdraw it. The paymaster can't serve requests once unlocked, until it calls addStake again"},"updateSwappableTokens(address[],uint24[])":{"notice":"only to be called by the owner of the contract."},"validatePaymasterUserOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),bytes32,uint256)":{"notice":"Payment validation: check if paymaster agrees to pay. Must verify sender is the entryPoint. Revert to reject this request. Note that bundlers will reject this method if it changes the state, unless the paymaster is trusted (whitelisted). The paymaster pre-pays using its deposit, and receive back a refund after the postOp method returns."},"withdrawStake(address)":{"notice":"Withdraw the entire paymaster's stake. stake must be unlocked first (and then wait for the unstakeDelay to be over)"},"wrappedNative()":{"notice":"The ERC-20 token that wraps the native asset for current chain"}},"version":1}},"settings":{"remappings":["@ERC4337/account-abstraction/=node_modules/account-abstraction/","@biconomy-devx/=node_modules/@biconomy-devx/","@erc7579/=node_modules/@erc7579/","@gnosis.pm/=node_modules/@gnosis.pm/","@modulekit/=node_modules/modulekit/src/","@nexus/=node_modules/nexus/","@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/","@prb/math/=node_modules/erc7739-validator-base/node_modules/@prb/math/src/","@prb/test/=node_modules/@prb/test/","@rhinestone/=node_modules/@rhinestone/","@safe-global/=node_modules/@safe-global/","@uniswap/swap-router-contracts/contracts/=node_modules/@uniswap/swap-router-contracts/contracts/","@uniswap/v3-core/contracts/=node_modules/@uniswap/v3-core/contracts/","@uniswap/v3-periphery/contracts/=node_modules/@uniswap/v3-periphery/contracts/","@zerodev/=node_modules/@zerodev/","ExcessivelySafeCall/=node_modules/erc7739-validator-base/node_modules/excessively-safe-call/src/","account-abstraction-v0.6/=node_modules/account-abstraction-v0.6/","account-abstraction/=node_modules/account-abstraction/contracts/","accountabstraction/=node_modules/accountabstraction/","base64-sol/=node_modules/base64-sol/","ds-test/=node_modules/ds-test/","enumerableset4337/=node_modules/erc7739-validator-base/node_modules/@erc7579/enumerablemap4337/src/","erc4337-validation/=node_modules/erc7739-validator-base/node_modules/@rhinestone/erc4337-validation/src/","erc7579/=node_modules/erc7579/src/","erc7739-validator-base/=node_modules/erc7739-validator-base/","erc7739Validator/=node_modules/erc7739-validator-base/src/","excessively-safe-call/=node_modules/excessively-safe-call/src/","forge-std/=lib/forge-std/src/","hardhat-deploy/=node_modules/hardhat-deploy/","hardhat/=node_modules/hardhat/","kernel/=node_modules/@zerodev/kernel/src/","module-bases/=node_modules/module-bases/src/","modulekit/=node_modules/@rhinestone/modulekit/src/","nexus/=node_modules/nexus/","registry/=node_modules/modulekit/node_modules/@rhinestone/registry/src/","safe7579/=node_modules/erc7739-validator-base/node_modules/@rhinestone/safe7579/src/","sentinellist/=node_modules/sentinellist/src/","solady/=node_modules/solady/src/","solady/src/=node_modules/solady/src/","solarray/=node_modules/solarray/src/"],"optimizer":{"enabled":true,"runs":800},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"contracts/token/BiconomyTokenPaymaster.sol":"BiconomyTokenPaymaster"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/base/BasePaymaster.sol":{"keccak256":"0xde235ba59fa9febfab83433be7020fbba2798fb8ed601e7ef076e9f4693671a2","urls":["bzz-raw://e3ee35669cb1b0db5325f948800589b5f012ba8099e57827eb76875d95a016d3","dweb:/ipfs/QmTBpW9RCubh28tHxgL6Ee8UEM8bNLVKEyEiFCrEL4pQ9a"],"license":"GPL-3.0"},"contracts/common/BiconomyTokenPaymasterErrors.sol":{"keccak256":"0x9f88957b0f2414649080d90bff3cb2c8eb77c73768e9c421024802f2e32c3116","urls":["bzz-raw://9ac80f8b00d478257b2e7ac9bc40d0e0d984260112676b0ae095a01cf5afdfc7","dweb:/ipfs/QmUWEm7MdihdcGX23nEGNy6aXot4tvaknC39JGbjf6mkFV"],"license":"LGPL-3.0-only"},"contracts/interfaces/IBiconomyTokenPaymaster.sol":{"keccak256":"0x231cc91d24bc1fb979266ddab5b1c0eabad1f881fcfe8fee4352b36da8cc3fc8","urls":["bzz-raw://756012864054475ef1001ed3a054128e5781702ce8b7419c0662f8f7a21dfced","dweb:/ipfs/QmZdkmgEAukWxMM3h2HHqSk66aXKrtr4BwYFicuuaRcVhR"],"license":"GPL-3.0"},"contracts/interfaces/oracles/IOracle.sol":{"keccak256":"0xe9a21c93ef09e4c8bbdfe2848136d6ce3562185e257d846b9cc578f8af2ec03b","urls":["bzz-raw://c2755e9c5bab8109b67a722529ec3e8e829de98b9c983c81e9780a8f950a4e88","dweb:/ipfs/QmW23eRspR5YDu2j9fXNAGdXXWyKg6768DCqUa5cBJsc1e"],"license":"MIT"},"contracts/libraries/TokenPaymasterParserLib.sol":{"keccak256":"0x09a96b2da449f45b87343ead1c0bdc1dbf1465ad7f20447ea469e8783b9a68cf","urls":["bzz-raw://e2cc39472cc044713816ce97f59ba297f7ffd93d22346bc98892c01de36b5ee1","dweb:/ipfs/QmeZTnPdjfKTDTNPYTr5bhWRVmJbKHRMcm1G1bFv3GX1QG"],"license":"GPL-3.0"},"contracts/token/BiconomyTokenPaymaster.sol":{"keccak256":"0xee2d45a8e24f5e5aa001583dc40b47a336047b11ef3352fec43a3685c6b6f269","urls":["bzz-raw://e42005df7994fa8147c8a05ddfe933e79fb9fb9c19613dd43193a2f4b1e800c3","dweb:/ipfs/QmZcfB3SKKqsFHvxvjKLRtabZzQwxtHizbeTXq2nQRnhdX"],"license":"GPL-3.0"},"contracts/token/swaps/Uniswapper.sol":{"keccak256":"0x5f39a396413493cf6152e46dc752e318964a502c71fe3d22bd0ba6e8ae5cd1be","urls":["bzz-raw://8b3172779be90c6f7c389493603bc928ff4e2ec07fe88fd8aef618a5489c7914","dweb:/ipfs/QmSjdNcHUZPxDfd5At2U67CsX1zKur4ZNWPq3EnRqFpVJp"],"license":"GPL-3.0"},"contracts/utils/SoladyOwnable.sol":{"keccak256":"0xa8d7b45c34f96e24ae669cdc5add90088b8236a101cb36a7148b05c678d2f8ce","urls":["bzz-raw://05d1686b40ce43c7ebb674c64ec6695c7822f3380954028c218bf59b64f8165d","dweb:/ipfs/Qmc6Vr8Ru1EpupJ7gp6kmdPA5BqcoPY5GqF8ZLvMPzvBaX"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31","urls":["bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09","dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330","urls":["bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf","dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/ReentrancyGuardTransient.sol":{"keccak256":"0x534bf5c25d6003a8ce50b400d20fa460c03169ad7baa90d47a912917c36dfe2b","urls":["bzz-raw://cc0cc39c40ea23d3c46e8517e19ebdd877719d3159fa032f2a91802cdd205c79","dweb:/ipfs/QmSoNh7HTkD4TJcBkBKSGSPMMpLUZKE7s9f2G6mjdaJywg"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/TransientSlot.sol":{"keccak256":"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1","urls":["bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889","dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"node_modules/@uniswap/swap-router-contracts/contracts/interfaces/IV3SwapRouter.sol":{"keccak256":"0xa2300af2b82af292216a8f3f301a86e65463655fff9fb791515e3fd2ccf4a14c","urls":["bzz-raw://a0a9bece58527fb5c1773d86666c7a71884a78f413e230dfa8c8a7f8ea564ef9","dweb:/ipfs/QmbDhvpoZJN1KntxUUxkYV89RPTwqVBiyHBkvVh4QHSveo"],"license":"GPL-2.0-or-later"},"node_modules/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol":{"keccak256":"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69","urls":["bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652","dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS"],"license":"GPL-2.0-or-later"},"node_modules/@uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol":{"keccak256":"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274","urls":["bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407","dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp"],"license":"GPL-2.0-or-later"},"node_modules/account-abstraction/contracts/core/Helpers.sol":{"keccak256":"0x6247e011a6cb0b263b3aa098822977181674d91b62e5bdfe04c6e66f72da25d6","urls":["bzz-raw://ca829a69b3fbc74fec8e140d42a2bf93bc3512609272f031c846470f61f0ab7e","dweb:/ipfs/QmP3r3MBgAN39KeVB1rCGJWwcBcotNt26ALtAR54poQ1Jc"],"license":"GPL-3.0"},"node_modules/account-abstraction/contracts/core/UserOperationLib.sol":{"keccak256":"0x9d50ece985d35f82e33e5da417595c86fac10449e3d10895d08363d33aad454b","urls":["bzz-raw://b1d11cc364c8bf7ed5388268c895b5ffed16e87dfbcb320ddeeba5e7974315dc","dweb:/ipfs/QmYSpvjxEjweietQrYZagwQ52ipy7eXx4rwvnTzXKeGeMS"],"license":"GPL-3.0"},"node_modules/account-abstraction/contracts/interfaces/IAggregator.sol":{"keccak256":"0xf100d6fcc0c3b450b13e979b6a42c628c292a1bc340eccc2e7796b80e3975588","urls":["bzz-raw://192938b5b27234d35c8098a319e879363c79f750eea4d0e409dc889a8ce5b155","dweb:/ipfs/QmURpaJFPqEtkKP2ngBsgZhAGN8wAWh5XQpYmCkiz4Urz5"],"license":"GPL-3.0"},"node_modules/account-abstraction/contracts/interfaces/IEntryPoint.sol":{"keccak256":"0x1972a5fcb3a808b58c85af5741949ef6af11ab0debd3ae8c708171ae1ae0d0c4","urls":["bzz-raw://baa9837ae73b9e2362a47d42d081d7c0f3d8e878e5edb381117d94a6968949c9","dweb:/ipfs/QmUmo6FUE7fv5z1WzW1YFjxp8PqaeN2JrEee9au59w3Xhe"],"license":"GPL-3.0"},"node_modules/account-abstraction/contracts/interfaces/INonceManager.sol":{"keccak256":"0xd575af0f6ebbd5f0b2933307d44cd7b4e03a69f4b817a67db5409bd3c89aeecb","urls":["bzz-raw://3b1e2dea9b05cfba9d13339ed16d96457dc861013cc4f3f35b71a80f82448db3","dweb:/ipfs/QmVaGy5uGDMSiU2SzyokTjoHFyb39VVG5wtaM9KTnHyZSk"],"license":"GPL-3.0"},"node_modules/account-abstraction/contracts/interfaces/IPaymaster.sol":{"keccak256":"0x49d8dbf8a85b006bcd89bbc40e4e9e113997cc016007de85263bdae70572d07f","urls":["bzz-raw://bc0d83804c1b795d5c216b3518cd176c48f90db28550f267cbd89746d6b476c8","dweb:/ipfs/QmNdCm4c6hnt7f6Q8q21QjtCNZWWRUaMVEYnQHEv68VnKt"],"license":"GPL-3.0"},"node_modules/account-abstraction/contracts/interfaces/IStakeManager.sol":{"keccak256":"0xbe5ca9e7f254d031687419e7b96ef48c9c63e9398bbe992dc72ffc6dc14e0a04","urls":["bzz-raw://1fffec71c38627a26fabb423350148009579f092623fb02b471a12d973763a00","dweb:/ipfs/QmRBi31QEYXHj3x1AnQ2jKa2eziZH1b9av396P3b4dw6bj"],"license":"GPL-3.0-only"},"node_modules/account-abstraction/contracts/interfaces/PackedUserOperation.sol":{"keccak256":"0x1129b46381db68eddbc5cb49e50664667b66b03c480453858e7b25eabe444359","urls":["bzz-raw://499a948aba60480dba6e25c763b8d918f1c246eb7a3302e04f493e080f3295be","dweb:/ipfs/QmeRhhswf4NACcBKam2PyjpTP2ddSm648kah5kkQJsvwz3"],"license":"GPL-3.0"},"node_modules/solady/src/auth/Ownable.sol":{"keccak256":"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3","urls":["bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3","dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs"],"license":"MIT"},"node_modules/solady/src/utils/ECDSA.sol":{"keccak256":"0x5a37fbc86ff99139e1cffad4ec05ffeeef17c1d1401113f107665d08a6abe7df","urls":["bzz-raw://4253a9d0cf4eab99f858fe798904f02ddaabfca3133c07a6314dc479ddd2e217","dweb:/ipfs/QmXeK8yCQ8G4KsqkiP2Yewi2kPV9vdpUU9Qi1xcdX92p8v"],"license":"MIT"},"node_modules/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x7d0de1ff3be5dc32635283280b000d4794015a1b61d7dae7f3ff7b0721b07210","urls":["bzz-raw://e307c9eece677565e7d584ee77c56134b5db38a70f557f9d2b1b308219276c0c","dweb:/ipfs/QmTEtqaTFgRBFGpJyb5o4v2w8yrSpcNThov4bNpcLr2tTR"],"license":"MIT"},"node_modules/solady/src/utils/SignatureCheckerLib.sol":{"keccak256":"0x0eb1575bafc5537fcb4bba519123c694db66840d7a13b7d3b867c55bf95e9c8b","urls":["bzz-raw://33b81539b6c6901660ab7c134789178146f18622813de5bc984d4c6dad7b13e6","dweb:/ipfs/QmNdG7Y74GbymWqbhMbMY92AHYxLug9sR5gNWfzwB7hM1b"],"license":"MIT"}},"version":1},"id":8} \ No newline at end of file diff --git a/scripts/foundry/DeployGasdaddy.s.sol b/scripts/foundry/DeployGasdaddy.s.sol index d0ba262..b61cf55 100644 --- a/scripts/foundry/DeployGasdaddy.s.sol +++ b/scripts/foundry/DeployGasdaddy.s.sol @@ -385,6 +385,8 @@ contract DeployGasdaddy is Script { new IBiconomyTokenPaymaster.TokenInfo[](0) ); + // SKIP BERACHAIN AS THERE's NO ETH/USD PRICE FEED THERE + // ANVIL MockOracle mockNativeOracle; if (block.chainid == 31337) {