From 31350107770e53a2f5eeb1f671456f4262051a6c Mon Sep 17 00:00:00 2001 From: Filipp Makarov Date: Thu, 12 Dec 2024 14:35:40 +0300 Subject: [PATCH] log predeploy --- .../BiconomySponsorshipPaymaster.json | 2 +- .../BiconomyTokenPaymaster/BiconomyTokenPaymaster.json | 2 +- scripts/bash-deploy/deploy-gasdaddy.sh | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/scripts/bash-deploy/artifacts/BiconomySponsorshipPaymaster/BiconomySponsorshipPaymaster.json b/scripts/bash-deploy/artifacts/BiconomySponsorshipPaymaster/BiconomySponsorshipPaymaster.json index b11e16c..d56201e 100644 --- a/scripts/bash-deploy/artifacts/BiconomySponsorshipPaymaster/BiconomySponsorshipPaymaster.json +++ b/scripts/bash-deploy/artifacts/BiconomySponsorshipPaymaster/BiconomySponsorshipPaymaster.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"entryPointArg","type":"address","internalType":"contract IEntryPoint"},{"name":"verifyingSignerArg","type":"address","internalType":"address"},{"name":"feeCollectorArg","type":"address","internalType":"address"},{"name":"unaccountedGasArg","type":"uint256","internalType":"uint256"},{"name":"paymasterIdWithdrawalDelayArg","type":"uint256","internalType":"uint256"},{"name":"minDepositArg","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"addStake","inputs":[{"name":"unstakeDelaySec","type":"uint32","internalType":"uint32"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"cancelOwnershipHandover","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"cancelWithdrawalRequest","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"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":"depositFor","inputs":[{"name":"paymasterId","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"entryPoint","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IEntryPoint"}],"stateMutability":"view"},{"type":"function","name":"executeWithdrawalRequest","inputs":[{"name":"paymasterId","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"feeCollector","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getBalance","inputs":[{"name":"paymasterId","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"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":"paymasterId","type":"address","internalType":"address"},{"name":"validUntil","type":"uint48","internalType":"uint48"},{"name":"validAfter","type":"uint48","internalType":"uint48"},{"name":"priceMarkup","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"minDeposit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"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":"parsePaymasterAndData","inputs":[{"name":"paymasterAndData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"paymasterId","type":"address","internalType":"address"},{"name":"validUntil","type":"uint48","internalType":"uint48"},{"name":"validAfter","type":"uint48","internalType":"uint48"},{"name":"priceMarkup","type":"uint32","internalType":"uint32"},{"name":"paymasterValidationGasLimit","type":"uint128","internalType":"uint128"},{"name":"paymasterPostOpGasLimit","type":"uint128","internalType":"uint128"},{"name":"signature","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"paymasterIdBalances","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"paymasterIdWithdrawalDelay","inputs":[],"outputs":[{"name":"","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":"refundBalances","inputs":[{"name":"paymasterIds","type":"address[]","internalType":"address[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"requestOwnershipHandover","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setFeeCollector","inputs":[{"name":"newFeeCollector","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setMinDeposit","inputs":[{"name":"newMinDeposit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setSigner","inputs":[{"name":"newVerifyingSigner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setTrustedPaymasterId","inputs":[{"name":"paymasterId","type":"address","internalType":"address"},{"name":"isTrusted","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setUnaccountedGas","inputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"submitWithdrawalRequest","inputs":[{"name":"withdrawAddress","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"unlockStake","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"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":"nonpayable"},{"type":"function","name":"withdrawEth","inputs":[{"name":"recipient","type":"address","internalType":"address payable"},{"name":"amount","type":"uint256","internalType":"uint256"}],"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":"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":"FeeCollectorChanged","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":"FixedPriceMarkupChanged","inputs":[{"name":"oldValue","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"newValue","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"GasBalanceDeducted","inputs":[{"name":"_paymasterId","type":"address","indexed":true,"internalType":"address"},{"name":"_charge","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"_premium","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"GasDeposited","inputs":[{"name":"_paymasterId","type":"address","indexed":true,"internalType":"address"},{"name":"_value","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"GasWithdrawn","inputs":[{"name":"_paymasterId","type":"address","indexed":true,"internalType":"address"},{"name":"_to","type":"address","indexed":true,"internalType":"address"},{"name":"_value","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MinDepositChanged","inputs":[{"name":"oldValue","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"newValue","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":"Received","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"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":"TrustedPaymasterIdSet","inputs":[{"name":"paymasterId","type":"address","indexed":true,"internalType":"address"},{"name":"isTrusted","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"UnaccountedGasChanged","inputs":[{"name":"oldValue","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"newValue","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"VerifyingSignerChanged","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":"event","name":"WithdrawalRequestCancelledFor","inputs":[{"name":"paymasterId","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"WithdrawalRequestSubmitted","inputs":[{"name":"withdrawAddress","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AlreadyInitialized","inputs":[]},{"type":"error","name":"CanNotWithdrawToZeroAddress","inputs":[]},{"type":"error","name":"CanNotWithdrawZeroAmount","inputs":[]},{"type":"error","name":"DepositCanNotBeZero","inputs":[]},{"type":"error","name":"FeeCollectorCanNotBeContract","inputs":[]},{"type":"error","name":"FeeCollectorCanNotBeZero","inputs":[]},{"type":"error","name":"InsufficientFunds","inputs":[]},{"type":"error","name":"InsufficientFundsForPaymasterId","inputs":[]},{"type":"error","name":"InsufficientFundsInGasTank","inputs":[]},{"type":"error","name":"InvalidArrayLengths","inputs":[]},{"type":"error","name":"InvalidPriceMarkup","inputs":[]},{"type":"error","name":"InvalidSignatureLength","inputs":[]},{"type":"error","name":"LowDeposit","inputs":[]},{"type":"error","name":"NewOwnerIsZeroAddress","inputs":[]},{"type":"error","name":"NoHandoverRequest","inputs":[]},{"type":"error","name":"NoRequestSubmitted","inputs":[]},{"type":"error","name":"PaymasterIdCanNotBeZero","inputs":[]},{"type":"error","name":"PostOpGasLimitTooLow","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"RequestNotClearedYet","inputs":[{"name":"clearanceTime","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SubmitRequestInstead","inputs":[]},{"type":"error","name":"UnaccountedGasTooHigh","inputs":[]},{"type":"error","name":"Unauthorized","inputs":[]},{"type":"error","name":"UseDepositForInstead","inputs":[]},{"type":"error","name":"VerifyingSignerCanNotBeContract","inputs":[]},{"type":"error","name":"VerifyingSignerCanNotBeZero","inputs":[]},{"type":"error","name":"WithdrawalFailed","inputs":[]}],"bytecode":{"object":"0x60a0604052346100b55760e0611f96803803809161001c826100b9565b60a039126100b55761006c60a05161003381610116565b60c05161003f81610116565b60e05161004b81610116565b6101005161005881610116565b610120519161014051936101605195610127565b604051611c6690816103308239608051818181610528015281816105d90152818161066e015281816106dd0152818161079301528181611161015281816113f7015261187a0152f35b5f80fd5b60a0601f91909101601f19168101906001600160401b038211908210176100df57604052565b634e487b7160e01b5f52604160045260245ffd5b601f909101601f19168101906001600160401b038211908210176100df57604052565b6001600160a01b038116036100b557565b95949291959390938060601b15610240576001600160a01b0316638b78c6d8198190555f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a36040516301ffc9a760e01b815263122a0e9b60e31b6004820152916020836024816001600160a01b0389165afa90811561023557610204976101ff966101c36101f5946101fa975f91610206575b506102e3565b6080526101d184838361024d565b5f55600180546001600160a01b0319166001600160a01b0392909216919091179055565b600255565b600355565b600455565b565b610228915060203d60201161022e575b61022081836100f3565b8101906102cb565b5f6101bd565b503d610216565b6040513d5f823e3d90fd5b637448fbae5f526004601cfd5b6001600160a01b03811661026a576381618de160e01b5f5260045ffd5b3b1561027f5763edc30c2760e01b5f5260045ffd5b6001600160a01b03811661029c57633fd0943d60e11b5f5260045ffd5b3b156102b157631f47525f60e21b5f5260045ffd5b620186a0106102bc57565b63313db2a560e11b5f5260045ffd5b908160209103126100b5575180151581036100b55790565b156102ea57565b60405162461bcd60e51b815260206004820152601e60248201527f49456e747279506f696e7420696e74657266616365206d69736d6174636800006044820152606490fdfe60806040526004361015610046575b3615610018575f80fd5b6040513481527f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f8852587460203392a2005b5f5f3560e01c80630396cb60146113c75780631b9a91a414611302578063205c2878146112d857806323d9ac9b146112b257806325692962146112675780633261fd581461107557806341b3d1851461105757806344004cc114610f5057806352b7512c14610ecb57806354d1f13d14610e8557806359ffb13014610d845780636c19e78314610cfc578063715018a614610cb157806373acf54214610c525780637c627b2114610b005780638c253a3914610a4c5780638da5cb5b14610a215780638fcc9cfb146109db57806394d4ad6014610917578063a40a7ddc146102ef578063a42dce8014610874578063aa67c9191461071f578063ab94cad714610701578063b0d691fe146106bd578063bb9fe6bf1461064a578063c23a5cea146105ac578063c399ec88146104fc578063c415b95c146104d5578063d0e30db0146104ba578063def042571461042a578063e714a028146103d2578063f04e283e14610384578063f0c12a3214610366578063f2fde38b14610327578063f8b2cb4f146102ef578063f8cf826d1461021d5763fee81cf4146101e8575061000e565b3461021a57602036600319011261021a57610201611467565b9063389a75e1600c5252602080600c2054604051908152f35b80fd5b50604036600319011261021a5760043567ffffffffffffffff81116102eb5761024a9036906004016114c1565b9060243567ffffffffffffffff81116102e75761026b9036906004016114c1565b906102746117d3565b8184036102d857845b848110610288578580f35b6102938184846117af565b35906102a08187876117af565b35916001600160a01b0383168093036102d457600192885260056020526102cc60408920918254611560565b90550161027d565b8780fd5b63a9854bc960e01b8552600485fd5b8380fd5b5080fd5b503461021a57602036600319011261021a5760406020916001600160a01b03610316611467565b168152600583522054604051908152f35b50602036600319011261021a5761033c611467565b6103446117d3565b8060601b156103595761035690611c1b565b80f35b637448fbae82526004601cfd5b503461021a578060031936011261021a576020600354604051908152f35b50602036600319011261021a57610399611467565b6103a16117d3565b63389a75e1600c528082526020600c20805442116103c55790826103569255611c1b565b636f5e881883526004601cfd5b503461021a578060031936011261021a5733815260076020525f60026040832082815582600182015501557fe227a0e51918df92c3a9837808b4825847fa7c14cbacd937b650c337e91712416020604051338152a180f35b503461021a5760a036600319011261021a5760043567ffffffffffffffff81116102eb5761012060031982360301126102eb5761046561147d565b6044359065ffffffffffff821682036102e7576064359265ffffffffffff841684036104b6576084359463ffffffff8616860361021a5760206104ae87878787876004016116b3565b604051908152f35b8480fd5b508060031936011261021a5763302076c960e01b8152600490fd5b503461021a578060031936011261021a5760206001600160a01b0360015416604051908152f35b503461021a578060031936011261021a576040516370a0823160e01b81523060048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156105a157829161056b575b602082604051908152f35b90506020813d602011610599575b8161058660209383611522565b810103126102eb5760209150515f610560565b3d9150610579565b6040513d84823e3d90fd5b503461021a57602036600319011261021a57806105c7611467565b6105cf6117d3565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b15610646576001600160a01b036024849283604051958694859363611d2e7560e11b85521660048401525af180156105a1576106355750f35b8161063f91611522565b61021a5780f35b5050fd5b503461021a578060031936011261021a576106636117d3565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b156106ba5781809160046040518094819363bb9fe6bf60e01b83525af180156105a1576106355750f35b50fd5b503461021a578060031936011261021a5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461021a578060031936011261021a576020600254604051908152f35b50602036600319011261021a576001600160a01b0361073c611467565b6107446117ef565b168015610865573415610856578082526005602052610767346040842054611560565b6004541161084757808252600560205260408220610786348254611560565b9055816001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b156102eb57816024916040519283809263b760faf960e01b825230600483015234905af180156105a157610832575b505034907f1dbbf474736d6415d6a265fabee708fe6e988f6fd0c9d870ded36cab380898dd8380a3807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b8161083c91611522565b6102eb57815f6107e4565b6305d163b560e11b8252600482fd5b6333a6177160e11b8252600482fd5b63016e7bd760e61b8252600482fd5b50602036600319011261021a57610889611467565b6108916117d3565b803b610908576001600160a01b031680156108f957600154908073ffffffffffffffffffffffffffffffffffffffff198316176001556001600160a01b033392167fc6bc29e495f43077b898bfa29b8be68f4c836ccf780f9f7782f916dfd3874f158480a480f35b633fd0943d60e11b8252600482fd5b631f47525f60e21b8252600482fd5b503461021a57602036600319011261021a5760043567ffffffffffffffff81116102eb57610949903690600401611493565b610952916115c4565b959794938694604094929451996001600160a01b038b9a168a5265ffffffffffff1660208a015265ffffffffffff16604089015263ffffffff1660608801526001600160801b031660808701526001600160801b031660a086015260c0850160e090528160e08601526101008501378183016101000152601f1990601f01168101036101000190f35b50602036600319011261021a576004356109f36117d3565b806004547fcacd94bd1e7bb1185c816a740d9439bc8eff8159f6f4ffad8d306b5aca2ebd928480a360045580f35b503461021a578060031936011261021a576020638b78c6d819546001600160a01b0360405191168152f35b50604036600319011261021a57610a61611467565b60243590811515809203610afc576001600160a01b0390610a806117d3565b16908115610aed5781835260066020528060ff604085205416151503610aa4578280f35b60207fd20b41feac4c77c85eaf676a2d91056dc1b6ba4cc02253745a3152ca4f23d87991838552600682526040852060ff1981541660ff8316179055604051908152a25f808280f35b63016e7bd760e61b8352600483fd5b8280fd5b503461021a57608036600319011261021a576003600435101561021a5760243567ffffffffffffffff81116102eb57610b3f6060913690600401611493565b90809291610b4b611870565b810103126102eb578035906001600160a01b038216809203610afc5760208101359063ffffffff82168092036102e7576040013591610bb2620f4240610baa610ba3610b9b6064356002546118e7565b604435611560565b94856118e7565b049283611581565b926001600160a01b03600154168552600560205260408520610bd5858254611560565b90558280821115610c2a57610be991611581565b8185526005602052610c0060408620918254611560565b90555b7f683b3fc4c8726e960b5b0aa3838c1071e2a9b7045fcd4dfc953fc1092923f5378480a480f35b90610c3491611581565b8185526005602052610c4b60408620918254611581565b9055610c03565b50602036600319011261021a57600435610c6a6117d3565b620186a08111610ca257600254816002557f33ddf610723ec48e858790576fb3294cc312fcbd937c1475d53e3673145488eb8380a380f35b63313db2a560e11b8252600482fd5b508060031936011261021a57610cc56117d3565b80638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380638b78c6d8195580f35b50602036600319011261021a57610d11611467565b610d196117d3565b803b610d75576001600160a01b0381168015610d66576001600160a01b0383541691835533917fe1f62c0e6d7bb6d470828565415bf2e87dbfea50e52d2d753788b529bd0c6d628480a480f35b6381618de160e01b8352600483fd5b63edc30c2760e01b8252600482fd5b503461021a57604036600319011261021a57610d9e611467565b6001600160a01b03166024358115610e76578015610e6757338352600560205260408320548111610e58577fe1a007fa1edbdbd989490b46b37c8a7342e8f2f1162a20078a80a9528ab0a149916040918251610df9816114f2565b818152600260208201848152858301904282523389526007602052868920935184556001600160a01b036001850191511673ffffffffffffffffffffffffffffffffffffffff198254161790555191015582519182526020820152a180f35b6345f34ee560e01b8352600483fd5b6339d3420560e11b8352600483fd5b6392bc9df360e01b8352600483fd5b508060031936011261021a5763389a75e1600c52338152806020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c928280a280f35b503461021a57606036600319011261021a5760043567ffffffffffffffff81116102eb5761012060031982360301126102eb576020610f1a606092610f0e611870565b604435906004016118fa565b604092919251948593604085528051938491826040880152018686015e8383018501526020830152601f01601f19168101030190f35b503461021a57606036600319011261021a576004356001600160a01b0381168091036102eb57610f7e61147d565b60443591610f8a6117d3565b610f926117ef565b6001600160a01b03821691821561104857601452826034526fa9059cbb00000000000000000000000084526020846044601082855af1806001865114161561102a575b50836034527f4e5ba90310f16273bb12f3c33f23905e573b86df58a2895a525285d083bf043f6020604051338152a4807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b3d823b1517101561103b575f610fd5565b6390b8ec1884526004601cfd5b6392bc9df360e01b8552600485fd5b503461021a578060031936011261021a576020600454604051908152f35b503461021a57602036600319011261021a5761108f611467565b6110976117ef565b6001600160a01b03811690818352600760205260408320604051916110bb836114f2565b8154835260026001600160a01b036001840154169260208501938452015460408401908082521561125857516110fa916110f49061184a565b90611560565b8042106112465750828452600560205260408420548251818111156112415750805b8084521561123257825161112f91611581565b8385526005602052604085205582845260076020525f6002604086208281558260018201550155836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166001600160a01b038351168451823b156102e7576044849283604051958694859363040b850f60e31b8552600485015260248401525af180156105a15761121d575b50506001600160a01b039051169051917f926a144b6fffc1d73f115b81af7ec66a7c12aed0ff73197c39a683753fc1d9258480a4807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b8161122791611522565b6102e757835f6111c3565b6339d3420560e11b8552600485fd5b61111c565b63fb817d3d60e01b8552600452602484fd5b6336fbdb4f60e01b8652600486fd5b508060031936011261021a5763389a75e1600c523381526202a30042016020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d8280a280f35b503461021a578060031936011261021a576001600160a01b036020915416604051908152f35b503461021a57604036600319011261021a576004906112f5611467565b5063ad42eb9960e01b8152fd5b50604036600319011261021a57611317611467565b6001600160a01b036024359161132b6117d3565b6113336117ef565b168280808085855af13d156113c2573d61134c81611544565b9061135a6040519283611522565b81528460203d92013e5b156113b3577f8455ae6be5d92f1df1c3c1484388e247a36c7e60d72055ae216dbc258f257d4b8380a3807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b6327fcd9d160e01b8352600483fd5b611364565b5060203660031901126114635760043563ffffffff8116809103611463576113ed6117d3565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b15611463575f90602460405180948193621cb65b60e51b8352600483015234905af180156114585761144a575080f35b61145691505f90611522565b005b6040513d5f823e3d90fd5b5f80fd5b600435906001600160a01b038216820361146357565b602435906001600160a01b038216820361146357565b9181601f840112156114635782359167ffffffffffffffff8311611463576020838186019501011161146357565b9181601f840112156114635782359167ffffffffffffffff8311611463576020808501948460051b01011161146357565b6060810190811067ffffffffffffffff82111761150e57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761150e57604052565b67ffffffffffffffff811161150e57601f01601f191660200190565b9190820180921161156d57565b634e487b7160e01b5f52601160045260245ffd5b9190820391821161156d57565b919091356001600160d01b0319811692600681106115aa575050565b6001600160d01b0319929350829060060360031b1b161690565b9190918260481161146357603481013560601c9280604e11611463576115ee60066048840161158e565b60d01c9281605411611463576116086006604e850161158e565b60d01c928260581161146357605481013560e01c926024811061146357601482013560801c926034821061146357602483013560801c92605801916057190190565b903590601e1981360301821215611463570180359067ffffffffffffffff82116114635760200191813603831361146357565b92919261168982611544565b916116976040519384611522565b829481845281830111611463578281602093845f960137010152565b929093916116ce6116c7604086018661164a565b369161167d565b60208151910120946116e66116c7606087018761164a565b60208151910120946116fb60e082018261164a565b6034116114635760405196602088019883356001600160a01b03168a52602084013560408a015260608901526080880152608082013560a08801526014013560c087015260a081013560e087015260c0013561010086015246610120860152306101408601526001600160a01b031661016085015265ffffffffffff1661018084015265ffffffffffff166101a083015263ffffffff166101c08201526101c081526117a96101e082611522565b51902090565b91908110156117bf5760051b0190565b634e487b7160e01b5f52603260045260245ffd5b638b78c6d8195433036117e257565b6382b429005f526004601cfd5b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c61183b5760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d565b633ee5aeb560e01b5f5260045ffd5b6001600160a01b03165f52600660205260ff60405f20541661186c5760035490565b5f90565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036118a257565b60405162461bcd60e51b815260206004820152601560248201527f53656e646572206e6f7420456e747279506f696e7400000000000000000000006044820152606490fd5b8181029291811591840414171561156d57565b919060609260e0810190611917611911838361164a565b906115c4565b60409198969a95979c9350809250141580611c10575b611c01576002549661193f898761164a565b603411611463576024013560801c8811611bf2576119949061196585898f8e908b6116b3565b6020527b19457468657265756d205369676e6564204d6573736167653a0a33325f52603c60042092369161167d565b915f92604051926020820191805180604014611bb457604114611b7e5750505050505b6001600160a01b03805f54169116145f14611b785760015b15611b385763ffffffff1694621e848086118015611b2c575b611b1d576119f6908361164a565b6034116114635760246001600160801b0391013560801c166001600160801b03608084013516016001600160801b03811161156d576001600160801b03600a911602916001600160801b03831692830361156d57611a7b611a80926110f4620f4240956064611a746001600160801b0360c08d9801351680936118e7565b04986118e7565b6118e7565b046001600160a01b03611a938483611560565b971696875f52600560205260405f205410611b0e5765ffffffffffff60a01b93611ac66001600160d01b03199483611560565b885f526005602052611add60405f20918254611581565b90556040519760208901526040880152606087015260608652611b01608087611522565b60d01b169160a01b161790565b632771c53960e01b5f5260045ffd5b630a02dbf760e21b5f5260045ffd5b50620f424086106119e8565b505050600194955065ffffffffffff60a01b92506001600160d01b0319915060d01b169160a01b16171790604051611b71602082611522565b5f81529190565b5f6119cf565b808401515f1a60205260400151835292935090915b5f52516040526020604060805f60015afa505f81523d1851906040526119b7565b507f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff91929394955060400151601b8160ff1c01602052168352611b93565b630359a00f60e01b5f5260045ffd5b634be6321b60e01b5f5260045ffd5b50604181141561192d565b6001600160a01b031680638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3638b78c6d8195556fea164736f6c634300081b000a","sourceMap":"1529:19054:7:-:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1529:19054:7;;;;;;;;;-1:-1:-1;;1529:19054:7;;;;-1:-1:-1;;;;;1529:19054:7;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1529:19054:7;;;;;-1:-1:-1;1529:19054:7;;;;;;-1:-1:-1;;1529:19054:7;;;;-1:-1:-1;;;;;1529:19054:7;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1529:19054:7;;;;;:::o;2588:694::-;;;;;;;;;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;1529:19054:7;;-1:-1:-1;;;3843:80:0;;-1:-1:-1;;;3843:80:0;;;1529:19054:7;;;;3843:80:0;1529:19054:7;-1:-1:-1;;;;;1529:19054:7;;3843:80:0;;;;;;;3249:26:7;3843:80:0;3181:58:7;3843:80:0;3822:157;3097:30:7;3843:80:0;3137:34:7;3843:80:0;-1:-1:-1;3843:80:0;;;2588:694:7;3822:157:0;;:::i;:::-;1159:26;;2963:17:7;;;;;:::i;:::-;-1:-1:-1;2991:97:7;1529:19054;;;-1:-1:-1;;;;;;1529:19054:7;-1:-1:-1;;;;;1529:19054:7;;;;;;;;;;;3097:30;3137:34;1529:19054;;3137:34;3181:58;1529:19054;;3181:58;3843:80:0;1529:19054:7;;3249:26;2588:694::o;3843:80:0:-;;;;1529:19054:7;3843:80:0;1529:19054:7;3843:80:0;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1529:19054:7;;;-1:-1:-1;1529:19054:7;;;;;198:181:10;;;;;;;19381:708:7;-1:-1:-1;;;;;1529:19054:7;;;;19625:29;;;19600:1;19625:29;;19600:1;19625:29;19566:517;6221:74:0;6311:8;19675:31:7;;19729:33;;;19600:1;19729:33;;19600:1;19729:33;19671:412;-1:-1:-1;;;;;1529:19054:7;;;;19835:26;;;19600:1;19835:26;;19600:1;19835:26;19779:304;6221:74:0;6311:8;19882:28:7;;19933:30;;;19600:1;19933:30;;19600:1;19933:30;19878:205;2371:7;-1:-1:-1;19980:103:7;;19381:708::o;19980:103::-;20049:23;;;19600:1;20049:23;;19600:1;20049:23;1529:19054;;;;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;1529:19054:7;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610046575b3615610018575f80fd5b6040513481527f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f8852587460203392a2005b5f5f3560e01c80630396cb60146113c75780631b9a91a414611302578063205c2878146112d857806323d9ac9b146112b257806325692962146112675780633261fd581461107557806341b3d1851461105757806344004cc114610f5057806352b7512c14610ecb57806354d1f13d14610e8557806359ffb13014610d845780636c19e78314610cfc578063715018a614610cb157806373acf54214610c525780637c627b2114610b005780638c253a3914610a4c5780638da5cb5b14610a215780638fcc9cfb146109db57806394d4ad6014610917578063a40a7ddc146102ef578063a42dce8014610874578063aa67c9191461071f578063ab94cad714610701578063b0d691fe146106bd578063bb9fe6bf1461064a578063c23a5cea146105ac578063c399ec88146104fc578063c415b95c146104d5578063d0e30db0146104ba578063def042571461042a578063e714a028146103d2578063f04e283e14610384578063f0c12a3214610366578063f2fde38b14610327578063f8b2cb4f146102ef578063f8cf826d1461021d5763fee81cf4146101e8575061000e565b3461021a57602036600319011261021a57610201611467565b9063389a75e1600c5252602080600c2054604051908152f35b80fd5b50604036600319011261021a5760043567ffffffffffffffff81116102eb5761024a9036906004016114c1565b9060243567ffffffffffffffff81116102e75761026b9036906004016114c1565b906102746117d3565b8184036102d857845b848110610288578580f35b6102938184846117af565b35906102a08187876117af565b35916001600160a01b0383168093036102d457600192885260056020526102cc60408920918254611560565b90550161027d565b8780fd5b63a9854bc960e01b8552600485fd5b8380fd5b5080fd5b503461021a57602036600319011261021a5760406020916001600160a01b03610316611467565b168152600583522054604051908152f35b50602036600319011261021a5761033c611467565b6103446117d3565b8060601b156103595761035690611c1b565b80f35b637448fbae82526004601cfd5b503461021a578060031936011261021a576020600354604051908152f35b50602036600319011261021a57610399611467565b6103a16117d3565b63389a75e1600c528082526020600c20805442116103c55790826103569255611c1b565b636f5e881883526004601cfd5b503461021a578060031936011261021a5733815260076020525f60026040832082815582600182015501557fe227a0e51918df92c3a9837808b4825847fa7c14cbacd937b650c337e91712416020604051338152a180f35b503461021a5760a036600319011261021a5760043567ffffffffffffffff81116102eb5761012060031982360301126102eb5761046561147d565b6044359065ffffffffffff821682036102e7576064359265ffffffffffff841684036104b6576084359463ffffffff8616860361021a5760206104ae87878787876004016116b3565b604051908152f35b8480fd5b508060031936011261021a5763302076c960e01b8152600490fd5b503461021a578060031936011261021a5760206001600160a01b0360015416604051908152f35b503461021a578060031936011261021a576040516370a0823160e01b81523060048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156105a157829161056b575b602082604051908152f35b90506020813d602011610599575b8161058660209383611522565b810103126102eb5760209150515f610560565b3d9150610579565b6040513d84823e3d90fd5b503461021a57602036600319011261021a57806105c7611467565b6105cf6117d3565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b15610646576001600160a01b036024849283604051958694859363611d2e7560e11b85521660048401525af180156105a1576106355750f35b8161063f91611522565b61021a5780f35b5050fd5b503461021a578060031936011261021a576106636117d3565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b156106ba5781809160046040518094819363bb9fe6bf60e01b83525af180156105a1576106355750f35b50fd5b503461021a578060031936011261021a5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461021a578060031936011261021a576020600254604051908152f35b50602036600319011261021a576001600160a01b0361073c611467565b6107446117ef565b168015610865573415610856578082526005602052610767346040842054611560565b6004541161084757808252600560205260408220610786348254611560565b9055816001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b156102eb57816024916040519283809263b760faf960e01b825230600483015234905af180156105a157610832575b505034907f1dbbf474736d6415d6a265fabee708fe6e988f6fd0c9d870ded36cab380898dd8380a3807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b8161083c91611522565b6102eb57815f6107e4565b6305d163b560e11b8252600482fd5b6333a6177160e11b8252600482fd5b63016e7bd760e61b8252600482fd5b50602036600319011261021a57610889611467565b6108916117d3565b803b610908576001600160a01b031680156108f957600154908073ffffffffffffffffffffffffffffffffffffffff198316176001556001600160a01b033392167fc6bc29e495f43077b898bfa29b8be68f4c836ccf780f9f7782f916dfd3874f158480a480f35b633fd0943d60e11b8252600482fd5b631f47525f60e21b8252600482fd5b503461021a57602036600319011261021a5760043567ffffffffffffffff81116102eb57610949903690600401611493565b610952916115c4565b959794938694604094929451996001600160a01b038b9a168a5265ffffffffffff1660208a015265ffffffffffff16604089015263ffffffff1660608801526001600160801b031660808701526001600160801b031660a086015260c0850160e090528160e08601526101008501378183016101000152601f1990601f01168101036101000190f35b50602036600319011261021a576004356109f36117d3565b806004547fcacd94bd1e7bb1185c816a740d9439bc8eff8159f6f4ffad8d306b5aca2ebd928480a360045580f35b503461021a578060031936011261021a576020638b78c6d819546001600160a01b0360405191168152f35b50604036600319011261021a57610a61611467565b60243590811515809203610afc576001600160a01b0390610a806117d3565b16908115610aed5781835260066020528060ff604085205416151503610aa4578280f35b60207fd20b41feac4c77c85eaf676a2d91056dc1b6ba4cc02253745a3152ca4f23d87991838552600682526040852060ff1981541660ff8316179055604051908152a25f808280f35b63016e7bd760e61b8352600483fd5b8280fd5b503461021a57608036600319011261021a576003600435101561021a5760243567ffffffffffffffff81116102eb57610b3f6060913690600401611493565b90809291610b4b611870565b810103126102eb578035906001600160a01b038216809203610afc5760208101359063ffffffff82168092036102e7576040013591610bb2620f4240610baa610ba3610b9b6064356002546118e7565b604435611560565b94856118e7565b049283611581565b926001600160a01b03600154168552600560205260408520610bd5858254611560565b90558280821115610c2a57610be991611581565b8185526005602052610c0060408620918254611560565b90555b7f683b3fc4c8726e960b5b0aa3838c1071e2a9b7045fcd4dfc953fc1092923f5378480a480f35b90610c3491611581565b8185526005602052610c4b60408620918254611581565b9055610c03565b50602036600319011261021a57600435610c6a6117d3565b620186a08111610ca257600254816002557f33ddf610723ec48e858790576fb3294cc312fcbd937c1475d53e3673145488eb8380a380f35b63313db2a560e11b8252600482fd5b508060031936011261021a57610cc56117d3565b80638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380638b78c6d8195580f35b50602036600319011261021a57610d11611467565b610d196117d3565b803b610d75576001600160a01b0381168015610d66576001600160a01b0383541691835533917fe1f62c0e6d7bb6d470828565415bf2e87dbfea50e52d2d753788b529bd0c6d628480a480f35b6381618de160e01b8352600483fd5b63edc30c2760e01b8252600482fd5b503461021a57604036600319011261021a57610d9e611467565b6001600160a01b03166024358115610e76578015610e6757338352600560205260408320548111610e58577fe1a007fa1edbdbd989490b46b37c8a7342e8f2f1162a20078a80a9528ab0a149916040918251610df9816114f2565b818152600260208201848152858301904282523389526007602052868920935184556001600160a01b036001850191511673ffffffffffffffffffffffffffffffffffffffff198254161790555191015582519182526020820152a180f35b6345f34ee560e01b8352600483fd5b6339d3420560e11b8352600483fd5b6392bc9df360e01b8352600483fd5b508060031936011261021a5763389a75e1600c52338152806020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c928280a280f35b503461021a57606036600319011261021a5760043567ffffffffffffffff81116102eb5761012060031982360301126102eb576020610f1a606092610f0e611870565b604435906004016118fa565b604092919251948593604085528051938491826040880152018686015e8383018501526020830152601f01601f19168101030190f35b503461021a57606036600319011261021a576004356001600160a01b0381168091036102eb57610f7e61147d565b60443591610f8a6117d3565b610f926117ef565b6001600160a01b03821691821561104857601452826034526fa9059cbb00000000000000000000000084526020846044601082855af1806001865114161561102a575b50836034527f4e5ba90310f16273bb12f3c33f23905e573b86df58a2895a525285d083bf043f6020604051338152a4807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b3d823b1517101561103b575f610fd5565b6390b8ec1884526004601cfd5b6392bc9df360e01b8552600485fd5b503461021a578060031936011261021a576020600454604051908152f35b503461021a57602036600319011261021a5761108f611467565b6110976117ef565b6001600160a01b03811690818352600760205260408320604051916110bb836114f2565b8154835260026001600160a01b036001840154169260208501938452015460408401908082521561125857516110fa916110f49061184a565b90611560565b8042106112465750828452600560205260408420548251818111156112415750805b8084521561123257825161112f91611581565b8385526005602052604085205582845260076020525f6002604086208281558260018201550155836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166001600160a01b038351168451823b156102e7576044849283604051958694859363040b850f60e31b8552600485015260248401525af180156105a15761121d575b50506001600160a01b039051169051917f926a144b6fffc1d73f115b81af7ec66a7c12aed0ff73197c39a683753fc1d9258480a4807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b8161122791611522565b6102e757835f6111c3565b6339d3420560e11b8552600485fd5b61111c565b63fb817d3d60e01b8552600452602484fd5b6336fbdb4f60e01b8652600486fd5b508060031936011261021a5763389a75e1600c523381526202a30042016020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d8280a280f35b503461021a578060031936011261021a576001600160a01b036020915416604051908152f35b503461021a57604036600319011261021a576004906112f5611467565b5063ad42eb9960e01b8152fd5b50604036600319011261021a57611317611467565b6001600160a01b036024359161132b6117d3565b6113336117ef565b168280808085855af13d156113c2573d61134c81611544565b9061135a6040519283611522565b81528460203d92013e5b156113b3577f8455ae6be5d92f1df1c3c1484388e247a36c7e60d72055ae216dbc258f257d4b8380a3807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b6327fcd9d160e01b8352600483fd5b611364565b5060203660031901126114635760043563ffffffff8116809103611463576113ed6117d3565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b15611463575f90602460405180948193621cb65b60e51b8352600483015234905af180156114585761144a575080f35b61145691505f90611522565b005b6040513d5f823e3d90fd5b5f80fd5b600435906001600160a01b038216820361146357565b602435906001600160a01b038216820361146357565b9181601f840112156114635782359167ffffffffffffffff8311611463576020838186019501011161146357565b9181601f840112156114635782359167ffffffffffffffff8311611463576020808501948460051b01011161146357565b6060810190811067ffffffffffffffff82111761150e57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761150e57604052565b67ffffffffffffffff811161150e57601f01601f191660200190565b9190820180921161156d57565b634e487b7160e01b5f52601160045260245ffd5b9190820391821161156d57565b919091356001600160d01b0319811692600681106115aa575050565b6001600160d01b0319929350829060060360031b1b161690565b9190918260481161146357603481013560601c9280604e11611463576115ee60066048840161158e565b60d01c9281605411611463576116086006604e850161158e565b60d01c928260581161146357605481013560e01c926024811061146357601482013560801c926034821061146357602483013560801c92605801916057190190565b903590601e1981360301821215611463570180359067ffffffffffffffff82116114635760200191813603831361146357565b92919261168982611544565b916116976040519384611522565b829481845281830111611463578281602093845f960137010152565b929093916116ce6116c7604086018661164a565b369161167d565b60208151910120946116e66116c7606087018761164a565b60208151910120946116fb60e082018261164a565b6034116114635760405196602088019883356001600160a01b03168a52602084013560408a015260608901526080880152608082013560a08801526014013560c087015260a081013560e087015260c0013561010086015246610120860152306101408601526001600160a01b031661016085015265ffffffffffff1661018084015265ffffffffffff166101a083015263ffffffff166101c08201526101c081526117a96101e082611522565b51902090565b91908110156117bf5760051b0190565b634e487b7160e01b5f52603260045260245ffd5b638b78c6d8195433036117e257565b6382b429005f526004601cfd5b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c61183b5760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d565b633ee5aeb560e01b5f5260045ffd5b6001600160a01b03165f52600660205260ff60405f20541661186c5760035490565b5f90565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036118a257565b60405162461bcd60e51b815260206004820152601560248201527f53656e646572206e6f7420456e747279506f696e7400000000000000000000006044820152606490fd5b8181029291811591840414171561156d57565b919060609260e0810190611917611911838361164a565b906115c4565b60409198969a95979c9350809250141580611c10575b611c01576002549661193f898761164a565b603411611463576024013560801c8811611bf2576119949061196585898f8e908b6116b3565b6020527b19457468657265756d205369676e6564204d6573736167653a0a33325f52603c60042092369161167d565b915f92604051926020820191805180604014611bb457604114611b7e5750505050505b6001600160a01b03805f54169116145f14611b785760015b15611b385763ffffffff1694621e848086118015611b2c575b611b1d576119f6908361164a565b6034116114635760246001600160801b0391013560801c166001600160801b03608084013516016001600160801b03811161156d576001600160801b03600a911602916001600160801b03831692830361156d57611a7b611a80926110f4620f4240956064611a746001600160801b0360c08d9801351680936118e7565b04986118e7565b6118e7565b046001600160a01b03611a938483611560565b971696875f52600560205260405f205410611b0e5765ffffffffffff60a01b93611ac66001600160d01b03199483611560565b885f526005602052611add60405f20918254611581565b90556040519760208901526040880152606087015260608652611b01608087611522565b60d01b169160a01b161790565b632771c53960e01b5f5260045ffd5b630a02dbf760e21b5f5260045ffd5b50620f424086106119e8565b505050600194955065ffffffffffff60a01b92506001600160d01b0319915060d01b169160a01b16171790604051611b71602082611522565b5f81529190565b5f6119cf565b808401515f1a60205260400151835292935090915b5f52516040526020604060805f60015afa505f81523d1851906040526119b7565b507f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff91929394955060400151601b8160ff1c01602052168352611b93565b630359a00f60e01b5f5260045ffd5b634be6321b60e01b5f5260045ffd5b50604181141561192d565b6001600160a01b031680638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3638b78c6d8195556fea164736f6c634300081b000a","sourceMap":"1529:19054:7:-:0;;;;;;;;;-1:-1:-1;1529:19054:7;;;;;;;;;;3351:9;1529:19054;;3330:31;1529:19054;3339:10;3330:31;;1529:19054;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1529:19054:7;;;;;;:::i;:::-;11885:237:130;;;;;1529:19054:7;11885:237:130;;;;1529:19054:7;;;;;;;;;;-1:-1:-1;1529:19054:7;;-1:-1:-1;;1529:19054:7;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;12478:70:130;;;:::i;:::-;5431:37:7;;;5427:71;;5513:9;5524:23;;;;;;1529:19054;;;5549:3;5608:10;;;;;:::i;:::-;1529:19054;5588:15;;;;;;:::i;:::-;1529:19054;;-1:-1:-1;;;;;1529:19054:7;;;;;;;;;;;5568:19;1529:19054;;5568:50;1529:19054;;;;;;5568:50;:::i;:::-;1529:19054;;;5513:9;;1529:19054;;;;5427:71;-1:-1:-1;;;5477:21:7;;1529:19054;5477:21;;1529:19054;;;;;;;;;;;;;;;-1:-1:-1;;1529:19054:7;;;;;;;-1:-1:-1;;;;;1529:19054:7;;:::i;:::-;;;;11357:19;1529:19054;;;;;;;;;;;-1:-1:-1;1529:19054:7;;-1:-1:-1;;1529:19054:7;;;;;;:::i;:::-;12478:70:130;;:::i;:::-;8479:183;;;;;;8681:8;;;:::i;:::-;1529:19054:7;;8479:183:130;;;;1529:19054:7;8479:183:130;;1529:19054:7;;;;;;;;;;;;;;1935:41;1529:19054;;;;;;;;-1:-1:-1;1529:19054:7;;-1:-1:-1;;1529:19054:7;;;;;;:::i;:::-;12478:70:130;;:::i;:::-;10506:526;;;;;;1529:19054:7;10506:526:130;;;;;;;;;;11051:12;10506:526;;11051:12;:::i;10506:526::-;;;;1529:19054:7;10506:526:130;;1529:19054:7;;;;;;;;;;;;;10560:10;1529:19054;;10550:9;1529:19054;;-1:-1:-1;1529:19054:7;;;;;;;;;;;;;;10586:41;1529:19054;;;10560:10;1529:19054;;10586:41;1529:19054;;;;;;;;;-1:-1:-1;;1529:19054:7;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8070:22:7;;1529:19054;;8070:22;1529:19054;;;;;;;;;;;;;;-1:-1:-1;;;;;1867:27:7;1529:19054;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3569:35:0;;3598:4;1529:19054:7;3569:35:0;;1529:19054:7;;;3569:35:0;1529:19054:7;3569:10:0;-1:-1:-1;;;;;1529:19054:7;3569:35:0;;;;;;;;;;;1529:19054:7;;;;;;;;;3569:35:0;;;1529:19054:7;3569:35:0;;1529:19054:7;3569:35:0;;;;;;1529:19054:7;3569:35:0;;;:::i;:::-;;;1529:19054:7;;;;;;;;3569:35:0;;;;;;-1:-1:-1;3569:35:0;;;1529:19054:7;;;;;;;;;;;;;;;;-1:-1:-1;;1529:19054:7;;;;;;;:::i;:::-;12478:70:130;;:::i;:::-;-1:-1:-1;;;;;2107:10:0;1529:19054:7;2107:41:0;;;;;;-1:-1:-1;;;;;2107:41:0;1529:19054:7;;;;;;;;;;;;;2107:41:0;;1529:19054:7;;2107:41:0;;1529:19054:7;2107:41:0;;;;;;;;1529:19054:7;;2107:41:0;;;;;:::i;:::-;1529:19054:7;;2107:41:0;1529:19054:7;2107:41:0;1529:19054:7;;;;;;;;;;;;;;;;12478:70:130;;:::i;:::-;1770:10:0;-1:-1:-1;;;;;1770:10:0;1529:19054:7;1770:24:0;;;;;1529:19054:7;;;;;;;;;;;;;1770:24:0;;;;;;;;;;1529:19054:7;;1770:24:0;1529:19054:7;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;657:39:0;1529:19054:7;;;;;;;;;;;;;;;;;;1900:29;1529:19054;;;;;;;;-1:-1:-1;1529:19054:7;;-1:-1:-1;;1529:19054:7;;;;-1:-1:-1;;;;;1529:19054:7;;:::i;:::-;1181:103:49;;:::i;:::-;1529:19054:7;3686:25;;3682:63;;3759:9;:14;3755:48;;1529:19054;;;3817:19;1529:19054;;3817:44;3759:9;1529:19054;;;;3817:44;:::i;:::-;1529:19054;;-1:-1:-1;3813:82:7;;1529:19054;;;3817:19;1529:19054;;;;;3905:45;3759:9;1529:19054;;3905:45;:::i;:::-;1529:19054;;3960:10;-1:-1:-1;;;;;3960:10:7;1529:19054;3960:55;;;;;1529:19054;3960:55;1529:19054;;;;;;;;;;3960:55;;4009:4;1529:19054;3960:55;;1529:19054;3759:9;3960:55;;;;;;;;;1529:19054;3759:9;;;4030:36;;;;;3550:68:51;637:66:49;3550:68:51;1529:19054:7;;3960:55;;;;;:::i;:::-;1529:19054;;3960:55;;;;3813:82;-1:-1:-1;;;3883:12:7;;1529:19054;3883:12;;3755:48;-1:-1:-1;;;3782:21:7;;1529:19054;3782:21;;3682:63;-1:-1:-1;;;3720:25:7;;1529:19054;6030:25;3720;1529:19054;-1:-1:-1;1529:19054:7;;-1:-1:-1;;1529:19054:7;;;;;;:::i;:::-;12478:70:130;;:::i;:::-;6221:74:0;;7105:71:7;;-1:-1:-1;;;;;1529:19054:7;7190:29;;7186:68;;7290:12;1529:19054;;;-1:-1:-1;;1529:19054:7;;;7290:12;1529:19054;-1:-1:-1;;;;;7411:10:7;1529:19054;;7357:65;;;;1529:19054;;7186:68;-1:-1:-1;;;7228:26:7;;1529:19054;7228:26;;7105:71;-1:-1:-1;;;7146:30:7;;1529:19054;7146:30;;1529:19054;;;;;;;-1:-1:-1;;1529:19054:7;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1529:19054:7;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1529:19054:7;;;;;-1:-1:-1;;;;;1529:19054:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1529:19054:7;;-1:-1:-1;;1529:19054:7;;;;;;12478:70:130;;:::i;:::-;1529:19054:7;;;6537:44;;;;1529:19054;;;;;;;;;;;;;;;;;;6813:405:130;;11523:61;-1:-1:-1;;;;;1529:19054:7;;;;;;;;-1:-1:-1;1529:19054:7;;-1:-1:-1;;1529:19054:7;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;12478:70:130;;;:::i;:::-;1529:19054:7;5996:25;;;5992:63;;1529:19054;;;6069:20;1529:19054;;;;;;;;;;;6069:46;6065:186;;1529:19054;;;6065:186;1529:19054;6195:45;1529:19054;;;;6069:20;1529:19054;;;;;;;;;;;;;;;;;;;;;6195:45;6065:186;;1529:19054;;;5992:63;-1:-1:-1;;;6030:25:7;;1529:19054;6030:25;;1529:19054;;;;;;;;;;;-1:-1:-1;;1529:19054:7;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2192:298:0;;;;;;:::i;:::-;14714:47:7;;1529:19054;;;;;;;-1:-1:-1;;;;;1529:19054:7;;;;;;;;;;;;;;;;;;;;;;;;15131:31;2134:3;15053:27;14926:56;14943:38;1529:19054;;14943:14;1529:19054;14943:38;:::i;:::-;1529:19054;;14926:56;:::i;:::-;15053:27;;;:::i;:::-;1529:19054;15131:31;;;:::i;:::-;1529:19054;-1:-1:-1;;;;;1529:19054:7;;;;;15225:19;1529:19054;;;;;15225:44;1529:19054;;;15225:44;:::i;:::-;1529:19054;;15284:34;;;;;;;15419;;;:::i;:::-;1529:19054;;;15225:19;1529:19054;;15382:72;1529:19054;;;;;;15382:72;:::i;:::-;1529:19054;;15280:369;15785:57;;;;1529:19054;;15280:369;15587:34;;;;:::i;:::-;1529:19054;;;15225:19;1529:19054;;15550:72;1529:19054;;;;;;15550:72;:::i;:::-;1529:19054;;15280:369;;1529:19054;-1:-1:-1;1529:19054:7;;-1:-1:-1;;1529:19054:7;;;;;;12478:70:130;;:::i;:::-;2371:7:7;7708:30;;7704:91;;7823:14;1529:19054;;7823:14;1529:19054;7884:38;;;;1529:19054;;7704:91;-1:-1:-1;;;7761:23:7;;1529:19054;7761:23;;1529:19054;;;;;;;;;;12478:70:130;;:::i;:::-;6813:405;;;;;;;;;;;;1529:19054:7;;;-1:-1:-1;1529:19054:7;;-1:-1:-1;;1529:19054:7;;;;;;:::i;:::-;12478:70:130;;:::i;:::-;6221:74:0;;4550:77:7;;-1:-1:-1;;;;;1529:19054:7;;4641:32;;4637:99;;-1:-1:-1;;;;;1529:19054:7;;;4790:97;;;4955:10;4901:65;;;;;1529:19054;;4637:99;-1:-1:-1;;;4696:29:7;;1529:19054;4696:29;;4550:77;-1:-1:-1;;;4594:33:7;;1529:19054;4594:33;;1529:19054;;;;;;;-1:-1:-1;;1529:19054:7;;;;;;:::i;:::-;-1:-1:-1;;;;;1529:19054:7;;;8804:29;;8800:71;;8885:11;;8881:50;;8986:10;1529:19054;;8966:19;1529:19054;;;;;;9011:23;;9007:64;;9234:51;1529:19054;;;;;;;;:::i;:::-;;;;;;9117:102;;1529:19054;;;9117:102;;;9201:15;;1529:19054;;8986:10;1529:19054;;9081:9;1529:19054;;;;;;;;;-1:-1:-1;;;;;1529:19054:7;;;;;;-1:-1:-1;;1529:19054:7;;;;;;;;;;;;;;;;;;;9234:51;1529:19054;;9007:64;-1:-1:-1;;;9043:28:7;;1529:19054;9043:28;;8881:50;-1:-1:-1;;;8905:26:7;;1529:19054;10118:26;8905;8800:71;-1:-1:-1;;;8842:29:7;;1529:19054;20401:29;8842;1529:19054;;;;;;;;;;9831:339:130;;;;;;;;;;;;;;;;1529:19054:7;;;;;;;;;-1:-1:-1;;1529:19054:7;;;;;;;;;;;;;;;;;;;;;;16671:2704;1529:19054;2737:22:0;;;:::i;:::-;1529:19054:7;;;;;16671:2704;:::i;:::-;1529:19054;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1529:19054:7;;;;;;;;;;;;;;-1:-1:-1;;1529:19054:7;;;;;;-1:-1:-1;;;;;1529:19054:7;;;;;;;;;:::i;:::-;;;12478:70:130;;;:::i;:::-;1181:103:49;;:::i;:::-;-1:-1:-1;;;;;1529:19054:7;;20372:20;;;20368:62;;13252:754:134;;;;;;;;1529:19054:7;13252:754:134;1529:19054:7;13252:754:134;;;;;;1529:19054:7;13252:754:134;;;;;;;1529:19054:7;13252:754:134;;;;20515:59:7;1529:19054;;;20563:10;1529:19054;;20515:59;3550:68:51;637:66:49;3550:68:51;1529:19054:7;;13252:754:134;;;;;;;;;;;;;;;;;1529:19054:7;13252:754:134;;20368:62:7;-1:-1:-1;;;20401:29:7;;1529:19054;20401:29;;1529:19054;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1529:19054:7;;;;;;:::i;:::-;1181:103:49;;:::i;:::-;-1:-1:-1;;;;;1529:19054:7;;;;;;9643:9;1529:19054;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;1529:19054:7;;;;;;;;;;;;;;;;;;;;;9679:34;9675:67;;1529:19054;9781:54;;9813:22;;;:::i;:::-;9781:54;;:::i;:::-;9849:15;;:36;9845:89;;-1:-1:-1;1529:19054:7;;;9969:19;1529:19054;;;;;;;;10024:27;;;;;;:57;;;1529:19054;;;10094:15;10091:53;;1529:19054;;10189:27;;;:::i;:::-;1529:19054;;;9969:19;1529:19054;;;;;;;;;9643:9;1529:19054;;-1:-1:-1;1529:19054:7;;;;;;;;;;;;;;10265:10;-1:-1:-1;;;;;10265:10:7;1529:19054;-1:-1:-1;;;;;1529:19054:7;;;;;10265:50;;;;;;1529:19054;;;;;;;;;;;;;10265:50;;1529:19054;10265:50;;1529:19054;;;;;10265:50;;;;;;;;10024:57;1529:19054;;-1:-1:-1;;;;;1529:19054:7;;;;;10330:45;;;;;3550:68:51;637:66:49;3550:68:51;1529:19054:7;;10265:50;;;;;:::i;:::-;1529:19054;;10265:50;;;;10091:53;-1:-1:-1;;;10118:26:7;;1529:19054;10118:26;;10024:57;;;9845:89;-1:-1:-1;;;9894:40:7;;1529:19054;;;9894:40;;9675:67;-1:-1:-1;;;9722:20:7;;1529:19054;9722:20;;1529:19054;;;;;;;;;;9239:383:130;;;;;;7972:9;9132:15;1529:19054:7;9239:383:130;;;;;;;;;1529:19054:7;;;;;;;;;;;;;;;-1:-1:-1;;;;;1529:19054:7;;;;;;;;;;;;;;;;;-1:-1:-1;;1529:19054:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;11086:22:7;;;1529:19054;-1:-1:-1;1529:19054:7;;-1:-1:-1;;1529:19054:7;;;;;;:::i;:::-;-1:-1:-1;;;;;1529:19054:7;;12478:70:130;;;:::i;:::-;1181:103:49;;:::i;:::-;1529:19054:7;10772:35;;;;;;;;1529:19054;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;10821:8;10817:64;;10895:31;;;;3550:68:51;637:66:49;3550:68:51;1529:19054:7;;10817:64;-1:-1:-1;;;10852:18:7;;1529:19054;10852:18;;1529:19054;;;;-1:-1:-1;1529:19054:7;;-1:-1:-1;;1529:19054:7;;;;;;;;;;;;;;12478:70:130;;:::i;:::-;-1:-1:-1;;;;;1496:10:0;1529:19054:7;1496:56:0;;;;;;1529:19054:7;;1496:56:0;1529:19054:7;;;;;;;;;1496:56:0;;1529:19054:7;1496:56:0;;1529:19054:7;1524:9:0;1496:56;;;;;;;;;1529:19054:7;;;1496:56:0;;;;1529:19054:7;1496:56:0;;:::i;:::-;1529:19054:7;1496:56:0;1529:19054:7;;;;;;;;;1496:56:0;1529:19054:7;;;;;;;-1:-1:-1;;;;;1529:19054:7;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1529:19054:7;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1529:19054:7;;;;;-1:-1:-1;1529:19054:7;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;1529:19054:7;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;2255:22::-;;;;;-1:-1:-1;;;;;;2255:22:7;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;;2255:22:7;;;;;;;;;1529:19054;2255:22;;;:::o;12816:1250::-;;;;2255:22;1529:19054;2255:22;;;490:2:68;2255:22:7;;;;;13383:69;2255:22;1529:19054;2255:22;;;13376:77;2255:22;1529:19054;2255:22;;13376:77;:::i;:::-;2255:22;;13495:69;2255:22;1529:19054;2255:22;;;13488:77;2255:22;1529:19054;2255:22;;13488:77;:::i;:::-;2255:22;;13608:69;2255:22;1529:19054;2255:22;;;1529:19054;2255:22;;;;1529:19054;;13674:2;2255:22;-1:-1:-1;2255:22:7;;13337:2;2255:22;;875:44:0;;;;490:2:68;2255:22:7;-1:-1:-1;2255:22:7;;13674:2;2255:22;;875:44:0;;;;1529:19054:7;2255:22;;-1:-1:-1;;2255:22:7;;12816:1250::o;1529:19054::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1529:19054:7;;;;;;:::o;11810:1000::-;;;;;1529:19054;12311:15;;;;;;:::i;:::-;1529:19054;;;:::i;:::-;12271:12;1529:19054;;;;12301:26;12355:15;1529:19054;12355:15;;;;;;:::i;1529:19054::-;12271:12;1529:19054;;;;12345:26;12446:23;;;;;;;:::i;:::-;490:2:68;2255:22:7;;;12311:15;1529:19054;12219:574;12271:12;12219:574;;823:61:68;;;-1:-1:-1;;;;;1529:19054:7;;;12271:12;;;1529:19054;12311:15;1529:19054;;;12355:15;1529:19054;;;12389:23;1529:19054;;;12389:23;;;1529:19054;12546:25;1529:19054;;;372:2:68;2255:22:7;1529:19054;12589:14;1529:19054;;;12546:25;;;1529:19054;12446:23;1529:19054;;;12589:14;;1529:19054;;;;;12621:13;1529:19054;;;;12660:4;1529:19054;;;;-1:-1:-1;;;;;1529:19054:7;;;;;;;;;;;;;;;;;;;;;;;;12219:574;;;;;;:::i;:::-;1529:19054;12196:607;;11810:1000;:::o;1529:19054::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;7292:355:130;-1:-1:-1;;7390:251:130;;;;;7292:355::o;7390:251::-;;;;;;;1290:346:49;637:66;3321:69:51;1413:93:49;;1624:4;637:66;3550:68:51;1290:346:49:o;1413:93::-;1465:30;;;-1:-1:-1;1465:30:49;;-1:-1:-1;1465:30:49;20095:179:7;-1:-1:-1;;;;;1529:19054:7;;;20181:20;1529:19054;;;;;;;;20177:47;;20241:26;1529:19054;20095:179;:::o;20177:47::-;1529:19054;20216:8;:::o;5930:135:0:-;-1:-1:-1;;;;;6021:10:0;1529:19054:7;5999:10:0;:33;1529:19054:7;;5930:135:0:o;1529:19054:7:-;;;-1:-1:-1;;;1529:19054:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;16671:2704::-;;;1529:19054;16890:22;17244:23;;;;17222:46;17244:23;;;;:::i;:::-;17222:46;;:::i;:::-;17581:2;17561:22;;;;;;;;;;;;;;:48;;;16671:2704;17557:110;;17681:14;1529:19054;4143:23:68;;;;;:::i;:::-;490:2;2255:22:7;;;434:2:68;2255:22:7;875:44:0;;;17681:46:7;;17677:106;;1529:19054;17824:65;;;;;;;;;:::i;:::-;13414:265:131;;;1529:19054:7;13414:265:131;;;;1529:19054:7;;;;:::i;:::-;17823:144;1529:19054;8517:1041:131;17581:2:7;8517:1041:131;;13414:265;8517:1041;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1529:19054:7;;;;;;17809:187;:202;;;;8517:1041:131;17809:202:7;18100:9;18096:102;;1529:19054;;18246:17;18260:3;18246:17;;:38;;;;17809:202;18242:96;;18526:23;;;;:::i;:::-;490:2:68;2255:22:7;;;434:2:68;-1:-1:-1;;;;;18518:85:7;2255:22;875:44:0;;;;-1:-1:-1;;;;;875:44:0;18462:23:7;;1529:19054;;;-1:-1:-1;;;;;1529:19054:7;;;;-1:-1:-1;;;;;18621:2:7;1529:19054;;;;-1:-1:-1;;;;;1529:19054:7;;;;;;;18755:62;18754:78;3382:14:68;18773:44:7;2134:3;3382:14:68;18666:3:7;18428:225;-1:-1:-1;;;;;3382:14:68;;;;1529:19054:7;;18428:225;;;:::i;:::-;1529:19054;18773:44;;:::i;18755:62::-;18754:78;:::i;:::-;1529:19054;-1:-1:-1;;;;;18870:26:7;;;;:::i;:::-;1529:19054;;;;;;18899:19;13414:265:131;1529:19054:7;17581:2;1529:19054;;;-1:-1:-1;18866:132:7;;-1:-1:-1;;;19045:26:7;;-1:-1:-1;;;;;;19045:26:7;;;:::i;:::-;1529:19054;;;18899:19;13414:265:131;1529:19054:7;19008:64;17581:2;1529:19054;;;;;19008:64;:::i;:::-;1529:19054;;17581:2;1529:19054;19093:51;13414:265:131;19093:51:7;;1529:19054;17581:2;2134:3;;1529:19054;;2134:3;;1529:19054;;19093:51;;;875:44:0;19093:51:7;;:::i;:::-;2683:8:64;1529:19054:7;;;2643:3:64;1529:19054:7;;2589:104:64;16671:2704:7;:::o;18866:132::-;18954:33;;;1529:19054;18954:33;13414:265:131;1529:19054:7;18954:33;18242:96;18307:20;;;1529:19054;18307:20;13414:265:131;1529:19054:7;18307:20;18246:38;18267:17;18281:3;18267:17;;18246:38;;18096:102;18137:49;;;8517:1041:131;18137:49:7;;;-1:-1:-1;;;18137:49:7;;-1:-1:-1;;;;;;18137:49:7;;2683:8:64;1529:19054:7;;;2643:3:64;1529:19054:7;;2589:104:64;;1529:19054:7;17581:2;1529:19054;;13414:265:131;1529:19054:7;;:::i;:::-;;;;18125:62;;:::o;17809:202::-;1529:19054;17809:202;;8517:1041:131;;;;;1529:19054:7;8517:1041:131;13414:265;8517:1041;17581:2:7;8517:1041:131;;;;;;-1:-1:-1;8517:1041:131;;;1529:19054:7;8517:1041:131;;17581:2:7;8517:1041:131;13414:265;17581:2:7;875:44:0;1529:19054:7;8517:1041:131;;;;1529:19054:7;8517:1041:131;;;;;;17581:2:7;8517:1041:131;;;;;;;;;;;;17581:2:7;8517:1041:131;;;;;;;13414:265;8517:1041;;;;;;17677:106:7;17750:22;;;1529:19054;17750:22;;1529:19054;17750:22;17557:110;17632:24;;;1529:19054;17632:24;;1529:19054;17632:24;17561:48;17587:22;17607:2;17587:22;;;17561:48;;6145:1089:130;-1:-1:-1;;;;;6813:405:130;;;;;;-1:-1:-1;6813:405:130;;-1:-1:-1;;6813:405:130;6145:1089::o","linkReferences":{},"immutableReferences":{"17":[{"start":1320,"length":32},{"start":1497,"length":32},{"start":1646,"length":32},{"start":1757,"length":32},{"start":1939,"length":32},{"start":4449,"length":32},{"start":5111,"length":32},{"start":6266,"length":32}]}},"methodIdentifiers":{"addStake(uint32)":"0396cb60","cancelOwnershipHandover()":"54d1f13d","cancelWithdrawalRequest()":"e714a028","completeOwnershipHandover(address)":"f04e283e","deposit()":"d0e30db0","depositFor(address)":"aa67c919","entryPoint()":"b0d691fe","executeWithdrawalRequest(address)":"3261fd58","feeCollector()":"c415b95c","getBalance(address)":"f8b2cb4f","getDeposit()":"c399ec88","getHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,uint48,uint48,uint32)":"def04257","minDeposit()":"41b3d185","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","parsePaymasterAndData(bytes)":"94d4ad60","paymasterIdBalances(address)":"a40a7ddc","paymasterIdWithdrawalDelay()":"f0c12a32","postOp(uint8,bytes,uint256,uint256)":"7c627b21","refundBalances(address[],uint256[])":"f8cf826d","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","setFeeCollector(address)":"a42dce80","setMinDeposit(uint256)":"8fcc9cfb","setSigner(address)":"6c19e783","setTrustedPaymasterId(address,bool)":"8c253a39","setUnaccountedGas(uint256)":"73acf542","submitWithdrawalRequest(address,uint256)":"59ffb130","transferOwnership(address)":"f2fde38b","unaccountedGas()":"ab94cad7","unlockStake()":"bb9fe6bf","validatePaymasterUserOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),bytes32,uint256)":"52b7512c","verifyingSigner()":"23d9ac9b","withdrawERC20(address,address,uint256)":"44004cc1","withdrawEth(address,uint256)":"1b9a91a4","withdrawStake(address)":"c23a5cea","withdrawTo(address,uint256)":"205c2878"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPointArg\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifyingSignerArg\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"feeCollectorArg\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"unaccountedGasArg\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterIdWithdrawalDelayArg\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minDepositArg\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CanNotWithdrawToZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CanNotWithdrawZeroAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DepositCanNotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FeeCollectorCanNotBeContract\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FeeCollectorCanNotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientFundsForPaymasterId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientFundsInGasTank\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidArrayLengths\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPriceMarkup\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LowDeposit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoRequestSubmitted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PaymasterIdCanNotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PostOpGasLimitTooLow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"clearanceTime\",\"type\":\"uint256\"}],\"name\":\"RequestNotClearedYet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubmitRequestInstead\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnaccountedGasTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UseDepositForInstead\",\"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\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"EthWithdrawn\",\"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\":\"FeeCollectorChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldValue\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newValue\",\"type\":\"uint256\"}],\"name\":\"FixedPriceMarkupChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_paymasterId\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_charge\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_premium\",\"type\":\"uint256\"}],\"name\":\"GasBalanceDeducted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_paymasterId\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"GasDeposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_paymasterId\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"GasWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldValue\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newValue\",\"type\":\"uint256\"}],\"name\":\"MinDepositChanged\",\"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\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Received\",\"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\":\"paymasterId\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isTrusted\",\"type\":\"bool\"}],\"name\":\"TrustedPaymasterIdSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldValue\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newValue\",\"type\":\"uint256\"}],\"name\":\"UnaccountedGasChanged\",\"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\":\"VerifyingSignerChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"paymasterId\",\"type\":\"address\"}],\"name\":\"WithdrawalRequestCancelledFor\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"WithdrawalRequestSubmitted\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"unstakeDelaySec\",\"type\":\"uint32\"}],\"name\":\"addStake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelWithdrawalRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":[{\"internalType\":\"address\",\"name\":\"paymasterId\",\"type\":\"address\"}],\"name\":\"depositFor\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"entryPoint\",\"outputs\":[{\"internalType\":\"contract IEntryPoint\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"paymasterId\",\"type\":\"address\"}],\"name\":\"executeWithdrawalRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeCollector\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"paymasterId\",\"type\":\"address\"}],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"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\":\"address\",\"name\":\"paymasterId\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"validUntil\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"validAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint32\",\"name\":\"priceMarkup\",\"type\":\"uint32\"}],\"name\":\"getHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"}],\"name\":\"parsePaymasterAndData\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"paymasterId\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"validUntil\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"validAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint32\",\"name\":\"priceMarkup\",\"type\":\"uint32\"},{\"internalType\":\"uint128\",\"name\":\"paymasterValidationGasLimit\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint128\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"paymasterIdBalances\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paymasterIdWithdrawalDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"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\":\"paymasterIds\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"refundBalances\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newFeeCollector\",\"type\":\"address\"}],\"name\":\"setFeeCollector\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newMinDeposit\",\"type\":\"uint256\"}],\"name\":\"setMinDeposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newVerifyingSigner\",\"type\":\"address\"}],\"name\":\"setSigner\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"paymasterId\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isTrusted\",\"type\":\"bool\"}],\"name\":\"setTrustedPaymasterId\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"setUnaccountedGas\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"submitWithdrawalRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"unlockStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"nonpayable\",\"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\":\"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\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"author\":\"livingrockrisesShivaanshK\",\"details\":\"This contract is used to sponsor the transaction fees of the user operations Uses a verifying signer to provide the signature if predetermined conditions are met regarding the user operation calldata. Also this paymaster is Singleton in nature which means multiple Dapps/Wallet clients willing to sponsor the transactions can share this paymaster. Maintains it's own accounting of the gas balance for each Dapp/Wallet client and Manages it's own deposit on the EntryPoint.\",\"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.\"}],\"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.\"}},\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"cancelWithdrawalRequest()\":{\"details\":\"Cancel a withdrawal request for the paymasterId (Dapp Depositor address)\"},\"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`.\"},\"deposit()\":{\"details\":\"Override the default implementation.\"},\"depositFor(address)\":{\"details\":\"Add a deposit for this paymaster and given paymasterId (Dapp Depositor address), used for paying for transaction fees\",\"params\":{\"paymasterId\":\"dapp identifier for which deposit is being made\"}},\"executeWithdrawalRequest(address)\":{\"details\":\"Execute a withdrawal request for the paymasterId (Dapp Depositor address) Request must be cleared by the withdrawal delay period\",\"params\":{\"paymasterId\":\"paymasterId (Dapp Depositor address)\"}},\"getBalance(address)\":{\"details\":\"get the current deposit for paymasterId (Dapp Depositor address)\",\"params\":{\"paymasterId\":\"dapp identifier\"}},\"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().\"}},\"refundBalances(address[],uint256[])\":{\"details\":\"Refund balances for multiple paymasterIds PM charges more than it should to protect itself. This function is used to refund the extra amount when the real consumption is known.\",\"params\":{\"amounts\":\"The amounts to refund\",\"paymasterIds\":\"The paymasterIds to refund\"}},\"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.\"},\"setFeeCollector(address)\":{\"details\":\"Set a new fee collector address. Can only be called by the owner of the contract.\",\"params\":{\"newFeeCollector\":\"The new address to be set as the fee collector.\"}},\"setMinDeposit(uint256)\":{\"details\":\"Set a new minimum deposit value. Can only be called by the owner of the contract.\",\"params\":{\"newMinDeposit\":\"The new minimum deposit value to be set.\"}},\"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.\"}},\"setTrustedPaymasterId(address,bool)\":{\"details\":\"Set a new trusted paymasterId. Can only be called by the owner of the contract.\",\"params\":{\"isTrusted\":\"Whether the paymasterId is trusted or not.\",\"paymasterId\":\"The paymasterId to be set as trusted.\"}},\"setUnaccountedGas(uint256)\":{\"details\":\"Set a new unaccountedGas value.\",\"params\":{\"value\":\"The new value to be set as the unaccountedGas.\"}},\"submitWithdrawalRequest(address,uint256)\":{\"details\":\"Submit a withdrawal request for the paymasterId (Dapp Depositor address)\",\"params\":{\"amount\":\"amount to withdraw\",\"withdrawAddress\":\"address to send the funds to\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"},\"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\"}},\"withdrawStake(address)\":{\"params\":{\"withdrawAddress\":\"- The address to send withdrawn value.\"}},\"withdrawTo(address,uint256)\":{\"params\":{\"amount\":\"- Amount to withdraw.\",\"withdrawAddress\":\"- Target to send to.\"}}},\"title\":\"BiconomySponsorshipPaymaster\",\"version\":1},\"userdoc\":{\"errors\":{\"CanNotWithdrawToZeroAddress()\":[{\"notice\":\"Throws when trying to withdraw to address(0)\"}],\"CanNotWithdrawZeroAmount()\":[{\"notice\":\"Throws when trying to withdraw zero amount\"}],\"DepositCanNotBeZero()\":[{\"notice\":\"Throws when the 0 has been provided as deposit\"}],\"FeeCollectorCanNotBeContract()\":[{\"notice\":\"Throws when the fee collector address provided is a deployed contract\"}],\"FeeCollectorCanNotBeZero()\":[{\"notice\":\"Throws when the fee collector address provided is address(0)\"}],\"InsufficientFunds()\":[{\"notice\":\"Throws when insufficient funds to withdraw\"}],\"InsufficientFundsForPaymasterId()\":[{\"notice\":\"Throws when insufficient funds for paymasterid\"}],\"InsufficientFundsInGasTank()\":[{\"notice\":\"Thrown when trying to withdraw more than the balance\"}],\"InvalidArrayLengths()\":[{\"notice\":\"Thrown when the array lengths are not equal\"}],\"InvalidPriceMarkup()\":[{\"notice\":\"Throws when invalid signature length in paymasterAndData\"}],\"InvalidSignatureLength()\":[{\"notice\":\"Throws when invalid signature length in paymasterAndData\"}],\"LowDeposit()\":[{\"notice\":\"Thrown when deposit is too low to reach minDeposit\"}],\"NoRequestSubmitted()\":[{\"notice\":\"Throws when no request has been submitted\"}],\"PaymasterIdCanNotBeZero()\":[{\"notice\":\"Throws when the paymaster address provided is address(0)\"}],\"PostOpGasLimitTooLow()\":[{\"notice\":\"Throws when postOp gas limit is too low\"}],\"RequestNotClearedYet(uint256)\":[{\"notice\":\"Thrown when trying to execute withdrawal request before delay has passed\"}],\"SubmitRequestInstead()\":[{\"notice\":\"Thrown when trying to directly withdraw instead of submitting a request\"}],\"UnaccountedGasTooHigh()\":[{\"notice\":\"Throws when trying unaccountedGas is too high\"}],\"UseDepositForInstead()\":[{\"notice\":\"Throws when calling deposit()\"}],\"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.\"},\"getDeposit()\":{\"notice\":\"Return current paymaster's deposit on the entryPoint.\"},\"getHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,uint48,uint48,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.\"},\"setFeeCollector(address)\":{\"notice\":\"If _newFeeCollector is set to zero address, it will revert with an error. After setting the new fee collector address, it will emit an event FeeCollectorChanged.\"},\"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 VerifyingSignerChanged.\"},\"setUnaccountedGas(uint256)\":{\"notice\":\"only to be called by the owner of the contract.\"},\"unlockStake()\":{\"notice\":\"Unlock the stake, in order to withdraw it. The paymaster can't serve requests once unlocked, until it calls addStake again\"},\"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)\"},\"withdrawTo(address,uint256)\":{\"notice\":\"Withdraw value from the deposit.\"}},\"notice\":\"Based on Infinitism's 'VerifyingPaymaster' contract\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/sponsorship/BiconomySponsorshipPaymaster.sol\":\"BiconomySponsorshipPaymaster\"},\"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/BiconomySponsorshipPaymasterErrors.sol\":{\"keccak256\":\"0xf7bfb4912e8d118a3f1f4f82a19834a686f105ad142afb7203adfa2ff38d7000\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://88593bfdb72f8585853a91e675367ac718d1daf5e62c4192459d73cbaeeb07a5\",\"dweb:/ipfs/QmXFRjaPKuS9d1GmMxvrS4JZN3KBmWWYt8VNJZxLGE2jkB\"]},\"contracts/interfaces/IBiconomySponsorshipPaymaster.sol\":{\"keccak256\":\"0x37f183fefaab68aa36dba3045c2c232f757de24faba3db2e5b5b20baa6e4a6f5\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://9fc1df58e44e9c3fd2c09d5d2f7bab83336d1cffde987c9d2575a4d82a04c7cc\",\"dweb:/ipfs/QmWAjzjybXBztdnrnRhRYWSq7rQ56Lou5Amhf8C6wohCdz\"]},\"contracts/sponsorship/BiconomySponsorshipPaymaster.sol\":{\"keccak256\":\"0x8a37e63657c335f3967bbd230e03d8379132000d9ba9546de1c781e06cebc290\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://33e2c736aff8eff527a19ba6f4d6056d7d37918abe81f18b12392229e583a480\",\"dweb:/ipfs/QmbL4vCJ6r3XWicinxcqwT9cN7eGZqhzBMzKC9d9Ab8zqN\"]},\"contracts/utils/SoladyOwnable.sol\":{\"keccak256\":\"0xa8d7b45c34f96e24ae669cdc5add90088b8236a101cb36a7148b05c678d2f8ce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05d1686b40ce43c7ebb674c64ec6695c7822f3380954028c218bf59b64f8165d\",\"dweb:/ipfs/Qmc6Vr8Ru1EpupJ7gp6kmdPA5BqcoPY5GqF8ZLvMPzvBaX\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"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/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":"contract IEntryPoint","name":"entryPointArg","type":"address"},{"internalType":"address","name":"verifyingSignerArg","type":"address"},{"internalType":"address","name":"feeCollectorArg","type":"address"},{"internalType":"uint256","name":"unaccountedGasArg","type":"uint256"},{"internalType":"uint256","name":"paymasterIdWithdrawalDelayArg","type":"uint256"},{"internalType":"uint256","name":"minDepositArg","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyInitialized"},{"inputs":[],"type":"error","name":"CanNotWithdrawToZeroAddress"},{"inputs":[],"type":"error","name":"CanNotWithdrawZeroAmount"},{"inputs":[],"type":"error","name":"DepositCanNotBeZero"},{"inputs":[],"type":"error","name":"FeeCollectorCanNotBeContract"},{"inputs":[],"type":"error","name":"FeeCollectorCanNotBeZero"},{"inputs":[],"type":"error","name":"InsufficientFunds"},{"inputs":[],"type":"error","name":"InsufficientFundsForPaymasterId"},{"inputs":[],"type":"error","name":"InsufficientFundsInGasTank"},{"inputs":[],"type":"error","name":"InvalidArrayLengths"},{"inputs":[],"type":"error","name":"InvalidPriceMarkup"},{"inputs":[],"type":"error","name":"InvalidSignatureLength"},{"inputs":[],"type":"error","name":"LowDeposit"},{"inputs":[],"type":"error","name":"NewOwnerIsZeroAddress"},{"inputs":[],"type":"error","name":"NoHandoverRequest"},{"inputs":[],"type":"error","name":"NoRequestSubmitted"},{"inputs":[],"type":"error","name":"PaymasterIdCanNotBeZero"},{"inputs":[],"type":"error","name":"PostOpGasLimitTooLow"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint256","name":"clearanceTime","type":"uint256"}],"type":"error","name":"RequestNotClearedYet"},{"inputs":[],"type":"error","name":"SubmitRequestInstead"},{"inputs":[],"type":"error","name":"UnaccountedGasTooHigh"},{"inputs":[],"type":"error","name":"Unauthorized"},{"inputs":[],"type":"error","name":"UseDepositForInstead"},{"inputs":[],"type":"error","name":"VerifyingSignerCanNotBeContract"},{"inputs":[],"type":"error","name":"VerifyingSignerCanNotBeZero"},{"inputs":[],"type":"error","name":"WithdrawalFailed"},{"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":"oldFeeCollector","type":"address","indexed":true},{"internalType":"address","name":"newFeeCollector","type":"address","indexed":true},{"internalType":"address","name":"actor","type":"address","indexed":true}],"type":"event","name":"FeeCollectorChanged","anonymous":false},{"inputs":[{"internalType":"uint256","name":"oldValue","type":"uint256","indexed":true},{"internalType":"uint256","name":"newValue","type":"uint256","indexed":true}],"type":"event","name":"FixedPriceMarkupChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"_paymasterId","type":"address","indexed":true},{"internalType":"uint256","name":"_charge","type":"uint256","indexed":true},{"internalType":"uint256","name":"_premium","type":"uint256","indexed":true}],"type":"event","name":"GasBalanceDeducted","anonymous":false},{"inputs":[{"internalType":"address","name":"_paymasterId","type":"address","indexed":true},{"internalType":"uint256","name":"_value","type":"uint256","indexed":true}],"type":"event","name":"GasDeposited","anonymous":false},{"inputs":[{"internalType":"address","name":"_paymasterId","type":"address","indexed":true},{"internalType":"address","name":"_to","type":"address","indexed":true},{"internalType":"uint256","name":"_value","type":"uint256","indexed":true}],"type":"event","name":"GasWithdrawn","anonymous":false},{"inputs":[{"internalType":"uint256","name":"oldValue","type":"uint256","indexed":true},{"internalType":"uint256","name":"newValue","type":"uint256","indexed":true}],"type":"event","name":"MinDepositChanged","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":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Received","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":"paymasterId","type":"address","indexed":true},{"internalType":"bool","name":"isTrusted","type":"bool","indexed":false}],"type":"event","name":"TrustedPaymasterIdSet","anonymous":false},{"inputs":[{"internalType":"uint256","name":"oldValue","type":"uint256","indexed":true},{"internalType":"uint256","name":"newValue","type":"uint256","indexed":true}],"type":"event","name":"UnaccountedGasChanged","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":"VerifyingSignerChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"paymasterId","type":"address","indexed":false}],"type":"event","name":"WithdrawalRequestCancelledFor","anonymous":false},{"inputs":[{"internalType":"address","name":"withdrawAddress","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"WithdrawalRequestSubmitted","anonymous":false},{"inputs":[{"internalType":"uint32","name":"unstakeDelaySec","type":"uint32"}],"stateMutability":"payable","type":"function","name":"addStake"},{"inputs":[],"stateMutability":"payable","type":"function","name":"cancelOwnershipHandover"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"cancelWithdrawalRequest"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"stateMutability":"payable","type":"function","name":"completeOwnershipHandover"},{"inputs":[],"stateMutability":"payable","type":"function","name":"deposit"},{"inputs":[{"internalType":"address","name":"paymasterId","type":"address"}],"stateMutability":"payable","type":"function","name":"depositFor"},{"inputs":[],"stateMutability":"view","type":"function","name":"entryPoint","outputs":[{"internalType":"contract IEntryPoint","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"paymasterId","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"executeWithdrawalRequest"},{"inputs":[],"stateMutability":"view","type":"function","name":"feeCollector","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"paymasterId","type":"address"}],"stateMutability":"view","type":"function","name":"getBalance","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"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":"address","name":"paymasterId","type":"address"},{"internalType":"uint48","name":"validUntil","type":"uint48"},{"internalType":"uint48","name":"validAfter","type":"uint48"},{"internalType":"uint32","name":"priceMarkup","type":"uint32"}],"stateMutability":"view","type":"function","name":"getHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"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":"bytes","name":"paymasterAndData","type":"bytes"}],"stateMutability":"pure","type":"function","name":"parsePaymasterAndData","outputs":[{"internalType":"address","name":"paymasterId","type":"address"},{"internalType":"uint48","name":"validUntil","type":"uint48"},{"internalType":"uint48","name":"validAfter","type":"uint48"},{"internalType":"uint32","name":"priceMarkup","type":"uint32"},{"internalType":"uint128","name":"paymasterValidationGasLimit","type":"uint128"},{"internalType":"uint128","name":"paymasterPostOpGasLimit","type":"uint128"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"paymasterIdBalances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paymasterIdWithdrawalDelay","outputs":[{"internalType":"uint256","name":"","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":"paymasterIds","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"payable","type":"function","name":"refundBalances"},{"inputs":[],"stateMutability":"payable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"payable","type":"function","name":"requestOwnershipHandover"},{"inputs":[{"internalType":"address","name":"newFeeCollector","type":"address"}],"stateMutability":"payable","type":"function","name":"setFeeCollector"},{"inputs":[{"internalType":"uint256","name":"newMinDeposit","type":"uint256"}],"stateMutability":"payable","type":"function","name":"setMinDeposit"},{"inputs":[{"internalType":"address","name":"newVerifyingSigner","type":"address"}],"stateMutability":"payable","type":"function","name":"setSigner"},{"inputs":[{"internalType":"address","name":"paymasterId","type":"address"},{"internalType":"bool","name":"isTrusted","type":"bool"}],"stateMutability":"payable","type":"function","name":"setTrustedPaymasterId"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"payable","type":"function","name":"setUnaccountedGas"},{"inputs":[{"internalType":"address","name":"withdrawAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"submitWithdrawalRequest"},{"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":"nonpayable","type":"function","name":"unlockStake"},{"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":"nonpayable","type":"function","name":"withdrawERC20"},{"inputs":[{"internalType":"address payable","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"withdrawEth"},{"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":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"addStake(uint32)":{"params":{"unstakeDelaySec":"- The unstake delay for this paymaster. Can only be increased."}},"cancelOwnershipHandover()":{"details":"Cancels the two-step ownership handover to the caller, if any."},"cancelWithdrawalRequest()":{"details":"Cancel a withdrawal request for the paymasterId (Dapp Depositor address)"},"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`."},"deposit()":{"details":"Override the default implementation."},"depositFor(address)":{"details":"Add a deposit for this paymaster and given paymasterId (Dapp Depositor address), used for paying for transaction fees","params":{"paymasterId":"dapp identifier for which deposit is being made"}},"executeWithdrawalRequest(address)":{"details":"Execute a withdrawal request for the paymasterId (Dapp Depositor address) Request must be cleared by the withdrawal delay period","params":{"paymasterId":"paymasterId (Dapp Depositor address)"}},"getBalance(address)":{"details":"get the current deposit for paymasterId (Dapp Depositor address)","params":{"paymasterId":"dapp identifier"}},"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()."}},"refundBalances(address[],uint256[])":{"details":"Refund balances for multiple paymasterIds PM charges more than it should to protect itself. This function is used to refund the extra amount when the real consumption is known.","params":{"amounts":"The amounts to refund","paymasterIds":"The paymasterIds to refund"}},"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."},"setFeeCollector(address)":{"details":"Set a new fee collector address. Can only be called by the owner of the contract.","params":{"newFeeCollector":"The new address to be set as the fee collector."}},"setMinDeposit(uint256)":{"details":"Set a new minimum deposit value. Can only be called by the owner of the contract.","params":{"newMinDeposit":"The new minimum deposit value to be set."}},"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."}},"setTrustedPaymasterId(address,bool)":{"details":"Set a new trusted paymasterId. Can only be called by the owner of the contract.","params":{"isTrusted":"Whether the paymasterId is trusted or not.","paymasterId":"The paymasterId to be set as trusted."}},"setUnaccountedGas(uint256)":{"details":"Set a new unaccountedGas value.","params":{"value":"The new value to be set as the unaccountedGas."}},"submitWithdrawalRequest(address,uint256)":{"details":"Submit a withdrawal request for the paymasterId (Dapp Depositor address)","params":{"amount":"amount to withdraw","withdrawAddress":"address to send the funds to"}},"transferOwnership(address)":{"details":"Allows the owner to transfer the ownership to `newOwner`."},"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"}},"withdrawStake(address)":{"params":{"withdrawAddress":"- The address to send withdrawn value."}},"withdrawTo(address,uint256)":{"params":{"amount":"- Amount to withdraw.","withdrawAddress":"- Target to send to."}}},"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."},"getDeposit()":{"notice":"Return current paymaster's deposit on the entryPoint."},"getHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,uint48,uint48,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."},"setFeeCollector(address)":{"notice":"If _newFeeCollector is set to zero address, it will revert with an error. After setting the new fee collector address, it will emit an event FeeCollectorChanged."},"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 VerifyingSignerChanged."},"setUnaccountedGas(uint256)":{"notice":"only to be called by the owner of the contract."},"unlockStake()":{"notice":"Unlock the stake, in order to withdraw it. The paymaster can't serve requests once unlocked, until it calls addStake again"},"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)"},"withdrawTo(address,uint256)":{"notice":"Withdraw value from the deposit."}},"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/sponsorship/BiconomySponsorshipPaymaster.sol":"BiconomySponsorshipPaymaster"},"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/BiconomySponsorshipPaymasterErrors.sol":{"keccak256":"0xf7bfb4912e8d118a3f1f4f82a19834a686f105ad142afb7203adfa2ff38d7000","urls":["bzz-raw://88593bfdb72f8585853a91e675367ac718d1daf5e62c4192459d73cbaeeb07a5","dweb:/ipfs/QmXFRjaPKuS9d1GmMxvrS4JZN3KBmWWYt8VNJZxLGE2jkB"],"license":"LGPL-3.0-only"},"contracts/interfaces/IBiconomySponsorshipPaymaster.sol":{"keccak256":"0x37f183fefaab68aa36dba3045c2c232f757de24faba3db2e5b5b20baa6e4a6f5","urls":["bzz-raw://9fc1df58e44e9c3fd2c09d5d2f7bab83336d1cffde987c9d2575a4d82a04c7cc","dweb:/ipfs/QmWAjzjybXBztdnrnRhRYWSq7rQ56Lou5Amhf8C6wohCdz"],"license":"GPL-3.0"},"contracts/sponsorship/BiconomySponsorshipPaymaster.sol":{"keccak256":"0x8a37e63657c335f3967bbd230e03d8379132000d9ba9546de1c781e06cebc290","urls":["bzz-raw://33e2c736aff8eff527a19ba6f4d6056d7d37918abe81f18b12392229e583a480","dweb:/ipfs/QmbL4vCJ6r3XWicinxcqwT9cN7eGZqhzBMzKC9d9Ab8zqN"],"license":"GPL-3.0"},"contracts/utils/SoladyOwnable.sol":{"keccak256":"0xa8d7b45c34f96e24ae669cdc5add90088b8236a101cb36a7148b05c678d2f8ce","urls":["bzz-raw://05d1686b40ce43c7ebb674c64ec6695c7822f3380954028c218bf59b64f8165d","dweb:/ipfs/Qmc6Vr8Ru1EpupJ7gp6kmdPA5BqcoPY5GqF8ZLvMPzvBaX"],"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/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/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":7} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"entryPointArg","type":"address","internalType":"contract IEntryPoint"},{"name":"verifyingSignerArg","type":"address","internalType":"address"},{"name":"feeCollectorArg","type":"address","internalType":"address"},{"name":"unaccountedGasArg","type":"uint256","internalType":"uint256"},{"name":"paymasterIdWithdrawalDelayArg","type":"uint256","internalType":"uint256"},{"name":"minDepositArg","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"addStake","inputs":[{"name":"unstakeDelaySec","type":"uint32","internalType":"uint32"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"cancelOwnershipHandover","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"cancelWithdrawalRequest","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"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":"depositFor","inputs":[{"name":"paymasterId","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"entryPoint","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IEntryPoint"}],"stateMutability":"view"},{"type":"function","name":"executeWithdrawalRequest","inputs":[{"name":"paymasterId","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"feeCollector","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getBalance","inputs":[{"name":"paymasterId","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"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":"paymasterId","type":"address","internalType":"address"},{"name":"validUntil","type":"uint48","internalType":"uint48"},{"name":"validAfter","type":"uint48","internalType":"uint48"},{"name":"priceMarkup","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"minDeposit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"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":"parsePaymasterAndData","inputs":[{"name":"paymasterAndData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"paymasterId","type":"address","internalType":"address"},{"name":"validUntil","type":"uint48","internalType":"uint48"},{"name":"validAfter","type":"uint48","internalType":"uint48"},{"name":"priceMarkup","type":"uint32","internalType":"uint32"},{"name":"paymasterValidationGasLimit","type":"uint128","internalType":"uint128"},{"name":"paymasterPostOpGasLimit","type":"uint128","internalType":"uint128"},{"name":"signature","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"paymasterIdBalances","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"paymasterIdWithdrawalDelay","inputs":[],"outputs":[{"name":"","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":"refundBalances","inputs":[{"name":"paymasterIds","type":"address[]","internalType":"address[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"requestOwnershipHandover","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setFeeCollector","inputs":[{"name":"newFeeCollector","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setMinDeposit","inputs":[{"name":"newMinDeposit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setSigner","inputs":[{"name":"newVerifyingSigner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setTrustedPaymasterId","inputs":[{"name":"paymasterId","type":"address","internalType":"address"},{"name":"isTrusted","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setUnaccountedGas","inputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"submitWithdrawalRequest","inputs":[{"name":"withdrawAddress","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"unlockStake","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"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":"nonpayable"},{"type":"function","name":"withdrawEth","inputs":[{"name":"recipient","type":"address","internalType":"address payable"},{"name":"amount","type":"uint256","internalType":"uint256"}],"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":"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":"FeeCollectorChanged","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":"FixedPriceMarkupChanged","inputs":[{"name":"oldValue","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"newValue","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"GasBalanceDeducted","inputs":[{"name":"_paymasterId","type":"address","indexed":true,"internalType":"address"},{"name":"_charge","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"_premium","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"GasDeposited","inputs":[{"name":"_paymasterId","type":"address","indexed":true,"internalType":"address"},{"name":"_value","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"GasWithdrawn","inputs":[{"name":"_paymasterId","type":"address","indexed":true,"internalType":"address"},{"name":"_to","type":"address","indexed":true,"internalType":"address"},{"name":"_value","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MinDepositChanged","inputs":[{"name":"oldValue","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"newValue","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":"Received","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"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":"TrustedPaymasterIdSet","inputs":[{"name":"paymasterId","type":"address","indexed":true,"internalType":"address"},{"name":"isTrusted","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"UnaccountedGasChanged","inputs":[{"name":"oldValue","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"newValue","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"VerifyingSignerChanged","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":"event","name":"WithdrawalRequestCancelledFor","inputs":[{"name":"paymasterId","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"WithdrawalRequestSubmitted","inputs":[{"name":"withdrawAddress","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AlreadyInitialized","inputs":[]},{"type":"error","name":"CanNotWithdrawToZeroAddress","inputs":[]},{"type":"error","name":"CanNotWithdrawZeroAmount","inputs":[]},{"type":"error","name":"DepositCanNotBeZero","inputs":[]},{"type":"error","name":"FeeCollectorCanNotBeContract","inputs":[]},{"type":"error","name":"FeeCollectorCanNotBeZero","inputs":[]},{"type":"error","name":"InsufficientFunds","inputs":[]},{"type":"error","name":"InsufficientFundsForPaymasterId","inputs":[]},{"type":"error","name":"InsufficientFundsInGasTank","inputs":[]},{"type":"error","name":"InvalidArrayLengths","inputs":[]},{"type":"error","name":"InvalidPriceMarkup","inputs":[]},{"type":"error","name":"InvalidSignatureLength","inputs":[]},{"type":"error","name":"LowDeposit","inputs":[]},{"type":"error","name":"NewOwnerIsZeroAddress","inputs":[]},{"type":"error","name":"NoHandoverRequest","inputs":[]},{"type":"error","name":"NoRequestSubmitted","inputs":[]},{"type":"error","name":"PaymasterIdCanNotBeZero","inputs":[]},{"type":"error","name":"PostOpGasLimitTooLow","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"RequestNotClearedYet","inputs":[{"name":"clearanceTime","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SubmitRequestInstead","inputs":[]},{"type":"error","name":"UnaccountedGasTooHigh","inputs":[]},{"type":"error","name":"Unauthorized","inputs":[]},{"type":"error","name":"UseDepositForInstead","inputs":[]},{"type":"error","name":"VerifyingSignerCanNotBeContract","inputs":[]},{"type":"error","name":"VerifyingSignerCanNotBeZero","inputs":[]},{"type":"error","name":"WithdrawalFailed","inputs":[]}],"bytecode":{"object":"0x60a0604052346100b55760e0611f96803803809161001c826100b9565b60a039126100b55761006c60a05161003381610116565b60c05161003f81610116565b60e05161004b81610116565b6101005161005881610116565b610120519161014051936101605195610127565b604051611c6690816103308239608051818181610528015281816105d90152818161066e015281816106dd0152818161079301528181611161015281816113f7015261187a0152f35b5f80fd5b60a0601f91909101601f19168101906001600160401b038211908210176100df57604052565b634e487b7160e01b5f52604160045260245ffd5b601f909101601f19168101906001600160401b038211908210176100df57604052565b6001600160a01b038116036100b557565b95949291959390938060601b15610240576001600160a01b0316638b78c6d8198190555f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a36040516301ffc9a760e01b815263122a0e9b60e31b6004820152916020836024816001600160a01b0389165afa90811561023557610204976101ff966101c36101f5946101fa975f91610206575b506102e3565b6080526101d184838361024d565b5f55600180546001600160a01b0319166001600160a01b0392909216919091179055565b600255565b600355565b600455565b565b610228915060203d60201161022e575b61022081836100f3565b8101906102cb565b5f6101bd565b503d610216565b6040513d5f823e3d90fd5b637448fbae5f526004601cfd5b6001600160a01b03811661026a576381618de160e01b5f5260045ffd5b3b1561027f5763edc30c2760e01b5f5260045ffd5b6001600160a01b03811661029c57633fd0943d60e11b5f5260045ffd5b3b156102b157631f47525f60e21b5f5260045ffd5b620186a0106102bc57565b63313db2a560e11b5f5260045ffd5b908160209103126100b5575180151581036100b55790565b156102ea57565b60405162461bcd60e51b815260206004820152601e60248201527f49456e747279506f696e7420696e74657266616365206d69736d6174636800006044820152606490fdfe60806040526004361015610046575b3615610018575f80fd5b6040513481527f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f8852587460203392a2005b5f5f3560e01c80630396cb60146113c75780631b9a91a414611302578063205c2878146112d857806323d9ac9b146112b257806325692962146112675780633261fd581461107557806341b3d1851461105757806344004cc114610f5057806352b7512c14610ecb57806354d1f13d14610e8557806359ffb13014610d845780636c19e78314610cfc578063715018a614610cb157806373acf54214610c525780637c627b2114610b005780638c253a3914610a4c5780638da5cb5b14610a215780638fcc9cfb146109db57806394d4ad6014610917578063a40a7ddc146102ef578063a42dce8014610874578063aa67c9191461071f578063ab94cad714610701578063b0d691fe146106bd578063bb9fe6bf1461064a578063c23a5cea146105ac578063c399ec88146104fc578063c415b95c146104d5578063d0e30db0146104ba578063def042571461042a578063e714a028146103d2578063f04e283e14610384578063f0c12a3214610366578063f2fde38b14610327578063f8b2cb4f146102ef578063f8cf826d1461021d5763fee81cf4146101e8575061000e565b3461021a57602036600319011261021a57610201611467565b9063389a75e1600c5252602080600c2054604051908152f35b80fd5b50604036600319011261021a5760043567ffffffffffffffff81116102eb5761024a9036906004016114c1565b9060243567ffffffffffffffff81116102e75761026b9036906004016114c1565b906102746117d3565b8184036102d857845b848110610288578580f35b6102938184846117af565b35906102a08187876117af565b35916001600160a01b0383168093036102d457600192885260056020526102cc60408920918254611560565b90550161027d565b8780fd5b63a9854bc960e01b8552600485fd5b8380fd5b5080fd5b503461021a57602036600319011261021a5760406020916001600160a01b03610316611467565b168152600583522054604051908152f35b50602036600319011261021a5761033c611467565b6103446117d3565b8060601b156103595761035690611c1b565b80f35b637448fbae82526004601cfd5b503461021a578060031936011261021a576020600354604051908152f35b50602036600319011261021a57610399611467565b6103a16117d3565b63389a75e1600c528082526020600c20805442116103c55790826103569255611c1b565b636f5e881883526004601cfd5b503461021a578060031936011261021a5733815260076020525f60026040832082815582600182015501557fe227a0e51918df92c3a9837808b4825847fa7c14cbacd937b650c337e91712416020604051338152a180f35b503461021a5760a036600319011261021a5760043567ffffffffffffffff81116102eb5761012060031982360301126102eb5761046561147d565b6044359065ffffffffffff821682036102e7576064359265ffffffffffff841684036104b6576084359463ffffffff8616860361021a5760206104ae87878787876004016116b3565b604051908152f35b8480fd5b508060031936011261021a5763302076c960e01b8152600490fd5b503461021a578060031936011261021a5760206001600160a01b0360015416604051908152f35b503461021a578060031936011261021a576040516370a0823160e01b81523060048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156105a157829161056b575b602082604051908152f35b90506020813d602011610599575b8161058660209383611522565b810103126102eb5760209150515f610560565b3d9150610579565b6040513d84823e3d90fd5b503461021a57602036600319011261021a57806105c7611467565b6105cf6117d3565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b15610646576001600160a01b036024849283604051958694859363611d2e7560e11b85521660048401525af180156105a1576106355750f35b8161063f91611522565b61021a5780f35b5050fd5b503461021a578060031936011261021a576106636117d3565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b156106ba5781809160046040518094819363bb9fe6bf60e01b83525af180156105a1576106355750f35b50fd5b503461021a578060031936011261021a5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461021a578060031936011261021a576020600254604051908152f35b50602036600319011261021a576001600160a01b0361073c611467565b6107446117ef565b168015610865573415610856578082526005602052610767346040842054611560565b6004541161084757808252600560205260408220610786348254611560565b9055816001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b156102eb57816024916040519283809263b760faf960e01b825230600483015234905af180156105a157610832575b505034907f1dbbf474736d6415d6a265fabee708fe6e988f6fd0c9d870ded36cab380898dd8380a3807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b8161083c91611522565b6102eb57815f6107e4565b6305d163b560e11b8252600482fd5b6333a6177160e11b8252600482fd5b63016e7bd760e61b8252600482fd5b50602036600319011261021a57610889611467565b6108916117d3565b803b610908576001600160a01b031680156108f957600154908073ffffffffffffffffffffffffffffffffffffffff198316176001556001600160a01b033392167fc6bc29e495f43077b898bfa29b8be68f4c836ccf780f9f7782f916dfd3874f158480a480f35b633fd0943d60e11b8252600482fd5b631f47525f60e21b8252600482fd5b503461021a57602036600319011261021a5760043567ffffffffffffffff81116102eb57610949903690600401611493565b610952916115c4565b959794938694604094929451996001600160a01b038b9a168a5265ffffffffffff1660208a015265ffffffffffff16604089015263ffffffff1660608801526001600160801b031660808701526001600160801b031660a086015260c0850160e090528160e08601526101008501378183016101000152601f1990601f01168101036101000190f35b50602036600319011261021a576004356109f36117d3565b806004547fcacd94bd1e7bb1185c816a740d9439bc8eff8159f6f4ffad8d306b5aca2ebd928480a360045580f35b503461021a578060031936011261021a576020638b78c6d819546001600160a01b0360405191168152f35b50604036600319011261021a57610a61611467565b60243590811515809203610afc576001600160a01b0390610a806117d3565b16908115610aed5781835260066020528060ff604085205416151503610aa4578280f35b60207fd20b41feac4c77c85eaf676a2d91056dc1b6ba4cc02253745a3152ca4f23d87991838552600682526040852060ff1981541660ff8316179055604051908152a25f808280f35b63016e7bd760e61b8352600483fd5b8280fd5b503461021a57608036600319011261021a576003600435101561021a5760243567ffffffffffffffff81116102eb57610b3f6060913690600401611493565b90809291610b4b611870565b810103126102eb578035906001600160a01b038216809203610afc5760208101359063ffffffff82168092036102e7576040013591610bb2620f4240610baa610ba3610b9b6064356002546118e7565b604435611560565b94856118e7565b049283611581565b926001600160a01b03600154168552600560205260408520610bd5858254611560565b90558280821115610c2a57610be991611581565b8185526005602052610c0060408620918254611560565b90555b7f683b3fc4c8726e960b5b0aa3838c1071e2a9b7045fcd4dfc953fc1092923f5378480a480f35b90610c3491611581565b8185526005602052610c4b60408620918254611581565b9055610c03565b50602036600319011261021a57600435610c6a6117d3565b620186a08111610ca257600254816002557f33ddf610723ec48e858790576fb3294cc312fcbd937c1475d53e3673145488eb8380a380f35b63313db2a560e11b8252600482fd5b508060031936011261021a57610cc56117d3565b80638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380638b78c6d8195580f35b50602036600319011261021a57610d11611467565b610d196117d3565b803b610d75576001600160a01b0381168015610d66576001600160a01b0383541691835533917fe1f62c0e6d7bb6d470828565415bf2e87dbfea50e52d2d753788b529bd0c6d628480a480f35b6381618de160e01b8352600483fd5b63edc30c2760e01b8252600482fd5b503461021a57604036600319011261021a57610d9e611467565b6001600160a01b03166024358115610e76578015610e6757338352600560205260408320548111610e58577fe1a007fa1edbdbd989490b46b37c8a7342e8f2f1162a20078a80a9528ab0a149916040918251610df9816114f2565b818152600260208201848152858301904282523389526007602052868920935184556001600160a01b036001850191511673ffffffffffffffffffffffffffffffffffffffff198254161790555191015582519182526020820152a180f35b6345f34ee560e01b8352600483fd5b6339d3420560e11b8352600483fd5b6392bc9df360e01b8352600483fd5b508060031936011261021a5763389a75e1600c52338152806020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c928280a280f35b503461021a57606036600319011261021a5760043567ffffffffffffffff81116102eb5761012060031982360301126102eb576020610f1a606092610f0e611870565b604435906004016118fa565b604092919251948593604085528051938491826040880152018686015e8383018501526020830152601f01601f19168101030190f35b503461021a57606036600319011261021a576004356001600160a01b0381168091036102eb57610f7e61147d565b60443591610f8a6117d3565b610f926117ef565b6001600160a01b03821691821561104857601452826034526fa9059cbb00000000000000000000000084526020846044601082855af1806001865114161561102a575b50836034527f4e5ba90310f16273bb12f3c33f23905e573b86df58a2895a525285d083bf043f6020604051338152a4807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b3d823b1517101561103b575f610fd5565b6390b8ec1884526004601cfd5b6392bc9df360e01b8552600485fd5b503461021a578060031936011261021a576020600454604051908152f35b503461021a57602036600319011261021a5761108f611467565b6110976117ef565b6001600160a01b03811690818352600760205260408320604051916110bb836114f2565b8154835260026001600160a01b036001840154169260208501938452015460408401908082521561125857516110fa916110f49061184a565b90611560565b8042106112465750828452600560205260408420548251818111156112415750805b8084521561123257825161112f91611581565b8385526005602052604085205582845260076020525f6002604086208281558260018201550155836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166001600160a01b038351168451823b156102e7576044849283604051958694859363040b850f60e31b8552600485015260248401525af180156105a15761121d575b50506001600160a01b039051169051917f926a144b6fffc1d73f115b81af7ec66a7c12aed0ff73197c39a683753fc1d9258480a4807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b8161122791611522565b6102e757835f6111c3565b6339d3420560e11b8552600485fd5b61111c565b63fb817d3d60e01b8552600452602484fd5b6336fbdb4f60e01b8652600486fd5b508060031936011261021a5763389a75e1600c523381526202a30042016020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d8280a280f35b503461021a578060031936011261021a576001600160a01b036020915416604051908152f35b503461021a57604036600319011261021a576004906112f5611467565b5063ad42eb9960e01b8152fd5b50604036600319011261021a57611317611467565b6001600160a01b036024359161132b6117d3565b6113336117ef565b168280808085855af13d156113c2573d61134c81611544565b9061135a6040519283611522565b81528460203d92013e5b156113b3577f8455ae6be5d92f1df1c3c1484388e247a36c7e60d72055ae216dbc258f257d4b8380a3807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b6327fcd9d160e01b8352600483fd5b611364565b5060203660031901126114635760043563ffffffff8116809103611463576113ed6117d3565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b15611463575f90602460405180948193621cb65b60e51b8352600483015234905af180156114585761144a575080f35b61145691505f90611522565b005b6040513d5f823e3d90fd5b5f80fd5b600435906001600160a01b038216820361146357565b602435906001600160a01b038216820361146357565b9181601f840112156114635782359167ffffffffffffffff8311611463576020838186019501011161146357565b9181601f840112156114635782359167ffffffffffffffff8311611463576020808501948460051b01011161146357565b6060810190811067ffffffffffffffff82111761150e57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761150e57604052565b67ffffffffffffffff811161150e57601f01601f191660200190565b9190820180921161156d57565b634e487b7160e01b5f52601160045260245ffd5b9190820391821161156d57565b919091356001600160d01b0319811692600681106115aa575050565b6001600160d01b0319929350829060060360031b1b161690565b9190918260481161146357603481013560601c9280604e11611463576115ee60066048840161158e565b60d01c9281605411611463576116086006604e850161158e565b60d01c928260581161146357605481013560e01c926024811061146357601482013560801c926034821061146357602483013560801c92605801916057190190565b903590601e1981360301821215611463570180359067ffffffffffffffff82116114635760200191813603831361146357565b92919261168982611544565b916116976040519384611522565b829481845281830111611463578281602093845f960137010152565b929093916116ce6116c7604086018661164a565b369161167d565b60208151910120946116e66116c7606087018761164a565b60208151910120946116fb60e082018261164a565b6034116114635760405196602088019883356001600160a01b03168a52602084013560408a015260608901526080880152608082013560a08801526014013560c087015260a081013560e087015260c0013561010086015246610120860152306101408601526001600160a01b031661016085015265ffffffffffff1661018084015265ffffffffffff166101a083015263ffffffff166101c08201526101c081526117a96101e082611522565b51902090565b91908110156117bf5760051b0190565b634e487b7160e01b5f52603260045260245ffd5b638b78c6d8195433036117e257565b6382b429005f526004601cfd5b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c61183b5760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d565b633ee5aeb560e01b5f5260045ffd5b6001600160a01b03165f52600660205260ff60405f20541661186c5760035490565b5f90565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036118a257565b60405162461bcd60e51b815260206004820152601560248201527f53656e646572206e6f7420456e747279506f696e7400000000000000000000006044820152606490fd5b8181029291811591840414171561156d57565b919060609260e0810190611917611911838361164a565b906115c4565b60409198969a95979c9350809250141580611c10575b611c01576002549661193f898761164a565b603411611463576024013560801c8811611bf2576119949061196585898f8e908b6116b3565b6020527b19457468657265756d205369676e6564204d6573736167653a0a33325f52603c60042092369161167d565b915f92604051926020820191805180604014611bb457604114611b7e5750505050505b6001600160a01b03805f54169116145f14611b785760015b15611b385763ffffffff1694621e848086118015611b2c575b611b1d576119f6908361164a565b6034116114635760246001600160801b0391013560801c166001600160801b03608084013516016001600160801b03811161156d576001600160801b03600a911602916001600160801b03831692830361156d57611a7b611a80926110f4620f4240956064611a746001600160801b0360c08d9801351680936118e7565b04986118e7565b6118e7565b046001600160a01b03611a938483611560565b971696875f52600560205260405f205410611b0e5765ffffffffffff60a01b93611ac66001600160d01b03199483611560565b885f526005602052611add60405f20918254611581565b90556040519760208901526040880152606087015260608652611b01608087611522565b60d01b169160a01b161790565b632771c53960e01b5f5260045ffd5b630a02dbf760e21b5f5260045ffd5b50620f424086106119e8565b505050600194955065ffffffffffff60a01b92506001600160d01b0319915060d01b169160a01b16171790604051611b71602082611522565b5f81529190565b5f6119cf565b808401515f1a60205260400151835292935090915b5f52516040526020604060805f60015afa505f81523d1851906040526119b7565b507f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff91929394955060400151601b8160ff1c01602052168352611b93565b630359a00f60e01b5f5260045ffd5b634be6321b60e01b5f5260045ffd5b50604181141561192d565b6001600160a01b031680638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3638b78c6d8195556fea164736f6c634300081b000a","sourceMap":"1529:19054:11:-:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1529:19054:11;;;;;;;;;-1:-1:-1;;1529:19054:11;;;;-1:-1:-1;;;;;1529:19054:11;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1529:19054:11;;;;;-1:-1:-1;1529:19054:11;;;;;;-1:-1:-1;;1529:19054:11;;;;-1:-1:-1;;;;;1529:19054:11;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1529:19054:11;;;;;:::o;2588:694::-;;;;;;;;;198:181:17;;;;;;-1:-1:-1;;;;;5710:347:158;-1:-1:-1;;5710:347:158;;;-1:-1:-1;5710:347:158;-1:-1:-1;;5710:347:158;1529:19054:11;;-1:-1:-1;;;3843:80:0;;-1:-1:-1;;;3843:80:0;;;1529:19054:11;;;;3843:80:0;1529:19054:11;-1:-1:-1;;;;;1529:19054:11;;3843:80:0;;;;;;;3249:26:11;3843:80:0;3181:58:11;3843:80:0;3822:157;3097:30:11;3843:80:0;3137:34:11;3843:80:0;-1:-1:-1;3843:80:0;;;2588:694:11;3822:157:0;;:::i;:::-;1159:26;;2963:17:11;;;;;:::i;:::-;-1:-1:-1;2991:97:11;1529:19054;;;-1:-1:-1;;;;;;1529:19054:11;-1:-1:-1;;;;;1529:19054:11;;;;;;;;;;;3097:30;3137:34;1529:19054;;3137:34;3181:58;1529:19054;;3181:58;3843:80:0;1529:19054:11;;3249:26;2588:694::o;3843:80:0:-;;;;1529:19054:11;3843:80:0;1529:19054:11;3843:80:0;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1529:19054:11;;;-1:-1:-1;1529:19054:11;;;;;198:181:17;;;;;;;19381:708:11;-1:-1:-1;;;;;1529:19054:11;;;;19625:29;;;19600:1;19625:29;;19600:1;19625:29;19566:517;6221:74:0;6311:8;19675:31:11;;19729:33;;;19600:1;19729:33;;19600:1;19729:33;19671:412;-1:-1:-1;;;;;1529:19054:11;;;;19835:26;;;19600:1;19835:26;;19600:1;19835:26;19779:304;6221:74:0;6311:8;19882:28:11;;19933:30;;;19600:1;19933:30;;19600:1;19933:30;19878:205;2371:7;-1:-1:-1;19980:103:11;;19381:708::o;19980:103::-;20049:23;;;19600:1;20049:23;;19600:1;20049:23;1529:19054;;;;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;1529:19054:11;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610046575b3615610018575f80fd5b6040513481527f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f8852587460203392a2005b5f5f3560e01c80630396cb60146113c75780631b9a91a414611302578063205c2878146112d857806323d9ac9b146112b257806325692962146112675780633261fd581461107557806341b3d1851461105757806344004cc114610f5057806352b7512c14610ecb57806354d1f13d14610e8557806359ffb13014610d845780636c19e78314610cfc578063715018a614610cb157806373acf54214610c525780637c627b2114610b005780638c253a3914610a4c5780638da5cb5b14610a215780638fcc9cfb146109db57806394d4ad6014610917578063a40a7ddc146102ef578063a42dce8014610874578063aa67c9191461071f578063ab94cad714610701578063b0d691fe146106bd578063bb9fe6bf1461064a578063c23a5cea146105ac578063c399ec88146104fc578063c415b95c146104d5578063d0e30db0146104ba578063def042571461042a578063e714a028146103d2578063f04e283e14610384578063f0c12a3214610366578063f2fde38b14610327578063f8b2cb4f146102ef578063f8cf826d1461021d5763fee81cf4146101e8575061000e565b3461021a57602036600319011261021a57610201611467565b9063389a75e1600c5252602080600c2054604051908152f35b80fd5b50604036600319011261021a5760043567ffffffffffffffff81116102eb5761024a9036906004016114c1565b9060243567ffffffffffffffff81116102e75761026b9036906004016114c1565b906102746117d3565b8184036102d857845b848110610288578580f35b6102938184846117af565b35906102a08187876117af565b35916001600160a01b0383168093036102d457600192885260056020526102cc60408920918254611560565b90550161027d565b8780fd5b63a9854bc960e01b8552600485fd5b8380fd5b5080fd5b503461021a57602036600319011261021a5760406020916001600160a01b03610316611467565b168152600583522054604051908152f35b50602036600319011261021a5761033c611467565b6103446117d3565b8060601b156103595761035690611c1b565b80f35b637448fbae82526004601cfd5b503461021a578060031936011261021a576020600354604051908152f35b50602036600319011261021a57610399611467565b6103a16117d3565b63389a75e1600c528082526020600c20805442116103c55790826103569255611c1b565b636f5e881883526004601cfd5b503461021a578060031936011261021a5733815260076020525f60026040832082815582600182015501557fe227a0e51918df92c3a9837808b4825847fa7c14cbacd937b650c337e91712416020604051338152a180f35b503461021a5760a036600319011261021a5760043567ffffffffffffffff81116102eb5761012060031982360301126102eb5761046561147d565b6044359065ffffffffffff821682036102e7576064359265ffffffffffff841684036104b6576084359463ffffffff8616860361021a5760206104ae87878787876004016116b3565b604051908152f35b8480fd5b508060031936011261021a5763302076c960e01b8152600490fd5b503461021a578060031936011261021a5760206001600160a01b0360015416604051908152f35b503461021a578060031936011261021a576040516370a0823160e01b81523060048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156105a157829161056b575b602082604051908152f35b90506020813d602011610599575b8161058660209383611522565b810103126102eb5760209150515f610560565b3d9150610579565b6040513d84823e3d90fd5b503461021a57602036600319011261021a57806105c7611467565b6105cf6117d3565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b15610646576001600160a01b036024849283604051958694859363611d2e7560e11b85521660048401525af180156105a1576106355750f35b8161063f91611522565b61021a5780f35b5050fd5b503461021a578060031936011261021a576106636117d3565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b156106ba5781809160046040518094819363bb9fe6bf60e01b83525af180156105a1576106355750f35b50fd5b503461021a578060031936011261021a5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461021a578060031936011261021a576020600254604051908152f35b50602036600319011261021a576001600160a01b0361073c611467565b6107446117ef565b168015610865573415610856578082526005602052610767346040842054611560565b6004541161084757808252600560205260408220610786348254611560565b9055816001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b156102eb57816024916040519283809263b760faf960e01b825230600483015234905af180156105a157610832575b505034907f1dbbf474736d6415d6a265fabee708fe6e988f6fd0c9d870ded36cab380898dd8380a3807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b8161083c91611522565b6102eb57815f6107e4565b6305d163b560e11b8252600482fd5b6333a6177160e11b8252600482fd5b63016e7bd760e61b8252600482fd5b50602036600319011261021a57610889611467565b6108916117d3565b803b610908576001600160a01b031680156108f957600154908073ffffffffffffffffffffffffffffffffffffffff198316176001556001600160a01b033392167fc6bc29e495f43077b898bfa29b8be68f4c836ccf780f9f7782f916dfd3874f158480a480f35b633fd0943d60e11b8252600482fd5b631f47525f60e21b8252600482fd5b503461021a57602036600319011261021a5760043567ffffffffffffffff81116102eb57610949903690600401611493565b610952916115c4565b959794938694604094929451996001600160a01b038b9a168a5265ffffffffffff1660208a015265ffffffffffff16604089015263ffffffff1660608801526001600160801b031660808701526001600160801b031660a086015260c0850160e090528160e08601526101008501378183016101000152601f1990601f01168101036101000190f35b50602036600319011261021a576004356109f36117d3565b806004547fcacd94bd1e7bb1185c816a740d9439bc8eff8159f6f4ffad8d306b5aca2ebd928480a360045580f35b503461021a578060031936011261021a576020638b78c6d819546001600160a01b0360405191168152f35b50604036600319011261021a57610a61611467565b60243590811515809203610afc576001600160a01b0390610a806117d3565b16908115610aed5781835260066020528060ff604085205416151503610aa4578280f35b60207fd20b41feac4c77c85eaf676a2d91056dc1b6ba4cc02253745a3152ca4f23d87991838552600682526040852060ff1981541660ff8316179055604051908152a25f808280f35b63016e7bd760e61b8352600483fd5b8280fd5b503461021a57608036600319011261021a576003600435101561021a5760243567ffffffffffffffff81116102eb57610b3f6060913690600401611493565b90809291610b4b611870565b810103126102eb578035906001600160a01b038216809203610afc5760208101359063ffffffff82168092036102e7576040013591610bb2620f4240610baa610ba3610b9b6064356002546118e7565b604435611560565b94856118e7565b049283611581565b926001600160a01b03600154168552600560205260408520610bd5858254611560565b90558280821115610c2a57610be991611581565b8185526005602052610c0060408620918254611560565b90555b7f683b3fc4c8726e960b5b0aa3838c1071e2a9b7045fcd4dfc953fc1092923f5378480a480f35b90610c3491611581565b8185526005602052610c4b60408620918254611581565b9055610c03565b50602036600319011261021a57600435610c6a6117d3565b620186a08111610ca257600254816002557f33ddf610723ec48e858790576fb3294cc312fcbd937c1475d53e3673145488eb8380a380f35b63313db2a560e11b8252600482fd5b508060031936011261021a57610cc56117d3565b80638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380638b78c6d8195580f35b50602036600319011261021a57610d11611467565b610d196117d3565b803b610d75576001600160a01b0381168015610d66576001600160a01b0383541691835533917fe1f62c0e6d7bb6d470828565415bf2e87dbfea50e52d2d753788b529bd0c6d628480a480f35b6381618de160e01b8352600483fd5b63edc30c2760e01b8252600482fd5b503461021a57604036600319011261021a57610d9e611467565b6001600160a01b03166024358115610e76578015610e6757338352600560205260408320548111610e58577fe1a007fa1edbdbd989490b46b37c8a7342e8f2f1162a20078a80a9528ab0a149916040918251610df9816114f2565b818152600260208201848152858301904282523389526007602052868920935184556001600160a01b036001850191511673ffffffffffffffffffffffffffffffffffffffff198254161790555191015582519182526020820152a180f35b6345f34ee560e01b8352600483fd5b6339d3420560e11b8352600483fd5b6392bc9df360e01b8352600483fd5b508060031936011261021a5763389a75e1600c52338152806020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c928280a280f35b503461021a57606036600319011261021a5760043567ffffffffffffffff81116102eb5761012060031982360301126102eb576020610f1a606092610f0e611870565b604435906004016118fa565b604092919251948593604085528051938491826040880152018686015e8383018501526020830152601f01601f19168101030190f35b503461021a57606036600319011261021a576004356001600160a01b0381168091036102eb57610f7e61147d565b60443591610f8a6117d3565b610f926117ef565b6001600160a01b03821691821561104857601452826034526fa9059cbb00000000000000000000000084526020846044601082855af1806001865114161561102a575b50836034527f4e5ba90310f16273bb12f3c33f23905e573b86df58a2895a525285d083bf043f6020604051338152a4807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b3d823b1517101561103b575f610fd5565b6390b8ec1884526004601cfd5b6392bc9df360e01b8552600485fd5b503461021a578060031936011261021a576020600454604051908152f35b503461021a57602036600319011261021a5761108f611467565b6110976117ef565b6001600160a01b03811690818352600760205260408320604051916110bb836114f2565b8154835260026001600160a01b036001840154169260208501938452015460408401908082521561125857516110fa916110f49061184a565b90611560565b8042106112465750828452600560205260408420548251818111156112415750805b8084521561123257825161112f91611581565b8385526005602052604085205582845260076020525f6002604086208281558260018201550155836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166001600160a01b038351168451823b156102e7576044849283604051958694859363040b850f60e31b8552600485015260248401525af180156105a15761121d575b50506001600160a01b039051169051917f926a144b6fffc1d73f115b81af7ec66a7c12aed0ff73197c39a683753fc1d9258480a4807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b8161122791611522565b6102e757835f6111c3565b6339d3420560e11b8552600485fd5b61111c565b63fb817d3d60e01b8552600452602484fd5b6336fbdb4f60e01b8652600486fd5b508060031936011261021a5763389a75e1600c523381526202a30042016020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d8280a280f35b503461021a578060031936011261021a576001600160a01b036020915416604051908152f35b503461021a57604036600319011261021a576004906112f5611467565b5063ad42eb9960e01b8152fd5b50604036600319011261021a57611317611467565b6001600160a01b036024359161132b6117d3565b6113336117ef565b168280808085855af13d156113c2573d61134c81611544565b9061135a6040519283611522565b81528460203d92013e5b156113b3577f8455ae6be5d92f1df1c3c1484388e247a36c7e60d72055ae216dbc258f257d4b8380a3807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b6327fcd9d160e01b8352600483fd5b611364565b5060203660031901126114635760043563ffffffff8116809103611463576113ed6117d3565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b15611463575f90602460405180948193621cb65b60e51b8352600483015234905af180156114585761144a575080f35b61145691505f90611522565b005b6040513d5f823e3d90fd5b5f80fd5b600435906001600160a01b038216820361146357565b602435906001600160a01b038216820361146357565b9181601f840112156114635782359167ffffffffffffffff8311611463576020838186019501011161146357565b9181601f840112156114635782359167ffffffffffffffff8311611463576020808501948460051b01011161146357565b6060810190811067ffffffffffffffff82111761150e57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761150e57604052565b67ffffffffffffffff811161150e57601f01601f191660200190565b9190820180921161156d57565b634e487b7160e01b5f52601160045260245ffd5b9190820391821161156d57565b919091356001600160d01b0319811692600681106115aa575050565b6001600160d01b0319929350829060060360031b1b161690565b9190918260481161146357603481013560601c9280604e11611463576115ee60066048840161158e565b60d01c9281605411611463576116086006604e850161158e565b60d01c928260581161146357605481013560e01c926024811061146357601482013560801c926034821061146357602483013560801c92605801916057190190565b903590601e1981360301821215611463570180359067ffffffffffffffff82116114635760200191813603831361146357565b92919261168982611544565b916116976040519384611522565b829481845281830111611463578281602093845f960137010152565b929093916116ce6116c7604086018661164a565b369161167d565b60208151910120946116e66116c7606087018761164a565b60208151910120946116fb60e082018261164a565b6034116114635760405196602088019883356001600160a01b03168a52602084013560408a015260608901526080880152608082013560a08801526014013560c087015260a081013560e087015260c0013561010086015246610120860152306101408601526001600160a01b031661016085015265ffffffffffff1661018084015265ffffffffffff166101a083015263ffffffff166101c08201526101c081526117a96101e082611522565b51902090565b91908110156117bf5760051b0190565b634e487b7160e01b5f52603260045260245ffd5b638b78c6d8195433036117e257565b6382b429005f526004601cfd5b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c61183b5760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d565b633ee5aeb560e01b5f5260045ffd5b6001600160a01b03165f52600660205260ff60405f20541661186c5760035490565b5f90565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036118a257565b60405162461bcd60e51b815260206004820152601560248201527f53656e646572206e6f7420456e747279506f696e7400000000000000000000006044820152606490fd5b8181029291811591840414171561156d57565b919060609260e0810190611917611911838361164a565b906115c4565b60409198969a95979c9350809250141580611c10575b611c01576002549661193f898761164a565b603411611463576024013560801c8811611bf2576119949061196585898f8e908b6116b3565b6020527b19457468657265756d205369676e6564204d6573736167653a0a33325f52603c60042092369161167d565b915f92604051926020820191805180604014611bb457604114611b7e5750505050505b6001600160a01b03805f54169116145f14611b785760015b15611b385763ffffffff1694621e848086118015611b2c575b611b1d576119f6908361164a565b6034116114635760246001600160801b0391013560801c166001600160801b03608084013516016001600160801b03811161156d576001600160801b03600a911602916001600160801b03831692830361156d57611a7b611a80926110f4620f4240956064611a746001600160801b0360c08d9801351680936118e7565b04986118e7565b6118e7565b046001600160a01b03611a938483611560565b971696875f52600560205260405f205410611b0e5765ffffffffffff60a01b93611ac66001600160d01b03199483611560565b885f526005602052611add60405f20918254611581565b90556040519760208901526040880152606087015260608652611b01608087611522565b60d01b169160a01b161790565b632771c53960e01b5f5260045ffd5b630a02dbf760e21b5f5260045ffd5b50620f424086106119e8565b505050600194955065ffffffffffff60a01b92506001600160d01b0319915060d01b169160a01b16171790604051611b71602082611522565b5f81529190565b5f6119cf565b808401515f1a60205260400151835292935090915b5f52516040526020604060805f60015afa505f81523d1851906040526119b7565b507f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff91929394955060400151601b8160ff1c01602052168352611b93565b630359a00f60e01b5f5260045ffd5b634be6321b60e01b5f5260045ffd5b50604181141561192d565b6001600160a01b031680638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3638b78c6d8195556fea164736f6c634300081b000a","sourceMap":"1529:19054:11:-:0;;;;;;;;;-1:-1:-1;1529:19054:11;;;;;;;;;;3351:9;1529:19054;;3330:31;1529:19054;3339:10;3330:31;;1529:19054;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1529:19054:11;;;;;;:::i;:::-;11885:237:158;;;;;1529:19054:11;11885:237:158;;;;1529:19054:11;;;;;;;;;;-1:-1:-1;1529:19054:11;;-1:-1:-1;;1529:19054:11;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;12478:70:158;;;:::i;:::-;5431:37:11;;;5427:71;;5513:9;5524:23;;;;;;1529:19054;;;5549:3;5608:10;;;;;:::i;:::-;1529:19054;5588:15;;;;;;:::i;:::-;1529:19054;;-1:-1:-1;;;;;1529:19054:11;;;;;;;;;;;5568:19;1529:19054;;5568:50;1529:19054;;;;;;5568:50;:::i;:::-;1529:19054;;;5513:9;;1529:19054;;;;5427:71;-1:-1:-1;;;5477:21:11;;1529:19054;5477:21;;1529:19054;;;;;;;;;;;;;;;-1:-1:-1;;1529:19054:11;;;;;;;-1:-1:-1;;;;;1529:19054:11;;:::i;:::-;;;;11357:19;1529:19054;;;;;;;;;;;-1:-1:-1;1529:19054:11;;-1:-1:-1;;1529:19054:11;;;;;;:::i;:::-;12478:70:158;;:::i;:::-;8479:183;;;;;;8681:8;;;:::i;:::-;1529:19054:11;;8479:183:158;;;;1529:19054:11;8479:183:158;;1529:19054:11;;;;;;;;;;;;;;1935:41;1529:19054;;;;;;;;-1:-1:-1;1529:19054:11;;-1:-1:-1;;1529:19054:11;;;;;;:::i;:::-;12478:70:158;;:::i;:::-;10506:526;;;;;;1529:19054:11;10506:526:158;;;;;;;;;;11051:12;10506:526;;11051:12;:::i;10506:526::-;;;;1529:19054:11;10506:526:158;;1529:19054:11;;;;;;;;;;;;;10560:10;1529:19054;;10550:9;1529:19054;;-1:-1:-1;1529:19054:11;;;;;;;;;;;;;;10586:41;1529:19054;;;10560:10;1529:19054;;10586:41;1529:19054;;;;;;;;;-1:-1:-1;;1529:19054:11;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8070:22:11;;1529:19054;;8070:22;1529:19054;;;;;;;;;;;;;;-1:-1:-1;;;;;1867:27:11;1529:19054;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3569:35:0;;3598:4;1529:19054:11;3569:35:0;;1529:19054:11;;;3569:35:0;1529:19054:11;3569:10:0;-1:-1:-1;;;;;1529:19054:11;3569:35:0;;;;;;;;;;;1529:19054:11;;;;;;;;;3569:35:0;;;1529:19054:11;3569:35:0;;1529:19054:11;3569:35:0;;;;;;1529:19054:11;3569:35:0;;;:::i;:::-;;;1529:19054:11;;;;;;;;3569:35:0;;;;;;-1:-1:-1;3569:35:0;;;1529:19054:11;;;;;;;;;;;;;;;;-1:-1:-1;;1529:19054:11;;;;;;;:::i;:::-;12478:70:158;;:::i;:::-;-1:-1:-1;;;;;2107:10:0;1529:19054:11;2107:41:0;;;;;;-1:-1:-1;;;;;2107:41:0;1529:19054:11;;;;;;;;;;;;;2107:41:0;;1529:19054:11;;2107:41:0;;1529:19054:11;2107:41:0;;;;;;;;1529:19054:11;;2107:41:0;;;;;:::i;:::-;1529:19054:11;;2107:41:0;1529:19054:11;2107:41:0;1529:19054:11;;;;;;;;;;;;;;;;12478:70:158;;:::i;:::-;1770:10:0;-1:-1:-1;;;;;1770:10:0;1529:19054:11;1770:24:0;;;;;1529:19054:11;;;;;;;;;;;;;1770:24:0;;;;;;;;;;1529:19054:11;;1770:24:0;1529:19054:11;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;657:39:0;1529:19054:11;;;;;;;;;;;;;;;;;;1900:29;1529:19054;;;;;;;;-1:-1:-1;1529:19054:11;;-1:-1:-1;;1529:19054:11;;;;-1:-1:-1;;;;;1529:19054:11;;:::i;:::-;1181:103:57;;:::i;:::-;1529:19054:11;3686:25;;3682:63;;3759:9;:14;3755:48;;1529:19054;;;3817:19;1529:19054;;3817:44;3759:9;1529:19054;;;;3817:44;:::i;:::-;1529:19054;;-1:-1:-1;3813:82:11;;1529:19054;;;3817:19;1529:19054;;;;;3905:45;3759:9;1529:19054;;3905:45;:::i;:::-;1529:19054;;3960:10;-1:-1:-1;;;;;3960:10:11;1529:19054;3960:55;;;;;1529:19054;3960:55;1529:19054;;;;;;;;;;3960:55;;4009:4;1529:19054;3960:55;;1529:19054;3759:9;3960:55;;;;;;;;;1529:19054;3759:9;;;4030:36;;;;;3550:68:61;637:66:57;3550:68:61;1529:19054:11;;3960:55;;;;;:::i;:::-;1529:19054;;3960:55;;;;3813:82;-1:-1:-1;;;3883:12:11;;1529:19054;3883:12;;3755:48;-1:-1:-1;;;3782:21:11;;1529:19054;3782:21;;3682:63;-1:-1:-1;;;3720:25:11;;1529:19054;6030:25;3720;1529:19054;-1:-1:-1;1529:19054:11;;-1:-1:-1;;1529:19054:11;;;;;;:::i;:::-;12478:70:158;;:::i;:::-;6221:74:0;;7105:71:11;;-1:-1:-1;;;;;1529:19054:11;7190:29;;7186:68;;7290:12;1529:19054;;;-1:-1:-1;;1529:19054:11;;;7290:12;1529:19054;-1:-1:-1;;;;;7411:10:11;1529:19054;;7357:65;;;;1529:19054;;7186:68;-1:-1:-1;;;7228:26:11;;1529:19054;7228:26;;7105:71;-1:-1:-1;;;7146:30:11;;1529:19054;7146:30;;1529:19054;;;;;;;-1:-1:-1;;1529:19054:11;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1529:19054:11;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1529:19054:11;;;;;-1:-1:-1;;;;;1529:19054:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1529:19054:11;;-1:-1:-1;;1529:19054:11;;;;;;12478:70:158;;:::i;:::-;1529:19054:11;;;6537:44;;;;1529:19054;;;;;;;;;;;;;;;;;;6813:405:158;;11523:61;-1:-1:-1;;;;;1529:19054:11;;;;;;;;-1:-1:-1;1529:19054:11;;-1:-1:-1;;1529:19054:11;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;12478:70:158;;;:::i;:::-;1529:19054:11;5996:25;;;5992:63;;1529:19054;;;6069:20;1529:19054;;;;;;;;;;;6069:46;6065:186;;1529:19054;;;6065:186;1529:19054;6195:45;1529:19054;;;;6069:20;1529:19054;;;;;;;;;;;;;;;;;;;;;6195:45;6065:186;;1529:19054;;;5992:63;-1:-1:-1;;;6030:25:11;;1529:19054;6030:25;;1529:19054;;;;;;;;;;;-1:-1:-1;;1529:19054:11;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2192:298:0;;;;;;:::i;:::-;14714:47:11;;1529:19054;;;;;;;-1:-1:-1;;;;;1529:19054:11;;;;;;;;;;;;;;;;;;;;;;;;15131:31;2134:3;15053:27;14926:56;14943:38;1529:19054;;14943:14;1529:19054;14943:38;:::i;:::-;1529:19054;;14926:56;:::i;:::-;15053:27;;;:::i;:::-;1529:19054;15131:31;;;:::i;:::-;1529:19054;-1:-1:-1;;;;;1529:19054:11;;;;;15225:19;1529:19054;;;;;15225:44;1529:19054;;;15225:44;:::i;:::-;1529:19054;;15284:34;;;;;;;15419;;;:::i;:::-;1529:19054;;;15225:19;1529:19054;;15382:72;1529:19054;;;;;;15382:72;:::i;:::-;1529:19054;;15280:369;15785:57;;;;1529:19054;;15280:369;15587:34;;;;:::i;:::-;1529:19054;;;15225:19;1529:19054;;15550:72;1529:19054;;;;;;15550:72;:::i;:::-;1529:19054;;15280:369;;1529:19054;-1:-1:-1;1529:19054:11;;-1:-1:-1;;1529:19054:11;;;;;;12478:70:158;;:::i;:::-;2371:7:11;7708:30;;7704:91;;7823:14;1529:19054;;7823:14;1529:19054;7884:38;;;;1529:19054;;7704:91;-1:-1:-1;;;7761:23:11;;1529:19054;7761:23;;1529:19054;;;;;;;;;;12478:70:158;;:::i;:::-;6813:405;;;;;;;;;;;;1529:19054:11;;;-1:-1:-1;1529:19054:11;;-1:-1:-1;;1529:19054:11;;;;;;:::i;:::-;12478:70:158;;:::i;:::-;6221:74:0;;4550:77:11;;-1:-1:-1;;;;;1529:19054:11;;4641:32;;4637:99;;-1:-1:-1;;;;;1529:19054:11;;;4790:97;;;4955:10;4901:65;;;;;1529:19054;;4637:99;-1:-1:-1;;;4696:29:11;;1529:19054;4696:29;;4550:77;-1:-1:-1;;;4594:33:11;;1529:19054;4594:33;;1529:19054;;;;;;;-1:-1:-1;;1529:19054:11;;;;;;:::i;:::-;-1:-1:-1;;;;;1529:19054:11;;;8804:29;;8800:71;;8885:11;;8881:50;;8986:10;1529:19054;;8966:19;1529:19054;;;;;;9011:23;;9007:64;;9234:51;1529:19054;;;;;;;;:::i;:::-;;;;;;9117:102;;1529:19054;;;9117:102;;;9201:15;;1529:19054;;8986:10;1529:19054;;9081:9;1529:19054;;;;;;;;;-1:-1:-1;;;;;1529:19054:11;;;;;;-1:-1:-1;;1529:19054:11;;;;;;;;;;;;;;;;;;;9234:51;1529:19054;;9007:64;-1:-1:-1;;;9043:28:11;;1529:19054;9043:28;;8881:50;-1:-1:-1;;;8905:26:11;;1529:19054;10118:26;8905;8800:71;-1:-1:-1;;;8842:29:11;;1529:19054;20401:29;8842;1529:19054;;;;;;;;;;9831:339:158;;;;;;;;;;;;;;;;1529:19054:11;;;;;;;;;-1:-1:-1;;1529:19054:11;;;;;;;;;;;;;;;;;;;;;;16671:2704;1529:19054;2737:22:0;;;:::i;:::-;1529:19054:11;;;;;16671:2704;:::i;:::-;1529:19054;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1529:19054:11;;;;;;;;;;;;;;-1:-1:-1;;1529:19054:11;;;;;;-1:-1:-1;;;;;1529:19054:11;;;;;;;;;:::i;:::-;;;12478:70:158;;;:::i;:::-;1181:103:57;;:::i;:::-;-1:-1:-1;;;;;1529:19054:11;;20372:20;;;20368:62;;13252:754:162;;;;;;;;1529:19054:11;13252:754:162;1529:19054:11;13252:754:162;;;;;;1529:19054:11;13252:754:162;;;;;;;1529:19054:11;13252:754:162;;;;20515:59:11;1529:19054;;;20563:10;1529:19054;;20515:59;3550:68:61;637:66:57;3550:68:61;1529:19054:11;;13252:754:162;;;;;;;;;;;;;;;;;1529:19054:11;13252:754:162;;20368:62:11;-1:-1:-1;;;20401:29:11;;1529:19054;20401:29;;1529:19054;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1529:19054:11;;;;;;:::i;:::-;1181:103:57;;:::i;:::-;-1:-1:-1;;;;;1529:19054:11;;;;;;9643:9;1529:19054;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;1529:19054:11;;;;;;;;;;;;;;;;;;;;;9679:34;9675:67;;1529:19054;9781:54;;9813:22;;;:::i;:::-;9781:54;;:::i;:::-;9849:15;;:36;9845:89;;-1:-1:-1;1529:19054:11;;;9969:19;1529:19054;;;;;;;;10024:27;;;;;;:57;;;1529:19054;;;10094:15;10091:53;;1529:19054;;10189:27;;;:::i;:::-;1529:19054;;;9969:19;1529:19054;;;;;;;;;9643:9;1529:19054;;-1:-1:-1;1529:19054:11;;;;;;;;;;;;;;10265:10;-1:-1:-1;;;;;10265:10:11;1529:19054;-1:-1:-1;;;;;1529:19054:11;;;;;10265:50;;;;;;1529:19054;;;;;;;;;;;;;10265:50;;1529:19054;10265:50;;1529:19054;;;;;10265:50;;;;;;;;10024:57;1529:19054;;-1:-1:-1;;;;;1529:19054:11;;;;;10330:45;;;;;3550:68:61;637:66:57;3550:68:61;1529:19054:11;;10265:50;;;;;:::i;:::-;1529:19054;;10265:50;;;;10091:53;-1:-1:-1;;;10118:26:11;;1529:19054;10118:26;;10024:57;;;9845:89;-1:-1:-1;;;9894:40:11;;1529:19054;;;9894:40;;9675:67;-1:-1:-1;;;9722:20:11;;1529:19054;9722:20;;1529:19054;;;;;;;;;;9239:383:158;;;;;;7972:9;9132:15;1529:19054:11;9239:383:158;;;;;;;;;1529:19054:11;;;;;;;;;;;;;;;-1:-1:-1;;;;;1529:19054:11;;;;;;;;;;;;;;;;;-1:-1:-1;;1529:19054:11;;;;;;;;:::i;:::-;-1:-1:-1;;;;11086:22:11;;;1529:19054;-1:-1:-1;1529:19054:11;;-1:-1:-1;;1529:19054:11;;;;;;:::i;:::-;-1:-1:-1;;;;;1529:19054:11;;12478:70:158;;;:::i;:::-;1181:103:57;;:::i;:::-;1529:19054:11;10772:35;;;;;;;;1529:19054;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;10821:8;10817:64;;10895:31;;;;3550:68:61;637:66:57;3550:68:61;1529:19054:11;;10817:64;-1:-1:-1;;;10852:18:11;;1529:19054;10852:18;;1529:19054;;;;-1:-1:-1;1529:19054:11;;-1:-1:-1;;1529:19054:11;;;;;;;;;;;;;;12478:70:158;;:::i;:::-;-1:-1:-1;;;;;1496:10:0;1529:19054:11;1496:56:0;;;;;;1529:19054:11;;1496:56:0;1529:19054:11;;;;;;;;;1496:56:0;;1529:19054:11;1496:56:0;;1529:19054:11;1524:9:0;1496:56;;;;;;;;;1529:19054:11;;;1496:56:0;;;;1529:19054:11;1496:56:0;;:::i;:::-;1529:19054:11;1496:56:0;1529:19054:11;;;;;;;;;1496:56:0;1529:19054:11;;;;;;;-1:-1:-1;;;;;1529:19054:11;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1529:19054:11;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1529:19054:11;;;;;-1:-1:-1;1529:19054:11;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;1529:19054:11;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;2255:22::-;;;;;-1:-1:-1;;;;;;2255:22:11;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;;2255:22:11;;;;;;;;;1529:19054;2255:22;;;:::o;12816:1250::-;;;;2255:22;1529:19054;2255:22;;;490:2:92;2255:22:11;;;;;13383:69;2255:22;1529:19054;2255:22;;;13376:77;2255:22;1529:19054;2255:22;;13376:77;:::i;:::-;2255:22;;13495:69;2255:22;1529:19054;2255:22;;;13488:77;2255:22;1529:19054;2255:22;;13488:77;:::i;:::-;2255:22;;13608:69;2255:22;1529:19054;2255:22;;;1529:19054;2255:22;;;;1529:19054;;13674:2;2255:22;-1:-1:-1;2255:22:11;;13337:2;2255:22;;875:44:0;;;;490:2:92;2255:22:11;-1:-1:-1;2255:22:11;;13674:2;2255:22;;875:44:0;;;;1529:19054:11;2255:22;;-1:-1:-1;;2255:22:11;;12816:1250::o;1529:19054::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1529:19054:11;;;;;;:::o;11810:1000::-;;;;;1529:19054;12311:15;;;;;;:::i;:::-;1529:19054;;;:::i;:::-;12271:12;1529:19054;;;;12301:26;12355:15;1529:19054;12355:15;;;;;;:::i;1529:19054::-;12271:12;1529:19054;;;;12345:26;12446:23;;;;;;;:::i;:::-;490:2:92;2255:22:11;;;12311:15;1529:19054;12219:574;12271:12;12219:574;;823:61:92;;;-1:-1:-1;;;;;1529:19054:11;;;12271:12;;;1529:19054;12311:15;1529:19054;;;12355:15;1529:19054;;;12389:23;1529:19054;;;12389:23;;;1529:19054;12546:25;1529:19054;;;372:2:92;2255:22:11;1529:19054;12589:14;1529:19054;;;12546:25;;;1529:19054;12446:23;1529:19054;;;12589:14;;1529:19054;;;;;12621:13;1529:19054;;;;12660:4;1529:19054;;;;-1:-1:-1;;;;;1529:19054:11;;;;;;;;;;;;;;;;;;;;;;;;12219:574;;;;;;:::i;:::-;1529:19054;12196:607;;11810:1000;:::o;1529:19054::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;7292:355:158;-1:-1:-1;;7390:251:158;;;;;7292:355::o;7390:251::-;;;;;;;1290:346:57;637:66;3321:69:61;1413:93:57;;1624:4;637:66;3550:68:61;1290:346:57:o;1413:93::-;1465:30;;;-1:-1:-1;1465:30:57;;-1:-1:-1;1465:30:57;20095:179:11;-1:-1:-1;;;;;1529:19054:11;;;20181:20;1529:19054;;;;;;;;20177:47;;20241:26;1529:19054;20095:179;:::o;20177:47::-;1529:19054;20216:8;:::o;5930:135:0:-;-1:-1:-1;;;;;6021:10:0;1529:19054:11;5999:10:0;:33;1529:19054:11;;5930:135:0:o;1529:19054:11:-;;;-1:-1:-1;;;1529:19054:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;16671:2704::-;;;1529:19054;16890:22;17244:23;;;;17222:46;17244:23;;;;:::i;:::-;17222:46;;:::i;:::-;17581:2;17561:22;;;;;;;;;;;;;;:48;;;16671:2704;17557:110;;17681:14;1529:19054;4143:23:92;;;;;:::i;:::-;490:2;2255:22:11;;;434:2:92;2255:22:11;875:44:0;;;17681:46:11;;17677:106;;1529:19054;17824:65;;;;;;;;;:::i;:::-;13414:265:159;;;1529:19054:11;13414:265:159;;;;1529:19054:11;;;;:::i;:::-;17823:144;1529:19054;8517:1041:159;17581:2:11;8517:1041:159;;13414:265;8517:1041;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1529:19054:11;;;;;;17809:187;:202;;;;8517:1041:159;17809:202:11;18100:9;18096:102;;1529:19054;;18246:17;18260:3;18246:17;;:38;;;;17809:202;18242:96;;18526:23;;;;:::i;:::-;490:2:92;2255:22:11;;;434:2:92;-1:-1:-1;;;;;18518:85:11;2255:22;875:44:0;;;;-1:-1:-1;;;;;875:44:0;18462:23:11;;1529:19054;;;-1:-1:-1;;;;;1529:19054:11;;;;-1:-1:-1;;;;;18621:2:11;1529:19054;;;;-1:-1:-1;;;;;1529:19054:11;;;;;;;18755:62;18754:78;3382:14:92;18773:44:11;2134:3;3382:14:92;18666:3:11;18428:225;-1:-1:-1;;;;;3382:14:92;;;;1529:19054:11;;18428:225;;;:::i;:::-;1529:19054;18773:44;;:::i;18755:62::-;18754:78;:::i;:::-;1529:19054;-1:-1:-1;;;;;18870:26:11;;;;:::i;:::-;1529:19054;;;;;;18899:19;13414:265:159;1529:19054:11;17581:2;1529:19054;;;-1:-1:-1;18866:132:11;;-1:-1:-1;;;19045:26:11;;-1:-1:-1;;;;;;19045:26:11;;;:::i;:::-;1529:19054;;;18899:19;13414:265:159;1529:19054:11;19008:64;17581:2;1529:19054;;;;;19008:64;:::i;:::-;1529:19054;;17581:2;1529:19054;19093:51;13414:265:159;19093:51:11;;1529:19054;17581:2;2134:3;;1529:19054;;2134:3;;1529:19054;;19093:51;;;875:44:0;19093:51:11;;:::i;:::-;2683:8:88;1529:19054:11;;;2643:3:88;1529:19054:11;;2589:104:88;16671:2704:11;:::o;18866:132::-;18954:33;;;1529:19054;18954:33;13414:265:159;1529:19054:11;18954:33;18242:96;18307:20;;;1529:19054;18307:20;13414:265:159;1529:19054:11;18307:20;18246:38;18267:17;18281:3;18267:17;;18246:38;;18096:102;18137:49;;;8517:1041:159;18137:49:11;;;-1:-1:-1;;;18137:49:11;;-1:-1:-1;;;;;;18137:49:11;;2683:8:88;1529:19054:11;;;2643:3:88;1529:19054:11;;2589:104:88;;1529:19054:11;17581:2;1529:19054;;13414:265:159;1529:19054:11;;:::i;:::-;;;;18125:62;;:::o;17809:202::-;1529:19054;17809:202;;8517:1041:159;;;;;1529:19054:11;8517:1041:159;13414:265;8517:1041;17581:2:11;8517:1041:159;;;;;;-1:-1:-1;8517:1041:159;;;1529:19054:11;8517:1041:159;;17581:2:11;8517:1041:159;13414:265;17581:2:11;875:44:0;1529:19054:11;8517:1041:159;;;;1529:19054:11;8517:1041:159;;;;;;17581:2:11;8517:1041:159;;;;;;;;;;;;17581:2:11;8517:1041:159;;;;;;;13414:265;8517:1041;;;;;;17677:106:11;17750:22;;;1529:19054;17750:22;;1529:19054;17750:22;17557:110;17632:24;;;1529:19054;17632:24;;1529:19054;17632:24;17561:48;17587:22;17607:2;17587:22;;;17561:48;;6145:1089:158;-1:-1:-1;;;;;6813:405:158;;;;;;-1:-1:-1;6813:405:158;;-1:-1:-1;;6813:405:158;6145:1089::o","linkReferences":{},"immutableReferences":{"17":[{"start":1320,"length":32},{"start":1497,"length":32},{"start":1646,"length":32},{"start":1757,"length":32},{"start":1939,"length":32},{"start":4449,"length":32},{"start":5111,"length":32},{"start":6266,"length":32}]}},"methodIdentifiers":{"addStake(uint32)":"0396cb60","cancelOwnershipHandover()":"54d1f13d","cancelWithdrawalRequest()":"e714a028","completeOwnershipHandover(address)":"f04e283e","deposit()":"d0e30db0","depositFor(address)":"aa67c919","entryPoint()":"b0d691fe","executeWithdrawalRequest(address)":"3261fd58","feeCollector()":"c415b95c","getBalance(address)":"f8b2cb4f","getDeposit()":"c399ec88","getHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,uint48,uint48,uint32)":"def04257","minDeposit()":"41b3d185","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","parsePaymasterAndData(bytes)":"94d4ad60","paymasterIdBalances(address)":"a40a7ddc","paymasterIdWithdrawalDelay()":"f0c12a32","postOp(uint8,bytes,uint256,uint256)":"7c627b21","refundBalances(address[],uint256[])":"f8cf826d","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","setFeeCollector(address)":"a42dce80","setMinDeposit(uint256)":"8fcc9cfb","setSigner(address)":"6c19e783","setTrustedPaymasterId(address,bool)":"8c253a39","setUnaccountedGas(uint256)":"73acf542","submitWithdrawalRequest(address,uint256)":"59ffb130","transferOwnership(address)":"f2fde38b","unaccountedGas()":"ab94cad7","unlockStake()":"bb9fe6bf","validatePaymasterUserOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),bytes32,uint256)":"52b7512c","verifyingSigner()":"23d9ac9b","withdrawERC20(address,address,uint256)":"44004cc1","withdrawEth(address,uint256)":"1b9a91a4","withdrawStake(address)":"c23a5cea","withdrawTo(address,uint256)":"205c2878"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPointArg\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifyingSignerArg\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"feeCollectorArg\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"unaccountedGasArg\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterIdWithdrawalDelayArg\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minDepositArg\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CanNotWithdrawToZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CanNotWithdrawZeroAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DepositCanNotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FeeCollectorCanNotBeContract\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FeeCollectorCanNotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientFundsForPaymasterId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientFundsInGasTank\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidArrayLengths\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPriceMarkup\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LowDeposit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoRequestSubmitted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PaymasterIdCanNotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PostOpGasLimitTooLow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"clearanceTime\",\"type\":\"uint256\"}],\"name\":\"RequestNotClearedYet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubmitRequestInstead\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnaccountedGasTooHigh\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UseDepositForInstead\",\"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\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"EthWithdrawn\",\"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\":\"FeeCollectorChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldValue\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newValue\",\"type\":\"uint256\"}],\"name\":\"FixedPriceMarkupChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_paymasterId\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_charge\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_premium\",\"type\":\"uint256\"}],\"name\":\"GasBalanceDeducted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_paymasterId\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"GasDeposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_paymasterId\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"GasWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldValue\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newValue\",\"type\":\"uint256\"}],\"name\":\"MinDepositChanged\",\"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\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Received\",\"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\":\"paymasterId\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isTrusted\",\"type\":\"bool\"}],\"name\":\"TrustedPaymasterIdSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"oldValue\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"newValue\",\"type\":\"uint256\"}],\"name\":\"UnaccountedGasChanged\",\"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\":\"VerifyingSignerChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"paymasterId\",\"type\":\"address\"}],\"name\":\"WithdrawalRequestCancelledFor\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"WithdrawalRequestSubmitted\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"unstakeDelaySec\",\"type\":\"uint32\"}],\"name\":\"addStake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelWithdrawalRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":[{\"internalType\":\"address\",\"name\":\"paymasterId\",\"type\":\"address\"}],\"name\":\"depositFor\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"entryPoint\",\"outputs\":[{\"internalType\":\"contract IEntryPoint\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"paymasterId\",\"type\":\"address\"}],\"name\":\"executeWithdrawalRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeCollector\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"paymasterId\",\"type\":\"address\"}],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"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\":\"address\",\"name\":\"paymasterId\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"validUntil\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"validAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint32\",\"name\":\"priceMarkup\",\"type\":\"uint32\"}],\"name\":\"getHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"}],\"name\":\"parsePaymasterAndData\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"paymasterId\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"validUntil\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"validAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint32\",\"name\":\"priceMarkup\",\"type\":\"uint32\"},{\"internalType\":\"uint128\",\"name\":\"paymasterValidationGasLimit\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint128\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"paymasterIdBalances\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paymasterIdWithdrawalDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"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\":\"paymasterIds\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"refundBalances\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newFeeCollector\",\"type\":\"address\"}],\"name\":\"setFeeCollector\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newMinDeposit\",\"type\":\"uint256\"}],\"name\":\"setMinDeposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newVerifyingSigner\",\"type\":\"address\"}],\"name\":\"setSigner\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"paymasterId\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isTrusted\",\"type\":\"bool\"}],\"name\":\"setTrustedPaymasterId\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"setUnaccountedGas\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"submitWithdrawalRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"unlockStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"nonpayable\",\"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\":\"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\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"author\":\"livingrockrisesShivaanshK\",\"details\":\"This contract is used to sponsor the transaction fees of the user operations Uses a verifying signer to provide the signature if predetermined conditions are met regarding the user operation calldata. Also this paymaster is Singleton in nature which means multiple Dapps/Wallet clients willing to sponsor the transactions can share this paymaster. Maintains it's own accounting of the gas balance for each Dapp/Wallet client and Manages it's own deposit on the EntryPoint.\",\"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.\"}],\"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.\"}},\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"cancelWithdrawalRequest()\":{\"details\":\"Cancel a withdrawal request for the paymasterId (Dapp Depositor address)\"},\"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`.\"},\"deposit()\":{\"details\":\"Override the default implementation.\"},\"depositFor(address)\":{\"details\":\"Add a deposit for this paymaster and given paymasterId (Dapp Depositor address), used for paying for transaction fees\",\"params\":{\"paymasterId\":\"dapp identifier for which deposit is being made\"}},\"executeWithdrawalRequest(address)\":{\"details\":\"Execute a withdrawal request for the paymasterId (Dapp Depositor address) Request must be cleared by the withdrawal delay period\",\"params\":{\"paymasterId\":\"paymasterId (Dapp Depositor address)\"}},\"getBalance(address)\":{\"details\":\"get the current deposit for paymasterId (Dapp Depositor address)\",\"params\":{\"paymasterId\":\"dapp identifier\"}},\"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().\"}},\"refundBalances(address[],uint256[])\":{\"details\":\"Refund balances for multiple paymasterIds PM charges more than it should to protect itself. This function is used to refund the extra amount when the real consumption is known.\",\"params\":{\"amounts\":\"The amounts to refund\",\"paymasterIds\":\"The paymasterIds to refund\"}},\"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.\"},\"setFeeCollector(address)\":{\"details\":\"Set a new fee collector address. Can only be called by the owner of the contract.\",\"params\":{\"newFeeCollector\":\"The new address to be set as the fee collector.\"}},\"setMinDeposit(uint256)\":{\"details\":\"Set a new minimum deposit value. Can only be called by the owner of the contract.\",\"params\":{\"newMinDeposit\":\"The new minimum deposit value to be set.\"}},\"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.\"}},\"setTrustedPaymasterId(address,bool)\":{\"details\":\"Set a new trusted paymasterId. Can only be called by the owner of the contract.\",\"params\":{\"isTrusted\":\"Whether the paymasterId is trusted or not.\",\"paymasterId\":\"The paymasterId to be set as trusted.\"}},\"setUnaccountedGas(uint256)\":{\"details\":\"Set a new unaccountedGas value.\",\"params\":{\"value\":\"The new value to be set as the unaccountedGas.\"}},\"submitWithdrawalRequest(address,uint256)\":{\"details\":\"Submit a withdrawal request for the paymasterId (Dapp Depositor address)\",\"params\":{\"amount\":\"amount to withdraw\",\"withdrawAddress\":\"address to send the funds to\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"},\"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\"}},\"withdrawStake(address)\":{\"params\":{\"withdrawAddress\":\"- The address to send withdrawn value.\"}},\"withdrawTo(address,uint256)\":{\"params\":{\"amount\":\"- Amount to withdraw.\",\"withdrawAddress\":\"- Target to send to.\"}}},\"title\":\"BiconomySponsorshipPaymaster\",\"version\":1},\"userdoc\":{\"errors\":{\"CanNotWithdrawToZeroAddress()\":[{\"notice\":\"Throws when trying to withdraw to address(0)\"}],\"CanNotWithdrawZeroAmount()\":[{\"notice\":\"Throws when trying to withdraw zero amount\"}],\"DepositCanNotBeZero()\":[{\"notice\":\"Throws when the 0 has been provided as deposit\"}],\"FeeCollectorCanNotBeContract()\":[{\"notice\":\"Throws when the fee collector address provided is a deployed contract\"}],\"FeeCollectorCanNotBeZero()\":[{\"notice\":\"Throws when the fee collector address provided is address(0)\"}],\"InsufficientFunds()\":[{\"notice\":\"Throws when insufficient funds to withdraw\"}],\"InsufficientFundsForPaymasterId()\":[{\"notice\":\"Throws when insufficient funds for paymasterid\"}],\"InsufficientFundsInGasTank()\":[{\"notice\":\"Thrown when trying to withdraw more than the balance\"}],\"InvalidArrayLengths()\":[{\"notice\":\"Thrown when the array lengths are not equal\"}],\"InvalidPriceMarkup()\":[{\"notice\":\"Throws when invalid signature length in paymasterAndData\"}],\"InvalidSignatureLength()\":[{\"notice\":\"Throws when invalid signature length in paymasterAndData\"}],\"LowDeposit()\":[{\"notice\":\"Thrown when deposit is too low to reach minDeposit\"}],\"NoRequestSubmitted()\":[{\"notice\":\"Throws when no request has been submitted\"}],\"PaymasterIdCanNotBeZero()\":[{\"notice\":\"Throws when the paymaster address provided is address(0)\"}],\"PostOpGasLimitTooLow()\":[{\"notice\":\"Throws when postOp gas limit is too low\"}],\"RequestNotClearedYet(uint256)\":[{\"notice\":\"Thrown when trying to execute withdrawal request before delay has passed\"}],\"SubmitRequestInstead()\":[{\"notice\":\"Thrown when trying to directly withdraw instead of submitting a request\"}],\"UnaccountedGasTooHigh()\":[{\"notice\":\"Throws when trying unaccountedGas is too high\"}],\"UseDepositForInstead()\":[{\"notice\":\"Throws when calling deposit()\"}],\"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.\"},\"getDeposit()\":{\"notice\":\"Return current paymaster's deposit on the entryPoint.\"},\"getHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,uint48,uint48,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.\"},\"setFeeCollector(address)\":{\"notice\":\"If _newFeeCollector is set to zero address, it will revert with an error. After setting the new fee collector address, it will emit an event FeeCollectorChanged.\"},\"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 VerifyingSignerChanged.\"},\"setUnaccountedGas(uint256)\":{\"notice\":\"only to be called by the owner of the contract.\"},\"unlockStake()\":{\"notice\":\"Unlock the stake, in order to withdraw it. The paymaster can't serve requests once unlocked, until it calls addStake again\"},\"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)\"},\"withdrawTo(address,uint256)\":{\"notice\":\"Withdraw value from the deposit.\"}},\"notice\":\"Based on Infinitism's 'VerifyingPaymaster' contract\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/sponsorship/BiconomySponsorshipPaymaster.sol\":\"BiconomySponsorshipPaymaster\"},\"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/BiconomySponsorshipPaymasterErrors.sol\":{\"keccak256\":\"0xf7bfb4912e8d118a3f1f4f82a19834a686f105ad142afb7203adfa2ff38d7000\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://88593bfdb72f8585853a91e675367ac718d1daf5e62c4192459d73cbaeeb07a5\",\"dweb:/ipfs/QmXFRjaPKuS9d1GmMxvrS4JZN3KBmWWYt8VNJZxLGE2jkB\"]},\"contracts/interfaces/IBiconomySponsorshipPaymaster.sol\":{\"keccak256\":\"0x37f183fefaab68aa36dba3045c2c232f757de24faba3db2e5b5b20baa6e4a6f5\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://9fc1df58e44e9c3fd2c09d5d2f7bab83336d1cffde987c9d2575a4d82a04c7cc\",\"dweb:/ipfs/QmWAjzjybXBztdnrnRhRYWSq7rQ56Lou5Amhf8C6wohCdz\"]},\"contracts/sponsorship/BiconomySponsorshipPaymaster.sol\":{\"keccak256\":\"0x8a37e63657c335f3967bbd230e03d8379132000d9ba9546de1c781e06cebc290\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://33e2c736aff8eff527a19ba6f4d6056d7d37918abe81f18b12392229e583a480\",\"dweb:/ipfs/QmbL4vCJ6r3XWicinxcqwT9cN7eGZqhzBMzKC9d9Ab8zqN\"]},\"contracts/utils/SoladyOwnable.sol\":{\"keccak256\":\"0xa8d7b45c34f96e24ae669cdc5add90088b8236a101cb36a7148b05c678d2f8ce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05d1686b40ce43c7ebb674c64ec6695c7822f3380954028c218bf59b64f8165d\",\"dweb:/ipfs/Qmc6Vr8Ru1EpupJ7gp6kmdPA5BqcoPY5GqF8ZLvMPzvBaX\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"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/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":"contract IEntryPoint","name":"entryPointArg","type":"address"},{"internalType":"address","name":"verifyingSignerArg","type":"address"},{"internalType":"address","name":"feeCollectorArg","type":"address"},{"internalType":"uint256","name":"unaccountedGasArg","type":"uint256"},{"internalType":"uint256","name":"paymasterIdWithdrawalDelayArg","type":"uint256"},{"internalType":"uint256","name":"minDepositArg","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyInitialized"},{"inputs":[],"type":"error","name":"CanNotWithdrawToZeroAddress"},{"inputs":[],"type":"error","name":"CanNotWithdrawZeroAmount"},{"inputs":[],"type":"error","name":"DepositCanNotBeZero"},{"inputs":[],"type":"error","name":"FeeCollectorCanNotBeContract"},{"inputs":[],"type":"error","name":"FeeCollectorCanNotBeZero"},{"inputs":[],"type":"error","name":"InsufficientFunds"},{"inputs":[],"type":"error","name":"InsufficientFundsForPaymasterId"},{"inputs":[],"type":"error","name":"InsufficientFundsInGasTank"},{"inputs":[],"type":"error","name":"InvalidArrayLengths"},{"inputs":[],"type":"error","name":"InvalidPriceMarkup"},{"inputs":[],"type":"error","name":"InvalidSignatureLength"},{"inputs":[],"type":"error","name":"LowDeposit"},{"inputs":[],"type":"error","name":"NewOwnerIsZeroAddress"},{"inputs":[],"type":"error","name":"NoHandoverRequest"},{"inputs":[],"type":"error","name":"NoRequestSubmitted"},{"inputs":[],"type":"error","name":"PaymasterIdCanNotBeZero"},{"inputs":[],"type":"error","name":"PostOpGasLimitTooLow"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint256","name":"clearanceTime","type":"uint256"}],"type":"error","name":"RequestNotClearedYet"},{"inputs":[],"type":"error","name":"SubmitRequestInstead"},{"inputs":[],"type":"error","name":"UnaccountedGasTooHigh"},{"inputs":[],"type":"error","name":"Unauthorized"},{"inputs":[],"type":"error","name":"UseDepositForInstead"},{"inputs":[],"type":"error","name":"VerifyingSignerCanNotBeContract"},{"inputs":[],"type":"error","name":"VerifyingSignerCanNotBeZero"},{"inputs":[],"type":"error","name":"WithdrawalFailed"},{"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":"oldFeeCollector","type":"address","indexed":true},{"internalType":"address","name":"newFeeCollector","type":"address","indexed":true},{"internalType":"address","name":"actor","type":"address","indexed":true}],"type":"event","name":"FeeCollectorChanged","anonymous":false},{"inputs":[{"internalType":"uint256","name":"oldValue","type":"uint256","indexed":true},{"internalType":"uint256","name":"newValue","type":"uint256","indexed":true}],"type":"event","name":"FixedPriceMarkupChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"_paymasterId","type":"address","indexed":true},{"internalType":"uint256","name":"_charge","type":"uint256","indexed":true},{"internalType":"uint256","name":"_premium","type":"uint256","indexed":true}],"type":"event","name":"GasBalanceDeducted","anonymous":false},{"inputs":[{"internalType":"address","name":"_paymasterId","type":"address","indexed":true},{"internalType":"uint256","name":"_value","type":"uint256","indexed":true}],"type":"event","name":"GasDeposited","anonymous":false},{"inputs":[{"internalType":"address","name":"_paymasterId","type":"address","indexed":true},{"internalType":"address","name":"_to","type":"address","indexed":true},{"internalType":"uint256","name":"_value","type":"uint256","indexed":true}],"type":"event","name":"GasWithdrawn","anonymous":false},{"inputs":[{"internalType":"uint256","name":"oldValue","type":"uint256","indexed":true},{"internalType":"uint256","name":"newValue","type":"uint256","indexed":true}],"type":"event","name":"MinDepositChanged","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":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Received","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":"paymasterId","type":"address","indexed":true},{"internalType":"bool","name":"isTrusted","type":"bool","indexed":false}],"type":"event","name":"TrustedPaymasterIdSet","anonymous":false},{"inputs":[{"internalType":"uint256","name":"oldValue","type":"uint256","indexed":true},{"internalType":"uint256","name":"newValue","type":"uint256","indexed":true}],"type":"event","name":"UnaccountedGasChanged","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":"VerifyingSignerChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"paymasterId","type":"address","indexed":false}],"type":"event","name":"WithdrawalRequestCancelledFor","anonymous":false},{"inputs":[{"internalType":"address","name":"withdrawAddress","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"WithdrawalRequestSubmitted","anonymous":false},{"inputs":[{"internalType":"uint32","name":"unstakeDelaySec","type":"uint32"}],"stateMutability":"payable","type":"function","name":"addStake"},{"inputs":[],"stateMutability":"payable","type":"function","name":"cancelOwnershipHandover"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"cancelWithdrawalRequest"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"stateMutability":"payable","type":"function","name":"completeOwnershipHandover"},{"inputs":[],"stateMutability":"payable","type":"function","name":"deposit"},{"inputs":[{"internalType":"address","name":"paymasterId","type":"address"}],"stateMutability":"payable","type":"function","name":"depositFor"},{"inputs":[],"stateMutability":"view","type":"function","name":"entryPoint","outputs":[{"internalType":"contract IEntryPoint","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"paymasterId","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"executeWithdrawalRequest"},{"inputs":[],"stateMutability":"view","type":"function","name":"feeCollector","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"paymasterId","type":"address"}],"stateMutability":"view","type":"function","name":"getBalance","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"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":"address","name":"paymasterId","type":"address"},{"internalType":"uint48","name":"validUntil","type":"uint48"},{"internalType":"uint48","name":"validAfter","type":"uint48"},{"internalType":"uint32","name":"priceMarkup","type":"uint32"}],"stateMutability":"view","type":"function","name":"getHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"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":"bytes","name":"paymasterAndData","type":"bytes"}],"stateMutability":"pure","type":"function","name":"parsePaymasterAndData","outputs":[{"internalType":"address","name":"paymasterId","type":"address"},{"internalType":"uint48","name":"validUntil","type":"uint48"},{"internalType":"uint48","name":"validAfter","type":"uint48"},{"internalType":"uint32","name":"priceMarkup","type":"uint32"},{"internalType":"uint128","name":"paymasterValidationGasLimit","type":"uint128"},{"internalType":"uint128","name":"paymasterPostOpGasLimit","type":"uint128"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"paymasterIdBalances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paymasterIdWithdrawalDelay","outputs":[{"internalType":"uint256","name":"","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":"paymasterIds","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"payable","type":"function","name":"refundBalances"},{"inputs":[],"stateMutability":"payable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"payable","type":"function","name":"requestOwnershipHandover"},{"inputs":[{"internalType":"address","name":"newFeeCollector","type":"address"}],"stateMutability":"payable","type":"function","name":"setFeeCollector"},{"inputs":[{"internalType":"uint256","name":"newMinDeposit","type":"uint256"}],"stateMutability":"payable","type":"function","name":"setMinDeposit"},{"inputs":[{"internalType":"address","name":"newVerifyingSigner","type":"address"}],"stateMutability":"payable","type":"function","name":"setSigner"},{"inputs":[{"internalType":"address","name":"paymasterId","type":"address"},{"internalType":"bool","name":"isTrusted","type":"bool"}],"stateMutability":"payable","type":"function","name":"setTrustedPaymasterId"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"payable","type":"function","name":"setUnaccountedGas"},{"inputs":[{"internalType":"address","name":"withdrawAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"submitWithdrawalRequest"},{"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":"nonpayable","type":"function","name":"unlockStake"},{"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":"nonpayable","type":"function","name":"withdrawERC20"},{"inputs":[{"internalType":"address payable","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"withdrawEth"},{"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":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"addStake(uint32)":{"params":{"unstakeDelaySec":"- The unstake delay for this paymaster. Can only be increased."}},"cancelOwnershipHandover()":{"details":"Cancels the two-step ownership handover to the caller, if any."},"cancelWithdrawalRequest()":{"details":"Cancel a withdrawal request for the paymasterId (Dapp Depositor address)"},"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`."},"deposit()":{"details":"Override the default implementation."},"depositFor(address)":{"details":"Add a deposit for this paymaster and given paymasterId (Dapp Depositor address), used for paying for transaction fees","params":{"paymasterId":"dapp identifier for which deposit is being made"}},"executeWithdrawalRequest(address)":{"details":"Execute a withdrawal request for the paymasterId (Dapp Depositor address) Request must be cleared by the withdrawal delay period","params":{"paymasterId":"paymasterId (Dapp Depositor address)"}},"getBalance(address)":{"details":"get the current deposit for paymasterId (Dapp Depositor address)","params":{"paymasterId":"dapp identifier"}},"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()."}},"refundBalances(address[],uint256[])":{"details":"Refund balances for multiple paymasterIds PM charges more than it should to protect itself. This function is used to refund the extra amount when the real consumption is known.","params":{"amounts":"The amounts to refund","paymasterIds":"The paymasterIds to refund"}},"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."},"setFeeCollector(address)":{"details":"Set a new fee collector address. Can only be called by the owner of the contract.","params":{"newFeeCollector":"The new address to be set as the fee collector."}},"setMinDeposit(uint256)":{"details":"Set a new minimum deposit value. Can only be called by the owner of the contract.","params":{"newMinDeposit":"The new minimum deposit value to be set."}},"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."}},"setTrustedPaymasterId(address,bool)":{"details":"Set a new trusted paymasterId. Can only be called by the owner of the contract.","params":{"isTrusted":"Whether the paymasterId is trusted or not.","paymasterId":"The paymasterId to be set as trusted."}},"setUnaccountedGas(uint256)":{"details":"Set a new unaccountedGas value.","params":{"value":"The new value to be set as the unaccountedGas."}},"submitWithdrawalRequest(address,uint256)":{"details":"Submit a withdrawal request for the paymasterId (Dapp Depositor address)","params":{"amount":"amount to withdraw","withdrawAddress":"address to send the funds to"}},"transferOwnership(address)":{"details":"Allows the owner to transfer the ownership to `newOwner`."},"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"}},"withdrawStake(address)":{"params":{"withdrawAddress":"- The address to send withdrawn value."}},"withdrawTo(address,uint256)":{"params":{"amount":"- Amount to withdraw.","withdrawAddress":"- Target to send to."}}},"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."},"getDeposit()":{"notice":"Return current paymaster's deposit on the entryPoint."},"getHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,uint48,uint48,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."},"setFeeCollector(address)":{"notice":"If _newFeeCollector is set to zero address, it will revert with an error. After setting the new fee collector address, it will emit an event FeeCollectorChanged."},"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 VerifyingSignerChanged."},"setUnaccountedGas(uint256)":{"notice":"only to be called by the owner of the contract."},"unlockStake()":{"notice":"Unlock the stake, in order to withdraw it. The paymaster can't serve requests once unlocked, until it calls addStake again"},"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)"},"withdrawTo(address,uint256)":{"notice":"Withdraw value from the deposit."}},"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/sponsorship/BiconomySponsorshipPaymaster.sol":"BiconomySponsorshipPaymaster"},"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/BiconomySponsorshipPaymasterErrors.sol":{"keccak256":"0xf7bfb4912e8d118a3f1f4f82a19834a686f105ad142afb7203adfa2ff38d7000","urls":["bzz-raw://88593bfdb72f8585853a91e675367ac718d1daf5e62c4192459d73cbaeeb07a5","dweb:/ipfs/QmXFRjaPKuS9d1GmMxvrS4JZN3KBmWWYt8VNJZxLGE2jkB"],"license":"LGPL-3.0-only"},"contracts/interfaces/IBiconomySponsorshipPaymaster.sol":{"keccak256":"0x37f183fefaab68aa36dba3045c2c232f757de24faba3db2e5b5b20baa6e4a6f5","urls":["bzz-raw://9fc1df58e44e9c3fd2c09d5d2f7bab83336d1cffde987c9d2575a4d82a04c7cc","dweb:/ipfs/QmWAjzjybXBztdnrnRhRYWSq7rQ56Lou5Amhf8C6wohCdz"],"license":"GPL-3.0"},"contracts/sponsorship/BiconomySponsorshipPaymaster.sol":{"keccak256":"0x8a37e63657c335f3967bbd230e03d8379132000d9ba9546de1c781e06cebc290","urls":["bzz-raw://33e2c736aff8eff527a19ba6f4d6056d7d37918abe81f18b12392229e583a480","dweb:/ipfs/QmbL4vCJ6r3XWicinxcqwT9cN7eGZqhzBMzKC9d9Ab8zqN"],"license":"GPL-3.0"},"contracts/utils/SoladyOwnable.sol":{"keccak256":"0xa8d7b45c34f96e24ae669cdc5add90088b8236a101cb36a7148b05c678d2f8ce","urls":["bzz-raw://05d1686b40ce43c7ebb674c64ec6695c7822f3380954028c218bf59b64f8165d","dweb:/ipfs/Qmc6Vr8Ru1EpupJ7gp6kmdPA5BqcoPY5GqF8ZLvMPzvBaX"],"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/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/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":11} \ No newline at end of file diff --git a/scripts/bash-deploy/artifacts/BiconomyTokenPaymaster/BiconomyTokenPaymaster.json b/scripts/bash-deploy/artifacts/BiconomyTokenPaymaster/BiconomyTokenPaymaster.json index a6bb22e..914db5d 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":"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 +{"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:12:-:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;2174:25049:12;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;2174:25049:12;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;2174:25049:12;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;2174:25049:12;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2174:25049:12;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2174:25049:12;;;;-1:-1:-1;;;;;2174:25049:12;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2174:25049:12;;;;;;;:::o;:::-;;;;;-1:-1:-1;;2174:25049:12;;;;-1:-1:-1;;;;;2174:25049:12;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;2174:25049:12;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;:::i;:::-;-1:-1:-1;;;;;2174:25049:12;;;;;;;;;:::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:12;;-1:-1:-1;;;;;2174:25049:12;;4797:32;4793:99;;2870:7;4905:42;;4901:103;;2870:7;;;;5018:51;5014:118;;2174:25049;;-1:-1:-1;;;5145:36:12;;;2174:25049;5145:36;2174:25049;-1:-1:-1;;;;;2174:25049:12;;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:12;;2870:7;5750:23;-1:-1:-1;;;;;2174:25049:12;2870:7;;;;5724:25;2870:7;;;;;;;5724:50;2870:7;;;;;;;;-1:-1:-1;;;2174:25049:12;2870:7;;;;;-1:-1:-1;;;;;2174:25049:12;;;-1:-1:-1;;;;;;2870:7:12;;;;;;;;;;;;-1:-1:-1;2870:7:12;;;;;;;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:14:-;;;;377:1683:57;1264:723:14;;;;377:1683:57;:::i;:::-;2870:7:12;;;;1446:41:14;1442:109;;2174:25049:12;2870:7;;-1:-1:-1;;;;;;2870:7:12;-1:-1:-1;;;;;2174:25049:12;;;2870:7;;;;;;1660:32:14;;-1:-1:-1;1742:3:14;2870:7:12;;1723:17:14;;;;;1768:9;1761:68;;:25;:17;1768:9;;-1:-1:-1;1768:9:14;;;:::i;:::-;-1:-1:-1;;;;;2174:25049:12;;;1761:25:14;1618:32;2174:25049:12;1787:22:14;;-1:-1:-1;;;;;2174:25049:12;;;1787:22:14;2174:25049:12;;-1:-1:-1;;;1761:68:14;;-1:-1:-1;;;;;2174:25049:12;;;1761:68:14;;;2174:25049:12;-1:-1:-1;;2174:25049:12;;;;;;;;;2870:7;2174:25049;;;;;;;1761:68:14;;;;;;;;;;1618:32;1761:68;;;1742:3;1894:20;1868:46;1894:20;;;;;:::i;:::-;2174:25049:12;;;;;1894:20:14;1868:23;1881:9;;;;;:::i;:::-;-1:-1:-1;;;;;2174:25049:12;1720:1:14;2870:7:12;;;;;;;;;;;;1868:23:14;2174:25049:12;;;;;;;;;;;;1868:46:14;2870:7:12;1708:13:14;;1761:68;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;1442:109;1510:30;;;-1:-1:-1;1510:30:14;;-1:-1:-1;1510:30:14;1021:171:0;198:181:17;;;;;;-1:-1:-1;;;;;5710:347:158;-1:-1:-1;;5710:347:158;;;-1:-1:-1;5710:347:158;-1:-1:-1;;5710:347:158;2174:25049:12;;-1:-1:-1;;;3843:80:0;;-1:-1:-1;;;3843:80:0;;;2174:25049:12;;;3843:80:0;2174:25049:12;-1:-1:-1;;;;;2174:25049:12;;3843:80:0;;;;;;;-1:-1:-1;3843:80:0;;;1021:171;2174:25049:12;;;;1159:26:0;;1021:171::o;2174:25049:12:-;;;-1:-1:-1;;;2174:25049:12;;;3843:80:0;2174:25049:12;;;;3843:80:0;2174:25049:12;;;;;;;;;;;3843:80:0;;;;2174:25049:12;3843:80:0;2174:25049:12;3843:80:0;;;;;;;:::i;:::-;;;;198:181:17;;;;;;;24713:455:12;2870:7;;24797:27;;;;:25;;-1:-1:-1;;;;;2174:25049:12;2870:7;2174:25049;24797:25;2174:25049;;-1:-1:-1;;;24797:27:12;;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:12:-:0;;;;;;;;;-1:-1:-1;2174:25049:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2174:25049:12;;;;;;:::i;:::-;11885:237:158;;;;;2174:25049:12;11885:237:158;;;;2174:25049:12;;;;;;;;;;-1:-1:-1;2174:25049:12;;-1:-1:-1;;2174:25049:12;;;;;;:::i;:::-;12478:70:158;;:::i;:::-;8479:183;;;;;;8681:8;;;:::i;:::-;2174:25049:12;;8479:183:158;;;;2174:25049:12;8479:183:158;;2174:25049:12;-1:-1:-1;2174:25049:12;;-1:-1:-1;;2174:25049:12;;;;;;:::i;:::-;12478:70:158;;:::i;:::-;10506:526;;;;;;2174:25049:12;10506:526:158;;;;;;;;;;11051:12;10506:526;;11051:12;:::i;10506:526::-;;;;2174:25049:12;10506:526:158;;2174:25049:12;;;;;;;;;;;;;;;;-1:-1:-1;;;;;845:38:14;2174:25049:12;;;;;-1:-1:-1;2174:25049:12;;-1:-1:-1;;2174:25049:12;;;;;;:::i;:::-;12478:70:158;;:::i;:::-;2174:25049:12;;-1:-1:-1;;;11937:17:12;;-1:-1:-1;;;;;2174:25049:12;;;;;;;;;11937:17;;;;;;;11958:1;11937:17;2174:25049;11937:17;;;;;2174:25049;;;11937:22;11933:140;;-1:-1:-1;;;;;2174:25049:12;;;12151:92;2174:25049;12151:92;12258:59;;;;2174:25049;;11933:140;-1:-1:-1;;;12039:23:12;;2174:25049;24852:23;12039;11937:17;;;;2174:25049;11937:17;2174:25049;11937:17;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2174:25049;;;;;;;;;;-1:-1:-1;2174:25049:12;;-1:-1:-1;;2174:25049:12;;;;;;:::i;:::-;;;-1:-1:-1;;2174:25049:12;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;12478:70:158;;:::i;:::-;2174:25049:12;;-1:-1:-1;;;;;2174:25049:12;;;;;;;;;;;;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:12;;;;;;;12788:25;2174:25049;;;;-1:-1:-1;;;;;2174:25049:12;;;;;;;;-1:-1:-1;;2174:25049:12;;;;;;;;;2962:3;-1:-1:-1;;;;;;;2962:3:12;;;;;;;;;;;;2174:25049;;;;;;;-1:-1:-1;;;12909:39:12;;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:12;;2174:25049;11346:28;25123;24895:145;-1:-1:-1;;;25009:20:12;;2174:25049;10629:20;25009;24899:87;2962:3;24944:42;;;24899:87;;;24793:93;-1:-1:-1;;;24852:23:12;;2174:25049;24852:23;;24797:27;;;;2174:25049;24797:27;2174:25049;24797:27;;;;;;;:::i;:::-;;;;;2174:25049;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2174:25049:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2174:25049:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1181:103:57;;:::i;:::-;15500:10:12;-1:-1:-1;;;;;15500:10:12;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:61;-1:-1:-1;;;;;;;;;;;3550:68:61;2174:25049:12;;15500:55;;;;;:::i;:::-;2174:25049;;15500:55;;;;;2174:25049;;;;;;;;;15500:55;2174:25049;;;-1:-1:-1;2174:25049:12;;-1:-1:-1;;2174:25049:12;;;;;;:::i;:::-;;;;;;;;;;;;12478:70:158;;:::i;:::-;3075:3:12;10465:45;;:95;;;;2174:25049;10461:199;;-1:-1:-1;;;;;2174:25049:12;;;;10704:25;2174:25049;;;;;;;;;;;;;;;;;2962:3;;-1:-1:-1;;;;2962:3:12;2174:25049;2962:3;;;-1:-1:-1;;;2962:3:12;;;;2174:25049;;;;10859:77;;;;2174:25049;;10461:199;-1:-1:-1;;;10629:20:12;;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:12;3569:35:0;;2174:25049:12;;;;3569:35:0;2174:25049:12;3569:10:0;-1:-1:-1;;;;;2174:25049:12;3569:35:0;;;;;;;;;;2174:25049:12;;;;;;;;;3569:35:0;;2174:25049:12;3569:35:0;;2174:25049:12;3569:35:0;;;;;;2174:25049:12;3569:35:0;;;:::i;:::-;;;2174:25049:12;;;;;;;3569:35:0;;2174:25049:12;-1:-1:-1;2174:25049:12;;3569:35:0;;;-1:-1:-1;3569:35:0;;;2174:25049:12;;;;;;;;;;;;;;;;;-1:-1:-1;;2174:25049:12;;;;;;;:::i;:::-;12478:70:158;;:::i;:::-;-1:-1:-1;;;;;2107:10:0;2174:25049:12;2107:41:0;;;;;;-1:-1:-1;;;;;2107:41:0;2174:25049:12;;;;;;;;;;;;;2107:41:0;;2174:25049:12;;2107:41:0;;2174:25049:12;2107:41:0;;;;;;;;2174:25049:12;;2107:41:0;;;;;:::i;:::-;2174:25049:12;;2107:41:0;2174:25049:12;2107:41:0;2174:25049:12;;;;-1:-1:-1;2174:25049:12;;-1:-1:-1;;2174:25049:12;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12478:70:158;;;;;:::i;:::-;2174:25049:12;;;;13882:44;13878:112;;14005:13;14047:3;2174:25049;;14020:25;;;;;14080:17;-1:-1:-1;;;;;14080:17:12;2174:25049;14080:17;;;:::i;:::-;2174:25049;;;14099:15;;;;:::i;:::-;2174:25049;;;-1:-1:-1;;;;;2174:25049:12;;;;;;4567:47:51;;;;2174:25049:12;;;4567:47:51;;;2174:25049:12;4567:47:51;;2174:25049:12;2132:17:14;;4567:47:51;2174:25049:12;;;4567:47:51;;;;;;;:::i;:::-;9138:199;;;;;;;;;;9353:80;;;14047:3:12;4629:45:51;;;4625:201;;14047:3:12;2174:25049;;;;;;;;;;;;;;;;;;;;14005:13;;4625:201:51;4717:43;4802:12;2174:25049:12;;;;;;;;4717:43:51;;;2174:25049:12;4717:43:51;;2174:25049:12;;4567:47:51;2174:25049:12;;;4567:47:51;4717:43;;;4567:47;4717:43;;:::i;:::-;;;:::i;:::-;4802:12;;:::i;:::-;4625:201;;;;9353:80;9365:67;;-1:-1:-1;9365:15:51;;9383:26;;;:30;;9365:67;9353:80;;;;9365:67;9416:16;;9365:67;;14020:25:12;;;;2174:25049;;;;;;;;;;;;;;;;;;;;;;;14140:36;;;;2174:25049;;;;;-1:-1:-1;;;;;2174:25049:12;;;;;-1:-1:-1;2174:25049:12;;;;;;;;;;;;;13878:112;-1:-1:-1;;;13949:30:12;;2174:25049;13949:30;;2174:25049;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2174:25049:12;;;;;;-1:-1:-1;;;;;2174:25049:12;;;;;;;12478:70:158;;:::i;:::-;-1:-1:-1;;3536:32:14;2174:25049:12;;;3536:32:14;2174:25049:12;;;;;;;;;;;;;;;;12478:70:158;;:::i;:::-;1770:10:0;-1:-1:-1;;;;;1770:10:0;2174:25049:12;1770:24:0;;;;;2174:25049:12;;;;;;;;;;;;;1770:24:0;;;;;;;;;;2174:25049:12;;;;;;;;;-1:-1:-1;;2174:25049:12;;;;;;;;-1:-1:-1;;;;;2174:25049:12;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;657:39:0;2174:25049:12;;;;;;;;;;;;;;;;;;2600:29;2174:25049;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2174:25049:12;;;;;;;;;;;;;;;;;;;;;;;6813:405:158;;11523:61;-1:-1:-1;;;;;2174:25049:12;;;;;;;;;;;;;;-1:-1:-1;;2174:25049:12;;;;19120:59;2174:25049;;;-1:-1:-1;;;;;2174:25049:12;;:::i;:::-;;;;19120:25;2174:25049;;;19120:59;2174:25049;;;;;;;;;;;;;;-1:-1:-1;;2174:25049:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2192:298:0;;;:::i;:::-;2174:25049:12;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2174:25049:12;;;;;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:162;;;2174:25049:12;10384:740:162;24416:4:12;2174:25049;10384:740:162;;;;2174:25049:12;10384:740:162;;;;;;;2174:25049:12;10384:740:162;2174:25049:12;10384:740:162;;;;;;2174:25049:12;10384:740:162;;;;;;;2174:25049:12;10384:740:162;2174:25049:12;10384:740:162;;2174:25049:12;10384:740:162;24340:353:12;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:162;;;;;;;;;2174:25049:12;-1:-1:-1;;;2174:25049:12;;;;;;;;23512:250;23559:23;;;;;:::i;:::-;23676:15;;23512:250;23673:79;-1:-1:-1;;;23718:19:12;;2174:25049;;23718:19;2174:25049;-1:-1:-1;2174:25049:12;;-1:-1:-1;;2174:25049:12;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;12478:70:158;;;:::i;:::-;1181:103:57;;:::i;:::-;8365:9:12;8376:16;;;;;;3550:68:61;;-1:-1:-1;;;;;;;;;;;3550:68:61;2174:25049:12;;8365:9;8430:8;2174:25049;-1:-1:-1;;;;;8430:8:12;;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:12;;2174:25049;;;;;;;-1:-1:-1;;2174:25049:12;;;;-1:-1:-1;;;;;2174:25049:12;;;;;;:::i;:::-;;;;18334:25;2174:25049;;;;;18334:69;;2174:25049;;;;;;;-1:-1:-1;2174:25049:12;;-1:-1:-1;;2174:25049:12;;;;;;12478:70:158;;:::i;:::-;2870:7:12;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:12;;2174:25049;9856:23;;2174:25049;;;;;;;;;;;;;;-1:-1:-1;;;;;1055:34:14;2174:25049:12;;;;;;;;;;;;;;;;;;12478:70:158;;:::i;:::-;6813:405;;;;;;;;;;;;2174:25049:12;;;-1:-1:-1;2174:25049:12;;-1:-1:-1;;2174:25049:12;;;;;;:::i;:::-;12478:70:158;;:::i;:::-;6221:74:0;;9049:77:12;;-1:-1:-1;;;;;2174:25049:12;;9140:32;;9136:99;;-1:-1:-1;;;;;9264:15:12;2174:25049;;9289:97;9264:15;9289:97;9454:10;9400:65;;;;;2174:25049;;9136:99;-1:-1:-1;;;9195:29:12;;2174:25049;9195:29;;9049:77;-1:-1:-1;;;9093:33:12;;2174:25049;9093:33;;2174:25049;-1:-1:-1;2174:25049:12;;-1:-1:-1;;2174:25049:12;;;;-1:-1:-1;;;;;2174:25049:12;;:::i;:::-;12478:70:158;;:::i;:::-;2174:25049:12;;;;13282:25;2174:25049;;;;;;;;;;;;13336:39;;;;2174:25049;;;;;;;;;-1:-1:-1;;2174:25049:12;;;;;;;;-1:-1:-1;;;;;2174:25049:12;;:::i;:::-;;;;18714:25;2174:25049;;;;;;;;;;;;;;-1:-1:-1;2174:25049:12;;-1:-1:-1;;2174:25049:12;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;12478:70:158;;;;:::i;:::-;1181:103:57;;:::i;:::-;7659:29:12;;;7655:99;;7792:9;7803:16;;;;;;3550:68:61;;-1:-1:-1;;;;;;;;;;;3550:68:61;2174:25049:12;;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:12;;2174:25049;7711:32;;2174:25049;-1:-1:-1;2174:25049:12;;-1:-1:-1;;2174:25049:12;;;;;;:::i;:::-;;;:::i;:::-;12478:70:158;;;:::i;:::-;1181:103:57;;:::i;:::-;2174:25049:12;;-1:-1:-1;;;7098:30:12;;7122:4;2174:25049;7098:30;;2174:25049;;;;;;-1:-1:-1;;;;;2174:25049:12;;7098:30;;;;;;;;;;;2174:25049;7168:6;;;;:::i;:::-;3550:68:61;-1:-1:-1;;;;;;;;;;;3550:68:61;2174:25049:12;;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:12;;2174:25049;;;;;;;;;;9831:339:158;;;;;;;;;;;;;;;;2174:25049:12;;;;;;;;;-1:-1:-1;;2174:25049:12;;;;;;;;;;;;;;;;;;;;;;;19501:2958;2737:22:0;;;:::i;:::-;2174:25049:12;;;;;19501:2958;:::i;:::-;2174:25049;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;2174:25049:12;;;;;;;-1:-1:-1;;;;;2174:25049:12;;:::i;:::-;;;;2705:62;2174:25049;;;2705:62;2174:25049;;2705:62;;2174:25049;;;;;-1:-1:-1;;;;;2174:25049:12;;;;;;;;;;;;;;;;;-1:-1:-1;2174:25049:12;;-1:-1:-1;;2174:25049:12;;;;6288:6;2174:25049;;:::i;:::-;;;:::i;:::-;12478:70:158;;:::i;:::-;1181:103:57;;:::i;:::-;2174:25049:12;;6288:6;;:::i;2174:25049::-;-1:-1:-1;2174:25049:12;;-1:-1:-1;;2174:25049:12;;;;;;:::i;:::-;;;12478:70:158;;;:::i;:::-;11297:15:12;;:40;11294:80;;-1:-1:-1;;;;;2174:25049:12;;;;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:12;;2174:25049;11346:28;;2174:25049;;;;;;;-1:-1:-1;;2174:25049:12;;;;;18019:23;2174:25049;;:::i;:::-;18019:23;:::i;2174:25049::-;-1:-1:-1;2174:25049:12;;-1:-1:-1;;2174:25049:12;;;;;;:::i;:::-;-1:-1:-1;;;;;2174:25049:12;;1181:103:57;;;:::i;:::-;2174:25049:12;;;;;;;;;;;;;;2425:26:14;2174:25049:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2536:393:14;;2627:13;;-1:-1:-1;;;;;2174:25049:12;;;;2536:393:14;;2174:25049:12;;;;2536:393:14;;2713:4;2174:25049:12;;2536:393:14;;;2174:25049:12;;;2536:393:14;;;2174:25049:12;;;;;2536:393:14;;;2174:25049:12;;;;;;-1:-1:-1;;;;;2174:25049:12;;;;;;;;;;2944:38:14;;2174:25049:12;-1:-1:-1;;;;;2174:25049:12;;2944:38:14;;2174:25049:12;;-1:-1:-1;;;;;2174:25049:12;;;;;;;;;;;;;-1:-1:-1;;;;;2174:25049:12;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2174:25049:12;;;;;2944:38:14;;;;;2174:25049:12;2944:38:14;;;;;;;2174:25049:12;-1:-1:-1;2940:248:14;;3060:128;3107:43;2174:25049:12;3060:128:14;;:::i;:::-;2174:25049:12;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3107:43:14;;;3164:13;2940:248;;14912:13:12;14909:203;;2940:248:14;15126:84:12;2174:25049;;;15199:10;2174:25049;;15126:84;3550:68:61;-1:-1:-1;;;;;;;;;;;3550:68:61;2174:25049:12;;14909:203;14987:9;;;:::i;:::-;15046:10;-1:-1:-1;;;;;15046:10:12;2174:25049;15046:55;;;;;2174:25049;;;;;;;;;;;;;15046:55;;2713:4:14;2174:25049:12;15046:55;;2174:25049;15046:55;;;;;;;;14909:203;;;;;15046:55;;;;;:::i;:::-;2174:25049;;15046:55;;;;2940:248:14;;;;2944:38;;;;2174:25049:12;2944:38:14;;2174:25049:12;2944:38:14;;;;;;2174:25049:12;2944:38:14;;;:::i;:::-;;;2174:25049:12;;;;;2944:38:14;;;;;;;-1:-1:-1;2944:38:14;;2174:25049:12;-1:-1:-1;;;2174:25049:12;;;;;;;;;-1:-1:-1;;;2174:25049:12;;;;;;;;;;;;;;;9239:383:158;;;;;;7972:9;9132:15;2174:25049:12;9239:383:158;;;;;;;;;2174:25049:12;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2506:30:12;2174:25049;;;;;;;;;;;;;;;-1:-1:-1;;2174:25049:12;;;;-1:-1:-1;;;;;2174:25049:12;;:::i;:::-;12478:70:158;;:::i;:::-;1181:103:57;;:::i;:::-;2174:25049:12;15992:29;;15988:71;;16069:10;;-1:-1:-1;;;;;16069:10:12;2174:25049;16069:46;;;;;;2174:25049;;16069:46;2174:25049;;;;;;;;;;;;16069:46;;2174:25049;16069:46;;2174:25049;;;;;;;16069:46;;;;;;;;3550:68:61;-1:-1:-1;;;;;;;;;;;3550:68:61;2174:25049:12;;15988:71;-1:-1:-1;;;16030:29:12;;2174:25049;16030:29;;2174:25049;-1:-1:-1;2174:25049:12;;-1:-1:-1;;2174:25049:12;;;;;;:::i;:::-;-1:-1:-1;;;;;2174:25049:12;;12478:70:158;;;:::i;:::-;1181:103:57;;:::i;:::-;2174:25049:12;6606:35;;;;;;;;;;:::i;:::-;;6655:8;6651:64;;6729:31;;;;3550:68:61;-1:-1:-1;;;;;;;;;;;3550:68:61;2174:25049:12;;6651:64;-1:-1:-1;;;6686:18:12;;2174:25049;6686:18;;2174:25049;-1:-1:-1;2174:25049:12;;-1:-1:-1;;2174:25049:12;;;;;;;;;;;;;;12478:70:158;;:::i;:::-;-1:-1:-1;;;;;1496:10:0;2174:25049:12;1496:56:0;;;;;;2174:25049:12;;1496:56:0;2174:25049:12;;;;;;;;;1496:56:0;;2174:25049:12;1496:56:0;;2174:25049:12;1524:9:0;1496:56;;;;;;;;;2174:25049:12;;;1496:56:0;;;;2174:25049:12;1496:56:0;;:::i;:::-;2174:25049:12;;;;;;;;;;;;;-1:-1:-1;;;;;2174:25049:12;;;;;;:::o;:::-;;;-1:-1:-1;;;;;2174:25049:12;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;2174:25049:12;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;2174:25049:12;;;;;;;;-1:-1:-1;;2174:25049:12;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;2174:25049:12;;;;;-1:-1:-1;2174:25049:12;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;2174:25049:12;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;2174:25049:12;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;2174:25049:12;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;2174:25049:12;;;;;;:::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:92;976:38:0;;;372:2:92;976:38:0;;17208:15:12;2174:25049;17116:610;17168:12;17116:610;;823:61:92;;;-1:-1:-1;;;;;2174:25049:12;;;17168:12;;;2174:25049;17208:15;976:38:0;;2174:25049:12;17252:15;976:38:0;;2174:25049:12;17286:23;976:38:0;;2174:25049:12;17286:23;;;2174:25049;17443:25;976:38:0;;2174:25049:12;17486:14;976:38:0;;2174:25049:12;17443:25;;;2174:25049;17343:23;976:38:0;;2174:25049:12;17486:14;;2174:25049;976:38:0;;;2174:25049:12;17518:13;976:38:0;;;2174:25049:12;17557:4;976:38:0;;;2174:25049:12;;;976:38:0;;;;2174:25049:12;;976:38:0;;;;-1:-1:-1;;;;;2174:25049:12;976:38:0;;;2174:25049:12;976:38:0;;;2174:25049:12;;;976:38:0;;;2174:25049:12;976:38:0;17116:610:12;;;;;;:::i;:::-;2174:25049;17093:643;;16671:1072;:::o;2174:25049::-;;;;;;;;;;;;;;;;;;:::o;7292:355:158:-;-1:-1:-1;;7390:251:158;;;;;7292:355::o;7390:251::-;;;;;;;1290:346:57;-1:-1:-1;;;;;;;;;;;3321:69:61;1413:93:57;;1624:4;-1:-1:-1;;;;;;;;;;;3550:68:61;1290:346:57:o;1413:93::-;1465:30;;;-1:-1:-1;1465:30:57;;-1:-1:-1;1465:30:57;3200:252:14;3259:11;;3256:23;;3269:1;2174:25049:12;;;3335:52:14;;;;;;;;;;;;;2174:25049:12;3335:52:14;;;;;;;:::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:12;3335:52:14;3269:1;3419:26;3256:23;3272:7;:::o;2174:25049:12:-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;25293:770;-1:-1:-1;;;;;2174:25049:12;;-1:-1:-1;2174:25049:12;25461:25;2174:25049;;;-1:-1:-1;2174:25049:12;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;2174:25049:12;;;;;;;;;;;;;;;;;;;;;;25515:39;25511:152;;-1:-1:-1;;;;;25754:60:12;2174:25049;;;;;25754:60;;:::i;:::-;25863:22;2174:25049;25851:72;-1:-1:-1;;;;;2174:25049:12;;;25887:35;25851:72;;:::i;:::-;2174:25049;;;;;;;;;;26003:39;;;;;;;;2174:25049;26003:39;-1:-1:-1;26003:39:12;;;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:12;;-1:-1:-1;25633:19:12;26920:301;;-1:-1:-1;;;;;2174:25049:12;;27012:20;;;27008:62;;-1:-1:-1;;;;;2174:25049:12;13252:754:162;;;;;;;27030:1:12;13252:754:162;;27030:1:12;13252:754:162;;;;;;;;27030:1:12;13252:754:162;;;;;;26920:301:12;13252:754:162;27030:1:12;13252:754:162;;27155:59:12;13252:754:162;2174:25049:12;;27203:10;2174:25049;;27155:59;26920:301::o;13252:754:162:-;;;;;;;;;;;;;;;27030:1:12;13252:754:162;;;;27008:62:12;16030:29;;;27030:1;27041:29;;27030:1;27041:29;5930:135:0;-1:-1:-1;;;;;6021:10:0;2174:25049:12;5999:10:0;:33;2174:25049:12;;5930:135:0:o;2174:25049:12:-;;;-1:-1:-1;;;2174:25049:12;;;;;;;;;;;;;;;;;;;;19501:2958;;;2174:25049;;19806:23;;;;2174:25049;19806:23;;19501:2958;19806:23;:::i;:::-;374:38:6;;;;490:2:92;374:38:6;;;;490:2:92;374:38:6;;717:39;374:38;;2174:25049:12;;;;;;;976:38:0;2174:25049:12;976:38:0;;;2174:25049:12;976:38:0;;;;;;;2174:25049:12;833:1:6;19868:15:12;;19864:75;;20066:23;;;;:::i;:::-;490:2:92;976:38:0;;;434:2:92;976:38:0;875:44;20002:23:12;875:44:0;2174:25049:12;20002:23;;;2174:25049;;875:44:0;2174:25049:12;875:44:0;;;;2174:25049:12;20165:2;2174:25049;;875:44:0;2174:25049:12;;;875:44:0;;;;;20172:3:12;875:44:0;;2174:25049:12;;;20190:30;;;976:38:0;;;;1267:1:6;976:38:0;;;2174:25049:12;;;;1327:2:6;976:38:0;-1:-1:-1;976:38:0;;;;;2174:25049:12;;;;1393:2:6;976:38:0;-1:-1:-1;976:38:0;;;;;2174:25049:12;;;;1457:2:6;976:38:0;-1:-1:-1;976:38:0;;;;;;;1527:2:6;976:38:0;;;2174:25049:12;976:38:0;;;;2174:25049:12;19806:23;2174:25049;976:38:0;;2174:25049:12;976:38:0;;;;;;2174:25049:12;:::i;:::-;;;1457:2:6;20724:22:12;;;:48;;;;20186:2267;20720:118;;;20868:255;2174:25049;;20978:86;2174:25049;;;;-1:-1:-1;;;;;2174:25049:12;;;20978:86;;;:::i;:::-;1393:2:6;13414:265:159;;-1:-1:-1;13414:265:159;;976:38:0;13414:265:159;20868:255:12;;:::i;:::-;21220:9;21216:110;;21378:13;-1:-1:-1;;;21378:13:12;;;-1:-1:-1;;;;;21378:13:12;2174:25049;21378:13;;;:::i;:::-;2174:25049;;1457:2:6;2174:25049:12;21350:208;2174:25049;1393:2:6;21350:208:12;;2174:25049;;1457:2:6;875:44:0;;2174:25049:12;;875:44:0;;2174:25049:12;20002:23;875:44:0;;2174:25049:12;875:44:0;;;2174:25049:12;875:44:0;;;2174:25049:12;875:44:0;21350:208:12;;;19806:23;21350:208;;:::i;:::-;21589:50;2174:25049;;;;875:44:0;2174:25049:12;;2589:104:88;20186:2267:12;19501:2958::o;21216:110::-;21261:49;;;;;;-1:-1:-1;;;2174:25049:12;833:1:6;21261:49:12;;2174:25049;;;;2643:3:88;2174:25049:12;;2589:104:88;;2174:25049:12;1457:2:6;2174:25049:12;;1393:2:6;2174:25049:12;;:::i;:::-;-1:-1:-1;2174:25049:12;;21249:62;;:::o;20720:118::-;20799:24;;;-1:-1:-1;20799:24:12;976:38:0;-1:-1:-1;20799:24:12;20724:48;20770:2;20750:22;;;;20724:48;;;20186:2267;2174:25049;;;;;833:1:6;2174:25049:12;;;;;;21698:33;21694:759;;20186:2267;;;;;;19501:2958::o;21694:759::-;976:38:0;;;;;;;;;1809:2:6;976:38:0;;;2174:25049:12;;;-1:-1:-1;;;;;2174:25049:12;;-1:-1:-1;;21929:29:12;21925:96;;22073:13;;;:::i;:::-;2174:25049;;-1:-1:-1;2174:25049:12;22260:25;2174:25049;;-1:-1:-1;;;;;2174:25049:12;;-1:-1:-1;2174:25049:12;;;;;;;;;22045:312;2174:25049;;22045:312;;2174:25049;;;875:44:0;;2174:25049:12;875:44:0;;2174:25049:12;-1:-1:-1;20002:23:12;875:44:0;;2174:25049:12;;875:44:0;;2174:25049:12;875:44:0;;;2174:25049:12;875:44:0;22045:312:12;;;19806:23;22045:312;;:::i;:::-;22371:18;-1:-1:-1;21694:759:12;;;;;;;;21925:96;21985:21;;;-1:-1:-1;21985:21:12;;-1:-1:-1;21985:21:12;19864:75;19906:22;;;-1:-1:-1;19906:22:12;;-1:-1:-1;19906:22:12;2174:25049;;;;;;;;;;;;6145:1089:158;-1:-1:-1;;;;;6813:405:158;;;;;;-1:-1:-1;6813:405:158;;-1:-1:-1;;6813:405:158;6145:1089::o;2174:25049:12:-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;26497:417::-;;26652:24;-1:-1:-1;;;;;26497:417:12;26652:24;2174:25049;;;;;;;;;26652:24;;2174:25049;26652:24;;;;;;;-1:-1:-1;;;26652:24:12;;;26497:417;26690:11;-1:-1:-1;26690:11:12;;;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:12;26652:24;-1:-1:-1;26844:20:12;26686:73;26724:24;;;-1:-1:-1;26724:24:12;26652;-1:-1:-1;26724:24:12;26652;;;;;;;;;;;;;;;;;;;:::i;:::-;;;2174:25049;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;26652:24;;;;;;;;-1:-1:-1;26652:24:12;;1974:1926:163;;;2174:25049:12;;-1:-1:-1;;;;;2174:25049:12;;2136:20:163;2132:40;;2225:1669;;;;;;;;;;;;;;;;;;;;1974:1926;;;;:::o;2225:1669::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2225:1669:163;;;;;;;;;;;;;;;;2174:25049:12;2225:1669:163;;;;;;;;;;;2174:25049:12;2225:1669:163;;;;;;;;;;2174:25049:12;2225:1669:163;;;;;;;;;;;2174:25049:12;2225:1669:163;;;;;;;;;;;;;;;;;;;;;;;;;;;;2132:40;-1:-1:-1;2174:25049:12;;-1:-1:-1;;;2158:14:163:o;7738:720:51:-;;-1:-1:-1;7875:421:51;7738:720;7875:421;;;;;;;;;;;;-1:-1:-1;7875:421:51;;8310:15;;2174:25049:12;-1:-1:-1;;;;;2174:25049:12;;8328:26:51;:31;8310:68;8306:146;;7738:720;:::o;8306:146::-;-1:-1:-1;;;;;8401:40:51;;;;-1:-1:-1;8401:40:51;2174:25049:12;8401:40:51;2174:25049:12;;-1:-1:-1;8401:40:51;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}],"3085":[{"start":3774,"length":32}],"3087":[{"start":8316,"length":32}],"4707":[{"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":12} \ No newline at end of file diff --git a/scripts/bash-deploy/deploy-gasdaddy.sh b/scripts/bash-deploy/deploy-gasdaddy.sh index 3d99aa3..8f7449f 100644 --- a/scripts/bash-deploy/deploy-gasdaddy.sh +++ b/scripts/bash-deploy/deploy-gasdaddy.sh @@ -105,7 +105,8 @@ fi ### DEPLOY GASDADDY SCs ### printf "Addresses for Paymaster SCs:\n" -forge script DeployGasdaddy true $MIN_DEPOSIT --sig "run(bool,uint256)" --rpc-url $CHAIN_NAME -vv | grep -e "address" -e "already deployed" +forge script DeployGasdaddy true $MIN_DEPOSIT --sig "run(bool,uint256)" --rpc-url $CHAIN_NAME -vv > ./logs/$CHAIN_NAME/$CHAIN_NAME-gasdaddy-predeploy.log +cat ./logs/$CHAIN_NAME/$CHAIN_NAME-gasdaddy-predeploy.log | grep -e "address" -e "already deployed" printf "Do you want to proceed with the addresses above? (y/n): " read -r proceed if [ $proceed = "y" ]; then