@pimlico/alto 0.0.0-main.20251205T161640 → 0.0.0-main.20260101T134812

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. package/contracts/EIP712.sol/EIP712.json +1 -1
  2. package/contracts/ERC165.sol/ERC165.json +1 -1
  3. package/contracts/ERC20.sol/ERC20.json +1 -1
  4. package/contracts/Eip7702Support.sol/Eip7702Support.json +1 -1
  5. package/contracts/EntryPoint.sol/EntryPoint.json +1 -1
  6. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride06.json +1 -1
  7. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride07.json +1 -1
  8. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride08.json +1 -1
  9. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride09.json +1 -0
  10. package/contracts/EntryPointGasEstimationOverride.sol/EntryPointGasEstimationOverride06.json +1 -1
  11. package/contracts/EntryPointSimulations.sol/EntryPointSimulations07.json +1 -1
  12. package/contracts/EntryPointSimulations.sol/EntryPointSimulations08.json +1 -1
  13. package/contracts/EntryPointSimulations.sol/EntryPointSimulations09.json +1 -0
  14. package/contracts/Exec.sol/Exec.json +1 -1
  15. package/contracts/IAccount.sol/IAccount.json +1 -1
  16. package/contracts/IAccountExecute.sol/IAccountExecute.json +1 -1
  17. package/contracts/IAggregator.sol/IAggregator.json +1 -1
  18. package/contracts/IERC165.sol/IERC165.json +1 -1
  19. package/contracts/IERC5267.sol/IERC5267.json +1 -1
  20. package/contracts/IEntryPoint.sol/IEntryPoint.json +1 -1
  21. package/contracts/IEntryPointFilterOpsOverride.sol/IEntryPointFilterOpsOverride08.json +1 -1
  22. package/contracts/IEntryPointFilterOpsOverride.sol/IEntryPointFilterOpsOverride09.json +1 -0
  23. package/contracts/IEntryPointSimulations.sol/IEntryPointSimulations.json +1 -1
  24. package/contracts/INonceManager.sol/INonceManager.json +1 -1
  25. package/contracts/IPaymaster.sol/IPaymaster.json +1 -1
  26. package/contracts/ISenderCreator.sol/ISenderCreator.json +1 -1
  27. package/contracts/IStakeManager.sol/IStakeManager.json +1 -1
  28. package/contracts/LibBytes.sol/LibBytes.json +1 -1
  29. package/contracts/Math.sol/Math.json +1 -1
  30. package/contracts/MessageHashUtils.sol/MessageHashUtils.json +1 -1
  31. package/contracts/NonceManager.sol/NonceManager.json +1 -1
  32. package/contracts/Panic.sol/Panic.json +1 -1
  33. package/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -1
  34. package/contracts/ReentrancyGuard.sol/ReentrancyGuard.json +1 -1
  35. package/contracts/ReentrancyGuardTransient.sol/ReentrancyGuardTransient.json +1 -1
  36. package/contracts/SafeCast.sol/SafeCast.json +1 -1
  37. package/contracts/SenderCreator.sol/SenderCreator.json +1 -1
  38. package/contracts/ShortStrings.sol/ShortStrings.json +1 -1
  39. package/contracts/SignedMath.sol/SignedMath.json +1 -1
  40. package/contracts/SimulationOverrideHelper.sol/SimulationOverrideHelper.json +1 -1
  41. package/contracts/StakeManager.sol/StakeManager.json +1 -1
  42. package/contracts/StorageSlot.sol/StorageSlot.json +1 -1
  43. package/contracts/Strings.sol/Strings.json +1 -1
  44. package/contracts/TransientSlot.sol/TransientSlot.json +1 -1
  45. package/contracts/UserOperation.sol/UserOperationLib.json +1 -1
  46. package/contracts/UserOperationLib.sol/UserOperationLib.json +1 -1
  47. package/contracts/account-abstraction-v9/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -0
  48. package/contracts/account-abstraction-v9/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -0
  49. package/contracts/account-abstraction-v9/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -0
  50. package/contracts/account-abstraction-v9/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -0
  51. package/contracts/build-info/{006aa55b425148d5.json → 338795fc743ca612.json} +1 -1
  52. package/contracts/build-info/44a9648cfe32a468.json +1 -0
  53. package/contracts/build-info/{416ffb069999d6eb.json → 8dbf8a4ad39019b5.json} +1 -1
  54. package/contracts/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -1
  55. package/contracts/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -1
  56. package/contracts/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -1
  57. package/contracts/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -1
  58. package/contracts/core/Eip7702Support.sol/Eip7702Support.json +1 -0
  59. package/contracts/core/NonceManager.sol/NonceManager.json +1 -0
  60. package/contracts/core/SenderCreator.sol/SenderCreator.json +1 -0
  61. package/contracts/core/StakeManager.sol/StakeManager.json +1 -0
  62. package/contracts/core/UserOperationLib.sol/UserOperationLib.json +1 -0
  63. package/contracts/interfaces/IAccount.sol/IAccount.json +1 -0
  64. package/contracts/interfaces/IAccountExecute.sol/IAccountExecute.json +1 -0
  65. package/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -1
  66. package/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -1
  67. package/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -1
  68. package/contracts/interfaces/IPaymaster.sol/IPaymaster.json +1 -0
  69. package/contracts/interfaces/ISenderCreator.sol/ISenderCreator.json +1 -0
  70. package/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -1
  71. package/contracts/overrides/Eip7702Support.sol/Eip7702Support.json +1 -0
  72. package/contracts/overrides/NonceManager.sol/NonceManager.json +1 -0
  73. package/contracts/overrides/SenderCreator.sol/SenderCreator.json +1 -0
  74. package/contracts/overrides/StakeManager.sol/StakeManager.json +1 -0
  75. package/contracts/overrides/UserOperationLib.sol/UserOperationLib.json +1 -0
  76. package/contracts/utils/Exec.sol/Exec.json +1 -1
  77. package/contracts/utils/StorageSlot.sol/StorageSlot.json +1 -1
  78. package/contracts/v09/EntryPoint.sol/EntryPoint.json +1 -0
  79. package/esm/cli/config/bundler.d.ts +56 -50
  80. package/esm/cli/config/bundler.js +1 -0
  81. package/esm/cli/config/bundler.js.map +1 -1
  82. package/esm/cli/config/options.js +5 -1
  83. package/esm/cli/config/options.js.map +1 -1
  84. package/esm/cli/deploySimulationsContract.d.ts +1 -0
  85. package/esm/cli/deploySimulationsContract.js +41 -5
  86. package/esm/cli/deploySimulationsContract.js.map +1 -1
  87. package/esm/cli/handler.js +14 -0
  88. package/esm/cli/handler.js.map +1 -1
  89. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride06.json +1 -1
  90. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride07.json +1 -1
  91. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride08.json +1 -1
  92. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride09.json +1 -0
  93. package/esm/contracts/EntryPointGasEstimationOverride.sol/EntryPointGasEstimationOverride06.json +1 -1
  94. package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations07.json +1 -1
  95. package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations08.json +1 -1
  96. package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations09.json +1 -0
  97. package/esm/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -1
  98. package/esm/executor/filterOpsAndEstimateGas.js +12 -0
  99. package/esm/executor/filterOpsAndEstimateGas.js.map +1 -1
  100. package/esm/executor/utils.js +2 -2
  101. package/esm/executor/utils.js.map +1 -1
  102. package/esm/mempool/mempool.d.ts +34 -0
  103. package/esm/mempool/mempool.js +14 -4
  104. package/esm/mempool/mempool.js.map +1 -1
  105. package/esm/rpc/estimation/gasEstimations07.js +7 -6
  106. package/esm/rpc/estimation/gasEstimations07.js.map +1 -1
  107. package/esm/rpc/estimation/preVerificationGasCalculator.js +1 -1
  108. package/esm/rpc/estimation/preVerificationGasCalculator.js.map +1 -1
  109. package/esm/rpc/methods/boost_sendUserOperation.d.ts +304 -0
  110. package/esm/rpc/methods/debug_bundler_dumpMempool.d.ts +338 -0
  111. package/esm/rpc/methods/eth_estimateUserOperationGas.d.ts +622 -14
  112. package/esm/rpc/methods/eth_getUserOperationByHash.d.ts +621 -11
  113. package/esm/rpc/methods/eth_sendUserOperation.d.ts +304 -0
  114. package/esm/rpc/methods/pimlico_sendUserOperationNow.d.ts +304 -0
  115. package/esm/rpc/methods/pimlico_sendUserOperationNow.js +3 -12
  116. package/esm/rpc/methods/pimlico_sendUserOperationNow.js.map +1 -1
  117. package/esm/rpc/methods/pimlico_simulateAssetChange.d.ts +620 -12
  118. package/esm/rpc/validation/SafeValidator.js +5 -5
  119. package/esm/rpc/validation/SafeValidator.js.map +1 -1
  120. package/esm/store/createMempoolStore.js +8 -2
  121. package/esm/store/createMempoolStore.js.map +1 -1
  122. package/esm/store/outstanding/memory.js +26 -17
  123. package/esm/store/outstanding/memory.js.map +1 -1
  124. package/esm/store/outstanding/redis.js +46 -18
  125. package/esm/store/outstanding/redis.js.map +1 -1
  126. package/esm/store/outstanding/types.d.ts +2 -1
  127. package/esm/store/processing/memory.d.ts +3 -1
  128. package/esm/store/processing/memory.js +14 -2
  129. package/esm/store/processing/memory.js.map +1 -1
  130. package/esm/store/processing/redis.d.ts +4 -2
  131. package/esm/store/processing/redis.js +20 -4
  132. package/esm/store/processing/redis.js.map +1 -1
  133. package/esm/store/processing/types.d.ts +2 -1
  134. package/esm/store/types.d.ts +1 -0
  135. package/esm/types/contracts/PimlicoSimulations.d.ts +81 -0
  136. package/esm/types/contracts/PimlicoSimulations.js +105 -0
  137. package/esm/types/contracts/PimlicoSimulations.js.map +1 -1
  138. package/esm/types/schemas.d.ts +13039 -4597
  139. package/esm/types/schemas.js +92 -2
  140. package/esm/types/schemas.js.map +1 -1
  141. package/esm/utils/entryPointOverrides.js +7 -0
  142. package/esm/utils/entryPointOverrides.js.map +1 -1
  143. package/esm/utils/userop.d.ts +76 -2
  144. package/esm/utils/userop.js +71 -79
  145. package/esm/utils/userop.js.map +1 -1
  146. package/package.json +2 -2
@@ -1 +1 @@
1
- {"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"binarySearchCallGas","inputs":[{"name":"entryPointSimulation","type":"address","internalType":"address"},{"name":"entryPoint","type":"address","internalType":"address"},{"name":"queuedUserOps","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":"targetUserOp","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":"initialMinGas","type":"uint256","internalType":"uint256"},{"name":"toleranceDelta","type":"uint256","internalType":"uint256"},{"name":"gasAllowance","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchResult","components":[{"name":"resultType","type":"uint8","internalType":"enum IEntryPointSimulations.BinarySearchResultType"},{"name":"successData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchSuccess","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]},{"name":"outOfGasData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","components":[{"name":"optimalGas","type":"uint256","internalType":"uint256"},{"name":"minGas","type":"uint256","internalType":"uint256"},{"name":"maxGas","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"nonpayable"},{"type":"function","name":"binarySearchPaymasterVerificationGas","inputs":[{"name":"entryPointSimulation","type":"address","internalType":"address"},{"name":"entryPoint","type":"address","internalType":"address payable"},{"name":"queuedUserOps","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":"targetUserOp","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":"initialMinGas","type":"uint256","internalType":"uint256"},{"name":"toleranceDelta","type":"uint256","internalType":"uint256"},{"name":"gasAllowance","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchResult","components":[{"name":"resultType","type":"uint8","internalType":"enum IEntryPointSimulations.BinarySearchResultType"},{"name":"successData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchSuccess","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]},{"name":"outOfGasData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","components":[{"name":"optimalGas","type":"uint256","internalType":"uint256"},{"name":"minGas","type":"uint256","internalType":"uint256"},{"name":"maxGas","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"nonpayable"},{"type":"function","name":"binarySearchVerificationGas","inputs":[{"name":"entryPointSimulation","type":"address","internalType":"address"},{"name":"entryPoint","type":"address","internalType":"address payable"},{"name":"queuedUserOps","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":"targetUserOp","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":"initialMinGas","type":"uint256","internalType":"uint256"},{"name":"toleranceDelta","type":"uint256","internalType":"uint256"},{"name":"gasAllowance","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchResult","components":[{"name":"resultType","type":"uint8","internalType":"enum IEntryPointSimulations.BinarySearchResultType"},{"name":"successData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchSuccess","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]},{"name":"outOfGasData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","components":[{"name":"optimalGas","type":"uint256","internalType":"uint256"},{"name":"minGas","type":"uint256","internalType":"uint256"},{"name":"maxGas","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"nonpayable"},{"type":"function","name":"filterOps06","inputs":[{"name":"userOps","type":"tuple[]","internalType":"struct UserOperation[]","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":"callGasLimit","type":"uint256","internalType":"uint256"},{"name":"verificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"maxFeePerGas","type":"uint256","internalType":"uint256"},{"name":"maxPriorityFeePerGas","type":"uint256","internalType":"uint256"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"beneficiary","type":"address","internalType":"address payable"},{"name":"entryPoint","type":"address","internalType":"contract IEntryPoint"}],"outputs":[{"name":"","type":"tuple","internalType":"struct PimlicoSimulations.FilterOpsResult","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"balanceChange","type":"uint256","internalType":"uint256"},{"name":"rejectedUserOps","type":"tuple[]","internalType":"struct PimlicoSimulations.RejectedUserOp[]","components":[{"name":"userOpHash","type":"bytes32","internalType":"bytes32"},{"name":"revertReason","type":"bytes","internalType":"bytes"}]}]}],"stateMutability":"nonpayable"},{"type":"function","name":"filterOps07","inputs":[{"name":"userOps","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":"beneficiary","type":"address","internalType":"address payable"},{"name":"entryPoint","type":"address","internalType":"contract IEntryPoint"}],"outputs":[{"name":"","type":"tuple","internalType":"struct PimlicoSimulations.FilterOpsResult","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"balanceChange","type":"uint256","internalType":"uint256"},{"name":"rejectedUserOps","type":"tuple[]","internalType":"struct PimlicoSimulations.RejectedUserOp[]","components":[{"name":"userOpHash","type":"bytes32","internalType":"bytes32"},{"name":"revertReason","type":"bytes","internalType":"bytes"}]}]}],"stateMutability":"nonpayable"},{"type":"function","name":"filterOps08","inputs":[{"name":"userOps","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":"beneficiary","type":"address","internalType":"address payable"},{"name":"entryPoint","type":"address","internalType":"contract IEntryPoint"}],"outputs":[{"name":"","type":"tuple","internalType":"struct PimlicoSimulations.FilterOpsResult","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"balanceChange","type":"uint256","internalType":"uint256"},{"name":"rejectedUserOps","type":"tuple[]","internalType":"struct PimlicoSimulations.RejectedUserOp[]","components":[{"name":"userOpHash","type":"bytes32","internalType":"bytes32"},{"name":"revertReason","type":"bytes","internalType":"bytes"}]}]}],"stateMutability":"nonpayable"},{"type":"function","name":"getBalances","inputs":[{"name":"addresses","type":"address[]","internalType":"address[]"},{"name":"tokens","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct PimlicoSimulations.AssetBalance[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"simulateAndEstimateGas","inputs":[{"name":"entryPointSimulation","type":"address","internalType":"address"},{"name":"entryPoint","type":"address","internalType":"address payable"},{"name":"queuedUserOps","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":"targetUserOp","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":"initialMinGas","type":"uint256","internalType":"uint256"},{"name":"toleranceDelta","type":"uint256","internalType":"uint256"},{"name":"gasAllowance","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"result","type":"tuple","internalType":"struct PimlicoSimulations.SimulateAndEstimateGasResult","components":[{"name":"simulationResult","type":"tuple","internalType":"struct IEntryPointSimulations.ExecutionResult","components":[{"name":"preOpGas","type":"uint256","internalType":"uint256"},{"name":"paid","type":"uint256","internalType":"uint256"},{"name":"accountValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterVerificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterPostOpGasLimit","type":"uint256","internalType":"uint256"},{"name":"targetSuccess","type":"bool","internalType":"bool"},{"name":"targetResult","type":"bytes","internalType":"bytes"}]},{"name":"verificationGasLimit","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchResult","components":[{"name":"resultType","type":"uint8","internalType":"enum IEntryPointSimulations.BinarySearchResultType"},{"name":"successData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchSuccess","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]},{"name":"outOfGasData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","components":[{"name":"optimalGas","type":"uint256","internalType":"uint256"},{"name":"minGas","type":"uint256","internalType":"uint256"},{"name":"maxGas","type":"uint256","internalType":"uint256"}]}]},{"name":"paymasterVerificationGasLimit","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchResult","components":[{"name":"resultType","type":"uint8","internalType":"enum IEntryPointSimulations.BinarySearchResultType"},{"name":"successData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchSuccess","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]},{"name":"outOfGasData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","components":[{"name":"optimalGas","type":"uint256","internalType":"uint256"},{"name":"minGas","type":"uint256","internalType":"uint256"},{"name":"maxGas","type":"uint256","internalType":"uint256"}]}]}]}],"stateMutability":"nonpayable"},{"type":"function","name":"simulateAssetChange06","inputs":[{"name":"userOp","type":"tuple","internalType":"struct UserOperation","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":"callGasLimit","type":"uint256","internalType":"uint256"},{"name":"verificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"maxFeePerGas","type":"uint256","internalType":"uint256"},{"name":"maxPriorityFeePerGas","type":"uint256","internalType":"uint256"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"entryPoint","type":"address","internalType":"contract IEntryPoint"},{"name":"addresses","type":"address[]","internalType":"address[]"},{"name":"tokens","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct PimlicoSimulations.AssetChange[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"balanceBefore","type":"uint256","internalType":"uint256"},{"name":"balanceAfter","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"simulateAssetChange07","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":"entryPoint","type":"address","internalType":"contract IEntryPoint"},{"name":"entryPointSimulations","type":"address","internalType":"address"},{"name":"addresses","type":"address[]","internalType":"address[]"},{"name":"tokens","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct PimlicoSimulations.AssetChange[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"balanceBefore","type":"uint256","internalType":"uint256"},{"name":"balanceAfter","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"simulateAssetChange08","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":"entryPoint","type":"address","internalType":"contract IEntryPoint"},{"name":"entryPointSimulations","type":"address","internalType":"address"},{"name":"addresses","type":"address[]","internalType":"address[]"},{"name":"tokens","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct PimlicoSimulations.AssetChange[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"balanceBefore","type":"uint256","internalType":"uint256"},{"name":"balanceAfter","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"simulateEntryPointBulk","inputs":[{"name":"entryPointSimulation","type":"address","internalType":"address"},{"name":"entryPoint","type":"address","internalType":"address payable"},{"name":"data","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"simulateHandleOp","inputs":[{"name":"entryPointSimulation","type":"address","internalType":"address"},{"name":"entryPoint","type":"address","internalType":"address payable"},{"name":"queuedUserOps","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":"targetUserOp","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"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct IEntryPointSimulations.ExecutionResult","components":[{"name":"preOpGas","type":"uint256","internalType":"uint256"},{"name":"paid","type":"uint256","internalType":"uint256"},{"name":"accountValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterVerificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterPostOpGasLimit","type":"uint256","internalType":"uint256"},{"name":"targetSuccess","type":"bool","internalType":"bool"},{"name":"targetResult","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"simulateValidation","inputs":[{"name":"entryPointSimulation","type":"address","internalType":"address"},{"name":"entryPoint","type":"address","internalType":"address payable"},{"name":"queuedUserOps","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":"targetUserOp","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"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct IEntryPointSimulations.ValidationResult","components":[{"name":"returnInfo","type":"tuple","internalType":"struct IEntryPoint.ReturnInfo","components":[{"name":"preOpGas","type":"uint256","internalType":"uint256"},{"name":"prefund","type":"uint256","internalType":"uint256"},{"name":"accountValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterContext","type":"bytes","internalType":"bytes"}]},{"name":"senderInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]},{"name":"factoryInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]},{"name":"paymasterInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]},{"name":"aggregatorInfo","type":"tuple","internalType":"struct IEntryPoint.AggregatorStakeInfo","components":[{"name":"aggregator","type":"address","internalType":"address"},{"name":"stakeInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]}]}]}],"stateMutability":"nonpayable"},{"type":"event","name":"PimlicoSimulationDeployed","inputs":[],"anonymous":false}],"bytecode":{"object":"0x60808060405234603a577f20d4cb4d83077ae7f93cbc84f032f6918d99772c5bb321c4333007d83641ab7e600080a161389490816100408239f35b600080fdfe60a0604052600436101561001257600080fd5b60006080526080513560e01c8063141eb033146122a75780632e5a0a9314612238578063685f602614611e345780637134990314611d26578063861d9d5914611ac757806390d81dfb146118b3578063959c4cb7146112a75780639f2d378914611215578063a4968eab14610ff0578063b21b38c814610d54578063de040de114610a3d578063ef5bfc371461079e578063f1143043146107165763fccb5ff6146100bc57600080fd5b3461048b57606036600319011261048b5760043567ffffffffffffffff811161048b576100ed9036906004016126c5565b906100f66124c3565b906100ff6124d9565b90610108612a2e565b5061011161306b565b8051906801000000000000000082116106fe576080515482608051558083106105ee575b5060808051805251939493907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563906020015b8383106105ca575050505060805192608051916001600160a01b038060805195169216956040945b8181106101c9576101c58787878151926101a884612535565b835260208301526101b76132be565b81830152519182918261286b565b0390f35b85516101d587826125e0565b600181526080515b601f198801811061055c57506101f4828486613581565b6101208136031261048b5787519061020b826125a6565b610214816124ef565b8252602081013560208301528881013567ffffffffffffffff811161048b576102409036908301612636565b89830152606081013567ffffffffffffffff811161048b576102659036908301612636565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013567ffffffffffffffff811161048b576102a99036908301612636565b60e08301526101008101359067ffffffffffffffff821161048b576102d091369101612636565b6101008201526102df826129d7565b526102e9816129d7565b5084315a918a3b1561048b578851907f765e827f000000000000000000000000000000000000000000000000000000008252604482018a600484015281518091526064830190602060648260051b860101930191608051905b8282106104915750505050876024830152818c8180608051940391608051905af19081610472575b506104445750506103c261037c612f82565b6020610389848688613581565b8951809481927f22cdde4c0000000000000000000000000000000000000000000000000000000083528460048401526024830190612aef565b03818d5afa91821561043857608051926103fe575b50600192916103f8918951916103ec83612551565b82526020820152613266565b0161018f565b90915060203d8111610431575b61041581836125e0565b6020826000928101031261042e575051906103f86103d7565b80fd5b503d61040b565b88513d608051823e3d90fd5b956104606001939761046661046c949b6104605a8b319e613236565b90613259565b9a613236565b946103f8565b60805161047e916125e0565b60805161048b573861036a565b60805180fd5b909192936020989e9798808f9e9c9f610542909c9e999c6001946063198b82030187526101006105306105006104ee8d51956001600160a01b038751168652888701518987015261012081880151918701526101208601906126a0565b606086015185820360608701526126a0565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e08601526126a0565b920151906101008184039101526126a0565b9601920192019092919d97969d9c999b9c9a98959a610342565b602090889795989992939996949651610574816125a6565b608051815260805183820152606089820152606080820152608051608082015260805160a082015260805160c0820152606060e082015260606101008201528282860101520197919097969395969492946101dd565b60026020826105df6001949a999a5186613104565b01920192019190959495610167565b6001600160ff1b03811681036106e6576001600160ff1b03831683036106e6576080516080515260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b81811061066e5750610135565b60805181556001810180546002929190610687906130b3565b80610695575b505001610661565b601f81116001146106ae575060805190555b388061068d565b6106cf9082608051526001601f602060805120920160051c820191016130ed565b6080805182905251602081209181905590556106a7565b634e487b7160e01b6080515260116004526024608051fd5b634e487b7160e01b6080515260416004526024608051fd5b3461048b576101c561078a61077b6107746107666001600160a01b0361073b36612957565b6107499793949691976133d8565b5060405197889363af32494360e01b60208601526024850161341b565b03601f1981018652856125e0565b16906135a4565b60208082518301019101613441565b6040519182916020835260208301906128f8565b3461048b57604036600319011261048b5760043567ffffffffffffffff811161048b576107cf9036906004016126c5565b9060243567ffffffffffffffff811161048b576107f09036906004016126c5565b838102939192918015818604831417156106e65761080d85612602565b9461081b60405196876125e0565b80865261082a601f1991612602565b016080515b818110610a2657505060805190815b8181106108b557866040518091602082016020835281518091526020604084019201906080515b818110610873575050500390f35b9193509160206060600192604087516001600160a01b0381511683526001600160a01b0385820151168584015201516040820152019401910191849392610865565b6108c86108c382848861355d565b61356d565b608051906001600160a01b038116915b8681106108ea5750505060010161083e565b86898273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b036109186108c384878761355d565b1603610984575050508131905b6109336108c3828a8d61355d565b916001600160a01b036040519361094985612535565b86855216602084015260408301528660001981146106e657876001936109768e9a8661097d95019b6129fa565b528c6129fa565b50016108d8565b61099e6108c36001600160a01b039260249560209561355d565b16604051928380927f70a082310000000000000000000000000000000000000000000000000000000082528860048301525afa908115610a1957608051916109e8575b5090610925565b90506020813d8211610a11575b81610a02602093836125e0565b8101031261048b57518b6109e1565b3d91506109f5565b6040513d608051823e3d90fd5b602090610a31612a4f565b82828a0101520161082f565b3461048b57610b5a6107746107666001600160a01b03610a5c36612957565b604097939496919751610a6e8161258a565b604051610a7a8161258a565b6080518152608051602082015260805160408201526080516060820152606060808201528152604051610aac81612551565b60008152600060208201526020820152604051610ac881612551565b60008152600060208201526040820152604051610ae481612551565b60008152600060208201526060820152608060405191610b0383612551565b81518352604051610b1381612551565b6000815260006020820152602084015201526040519788937faec321fb0000000000000000000000000000000000000000000000000000000060208601526024850161341b565b80518101602081019160208183031261048b5760208101519067ffffffffffffffff821161048b5701808203601f19810192906101401361048b5760405190610ba28261258a565b602083015167ffffffffffffffff811161048b578301602081019160a09190031261048b5760405190610bd48261258a565b8051825260208101516020830152604081015160408301526060810151606083015260808101519067ffffffffffffffff821161048b57610c1791879101612c6a565b60808201528152610c2b8460408401613535565b9160208201928352610c408560808301613535565b90604083019182526060610c578760c08401613535565b8482019081529560bf19011261048b57602080958180959481610cfe60808298610ca36101409e6101206040519b610c8e8d612551565b610c9b6101008201612d95565b8d5201613535565b848a01528181019889526040519d848f9e928f938452519201528c61016082519101528c610180858301519101528c6101a060408301519101528c6101c06060830151910152015160a06101e08d01526102008c01906126a0565b9851805160408c0152015160608a015251805160808a0152015160a088015251805160c0880152015160e0860152516001600160a01b038151166101008601520151805161012085015201516101408301520390f35b3461048b5760a036600319011261048b5760043567ffffffffffffffff811161048b57610120600319823603011261048b57610d8e6124c3565b610d966124d9565b9060643567ffffffffffffffff811161048b57610db79036906004016126c5565b60849491943567ffffffffffffffff811161048b57610dda9036906004016126c5565b6040969196519663ef5bfc3760e01b88526080518880610e008585898960048601612ea1565b0381305afa978815610a195760805198610f99575b50610ea494610766610ebc9895610e646001600160a01b0396610e5661077b9b976107749760405195869463ef5bfc3760e01b602087015260248601612ea1565b03601f1981018352826125e0565b6040519788937f7da0c462000000000000000000000000000000000000000000000000000000006020860152606060248601526084850190600401612aef565b306044850152838103602319016064850152906126a0565b60c081015115610f8d5760e0610edd91015160208082518301019101612da9565b90610ee88151612fff565b916080515b8251811015610f7f57806001600160a01b03610f0b600193866129fa565b5151166001600160a01b036020610f2284886129fa565b510151166040610f3284886129fa565b5101516040610f4185886129fa565b5101519160405193610f5285612503565b8452602084015260408301526060820152610f6d82876129fa565b52610f7881866129fa565b5001610eed565b604051806101c586826127fd565b60e00151602081519101fd5b61077491985094610766610ebc9895610e646001600160a01b0396610e5661077b9b97610fdc610ea49c3d80608051833e610fd481836125e0565b810190612da9565b9e9750979b50509650509598505094610e15565b3461048b57610ffe366126f6565b60409793959297969196519661101388612535565b61101b6133d8565b8852602088019861102a612a6e565b8a526040890197611039612a6e565b895261107661077b826110668b610e5660405193849263af32494360e01b60208501528d6024850161341b565b6001600160a01b0388168a6135a4565b8a52878787876110bb8888888860405198899788977f2e5a0a930000000000000000000000000000000000000000000000000000000089526080519a60048a016134e3565b0381608051305af1908115610a1957608051916111f9575b508b5260e0810135601e198236030181121561048b57810180359067ffffffffffffffff821161048b57602082360391011361048b5760141115611160575b61113a8a6101c58b61114d8f60405195869560208752516060602088015260808701906128f8565b9051858203601f19016040870152612782565b9051838203601f19016060850152612782565b906111a2939291604099989951998a9788977f9f2d37890000000000000000000000000000000000000000000000000000000089526080519a60048a016134e3565b0381608051305af1918215610a195761113a946101c59361114d92608051916111d5575b50835294829387808080611112565b6111f391503d80608051833e6111eb81836125e0565b810190612cac565b876111c6565b61120f91503d80608051833e6111eb81836125e0565b8c6110d3565b3461048b576101c56112936112846107666107746001600160a01b0361123a366126f6565b92958097999661124e9b959b939293612a6e565b506040519b8c977fd72f25930000000000000000000000000000000000000000000000000000000060208a015260248901612c13565b60208082518301019101612cac565b604051918291602083526020830190612782565b3461048b57606036600319011261048b5760043567ffffffffffffffff811161048b576112d89036906004016126c5565b906112e16124c3565b906112ea6124d9565b906112f3612a2e565b506112fc61306b565b8051906801000000000000000082116106fe576080515482608051558083106117bb575b5060808051805251939493907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563906020015b838310611797575050505060805192608051916001600160a01b038060805195169216956040945b818110611393576101c58787878151926101a884612535565b855161139f87826125e0565b600181526080515b601f198801811061171757506113be828486613213565b6101608136031261048b578751906113d58261256d565b6113de816124ef565b8252602081013560208301528881013567ffffffffffffffff811161048b5761140a9036908301612636565b89830152606081013567ffffffffffffffff811161048b5761142f9036908301612636565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013560e083015261010081013561010083015261012081013567ffffffffffffffff811161048b5761148a9036908301612636565b6101208301526101408101359067ffffffffffffffff821161048b576114b291369101612636565b6101408201526114c1826129d7565b526114cb816129d7565b5084315a918a3b1561048b578851907f1fad948c000000000000000000000000000000000000000000000000000000008252604482018a600484015281518091526064830190602060648260051b860101930191608051905b8282106116465750505050876024830152818c8180608051940391608051905af1908161162d575b5061160b5750506115a461155e612f82565b602061156b848688613213565b8951809481927fa61935310000000000000000000000000000000000000000000000000000000083528460048401526024830190612ec8565b03818d5afa91821561043857608051926115d4575b50600192916115ce918951916103ec83612551565b0161137a565b90915060203d8111611604575b6115eb81836125e0565b6020826000928101031261042e575051906115ce6115b9565b503d6115e1565b9561046060019397610466611627949b6104605a8b319e613236565b946115ce565b608051611639916125e0565b60805161048b578b61154c565b909192936020989e9798808f9e9c9f6116fd909c9e999c6001946063198b82030187526101406116eb6116a36104ee8d51956001600160a01b038751168652888701518987015261016081880151918701526101608601906126a0565b6080850151608085015260a085015160a085015260c085015160c085015260e085015160e08501526101008501516101008501526101208501518482036101208601526126a0565b920151906101408184039101526126a0565b9601920192019092919d97969d9c999b9c9a98959a611524565b60209088979598999293999694965161172f8161256d565b608051815260805183820152606089820152606080820152608051608082015260805160a082015260805160c082015260805160e0820152608051610100820152606061012082015260606101408201528282860101520197919097969395969492946113a7565b60026020826117ac6001949a999a5186613104565b01920192019190959495611352565b6001600160ff1b03811681036106e6576001600160ff1b03831683036106e6576080516080515260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b81811061183b5750611320565b60805181556001810180546002929190611854906130b3565b80611862575b50500161182e565b601f811160011461187b575060805190555b898061185a565b61189c9082608051526001601f602060805120920160051c820191016130ed565b608080518290525160208120918190559055611874565b3461048b5760a036600319011261048b5760043567ffffffffffffffff811161048b57610120600319823603011261048b576118ed6124c3565b6118f56124d9565b9060643567ffffffffffffffff811161048b576119169036906004016126c5565b608435949167ffffffffffffffff861161048b576119ae611990946119c4936001600160a01b03989361194e8a9536906004016126c5565b9590996040519b8c9a8b9a7fb21b38c8000000000000000000000000000000000000000000000000000000008c5260a060048d015260a48c0190600401612aef565b951660248a0152166044880152868303600319016064880152612e5f565b9060031984830301608485015260805195612e5f565b0381608051305af18015610a1957608051906119eb575b6101c590604051918291826127fd565b503d80608051833e6119fd81836125e0565b81019060208183031261048b5780519067ffffffffffffffff821161048b57019080601f8301121561048b57815191611a3583612602565b91611a4360405193846125e0565b83835260208084019460071b8301019181831161048b57602001935b828510611a73575050506101c591506119db565b60808583031261048b576020608091604051611a8e81612503565b611a9788612d95565b8152611aa4838901612d95565b838201526040880151604082015260608801516060820152815201940193611a5f565b3461048b57606036600319011261048b5760043567ffffffffffffffff811161048b57611af89036906004016126c5565b90611b016124c3565b906001600160a01b03611b126124d9565b611b1a612a2e565b501690813b1561048b576040517fd12e825d0000000000000000000000000000000000000000000000000000000081526080518160048183875af1611d0d575b50611b9f6001600160a01b0391604051957ffccb5ff6000000000000000000000000000000000000000000000000000000008752606060048801526064870191612bac565b9216602484015260448301528180608051920381608051305af18015610a195760805190611bd8575b6101c5906040519182918261286b565b503d80608051833e611bea81836125e0565b81019060208183031261048b5780519067ffffffffffffffff821161048b570160608183031261048b5760405190611c2182612535565b805182526020810151602083015260408101519067ffffffffffffffff821161048b570182601f8201121561048b57805190611c5c82612602565b91611c6a60405193846125e0565b80835260208084019160051b8301019185831161048b5760208101915b838310611ca157505050506101c592506040820152611bc8565b825167ffffffffffffffff811161048b578201906040828903601f19011261048b5760405190611cd082612551565b6020830151825260408301519167ffffffffffffffff831161048b57611cfe8a602080969581960101612c6a565b83820152815201920191611c87565b608051611d19916125e0565b60805161048b5784611b5a565b3461048b5760e036600319011261048b57611d3f6124a8565b611d476124c3565b60443567ffffffffffffffff811161048b57611d679036906004016126c5565b906064359267ffffffffffffffff841161048b57610120600319853603011261048b576101c594611e2f61128494611dfa61129397611da4612a6e565b50611de56040519788947facbe911e00000000000000000000000000000000000000000000000000000000602087015260c0602487015260e4860191612bac565b83810360231901604485015290600401612aef565b6001600160a01b0385166064830152608435608483015260a43560a483015260c43560c483015203601f1981018552846125e0565b6135a4565b3461048b57608036600319011261048b5760043567ffffffffffffffff811161048b57610160600319823603011261048b57611e6e6124c3565b9060443567ffffffffffffffff811161048b57611e8f9036906004016126c5565b909260643567ffffffffffffffff811161048b57611eb19036906004016126c5565b6040959195519563ef5bfc3760e01b87526080518780611ed785858a8960048601612ea1565b0381305afa968715610a195760805197612203575b5091611f1f611f2d926001600160a01b0395946080515060405197889463ef5bfc3760e01b602087015260248601612ea1565b03601f1981018552846125e0565b1691823b1561048b57611f9992611f7e916040518095819482937fd6383f94000000000000000000000000000000000000000000000000000000008452606060048501526064840190600401612ec8565b306024840152828103600319016044840152608051966126a0565b0391608051905af190816121f1575b506121ad57611fb5612f82565b600481511115612169576001600160e01b0319611fd9611fd4836137b0565b612fb2565b167f220266b6000000000000000000000000000000000000000000000000000000008114612160577f462c71b200000000000000000000000000000000000000000000000000000000148015612157575b61214f5780516120399161382d565b8051810160c08282031261048b5761205360608301612fec565b5061206060808301612fec565b5061206d60a08301612c5d565b9160c08101519167ffffffffffffffff831161048b57612094926020809201920101612c6a565b901561214f57806020806120ad93518301019101612da9565b906120b88151612fff565b916080515b8251811015610f7f57806001600160a01b036120db600193866129fa565b5151166001600160a01b0360206120f284886129fa565b51015116604061210284886129fa565b510151604061211185886129fa565b510151916040519361212285612503565b845260208401526040830152606082015261213d82876129fa565b5261214881866129fa565b50016120bd565b602081519101fd5b5060805161202a565b50602081519101fd5b606460405162461bcd60e51b815260206004820152601d60248201527f556e657870656374656420726576657274206461746120666f726d61740000006044820152fd5b606460405162461bcd60e51b815260206004820152601c60248201527f73696d756c61746548616e646c654f70206d75737420726576657274000000006044820152fd5b6080516121fd916125e0565b82611fa8565b6001600160a01b039493919750611f2d9261222c611f1f923d80608051833e610fd481836125e0565b98929495509250611eec565b3461048b576101c56112936112846107666107746001600160a01b0361225d366126f6565b9295809799966122719b959b939293612a6e565b506040519b8c977f212eccc60000000000000000000000000000000000000000000000000000000060208a015260248901612c13565b3461048b57606036600319011261048b576122c06124a8565b6122c86124c3565b60443567ffffffffffffffff811161048b573660238201121561048b5780600401356122f381612602565b9161230160405193846125e0565b8183526024602084019260051b8201019036821161048b5760248101925b828410612478575050505080519261233684612602565b9361234460405195866125e0565b808552612353601f1991612602565b016080515b8181106124675750506001600160a01b036080519316925b82518110156123fe57600190606061238882866129fa565b516040516123ac81610e56602082019463428557b160e11b86528960248401612a0e565b5a608051926080519251918a60805191f1156123df575b6123cd82886129fa565b526123d881876129fa565b5001612370565b503d60405190602081830101604052808252608051602083013e6123c3565b846040518091602082016020835281518091526040830190602060408260051b860101930191608051905b82821061243857505050500390f35b919360019193955060206124578192603f198a820301865288516126a0565b9601920192018594939192612429565b806060602080938901015201612358565b833567ffffffffffffffff811161048b5760209161249d839260243691870101612636565b81520193019261231f565b600435906001600160a01b03821682036124be57565b600080fd5b602435906001600160a01b03821682036124be57565b604435906001600160a01b03821682036124be57565b35906001600160a01b03821682036124be57565b6080810190811067ffffffffffffffff82111761251f57604052565b634e487b7160e01b600052604160045260246000fd5b6060810190811067ffffffffffffffff82111761251f57604052565b6040810190811067ffffffffffffffff82111761251f57604052565b610160810190811067ffffffffffffffff82111761251f57604052565b60a0810190811067ffffffffffffffff82111761251f57604052565b610120810190811067ffffffffffffffff82111761251f57604052565b610100810190811067ffffffffffffffff82111761251f57604052565b90601f8019910116810190811067ffffffffffffffff82111761251f57604052565b67ffffffffffffffff811161251f5760051b60200190565b67ffffffffffffffff811161251f57601f01601f191660200190565b81601f820112156124be5780359061264d8261261a565b9261265b60405194856125e0565b828452602083830101116124be57816000926020809301838601378301015290565b60005b8381106126905750506000910152565b8181015183820152602001612680565b906020916126b98151809281855285808601910161267d565b601f01601f1916010190565b9181601f840112156124be5782359167ffffffffffffffff83116124be576020808501948460051b0101116124be57565b60e06003198201126124be576004356001600160a01b03811681036124be57916024356001600160a01b03811681036124be579160443567ffffffffffffffff81116124be5781612749916004016126c5565b929092916064359067ffffffffffffffff82116124be576101209082900360031901126124be57600401906084359060a4359060c43590565b90815160028110156127e757815260806040806127cc81602087015160a06020880152805160a08801526020810151151560c08801520151606060e08701526101008601906126a0565b94015180518285015260208101516060850152015191015290565b634e487b7160e01b600052602160045260246000fd5b602060408183019282815284518094520192019060005b8181106128215750505090565b90919260206080600192606087516001600160a01b0381511683526001600160a01b0385820151168584015260408101516040840152015160608201520194019101919091612814565b602081526040608082019280516020840152602081015182840152015191606080830152825180915260a0820191602060a08360051b8301019401926000915b8383106128ba57505050505090565b90919293946020806128e9600193609f198682030187526040838b5180518452015191818582015201906126a0565b970193019301919392906128ab565b9061010060e061295493805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c0810151151560c08501520151918160e082015201906126a0565b90565b60806003198201126124be576004356001600160a01b03811681036124be57916024356001600160a01b03811681036124be579160443567ffffffffffffffff81116124be57816129aa916004016126c5565b929092916064359067ffffffffffffffff82116124be576101209082900360031901126124be5760040190565b8051156129e45760200190565b634e487b7160e01b600052603260045260246000fd5b80518210156129e45760209160051b010190565b6040906001600160a01b03612954949316815281602082015201906126a0565b60405190612a3b82612535565b606060408360008152600060208201520152565b60405190612a5c82612535565b60006040838281528260208201520152565b60405190612a7b82612535565b8160008152612a88612a2e565b60208201526040612a97612a4f565b910152565b9035601e19823603018112156124be57016020813591019167ffffffffffffffff82116124be5781360383136124be57565b908060209392818452848401376000828201840152601f01601f1916010190565b612954916001600160a01b03612b04836124ef565b16815260208201356020820152612b9d612b91612b58612b3d612b2a6040870187612a9c565b6101206040880152610120870191612ace565b612b4a6060870187612a9c565b908683036060880152612ace565b6080850135608085015260a085013560a085015260c085013560c0850152612b8360e0860186612a9c565b9085830360e0870152612ace565b92610100810190612a9c565b91610100818503910152612ace565b90602083828152019060208160051b85010193836000915b838310612bd45750505050505090565b909192939495601f19828203018652863561011e19843603018112156124be576020612c0560019386839401612aef565b980196019493019190612bc4565b9397969592612c4890612c3a6001600160a01b039360a0989560c0895260c0890191612bac565b908682036020880152612aef565b97166040840152606083015260808201520152565b519081151582036124be57565b81601f820112156124be578051612c808161261a565b92612c8e60405194856125e0565b818452602082840101116124be57612954916020808501910161267d565b6020818303126124be5780519067ffffffffffffffff82116124be57018082039160a083126124be5760405192612ce284612535565b825160028110156124be578452602083015167ffffffffffffffff81116124be5783016060818403126124be5760405190612d1c82612535565b80518252612d2c60208201612c5d565b602083015260408101519367ffffffffffffffff85116124be57606094612d539201612c6a565b60408201526020850152603f1901126124be57608060405191612d7583612535565b604081015183526060810151602084015201516040820152604082015290565b51906001600160a01b03821682036124be57565b6020818303126124be5780519067ffffffffffffffff82116124be570181601f820112156124be57805190612ddd82612602565b92612deb60405194856125e0565b828452602060608186019402830101918183116124be57602001925b828410612e15575050505090565b6060848303126124be576020606091604051612e3081612535565b612e3987612d95565b8152612e46838801612d95565b8382015260408701516040820152815201930192612e07565b9160209082815201919060005b818110612e795750505090565b9091926020806001926001600160a01b03612e93886124ef565b168152019401929101612e6c565b9290612eba906129549593604086526040860191612e5f565b926020818503910152612e5f565b612954916001600160a01b03612edd836124ef565b16815260208201356020820152612f73612f67612f16612b3d612f036040870187612a9c565b6101606040880152610160870191612ace565b6080850135608085015260a085013560a085015260c085013560c085015260e085013560e0850152610100850135610100850152612f58610120860186612a9c565b90858303610120870152612ace565b92610140810190612a9c565b91610140818503910152612ace565b3d15612fad573d90612f938261261a565b91612fa160405193846125e0565b82523d6000602084013e565b606090565b90602082519201516001600160e01b031981169260048110612fd2575050565b6001600160e01b0319929350829060040360031b1b161690565b519065ffffffffffff821682036124be57565b9061300982612602565b61301660405191826125e0565b8281528092613027601f1991612602565b019060005b82811061303857505050565b60209060405161304781612503565b6000815260008382015260006040820152600060608201528282850101520161302c565b6040519061307a6020836125e0565b600080835282815b82811061308e57505050565b60209060405161309d81612551565b6000815260608382015282828501015201613082565b90600182811c921680156130e3575b60208310146130cd57565b634e487b7160e01b600052602260045260246000fd5b91607f16916130c2565b8181106130f8575050565b600081556001016130ed565b6001602091939293845181550192015191825167ffffffffffffffff811161251f5761313082546130b3565b601f81116131d6575b506020601f82116001146131745781929394600092613169575b50508160011b916000199060031b1c1916179055565b015190503880613153565b601f1982169083600052806000209160005b8181106131be575095836001959697106131a5575b505050811b019055565b015160001960f88460031b161c1916905538808061319b565b9192602060018192868b015181550194019201613186565b61320390836000526020600020601f840160051c81019160208510613209575b601f0160051c01906130ed565b38613139565b90915081906131f6565b91908110156129e45760051b8101359061015e19813603018212156124be570190565b9190820391821161324357565b634e487b7160e01b600052601160045260246000fd5b9190820180921161324357565b600054906801000000000000000082101561251f5760018201806000558210156129e457600080526132bc9160011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301613104565b565b600054906132cb82612602565b916132d960405193846125e0565b8083526000808052907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563602085015b8284106133155750505050565b60405161332181612551565b8254815260405160018401805460009161333a826130b3565b80855291600181169081156133b3575060011461337b575b5050926002928261336960209460019703826125e0565b83820152815201920193019290613308565b6000908152602081209092505b81831061339d57505081016020018282613352565b6001816020925483868801015201920191613388565b60ff191660208087019190915292151560051b85019092019250849150839050613352565b604051906133e5826125c3565b606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b91612954939161343391604085526040850191612bac565b916020818403910152612aef565b6020818303126124be5780519067ffffffffffffffff82116124be5701610100818303126124be5760405191613476836125c3565b815183526020820151602084015260408201516040840152606082015160608401526080820151608084015260a082015160a08401526134b860c08301612c5d565b60c084015260e082015167ffffffffffffffff81116124be576134db9201612c6a565b60e082015290565b94919260c096999897946001600160a01b0361352695816135189516895216602088015260e0604088015260e0870191612bac565b908482036060860152612aef565b95608083015260a08201520152565b91908260409103126124be5760405161354d81612551565b6020808294805184520151910152565b91908110156129e45760051b0190565b356001600160a01b03811681036124be5790565b91908110156129e45760051b8101359061011e19813603018212156124be570190565b60405163428557b160e11b602082019081526000948594859485926135d29186916107669160248401612a0e565b5a935193f1613746573d60405191602082840101604052818352602083013e60048151106136dc5763428557b160e11b6001600160e01b0319613617611fd4846137b0565b16146136725780516136289161382d565b805181016040828203126124be5761364260208301612c5d565b9160408101519167ffffffffffffffff83116124be57613669926020809201920101612c6a565b901561214f5790565b608460405162461bcd60e51b815260206004820152603d60248201527f44656c6567617465416e6452657665727420646964206e6f742072657665727460448201527f20776974682044656c6567617465416e64526576657274206572726f720000006064820152fd5b608460405162461bcd60e51b815260206004820152602a60248201527f44656c6567617465416e6452657665727420726576657274206461746120697360448201527f20746f6f2073686f7274000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602c60248201527f44656c6567617465416e6452657665727420646964206e6f742072657665727460448201527f20617320657870656374656400000000000000000000000000000000000000006064820152fd5b9060009160049060609381516004811115613825575b801561381d575b508281106137da57505050565b6040519450918290039101601f8201601f19165b8181015185820152601f190190811561380757906137ee565b5050604081840160006020820152016040528252565b9050386137cd565b9250826137c6565b9190600492606093815183811115613856575b600481111561381d57508281106137da57505050565b92508261384056fea264697066735822122009caf59aef2a8f6b905bb01a48e94f24bdc56d6ddb903e3cbe51b67fc7fde99864736f6c634300081c0033","sourceMap":"1102:21517:31:-:0;;;;;;;1519:27;;;;1102:21517;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60a0604052600436101561001257600080fd5b60006080526080513560e01c8063141eb033146122a75780632e5a0a9314612238578063685f602614611e345780637134990314611d26578063861d9d5914611ac757806390d81dfb146118b3578063959c4cb7146112a75780639f2d378914611215578063a4968eab14610ff0578063b21b38c814610d54578063de040de114610a3d578063ef5bfc371461079e578063f1143043146107165763fccb5ff6146100bc57600080fd5b3461048b57606036600319011261048b5760043567ffffffffffffffff811161048b576100ed9036906004016126c5565b906100f66124c3565b906100ff6124d9565b90610108612a2e565b5061011161306b565b8051906801000000000000000082116106fe576080515482608051558083106105ee575b5060808051805251939493907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563906020015b8383106105ca575050505060805192608051916001600160a01b038060805195169216956040945b8181106101c9576101c58787878151926101a884612535565b835260208301526101b76132be565b81830152519182918261286b565b0390f35b85516101d587826125e0565b600181526080515b601f198801811061055c57506101f4828486613581565b6101208136031261048b5787519061020b826125a6565b610214816124ef565b8252602081013560208301528881013567ffffffffffffffff811161048b576102409036908301612636565b89830152606081013567ffffffffffffffff811161048b576102659036908301612636565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013567ffffffffffffffff811161048b576102a99036908301612636565b60e08301526101008101359067ffffffffffffffff821161048b576102d091369101612636565b6101008201526102df826129d7565b526102e9816129d7565b5084315a918a3b1561048b578851907f765e827f000000000000000000000000000000000000000000000000000000008252604482018a600484015281518091526064830190602060648260051b860101930191608051905b8282106104915750505050876024830152818c8180608051940391608051905af19081610472575b506104445750506103c261037c612f82565b6020610389848688613581565b8951809481927f22cdde4c0000000000000000000000000000000000000000000000000000000083528460048401526024830190612aef565b03818d5afa91821561043857608051926103fe575b50600192916103f8918951916103ec83612551565b82526020820152613266565b0161018f565b90915060203d8111610431575b61041581836125e0565b6020826000928101031261042e575051906103f86103d7565b80fd5b503d61040b565b88513d608051823e3d90fd5b956104606001939761046661046c949b6104605a8b319e613236565b90613259565b9a613236565b946103f8565b60805161047e916125e0565b60805161048b573861036a565b60805180fd5b909192936020989e9798808f9e9c9f610542909c9e999c6001946063198b82030187526101006105306105006104ee8d51956001600160a01b038751168652888701518987015261012081880151918701526101208601906126a0565b606086015185820360608701526126a0565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e08601526126a0565b920151906101008184039101526126a0565b9601920192019092919d97969d9c999b9c9a98959a610342565b602090889795989992939996949651610574816125a6565b608051815260805183820152606089820152606080820152608051608082015260805160a082015260805160c0820152606060e082015260606101008201528282860101520197919097969395969492946101dd565b60026020826105df6001949a999a5186613104565b01920192019190959495610167565b6001600160ff1b03811681036106e6576001600160ff1b03831683036106e6576080516080515260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b81811061066e5750610135565b60805181556001810180546002929190610687906130b3565b80610695575b505001610661565b601f81116001146106ae575060805190555b388061068d565b6106cf9082608051526001601f602060805120920160051c820191016130ed565b6080805182905251602081209181905590556106a7565b634e487b7160e01b6080515260116004526024608051fd5b634e487b7160e01b6080515260416004526024608051fd5b3461048b576101c561078a61077b6107746107666001600160a01b0361073b36612957565b6107499793949691976133d8565b5060405197889363af32494360e01b60208601526024850161341b565b03601f1981018652856125e0565b16906135a4565b60208082518301019101613441565b6040519182916020835260208301906128f8565b3461048b57604036600319011261048b5760043567ffffffffffffffff811161048b576107cf9036906004016126c5565b9060243567ffffffffffffffff811161048b576107f09036906004016126c5565b838102939192918015818604831417156106e65761080d85612602565b9461081b60405196876125e0565b80865261082a601f1991612602565b016080515b818110610a2657505060805190815b8181106108b557866040518091602082016020835281518091526020604084019201906080515b818110610873575050500390f35b9193509160206060600192604087516001600160a01b0381511683526001600160a01b0385820151168584015201516040820152019401910191849392610865565b6108c86108c382848861355d565b61356d565b608051906001600160a01b038116915b8681106108ea5750505060010161083e565b86898273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b036109186108c384878761355d565b1603610984575050508131905b6109336108c3828a8d61355d565b916001600160a01b036040519361094985612535565b86855216602084015260408301528660001981146106e657876001936109768e9a8661097d95019b6129fa565b528c6129fa565b50016108d8565b61099e6108c36001600160a01b039260249560209561355d565b16604051928380927f70a082310000000000000000000000000000000000000000000000000000000082528860048301525afa908115610a1957608051916109e8575b5090610925565b90506020813d8211610a11575b81610a02602093836125e0565b8101031261048b57518b6109e1565b3d91506109f5565b6040513d608051823e3d90fd5b602090610a31612a4f565b82828a0101520161082f565b3461048b57610b5a6107746107666001600160a01b03610a5c36612957565b604097939496919751610a6e8161258a565b604051610a7a8161258a565b6080518152608051602082015260805160408201526080516060820152606060808201528152604051610aac81612551565b60008152600060208201526020820152604051610ac881612551565b60008152600060208201526040820152604051610ae481612551565b60008152600060208201526060820152608060405191610b0383612551565b81518352604051610b1381612551565b6000815260006020820152602084015201526040519788937faec321fb0000000000000000000000000000000000000000000000000000000060208601526024850161341b565b80518101602081019160208183031261048b5760208101519067ffffffffffffffff821161048b5701808203601f19810192906101401361048b5760405190610ba28261258a565b602083015167ffffffffffffffff811161048b578301602081019160a09190031261048b5760405190610bd48261258a565b8051825260208101516020830152604081015160408301526060810151606083015260808101519067ffffffffffffffff821161048b57610c1791879101612c6a565b60808201528152610c2b8460408401613535565b9160208201928352610c408560808301613535565b90604083019182526060610c578760c08401613535565b8482019081529560bf19011261048b57602080958180959481610cfe60808298610ca36101409e6101206040519b610c8e8d612551565b610c9b6101008201612d95565b8d5201613535565b848a01528181019889526040519d848f9e928f938452519201528c61016082519101528c610180858301519101528c6101a060408301519101528c6101c06060830151910152015160a06101e08d01526102008c01906126a0565b9851805160408c0152015160608a015251805160808a0152015160a088015251805160c0880152015160e0860152516001600160a01b038151166101008601520151805161012085015201516101408301520390f35b3461048b5760a036600319011261048b5760043567ffffffffffffffff811161048b57610120600319823603011261048b57610d8e6124c3565b610d966124d9565b9060643567ffffffffffffffff811161048b57610db79036906004016126c5565b60849491943567ffffffffffffffff811161048b57610dda9036906004016126c5565b6040969196519663ef5bfc3760e01b88526080518880610e008585898960048601612ea1565b0381305afa978815610a195760805198610f99575b50610ea494610766610ebc9895610e646001600160a01b0396610e5661077b9b976107749760405195869463ef5bfc3760e01b602087015260248601612ea1565b03601f1981018352826125e0565b6040519788937f7da0c462000000000000000000000000000000000000000000000000000000006020860152606060248601526084850190600401612aef565b306044850152838103602319016064850152906126a0565b60c081015115610f8d5760e0610edd91015160208082518301019101612da9565b90610ee88151612fff565b916080515b8251811015610f7f57806001600160a01b03610f0b600193866129fa565b5151166001600160a01b036020610f2284886129fa565b510151166040610f3284886129fa565b5101516040610f4185886129fa565b5101519160405193610f5285612503565b8452602084015260408301526060820152610f6d82876129fa565b52610f7881866129fa565b5001610eed565b604051806101c586826127fd565b60e00151602081519101fd5b61077491985094610766610ebc9895610e646001600160a01b0396610e5661077b9b97610fdc610ea49c3d80608051833e610fd481836125e0565b810190612da9565b9e9750979b50509650509598505094610e15565b3461048b57610ffe366126f6565b60409793959297969196519661101388612535565b61101b6133d8565b8852602088019861102a612a6e565b8a526040890197611039612a6e565b895261107661077b826110668b610e5660405193849263af32494360e01b60208501528d6024850161341b565b6001600160a01b0388168a6135a4565b8a52878787876110bb8888888860405198899788977f2e5a0a930000000000000000000000000000000000000000000000000000000089526080519a60048a016134e3565b0381608051305af1908115610a1957608051916111f9575b508b5260e0810135601e198236030181121561048b57810180359067ffffffffffffffff821161048b57602082360391011361048b5760141115611160575b61113a8a6101c58b61114d8f60405195869560208752516060602088015260808701906128f8565b9051858203601f19016040870152612782565b9051838203601f19016060850152612782565b906111a2939291604099989951998a9788977f9f2d37890000000000000000000000000000000000000000000000000000000089526080519a60048a016134e3565b0381608051305af1918215610a195761113a946101c59361114d92608051916111d5575b50835294829387808080611112565b6111f391503d80608051833e6111eb81836125e0565b810190612cac565b876111c6565b61120f91503d80608051833e6111eb81836125e0565b8c6110d3565b3461048b576101c56112936112846107666107746001600160a01b0361123a366126f6565b92958097999661124e9b959b939293612a6e565b506040519b8c977fd72f25930000000000000000000000000000000000000000000000000000000060208a015260248901612c13565b60208082518301019101612cac565b604051918291602083526020830190612782565b3461048b57606036600319011261048b5760043567ffffffffffffffff811161048b576112d89036906004016126c5565b906112e16124c3565b906112ea6124d9565b906112f3612a2e565b506112fc61306b565b8051906801000000000000000082116106fe576080515482608051558083106117bb575b5060808051805251939493907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563906020015b838310611797575050505060805192608051916001600160a01b038060805195169216956040945b818110611393576101c58787878151926101a884612535565b855161139f87826125e0565b600181526080515b601f198801811061171757506113be828486613213565b6101608136031261048b578751906113d58261256d565b6113de816124ef565b8252602081013560208301528881013567ffffffffffffffff811161048b5761140a9036908301612636565b89830152606081013567ffffffffffffffff811161048b5761142f9036908301612636565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013560e083015261010081013561010083015261012081013567ffffffffffffffff811161048b5761148a9036908301612636565b6101208301526101408101359067ffffffffffffffff821161048b576114b291369101612636565b6101408201526114c1826129d7565b526114cb816129d7565b5084315a918a3b1561048b578851907f1fad948c000000000000000000000000000000000000000000000000000000008252604482018a600484015281518091526064830190602060648260051b860101930191608051905b8282106116465750505050876024830152818c8180608051940391608051905af1908161162d575b5061160b5750506115a461155e612f82565b602061156b848688613213565b8951809481927fa61935310000000000000000000000000000000000000000000000000000000083528460048401526024830190612ec8565b03818d5afa91821561043857608051926115d4575b50600192916115ce918951916103ec83612551565b0161137a565b90915060203d8111611604575b6115eb81836125e0565b6020826000928101031261042e575051906115ce6115b9565b503d6115e1565b9561046060019397610466611627949b6104605a8b319e613236565b946115ce565b608051611639916125e0565b60805161048b578b61154c565b909192936020989e9798808f9e9c9f6116fd909c9e999c6001946063198b82030187526101406116eb6116a36104ee8d51956001600160a01b038751168652888701518987015261016081880151918701526101608601906126a0565b6080850151608085015260a085015160a085015260c085015160c085015260e085015160e08501526101008501516101008501526101208501518482036101208601526126a0565b920151906101408184039101526126a0565b9601920192019092919d97969d9c999b9c9a98959a611524565b60209088979598999293999694965161172f8161256d565b608051815260805183820152606089820152606080820152608051608082015260805160a082015260805160c082015260805160e0820152608051610100820152606061012082015260606101408201528282860101520197919097969395969492946113a7565b60026020826117ac6001949a999a5186613104565b01920192019190959495611352565b6001600160ff1b03811681036106e6576001600160ff1b03831683036106e6576080516080515260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b81811061183b5750611320565b60805181556001810180546002929190611854906130b3565b80611862575b50500161182e565b601f811160011461187b575060805190555b898061185a565b61189c9082608051526001601f602060805120920160051c820191016130ed565b608080518290525160208120918190559055611874565b3461048b5760a036600319011261048b5760043567ffffffffffffffff811161048b57610120600319823603011261048b576118ed6124c3565b6118f56124d9565b9060643567ffffffffffffffff811161048b576119169036906004016126c5565b608435949167ffffffffffffffff861161048b576119ae611990946119c4936001600160a01b03989361194e8a9536906004016126c5565b9590996040519b8c9a8b9a7fb21b38c8000000000000000000000000000000000000000000000000000000008c5260a060048d015260a48c0190600401612aef565b951660248a0152166044880152868303600319016064880152612e5f565b9060031984830301608485015260805195612e5f565b0381608051305af18015610a1957608051906119eb575b6101c590604051918291826127fd565b503d80608051833e6119fd81836125e0565b81019060208183031261048b5780519067ffffffffffffffff821161048b57019080601f8301121561048b57815191611a3583612602565b91611a4360405193846125e0565b83835260208084019460071b8301019181831161048b57602001935b828510611a73575050506101c591506119db565b60808583031261048b576020608091604051611a8e81612503565b611a9788612d95565b8152611aa4838901612d95565b838201526040880151604082015260608801516060820152815201940193611a5f565b3461048b57606036600319011261048b5760043567ffffffffffffffff811161048b57611af89036906004016126c5565b90611b016124c3565b906001600160a01b03611b126124d9565b611b1a612a2e565b501690813b1561048b576040517fd12e825d0000000000000000000000000000000000000000000000000000000081526080518160048183875af1611d0d575b50611b9f6001600160a01b0391604051957ffccb5ff6000000000000000000000000000000000000000000000000000000008752606060048801526064870191612bac565b9216602484015260448301528180608051920381608051305af18015610a195760805190611bd8575b6101c5906040519182918261286b565b503d80608051833e611bea81836125e0565b81019060208183031261048b5780519067ffffffffffffffff821161048b570160608183031261048b5760405190611c2182612535565b805182526020810151602083015260408101519067ffffffffffffffff821161048b570182601f8201121561048b57805190611c5c82612602565b91611c6a60405193846125e0565b80835260208084019160051b8301019185831161048b5760208101915b838310611ca157505050506101c592506040820152611bc8565b825167ffffffffffffffff811161048b578201906040828903601f19011261048b5760405190611cd082612551565b6020830151825260408301519167ffffffffffffffff831161048b57611cfe8a602080969581960101612c6a565b83820152815201920191611c87565b608051611d19916125e0565b60805161048b5784611b5a565b3461048b5760e036600319011261048b57611d3f6124a8565b611d476124c3565b60443567ffffffffffffffff811161048b57611d679036906004016126c5565b906064359267ffffffffffffffff841161048b57610120600319853603011261048b576101c594611e2f61128494611dfa61129397611da4612a6e565b50611de56040519788947facbe911e00000000000000000000000000000000000000000000000000000000602087015260c0602487015260e4860191612bac565b83810360231901604485015290600401612aef565b6001600160a01b0385166064830152608435608483015260a43560a483015260c43560c483015203601f1981018552846125e0565b6135a4565b3461048b57608036600319011261048b5760043567ffffffffffffffff811161048b57610160600319823603011261048b57611e6e6124c3565b9060443567ffffffffffffffff811161048b57611e8f9036906004016126c5565b909260643567ffffffffffffffff811161048b57611eb19036906004016126c5565b6040959195519563ef5bfc3760e01b87526080518780611ed785858a8960048601612ea1565b0381305afa968715610a195760805197612203575b5091611f1f611f2d926001600160a01b0395946080515060405197889463ef5bfc3760e01b602087015260248601612ea1565b03601f1981018552846125e0565b1691823b1561048b57611f9992611f7e916040518095819482937fd6383f94000000000000000000000000000000000000000000000000000000008452606060048501526064840190600401612ec8565b306024840152828103600319016044840152608051966126a0565b0391608051905af190816121f1575b506121ad57611fb5612f82565b600481511115612169576001600160e01b0319611fd9611fd4836137b0565b612fb2565b167f220266b6000000000000000000000000000000000000000000000000000000008114612160577f462c71b200000000000000000000000000000000000000000000000000000000148015612157575b61214f5780516120399161382d565b8051810160c08282031261048b5761205360608301612fec565b5061206060808301612fec565b5061206d60a08301612c5d565b9160c08101519167ffffffffffffffff831161048b57612094926020809201920101612c6a565b901561214f57806020806120ad93518301019101612da9565b906120b88151612fff565b916080515b8251811015610f7f57806001600160a01b036120db600193866129fa565b5151166001600160a01b0360206120f284886129fa565b51015116604061210284886129fa565b510151604061211185886129fa565b510151916040519361212285612503565b845260208401526040830152606082015261213d82876129fa565b5261214881866129fa565b50016120bd565b602081519101fd5b5060805161202a565b50602081519101fd5b606460405162461bcd60e51b815260206004820152601d60248201527f556e657870656374656420726576657274206461746120666f726d61740000006044820152fd5b606460405162461bcd60e51b815260206004820152601c60248201527f73696d756c61746548616e646c654f70206d75737420726576657274000000006044820152fd5b6080516121fd916125e0565b82611fa8565b6001600160a01b039493919750611f2d9261222c611f1f923d80608051833e610fd481836125e0565b98929495509250611eec565b3461048b576101c56112936112846107666107746001600160a01b0361225d366126f6565b9295809799966122719b959b939293612a6e565b506040519b8c977f212eccc60000000000000000000000000000000000000000000000000000000060208a015260248901612c13565b3461048b57606036600319011261048b576122c06124a8565b6122c86124c3565b60443567ffffffffffffffff811161048b573660238201121561048b5780600401356122f381612602565b9161230160405193846125e0565b8183526024602084019260051b8201019036821161048b5760248101925b828410612478575050505080519261233684612602565b9361234460405195866125e0565b808552612353601f1991612602565b016080515b8181106124675750506001600160a01b036080519316925b82518110156123fe57600190606061238882866129fa565b516040516123ac81610e56602082019463428557b160e11b86528960248401612a0e565b5a608051926080519251918a60805191f1156123df575b6123cd82886129fa565b526123d881876129fa565b5001612370565b503d60405190602081830101604052808252608051602083013e6123c3565b846040518091602082016020835281518091526040830190602060408260051b860101930191608051905b82821061243857505050500390f35b919360019193955060206124578192603f198a820301865288516126a0565b9601920192018594939192612429565b806060602080938901015201612358565b833567ffffffffffffffff811161048b5760209161249d839260243691870101612636565b81520193019261231f565b600435906001600160a01b03821682036124be57565b600080fd5b602435906001600160a01b03821682036124be57565b604435906001600160a01b03821682036124be57565b35906001600160a01b03821682036124be57565b6080810190811067ffffffffffffffff82111761251f57604052565b634e487b7160e01b600052604160045260246000fd5b6060810190811067ffffffffffffffff82111761251f57604052565b6040810190811067ffffffffffffffff82111761251f57604052565b610160810190811067ffffffffffffffff82111761251f57604052565b60a0810190811067ffffffffffffffff82111761251f57604052565b610120810190811067ffffffffffffffff82111761251f57604052565b610100810190811067ffffffffffffffff82111761251f57604052565b90601f8019910116810190811067ffffffffffffffff82111761251f57604052565b67ffffffffffffffff811161251f5760051b60200190565b67ffffffffffffffff811161251f57601f01601f191660200190565b81601f820112156124be5780359061264d8261261a565b9261265b60405194856125e0565b828452602083830101116124be57816000926020809301838601378301015290565b60005b8381106126905750506000910152565b8181015183820152602001612680565b906020916126b98151809281855285808601910161267d565b601f01601f1916010190565b9181601f840112156124be5782359167ffffffffffffffff83116124be576020808501948460051b0101116124be57565b60e06003198201126124be576004356001600160a01b03811681036124be57916024356001600160a01b03811681036124be579160443567ffffffffffffffff81116124be5781612749916004016126c5565b929092916064359067ffffffffffffffff82116124be576101209082900360031901126124be57600401906084359060a4359060c43590565b90815160028110156127e757815260806040806127cc81602087015160a06020880152805160a08801526020810151151560c08801520151606060e08701526101008601906126a0565b94015180518285015260208101516060850152015191015290565b634e487b7160e01b600052602160045260246000fd5b602060408183019282815284518094520192019060005b8181106128215750505090565b90919260206080600192606087516001600160a01b0381511683526001600160a01b0385820151168584015260408101516040840152015160608201520194019101919091612814565b602081526040608082019280516020840152602081015182840152015191606080830152825180915260a0820191602060a08360051b8301019401926000915b8383106128ba57505050505090565b90919293946020806128e9600193609f198682030187526040838b5180518452015191818582015201906126a0565b970193019301919392906128ab565b9061010060e061295493805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c0810151151560c08501520151918160e082015201906126a0565b90565b60806003198201126124be576004356001600160a01b03811681036124be57916024356001600160a01b03811681036124be579160443567ffffffffffffffff81116124be57816129aa916004016126c5565b929092916064359067ffffffffffffffff82116124be576101209082900360031901126124be5760040190565b8051156129e45760200190565b634e487b7160e01b600052603260045260246000fd5b80518210156129e45760209160051b010190565b6040906001600160a01b03612954949316815281602082015201906126a0565b60405190612a3b82612535565b606060408360008152600060208201520152565b60405190612a5c82612535565b60006040838281528260208201520152565b60405190612a7b82612535565b8160008152612a88612a2e565b60208201526040612a97612a4f565b910152565b9035601e19823603018112156124be57016020813591019167ffffffffffffffff82116124be5781360383136124be57565b908060209392818452848401376000828201840152601f01601f1916010190565b612954916001600160a01b03612b04836124ef565b16815260208201356020820152612b9d612b91612b58612b3d612b2a6040870187612a9c565b6101206040880152610120870191612ace565b612b4a6060870187612a9c565b908683036060880152612ace565b6080850135608085015260a085013560a085015260c085013560c0850152612b8360e0860186612a9c565b9085830360e0870152612ace565b92610100810190612a9c565b91610100818503910152612ace565b90602083828152019060208160051b85010193836000915b838310612bd45750505050505090565b909192939495601f19828203018652863561011e19843603018112156124be576020612c0560019386839401612aef565b980196019493019190612bc4565b9397969592612c4890612c3a6001600160a01b039360a0989560c0895260c0890191612bac565b908682036020880152612aef565b97166040840152606083015260808201520152565b519081151582036124be57565b81601f820112156124be578051612c808161261a565b92612c8e60405194856125e0565b818452602082840101116124be57612954916020808501910161267d565b6020818303126124be5780519067ffffffffffffffff82116124be57018082039160a083126124be5760405192612ce284612535565b825160028110156124be578452602083015167ffffffffffffffff81116124be5783016060818403126124be5760405190612d1c82612535565b80518252612d2c60208201612c5d565b602083015260408101519367ffffffffffffffff85116124be57606094612d539201612c6a565b60408201526020850152603f1901126124be57608060405191612d7583612535565b604081015183526060810151602084015201516040820152604082015290565b51906001600160a01b03821682036124be57565b6020818303126124be5780519067ffffffffffffffff82116124be570181601f820112156124be57805190612ddd82612602565b92612deb60405194856125e0565b828452602060608186019402830101918183116124be57602001925b828410612e15575050505090565b6060848303126124be576020606091604051612e3081612535565b612e3987612d95565b8152612e46838801612d95565b8382015260408701516040820152815201930192612e07565b9160209082815201919060005b818110612e795750505090565b9091926020806001926001600160a01b03612e93886124ef565b168152019401929101612e6c565b9290612eba906129549593604086526040860191612e5f565b926020818503910152612e5f565b612954916001600160a01b03612edd836124ef565b16815260208201356020820152612f73612f67612f16612b3d612f036040870187612a9c565b6101606040880152610160870191612ace565b6080850135608085015260a085013560a085015260c085013560c085015260e085013560e0850152610100850135610100850152612f58610120860186612a9c565b90858303610120870152612ace565b92610140810190612a9c565b91610140818503910152612ace565b3d15612fad573d90612f938261261a565b91612fa160405193846125e0565b82523d6000602084013e565b606090565b90602082519201516001600160e01b031981169260048110612fd2575050565b6001600160e01b0319929350829060040360031b1b161690565b519065ffffffffffff821682036124be57565b9061300982612602565b61301660405191826125e0565b8281528092613027601f1991612602565b019060005b82811061303857505050565b60209060405161304781612503565b6000815260008382015260006040820152600060608201528282850101520161302c565b6040519061307a6020836125e0565b600080835282815b82811061308e57505050565b60209060405161309d81612551565b6000815260608382015282828501015201613082565b90600182811c921680156130e3575b60208310146130cd57565b634e487b7160e01b600052602260045260246000fd5b91607f16916130c2565b8181106130f8575050565b600081556001016130ed565b6001602091939293845181550192015191825167ffffffffffffffff811161251f5761313082546130b3565b601f81116131d6575b506020601f82116001146131745781929394600092613169575b50508160011b916000199060031b1c1916179055565b015190503880613153565b601f1982169083600052806000209160005b8181106131be575095836001959697106131a5575b505050811b019055565b015160001960f88460031b161c1916905538808061319b565b9192602060018192868b015181550194019201613186565b61320390836000526020600020601f840160051c81019160208510613209575b601f0160051c01906130ed565b38613139565b90915081906131f6565b91908110156129e45760051b8101359061015e19813603018212156124be570190565b9190820391821161324357565b634e487b7160e01b600052601160045260246000fd5b9190820180921161324357565b600054906801000000000000000082101561251f5760018201806000558210156129e457600080526132bc9160011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301613104565b565b600054906132cb82612602565b916132d960405193846125e0565b8083526000808052907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563602085015b8284106133155750505050565b60405161332181612551565b8254815260405160018401805460009161333a826130b3565b80855291600181169081156133b3575060011461337b575b5050926002928261336960209460019703826125e0565b83820152815201920193019290613308565b6000908152602081209092505b81831061339d57505081016020018282613352565b6001816020925483868801015201920191613388565b60ff191660208087019190915292151560051b85019092019250849150839050613352565b604051906133e5826125c3565b606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b91612954939161343391604085526040850191612bac565b916020818403910152612aef565b6020818303126124be5780519067ffffffffffffffff82116124be5701610100818303126124be5760405191613476836125c3565b815183526020820151602084015260408201516040840152606082015160608401526080820151608084015260a082015160a08401526134b860c08301612c5d565b60c084015260e082015167ffffffffffffffff81116124be576134db9201612c6a565b60e082015290565b94919260c096999897946001600160a01b0361352695816135189516895216602088015260e0604088015260e0870191612bac565b908482036060860152612aef565b95608083015260a08201520152565b91908260409103126124be5760405161354d81612551565b6020808294805184520151910152565b91908110156129e45760051b0190565b356001600160a01b03811681036124be5790565b91908110156129e45760051b8101359061011e19813603018212156124be570190565b60405163428557b160e11b602082019081526000948594859485926135d29186916107669160248401612a0e565b5a935193f1613746573d60405191602082840101604052818352602083013e60048151106136dc5763428557b160e11b6001600160e01b0319613617611fd4846137b0565b16146136725780516136289161382d565b805181016040828203126124be5761364260208301612c5d565b9160408101519167ffffffffffffffff83116124be57613669926020809201920101612c6a565b901561214f5790565b608460405162461bcd60e51b815260206004820152603d60248201527f44656c6567617465416e6452657665727420646964206e6f742072657665727460448201527f20776974682044656c6567617465416e64526576657274206572726f720000006064820152fd5b608460405162461bcd60e51b815260206004820152602a60248201527f44656c6567617465416e6452657665727420726576657274206461746120697360448201527f20746f6f2073686f7274000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602c60248201527f44656c6567617465416e6452657665727420646964206e6f742072657665727460448201527f20617320657870656374656400000000000000000000000000000000000000006064820152fd5b9060009160049060609381516004811115613825575b801561381d575b508281106137da57505050565b6040519450918290039101601f8201601f19165b8181015185820152601f190190811561380757906137ee565b5050604081840160006020820152016040528252565b9050386137cd565b9250826137c6565b9190600492606093815183811115613856575b600481111561381d57508281106137da57505050565b92508261384056fea264697066735822122009caf59aef2a8f6b905bb01a48e94f24bdc56d6ddb903e3cbe51b67fc7fde99864736f6c634300081c0033","sourceMap":"1102:21517:31:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1102:21517:31;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;12506:23;;:::i;:::-;1102:21517;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;;;;12722:1035;12742:18;;;;;;1102:21517;;;;;;;;;;:::i;:::-;;;;13774:155;;1102:21517;;;:::i;:::-;13774:155;;;1102:21517;;;;;;;:::i;:::-;;;;12762:3;1102:21517;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;1102:21517:31;;;;;;12962:10;;;;;;:::i;:::-;1102:21517;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;12943:29;;;:::i;:::-;;;;;:::i;:::-;;13011:19;;13064:9;13092:48;;;;;;1102:21517;;13092:48;1102:21517;13092:48;;1102:21517;;;13092:48;1102:21517;13092:48;;1102:21517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13092:48;;1102:21517;;;13092:48;;;;;;;1102:21517;-1:-1:-1;13088:659:31;;13445:302;;1102:21517;13445:302;;:::i;:::-;1102:21517;13613:10;;;;;:::i;:::-;1102:21517;;13588:36;;;;1102:21517;13588:36;;;1102:21517;13588:36;;1102:21517;;;;;;:::i;:::-;13588:36;;;;;;;;;;1102:21517;;13588:36;;;13088:659;1102:21517;;;;13642:90;1102:21517;;;;;;;:::i;:::-;;;;13663:68;;1102:21517;13642:90;:::i;:::-;1102:21517;12727:13;;13588:36;;;;1102:21517;13588:36;;;;;;;;;;:::i;:::-;1102:21517;13588:36;-1:-1:-1;13588:36:31;;;1102:21517;;;;-1:-1:-1;1102:21517:31;;13642:90;13588:36;;1102:21517;;;13588:36;;;;;;1102:21517;;;;;;;;;;13088:659;13178:9;13401:28;1102:21517;13178:9;;13325:36;13379:50;13178:9;;13341:20;13178:9;13228:19;;13341:20;;:::i;:::-;13325:36;;:::i;:::-;13401:28;;:::i;13379:50::-;13088:659;;;13092:48;1102:21517;;13092:48;;;:::i;:::-;1102:21517;;;;13092:48;;;1102:21517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1102:21517:31;;;;;;;;;-1:-1:-1;1102:21517:31;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1102:21517:31;;;;;;;;;;;-1:-1:-1;;;1102:21517:31;;;;;;;;;;;;;;;10501:64;10425:59;10328:61;;-1:-1:-1;;;;;1102:21517:31;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;10328:61;;;-1:-1:-1;;;10328:61:31;;;;;;;;:::i;:::-;;1102:21517;;10328:61;;;;;;:::i;:::-;1102:21517;10425:59;;:::i;:::-;10328:61;1102:21517;;;10501:64;;;;;;:::i;:::-;1102:21517;;;;;10328:61;1102:21517;;10328:61;1102:21517;;;;:::i;:::-;;;;;;-1:-1:-1;;1102:21517:31;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;1102:21517:31;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;1102:21517:31;;;;16952:20;;;;;;1102:21517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;;;;16974:3;17008:12;;;;;;:::i;:::-;;:::i;:::-;1102:21517;;;-1:-1:-1;;;;;1102:21517:31;;17035:427;17055:17;;;;;;16974:3;;;1102:21517;;16937:13;;17074:3;17133:9;;;17154:42;-1:-1:-1;;;;;17133:9:31;;;;;;:::i;:::-;1102:21517;17133:64;17154:42;;17230:12;;;;;17129:220;;17420:9;;;;;;:::i;:::-;1102:21517;-1:-1:-1;;;;;1102:21517:31;;;;;;:::i;:::-;;;;;;17387:60;;1102:21517;;17387:60;;1102:21517;17376:7;-1:-1:-1;;1102:21517:31;;;;;;;17367:80;1102:21517;;;17367:80;1102:21517;;17367:80;;:::i;:::-;;;;:::i;:::-;;1102:21517;17040:13;;17129:220;17304:9;;-1:-1:-1;;;;;17304:9:31;1102:21517;17304:9;1102:21517;17304:9;;:::i;:::-;1102:21517;;;17298:32;;;;1102:21517;17298:32;;;1102:21517;17298:32;;1102:21517;17298:32;;;;;;;1102:21517;;17298:32;;;17129:220;17289:41;17129:220;;;17298:32;;;1102:21517;17298:32;;;;;;;;;1102:21517;17298:32;;;:::i;:::-;;;1102:21517;;;;;17298:32;;;;;;-1:-1:-1;17298:32:31;;;1102:21517;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;9738:59;9641:61;;-1:-1:-1;;;;;1102:21517:31;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1102:21517:31;;-1:-1:-1;1102:21517:31;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1102:21517:31;;-1:-1:-1;1102:21517:31;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1102:21517:31;;-1:-1:-1;1102:21517:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;-1:-1:-1;1102:21517:31;;-1:-1:-1;1102:21517:31;;;;;;;;;;;;9641:61;;;9561:50;1102:21517;9641:61;;;;;;;:::i;9738:59::-;1102:21517;;9814:65;;1102:21517;9814:65;;1102:21517;;;;;;;;;9814:65;;1102:21517;;;;;;;;;;;-1:-1:-1;;1102:21517:31;;;;;-1:-1:-1;1102:21517:31;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;18373:35;-1:-1:-1;;;18373:35:31;;1102:21517;;18373:35;;;;;;;1102:21517;18373:35;;;:::i;:::-;;:4;;:35;;;;;;;1102:21517;;18373:35;;;1102:21517;;;;;19092:60;1102:21517;;18695:68;-1:-1:-1;;;;;1102:21517:31;18695:68;18878:89;1102:21517;;18544:229;1102:21517;;;18695:68;;;-1:-1:-1;;;1102:21517:31;18695:68;;;1102:21517;18695:68;;;:::i;:::-;;1102:21517;;18695:68;;;;;;:::i;:::-;1102:21517;;18544:229;;;18580:54;1102:21517;18544:229;;;1102:21517;;18544:229;;1102:21517;;;;;;;;:::i;:::-;18373:4;1102:21517;;;;;;;-1:-1:-1;;1102:21517:31;;;;;18373:4;1102:21517;:::i;19092:60::-;19210:29;;;1102:21517;;19205:110;;1102:21517;19416:58;19427:28;;;1102:21517;;;;19416:58;;;;;;:::i;:::-;1102:21517;19554:40;1102:21517;;19554:40;:::i;:::-;1102:21517;;;19652:3;1102:21517;;19625:25;;;;;19725:17;-1:-1:-1;;;;;19725:17:31;1102:21517;19725:17;;;:::i;:::-;;1102:21517;;-1:-1:-1;;;;;1102:21517:31;19772:17;;;;:::i;:::-;;:23;1102:21517;;;19828:17;;;;:::i;:::-;;:24;1102:21517;;19884:16;;;;:::i;:::-;;:23;1102:21517;;;;;;;;:::i;:::-;;;;19689:233;;1102:21517;;19689:233;;1102:21517;;19689:233;;1102:21517;19671:251;;;;:::i;:::-;;;;;;:::i;:::-;;1102:21517;19610:13;;19625:25;1102:21517;;;;19625:25;1102:21517;;:::i;19205:110::-;1102:21517;19275:28;;1102:21517;1712:95:17;;;;;18373:35:31;18544:229;18373:35;;;;1102:21517;19092:60;18373:35;;18695:68;-1:-1:-1;;;;;18373:35:31;18695:68;18878:89;18373:35;;;1102:21517;18373:35;;1102:21517;;;18373:35;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1102:21517;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;5689:64;5594:59;1102:21517;5497:61;1102:21517;5497:61;1102:21517;;5497:61;;;-1:-1:-1;;;1102:21517:31;5497:61;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1102:21517:31;;5594:59;;:::i;5689:64::-;5663:90;;1102:21517;;;;5849:162;1102:21517;;;;;;5849:162;;;;;1102:21517;5849:162;;1102:21517;;5849:162;1102:21517;5849:162;;;:::i;:::-;;1102:21517;;;5849:4;:162;;;;;;;1102:21517;;5849:162;;;1102:21517;5819:192;;;1102:21517;6116:29;;1102:21517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6156:2;-1:-1:-1;6116:42:31;6112:387;;1102:21517;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1102:21517:31;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1102:21517:31;;;;;;:::i;6112:387::-;1102:21517;6213:275;1102:21517;;;;;;;;6213:275;;;;;1102:21517;6213:275;;1102:21517;;6213:275;1102:21517;6213:275;;;:::i;:::-;;1102:21517;;;5849:4;6213:275;;;;;;;1102:21517;;;;;;;;6213:275;;;6112:387;6174:314;;;6112:387;;;;;;;;;6213:275;;;;;1102:21517;;;6213:275;;;;;;:::i;:::-;;;;;:::i;:::-;;;;5849:162;;;;;1102:21517;;;5849:162;;;;;;:::i;:::-;;;;1102:21517;;;;;8253:67;8177:59;8001:140;;-1:-1:-1;;;;;1102:21517:31;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;8001:140;;;7903:68;8001:140;;;;;;;;:::i;8177:59::-;8001:140;1102:21517;;;8253:67;;;;;;:::i;:::-;1102:21517;;;;;8001:140;1102:21517;;8001:140;1102:21517;;;;:::i;:::-;;;;;;-1:-1:-1;;1102:21517:31;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;14318:23;;:::i;:::-;1102:21517;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;;;;14534:1023;14554:18;;;;;;1102:21517;;;;;;;;;;:::i;14574:3::-;1102:21517;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;1102:21517:31;;;;;;14762:10;;;;;;:::i;:::-;1102:21517;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;14743:29;;;:::i;:::-;;;;;:::i;:::-;;14811:19;;14864:9;14892:48;;;;;;1102:21517;;14892:48;1102:21517;14892:48;;1102:21517;;;14892:48;1102:21517;14892:48;;1102:21517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14892:48;;1102:21517;;;14892:48;;;;;;;1102:21517;-1:-1:-1;14888:659:31;;15245:302;;1102:21517;15245:302;;:::i;:::-;1102:21517;15413:10;;;;;:::i;:::-;1102:21517;;15388:36;;;;1102:21517;15388:36;;;1102:21517;15388:36;;1102:21517;;;;;;:::i;:::-;15388:36;;;;;;;;;;1102:21517;;15388:36;;;14888:659;1102:21517;;;;15442:90;1102:21517;;;;;;;:::i;15442:90::-;1102:21517;14539:13;;15388:36;;;;1102:21517;15388:36;;;;;;;;;;:::i;:::-;1102:21517;15388:36;-1:-1:-1;15388:36:31;;;1102:21517;;;;-1:-1:-1;1102:21517:31;;15442:90;15388:36;;;;;;;14888:659;14978:9;15201:28;1102:21517;14978:9;;15125:36;15179:50;14978:9;;15141:20;14978:9;15028:19;;15141:20;;:::i;15179:50::-;14888:659;;;14892:48;1102:21517;;14892:48;;;:::i;:::-;1102:21517;;;;14892:48;;;1102:21517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1102:21517:31;;;;;;;;;-1:-1:-1;1102:21517:31;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;;;;;:::i;:::-;;;;;;17852:134;;;;;1102:21517;17852:134;;1102:21517;;17852:134;;1102:21517;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;1102:21517:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;17852:134;1102:21517;;;17852:4;:134;;;;;;1102:21517;;17852:134;;;1102:21517;;;;;;;;;;:::i;17852:134::-;;;1102:21517;;;17852:134;;;;;;:::i;:::-;;;1102:21517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17852:134;;;1102:21517;17852:134;;;;1102:21517;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1102:21517:31;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;-1:-1:-1;;;;;1102:21517:31;;:::i;:::-;;;:::i;:::-;;;11875:82;;;;;;1102:21517;;;11875:82;;1102:21517;;;;;;11875:82;;;;;1102:21517;;;-1:-1:-1;;;;;1102:21517:31;;;12037:74;1102:21517;12037:74;;1102:21517;;12037:74;;1102:21517;;;;;;:::i;:::-;;;;;;;;;;;;;;;12037:74;;1102:21517;;;12037:4;:74;;;;;;1102:21517;;12037:74;;;1102:21517;;;;;;;;;;:::i;12037:74::-;;;1102:21517;;;12037:74;;;;;;:::i;:::-;;;1102:21517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12037:74;;1102:21517;;;;;;;;;;;;;;;-1:-1:-1;;1102:21517:31;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;11875:82;1102:21517;;11875:82;;;:::i;:::-;1102:21517;;;;11875:82;;;1102:21517;;;;;;-1:-1:-1;;1102:21517:31;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;8866:140;9042:59;1102:21517;;9118:67;1102:21517;;;:::i;:::-;;;;;8866:140;;;8785:51;1102:21517;8866:140;;;1102:21517;;8866:140;;1102:21517;;;;;;:::i;:::-;;;;-1:-1:-1;;1102:21517:31;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;;8866:140;1102:21517;;8866:140;;;;;;:::i;:::-;9042:59;:::i;1102:21517::-;;;;;;-1:-1:-1;;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;20304:35;-1:-1:-1;;;20304:35:31;;1102:21517;;20304:35;;;;;;;1102:21517;20304:35;;;:::i;:::-;;:4;;:35;;;;;;;1102:21517;;20304:35;;;1102:21517;;;20465:68;;1102:21517;-1:-1:-1;;;;;1102:21517:31;;;;;;;20465:68;;;-1:-1:-1;;;1102:21517:31;20465:68;;;1102:21517;20465:68;;;:::i;:::-;;1102:21517;;20465:68;;;;;;:::i;:::-;1102:21517;20548:59;;;;;;1102:21517;;;;;;20548:59;;;;;;1102:21517;20548:59;;1102:21517;;20548:59;;1102:21517;;;;;;;;:::i;:::-;20304:4;1102:21517;;;;;;;-1:-1:-1;;1102:21517:31;;;;;;;;;:::i;:::-;20548:59;1102:21517;;;20548:59;;;;;;;1102:21517;-1:-1:-1;20544:1579:31;;20672:1451;;:::i;:::-;1102:21517;;;20722:22;;20718:100;;-1:-1:-1;;;;;;20850:30:31;20857:22;;;:::i;:::-;20850:30;:::i;:::-;1102:21517;20958:31;20946:43;;20942:113;;21149:45;21137:57;:104;;;;20544:1579;21116:204;;1102:21517;;21369:38;;;:::i;:::-;1102:21517;;21477:351;;1102:21517;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;21477:351;1102:21517;21477:351;;;1102:21517;;;;:::i;:::-;21901:14;;21897:86;;1102:21517;;;22070:42;1102:21517;;22070:42;;;;;;:::i;:::-;20544:1579;22202:40;1102:21517;;22202:40;:::i;:::-;1102:21517;;;22300:3;1102:21517;;22273:25;;;;;22373:17;-1:-1:-1;;;;;22373:17:31;1102:21517;22373:17;;;:::i;:::-;;1102:21517;;-1:-1:-1;;;;;1102:21517:31;22420:17;;;;:::i;:::-;;:23;1102:21517;;;22476:17;;;;:::i;:::-;;:24;1102:21517;;22532:16;;;;:::i;:::-;;:23;1102:21517;;;;;;;;:::i;:::-;;;;22337:233;;1102:21517;;22337:233;;1102:21517;;22337:233;;1102:21517;22319:251;;;;:::i;:::-;;;;;;:::i;:::-;;1102:21517;22258:13;;21897:86;1102:21517;1712:95:17;;;;;21137:104:31;1102:21517;;;21137:104;;20942:113;1712:95:17;1102:21517:31;1712:95:17;;;;;20718:100:31;1102:21517;;;-1:-1:-1;;;20764:39:31;;1102:21517;;20764:39;;1102:21517;;;;;;;;;;;20764:39;20544:1579;1102:21517;;;-1:-1:-1;;;20622:38:31;;1102:21517;;20622:38;;1102:21517;;;;;;;;;;;20622:38;20548:59;1102:21517;;20548:59;;;:::i;:::-;;;;20304:35;-1:-1:-1;;;;;20304:35:31;;;;;20465:68;20304:35;;20465:68;20304:35;;1102:21517;;;20304:35;;;;;;:::i;:::-;;;;;;;;;;1102:21517;;;;;7328:67;7252:59;7076:140;;-1:-1:-1;;;;;1102:21517:31;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;7076:140;;;6987:59;7076:140;;;;;;;;:::i;1102:21517::-;;;;;;-1:-1:-1;;1102:21517:31;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;2169:468;2206:3;1102:21517;;2189:15;;;;;1102:21517;;;2389:7;1102:21517;2389:7;;:::i;:::-;;1102:21517;;2302:95;;;1102:21517;2302:95;;;-1:-1:-1;;;2302:95:31;;;1102:21517;2302:95;;;:::i;:::-;2461:9;1102:21517;;;;;378:118:17;;1102:21517:31;;;;378:118:17;;2489:8:31;2485:97;;2206:3;2595:31;;;;:::i;:::-;;;;;;:::i;:::-;;1102:21517;2174:13;;2485:97;1204:349:17;;1102:21517:31;1204:349:17;;1102:21517:31;1204:349:17;;;;1102:21517:31;1204:349:17;;;;1102:21517:31;;;1204:349:17;;;2485:97:31;;2189:15;;1102:21517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1102:21517:31;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;1102:21517:31;;;;;-1:-1:-1;1102:21517:31;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;1102:21517:31;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1102:21517:31;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;1102:21517:31;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;1102:21517:31;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;1102:21517:31;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;1102:21517:31;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;1102:21517:31;;;;;-1:-1:-1;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;-1:-1:-1;;1102:21517:31;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;1102:21517:31;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;-1:-1:-1;;;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1102:21517:31;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;1102:21517:31;;-1:-1:-1;1102:21517:31;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1102:21517:31;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;-1:-1:-1;1102:21517:31;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;1102:21517:31;;;;;;;;-1:-1:-1;;1102:21517:31;;;;:::o;:::-;;;-1:-1:-1;;;;;1102:21517:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;1102:21517:31;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;1102:21517:31;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1102:21517:31;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1102:21517:31;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1102:21517:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;1102:21517:31;;;;:::o;:::-;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;;1102:21517:31;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;;1102:21517:31;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;1102:21517:31;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1102:21517:31;;-1:-1:-1;1102:21517:31;;;;-1:-1:-1;1102:21517:31;;;;-1:-1:-1;1102:21517:31;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1102:21517:31;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1102:21517:31;;;;;;;;;;;-1:-1:-1;1102:21517:31;;-1:-1:-1;1102:21517:31;;-1:-1:-1;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1102:21517:31;;-1:-1:-1;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;-1:-1:-1;;;1102:21517:31;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1102:21517:31;;;;;;-1:-1:-1;;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1102:21517:31;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1102:21517:31;;-1:-1:-1;1102:21517:31;;-1:-1:-1;1102:21517:31;;;;;;;;;:::i;:::-;;;;-1:-1:-1;1102:21517:31;;-1:-1:-1;1102:21517:31;;;;-1:-1:-1;1102:21517:31;;;;-1:-1:-1;1102:21517:31;;;;-1:-1:-1;1102:21517:31;;;;-1:-1:-1;1102:21517:31;;;;-1:-1:-1;1102:21517:31;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;1102:21517:31;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;1102:21517:31;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2780:1459::-;1102:21517;;-1:-1:-1;;;3064:60:31;;;;;;-1:-1:-1;;;;;;;;3064:60:31;;1102:21517;;3064:60;;;;;;:::i;:::-;3184:9;378:118:17;;;;-1:-1:-1;;1204:349:17;1102:21517:31;1204:349:17;;3064:60:31;1204:349:17;;;;1102:21517:31;1204:349:17;;;;3064:60:31;1204:349:17;;;3064:60:31;1102:21517;;3456:21;3452:104;;-1:-1:-1;;;;;;;;;3644:30:31;3651:22;;;:::i;3644:30::-;1102:21517;3688:60;3684:162;;1102:21517;;3930:38;;;:::i;:::-;1102:21517;;4048:37;;1102:21517;;;;;;;;3064:60;4048:37;;1102:21517;:::i;:::-;;;;;;;;;;;;;4048:37;3064:60;4048:37;;;1102:21517;;;;:::i;:::-;4100:25;;4096:98;;2780:1459;:::o;3684:162::-;3764:71;1102:21517;;-1:-1:-1;;;3764:71:31;;3064:60;;3764:71;;1102:21517;;3064:60;1102:21517;;;;;;;;;;;;;3764:71;3452:104;3493:52;1102:21517;;-1:-1:-1;;;3493:52:31;;3064:60;;3493:52;;1102:21517;;3064:60;1102:21517;;;;;;;;;;;;;3493:52;3205:174;3314:54;1102:21517;;-1:-1:-1;;;3314:54:31;;3064:60;;3314:54;;1102:21517;;3064:60;1102:21517;;;;;;;;;;;;;3314:54;15689:1115:29;;1102:21517:31;15689:1115:29;1102:21517:31;15801:19:29;1102:21517:31;15879:919:29;;;1102:21517:31;15879:919:29;;;;;15689:1115;15879:919;;;;15689:1115;15879:919;;;;;;15689:1115;;;:::o;15879:919::-;;;;-1:-1:-1;15879:919:29;;;;;;1102:21517:31;15879:919:29;;-1:-1:-1;;15879:919:29;;;;;;;;;;-1:-1:-1;;15879:919:29;;;;;;;;;;;;;;;;1102:21517:31;15879:919:29;;;;;;;;;15689:1115::o;15879:919::-;;;;;;;;-1:-1:-1;15879:919:29;;;15689:1115;;;1102:21517:31;15801:19:29;1102:21517:31;15879:919:29;;;;;;;;;15689:1115;1102:21517:31;15879:919:29;;;;;;;;;;;15689:1115;;;:::o;15879:919::-;;-1:-1:-1;15879:919:29;;","linkReferences":{}},"methodIdentifiers":{"binarySearchCallGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)":"71349903","binarySearchPaymasterVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)":"9f2d3789","binarySearchVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)":"2e5a0a93","filterOps06((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address,address)":"959c4cb7","filterOps07((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address,address)":"fccb5ff6","filterOps08((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address,address)":"861d9d59","getBalances(address[],address[])":"ef5bfc37","simulateAndEstimateGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)":"a4968eab","simulateAssetChange06((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address,address[],address[])":"685f6026","simulateAssetChange07((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,address,address[],address[])":"b21b38c8","simulateAssetChange08((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,address,address[],address[])":"90d81dfb","simulateEntryPointBulk(address,address,bytes[])":"141eb033","simulateHandleOp(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":"f1143043","simulateValidation(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":"de040de1"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"PimlicoSimulationDeployed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"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\":\"queuedUserOps\",\"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\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchCallGas\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"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\":\"queuedUserOps\",\"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\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchPaymasterVerificationGas\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"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\":\"queuedUserOps\",\"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\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchVerificationGas\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"\",\"type\":\"tuple\"}],\"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\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct UserOperation[]\",\"name\":\"userOps\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"}],\"name\":\"filterOps06\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceChange\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"internalType\":\"struct PimlicoSimulations.RejectedUserOp[]\",\"name\":\"rejectedUserOps\",\"type\":\"tuple[]\"}],\"internalType\":\"struct PimlicoSimulations.FilterOpsResult\",\"name\":\"\",\"type\":\"tuple\"}],\"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\":\"userOps\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"}],\"name\":\"filterOps07\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceChange\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"internalType\":\"struct PimlicoSimulations.RejectedUserOp[]\",\"name\":\"rejectedUserOps\",\"type\":\"tuple[]\"}],\"internalType\":\"struct PimlicoSimulations.FilterOpsResult\",\"name\":\"\",\"type\":\"tuple\"}],\"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\":\"userOps\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"}],\"name\":\"filterOps08\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceChange\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"internalType\":\"struct PimlicoSimulations.RejectedUserOp[]\",\"name\":\"rejectedUserOps\",\"type\":\"tuple[]\"}],\"internalType\":\"struct PimlicoSimulations.FilterOpsResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"getBalances\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct PimlicoSimulations.AssetBalance[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"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\":\"queuedUserOps\",\"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\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"simulateAndEstimateGas\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"targetSuccess\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"targetResult\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.ExecutionResult\",\"name\":\"simulationResult\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"verificationGasLimit\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"tuple\"}],\"internalType\":\"struct PimlicoSimulations.SimulateAndEstimateGasResult\",\"name\":\"result\",\"type\":\"tuple\"}],\"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\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct UserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"simulateAssetChange06\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balanceBefore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceAfter\",\"type\":\"uint256\"}],\"internalType\":\"struct PimlicoSimulations.AssetChange[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"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\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"entryPointSimulations\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"simulateAssetChange07\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balanceBefore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceAfter\",\"type\":\"uint256\"}],\"internalType\":\"struct PimlicoSimulations.AssetChange[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"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\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"entryPointSimulations\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"simulateAssetChange08\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balanceBefore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceAfter\",\"type\":\"uint256\"}],\"internalType\":\"struct PimlicoSimulations.AssetChange[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"}],\"name\":\"simulateEntryPointBulk\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"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\":\"queuedUserOps\",\"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\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"}],\"name\":\"simulateHandleOp\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"targetSuccess\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"targetResult\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.ExecutionResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"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\":\"queuedUserOps\",\"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\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"}],\"name\":\"simulateValidation\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterContext\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPoint.ReturnInfo\",\"name\":\"returnInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"senderInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"factoryInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"paymasterInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"stakeInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPoint.AggregatorStakeInfo\",\"name\":\"aggregatorInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.ValidationResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Pimlico (https://github.com/pimlicolabs/alto)\",\"kind\":\"dev\",\"methods\":{},\"title\":\"PimlicoSimulations\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"binarySearchCallGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)\":{\"notice\":\"Binary search for optimal call gas limit\"},\"binarySearchPaymasterVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)\":{\"notice\":\"Binary search for optimal paymaster verification gas limit\"},\"binarySearchVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)\":{\"notice\":\"Binary search for optimal verification gas limit\"},\"simulateAndEstimateGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)\":{\"notice\":\"Simulates userOp and estimates verification & paymaster gas limits\"},\"simulateHandleOp(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"notice\":\"Simulates handling of a UserOperation\"},\"simulateValidation(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"notice\":\"Simulates validation of a UserOperation\"}},\"notice\":\"An ERC-4337 EntryPoint simulation contract\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/PimlicoSimulations.sol\":\"PimlicoSimulations\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@account-abstraction-v6/=lib/account-abstraction-v6/contracts/\",\":@account-abstraction-v7/=lib/account-abstraction-v7/contracts/\",\":@account-abstraction-v8/=lib/account-abstraction-v8/contracts/\",\":@openzeppelin-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/\",\":@openzeppelin-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/\",\":@openzeppelin-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts-v5.0.2/contracts/\",\":@test-aa-utils/=lib/singleton-paymaster/test/utils/account-abstraction/\",\":@test-utils/=lib/singleton-paymaster/test/utils/\",\":account-abstraction-v6/=lib/account-abstraction-v6/contracts/\",\":account-abstraction-v7/=lib/account-abstraction-v7/contracts/\",\":account-abstraction-v8/=lib/account-abstraction-v8/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-v5.0.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-v5.1.0/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/\",\":openzeppelin-contracts-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/\",\":openzeppelin-contracts-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/\",\":singleton-paymaster/=lib/singleton-paymaster/src/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"lib/account-abstraction-v6/contracts/core/Helpers.sol\":{\"keccak256\":\"0x591c87519f7155d1909210276b77925ab2722a99b7b5d5649aecc36ebbdb045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://69643e83f68e6a13d5075c7565bfce326673b0bd98c432033c4603ea84835746\",\"dweb:/ipfs/QmSwSzjYyV7qudi5vvsmzHMG2Z4YJZxX51RRXXVCLaNcEU\"]},\"lib/account-abstraction-v6/contracts/core/NonceManager.sol\":{\"keccak256\":\"0xa17a4a6fde70088ab18ffe6df830f3efa31f1cd0e1a7160336c96e3c94984d25\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://b38615df9f80c56282b72888e9ba1eb1a9413fa67a0dbf094deda7af9feb38e7\",\"dweb:/ipfs/QmSzcXetEJRH4UHuUmZiSgX6bFgfqHWfmyuxVnh4NosMk1\"]},\"lib/account-abstraction-v6/contracts/core/SenderCreator.sol\":{\"keccak256\":\"0x44b9449fec82d6cdfb01d52fdd5a72f90099c651316123810cf9633f00b018c2\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a9c0487390e72638681d175c45bc92425c802fffdca4bd0ae8457782ee284612\",\"dweb:/ipfs/QmVbzuehCUWJWqEHyMWuc6cRVbxfcMdFsmGL9o4Wz7WY2x\"]},\"lib/account-abstraction-v6/contracts/core/StakeManager.sol\":{\"keccak256\":\"0x21aa0956382bd000b1b8c3b1d19ca6ebcd6c9029eebb19c612fb38ee5dd2430a\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://0a625c8795354d9f429367f9c1d14eb8af7db9c7f2c2a2033e2066ced76a573a\",\"dweb:/ipfs/Qmd1j6UarUg54q1G2HCNCLQz8XGVZR1qxX7eQ6cytHpQPN\"]},\"lib/account-abstraction-v6/contracts/interfaces/IAccount.sol\":{\"keccak256\":\"0x556a0e5980de18e90b115553ed502408155ba35f58642823010d9288047bc418\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a0f420134b79596db8737173c7b933ae0a33059e107b6327c43aa40d4744a9e4\",\"dweb:/ipfs/QmRo8s1AhXmEMV7uPYnbpYwU19e9Bk6jmYBJTiPx3Fo85W\"]},\"lib/account-abstraction-v6/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0x060e9ddb0152250c269ba0640dc5753834ac44cf182a2837d508c0c529cae26a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://20ed837bc5909c89ff1910246bf245a5dad6840aa939382e1694964eb7dbd37b\",\"dweb:/ipfs/QmTMybRq5yyghPDDs1ZCNAVB9sSJ4WHe6Q9mejuKPTAdNP\"]},\"lib/account-abstraction-v6/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x3a90bf308819ed125fa4202f880999caff8a8686633b8ddb79a30ca240d5b8f8\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d2d21cc92c2fdab2b58d21bc25d4cd0e8c284b922528a186b087b818d54bc6cf\",\"dweb:/ipfs/QmT1qrfuBjsv2rmRCDn8mgPXHp94hARJwzbcDuBLDTbFWd\"]},\"lib/account-abstraction-v6/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0x509871e6c63663cdcc3eba19920fe84e991f38b289b1377ac3c3a6d9f22d7e12\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://00fe21b4349b24c50df60e1a705179293982bd9e7a32b78d4bac9620f89e7fe2\",\"dweb:/ipfs/QmSFFYGfUwQbVa6hASjU7YxTvgi2HkfrPr4X5oPHscHg8b\"]},\"lib/account-abstraction-v6/contracts/interfaces/IPaymaster.sol\":{\"keccak256\":\"0x36858ba8685024974f533530420688da3454d29996ebc42e410673a1ed2ec456\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://616cbcf51778b1961b7f20a547bec7efae6d1d565df0f651926241ed8bde9ad8\",\"dweb:/ipfs/QmaVsgffUUmeUJYgStvRr8cNZ1LBbrc3FYNLW4JT1dVLia\"]},\"lib/account-abstraction-v6/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xd227b02888cd4ac68daebcdfd992ec00f9fff66fa3b3bb16f656cd582fa3480f\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://b389da4714a138be63704a576a482505eab2855e263b38a93706395d8d42e7c3\",\"dweb:/ipfs/QmeeAZpdHwUXxqP8pxA7GNtoCGBmmH4FaqLLwScVKGxtxZ\"]},\"lib/account-abstraction-v6/contracts/interfaces/UserOperation.sol\":{\"keccak256\":\"0x61374003361059087fdcf17967a7bba052badeaf5c7f0ae689166f8aafd3a45c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6ff83c59432e733bf6304dda27cd4b0f34401917dd535e2669cc842d2d26568c\",\"dweb:/ipfs/QmPJbHU5TAjHqUTZzAcicEeG2nknmwCN43L4EW9LHbknTN\"]},\"lib/account-abstraction-v6/contracts/utils/Exec.sol\":{\"keccak256\":\"0x5b232117afbc2939f3ffc92745614867e9e1d475a3e1e5443adae13c200174f1\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://62e7365379a06ead7b47637945bcaee095d51aab1d3ac00ddec69443e6cbe9fe\",\"dweb:/ipfs/QmctG3aw4U3KMSMeJKoLJ1NJewjMWfppnd1m3kxNTe39Uy\"]},\"lib/account-abstraction-v7/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0xf100d6fcc0c3b450b13e979b6a42c628c292a1bc340eccc2e7796b80e3975588\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://192938b5b27234d35c8098a319e879363c79f750eea4d0e409dc889a8ce5b155\",\"dweb:/ipfs/QmURpaJFPqEtkKP2ngBsgZhAGN8wAWh5XQpYmCkiz4Urz5\"]},\"lib/account-abstraction-v7/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x1972a5fcb3a808b58c85af5741949ef6af11ab0debd3ae8c708171ae1ae0d0c4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://baa9837ae73b9e2362a47d42d081d7c0f3d8e878e5edb381117d94a6968949c9\",\"dweb:/ipfs/QmUmo6FUE7fv5z1WzW1YFjxp8PqaeN2JrEee9au59w3Xhe\"]},\"lib/account-abstraction-v7/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0xd575af0f6ebbd5f0b2933307d44cd7b4e03a69f4b817a67db5409bd3c89aeecb\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://3b1e2dea9b05cfba9d13339ed16d96457dc861013cc4f3f35b71a80f82448db3\",\"dweb:/ipfs/QmVaGy5uGDMSiU2SzyokTjoHFyb39VVG5wtaM9KTnHyZSk\"]},\"lib/account-abstraction-v7/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xbe5ca9e7f254d031687419e7b96ef48c9c63e9398bbe992dc72ffc6dc14e0a04\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://1fffec71c38627a26fabb423350148009579f092623fb02b471a12d973763a00\",\"dweb:/ipfs/QmRBi31QEYXHj3x1AnQ2jKa2eziZH1b9av396P3b4dw6bj\"]},\"lib/account-abstraction-v7/contracts/interfaces/PackedUserOperation.sol\":{\"keccak256\":\"0x1129b46381db68eddbc5cb49e50664667b66b03c480453858e7b25eabe444359\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://499a948aba60480dba6e25c763b8d918f1c246eb7a3302e04f493e080f3295be\",\"dweb:/ipfs/QmeRhhswf4NACcBKam2PyjpTP2ddSm648kah5kkQJsvwz3\"]},\"lib/account-abstraction-v7/contracts/utils/Exec.sol\":{\"keccak256\":\"0x86b1b1cd11158dddb9d381040c57fdc643c74b5e4eed3e7e036f32452672ad74\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://ad88663b6c76df73cf09a272cf333d038df7bb4c51281284b572bf9b46e1cd77\",\"dweb:/ipfs/QmVKxYF8avyPBtqejVhFCM2CuHsfpsCh7TsPqkBLtrgwJQ\"]},\"lib/account-abstraction-v8/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0xdf580eafa015b81bde436d6a5468cc92b531ada84007cef885e923f6dfc5e8bf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99f0060626568619ac94d750eb4c0888d92ca5775a6bd957fef9847843835b77\",\"dweb:/ipfs/QmXJer3D9sTkEj3mmUDqpdqfGpe46Rn9G22nGrfZdP2wAT\"]},\"lib/account-abstraction-v8/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x3b0423737e810dd886183ed32cfed9b45edd315f5fb3e1076fc19f86791adc64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c43081efaa2eda581b6249053281bb58cb0c4eeb6bf87efc55d95daaec2fc931\",\"dweb:/ipfs/QmXRN2JnyzWZNeFMHauTnDuc7jhxGY4ZkY37HTtjXKdC87\"]},\"lib/account-abstraction-v8/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0xee493ae200b8c675bdc0da66f7ac6bb883ecea33672d7d0a95526b9eecdedf87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://979784a0333ac4ef3cc53ab9323a4b7fa574d929bd511f0eed03d3b0370db22d\",\"dweb:/ipfs/QmeiciN5gs4upM6vfKvrRxWiDBUzMU4uJQRRkJajhim9gX\"]},\"lib/account-abstraction-v8/contracts/interfaces/ISenderCreator.sol\":{\"keccak256\":\"0x677f651d733162b80d1af7901e4f36469e362737a8353d1d0cc7bb94489e4ba4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6905a80acd70b444ea230b5b582164cb99aaae518bf72c88f8292df31615570\",\"dweb:/ipfs/QmfTKTPwJYf9pmA3T5PE5cCG8GLLDrLaq3jQqMP3pVRL6w\"]},\"lib/account-abstraction-v8/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xe48e904fcac02295aad07fbfa1c1d449a74bf44c04e432afef6f34d1ef726ae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5882b635ea6f5da9ae411485975888431de571f85d4baf35e3db1a83c1f14b85\",\"dweb:/ipfs/QmVSTX36Byr48y8JBmz1hCTGAAyQdTYegQbsSqdRNuSQYz\"]},\"lib/account-abstraction-v8/contracts/interfaces/PackedUserOperation.sol\":{\"keccak256\":\"0xb15188e25e45fe73097e279675b6c0beccbd4133ead2260f8f0c4ba840046800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d14c1edd1e95d37c26e54bb34305e2cc9dedc46eb75ec91caeb777678e8ea79\",\"dweb:/ipfs/QmcCL2syVtV7W3XvYx3si84MPkbEJKqEN8hjFNhAPoDDhK\"]},\"lib/openzeppelin-contracts-v4.8.3/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x190dd6f8d592b7e4e930feb7f4313aeb8e1c4ad3154c27ce1cf6a512fc30d8cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ce8dfb62d0c4fa260d6eec8f1cd47f5f2a044e11bde5b31d18072fa6e7d9010\",\"dweb:/ipfs/QmTyFztU3tLEcEDnqqiaW4UJetqsU77LXc6pjc9oTXCK5u\"]},\"lib/openzeppelin-contracts-v4.8.3/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-v4.8.3/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts-v4.8.3/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/solady/src/tokens/ERC20.sol\":{\"keccak256\":\"0x1c3cdf5158b29b16ba2d2c7ff1f6d4304754605441257e198b46803f0fa9df1a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6ed3d15fd372495ff76439878fb5e007ae0b39da3ce3d9fd877ee8147647bb2\",\"dweb:/ipfs/QmZ1zC91VhPHMXAdcY8SahJMwDsC2B5q9uXFF16R5eHmkV\"]},\"lib/solady/src/utils/LibBytes.sol\":{\"keccak256\":\"0x905f1c122299888350964a3bdd3dccd4b969273389b8d869f9aacb6871ff199e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6cff3ef7090aa48f214b960f373a33c15878f80e617443a3a4d53f130bab862\",\"dweb:/ipfs/QmdMEpK6ZVxUesqSpurqS9UkDnm1kAnjUeJKLN6ZWPNJnT\"]},\"src/IEntryPointSimulations.sol\":{\"keccak256\":\"0xbc2129076267d33c8a7a7bb9ed92cc7b4a7d0d20c224a5f428412cca113bed41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f35d68119a9c4108b415c8523667bae15466b544f2e0a17111e7c8481bdb07b5\",\"dweb:/ipfs/Qme8yMWE1KLcGmJ5UhHS4KBc27TRTaeoXwBxaXQbErAC5t\"]},\"src/PimlicoSimulations.sol\":{\"keccak256\":\"0x3d913acd6e8ab62d56ae45469cfcde670861714a2e6e324ddb6e0b7d91852097\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5c3ec1240874eec9a3eca32c51ddc14a54597217be1df2ad827240be4f18901d\",\"dweb:/ipfs/Qmb1zSVZ4vT2grDYWFAHMYtK7XW4SBX1aWJEHFu1Y5PiW5\"]},\"src/SimulationOverrideHelper.sol\":{\"keccak256\":\"0x98850f986164c992b840ba8e878814c459be0852debe8ad8d69140c09c6b05c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a57d5979f5557ccbc6947c3f6b5b6ec10f152609b9d11c265b20d925d915b559\",\"dweb:/ipfs/QmcA4kpMCnjCfEyky32w5S8qXzvvchZJhMBvJvmBp5tcep\"]},\"src/v06/EntryPointGasEstimationOverride.sol\":{\"keccak256\":\"0xd543e1dfeb6c3f74ce1964099364ce549563c11ea47c3cb97b02bc7e71e8f46d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://53d579d8654dbed980bb14d08ecafddb30b4f634ffedd4a64a2d30b39803d4f7\",\"dweb:/ipfs/QmTnT9yk1AB2LydP2QWiyuPrTHAZzqFcrLLjkB5Q1z7DpD\"]},\"src/v08/IEntryPointFilterOpsOverride.sol\":{\"keccak256\":\"0xe069a104d10fd2a44eaa5fb8e5b42c88db1b79e2fb158d479baf1d037100aa0e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f1440a823d770d3b70e73c769ac97039facc8b9cdb3f41debd37ae7a12ef5e9b\",\"dweb:/ipfs/QmahuKjkumBBkJEgfogRM2Pa3sSFLQ6mkyXBao87G4EF4T\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"event","name":"PimlicoSimulationDeployed","anonymous":false},{"inputs":[{"internalType":"address","name":"entryPointSimulation","type":"address"},{"internalType":"address","name":"entryPoint","type":"address"},{"internalType":"struct PackedUserOperation[]","name":"queuedUserOps","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":"struct PackedUserOperation","name":"targetUserOp","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":"uint256","name":"initialMinGas","type":"uint256"},{"internalType":"uint256","name":"toleranceDelta","type":"uint256"},{"internalType":"uint256","name":"gasAllowance","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"binarySearchCallGas","outputs":[{"internalType":"struct IEntryPointSimulations.BinarySearchResult","name":"","type":"tuple","components":[{"internalType":"enum IEntryPointSimulations.BinarySearchResultType","name":"resultType","type":"uint8"},{"internalType":"struct IEntryPointSimulations.BinarySearchSuccess","name":"successData","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]},{"internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","name":"outOfGasData","type":"tuple","components":[{"internalType":"uint256","name":"optimalGas","type":"uint256"},{"internalType":"uint256","name":"minGas","type":"uint256"},{"internalType":"uint256","name":"maxGas","type":"uint256"}]}]}]},{"inputs":[{"internalType":"address","name":"entryPointSimulation","type":"address"},{"internalType":"address payable","name":"entryPoint","type":"address"},{"internalType":"struct PackedUserOperation[]","name":"queuedUserOps","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":"struct PackedUserOperation","name":"targetUserOp","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":"uint256","name":"initialMinGas","type":"uint256"},{"internalType":"uint256","name":"toleranceDelta","type":"uint256"},{"internalType":"uint256","name":"gasAllowance","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"binarySearchPaymasterVerificationGas","outputs":[{"internalType":"struct IEntryPointSimulations.BinarySearchResult","name":"","type":"tuple","components":[{"internalType":"enum IEntryPointSimulations.BinarySearchResultType","name":"resultType","type":"uint8"},{"internalType":"struct IEntryPointSimulations.BinarySearchSuccess","name":"successData","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]},{"internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","name":"outOfGasData","type":"tuple","components":[{"internalType":"uint256","name":"optimalGas","type":"uint256"},{"internalType":"uint256","name":"minGas","type":"uint256"},{"internalType":"uint256","name":"maxGas","type":"uint256"}]}]}]},{"inputs":[{"internalType":"address","name":"entryPointSimulation","type":"address"},{"internalType":"address payable","name":"entryPoint","type":"address"},{"internalType":"struct PackedUserOperation[]","name":"queuedUserOps","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":"struct PackedUserOperation","name":"targetUserOp","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":"uint256","name":"initialMinGas","type":"uint256"},{"internalType":"uint256","name":"toleranceDelta","type":"uint256"},{"internalType":"uint256","name":"gasAllowance","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"binarySearchVerificationGas","outputs":[{"internalType":"struct IEntryPointSimulations.BinarySearchResult","name":"","type":"tuple","components":[{"internalType":"enum IEntryPointSimulations.BinarySearchResultType","name":"resultType","type":"uint8"},{"internalType":"struct IEntryPointSimulations.BinarySearchSuccess","name":"successData","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]},{"internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","name":"outOfGasData","type":"tuple","components":[{"internalType":"uint256","name":"optimalGas","type":"uint256"},{"internalType":"uint256","name":"minGas","type":"uint256"},{"internalType":"uint256","name":"maxGas","type":"uint256"}]}]}]},{"inputs":[{"internalType":"struct UserOperation[]","name":"userOps","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":"uint256","name":"callGasLimit","type":"uint256"},{"internalType":"uint256","name":"verificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"uint256","name":"maxFeePerGas","type":"uint256"},{"internalType":"uint256","name":"maxPriorityFeePerGas","type":"uint256"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"address payable","name":"beneficiary","type":"address"},{"internalType":"contract IEntryPoint","name":"entryPoint","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"filterOps06","outputs":[{"internalType":"struct PimlicoSimulations.FilterOpsResult","name":"","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"uint256","name":"balanceChange","type":"uint256"},{"internalType":"struct PimlicoSimulations.RejectedUserOp[]","name":"rejectedUserOps","type":"tuple[]","components":[{"internalType":"bytes32","name":"userOpHash","type":"bytes32"},{"internalType":"bytes","name":"revertReason","type":"bytes"}]}]}]},{"inputs":[{"internalType":"struct PackedUserOperation[]","name":"userOps","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 payable","name":"beneficiary","type":"address"},{"internalType":"contract IEntryPoint","name":"entryPoint","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"filterOps07","outputs":[{"internalType":"struct PimlicoSimulations.FilterOpsResult","name":"","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"uint256","name":"balanceChange","type":"uint256"},{"internalType":"struct PimlicoSimulations.RejectedUserOp[]","name":"rejectedUserOps","type":"tuple[]","components":[{"internalType":"bytes32","name":"userOpHash","type":"bytes32"},{"internalType":"bytes","name":"revertReason","type":"bytes"}]}]}]},{"inputs":[{"internalType":"struct PackedUserOperation[]","name":"userOps","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 payable","name":"beneficiary","type":"address"},{"internalType":"contract IEntryPoint","name":"entryPoint","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"filterOps08","outputs":[{"internalType":"struct PimlicoSimulations.FilterOpsResult","name":"","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"uint256","name":"balanceChange","type":"uint256"},{"internalType":"struct PimlicoSimulations.RejectedUserOp[]","name":"rejectedUserOps","type":"tuple[]","components":[{"internalType":"bytes32","name":"userOpHash","type":"bytes32"},{"internalType":"bytes","name":"revertReason","type":"bytes"}]}]}]},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"address[]","name":"tokens","type":"address[]"}],"stateMutability":"view","type":"function","name":"getBalances","outputs":[{"internalType":"struct PimlicoSimulations.AssetBalance[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"entryPointSimulation","type":"address"},{"internalType":"address payable","name":"entryPoint","type":"address"},{"internalType":"struct PackedUserOperation[]","name":"queuedUserOps","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":"struct PackedUserOperation","name":"targetUserOp","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":"uint256","name":"initialMinGas","type":"uint256"},{"internalType":"uint256","name":"toleranceDelta","type":"uint256"},{"internalType":"uint256","name":"gasAllowance","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"simulateAndEstimateGas","outputs":[{"internalType":"struct PimlicoSimulations.SimulateAndEstimateGasResult","name":"result","type":"tuple","components":[{"internalType":"struct IEntryPointSimulations.ExecutionResult","name":"simulationResult","type":"tuple","components":[{"internalType":"uint256","name":"preOpGas","type":"uint256"},{"internalType":"uint256","name":"paid","type":"uint256"},{"internalType":"uint256","name":"accountValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterVerificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterPostOpGasLimit","type":"uint256"},{"internalType":"bool","name":"targetSuccess","type":"bool"},{"internalType":"bytes","name":"targetResult","type":"bytes"}]},{"internalType":"struct IEntryPointSimulations.BinarySearchResult","name":"verificationGasLimit","type":"tuple","components":[{"internalType":"enum IEntryPointSimulations.BinarySearchResultType","name":"resultType","type":"uint8"},{"internalType":"struct IEntryPointSimulations.BinarySearchSuccess","name":"successData","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]},{"internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","name":"outOfGasData","type":"tuple","components":[{"internalType":"uint256","name":"optimalGas","type":"uint256"},{"internalType":"uint256","name":"minGas","type":"uint256"},{"internalType":"uint256","name":"maxGas","type":"uint256"}]}]},{"internalType":"struct IEntryPointSimulations.BinarySearchResult","name":"paymasterVerificationGasLimit","type":"tuple","components":[{"internalType":"enum IEntryPointSimulations.BinarySearchResultType","name":"resultType","type":"uint8"},{"internalType":"struct IEntryPointSimulations.BinarySearchSuccess","name":"successData","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]},{"internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","name":"outOfGasData","type":"tuple","components":[{"internalType":"uint256","name":"optimalGas","type":"uint256"},{"internalType":"uint256","name":"minGas","type":"uint256"},{"internalType":"uint256","name":"maxGas","type":"uint256"}]}]}]}]},{"inputs":[{"internalType":"struct UserOperation","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":"uint256","name":"callGasLimit","type":"uint256"},{"internalType":"uint256","name":"verificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"uint256","name":"maxFeePerGas","type":"uint256"},{"internalType":"uint256","name":"maxPriorityFeePerGas","type":"uint256"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"contract IEntryPoint","name":"entryPoint","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"address[]","name":"tokens","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"simulateAssetChange06","outputs":[{"internalType":"struct PimlicoSimulations.AssetChange[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"balanceBefore","type":"uint256"},{"internalType":"uint256","name":"balanceAfter","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":"contract IEntryPoint","name":"entryPoint","type":"address"},{"internalType":"address","name":"entryPointSimulations","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"address[]","name":"tokens","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"simulateAssetChange07","outputs":[{"internalType":"struct PimlicoSimulations.AssetChange[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"balanceBefore","type":"uint256"},{"internalType":"uint256","name":"balanceAfter","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":"contract IEntryPoint","name":"entryPoint","type":"address"},{"internalType":"address","name":"entryPointSimulations","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"address[]","name":"tokens","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"simulateAssetChange08","outputs":[{"internalType":"struct PimlicoSimulations.AssetChange[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"balanceBefore","type":"uint256"},{"internalType":"uint256","name":"balanceAfter","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"entryPointSimulation","type":"address"},{"internalType":"address payable","name":"entryPoint","type":"address"},{"internalType":"bytes[]","name":"data","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"simulateEntryPointBulk","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}]},{"inputs":[{"internalType":"address","name":"entryPointSimulation","type":"address"},{"internalType":"address payable","name":"entryPoint","type":"address"},{"internalType":"struct PackedUserOperation[]","name":"queuedUserOps","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":"struct PackedUserOperation","name":"targetUserOp","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"}]}],"stateMutability":"nonpayable","type":"function","name":"simulateHandleOp","outputs":[{"internalType":"struct IEntryPointSimulations.ExecutionResult","name":"","type":"tuple","components":[{"internalType":"uint256","name":"preOpGas","type":"uint256"},{"internalType":"uint256","name":"paid","type":"uint256"},{"internalType":"uint256","name":"accountValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterVerificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterPostOpGasLimit","type":"uint256"},{"internalType":"bool","name":"targetSuccess","type":"bool"},{"internalType":"bytes","name":"targetResult","type":"bytes"}]}]},{"inputs":[{"internalType":"address","name":"entryPointSimulation","type":"address"},{"internalType":"address payable","name":"entryPoint","type":"address"},{"internalType":"struct PackedUserOperation[]","name":"queuedUserOps","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":"struct PackedUserOperation","name":"targetUserOp","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"}]}],"stateMutability":"nonpayable","type":"function","name":"simulateValidation","outputs":[{"internalType":"struct IEntryPointSimulations.ValidationResult","name":"","type":"tuple","components":[{"internalType":"struct IEntryPoint.ReturnInfo","name":"returnInfo","type":"tuple","components":[{"internalType":"uint256","name":"preOpGas","type":"uint256"},{"internalType":"uint256","name":"prefund","type":"uint256"},{"internalType":"uint256","name":"accountValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterValidationData","type":"uint256"},{"internalType":"bytes","name":"paymasterContext","type":"bytes"}]},{"internalType":"struct IStakeManager.StakeInfo","name":"senderInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]},{"internalType":"struct IStakeManager.StakeInfo","name":"factoryInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]},{"internalType":"struct IStakeManager.StakeInfo","name":"paymasterInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]},{"internalType":"struct IEntryPoint.AggregatorStakeInfo","name":"aggregatorInfo","type":"tuple","components":[{"internalType":"address","name":"aggregator","type":"address"},{"internalType":"struct IStakeManager.StakeInfo","name":"stakeInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]}]}]}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"binarySearchCallGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)":{"notice":"Binary search for optimal call gas limit"},"binarySearchPaymasterVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)":{"notice":"Binary search for optimal paymaster verification gas limit"},"binarySearchVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)":{"notice":"Binary search for optimal verification gas limit"},"simulateAndEstimateGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)":{"notice":"Simulates userOp and estimates verification & paymaster gas limits"},"simulateHandleOp(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":{"notice":"Simulates handling of a UserOperation"},"simulateValidation(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":{"notice":"Simulates validation of a UserOperation"}},"version":1}},"settings":{"remappings":["@account-abstraction-v6/=lib/account-abstraction-v6/contracts/","@account-abstraction-v7/=lib/account-abstraction-v7/contracts/","@account-abstraction-v8/=lib/account-abstraction-v8/contracts/","@openzeppelin-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/","@openzeppelin-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/","@openzeppelin-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/","@openzeppelin/contracts/=lib/openzeppelin-contracts-v5.0.2/contracts/","@test-aa-utils/=lib/singleton-paymaster/test/utils/account-abstraction/","@test-utils/=lib/singleton-paymaster/test/utils/","account-abstraction-v6/=lib/account-abstraction-v6/contracts/","account-abstraction-v7/=lib/account-abstraction-v7/contracts/","account-abstraction-v8/=lib/account-abstraction-v8/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-v5.0.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-v5.1.0/lib/halmos-cheatcodes/src/","openzeppelin-contracts-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/","openzeppelin-contracts-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/","openzeppelin-contracts-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/","singleton-paymaster/=lib/singleton-paymaster/src/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/PimlicoSimulations.sol":"PimlicoSimulations"},"evmVersion":"london","libraries":{},"viaIR":true},"sources":{"lib/account-abstraction-v6/contracts/core/Helpers.sol":{"keccak256":"0x591c87519f7155d1909210276b77925ab2722a99b7b5d5649aecc36ebbdb045a","urls":["bzz-raw://69643e83f68e6a13d5075c7565bfce326673b0bd98c432033c4603ea84835746","dweb:/ipfs/QmSwSzjYyV7qudi5vvsmzHMG2Z4YJZxX51RRXXVCLaNcEU"],"license":"GPL-3.0"},"lib/account-abstraction-v6/contracts/core/NonceManager.sol":{"keccak256":"0xa17a4a6fde70088ab18ffe6df830f3efa31f1cd0e1a7160336c96e3c94984d25","urls":["bzz-raw://b38615df9f80c56282b72888e9ba1eb1a9413fa67a0dbf094deda7af9feb38e7","dweb:/ipfs/QmSzcXetEJRH4UHuUmZiSgX6bFgfqHWfmyuxVnh4NosMk1"],"license":"GPL-3.0"},"lib/account-abstraction-v6/contracts/core/SenderCreator.sol":{"keccak256":"0x44b9449fec82d6cdfb01d52fdd5a72f90099c651316123810cf9633f00b018c2","urls":["bzz-raw://a9c0487390e72638681d175c45bc92425c802fffdca4bd0ae8457782ee284612","dweb:/ipfs/QmVbzuehCUWJWqEHyMWuc6cRVbxfcMdFsmGL9o4Wz7WY2x"],"license":"GPL-3.0"},"lib/account-abstraction-v6/contracts/core/StakeManager.sol":{"keccak256":"0x21aa0956382bd000b1b8c3b1d19ca6ebcd6c9029eebb19c612fb38ee5dd2430a","urls":["bzz-raw://0a625c8795354d9f429367f9c1d14eb8af7db9c7f2c2a2033e2066ced76a573a","dweb:/ipfs/Qmd1j6UarUg54q1G2HCNCLQz8XGVZR1qxX7eQ6cytHpQPN"],"license":"GPL-3.0-only"},"lib/account-abstraction-v6/contracts/interfaces/IAccount.sol":{"keccak256":"0x556a0e5980de18e90b115553ed502408155ba35f58642823010d9288047bc418","urls":["bzz-raw://a0f420134b79596db8737173c7b933ae0a33059e107b6327c43aa40d4744a9e4","dweb:/ipfs/QmRo8s1AhXmEMV7uPYnbpYwU19e9Bk6jmYBJTiPx3Fo85W"],"license":"GPL-3.0"},"lib/account-abstraction-v6/contracts/interfaces/IAggregator.sol":{"keccak256":"0x060e9ddb0152250c269ba0640dc5753834ac44cf182a2837d508c0c529cae26a","urls":["bzz-raw://20ed837bc5909c89ff1910246bf245a5dad6840aa939382e1694964eb7dbd37b","dweb:/ipfs/QmTMybRq5yyghPDDs1ZCNAVB9sSJ4WHe6Q9mejuKPTAdNP"],"license":"GPL-3.0"},"lib/account-abstraction-v6/contracts/interfaces/IEntryPoint.sol":{"keccak256":"0x3a90bf308819ed125fa4202f880999caff8a8686633b8ddb79a30ca240d5b8f8","urls":["bzz-raw://d2d21cc92c2fdab2b58d21bc25d4cd0e8c284b922528a186b087b818d54bc6cf","dweb:/ipfs/QmT1qrfuBjsv2rmRCDn8mgPXHp94hARJwzbcDuBLDTbFWd"],"license":"GPL-3.0"},"lib/account-abstraction-v6/contracts/interfaces/INonceManager.sol":{"keccak256":"0x509871e6c63663cdcc3eba19920fe84e991f38b289b1377ac3c3a6d9f22d7e12","urls":["bzz-raw://00fe21b4349b24c50df60e1a705179293982bd9e7a32b78d4bac9620f89e7fe2","dweb:/ipfs/QmSFFYGfUwQbVa6hASjU7YxTvgi2HkfrPr4X5oPHscHg8b"],"license":"GPL-3.0"},"lib/account-abstraction-v6/contracts/interfaces/IPaymaster.sol":{"keccak256":"0x36858ba8685024974f533530420688da3454d29996ebc42e410673a1ed2ec456","urls":["bzz-raw://616cbcf51778b1961b7f20a547bec7efae6d1d565df0f651926241ed8bde9ad8","dweb:/ipfs/QmaVsgffUUmeUJYgStvRr8cNZ1LBbrc3FYNLW4JT1dVLia"],"license":"GPL-3.0"},"lib/account-abstraction-v6/contracts/interfaces/IStakeManager.sol":{"keccak256":"0xd227b02888cd4ac68daebcdfd992ec00f9fff66fa3b3bb16f656cd582fa3480f","urls":["bzz-raw://b389da4714a138be63704a576a482505eab2855e263b38a93706395d8d42e7c3","dweb:/ipfs/QmeeAZpdHwUXxqP8pxA7GNtoCGBmmH4FaqLLwScVKGxtxZ"],"license":"GPL-3.0-only"},"lib/account-abstraction-v6/contracts/interfaces/UserOperation.sol":{"keccak256":"0x61374003361059087fdcf17967a7bba052badeaf5c7f0ae689166f8aafd3a45c","urls":["bzz-raw://6ff83c59432e733bf6304dda27cd4b0f34401917dd535e2669cc842d2d26568c","dweb:/ipfs/QmPJbHU5TAjHqUTZzAcicEeG2nknmwCN43L4EW9LHbknTN"],"license":"GPL-3.0"},"lib/account-abstraction-v6/contracts/utils/Exec.sol":{"keccak256":"0x5b232117afbc2939f3ffc92745614867e9e1d475a3e1e5443adae13c200174f1","urls":["bzz-raw://62e7365379a06ead7b47637945bcaee095d51aab1d3ac00ddec69443e6cbe9fe","dweb:/ipfs/QmctG3aw4U3KMSMeJKoLJ1NJewjMWfppnd1m3kxNTe39Uy"],"license":"LGPL-3.0-only"},"lib/account-abstraction-v7/contracts/interfaces/IAggregator.sol":{"keccak256":"0xf100d6fcc0c3b450b13e979b6a42c628c292a1bc340eccc2e7796b80e3975588","urls":["bzz-raw://192938b5b27234d35c8098a319e879363c79f750eea4d0e409dc889a8ce5b155","dweb:/ipfs/QmURpaJFPqEtkKP2ngBsgZhAGN8wAWh5XQpYmCkiz4Urz5"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/interfaces/IEntryPoint.sol":{"keccak256":"0x1972a5fcb3a808b58c85af5741949ef6af11ab0debd3ae8c708171ae1ae0d0c4","urls":["bzz-raw://baa9837ae73b9e2362a47d42d081d7c0f3d8e878e5edb381117d94a6968949c9","dweb:/ipfs/QmUmo6FUE7fv5z1WzW1YFjxp8PqaeN2JrEee9au59w3Xhe"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/interfaces/INonceManager.sol":{"keccak256":"0xd575af0f6ebbd5f0b2933307d44cd7b4e03a69f4b817a67db5409bd3c89aeecb","urls":["bzz-raw://3b1e2dea9b05cfba9d13339ed16d96457dc861013cc4f3f35b71a80f82448db3","dweb:/ipfs/QmVaGy5uGDMSiU2SzyokTjoHFyb39VVG5wtaM9KTnHyZSk"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/interfaces/IStakeManager.sol":{"keccak256":"0xbe5ca9e7f254d031687419e7b96ef48c9c63e9398bbe992dc72ffc6dc14e0a04","urls":["bzz-raw://1fffec71c38627a26fabb423350148009579f092623fb02b471a12d973763a00","dweb:/ipfs/QmRBi31QEYXHj3x1AnQ2jKa2eziZH1b9av396P3b4dw6bj"],"license":"GPL-3.0-only"},"lib/account-abstraction-v7/contracts/interfaces/PackedUserOperation.sol":{"keccak256":"0x1129b46381db68eddbc5cb49e50664667b66b03c480453858e7b25eabe444359","urls":["bzz-raw://499a948aba60480dba6e25c763b8d918f1c246eb7a3302e04f493e080f3295be","dweb:/ipfs/QmeRhhswf4NACcBKam2PyjpTP2ddSm648kah5kkQJsvwz3"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/utils/Exec.sol":{"keccak256":"0x86b1b1cd11158dddb9d381040c57fdc643c74b5e4eed3e7e036f32452672ad74","urls":["bzz-raw://ad88663b6c76df73cf09a272cf333d038df7bb4c51281284b572bf9b46e1cd77","dweb:/ipfs/QmVKxYF8avyPBtqejVhFCM2CuHsfpsCh7TsPqkBLtrgwJQ"],"license":"LGPL-3.0-only"},"lib/account-abstraction-v8/contracts/interfaces/IAggregator.sol":{"keccak256":"0xdf580eafa015b81bde436d6a5468cc92b531ada84007cef885e923f6dfc5e8bf","urls":["bzz-raw://99f0060626568619ac94d750eb4c0888d92ca5775a6bd957fef9847843835b77","dweb:/ipfs/QmXJer3D9sTkEj3mmUDqpdqfGpe46Rn9G22nGrfZdP2wAT"],"license":"MIT"},"lib/account-abstraction-v8/contracts/interfaces/IEntryPoint.sol":{"keccak256":"0x3b0423737e810dd886183ed32cfed9b45edd315f5fb3e1076fc19f86791adc64","urls":["bzz-raw://c43081efaa2eda581b6249053281bb58cb0c4eeb6bf87efc55d95daaec2fc931","dweb:/ipfs/QmXRN2JnyzWZNeFMHauTnDuc7jhxGY4ZkY37HTtjXKdC87"],"license":"MIT"},"lib/account-abstraction-v8/contracts/interfaces/INonceManager.sol":{"keccak256":"0xee493ae200b8c675bdc0da66f7ac6bb883ecea33672d7d0a95526b9eecdedf87","urls":["bzz-raw://979784a0333ac4ef3cc53ab9323a4b7fa574d929bd511f0eed03d3b0370db22d","dweb:/ipfs/QmeiciN5gs4upM6vfKvrRxWiDBUzMU4uJQRRkJajhim9gX"],"license":"MIT"},"lib/account-abstraction-v8/contracts/interfaces/ISenderCreator.sol":{"keccak256":"0x677f651d733162b80d1af7901e4f36469e362737a8353d1d0cc7bb94489e4ba4","urls":["bzz-raw://d6905a80acd70b444ea230b5b582164cb99aaae518bf72c88f8292df31615570","dweb:/ipfs/QmfTKTPwJYf9pmA3T5PE5cCG8GLLDrLaq3jQqMP3pVRL6w"],"license":"MIT"},"lib/account-abstraction-v8/contracts/interfaces/IStakeManager.sol":{"keccak256":"0xe48e904fcac02295aad07fbfa1c1d449a74bf44c04e432afef6f34d1ef726ae0","urls":["bzz-raw://5882b635ea6f5da9ae411485975888431de571f85d4baf35e3db1a83c1f14b85","dweb:/ipfs/QmVSTX36Byr48y8JBmz1hCTGAAyQdTYegQbsSqdRNuSQYz"],"license":"MIT"},"lib/account-abstraction-v8/contracts/interfaces/PackedUserOperation.sol":{"keccak256":"0xb15188e25e45fe73097e279675b6c0beccbd4133ead2260f8f0c4ba840046800","urls":["bzz-raw://5d14c1edd1e95d37c26e54bb34305e2cc9dedc46eb75ec91caeb777678e8ea79","dweb:/ipfs/QmcCL2syVtV7W3XvYx3si84MPkbEJKqEN8hjFNhAPoDDhK"],"license":"MIT"},"lib/openzeppelin-contracts-v4.8.3/contracts/security/ReentrancyGuard.sol":{"keccak256":"0x190dd6f8d592b7e4e930feb7f4313aeb8e1c4ad3154c27ce1cf6a512fc30d8cc","urls":["bzz-raw://4ce8dfb62d0c4fa260d6eec8f1cd47f5f2a044e11bde5b31d18072fa6e7d9010","dweb:/ipfs/QmTyFztU3tLEcEDnqqiaW4UJetqsU77LXc6pjc9oTXCK5u"],"license":"MIT"},"lib/openzeppelin-contracts-v4.8.3/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-v4.8.3/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts-v4.8.3/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/solady/src/tokens/ERC20.sol":{"keccak256":"0x1c3cdf5158b29b16ba2d2c7ff1f6d4304754605441257e198b46803f0fa9df1a","urls":["bzz-raw://f6ed3d15fd372495ff76439878fb5e007ae0b39da3ce3d9fd877ee8147647bb2","dweb:/ipfs/QmZ1zC91VhPHMXAdcY8SahJMwDsC2B5q9uXFF16R5eHmkV"],"license":"MIT"},"lib/solady/src/utils/LibBytes.sol":{"keccak256":"0x905f1c122299888350964a3bdd3dccd4b969273389b8d869f9aacb6871ff199e","urls":["bzz-raw://b6cff3ef7090aa48f214b960f373a33c15878f80e617443a3a4d53f130bab862","dweb:/ipfs/QmdMEpK6ZVxUesqSpurqS9UkDnm1kAnjUeJKLN6ZWPNJnT"],"license":"MIT"},"src/IEntryPointSimulations.sol":{"keccak256":"0xbc2129076267d33c8a7a7bb9ed92cc7b4a7d0d20c224a5f428412cca113bed41","urls":["bzz-raw://f35d68119a9c4108b415c8523667bae15466b544f2e0a17111e7c8481bdb07b5","dweb:/ipfs/Qme8yMWE1KLcGmJ5UhHS4KBc27TRTaeoXwBxaXQbErAC5t"],"license":"MIT"},"src/PimlicoSimulations.sol":{"keccak256":"0x3d913acd6e8ab62d56ae45469cfcde670861714a2e6e324ddb6e0b7d91852097","urls":["bzz-raw://5c3ec1240874eec9a3eca32c51ddc14a54597217be1df2ad827240be4f18901d","dweb:/ipfs/Qmb1zSVZ4vT2grDYWFAHMYtK7XW4SBX1aWJEHFu1Y5PiW5"],"license":"MIT"},"src/SimulationOverrideHelper.sol":{"keccak256":"0x98850f986164c992b840ba8e878814c459be0852debe8ad8d69140c09c6b05c5","urls":["bzz-raw://a57d5979f5557ccbc6947c3f6b5b6ec10f152609b9d11c265b20d925d915b559","dweb:/ipfs/QmcA4kpMCnjCfEyky32w5S8qXzvvchZJhMBvJvmBp5tcep"],"license":"MIT"},"src/v06/EntryPointGasEstimationOverride.sol":{"keccak256":"0xd543e1dfeb6c3f74ce1964099364ce549563c11ea47c3cb97b02bc7e71e8f46d","urls":["bzz-raw://53d579d8654dbed980bb14d08ecafddb30b4f634ffedd4a64a2d30b39803d4f7","dweb:/ipfs/QmTnT9yk1AB2LydP2QWiyuPrTHAZzqFcrLLjkB5Q1z7DpD"],"license":"GPL-3.0"},"src/v08/IEntryPointFilterOpsOverride.sol":{"keccak256":"0xe069a104d10fd2a44eaa5fb8e5b42c88db1b79e2fb158d479baf1d037100aa0e","urls":["bzz-raw://f1440a823d770d3b70e73c769ac97039facc8b9cdb3f41debd37ae7a12ef5e9b","dweb:/ipfs/QmahuKjkumBBkJEgfogRM2Pa3sSFLQ6mkyXBao87G4EF4T"],"license":"MIT"}},"version":1},"id":31}
1
+ {"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"binarySearchCallGas","inputs":[{"name":"entryPointSimulation","type":"address","internalType":"address"},{"name":"entryPoint","type":"address","internalType":"address"},{"name":"queuedUserOps","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":"targetUserOp","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":"initialMinGas","type":"uint256","internalType":"uint256"},{"name":"toleranceDelta","type":"uint256","internalType":"uint256"},{"name":"gasAllowance","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchResult","components":[{"name":"resultType","type":"uint8","internalType":"enum IEntryPointSimulations.BinarySearchResultType"},{"name":"successData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchSuccess","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]},{"name":"outOfGasData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","components":[{"name":"optimalGas","type":"uint256","internalType":"uint256"},{"name":"minGas","type":"uint256","internalType":"uint256"},{"name":"maxGas","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"nonpayable"},{"type":"function","name":"binarySearchPaymasterVerificationGas","inputs":[{"name":"entryPointSimulation","type":"address","internalType":"address"},{"name":"entryPoint","type":"address","internalType":"address payable"},{"name":"queuedUserOps","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":"targetUserOp","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":"initialMinGas","type":"uint256","internalType":"uint256"},{"name":"toleranceDelta","type":"uint256","internalType":"uint256"},{"name":"gasAllowance","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchResult","components":[{"name":"resultType","type":"uint8","internalType":"enum IEntryPointSimulations.BinarySearchResultType"},{"name":"successData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchSuccess","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]},{"name":"outOfGasData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","components":[{"name":"optimalGas","type":"uint256","internalType":"uint256"},{"name":"minGas","type":"uint256","internalType":"uint256"},{"name":"maxGas","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"nonpayable"},{"type":"function","name":"binarySearchVerificationGas","inputs":[{"name":"entryPointSimulation","type":"address","internalType":"address"},{"name":"entryPoint","type":"address","internalType":"address payable"},{"name":"queuedUserOps","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":"targetUserOp","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":"initialMinGas","type":"uint256","internalType":"uint256"},{"name":"toleranceDelta","type":"uint256","internalType":"uint256"},{"name":"gasAllowance","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchResult","components":[{"name":"resultType","type":"uint8","internalType":"enum IEntryPointSimulations.BinarySearchResultType"},{"name":"successData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchSuccess","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]},{"name":"outOfGasData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","components":[{"name":"optimalGas","type":"uint256","internalType":"uint256"},{"name":"minGas","type":"uint256","internalType":"uint256"},{"name":"maxGas","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"nonpayable"},{"type":"function","name":"filterOps06","inputs":[{"name":"userOps","type":"tuple[]","internalType":"struct UserOperation[]","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":"callGasLimit","type":"uint256","internalType":"uint256"},{"name":"verificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"maxFeePerGas","type":"uint256","internalType":"uint256"},{"name":"maxPriorityFeePerGas","type":"uint256","internalType":"uint256"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"beneficiary","type":"address","internalType":"address payable"},{"name":"entryPoint","type":"address","internalType":"contract IEntryPoint"}],"outputs":[{"name":"","type":"tuple","internalType":"struct PimlicoSimulations.FilterOpsResult","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"balanceChange","type":"uint256","internalType":"uint256"},{"name":"rejectedUserOps","type":"tuple[]","internalType":"struct PimlicoSimulations.RejectedUserOp[]","components":[{"name":"userOpHash","type":"bytes32","internalType":"bytes32"},{"name":"revertReason","type":"bytes","internalType":"bytes"}]}]}],"stateMutability":"nonpayable"},{"type":"function","name":"filterOps07","inputs":[{"name":"userOps","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":"beneficiary","type":"address","internalType":"address payable"},{"name":"entryPoint","type":"address","internalType":"contract IEntryPoint"}],"outputs":[{"name":"","type":"tuple","internalType":"struct PimlicoSimulations.FilterOpsResult","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"balanceChange","type":"uint256","internalType":"uint256"},{"name":"rejectedUserOps","type":"tuple[]","internalType":"struct PimlicoSimulations.RejectedUserOp[]","components":[{"name":"userOpHash","type":"bytes32","internalType":"bytes32"},{"name":"revertReason","type":"bytes","internalType":"bytes"}]}]}],"stateMutability":"nonpayable"},{"type":"function","name":"filterOps08","inputs":[{"name":"userOps","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":"beneficiary","type":"address","internalType":"address payable"},{"name":"entryPoint","type":"address","internalType":"contract IEntryPoint"}],"outputs":[{"name":"","type":"tuple","internalType":"struct PimlicoSimulations.FilterOpsResult","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"balanceChange","type":"uint256","internalType":"uint256"},{"name":"rejectedUserOps","type":"tuple[]","internalType":"struct PimlicoSimulations.RejectedUserOp[]","components":[{"name":"userOpHash","type":"bytes32","internalType":"bytes32"},{"name":"revertReason","type":"bytes","internalType":"bytes"}]}]}],"stateMutability":"nonpayable"},{"type":"function","name":"filterOps09","inputs":[{"name":"userOps","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":"beneficiary","type":"address","internalType":"address payable"},{"name":"entryPoint","type":"address","internalType":"contract IEntryPoint"}],"outputs":[{"name":"","type":"tuple","internalType":"struct PimlicoSimulations.FilterOpsResult","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"balanceChange","type":"uint256","internalType":"uint256"},{"name":"rejectedUserOps","type":"tuple[]","internalType":"struct PimlicoSimulations.RejectedUserOp[]","components":[{"name":"userOpHash","type":"bytes32","internalType":"bytes32"},{"name":"revertReason","type":"bytes","internalType":"bytes"}]}]}],"stateMutability":"nonpayable"},{"type":"function","name":"getBalances","inputs":[{"name":"addresses","type":"address[]","internalType":"address[]"},{"name":"tokens","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct PimlicoSimulations.AssetBalance[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"simulateAndEstimateGas","inputs":[{"name":"entryPointSimulation","type":"address","internalType":"address"},{"name":"entryPoint","type":"address","internalType":"address payable"},{"name":"queuedUserOps","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":"targetUserOp","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":"initialMinGas","type":"uint256","internalType":"uint256"},{"name":"toleranceDelta","type":"uint256","internalType":"uint256"},{"name":"gasAllowance","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"result","type":"tuple","internalType":"struct PimlicoSimulations.SimulateAndEstimateGasResult","components":[{"name":"simulationResult","type":"tuple","internalType":"struct IEntryPointSimulations.ExecutionResult","components":[{"name":"preOpGas","type":"uint256","internalType":"uint256"},{"name":"paid","type":"uint256","internalType":"uint256"},{"name":"accountValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterVerificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterPostOpGasLimit","type":"uint256","internalType":"uint256"},{"name":"targetSuccess","type":"bool","internalType":"bool"},{"name":"targetResult","type":"bytes","internalType":"bytes"}]},{"name":"verificationGasLimit","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchResult","components":[{"name":"resultType","type":"uint8","internalType":"enum IEntryPointSimulations.BinarySearchResultType"},{"name":"successData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchSuccess","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]},{"name":"outOfGasData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","components":[{"name":"optimalGas","type":"uint256","internalType":"uint256"},{"name":"minGas","type":"uint256","internalType":"uint256"},{"name":"maxGas","type":"uint256","internalType":"uint256"}]}]},{"name":"paymasterVerificationGasLimit","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchResult","components":[{"name":"resultType","type":"uint8","internalType":"enum IEntryPointSimulations.BinarySearchResultType"},{"name":"successData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchSuccess","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]},{"name":"outOfGasData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","components":[{"name":"optimalGas","type":"uint256","internalType":"uint256"},{"name":"minGas","type":"uint256","internalType":"uint256"},{"name":"maxGas","type":"uint256","internalType":"uint256"}]}]}]}],"stateMutability":"nonpayable"},{"type":"function","name":"simulateAssetChange06","inputs":[{"name":"userOp","type":"tuple","internalType":"struct UserOperation","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":"callGasLimit","type":"uint256","internalType":"uint256"},{"name":"verificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"maxFeePerGas","type":"uint256","internalType":"uint256"},{"name":"maxPriorityFeePerGas","type":"uint256","internalType":"uint256"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"entryPoint","type":"address","internalType":"contract IEntryPoint"},{"name":"addresses","type":"address[]","internalType":"address[]"},{"name":"tokens","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct PimlicoSimulations.AssetChange[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"balanceBefore","type":"uint256","internalType":"uint256"},{"name":"balanceAfter","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"simulateAssetChange07","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":"entryPoint","type":"address","internalType":"contract IEntryPoint"},{"name":"entryPointSimulations","type":"address","internalType":"address"},{"name":"addresses","type":"address[]","internalType":"address[]"},{"name":"tokens","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct PimlicoSimulations.AssetChange[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"balanceBefore","type":"uint256","internalType":"uint256"},{"name":"balanceAfter","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"simulateAssetChange08","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":"entryPoint","type":"address","internalType":"contract IEntryPoint"},{"name":"entryPointSimulations","type":"address","internalType":"address"},{"name":"addresses","type":"address[]","internalType":"address[]"},{"name":"tokens","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct PimlicoSimulations.AssetChange[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"balanceBefore","type":"uint256","internalType":"uint256"},{"name":"balanceAfter","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"simulateEntryPointBulk","inputs":[{"name":"entryPointSimulation","type":"address","internalType":"address"},{"name":"entryPoint","type":"address","internalType":"address payable"},{"name":"data","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"simulateHandleOp","inputs":[{"name":"entryPointSimulation","type":"address","internalType":"address"},{"name":"entryPoint","type":"address","internalType":"address payable"},{"name":"queuedUserOps","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":"targetUserOp","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"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct IEntryPointSimulations.ExecutionResult","components":[{"name":"preOpGas","type":"uint256","internalType":"uint256"},{"name":"paid","type":"uint256","internalType":"uint256"},{"name":"accountValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterVerificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterPostOpGasLimit","type":"uint256","internalType":"uint256"},{"name":"targetSuccess","type":"bool","internalType":"bool"},{"name":"targetResult","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"simulateValidation","inputs":[{"name":"entryPointSimulation","type":"address","internalType":"address"},{"name":"entryPoint","type":"address","internalType":"address payable"},{"name":"queuedUserOps","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":"targetUserOp","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"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct IEntryPointSimulations.ValidationResult","components":[{"name":"returnInfo","type":"tuple","internalType":"struct IEntryPoint.ReturnInfo","components":[{"name":"preOpGas","type":"uint256","internalType":"uint256"},{"name":"prefund","type":"uint256","internalType":"uint256"},{"name":"accountValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterContext","type":"bytes","internalType":"bytes"}]},{"name":"senderInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]},{"name":"factoryInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]},{"name":"paymasterInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]},{"name":"aggregatorInfo","type":"tuple","internalType":"struct IEntryPoint.AggregatorStakeInfo","components":[{"name":"aggregator","type":"address","internalType":"address"},{"name":"stakeInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]}]}]}],"stateMutability":"nonpayable"},{"type":"event","name":"PimlicoSimulationDeployed","inputs":[],"anonymous":false}],"bytecode":{"object":"0x60808060405234603a577f20d4cb4d83077ae7f93cbc84f032f6918d99772c5bb321c4333007d83641ab7e600080a16138e390816100408239f35b600080fdfe60a0604052600436101561001257600080fd5b60006080526080513560e01c8063141eb033146120e95780632e5a0a931461207a578063685f602614611c7a5780637134990314611b6e57806382e542ed14611b14578063861d9d5914611abb57806390d81dfb146118ab578063959c4cb7146112a45780639f2d378914611212578063a4968eab14610fee578063b21b38c814610d55578063de040de114610a41578063ef5bfc37146107a4578063f11430431461071c5763fccb5ff6146100c757600080fd5b34610491576060366003190112610491576004356001600160401b038111610491576100f79036906004016124fb565b90610100612303565b90610109612319565b9061011261285f565b5061011b6130be565b805190680100000000000000008211610704576080515482608051558083106105f4575b5060808051805251939493907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563906020015b8383106105d0575050505060805192608051916001600160a01b038060805195169216956040945b8181106101d3576101cf8787878151926101b2846123ab565b835260208301526101c1613310565b81830152519182918261269e565b0390f35b85516101df8782612419565b600181526080515b601f198801811061056257506101fe8284866135d1565b6101208136031261049157875190610215826123e1565b61021e8161232f565b825260208101356020830152888101356001600160401b03811161049157610249903690830161246c565b8983015260608101356001600160401b0381116104915761026d903690830161246c565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e08101356001600160401b038111610491576102b0903690830161246c565b60e0830152610100810135906001600160401b038211610491576102d69136910161246c565b6101008201526102e582612808565b526102ef81612808565b5084315a918a3b15610491578851907f765e827f000000000000000000000000000000000000000000000000000000008252604482018a600484015281518091526064830190602060648260051b860101930191608051905b8282106104975750505050876024830152818c8180608051940391608051905af19081610478575b5061044a5750506103c8610382612dae565b602061038f8486886135d1565b8951809481927f22cdde4c000000000000000000000000000000000000000000000000000000008352846004840152602483019061291f565b03818d5afa91821561043e5760805192610404575b50600192916103fe918951916103f283612390565b825260208201526132b8565b01610199565b90915060203d8111610437575b61041b8183612419565b60208260009281010312610434575051906103fe6103dd565b80fd5b503d610411565b88513d608051823e3d90fd5b956104666001939761046c610472949b6104665a8b319e613288565b906132ab565b9a613288565b946103fe565b60805161048491612419565b6080516104915738610370565b60805180fd5b909192936020989e9798808f9e9c9f610548909c9e999c6001946063198b82030187526101006105366105066104f48d51956001600160a01b038751168652888701518987015261012081880151918701526101208601906124d6565b606086015185820360608701526124d6565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e08601526124d6565b920151906101008184039101526124d6565b9601920192019092919d97969d9c999b9c9a98959a610348565b60209088979598999293999694965161057a816123e1565b608051815260805183820152606089820152606080820152608051608082015260805160a082015260805160c0820152606060e082015260606101008201528282860101520197919097969395969492946101e7565b60026020826105e56001949a999a5186613157565b01920192019190959495610171565b6001600160ff1b03811681036106ec576001600160ff1b03831683036106ec576080516080515260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b818110610674575061013f565b6080518155600181018054600292919061068d90613106565b8061069b575b505001610667565b601f81116001146106b4575060805190555b3880610693565b6106d59082608051526001601f602060805120920160051c82019101613140565b6080805182905251602081209181905590556106ad565b634e487b7160e01b6080515260116004526024608051fd5b634e487b7160e01b6080515260416004526024608051fd5b34610491576101cf61079061078161077a61076c6001600160a01b036107413661278a565b61074f97939496919761342a565b5060405197889363af32494360e01b60208601526024850161346d565b03601f198101865285612419565b16906135f4565b60208082518301019101613493565b60405191829160208352602083019061272b565b34610491576040366003190112610491576004356001600160401b038111610491576107d49036906004016124fb565b906024356001600160401b038111610491576107f49036906004016124fb565b838102939192918015818604831417156106ec576108118561243a565b9461081f6040519687612419565b80865261082e601f199161243a565b016080515b818110610a2a57505060805190815b8181106108b957866040518091602082016020835281518091526020604084019201906080515b818110610877575050500390f35b9193509160206060600192604087516001600160a01b0381511683526001600160a01b0385820151168584015201516040820152019401910191849392610869565b6108cc6108c78284886135ad565b6135bd565b608051906001600160a01b038116915b8681106108ee57505050600101610842565b86898273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b0361091c6108c78487876135ad565b1603610988575050508131905b6109376108c7828a8d6135ad565b916001600160a01b036040519361094d856123ab565b86855216602084015260408301528660001981146106ec578760019361097a8e9a8661098195019b61282b565b528c61282b565b50016108dc565b6109a26108c76001600160a01b03926024956020956135ad565b16604051928380927f70a082310000000000000000000000000000000000000000000000000000000082528860048301525afa908115610a1d57608051916109ec575b5090610929565b90506020813d8211610a15575b81610a0660209383612419565b8101031261049157518b6109e5565b3d91506109f9565b6040513d608051823e3d90fd5b602090610a35612880565b82828a01015201610833565b3461049157610b5e61077a61076c6001600160a01b03610a603661278a565b604097939496919751610a72816123c6565b604051610a7e816123c6565b6080518152608051602082015260805160408201526080516060820152606060808201528152604051610ab081612390565b60008152600060208201526020820152604051610acc81612390565b60008152600060208201526040820152604051610ae881612390565b60008152600060208201526060820152608060405191610b0783612390565b81518352604051610b1781612390565b6000815260006020820152602084015201526040519788937faec321fb0000000000000000000000000000000000000000000000000000000060208601526024850161346d565b805181016020810191602081830312610491576020810151906001600160401b0382116104915701808203601f1981019290610140136104915760405190610ba5826123c6565b60208301516001600160401b038111610491578301602081019160a0919003126104915760405190610bd6826123c6565b805182526020810151602083015260408101516040830152606081015160608301526080810151906001600160401b03821161049157610c1891879101612a9a565b60808201528152610c2c8460408401613585565b9160208201928352610c418560808301613585565b90604083019182526060610c588760c08401613585565b8482019081529560bf19011261049157602080958180959481610cff60808298610ca46101409e6101206040519b610c8f8d612390565b610c9c6101008201612bc2565b8d5201613585565b848a01528181019889526040519d848f9e928f938452519201528c61016082519101528c610180858301519101528c6101a060408301519101528c6101c06060830151910152015160a06101e08d01526102008c01906124d6565b9851805160408c0152015160608a015251805160808a0152015160a088015251805160c0880152015160e0860152516001600160a01b038151166101008601520151805161012085015201516101408301520390f35b346104915760a0366003190112610491576004356001600160401b03811161049157610120600319823603011261049157610d8e612303565b610d96612319565b906064356001600160401b03811161049157610db69036906004016124fb565b6084949194356001600160401b03811161049157610dd89036906004016124fb565b6040969196519663ef5bfc3760e01b88526080518880610dfe8585898960048601612ccd565b0381305afa978815610a1d5760805198610f97575b50610ea29461076c610eba9895610e626001600160a01b0396610e546107819b9761077a9760405195869463ef5bfc3760e01b602087015260248601612ccd565b03601f198101835282612419565b6040519788937f7da0c46200000000000000000000000000000000000000000000000000000000602086015260606024860152608485019060040161291f565b306044850152838103602319016064850152906124d6565b60c081015115610f8b5760e0610edb91015160208082518301019101612bd6565b90610ee68151612e2b565b916080515b8251811015610f7d57806001600160a01b03610f096001938661282b565b5151166001600160a01b036020610f20848861282b565b510151166040610f30848861282b565b5101516040610f3f858861282b565b5101519160405193610f5085612343565b8452602084015260408301526060820152610f6b828761282b565b52610f76818661282b565b5001610eeb565b604051806101cf8682612630565b60e00151602081519101fd5b61077a9198509461076c610eba9895610e626001600160a01b0396610e546107819b97610fda610ea29c3d80608051833e610fd28183612419565b810190612bd6565b9e9750979b50509650509598505094610e13565b3461049157610ffc3661252b565b604097939592979691965196611011886123ab565b61101961342a565b8852602088019861102861289f565b8a52604089019761103761289f565b8952611074610781826110648b610e5460405193849263af32494360e01b60208501528d6024850161346d565b6001600160a01b0388168a6135f4565b8a52878787876110b98888888860405198899788977f2e5a0a930000000000000000000000000000000000000000000000000000000089526080519a60048a01613533565b0381608051305af1908115610a1d57608051916111f6575b508b5260e0810135601e19823603018112156104915781018035906001600160401b038211610491576020823603910113610491576014111561115d575b6111378a6101cf8b61114a8f604051958695602087525160606020880152608087019061272b565b9051858203601f190160408701526125b5565b9051838203601f190160608501526125b5565b9061119f939291604099989951998a9788977f9f2d37890000000000000000000000000000000000000000000000000000000089526080519a60048a01613533565b0381608051305af1918215610a1d57611137946101cf9361114a92608051916111d2575b5083529482938780808061110f565b6111f091503d80608051833e6111e88183612419565b810190612adc565b876111c3565b61120c91503d80608051833e6111e88183612419565b8c6110d1565b34610491576101cf61129061128161076c61077a6001600160a01b036112373661252b565b92958097999661124b9b959b93929361289f565b506040519b8c977fd72f25930000000000000000000000000000000000000000000000000000000060208a015260248901612a43565b60208082518301019101612adc565b6040519182916020835260208301906125b5565b34610491576060366003190112610491576004356001600160401b038111610491576112d49036906004016124fb565b906112dd612303565b906112e6612319565b906112ef61285f565b506112f86130be565b805190680100000000000000008211610704576080515482608051558083106117b3575b5060808051805251939493907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563906020015b83831061178f575050505060805192608051916001600160a01b038060805195169216956040945b81811061138f576101cf8787878151926101b2846123ab565b855161139b8782612419565b600181526080515b601f198801811061170f57506113ba828486613265565b61016081360312610491578751906113d182612374565b6113da8161232f565b825260208101356020830152888101356001600160401b03811161049157611405903690830161246c565b8983015260608101356001600160401b03811161049157611429903690830161246c565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013560e08301526101008101356101008301526101208101356001600160401b03811161049157611483903690830161246c565b610120830152610140810135906001600160401b038211610491576114aa9136910161246c565b6101408201526114b982612808565b526114c381612808565b5084315a918a3b15610491578851907f1fad948c000000000000000000000000000000000000000000000000000000008252604482018a600484015281518091526064830190602060648260051b860101930191608051905b82821061163e5750505050876024830152818c8180608051940391608051905af19081611625575b5061160357505061159c611556612dae565b6020611563848688613265565b8951809481927fa61935310000000000000000000000000000000000000000000000000000000083528460048401526024830190612cf4565b03818d5afa91821561043e57608051926115cc575b50600192916115c6918951916103f283612390565b01611376565b90915060203d81116115fc575b6115e38183612419565b60208260009281010312610434575051906115c66115b1565b503d6115d9565b956104666001939761046c61161f949b6104665a8b319e613288565b946115c6565b60805161163191612419565b608051610491578b611544565b909192936020989e9798808f9e9c9f6116f5909c9e999c6001946063198b82030187526101406116e361169b6104f48d51956001600160a01b038751168652888701518987015261016081880151918701526101608601906124d6565b6080850151608085015260a085015160a085015260c085015160c085015260e085015160e08501526101008501516101008501526101208501518482036101208601526124d6565b920151906101408184039101526124d6565b9601920192019092919d97969d9c999b9c9a98959a61151c565b60209088979598999293999694965161172781612374565b608051815260805183820152606089820152606080820152608051608082015260805160a082015260805160c082015260805160e0820152608051610100820152606061012082015260606101408201528282860101520197919097969395969492946113a3565b60026020826117a46001949a999a5186613157565b0192019201919095949561134e565b6001600160ff1b03811681036106ec576001600160ff1b03831683036106ec576080516080515260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b818110611833575061131c565b6080518155600181018054600292919061184c90613106565b8061185a575b505001611826565b601f8111600114611873575060805190555b8980611852565b6118949082608051526001601f602060805120920160051c82019101613140565b60808051829052516020812091819055905561186c565b346104915760a0366003190112610491576004356001600160401b038111610491576101206003198236030112610491576118e4612303565b6118ec612319565b906064356001600160401b0381116104915761190c9036906004016124fb565b60843594916001600160401b038611610491576119a3611985946119b9936001600160a01b0398936119438a9536906004016124fb565b9590996040519b8c9a8b9a7fb21b38c8000000000000000000000000000000000000000000000000000000008c5260a060048d015260a48c019060040161291f565b951660248a0152166044880152868303600319016064880152612c8b565b9060031984830301608485015260805195612c8b565b0381608051305af18015610a1d57608051906119e0575b6101cf9060405191829182612630565b503d80608051833e6119f28183612419565b810190602081830312610491578051906001600160401b03821161049157019080601f8301121561049157815191611a298361243a565b91611a376040519384612419565b83835260208084019460071b8301019181831161049157602001935b828510611a67575050506101cf91506119d0565b608085830312610491576020608091604051611a8281612343565b611a8b88612bc2565b8152611a98838901612bc2565b838201526040880151604082015260608801516060820152815201940193611a53565b34610491576060366003190112610491576004356001600160401b03811161049157611b08611af16101cf9236906004016124fb565b611af9612303565b90611b02612319565b92612e97565b6040519182918261269e565b34610491576060366003190112610491576004356001600160401b03811161049157611b449036906004016124fb565b90611b4d612303565b604435906001600160a01b0382168203610491576101cf93611b0893612e97565b346104915760e036600319011261049157611b876122e8565b611b8f612303565b6044356001600160401b03811161049157611bae9036906004016124fb565b90606435926001600160401b038411610491576101206003198536030112610491576101cf94611c7561128194611c4061129097611bea61289f565b50611c2b6040519788947facbe911e00000000000000000000000000000000000000000000000000000000602087015260c0602487015260e48601916129dc565b8381036023190160448501529060040161291f565b6001600160a01b0385166064830152608435608483015260a43560a483015260c43560c483015203601f198101855284612419565b6135f4565b34610491576080366003190112610491576004356001600160401b03811161049157610160600319823603011261049157611cb3612303565b906044356001600160401b03811161049157611cd39036906004016124fb565b90926064356001600160401b03811161049157611cf49036906004016124fb565b6040959195519563ef5bfc3760e01b87526080518780611d1a85858a8960048601612ccd565b0381305afa968715610a1d5760805197612045575b5091611d62611d70926001600160a01b0395946080515060405197889463ef5bfc3760e01b602087015260248601612ccd565b03601f198101855284612419565b1691823b1561049157611ddc92611dc1916040518095819482937fd6383f94000000000000000000000000000000000000000000000000000000008452606060048501526064840190600401612cf4565b306024840152828103600319016044840152608051966124d6565b0391608051905af19081612033575b50611fef57611df8612dae565b600481511115611fab576001600160e01b0319611e1c611e17836137ff565b612dde565b167f220266b6000000000000000000000000000000000000000000000000000000008114611fa2577f462c71b200000000000000000000000000000000000000000000000000000000148015611f99575b611f91578051611e7c9161387c565b8051810160c08282031261049157611e9660608301612e18565b50611ea360808301612e18565b50611eb060a08301612a8d565b9160c0810151916001600160401b03831161049157611ed6926020809201920101612a9a565b9015611f915780602080611eef93518301019101612bd6565b90611efa8151612e2b565b916080515b8251811015610f7d57806001600160a01b03611f1d6001938661282b565b5151166001600160a01b036020611f34848861282b565b510151166040611f44848861282b565b5101516040611f53858861282b565b5101519160405193611f6485612343565b8452602084015260408301526060820152611f7f828761282b565b52611f8a818661282b565b5001611eff565b602081519101fd5b50608051611e6d565b50602081519101fd5b606460405162461bcd60e51b815260206004820152601d60248201527f556e657870656374656420726576657274206461746120666f726d61740000006044820152fd5b606460405162461bcd60e51b815260206004820152601c60248201527f73696d756c61746548616e646c654f70206d75737420726576657274000000006044820152fd5b60805161203f91612419565b82611deb565b6001600160a01b039493919750611d709261206e611d62923d80608051833e610fd28183612419565b98929495509250611d2f565b34610491576101cf61129061128161076c61077a6001600160a01b0361209f3661252b565b9295809799966120b39b959b93929361289f565b506040519b8c977f212eccc60000000000000000000000000000000000000000000000000000000060208a015260248901612a43565b34610491576060366003190112610491576121026122e8565b61210a612303565b6044356001600160401b03811161049157366023820112156104915780600401356121348161243a565b916121426040519384612419565b8183526024602084019260051b820101903682116104915760248101925b8284106122b957505050508051926121778461243a565b936121856040519586612419565b808552612194601f199161243a565b016080515b8181106122a85750506001600160a01b036080519316925b825181101561223f5760019060606121c9828661282b565b516040516121ed81610e54602082019463428557b160e11b8652896024840161283f565b5a608051926080519251918a60805191f115612220575b61220e828861282b565b52612219818761282b565b50016121b1565b503d60405190602081830101604052808252608051602083013e612204565b846040518091602082016020835281518091526040830190602060408260051b860101930191608051905b82821061227957505050500390f35b919360019193955060206122988192603f198a820301865288516124d6565b960192019201859493919261226a565b806060602080938901015201612199565b83356001600160401b038111610491576020916122dd83926024369187010161246c565b815201930192612160565b600435906001600160a01b03821682036122fe57565b600080fd5b602435906001600160a01b03821682036122fe57565b604435906001600160a01b03821682036122fe57565b35906001600160a01b03821682036122fe57565b608081019081106001600160401b0382111761235e57604052565b634e487b7160e01b600052604160045260246000fd5b61016081019081106001600160401b0382111761235e57604052565b604081019081106001600160401b0382111761235e57604052565b606081019081106001600160401b0382111761235e57604052565b60a081019081106001600160401b0382111761235e57604052565b61012081019081106001600160401b0382111761235e57604052565b61010081019081106001600160401b0382111761235e57604052565b90601f801991011681019081106001600160401b0382111761235e57604052565b6001600160401b03811161235e5760051b60200190565b6001600160401b03811161235e57601f01601f191660200190565b81601f820112156122fe5780359061248382612451565b926124916040519485612419565b828452602083830101116122fe57816000926020809301838601378301015290565b60005b8381106124c65750506000910152565b81810151838201526020016124b6565b906020916124ef815180928185528580860191016124b3565b601f01601f1916010190565b9181601f840112156122fe578235916001600160401b0383116122fe576020808501948460051b0101116122fe57565b60e06003198201126122fe576004356001600160a01b03811681036122fe57916024356001600160a01b03811681036122fe57916044356001600160401b0381116122fe578161257d916004016124fb565b92909291606435906001600160401b0382116122fe576101209082900360031901126122fe57600401906084359060a4359060c43590565b908151600281101561261a57815260806040806125ff81602087015160a06020880152805160a08801526020810151151560c08801520151606060e08701526101008601906124d6565b94015180518285015260208101516060850152015191015290565b634e487b7160e01b600052602160045260246000fd5b602060408183019282815284518094520192019060005b8181106126545750505090565b90919260206080600192606087516001600160a01b0381511683526001600160a01b0385820151168584015260408101516040840152015160608201520194019101919091612647565b602081526040608082019280516020840152602081015182840152015191606080830152825180915260a0820191602060a08360051b8301019401926000915b8383106126ed57505050505090565b909192939460208061271c600193609f198682030187526040838b5180518452015191818582015201906124d6565b970193019301919392906126de565b9061010060e061278793805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c0810151151560c08501520151918160e082015201906124d6565b90565b60806003198201126122fe576004356001600160a01b03811681036122fe57916024356001600160a01b03811681036122fe57916044356001600160401b0381116122fe57816127dc916004016124fb565b92909291606435906001600160401b0382116122fe576101209082900360031901126122fe5760040190565b8051156128155760200190565b634e487b7160e01b600052603260045260246000fd5b80518210156128155760209160051b010190565b6040906001600160a01b03612787949316815281602082015201906124d6565b6040519061286c826123ab565b606060408360008152600060208201520152565b6040519061288d826123ab565b60006040838281528260208201520152565b604051906128ac826123ab565b81600081526128b961285f565b602082015260406128c8612880565b910152565b9035601e19823603018112156122fe5701602081359101916001600160401b0382116122fe5781360383136122fe57565b908060209392818452848401376000828201840152601f01601f1916010190565b612787916001600160a01b036129348361232f565b168152602082013560208201526129cd6129c161298861296d61295a60408701876128cd565b61012060408801526101208701916128fe565b61297a60608701876128cd565b9086830360608801526128fe565b6080850135608085015260a085013560a085015260c085013560c08501526129b360e08601866128cd565b9085830360e08701526128fe565b926101008101906128cd565b916101008185039101526128fe565b90602083828152019060208160051b85010193836000915b838310612a045750505050505090565b909192939495601f19828203018652863561011e19843603018112156122fe576020612a356001938683940161291f565b9801960194930191906129f4565b9397969592612a7890612a6a6001600160a01b039360a0989560c0895260c08901916129dc565b90868203602088015261291f565b97166040840152606083015260808201520152565b519081151582036122fe57565b81601f820112156122fe578051612ab081612451565b92612abe6040519485612419565b818452602082840101116122fe5761278791602080850191016124b3565b6020818303126122fe578051906001600160401b0382116122fe57018082039160a083126122fe5760405192612b11846123ab565b825160028110156122fe57845260208301516001600160401b0381116122fe5783016060818403126122fe5760405190612b4a826123ab565b80518252612b5a60208201612a8d565b60208301526040810151936001600160401b0385116122fe57606094612b809201612a9a565b60408201526020850152603f1901126122fe57608060405191612ba2836123ab565b604081015183526060810151602084015201516040820152604082015290565b51906001600160a01b03821682036122fe57565b6020818303126122fe578051906001600160401b0382116122fe570181601f820112156122fe57805190612c098261243a565b92612c176040519485612419565b828452602060608186019402830101918183116122fe57602001925b828410612c41575050505090565b6060848303126122fe576020606091604051612c5c816123ab565b612c6587612bc2565b8152612c72838801612bc2565b8382015260408701516040820152815201930192612c33565b9160209082815201919060005b818110612ca55750505090565b9091926020806001926001600160a01b03612cbf8861232f565b168152019401929101612c98565b9290612ce6906127879593604086526040860191612c8b565b926020818503910152612c8b565b612787916001600160a01b03612d098361232f565b16815260208201356020820152612d9f612d93612d4261296d612d2f60408701876128cd565b61016060408801526101608701916128fe565b6080850135608085015260a085013560a085015260c085013560c085015260e085013560e0850152610100850135610100850152612d846101208601866128cd565b908583036101208701526128fe565b926101408101906128cd565b916101408185039101526128fe565b3d15612dd9573d90612dbf82612451565b91612dcd6040519384612419565b82523d6000602084013e565b606090565b90602082519201516001600160e01b031981169260048110612dfe575050565b6001600160e01b0319929350829060040360031b1b161690565b519065ffffffffffff821682036122fe57565b90612e358261243a565b612e426040519182612419565b8281528092612e53601f199161243a565b019060005b828110612e6457505050565b602090604051612e7381612343565b60008152600083820152600060408201526000606082015282828501015201612e58565b90926001600160a01b0390612eaa61285f565b501690813b156122fe57612f3793604051937fd12e825d000000000000000000000000000000000000000000000000000000008552600093848660048183855af16130a9575b8495506001600160a01b0360405197889586957ffccb5ff60000000000000000000000000000000000000000000000000000000087526060600488015260648701916129dc565b921660248401526044830152038183305af191821561309c578192612f5b57505090565b9091503d8083833e612f6d8183612419565b810190602081830312613090578051906001600160401b0382116130985701916060838303126104345760405192612fa4846123ab565b80518452602081015160208501526040810151906001600160401b038211613090570182601f8201121561309457805191612fde8361243a565b93612fec6040519586612419565b83855260208086019460051b840101928184116130905760208101945b84861061301e57505050505050604082015290565b85516001600160401b03811161308c5782016040818503601f19011261308c576040519061304b82612390565b602081015182526040810151906001600160401b038211613088579161307986602080969481960101612a9a565b83820152815201950194613009565b8680fd5b8480fd5b8280fd5b5080fd5b8380fd5b50604051903d90823e3d90fd5b939094816130b691612419565b928490612ef0565b604051906130cd602083612419565b600080835282815b8281106130e157505050565b6020906040516130f081612390565b60008152606083820152828285010152016130d5565b90600182811c92168015613136575b602083101461312057565b634e487b7160e01b600052602260045260246000fd5b91607f1691613115565b81811061314b575050565b60008155600101613140565b600160209193929384518155019201519182516001600160401b03811161235e576131828254613106565b601f8111613228575b506020601f82116001146131c657819293946000926131bb575b50508160011b916000199060031b1c1916179055565b0151905038806131a5565b601f1982169083600052806000209160005b818110613210575095836001959697106131f7575b505050811b019055565b015160001960f88460031b161c191690553880806131ed565b9192602060018192868b0151815501940192016131d8565b61325590836000526020600020601f840160051c8101916020851061325b575b601f0160051c0190613140565b3861318b565b9091508190613248565b91908110156128155760051b8101359061015e19813603018212156122fe570190565b9190820391821161329557565b634e487b7160e01b600052601160045260246000fd5b9190820180921161329557565b600054906801000000000000000082101561235e576001820180600055821015612815576000805261330e9160011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301613157565b565b6000549061331d8261243a565b9161332b6040519384612419565b8083526000808052907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563602085015b8284106133675750505050565b60405161337381612390565b8254815260405160018401805460009161338c82613106565b808552916001811690811561340557506001146133cd575b505092600292826133bb6020946001970382612419565b8382015281520192019301929061335a565b6000908152602081209092505b8183106133ef575050810160200182826133a4565b60018160209254838688010152019201916133da565b60ff191660208087019190915292151560051b850190920192508491508390506133a4565b60405190613437826123fd565b606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b916127879391613485916040855260408501916129dc565b91602081840391015261291f565b6020818303126122fe578051906001600160401b0382116122fe5701610100818303126122fe57604051916134c7836123fd565b815183526020820151602084015260408201516040840152606082015160608401526080820151608084015260a082015160a084015261350960c08301612a8d565b60c084015260e08201516001600160401b0381116122fe5761352b9201612a9a565b60e082015290565b94919260c096999897946001600160a01b0361357695816135689516895216602088015260e0604088015260e08701916129dc565b90848203606086015261291f565b95608083015260a08201520152565b91908260409103126122fe5760405161359d81612390565b6020808294805184520151910152565b91908110156128155760051b0190565b356001600160a01b03811681036122fe5790565b91908110156128155760051b8101359061011e19813603018212156122fe570190565b60405163428557b160e11b6020820190815260009485948594859261362291869161076c916024840161283f565b5a935193f1613795573d60405191602082840101604052818352602083013e600481511061372b5763428557b160e11b6001600160e01b0319613667611e17846137ff565b16146136c15780516136789161387c565b805181016040828203126122fe5761369260208301612a8d565b916040810151916001600160401b0383116122fe576136b8926020809201920101612a9a565b9015611f915790565b608460405162461bcd60e51b815260206004820152603d60248201527f44656c6567617465416e6452657665727420646964206e6f742072657665727460448201527f20776974682044656c6567617465416e64526576657274206572726f720000006064820152fd5b608460405162461bcd60e51b815260206004820152602a60248201527f44656c6567617465416e6452657665727420726576657274206461746120697360448201527f20746f6f2073686f7274000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602c60248201527f44656c6567617465416e6452657665727420646964206e6f742072657665727460448201527f20617320657870656374656400000000000000000000000000000000000000006064820152fd5b9060009160049060609381516004811115613874575b801561386c575b5082811061382957505050565b6040519450918290039101601f8201601f19165b8181015185820152601f1901908115613856579061383d565b5050604081840160006020820152016040528252565b90503861381c565b925082613815565b91906004926060938151838111156138a5575b600481111561386c575082811061382957505050565b92508261388f56fea264697066735822122071ced1903ff38b4a91a933cab9ad45345d238a5f16de092c27c281e92b4f753c64736f6c634300081c0033","sourceMap":"1285:22343:37:-:0;;;;;;;1702:27;;;;1285:22343;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60a0604052600436101561001257600080fd5b60006080526080513560e01c8063141eb033146120e95780632e5a0a931461207a578063685f602614611c7a5780637134990314611b6e57806382e542ed14611b14578063861d9d5914611abb57806390d81dfb146118ab578063959c4cb7146112a45780639f2d378914611212578063a4968eab14610fee578063b21b38c814610d55578063de040de114610a41578063ef5bfc37146107a4578063f11430431461071c5763fccb5ff6146100c757600080fd5b34610491576060366003190112610491576004356001600160401b038111610491576100f79036906004016124fb565b90610100612303565b90610109612319565b9061011261285f565b5061011b6130be565b805190680100000000000000008211610704576080515482608051558083106105f4575b5060808051805251939493907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563906020015b8383106105d0575050505060805192608051916001600160a01b038060805195169216956040945b8181106101d3576101cf8787878151926101b2846123ab565b835260208301526101c1613310565b81830152519182918261269e565b0390f35b85516101df8782612419565b600181526080515b601f198801811061056257506101fe8284866135d1565b6101208136031261049157875190610215826123e1565b61021e8161232f565b825260208101356020830152888101356001600160401b03811161049157610249903690830161246c565b8983015260608101356001600160401b0381116104915761026d903690830161246c565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e08101356001600160401b038111610491576102b0903690830161246c565b60e0830152610100810135906001600160401b038211610491576102d69136910161246c565b6101008201526102e582612808565b526102ef81612808565b5084315a918a3b15610491578851907f765e827f000000000000000000000000000000000000000000000000000000008252604482018a600484015281518091526064830190602060648260051b860101930191608051905b8282106104975750505050876024830152818c8180608051940391608051905af19081610478575b5061044a5750506103c8610382612dae565b602061038f8486886135d1565b8951809481927f22cdde4c000000000000000000000000000000000000000000000000000000008352846004840152602483019061291f565b03818d5afa91821561043e5760805192610404575b50600192916103fe918951916103f283612390565b825260208201526132b8565b01610199565b90915060203d8111610437575b61041b8183612419565b60208260009281010312610434575051906103fe6103dd565b80fd5b503d610411565b88513d608051823e3d90fd5b956104666001939761046c610472949b6104665a8b319e613288565b906132ab565b9a613288565b946103fe565b60805161048491612419565b6080516104915738610370565b60805180fd5b909192936020989e9798808f9e9c9f610548909c9e999c6001946063198b82030187526101006105366105066104f48d51956001600160a01b038751168652888701518987015261012081880151918701526101208601906124d6565b606086015185820360608701526124d6565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e08601526124d6565b920151906101008184039101526124d6565b9601920192019092919d97969d9c999b9c9a98959a610348565b60209088979598999293999694965161057a816123e1565b608051815260805183820152606089820152606080820152608051608082015260805160a082015260805160c0820152606060e082015260606101008201528282860101520197919097969395969492946101e7565b60026020826105e56001949a999a5186613157565b01920192019190959495610171565b6001600160ff1b03811681036106ec576001600160ff1b03831683036106ec576080516080515260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b818110610674575061013f565b6080518155600181018054600292919061068d90613106565b8061069b575b505001610667565b601f81116001146106b4575060805190555b3880610693565b6106d59082608051526001601f602060805120920160051c82019101613140565b6080805182905251602081209181905590556106ad565b634e487b7160e01b6080515260116004526024608051fd5b634e487b7160e01b6080515260416004526024608051fd5b34610491576101cf61079061078161077a61076c6001600160a01b036107413661278a565b61074f97939496919761342a565b5060405197889363af32494360e01b60208601526024850161346d565b03601f198101865285612419565b16906135f4565b60208082518301019101613493565b60405191829160208352602083019061272b565b34610491576040366003190112610491576004356001600160401b038111610491576107d49036906004016124fb565b906024356001600160401b038111610491576107f49036906004016124fb565b838102939192918015818604831417156106ec576108118561243a565b9461081f6040519687612419565b80865261082e601f199161243a565b016080515b818110610a2a57505060805190815b8181106108b957866040518091602082016020835281518091526020604084019201906080515b818110610877575050500390f35b9193509160206060600192604087516001600160a01b0381511683526001600160a01b0385820151168584015201516040820152019401910191849392610869565b6108cc6108c78284886135ad565b6135bd565b608051906001600160a01b038116915b8681106108ee57505050600101610842565b86898273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b0361091c6108c78487876135ad565b1603610988575050508131905b6109376108c7828a8d6135ad565b916001600160a01b036040519361094d856123ab565b86855216602084015260408301528660001981146106ec578760019361097a8e9a8661098195019b61282b565b528c61282b565b50016108dc565b6109a26108c76001600160a01b03926024956020956135ad565b16604051928380927f70a082310000000000000000000000000000000000000000000000000000000082528860048301525afa908115610a1d57608051916109ec575b5090610929565b90506020813d8211610a15575b81610a0660209383612419565b8101031261049157518b6109e5565b3d91506109f9565b6040513d608051823e3d90fd5b602090610a35612880565b82828a01015201610833565b3461049157610b5e61077a61076c6001600160a01b03610a603661278a565b604097939496919751610a72816123c6565b604051610a7e816123c6565b6080518152608051602082015260805160408201526080516060820152606060808201528152604051610ab081612390565b60008152600060208201526020820152604051610acc81612390565b60008152600060208201526040820152604051610ae881612390565b60008152600060208201526060820152608060405191610b0783612390565b81518352604051610b1781612390565b6000815260006020820152602084015201526040519788937faec321fb0000000000000000000000000000000000000000000000000000000060208601526024850161346d565b805181016020810191602081830312610491576020810151906001600160401b0382116104915701808203601f1981019290610140136104915760405190610ba5826123c6565b60208301516001600160401b038111610491578301602081019160a0919003126104915760405190610bd6826123c6565b805182526020810151602083015260408101516040830152606081015160608301526080810151906001600160401b03821161049157610c1891879101612a9a565b60808201528152610c2c8460408401613585565b9160208201928352610c418560808301613585565b90604083019182526060610c588760c08401613585565b8482019081529560bf19011261049157602080958180959481610cff60808298610ca46101409e6101206040519b610c8f8d612390565b610c9c6101008201612bc2565b8d5201613585565b848a01528181019889526040519d848f9e928f938452519201528c61016082519101528c610180858301519101528c6101a060408301519101528c6101c06060830151910152015160a06101e08d01526102008c01906124d6565b9851805160408c0152015160608a015251805160808a0152015160a088015251805160c0880152015160e0860152516001600160a01b038151166101008601520151805161012085015201516101408301520390f35b346104915760a0366003190112610491576004356001600160401b03811161049157610120600319823603011261049157610d8e612303565b610d96612319565b906064356001600160401b03811161049157610db69036906004016124fb565b6084949194356001600160401b03811161049157610dd89036906004016124fb565b6040969196519663ef5bfc3760e01b88526080518880610dfe8585898960048601612ccd565b0381305afa978815610a1d5760805198610f97575b50610ea29461076c610eba9895610e626001600160a01b0396610e546107819b9761077a9760405195869463ef5bfc3760e01b602087015260248601612ccd565b03601f198101835282612419565b6040519788937f7da0c46200000000000000000000000000000000000000000000000000000000602086015260606024860152608485019060040161291f565b306044850152838103602319016064850152906124d6565b60c081015115610f8b5760e0610edb91015160208082518301019101612bd6565b90610ee68151612e2b565b916080515b8251811015610f7d57806001600160a01b03610f096001938661282b565b5151166001600160a01b036020610f20848861282b565b510151166040610f30848861282b565b5101516040610f3f858861282b565b5101519160405193610f5085612343565b8452602084015260408301526060820152610f6b828761282b565b52610f76818661282b565b5001610eeb565b604051806101cf8682612630565b60e00151602081519101fd5b61077a9198509461076c610eba9895610e626001600160a01b0396610e546107819b97610fda610ea29c3d80608051833e610fd28183612419565b810190612bd6565b9e9750979b50509650509598505094610e13565b3461049157610ffc3661252b565b604097939592979691965196611011886123ab565b61101961342a565b8852602088019861102861289f565b8a52604089019761103761289f565b8952611074610781826110648b610e5460405193849263af32494360e01b60208501528d6024850161346d565b6001600160a01b0388168a6135f4565b8a52878787876110b98888888860405198899788977f2e5a0a930000000000000000000000000000000000000000000000000000000089526080519a60048a01613533565b0381608051305af1908115610a1d57608051916111f6575b508b5260e0810135601e19823603018112156104915781018035906001600160401b038211610491576020823603910113610491576014111561115d575b6111378a6101cf8b61114a8f604051958695602087525160606020880152608087019061272b565b9051858203601f190160408701526125b5565b9051838203601f190160608501526125b5565b9061119f939291604099989951998a9788977f9f2d37890000000000000000000000000000000000000000000000000000000089526080519a60048a01613533565b0381608051305af1918215610a1d57611137946101cf9361114a92608051916111d2575b5083529482938780808061110f565b6111f091503d80608051833e6111e88183612419565b810190612adc565b876111c3565b61120c91503d80608051833e6111e88183612419565b8c6110d1565b34610491576101cf61129061128161076c61077a6001600160a01b036112373661252b565b92958097999661124b9b959b93929361289f565b506040519b8c977fd72f25930000000000000000000000000000000000000000000000000000000060208a015260248901612a43565b60208082518301019101612adc565b6040519182916020835260208301906125b5565b34610491576060366003190112610491576004356001600160401b038111610491576112d49036906004016124fb565b906112dd612303565b906112e6612319565b906112ef61285f565b506112f86130be565b805190680100000000000000008211610704576080515482608051558083106117b3575b5060808051805251939493907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563906020015b83831061178f575050505060805192608051916001600160a01b038060805195169216956040945b81811061138f576101cf8787878151926101b2846123ab565b855161139b8782612419565b600181526080515b601f198801811061170f57506113ba828486613265565b61016081360312610491578751906113d182612374565b6113da8161232f565b825260208101356020830152888101356001600160401b03811161049157611405903690830161246c565b8983015260608101356001600160401b03811161049157611429903690830161246c565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013560e08301526101008101356101008301526101208101356001600160401b03811161049157611483903690830161246c565b610120830152610140810135906001600160401b038211610491576114aa9136910161246c565b6101408201526114b982612808565b526114c381612808565b5084315a918a3b15610491578851907f1fad948c000000000000000000000000000000000000000000000000000000008252604482018a600484015281518091526064830190602060648260051b860101930191608051905b82821061163e5750505050876024830152818c8180608051940391608051905af19081611625575b5061160357505061159c611556612dae565b6020611563848688613265565b8951809481927fa61935310000000000000000000000000000000000000000000000000000000083528460048401526024830190612cf4565b03818d5afa91821561043e57608051926115cc575b50600192916115c6918951916103f283612390565b01611376565b90915060203d81116115fc575b6115e38183612419565b60208260009281010312610434575051906115c66115b1565b503d6115d9565b956104666001939761046c61161f949b6104665a8b319e613288565b946115c6565b60805161163191612419565b608051610491578b611544565b909192936020989e9798808f9e9c9f6116f5909c9e999c6001946063198b82030187526101406116e361169b6104f48d51956001600160a01b038751168652888701518987015261016081880151918701526101608601906124d6565b6080850151608085015260a085015160a085015260c085015160c085015260e085015160e08501526101008501516101008501526101208501518482036101208601526124d6565b920151906101408184039101526124d6565b9601920192019092919d97969d9c999b9c9a98959a61151c565b60209088979598999293999694965161172781612374565b608051815260805183820152606089820152606080820152608051608082015260805160a082015260805160c082015260805160e0820152608051610100820152606061012082015260606101408201528282860101520197919097969395969492946113a3565b60026020826117a46001949a999a5186613157565b0192019201919095949561134e565b6001600160ff1b03811681036106ec576001600160ff1b03831683036106ec576080516080515260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b818110611833575061131c565b6080518155600181018054600292919061184c90613106565b8061185a575b505001611826565b601f8111600114611873575060805190555b8980611852565b6118949082608051526001601f602060805120920160051c82019101613140565b60808051829052516020812091819055905561186c565b346104915760a0366003190112610491576004356001600160401b038111610491576101206003198236030112610491576118e4612303565b6118ec612319565b906064356001600160401b0381116104915761190c9036906004016124fb565b60843594916001600160401b038611610491576119a3611985946119b9936001600160a01b0398936119438a9536906004016124fb565b9590996040519b8c9a8b9a7fb21b38c8000000000000000000000000000000000000000000000000000000008c5260a060048d015260a48c019060040161291f565b951660248a0152166044880152868303600319016064880152612c8b565b9060031984830301608485015260805195612c8b565b0381608051305af18015610a1d57608051906119e0575b6101cf9060405191829182612630565b503d80608051833e6119f28183612419565b810190602081830312610491578051906001600160401b03821161049157019080601f8301121561049157815191611a298361243a565b91611a376040519384612419565b83835260208084019460071b8301019181831161049157602001935b828510611a67575050506101cf91506119d0565b608085830312610491576020608091604051611a8281612343565b611a8b88612bc2565b8152611a98838901612bc2565b838201526040880151604082015260608801516060820152815201940193611a53565b34610491576060366003190112610491576004356001600160401b03811161049157611b08611af16101cf9236906004016124fb565b611af9612303565b90611b02612319565b92612e97565b6040519182918261269e565b34610491576060366003190112610491576004356001600160401b03811161049157611b449036906004016124fb565b90611b4d612303565b604435906001600160a01b0382168203610491576101cf93611b0893612e97565b346104915760e036600319011261049157611b876122e8565b611b8f612303565b6044356001600160401b03811161049157611bae9036906004016124fb565b90606435926001600160401b038411610491576101206003198536030112610491576101cf94611c7561128194611c4061129097611bea61289f565b50611c2b6040519788947facbe911e00000000000000000000000000000000000000000000000000000000602087015260c0602487015260e48601916129dc565b8381036023190160448501529060040161291f565b6001600160a01b0385166064830152608435608483015260a43560a483015260c43560c483015203601f198101855284612419565b6135f4565b34610491576080366003190112610491576004356001600160401b03811161049157610160600319823603011261049157611cb3612303565b906044356001600160401b03811161049157611cd39036906004016124fb565b90926064356001600160401b03811161049157611cf49036906004016124fb565b6040959195519563ef5bfc3760e01b87526080518780611d1a85858a8960048601612ccd565b0381305afa968715610a1d5760805197612045575b5091611d62611d70926001600160a01b0395946080515060405197889463ef5bfc3760e01b602087015260248601612ccd565b03601f198101855284612419565b1691823b1561049157611ddc92611dc1916040518095819482937fd6383f94000000000000000000000000000000000000000000000000000000008452606060048501526064840190600401612cf4565b306024840152828103600319016044840152608051966124d6565b0391608051905af19081612033575b50611fef57611df8612dae565b600481511115611fab576001600160e01b0319611e1c611e17836137ff565b612dde565b167f220266b6000000000000000000000000000000000000000000000000000000008114611fa2577f462c71b200000000000000000000000000000000000000000000000000000000148015611f99575b611f91578051611e7c9161387c565b8051810160c08282031261049157611e9660608301612e18565b50611ea360808301612e18565b50611eb060a08301612a8d565b9160c0810151916001600160401b03831161049157611ed6926020809201920101612a9a565b9015611f915780602080611eef93518301019101612bd6565b90611efa8151612e2b565b916080515b8251811015610f7d57806001600160a01b03611f1d6001938661282b565b5151166001600160a01b036020611f34848861282b565b510151166040611f44848861282b565b5101516040611f53858861282b565b5101519160405193611f6485612343565b8452602084015260408301526060820152611f7f828761282b565b52611f8a818661282b565b5001611eff565b602081519101fd5b50608051611e6d565b50602081519101fd5b606460405162461bcd60e51b815260206004820152601d60248201527f556e657870656374656420726576657274206461746120666f726d61740000006044820152fd5b606460405162461bcd60e51b815260206004820152601c60248201527f73696d756c61746548616e646c654f70206d75737420726576657274000000006044820152fd5b60805161203f91612419565b82611deb565b6001600160a01b039493919750611d709261206e611d62923d80608051833e610fd28183612419565b98929495509250611d2f565b34610491576101cf61129061128161076c61077a6001600160a01b0361209f3661252b565b9295809799966120b39b959b93929361289f565b506040519b8c977f212eccc60000000000000000000000000000000000000000000000000000000060208a015260248901612a43565b34610491576060366003190112610491576121026122e8565b61210a612303565b6044356001600160401b03811161049157366023820112156104915780600401356121348161243a565b916121426040519384612419565b8183526024602084019260051b820101903682116104915760248101925b8284106122b957505050508051926121778461243a565b936121856040519586612419565b808552612194601f199161243a565b016080515b8181106122a85750506001600160a01b036080519316925b825181101561223f5760019060606121c9828661282b565b516040516121ed81610e54602082019463428557b160e11b8652896024840161283f565b5a608051926080519251918a60805191f115612220575b61220e828861282b565b52612219818761282b565b50016121b1565b503d60405190602081830101604052808252608051602083013e612204565b846040518091602082016020835281518091526040830190602060408260051b860101930191608051905b82821061227957505050500390f35b919360019193955060206122988192603f198a820301865288516124d6565b960192019201859493919261226a565b806060602080938901015201612199565b83356001600160401b038111610491576020916122dd83926024369187010161246c565b815201930192612160565b600435906001600160a01b03821682036122fe57565b600080fd5b602435906001600160a01b03821682036122fe57565b604435906001600160a01b03821682036122fe57565b35906001600160a01b03821682036122fe57565b608081019081106001600160401b0382111761235e57604052565b634e487b7160e01b600052604160045260246000fd5b61016081019081106001600160401b0382111761235e57604052565b604081019081106001600160401b0382111761235e57604052565b606081019081106001600160401b0382111761235e57604052565b60a081019081106001600160401b0382111761235e57604052565b61012081019081106001600160401b0382111761235e57604052565b61010081019081106001600160401b0382111761235e57604052565b90601f801991011681019081106001600160401b0382111761235e57604052565b6001600160401b03811161235e5760051b60200190565b6001600160401b03811161235e57601f01601f191660200190565b81601f820112156122fe5780359061248382612451565b926124916040519485612419565b828452602083830101116122fe57816000926020809301838601378301015290565b60005b8381106124c65750506000910152565b81810151838201526020016124b6565b906020916124ef815180928185528580860191016124b3565b601f01601f1916010190565b9181601f840112156122fe578235916001600160401b0383116122fe576020808501948460051b0101116122fe57565b60e06003198201126122fe576004356001600160a01b03811681036122fe57916024356001600160a01b03811681036122fe57916044356001600160401b0381116122fe578161257d916004016124fb565b92909291606435906001600160401b0382116122fe576101209082900360031901126122fe57600401906084359060a4359060c43590565b908151600281101561261a57815260806040806125ff81602087015160a06020880152805160a08801526020810151151560c08801520151606060e08701526101008601906124d6565b94015180518285015260208101516060850152015191015290565b634e487b7160e01b600052602160045260246000fd5b602060408183019282815284518094520192019060005b8181106126545750505090565b90919260206080600192606087516001600160a01b0381511683526001600160a01b0385820151168584015260408101516040840152015160608201520194019101919091612647565b602081526040608082019280516020840152602081015182840152015191606080830152825180915260a0820191602060a08360051b8301019401926000915b8383106126ed57505050505090565b909192939460208061271c600193609f198682030187526040838b5180518452015191818582015201906124d6565b970193019301919392906126de565b9061010060e061278793805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c0810151151560c08501520151918160e082015201906124d6565b90565b60806003198201126122fe576004356001600160a01b03811681036122fe57916024356001600160a01b03811681036122fe57916044356001600160401b0381116122fe57816127dc916004016124fb565b92909291606435906001600160401b0382116122fe576101209082900360031901126122fe5760040190565b8051156128155760200190565b634e487b7160e01b600052603260045260246000fd5b80518210156128155760209160051b010190565b6040906001600160a01b03612787949316815281602082015201906124d6565b6040519061286c826123ab565b606060408360008152600060208201520152565b6040519061288d826123ab565b60006040838281528260208201520152565b604051906128ac826123ab565b81600081526128b961285f565b602082015260406128c8612880565b910152565b9035601e19823603018112156122fe5701602081359101916001600160401b0382116122fe5781360383136122fe57565b908060209392818452848401376000828201840152601f01601f1916010190565b612787916001600160a01b036129348361232f565b168152602082013560208201526129cd6129c161298861296d61295a60408701876128cd565b61012060408801526101208701916128fe565b61297a60608701876128cd565b9086830360608801526128fe565b6080850135608085015260a085013560a085015260c085013560c08501526129b360e08601866128cd565b9085830360e08701526128fe565b926101008101906128cd565b916101008185039101526128fe565b90602083828152019060208160051b85010193836000915b838310612a045750505050505090565b909192939495601f19828203018652863561011e19843603018112156122fe576020612a356001938683940161291f565b9801960194930191906129f4565b9397969592612a7890612a6a6001600160a01b039360a0989560c0895260c08901916129dc565b90868203602088015261291f565b97166040840152606083015260808201520152565b519081151582036122fe57565b81601f820112156122fe578051612ab081612451565b92612abe6040519485612419565b818452602082840101116122fe5761278791602080850191016124b3565b6020818303126122fe578051906001600160401b0382116122fe57018082039160a083126122fe5760405192612b11846123ab565b825160028110156122fe57845260208301516001600160401b0381116122fe5783016060818403126122fe5760405190612b4a826123ab565b80518252612b5a60208201612a8d565b60208301526040810151936001600160401b0385116122fe57606094612b809201612a9a565b60408201526020850152603f1901126122fe57608060405191612ba2836123ab565b604081015183526060810151602084015201516040820152604082015290565b51906001600160a01b03821682036122fe57565b6020818303126122fe578051906001600160401b0382116122fe570181601f820112156122fe57805190612c098261243a565b92612c176040519485612419565b828452602060608186019402830101918183116122fe57602001925b828410612c41575050505090565b6060848303126122fe576020606091604051612c5c816123ab565b612c6587612bc2565b8152612c72838801612bc2565b8382015260408701516040820152815201930192612c33565b9160209082815201919060005b818110612ca55750505090565b9091926020806001926001600160a01b03612cbf8861232f565b168152019401929101612c98565b9290612ce6906127879593604086526040860191612c8b565b926020818503910152612c8b565b612787916001600160a01b03612d098361232f565b16815260208201356020820152612d9f612d93612d4261296d612d2f60408701876128cd565b61016060408801526101608701916128fe565b6080850135608085015260a085013560a085015260c085013560c085015260e085013560e0850152610100850135610100850152612d846101208601866128cd565b908583036101208701526128fe565b926101408101906128cd565b916101408185039101526128fe565b3d15612dd9573d90612dbf82612451565b91612dcd6040519384612419565b82523d6000602084013e565b606090565b90602082519201516001600160e01b031981169260048110612dfe575050565b6001600160e01b0319929350829060040360031b1b161690565b519065ffffffffffff821682036122fe57565b90612e358261243a565b612e426040519182612419565b8281528092612e53601f199161243a565b019060005b828110612e6457505050565b602090604051612e7381612343565b60008152600083820152600060408201526000606082015282828501015201612e58565b90926001600160a01b0390612eaa61285f565b501690813b156122fe57612f3793604051937fd12e825d000000000000000000000000000000000000000000000000000000008552600093848660048183855af16130a9575b8495506001600160a01b0360405197889586957ffccb5ff60000000000000000000000000000000000000000000000000000000087526060600488015260648701916129dc565b921660248401526044830152038183305af191821561309c578192612f5b57505090565b9091503d8083833e612f6d8183612419565b810190602081830312613090578051906001600160401b0382116130985701916060838303126104345760405192612fa4846123ab565b80518452602081015160208501526040810151906001600160401b038211613090570182601f8201121561309457805191612fde8361243a565b93612fec6040519586612419565b83855260208086019460051b840101928184116130905760208101945b84861061301e57505050505050604082015290565b85516001600160401b03811161308c5782016040818503601f19011261308c576040519061304b82612390565b602081015182526040810151906001600160401b038211613088579161307986602080969481960101612a9a565b83820152815201950194613009565b8680fd5b8480fd5b8280fd5b5080fd5b8380fd5b50604051903d90823e3d90fd5b939094816130b691612419565b928490612ef0565b604051906130cd602083612419565b600080835282815b8281106130e157505050565b6020906040516130f081612390565b60008152606083820152828285010152016130d5565b90600182811c92168015613136575b602083101461312057565b634e487b7160e01b600052602260045260246000fd5b91607f1691613115565b81811061314b575050565b60008155600101613140565b600160209193929384518155019201519182516001600160401b03811161235e576131828254613106565b601f8111613228575b506020601f82116001146131c657819293946000926131bb575b50508160011b916000199060031b1c1916179055565b0151905038806131a5565b601f1982169083600052806000209160005b818110613210575095836001959697106131f7575b505050811b019055565b015160001960f88460031b161c191690553880806131ed565b9192602060018192868b0151815501940192016131d8565b61325590836000526020600020601f840160051c8101916020851061325b575b601f0160051c0190613140565b3861318b565b9091508190613248565b91908110156128155760051b8101359061015e19813603018212156122fe570190565b9190820391821161329557565b634e487b7160e01b600052601160045260246000fd5b9190820180921161329557565b600054906801000000000000000082101561235e576001820180600055821015612815576000805261330e9160011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301613157565b565b6000549061331d8261243a565b9161332b6040519384612419565b8083526000808052907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563602085015b8284106133675750505050565b60405161337381612390565b8254815260405160018401805460009161338c82613106565b808552916001811690811561340557506001146133cd575b505092600292826133bb6020946001970382612419565b8382015281520192019301929061335a565b6000908152602081209092505b8183106133ef575050810160200182826133a4565b60018160209254838688010152019201916133da565b60ff191660208087019190915292151560051b850190920192508491508390506133a4565b60405190613437826123fd565b606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b916127879391613485916040855260408501916129dc565b91602081840391015261291f565b6020818303126122fe578051906001600160401b0382116122fe5701610100818303126122fe57604051916134c7836123fd565b815183526020820151602084015260408201516040840152606082015160608401526080820151608084015260a082015160a084015261350960c08301612a8d565b60c084015260e08201516001600160401b0381116122fe5761352b9201612a9a565b60e082015290565b94919260c096999897946001600160a01b0361357695816135689516895216602088015260e0604088015260e08701916129dc565b90848203606086015261291f565b95608083015260a08201520152565b91908260409103126122fe5760405161359d81612390565b6020808294805184520151910152565b91908110156128155760051b0190565b356001600160a01b03811681036122fe5790565b91908110156128155760051b8101359061011e19813603018212156122fe570190565b60405163428557b160e11b6020820190815260009485948594859261362291869161076c916024840161283f565b5a935193f1613795573d60405191602082840101604052818352602083013e600481511061372b5763428557b160e11b6001600160e01b0319613667611e17846137ff565b16146136c15780516136789161387c565b805181016040828203126122fe5761369260208301612a8d565b916040810151916001600160401b0383116122fe576136b8926020809201920101612a9a565b9015611f915790565b608460405162461bcd60e51b815260206004820152603d60248201527f44656c6567617465416e6452657665727420646964206e6f742072657665727460448201527f20776974682044656c6567617465416e64526576657274206572726f720000006064820152fd5b608460405162461bcd60e51b815260206004820152602a60248201527f44656c6567617465416e6452657665727420726576657274206461746120697360448201527f20746f6f2073686f7274000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602c60248201527f44656c6567617465416e6452657665727420646964206e6f742072657665727460448201527f20617320657870656374656400000000000000000000000000000000000000006064820152fd5b9060009160049060609381516004811115613874575b801561386c575b5082811061382957505050565b6040519450918290039101601f8201601f19165b8181015185820152601f1901908115613856579061383d565b5050604081840160006020820152016040528252565b90503861381c565b925082613815565b91906004926060938151838111156138a5575b600481111561386c575082811061382957505050565b92508261388f56fea264697066735822122071ced1903ff38b4a91a933cab9ad45345d238a5f16de092c27c281e92b4f753c64736f6c634300081c0033","sourceMap":"1285:22343:37:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1285:22343:37;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;13515:23;;:::i;:::-;1285:22343;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;13731:1035;13751:18;;;;;;1285:22343;;;;;;;;;;:::i;:::-;;;;14783:155;;1285:22343;;;:::i;:::-;14783:155;;;1285:22343;;;;;;;:::i;:::-;;;;13771:3;1285:22343;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;1285:22343:37;;;;;;13971:10;;;;;;:::i;:::-;1285:22343;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;:::i;:::-;;;;;13952:29;;;:::i;:::-;;;;;:::i;:::-;;14020:19;;14073:9;14101:48;;;;;;1285:22343;;14101:48;1285:22343;14101:48;;1285:22343;;;14101:48;1285:22343;14101:48;;1285:22343;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14101:48;;1285:22343;;;14101:48;;;;;;;1285:22343;-1:-1:-1;14097:659:37;;14454:302;;1285:22343;14454:302;;:::i;:::-;1285:22343;14622:10;;;;;:::i;:::-;1285:22343;;14597:36;;;;1285:22343;14597:36;;;1285:22343;14597:36;;1285:22343;;;;;;:::i;:::-;14597:36;;;;;;;;;;1285:22343;;14597:36;;;14097:659;1285:22343;;;;14651:90;1285:22343;;;;;;;:::i;:::-;;;;14672:68;;1285:22343;14651:90;:::i;:::-;1285:22343;13736:13;;14597:36;;;;1285:22343;14597:36;;;;;;;;;;:::i;:::-;1285:22343;14597:36;-1:-1:-1;14597:36:37;;;1285:22343;;;;-1:-1:-1;1285:22343:37;;14651:90;14597:36;;1285:22343;;;14597:36;;;;;;1285:22343;;;;;;;;;;14097:659;14187:9;14410:28;1285:22343;14187:9;;14334:36;14388:50;14187:9;;14350:20;14187:9;14237:19;;14350:20;;:::i;:::-;14334:36;;:::i;:::-;14410:28;;:::i;14388:50::-;14097:659;;;14101:48;1285:22343;;14101:48;;;:::i;:::-;1285:22343;;;;14101:48;;;1285:22343;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1285:22343:37;;;;;;;;;-1:-1:-1;1285:22343:37;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1285:22343:37;;;;;;;;;;;-1:-1:-1;;;1285:22343:37;;;;;;;;;;;;;;;10684:64;10608:59;10511:61;;-1:-1:-1;;;;;1285:22343:37;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;10511:61;;;-1:-1:-1;;;10511:61:37;;;;;;;;:::i;:::-;;1285:22343;;10511:61;;;;;;:::i;:::-;1285:22343;10608:59;;:::i;:::-;10511:61;1285:22343;;;10684:64;;;;;;:::i;:::-;1285:22343;;;;;10511:61;1285:22343;;10511:61;1285:22343;;;;:::i;:::-;;;;;;-1:-1:-1;;1285:22343:37;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;1285:22343:37;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;1285:22343:37;;;;17961:20;;;;;;1285:22343;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;;;;17983:3;18017:12;;;;;;:::i;:::-;;:::i;:::-;1285:22343;;;-1:-1:-1;;;;;1285:22343:37;;18044:427;18064:17;;;;;;17983:3;;;1285:22343;;17946:13;;18083:3;18142:9;;;18163:42;-1:-1:-1;;;;;18142:9:37;;;;;;:::i;:::-;1285:22343;18142:64;18163:42;;18239:12;;;;;18138:220;;18429:9;;;;;;:::i;:::-;1285:22343;-1:-1:-1;;;;;1285:22343:37;;;;;;:::i;:::-;;;;;;18396:60;;1285:22343;;18396:60;;1285:22343;18385:7;-1:-1:-1;;1285:22343:37;;;;;;;18376:80;1285:22343;;;18376:80;1285:22343;;18376:80;;:::i;:::-;;;;:::i;:::-;;1285:22343;18049:13;;18138:220;18313:9;;-1:-1:-1;;;;;18313:9:37;1285:22343;18313:9;1285:22343;18313:9;;:::i;:::-;1285:22343;;;18307:32;;;;1285:22343;18307:32;;;1285:22343;18307:32;;1285:22343;18307:32;;;;;;;1285:22343;;18307:32;;;18138:220;18298:41;18138:220;;;18307:32;;;1285:22343;18307:32;;;;;;;;;1285:22343;18307:32;;;:::i;:::-;;;1285:22343;;;;;18307:32;;;;;;-1:-1:-1;18307:32:37;;;1285:22343;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;9921:59;9824:61;;-1:-1:-1;;;;;1285:22343:37;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1285:22343:37;;-1:-1:-1;1285:22343:37;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1285:22343:37;;-1:-1:-1;1285:22343:37;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1285:22343:37;;-1:-1:-1;1285:22343:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;-1:-1:-1;1285:22343:37;;-1:-1:-1;1285:22343:37;;;;;;;;;;;;9824:61;;;9744:50;1285:22343;9824:61;;;;;;;:::i;9921:59::-;1285:22343;;9997:65;;1285:22343;9997:65;;1285:22343;;;;;;;;;9997:65;;1285:22343;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;-1:-1:-1;;1285:22343:37;;;;;-1:-1:-1;1285:22343:37;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1285:22343:37;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;:::i;:::-;;;;;;19382:35;-1:-1:-1;;;19382:35:37;;1285:22343;;19382:35;;;;;;;1285:22343;19382:35;;;:::i;:::-;;:4;;:35;;;;;;;1285:22343;;19382:35;;;1285:22343;;;;;20101:60;1285:22343;;19704:68;-1:-1:-1;;;;;1285:22343:37;19704:68;19887:89;1285:22343;;19553:229;1285:22343;;;19704:68;;;-1:-1:-1;;;1285:22343:37;19704:68;;;1285:22343;19704:68;;;:::i;:::-;;1285:22343;;19704:68;;;;;;:::i;:::-;1285:22343;;19553:229;;;19589:54;1285:22343;19553:229;;;1285:22343;;19553:229;;1285:22343;;;;;;;;:::i;:::-;19382:4;1285:22343;;;;;;;-1:-1:-1;;1285:22343:37;;;;;19382:4;1285:22343;:::i;20101:60::-;20219:29;;;1285:22343;;20214:110;;1285:22343;20425:58;20436:28;;;1285:22343;;;;20425:58;;;;;;:::i;:::-;1285:22343;20563:40;1285:22343;;20563:40;:::i;:::-;1285:22343;;;20661:3;1285:22343;;20634:25;;;;;20734:17;-1:-1:-1;;;;;20734:17:37;1285:22343;20734:17;;;:::i;:::-;;1285:22343;;-1:-1:-1;;;;;1285:22343:37;20781:17;;;;:::i;:::-;;:23;1285:22343;;;20837:17;;;;:::i;:::-;;:24;1285:22343;;20893:16;;;;:::i;:::-;;:23;1285:22343;;;;;;;;:::i;:::-;;;;20698:233;;1285:22343;;20698:233;;1285:22343;;20698:233;;1285:22343;20680:251;;;;:::i;:::-;;;;;;:::i;:::-;;1285:22343;20619:13;;20634:25;1285:22343;;;;20634:25;1285:22343;;:::i;20214:110::-;1285:22343;20284:28;;1285:22343;1712:95:17;;;;;19382:35:37;19553:229;19382:35;;;;1285:22343;20101:60;19382:35;;19704:68;-1:-1:-1;;;;;19382:35:37;19704:68;19887:89;19382:35;;;1285:22343;19382:35;;1285:22343;;;19382:35;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1285:22343;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;5872:64;5777:59;1285:22343;5680:61;1285:22343;5680:61;1285:22343;;5680:61;;;-1:-1:-1;;;1285:22343:37;5680:61;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1285:22343:37;;5777:59;;:::i;5872:64::-;5846:90;;1285:22343;;;;6032:162;1285:22343;;;;;;6032:162;;;;;1285:22343;6032:162;;1285:22343;;6032:162;1285:22343;6032:162;;;:::i;:::-;;1285:22343;;;6032:4;:162;;;;;;;1285:22343;;6032:162;;;1285:22343;6002:192;;;1285:22343;6299:29;;1285:22343;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;6339:2;-1:-1:-1;6299:42:37;6295:387;;1285:22343;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1285:22343:37;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1285:22343:37;;;;;;:::i;6295:387::-;1285:22343;6396:275;1285:22343;;;;;;;;6396:275;;;;;1285:22343;6396:275;;1285:22343;;6396:275;1285:22343;6396:275;;;:::i;:::-;;1285:22343;;;6032:4;6396:275;;;;;;;1285:22343;;;;;;;;6396:275;;;6295:387;6357:314;;;6295:387;;;;;;;;;6396:275;;;;;1285:22343;;;6396:275;;;;;;:::i;:::-;;;;;:::i;:::-;;;;6032:162;;;;;1285:22343;;;6032:162;;;;;;:::i;:::-;;;;1285:22343;;;;;8436:67;8360:59;8184:140;;-1:-1:-1;;;;;1285:22343:37;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;8184:140;;;8086:68;8184:140;;;;;;;;:::i;8360:59::-;8184:140;1285:22343;;;8436:67;;;;;;:::i;:::-;1285:22343;;;;;8184:140;1285:22343;;8184:140;1285:22343;;;;:::i;:::-;;;;;;-1:-1:-1;;1285:22343:37;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;15327:23;;:::i;:::-;1285:22343;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;15543:1023;15563:18;;;;;;1285:22343;;;;;;;;;;:::i;15583:3::-;1285:22343;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;1285:22343:37;;;;;;15771:10;;;;;;:::i;:::-;1285:22343;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;:::i;:::-;;;;;15752:29;;;:::i;:::-;;;;;:::i;:::-;;15820:19;;15873:9;15901:48;;;;;;1285:22343;;15901:48;1285:22343;15901:48;;1285:22343;;;15901:48;1285:22343;15901:48;;1285:22343;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15901:48;;1285:22343;;;15901:48;;;;;;;1285:22343;-1:-1:-1;15897:659:37;;16254:302;;1285:22343;16254:302;;:::i;:::-;1285:22343;16422:10;;;;;:::i;:::-;1285:22343;;16397:36;;;;1285:22343;16397:36;;;1285:22343;16397:36;;1285:22343;;;;;;:::i;:::-;16397:36;;;;;;;;;;1285:22343;;16397:36;;;15897:659;1285:22343;;;;16451:90;1285:22343;;;;;;;:::i;16451:90::-;1285:22343;15548:13;;16397:36;;;;1285:22343;16397:36;;;;;;;;;;:::i;:::-;1285:22343;16397:36;-1:-1:-1;16397:36:37;;;1285:22343;;;;-1:-1:-1;1285:22343:37;;16451:90;16397:36;;;;;;;15897:659;15987:9;16210:28;1285:22343;15987:9;;16134:36;16188:50;15987:9;;16150:20;15987:9;16037:19;;16150:20;;:::i;16188:50::-;15897:659;;;15901:48;1285:22343;;15901:48;;;:::i;:::-;1285:22343;;;;15901:48;;;1285:22343;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1285:22343:37;;;;;;;;;-1:-1:-1;1285:22343:37;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1285:22343:37;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;:::i;:::-;;;;;;18861:134;;;;;1285:22343;18861:134;;1285:22343;;18861:134;;1285:22343;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;1285:22343:37;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;18861:134;1285:22343;;;18861:4;:134;;;;;;1285:22343;;18861:134;;;1285:22343;;;;;;;;;;:::i;18861:134::-;;;1285:22343;;;18861:134;;;;;;:::i;:::-;;;1285:22343;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18861:134;;;1285:22343;18861:134;;;;1285:22343;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1285:22343:37;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1285:22343:37;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1285:22343:37;;;;;;:::i;:::-;;;:::i;:::-;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;9049:140;9225:59;1285:22343;;9301:67;1285:22343;;;:::i;:::-;;;;;9049:140;;;8968:51;1285:22343;9049:140;;;1285:22343;;9049:140;;1285:22343;;;;;;:::i;:::-;;;;-1:-1:-1;;1285:22343:37;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;;9049:140;1285:22343;;9049:140;;;;;;:::i;:::-;9225:59;:::i;1285:22343::-;;;;;;-1:-1:-1;;1285:22343:37;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;:::i;:::-;;;;;;21313:35;-1:-1:-1;;;21313:35:37;;1285:22343;;21313:35;;;;;;;1285:22343;21313:35;;;:::i;:::-;;:4;;:35;;;;;;;1285:22343;;21313:35;;;1285:22343;;;21474:68;;1285:22343;-1:-1:-1;;;;;1285:22343:37;;;;;;;21474:68;;;-1:-1:-1;;;1285:22343:37;21474:68;;;1285:22343;21474:68;;;:::i;:::-;;1285:22343;;21474:68;;;;;;:::i;:::-;1285:22343;21557:59;;;;;;1285:22343;;;;;;21557:59;;;;;;1285:22343;21557:59;;1285:22343;;21557:59;;1285:22343;;;;;;;;:::i;:::-;21313:4;1285:22343;;;;;;;-1:-1:-1;;1285:22343:37;;;;;;;;;:::i;:::-;21557:59;1285:22343;;;21557:59;;;;;;;1285:22343;-1:-1:-1;21553:1579:37;;21681:1451;;:::i;:::-;1285:22343;;;21731:22;;21727:100;;-1:-1:-1;;;;;;21859:30:37;21866:22;;;:::i;:::-;21859:30;:::i;:::-;1285:22343;21967:31;21955:43;;21951:113;;22158:45;22146:57;:104;;;;21553:1579;22125:204;;1285:22343;;22378:38;;;:::i;:::-;1285:22343;;22486:351;;1285:22343;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;22486:351;1285:22343;22486:351;;;1285:22343;;;;:::i;:::-;22910:14;;22906:86;;1285:22343;;;23079:42;1285:22343;;23079:42;;;;;;:::i;:::-;21553:1579;23211:40;1285:22343;;23211:40;:::i;:::-;1285:22343;;;23309:3;1285:22343;;23282:25;;;;;23382:17;-1:-1:-1;;;;;23382:17:37;1285:22343;23382:17;;;:::i;:::-;;1285:22343;;-1:-1:-1;;;;;1285:22343:37;23429:17;;;;:::i;:::-;;:23;1285:22343;;;23485:17;;;;:::i;:::-;;:24;1285:22343;;23541:16;;;;:::i;:::-;;:23;1285:22343;;;;;;;;:::i;:::-;;;;23346:233;;1285:22343;;23346:233;;1285:22343;;23346:233;;1285:22343;23328:251;;;;:::i;:::-;;;;;;:::i;:::-;;1285:22343;23267:13;;22906:86;1285:22343;1712:95:17;;;;;22146:104:37;1285:22343;;;22146:104;;21951:113;1712:95:17;1285:22343:37;1712:95:17;;;;;21727:100:37;1285:22343;;;-1:-1:-1;;;21773:39:37;;1285:22343;;21773:39;;1285:22343;;;;;;;;;;;21773:39;21553:1579;1285:22343;;;-1:-1:-1;;;21631:38:37;;1285:22343;;21631:38;;1285:22343;;;;;;;;;;;21631:38;21557:59;1285:22343;;21557:59;;;:::i;:::-;;;;21313:35;-1:-1:-1;;;;;21313:35:37;;;;;21474:68;21313:35;;21474:68;21313:35;;1285:22343;;;21313:35;;;;;;:::i;:::-;;;;;;;;;;1285:22343;;;;;7511:67;7435:59;7259:140;;-1:-1:-1;;;;;1285:22343:37;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;7259:140;;;7170:59;7259:140;;;;;;;;:::i;1285:22343::-;;;;;;-1:-1:-1;;1285:22343:37;;;;;;:::i;:::-;;;:::i;:::-;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;2352:468;2389:3;1285:22343;;2372:15;;;;;1285:22343;;;2572:7;1285:22343;2572:7;;:::i;:::-;;1285:22343;;2485:95;;;1285:22343;2485:95;;;-1:-1:-1;;;2485:95:37;;;1285:22343;2485:95;;;:::i;:::-;2644:9;1285:22343;;;;;378:118:17;;1285:22343:37;;;;378:118:17;;2672:8:37;2668:97;;2389:3;2778:31;;;;:::i;:::-;;;;;;:::i;:::-;;1285:22343;2357:13;;2668:97;1204:349:17;;1285:22343:37;1204:349:17;;1285:22343:37;1204:349:17;;;;1285:22343:37;1204:349:17;;;;1285:22343:37;;;1204:349:17;;;2668:97:37;;2372:15;;1285:22343;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1285:22343:37;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;:::o;:::-;-1:-1:-1;;;;1285:22343:37;;;;;-1:-1:-1;1285:22343:37;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;:::o;:::-;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1285:22343:37;;;;;;-1:-1:-1;;1285:22343:37;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1285:22343:37;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;1285:22343:37;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;1285:22343:37;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;1285:22343:37;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;-1:-1:-1;;1285:22343:37;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;1285:22343:37;;;;;-1:-1:-1;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;-1:-1:-1;;1285:22343:37;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;-1:-1:-1;;1285:22343:37;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;-1:-1:-1;;;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;1285:22343:37;;-1:-1:-1;1285:22343:37;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1285:22343:37;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;-1:-1:-1;1285:22343:37;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;1285:22343:37;;;;;;;;-1:-1:-1;;1285:22343:37;;;;:::o;:::-;;;-1:-1:-1;;;;;1285:22343:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;1285:22343:37;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;1285:22343:37;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1285:22343:37;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1285:22343:37;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1285:22343:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;1285:22343:37;;;;:::o;:::-;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;;1285:22343:37;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;;1285:22343:37;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;1285:22343:37;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1285:22343:37;;-1:-1:-1;1285:22343:37;;;;-1:-1:-1;1285:22343:37;;;;-1:-1:-1;1285:22343:37;;;;;;;;;;;;;11630:679;;;-1:-1:-1;;;;;11630:679:37;1285:22343;;:::i;:::-;;;12058:82;;;;;;1285:22343;;;;12058:82;1285:22343;12058:82;;;;;;;;;;;;;;11630:679;1285:22343;;;-1:-1:-1;;;;;1285:22343:37;;12228:74;;;;;1285:22343;12228:74;;1285:22343;12058:82;12228:74;;1285:22343;;;;;;:::i;:::-;;;;;;;;;;;12228:74;:4;;;:74;;;;;;;;;;;12221:81;;11630:679;:::o;12228:74::-;;;;;;;;;;;;;:::i;:::-;;;;1285:22343;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11630:679;:::o;1285:22343::-;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;-1:-1:-1;;1285:22343:37;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12228:74;1285:22343;;;;;;;;;;;12058:82;;;;;;;;:::i;:::-;;;;;;1285:22343;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1285:22343:37;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1285:22343:37;;;;;;;;;;;-1:-1:-1;1285:22343:37;;-1:-1:-1;1285:22343:37;;-1:-1:-1;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1285:22343:37;;-1:-1:-1;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;-1:-1:-1;;;1285:22343:37;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1285:22343:37;;;;;;-1:-1:-1;;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1285:22343:37;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1285:22343:37;;-1:-1:-1;1285:22343:37;;-1:-1:-1;1285:22343:37;;;;;;;;;:::i;:::-;;;;-1:-1:-1;1285:22343:37;;-1:-1:-1;1285:22343:37;;;;-1:-1:-1;1285:22343:37;;;;-1:-1:-1;1285:22343:37;;;;-1:-1:-1;1285:22343:37;;;;-1:-1:-1;1285:22343:37;;;;-1:-1:-1;1285:22343:37;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;1285:22343:37;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2963:1459::-;1285:22343;;-1:-1:-1;;;3247:60:37;;;;;;-1:-1:-1;;;;;;;;3247:60:37;;1285:22343;;3247:60;;;;;;:::i;:::-;3367:9;378:118:17;;;;-1:-1:-1;;1204:349:17;1285:22343:37;1204:349:17;;3247:60:37;1204:349:17;;;;1285:22343:37;1204:349:17;;;;3247:60:37;1204:349:17;;;3247:60:37;1285:22343;;3639:21;3635:104;;-1:-1:-1;;;;;;;;;3827:30:37;3834:22;;;:::i;3827:30::-;1285:22343;3871:60;3867:162;;1285:22343;;4113:38;;;:::i;:::-;1285:22343;;4231:37;;1285:22343;;;;;;;;3247:60;4231:37;;1285:22343;:::i;:::-;;;;;;;-1:-1:-1;;;;;1285:22343:37;;;;;4231:37;3247:60;4231:37;;;1285:22343;;;;:::i;:::-;4283:25;;4279:98;;2963:1459;:::o;3867:162::-;3947:71;1285:22343;;-1:-1:-1;;;3947:71:37;;3247:60;;3947:71;;1285:22343;;3247:60;1285:22343;;;;;;;;;;;;;3947:71;3635:104;3676:52;1285:22343;;-1:-1:-1;;;3676:52:37;;3247:60;;3676:52;;1285:22343;;3247:60;1285:22343;;;;;;;;;;;;;3676:52;3388:174;3497:54;1285:22343;;-1:-1:-1;;;3497:54:37;;3247:60;;3497:54;;1285:22343;;3247:60;1285:22343;;;;;;;;;;;;;3497:54;15689:1115:35;;1285:22343:37;15689:1115:35;1285:22343:37;15801:19:35;1285:22343:37;15879:919:35;;;1285:22343:37;15879:919:35;;;;;15689:1115;15879:919;;;;15689:1115;15879:919;;;;;;15689:1115;;;:::o;15879:919::-;;;;-1:-1:-1;15879:919:35;;;;;;1285:22343:37;15879:919:35;;-1:-1:-1;;15879:919:35;;;;;;;;;;-1:-1:-1;;15879:919:35;;;;;;;;;;;;;;;;1285:22343:37;15879:919:35;;;;;;;;;15689:1115::o;15879:919::-;;;;;;;;-1:-1:-1;15879:919:35;;;15689:1115;;;1285:22343:37;15801:19:35;1285:22343:37;15879:919:35;;;;;;;;;15689:1115;1285:22343:37;15879:919:35;;;;;;;;;;;15689:1115;;;:::o;15879:919::-;;-1:-1:-1;15879:919:35;;","linkReferences":{}},"methodIdentifiers":{"binarySearchCallGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)":"71349903","binarySearchPaymasterVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)":"9f2d3789","binarySearchVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)":"2e5a0a93","filterOps06((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address,address)":"959c4cb7","filterOps07((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address,address)":"fccb5ff6","filterOps08((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address,address)":"861d9d59","filterOps09((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address,address)":"82e542ed","getBalances(address[],address[])":"ef5bfc37","simulateAndEstimateGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)":"a4968eab","simulateAssetChange06((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address,address[],address[])":"685f6026","simulateAssetChange07((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,address,address[],address[])":"b21b38c8","simulateAssetChange08((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,address,address[],address[])":"90d81dfb","simulateEntryPointBulk(address,address,bytes[])":"141eb033","simulateHandleOp(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":"f1143043","simulateValidation(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":"de040de1"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"PimlicoSimulationDeployed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"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\":\"queuedUserOps\",\"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\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchCallGas\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"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\":\"queuedUserOps\",\"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\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchPaymasterVerificationGas\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"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\":\"queuedUserOps\",\"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\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchVerificationGas\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"\",\"type\":\"tuple\"}],\"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\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct UserOperation[]\",\"name\":\"userOps\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"}],\"name\":\"filterOps06\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceChange\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"internalType\":\"struct PimlicoSimulations.RejectedUserOp[]\",\"name\":\"rejectedUserOps\",\"type\":\"tuple[]\"}],\"internalType\":\"struct PimlicoSimulations.FilterOpsResult\",\"name\":\"\",\"type\":\"tuple\"}],\"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\":\"userOps\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"}],\"name\":\"filterOps07\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceChange\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"internalType\":\"struct PimlicoSimulations.RejectedUserOp[]\",\"name\":\"rejectedUserOps\",\"type\":\"tuple[]\"}],\"internalType\":\"struct PimlicoSimulations.FilterOpsResult\",\"name\":\"\",\"type\":\"tuple\"}],\"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\":\"userOps\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"}],\"name\":\"filterOps08\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceChange\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"internalType\":\"struct PimlicoSimulations.RejectedUserOp[]\",\"name\":\"rejectedUserOps\",\"type\":\"tuple[]\"}],\"internalType\":\"struct PimlicoSimulations.FilterOpsResult\",\"name\":\"\",\"type\":\"tuple\"}],\"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\":\"userOps\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"}],\"name\":\"filterOps09\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceChange\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"internalType\":\"struct PimlicoSimulations.RejectedUserOp[]\",\"name\":\"rejectedUserOps\",\"type\":\"tuple[]\"}],\"internalType\":\"struct PimlicoSimulations.FilterOpsResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"getBalances\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct PimlicoSimulations.AssetBalance[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"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\":\"queuedUserOps\",\"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\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"simulateAndEstimateGas\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"targetSuccess\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"targetResult\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.ExecutionResult\",\"name\":\"simulationResult\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"verificationGasLimit\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"tuple\"}],\"internalType\":\"struct PimlicoSimulations.SimulateAndEstimateGasResult\",\"name\":\"result\",\"type\":\"tuple\"}],\"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\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct UserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"simulateAssetChange06\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balanceBefore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceAfter\",\"type\":\"uint256\"}],\"internalType\":\"struct PimlicoSimulations.AssetChange[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"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\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"entryPointSimulations\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"simulateAssetChange07\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balanceBefore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceAfter\",\"type\":\"uint256\"}],\"internalType\":\"struct PimlicoSimulations.AssetChange[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"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\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"entryPointSimulations\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"simulateAssetChange08\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balanceBefore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceAfter\",\"type\":\"uint256\"}],\"internalType\":\"struct PimlicoSimulations.AssetChange[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"}],\"name\":\"simulateEntryPointBulk\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"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\":\"queuedUserOps\",\"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\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"}],\"name\":\"simulateHandleOp\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"targetSuccess\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"targetResult\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.ExecutionResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"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\":\"queuedUserOps\",\"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\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"}],\"name\":\"simulateValidation\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterContext\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPoint.ReturnInfo\",\"name\":\"returnInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"senderInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"factoryInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"paymasterInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"stakeInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPoint.AggregatorStakeInfo\",\"name\":\"aggregatorInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.ValidationResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Pimlico (https://github.com/pimlicolabs/alto)\",\"kind\":\"dev\",\"methods\":{},\"title\":\"PimlicoSimulations\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"binarySearchCallGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)\":{\"notice\":\"Binary search for optimal call gas limit\"},\"binarySearchPaymasterVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)\":{\"notice\":\"Binary search for optimal paymaster verification gas limit\"},\"binarySearchVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)\":{\"notice\":\"Binary search for optimal verification gas limit\"},\"simulateAndEstimateGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)\":{\"notice\":\"Simulates userOp and estimates verification & paymaster gas limits\"},\"simulateHandleOp(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"notice\":\"Simulates handling of a UserOperation\"},\"simulateValidation(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"notice\":\"Simulates validation of a UserOperation\"}},\"notice\":\"An ERC-4337 EntryPoint simulation contract\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/PimlicoSimulations.sol\":\"PimlicoSimulations\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@account-abstraction-v6/=lib/account-abstraction-v6/contracts/\",\":@account-abstraction-v7/=lib/account-abstraction-v7/contracts/\",\":@account-abstraction-v8/=lib/account-abstraction-v8/contracts/\",\":@account-abstraction-v9/=lib/account-abstraction-v9/contracts/\",\":@openzeppelin-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/\",\":@openzeppelin-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/\",\":@openzeppelin-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts-v5.0.2/contracts/\",\":@test-aa-utils/=lib/singleton-paymaster/test/utils/account-abstraction/\",\":@test-utils/=lib/singleton-paymaster/test/utils/\",\":account-abstraction-v6/=lib/account-abstraction-v6/contracts/\",\":account-abstraction-v7/=lib/account-abstraction-v7/contracts/\",\":account-abstraction-v8/=lib/account-abstraction-v8/contracts/\",\":account-abstraction-v9/=lib/account-abstraction-v9/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-v5.0.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-v5.1.0/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/\",\":openzeppelin-contracts-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/\",\":openzeppelin-contracts-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/\",\":singleton-paymaster/=lib/singleton-paymaster/src/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"lib/account-abstraction-v6/contracts/core/Helpers.sol\":{\"keccak256\":\"0x591c87519f7155d1909210276b77925ab2722a99b7b5d5649aecc36ebbdb045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://69643e83f68e6a13d5075c7565bfce326673b0bd98c432033c4603ea84835746\",\"dweb:/ipfs/QmSwSzjYyV7qudi5vvsmzHMG2Z4YJZxX51RRXXVCLaNcEU\"]},\"lib/account-abstraction-v6/contracts/core/NonceManager.sol\":{\"keccak256\":\"0xa17a4a6fde70088ab18ffe6df830f3efa31f1cd0e1a7160336c96e3c94984d25\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://b38615df9f80c56282b72888e9ba1eb1a9413fa67a0dbf094deda7af9feb38e7\",\"dweb:/ipfs/QmSzcXetEJRH4UHuUmZiSgX6bFgfqHWfmyuxVnh4NosMk1\"]},\"lib/account-abstraction-v6/contracts/core/SenderCreator.sol\":{\"keccak256\":\"0x44b9449fec82d6cdfb01d52fdd5a72f90099c651316123810cf9633f00b018c2\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a9c0487390e72638681d175c45bc92425c802fffdca4bd0ae8457782ee284612\",\"dweb:/ipfs/QmVbzuehCUWJWqEHyMWuc6cRVbxfcMdFsmGL9o4Wz7WY2x\"]},\"lib/account-abstraction-v6/contracts/core/StakeManager.sol\":{\"keccak256\":\"0x21aa0956382bd000b1b8c3b1d19ca6ebcd6c9029eebb19c612fb38ee5dd2430a\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://0a625c8795354d9f429367f9c1d14eb8af7db9c7f2c2a2033e2066ced76a573a\",\"dweb:/ipfs/Qmd1j6UarUg54q1G2HCNCLQz8XGVZR1qxX7eQ6cytHpQPN\"]},\"lib/account-abstraction-v6/contracts/interfaces/IAccount.sol\":{\"keccak256\":\"0x556a0e5980de18e90b115553ed502408155ba35f58642823010d9288047bc418\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a0f420134b79596db8737173c7b933ae0a33059e107b6327c43aa40d4744a9e4\",\"dweb:/ipfs/QmRo8s1AhXmEMV7uPYnbpYwU19e9Bk6jmYBJTiPx3Fo85W\"]},\"lib/account-abstraction-v6/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0x060e9ddb0152250c269ba0640dc5753834ac44cf182a2837d508c0c529cae26a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://20ed837bc5909c89ff1910246bf245a5dad6840aa939382e1694964eb7dbd37b\",\"dweb:/ipfs/QmTMybRq5yyghPDDs1ZCNAVB9sSJ4WHe6Q9mejuKPTAdNP\"]},\"lib/account-abstraction-v6/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x3a90bf308819ed125fa4202f880999caff8a8686633b8ddb79a30ca240d5b8f8\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d2d21cc92c2fdab2b58d21bc25d4cd0e8c284b922528a186b087b818d54bc6cf\",\"dweb:/ipfs/QmT1qrfuBjsv2rmRCDn8mgPXHp94hARJwzbcDuBLDTbFWd\"]},\"lib/account-abstraction-v6/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0x509871e6c63663cdcc3eba19920fe84e991f38b289b1377ac3c3a6d9f22d7e12\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://00fe21b4349b24c50df60e1a705179293982bd9e7a32b78d4bac9620f89e7fe2\",\"dweb:/ipfs/QmSFFYGfUwQbVa6hASjU7YxTvgi2HkfrPr4X5oPHscHg8b\"]},\"lib/account-abstraction-v6/contracts/interfaces/IPaymaster.sol\":{\"keccak256\":\"0x36858ba8685024974f533530420688da3454d29996ebc42e410673a1ed2ec456\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://616cbcf51778b1961b7f20a547bec7efae6d1d565df0f651926241ed8bde9ad8\",\"dweb:/ipfs/QmaVsgffUUmeUJYgStvRr8cNZ1LBbrc3FYNLW4JT1dVLia\"]},\"lib/account-abstraction-v6/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xd227b02888cd4ac68daebcdfd992ec00f9fff66fa3b3bb16f656cd582fa3480f\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://b389da4714a138be63704a576a482505eab2855e263b38a93706395d8d42e7c3\",\"dweb:/ipfs/QmeeAZpdHwUXxqP8pxA7GNtoCGBmmH4FaqLLwScVKGxtxZ\"]},\"lib/account-abstraction-v6/contracts/interfaces/UserOperation.sol\":{\"keccak256\":\"0x61374003361059087fdcf17967a7bba052badeaf5c7f0ae689166f8aafd3a45c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6ff83c59432e733bf6304dda27cd4b0f34401917dd535e2669cc842d2d26568c\",\"dweb:/ipfs/QmPJbHU5TAjHqUTZzAcicEeG2nknmwCN43L4EW9LHbknTN\"]},\"lib/account-abstraction-v6/contracts/utils/Exec.sol\":{\"keccak256\":\"0x5b232117afbc2939f3ffc92745614867e9e1d475a3e1e5443adae13c200174f1\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://62e7365379a06ead7b47637945bcaee095d51aab1d3ac00ddec69443e6cbe9fe\",\"dweb:/ipfs/QmctG3aw4U3KMSMeJKoLJ1NJewjMWfppnd1m3kxNTe39Uy\"]},\"lib/account-abstraction-v7/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0xf100d6fcc0c3b450b13e979b6a42c628c292a1bc340eccc2e7796b80e3975588\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://192938b5b27234d35c8098a319e879363c79f750eea4d0e409dc889a8ce5b155\",\"dweb:/ipfs/QmURpaJFPqEtkKP2ngBsgZhAGN8wAWh5XQpYmCkiz4Urz5\"]},\"lib/account-abstraction-v7/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x1972a5fcb3a808b58c85af5741949ef6af11ab0debd3ae8c708171ae1ae0d0c4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://baa9837ae73b9e2362a47d42d081d7c0f3d8e878e5edb381117d94a6968949c9\",\"dweb:/ipfs/QmUmo6FUE7fv5z1WzW1YFjxp8PqaeN2JrEee9au59w3Xhe\"]},\"lib/account-abstraction-v7/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0xd575af0f6ebbd5f0b2933307d44cd7b4e03a69f4b817a67db5409bd3c89aeecb\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://3b1e2dea9b05cfba9d13339ed16d96457dc861013cc4f3f35b71a80f82448db3\",\"dweb:/ipfs/QmVaGy5uGDMSiU2SzyokTjoHFyb39VVG5wtaM9KTnHyZSk\"]},\"lib/account-abstraction-v7/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xbe5ca9e7f254d031687419e7b96ef48c9c63e9398bbe992dc72ffc6dc14e0a04\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://1fffec71c38627a26fabb423350148009579f092623fb02b471a12d973763a00\",\"dweb:/ipfs/QmRBi31QEYXHj3x1AnQ2jKa2eziZH1b9av396P3b4dw6bj\"]},\"lib/account-abstraction-v7/contracts/interfaces/PackedUserOperation.sol\":{\"keccak256\":\"0x1129b46381db68eddbc5cb49e50664667b66b03c480453858e7b25eabe444359\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://499a948aba60480dba6e25c763b8d918f1c246eb7a3302e04f493e080f3295be\",\"dweb:/ipfs/QmeRhhswf4NACcBKam2PyjpTP2ddSm648kah5kkQJsvwz3\"]},\"lib/account-abstraction-v7/contracts/utils/Exec.sol\":{\"keccak256\":\"0x86b1b1cd11158dddb9d381040c57fdc643c74b5e4eed3e7e036f32452672ad74\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://ad88663b6c76df73cf09a272cf333d038df7bb4c51281284b572bf9b46e1cd77\",\"dweb:/ipfs/QmVKxYF8avyPBtqejVhFCM2CuHsfpsCh7TsPqkBLtrgwJQ\"]},\"lib/account-abstraction-v8/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0xdf580eafa015b81bde436d6a5468cc92b531ada84007cef885e923f6dfc5e8bf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99f0060626568619ac94d750eb4c0888d92ca5775a6bd957fef9847843835b77\",\"dweb:/ipfs/QmXJer3D9sTkEj3mmUDqpdqfGpe46Rn9G22nGrfZdP2wAT\"]},\"lib/account-abstraction-v8/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x3b0423737e810dd886183ed32cfed9b45edd315f5fb3e1076fc19f86791adc64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c43081efaa2eda581b6249053281bb58cb0c4eeb6bf87efc55d95daaec2fc931\",\"dweb:/ipfs/QmXRN2JnyzWZNeFMHauTnDuc7jhxGY4ZkY37HTtjXKdC87\"]},\"lib/account-abstraction-v8/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0xee493ae200b8c675bdc0da66f7ac6bb883ecea33672d7d0a95526b9eecdedf87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://979784a0333ac4ef3cc53ab9323a4b7fa574d929bd511f0eed03d3b0370db22d\",\"dweb:/ipfs/QmeiciN5gs4upM6vfKvrRxWiDBUzMU4uJQRRkJajhim9gX\"]},\"lib/account-abstraction-v8/contracts/interfaces/ISenderCreator.sol\":{\"keccak256\":\"0x677f651d733162b80d1af7901e4f36469e362737a8353d1d0cc7bb94489e4ba4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6905a80acd70b444ea230b5b582164cb99aaae518bf72c88f8292df31615570\",\"dweb:/ipfs/QmfTKTPwJYf9pmA3T5PE5cCG8GLLDrLaq3jQqMP3pVRL6w\"]},\"lib/account-abstraction-v8/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xe48e904fcac02295aad07fbfa1c1d449a74bf44c04e432afef6f34d1ef726ae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5882b635ea6f5da9ae411485975888431de571f85d4baf35e3db1a83c1f14b85\",\"dweb:/ipfs/QmVSTX36Byr48y8JBmz1hCTGAAyQdTYegQbsSqdRNuSQYz\"]},\"lib/account-abstraction-v8/contracts/interfaces/PackedUserOperation.sol\":{\"keccak256\":\"0xb15188e25e45fe73097e279675b6c0beccbd4133ead2260f8f0c4ba840046800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d14c1edd1e95d37c26e54bb34305e2cc9dedc46eb75ec91caeb777678e8ea79\",\"dweb:/ipfs/QmcCL2syVtV7W3XvYx3si84MPkbEJKqEN8hjFNhAPoDDhK\"]},\"lib/account-abstraction-v9/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0xdf580eafa015b81bde436d6a5468cc92b531ada84007cef885e923f6dfc5e8bf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99f0060626568619ac94d750eb4c0888d92ca5775a6bd957fef9847843835b77\",\"dweb:/ipfs/QmXJer3D9sTkEj3mmUDqpdqfGpe46Rn9G22nGrfZdP2wAT\"]},\"lib/account-abstraction-v9/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x62f739f59c661f48b750e1d67d96f209056bbc2e4b5e48cbcd0656d162e566cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee103fb0c5103bc001171303bac9f80659c5f0efc4ebf4cfa22e1adc831c68ce\",\"dweb:/ipfs/QmbiosncMJBe3skD8KsCXE9Y3C6NdKthHq83ba3Sw6RP4U\"]},\"lib/account-abstraction-v9/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0x0a93a26e990e3da5762c461f5f500bec0f6e216bb42c55f07d95651bd85d5f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d76343b1e306ed0ed2a5f49b578b8c30d1c6aecac260c8b71d30665021f93961\",\"dweb:/ipfs/QmPo7xaetd9koekFkNoapGUE2omFH1HhxF35PstTH6fG3J\"]},\"lib/account-abstraction-v9/contracts/interfaces/ISenderCreator.sol\":{\"keccak256\":\"0x677f651d733162b80d1af7901e4f36469e362737a8353d1d0cc7bb94489e4ba4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6905a80acd70b444ea230b5b582164cb99aaae518bf72c88f8292df31615570\",\"dweb:/ipfs/QmfTKTPwJYf9pmA3T5PE5cCG8GLLDrLaq3jQqMP3pVRL6w\"]},\"lib/account-abstraction-v9/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xcbac5ac68fb0582d743c4172cc78afc530f750ed529386327ebfa909be067111\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95ec6059800b3c9a645c1fdc33061f7a48c2b49b9f8bce53d55fc840092dd964\",\"dweb:/ipfs/Qmb33bEcx36hdhXpVCcsUGFmk3AGEU1rto9FU7VBu5S941\"]},\"lib/account-abstraction-v9/contracts/interfaces/PackedUserOperation.sol\":{\"keccak256\":\"0xa262abaec9b922c33e54dd8cd88d4fd1989915e16127959736af966884b4d441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8cb49a30d699867fd6efa3e349b5802dd1ec1a57379e70077e38fe001e19008d\",\"dweb:/ipfs/QmdsY3et68ceJAyuDScz8iWJfimXmApf6Qcp3BmqDjNSzc\"]},\"lib/openzeppelin-contracts-v4.8.3/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x190dd6f8d592b7e4e930feb7f4313aeb8e1c4ad3154c27ce1cf6a512fc30d8cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ce8dfb62d0c4fa260d6eec8f1cd47f5f2a044e11bde5b31d18072fa6e7d9010\",\"dweb:/ipfs/QmTyFztU3tLEcEDnqqiaW4UJetqsU77LXc6pjc9oTXCK5u\"]},\"lib/openzeppelin-contracts-v4.8.3/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-v4.8.3/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts-v4.8.3/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/solady/src/tokens/ERC20.sol\":{\"keccak256\":\"0x1c3cdf5158b29b16ba2d2c7ff1f6d4304754605441257e198b46803f0fa9df1a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6ed3d15fd372495ff76439878fb5e007ae0b39da3ce3d9fd877ee8147647bb2\",\"dweb:/ipfs/QmZ1zC91VhPHMXAdcY8SahJMwDsC2B5q9uXFF16R5eHmkV\"]},\"lib/solady/src/utils/LibBytes.sol\":{\"keccak256\":\"0x905f1c122299888350964a3bdd3dccd4b969273389b8d869f9aacb6871ff199e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6cff3ef7090aa48f214b960f373a33c15878f80e617443a3a4d53f130bab862\",\"dweb:/ipfs/QmdMEpK6ZVxUesqSpurqS9UkDnm1kAnjUeJKLN6ZWPNJnT\"]},\"src/IEntryPointSimulations.sol\":{\"keccak256\":\"0xbc2129076267d33c8a7a7bb9ed92cc7b4a7d0d20c224a5f428412cca113bed41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f35d68119a9c4108b415c8523667bae15466b544f2e0a17111e7c8481bdb07b5\",\"dweb:/ipfs/Qme8yMWE1KLcGmJ5UhHS4KBc27TRTaeoXwBxaXQbErAC5t\"]},\"src/PimlicoSimulations.sol\":{\"keccak256\":\"0xa980588f431640f95765d3c16bccad06c70308ce8fb0d8bcfafa744a10d9e6dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d56374264adf0998b0063c709b7abfb1ec6b7ee34903ce96e48060c8b232d4f4\",\"dweb:/ipfs/QmeVKWkmpFz5J6vLqFPzAzmMoMPuvjS2v6jBoGNuvRCsQA\"]},\"src/SimulationOverrideHelper.sol\":{\"keccak256\":\"0x327a9038314036c1259ce7d2422d17b10f264df6b0d9f6b87cddb6b047898774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4288cd354dbc1344dbe6139a862abe6bbc784186705cd2fc5197ef0e26d8b66\",\"dweb:/ipfs/Qmerifmk26zWoYk2hRXptyC6ncPH4m7zyQEDJERHNo5ijf\"]},\"src/v06/EntryPointGasEstimationOverride.sol\":{\"keccak256\":\"0xd543e1dfeb6c3f74ce1964099364ce549563c11ea47c3cb97b02bc7e71e8f46d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://53d579d8654dbed980bb14d08ecafddb30b4f634ffedd4a64a2d30b39803d4f7\",\"dweb:/ipfs/QmTnT9yk1AB2LydP2QWiyuPrTHAZzqFcrLLjkB5Q1z7DpD\"]},\"src/v08/IEntryPointFilterOpsOverride.sol\":{\"keccak256\":\"0xe069a104d10fd2a44eaa5fb8e5b42c88db1b79e2fb158d479baf1d037100aa0e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f1440a823d770d3b70e73c769ac97039facc8b9cdb3f41debd37ae7a12ef5e9b\",\"dweb:/ipfs/QmahuKjkumBBkJEgfogRM2Pa3sSFLQ6mkyXBao87G4EF4T\"]},\"src/v09/IEntryPointFilterOpsOverride.sol\":{\"keccak256\":\"0x650c3d21c5c2cf5df86280c280361470636fa01aa697928d8c9cb6e3d304121a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://099ac0bd696fa0a16ade75f8bac3d0e60cdee9d8cec1c44f2b231095f566104f\",\"dweb:/ipfs/QmNf3jPVQ3bZtGpKtuR1aqV8bT16MhZSj4qmxUbmSiBXR5\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"event","name":"PimlicoSimulationDeployed","anonymous":false},{"inputs":[{"internalType":"address","name":"entryPointSimulation","type":"address"},{"internalType":"address","name":"entryPoint","type":"address"},{"internalType":"struct PackedUserOperation[]","name":"queuedUserOps","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":"struct PackedUserOperation","name":"targetUserOp","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":"uint256","name":"initialMinGas","type":"uint256"},{"internalType":"uint256","name":"toleranceDelta","type":"uint256"},{"internalType":"uint256","name":"gasAllowance","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"binarySearchCallGas","outputs":[{"internalType":"struct IEntryPointSimulations.BinarySearchResult","name":"","type":"tuple","components":[{"internalType":"enum IEntryPointSimulations.BinarySearchResultType","name":"resultType","type":"uint8"},{"internalType":"struct IEntryPointSimulations.BinarySearchSuccess","name":"successData","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]},{"internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","name":"outOfGasData","type":"tuple","components":[{"internalType":"uint256","name":"optimalGas","type":"uint256"},{"internalType":"uint256","name":"minGas","type":"uint256"},{"internalType":"uint256","name":"maxGas","type":"uint256"}]}]}]},{"inputs":[{"internalType":"address","name":"entryPointSimulation","type":"address"},{"internalType":"address payable","name":"entryPoint","type":"address"},{"internalType":"struct PackedUserOperation[]","name":"queuedUserOps","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":"struct PackedUserOperation","name":"targetUserOp","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":"uint256","name":"initialMinGas","type":"uint256"},{"internalType":"uint256","name":"toleranceDelta","type":"uint256"},{"internalType":"uint256","name":"gasAllowance","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"binarySearchPaymasterVerificationGas","outputs":[{"internalType":"struct IEntryPointSimulations.BinarySearchResult","name":"","type":"tuple","components":[{"internalType":"enum IEntryPointSimulations.BinarySearchResultType","name":"resultType","type":"uint8"},{"internalType":"struct IEntryPointSimulations.BinarySearchSuccess","name":"successData","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]},{"internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","name":"outOfGasData","type":"tuple","components":[{"internalType":"uint256","name":"optimalGas","type":"uint256"},{"internalType":"uint256","name":"minGas","type":"uint256"},{"internalType":"uint256","name":"maxGas","type":"uint256"}]}]}]},{"inputs":[{"internalType":"address","name":"entryPointSimulation","type":"address"},{"internalType":"address payable","name":"entryPoint","type":"address"},{"internalType":"struct PackedUserOperation[]","name":"queuedUserOps","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":"struct PackedUserOperation","name":"targetUserOp","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":"uint256","name":"initialMinGas","type":"uint256"},{"internalType":"uint256","name":"toleranceDelta","type":"uint256"},{"internalType":"uint256","name":"gasAllowance","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"binarySearchVerificationGas","outputs":[{"internalType":"struct IEntryPointSimulations.BinarySearchResult","name":"","type":"tuple","components":[{"internalType":"enum IEntryPointSimulations.BinarySearchResultType","name":"resultType","type":"uint8"},{"internalType":"struct IEntryPointSimulations.BinarySearchSuccess","name":"successData","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]},{"internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","name":"outOfGasData","type":"tuple","components":[{"internalType":"uint256","name":"optimalGas","type":"uint256"},{"internalType":"uint256","name":"minGas","type":"uint256"},{"internalType":"uint256","name":"maxGas","type":"uint256"}]}]}]},{"inputs":[{"internalType":"struct UserOperation[]","name":"userOps","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":"uint256","name":"callGasLimit","type":"uint256"},{"internalType":"uint256","name":"verificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"uint256","name":"maxFeePerGas","type":"uint256"},{"internalType":"uint256","name":"maxPriorityFeePerGas","type":"uint256"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"address payable","name":"beneficiary","type":"address"},{"internalType":"contract IEntryPoint","name":"entryPoint","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"filterOps06","outputs":[{"internalType":"struct PimlicoSimulations.FilterOpsResult","name":"","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"uint256","name":"balanceChange","type":"uint256"},{"internalType":"struct PimlicoSimulations.RejectedUserOp[]","name":"rejectedUserOps","type":"tuple[]","components":[{"internalType":"bytes32","name":"userOpHash","type":"bytes32"},{"internalType":"bytes","name":"revertReason","type":"bytes"}]}]}]},{"inputs":[{"internalType":"struct PackedUserOperation[]","name":"userOps","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 payable","name":"beneficiary","type":"address"},{"internalType":"contract IEntryPoint","name":"entryPoint","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"filterOps07","outputs":[{"internalType":"struct PimlicoSimulations.FilterOpsResult","name":"","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"uint256","name":"balanceChange","type":"uint256"},{"internalType":"struct PimlicoSimulations.RejectedUserOp[]","name":"rejectedUserOps","type":"tuple[]","components":[{"internalType":"bytes32","name":"userOpHash","type":"bytes32"},{"internalType":"bytes","name":"revertReason","type":"bytes"}]}]}]},{"inputs":[{"internalType":"struct PackedUserOperation[]","name":"userOps","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 payable","name":"beneficiary","type":"address"},{"internalType":"contract IEntryPoint","name":"entryPoint","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"filterOps08","outputs":[{"internalType":"struct PimlicoSimulations.FilterOpsResult","name":"","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"uint256","name":"balanceChange","type":"uint256"},{"internalType":"struct PimlicoSimulations.RejectedUserOp[]","name":"rejectedUserOps","type":"tuple[]","components":[{"internalType":"bytes32","name":"userOpHash","type":"bytes32"},{"internalType":"bytes","name":"revertReason","type":"bytes"}]}]}]},{"inputs":[{"internalType":"struct PackedUserOperation[]","name":"userOps","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 payable","name":"beneficiary","type":"address"},{"internalType":"contract IEntryPoint","name":"entryPoint","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"filterOps09","outputs":[{"internalType":"struct PimlicoSimulations.FilterOpsResult","name":"","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"uint256","name":"balanceChange","type":"uint256"},{"internalType":"struct PimlicoSimulations.RejectedUserOp[]","name":"rejectedUserOps","type":"tuple[]","components":[{"internalType":"bytes32","name":"userOpHash","type":"bytes32"},{"internalType":"bytes","name":"revertReason","type":"bytes"}]}]}]},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"address[]","name":"tokens","type":"address[]"}],"stateMutability":"view","type":"function","name":"getBalances","outputs":[{"internalType":"struct PimlicoSimulations.AssetBalance[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"entryPointSimulation","type":"address"},{"internalType":"address payable","name":"entryPoint","type":"address"},{"internalType":"struct PackedUserOperation[]","name":"queuedUserOps","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":"struct PackedUserOperation","name":"targetUserOp","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":"uint256","name":"initialMinGas","type":"uint256"},{"internalType":"uint256","name":"toleranceDelta","type":"uint256"},{"internalType":"uint256","name":"gasAllowance","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"simulateAndEstimateGas","outputs":[{"internalType":"struct PimlicoSimulations.SimulateAndEstimateGasResult","name":"result","type":"tuple","components":[{"internalType":"struct IEntryPointSimulations.ExecutionResult","name":"simulationResult","type":"tuple","components":[{"internalType":"uint256","name":"preOpGas","type":"uint256"},{"internalType":"uint256","name":"paid","type":"uint256"},{"internalType":"uint256","name":"accountValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterVerificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterPostOpGasLimit","type":"uint256"},{"internalType":"bool","name":"targetSuccess","type":"bool"},{"internalType":"bytes","name":"targetResult","type":"bytes"}]},{"internalType":"struct IEntryPointSimulations.BinarySearchResult","name":"verificationGasLimit","type":"tuple","components":[{"internalType":"enum IEntryPointSimulations.BinarySearchResultType","name":"resultType","type":"uint8"},{"internalType":"struct IEntryPointSimulations.BinarySearchSuccess","name":"successData","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]},{"internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","name":"outOfGasData","type":"tuple","components":[{"internalType":"uint256","name":"optimalGas","type":"uint256"},{"internalType":"uint256","name":"minGas","type":"uint256"},{"internalType":"uint256","name":"maxGas","type":"uint256"}]}]},{"internalType":"struct IEntryPointSimulations.BinarySearchResult","name":"paymasterVerificationGasLimit","type":"tuple","components":[{"internalType":"enum IEntryPointSimulations.BinarySearchResultType","name":"resultType","type":"uint8"},{"internalType":"struct IEntryPointSimulations.BinarySearchSuccess","name":"successData","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]},{"internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","name":"outOfGasData","type":"tuple","components":[{"internalType":"uint256","name":"optimalGas","type":"uint256"},{"internalType":"uint256","name":"minGas","type":"uint256"},{"internalType":"uint256","name":"maxGas","type":"uint256"}]}]}]}]},{"inputs":[{"internalType":"struct UserOperation","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":"uint256","name":"callGasLimit","type":"uint256"},{"internalType":"uint256","name":"verificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"uint256","name":"maxFeePerGas","type":"uint256"},{"internalType":"uint256","name":"maxPriorityFeePerGas","type":"uint256"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"contract IEntryPoint","name":"entryPoint","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"address[]","name":"tokens","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"simulateAssetChange06","outputs":[{"internalType":"struct PimlicoSimulations.AssetChange[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"balanceBefore","type":"uint256"},{"internalType":"uint256","name":"balanceAfter","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":"contract IEntryPoint","name":"entryPoint","type":"address"},{"internalType":"address","name":"entryPointSimulations","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"address[]","name":"tokens","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"simulateAssetChange07","outputs":[{"internalType":"struct PimlicoSimulations.AssetChange[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"balanceBefore","type":"uint256"},{"internalType":"uint256","name":"balanceAfter","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":"contract IEntryPoint","name":"entryPoint","type":"address"},{"internalType":"address","name":"entryPointSimulations","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"address[]","name":"tokens","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"simulateAssetChange08","outputs":[{"internalType":"struct PimlicoSimulations.AssetChange[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"balanceBefore","type":"uint256"},{"internalType":"uint256","name":"balanceAfter","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"entryPointSimulation","type":"address"},{"internalType":"address payable","name":"entryPoint","type":"address"},{"internalType":"bytes[]","name":"data","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"simulateEntryPointBulk","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}]},{"inputs":[{"internalType":"address","name":"entryPointSimulation","type":"address"},{"internalType":"address payable","name":"entryPoint","type":"address"},{"internalType":"struct PackedUserOperation[]","name":"queuedUserOps","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":"struct PackedUserOperation","name":"targetUserOp","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"}]}],"stateMutability":"nonpayable","type":"function","name":"simulateHandleOp","outputs":[{"internalType":"struct IEntryPointSimulations.ExecutionResult","name":"","type":"tuple","components":[{"internalType":"uint256","name":"preOpGas","type":"uint256"},{"internalType":"uint256","name":"paid","type":"uint256"},{"internalType":"uint256","name":"accountValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterVerificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterPostOpGasLimit","type":"uint256"},{"internalType":"bool","name":"targetSuccess","type":"bool"},{"internalType":"bytes","name":"targetResult","type":"bytes"}]}]},{"inputs":[{"internalType":"address","name":"entryPointSimulation","type":"address"},{"internalType":"address payable","name":"entryPoint","type":"address"},{"internalType":"struct PackedUserOperation[]","name":"queuedUserOps","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":"struct PackedUserOperation","name":"targetUserOp","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"}]}],"stateMutability":"nonpayable","type":"function","name":"simulateValidation","outputs":[{"internalType":"struct IEntryPointSimulations.ValidationResult","name":"","type":"tuple","components":[{"internalType":"struct IEntryPoint.ReturnInfo","name":"returnInfo","type":"tuple","components":[{"internalType":"uint256","name":"preOpGas","type":"uint256"},{"internalType":"uint256","name":"prefund","type":"uint256"},{"internalType":"uint256","name":"accountValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterValidationData","type":"uint256"},{"internalType":"bytes","name":"paymasterContext","type":"bytes"}]},{"internalType":"struct IStakeManager.StakeInfo","name":"senderInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]},{"internalType":"struct IStakeManager.StakeInfo","name":"factoryInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]},{"internalType":"struct IStakeManager.StakeInfo","name":"paymasterInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]},{"internalType":"struct IEntryPoint.AggregatorStakeInfo","name":"aggregatorInfo","type":"tuple","components":[{"internalType":"address","name":"aggregator","type":"address"},{"internalType":"struct IStakeManager.StakeInfo","name":"stakeInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]}]}]}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"binarySearchCallGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)":{"notice":"Binary search for optimal call gas limit"},"binarySearchPaymasterVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)":{"notice":"Binary search for optimal paymaster verification gas limit"},"binarySearchVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)":{"notice":"Binary search for optimal verification gas limit"},"simulateAndEstimateGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)":{"notice":"Simulates userOp and estimates verification & paymaster gas limits"},"simulateHandleOp(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":{"notice":"Simulates handling of a UserOperation"},"simulateValidation(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":{"notice":"Simulates validation of a UserOperation"}},"version":1}},"settings":{"remappings":["@account-abstraction-v6/=lib/account-abstraction-v6/contracts/","@account-abstraction-v7/=lib/account-abstraction-v7/contracts/","@account-abstraction-v8/=lib/account-abstraction-v8/contracts/","@account-abstraction-v9/=lib/account-abstraction-v9/contracts/","@openzeppelin-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/","@openzeppelin-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/","@openzeppelin-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/","@openzeppelin/contracts/=lib/openzeppelin-contracts-v5.0.2/contracts/","@test-aa-utils/=lib/singleton-paymaster/test/utils/account-abstraction/","@test-utils/=lib/singleton-paymaster/test/utils/","account-abstraction-v6/=lib/account-abstraction-v6/contracts/","account-abstraction-v7/=lib/account-abstraction-v7/contracts/","account-abstraction-v8/=lib/account-abstraction-v8/contracts/","account-abstraction-v9/=lib/account-abstraction-v9/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-v5.0.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-v5.1.0/lib/halmos-cheatcodes/src/","openzeppelin-contracts-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/","openzeppelin-contracts-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/","openzeppelin-contracts-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/","singleton-paymaster/=lib/singleton-paymaster/src/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/PimlicoSimulations.sol":"PimlicoSimulations"},"evmVersion":"london","libraries":{},"viaIR":true},"sources":{"lib/account-abstraction-v6/contracts/core/Helpers.sol":{"keccak256":"0x591c87519f7155d1909210276b77925ab2722a99b7b5d5649aecc36ebbdb045a","urls":["bzz-raw://69643e83f68e6a13d5075c7565bfce326673b0bd98c432033c4603ea84835746","dweb:/ipfs/QmSwSzjYyV7qudi5vvsmzHMG2Z4YJZxX51RRXXVCLaNcEU"],"license":"GPL-3.0"},"lib/account-abstraction-v6/contracts/core/NonceManager.sol":{"keccak256":"0xa17a4a6fde70088ab18ffe6df830f3efa31f1cd0e1a7160336c96e3c94984d25","urls":["bzz-raw://b38615df9f80c56282b72888e9ba1eb1a9413fa67a0dbf094deda7af9feb38e7","dweb:/ipfs/QmSzcXetEJRH4UHuUmZiSgX6bFgfqHWfmyuxVnh4NosMk1"],"license":"GPL-3.0"},"lib/account-abstraction-v6/contracts/core/SenderCreator.sol":{"keccak256":"0x44b9449fec82d6cdfb01d52fdd5a72f90099c651316123810cf9633f00b018c2","urls":["bzz-raw://a9c0487390e72638681d175c45bc92425c802fffdca4bd0ae8457782ee284612","dweb:/ipfs/QmVbzuehCUWJWqEHyMWuc6cRVbxfcMdFsmGL9o4Wz7WY2x"],"license":"GPL-3.0"},"lib/account-abstraction-v6/contracts/core/StakeManager.sol":{"keccak256":"0x21aa0956382bd000b1b8c3b1d19ca6ebcd6c9029eebb19c612fb38ee5dd2430a","urls":["bzz-raw://0a625c8795354d9f429367f9c1d14eb8af7db9c7f2c2a2033e2066ced76a573a","dweb:/ipfs/Qmd1j6UarUg54q1G2HCNCLQz8XGVZR1qxX7eQ6cytHpQPN"],"license":"GPL-3.0-only"},"lib/account-abstraction-v6/contracts/interfaces/IAccount.sol":{"keccak256":"0x556a0e5980de18e90b115553ed502408155ba35f58642823010d9288047bc418","urls":["bzz-raw://a0f420134b79596db8737173c7b933ae0a33059e107b6327c43aa40d4744a9e4","dweb:/ipfs/QmRo8s1AhXmEMV7uPYnbpYwU19e9Bk6jmYBJTiPx3Fo85W"],"license":"GPL-3.0"},"lib/account-abstraction-v6/contracts/interfaces/IAggregator.sol":{"keccak256":"0x060e9ddb0152250c269ba0640dc5753834ac44cf182a2837d508c0c529cae26a","urls":["bzz-raw://20ed837bc5909c89ff1910246bf245a5dad6840aa939382e1694964eb7dbd37b","dweb:/ipfs/QmTMybRq5yyghPDDs1ZCNAVB9sSJ4WHe6Q9mejuKPTAdNP"],"license":"GPL-3.0"},"lib/account-abstraction-v6/contracts/interfaces/IEntryPoint.sol":{"keccak256":"0x3a90bf308819ed125fa4202f880999caff8a8686633b8ddb79a30ca240d5b8f8","urls":["bzz-raw://d2d21cc92c2fdab2b58d21bc25d4cd0e8c284b922528a186b087b818d54bc6cf","dweb:/ipfs/QmT1qrfuBjsv2rmRCDn8mgPXHp94hARJwzbcDuBLDTbFWd"],"license":"GPL-3.0"},"lib/account-abstraction-v6/contracts/interfaces/INonceManager.sol":{"keccak256":"0x509871e6c63663cdcc3eba19920fe84e991f38b289b1377ac3c3a6d9f22d7e12","urls":["bzz-raw://00fe21b4349b24c50df60e1a705179293982bd9e7a32b78d4bac9620f89e7fe2","dweb:/ipfs/QmSFFYGfUwQbVa6hASjU7YxTvgi2HkfrPr4X5oPHscHg8b"],"license":"GPL-3.0"},"lib/account-abstraction-v6/contracts/interfaces/IPaymaster.sol":{"keccak256":"0x36858ba8685024974f533530420688da3454d29996ebc42e410673a1ed2ec456","urls":["bzz-raw://616cbcf51778b1961b7f20a547bec7efae6d1d565df0f651926241ed8bde9ad8","dweb:/ipfs/QmaVsgffUUmeUJYgStvRr8cNZ1LBbrc3FYNLW4JT1dVLia"],"license":"GPL-3.0"},"lib/account-abstraction-v6/contracts/interfaces/IStakeManager.sol":{"keccak256":"0xd227b02888cd4ac68daebcdfd992ec00f9fff66fa3b3bb16f656cd582fa3480f","urls":["bzz-raw://b389da4714a138be63704a576a482505eab2855e263b38a93706395d8d42e7c3","dweb:/ipfs/QmeeAZpdHwUXxqP8pxA7GNtoCGBmmH4FaqLLwScVKGxtxZ"],"license":"GPL-3.0-only"},"lib/account-abstraction-v6/contracts/interfaces/UserOperation.sol":{"keccak256":"0x61374003361059087fdcf17967a7bba052badeaf5c7f0ae689166f8aafd3a45c","urls":["bzz-raw://6ff83c59432e733bf6304dda27cd4b0f34401917dd535e2669cc842d2d26568c","dweb:/ipfs/QmPJbHU5TAjHqUTZzAcicEeG2nknmwCN43L4EW9LHbknTN"],"license":"GPL-3.0"},"lib/account-abstraction-v6/contracts/utils/Exec.sol":{"keccak256":"0x5b232117afbc2939f3ffc92745614867e9e1d475a3e1e5443adae13c200174f1","urls":["bzz-raw://62e7365379a06ead7b47637945bcaee095d51aab1d3ac00ddec69443e6cbe9fe","dweb:/ipfs/QmctG3aw4U3KMSMeJKoLJ1NJewjMWfppnd1m3kxNTe39Uy"],"license":"LGPL-3.0-only"},"lib/account-abstraction-v7/contracts/interfaces/IAggregator.sol":{"keccak256":"0xf100d6fcc0c3b450b13e979b6a42c628c292a1bc340eccc2e7796b80e3975588","urls":["bzz-raw://192938b5b27234d35c8098a319e879363c79f750eea4d0e409dc889a8ce5b155","dweb:/ipfs/QmURpaJFPqEtkKP2ngBsgZhAGN8wAWh5XQpYmCkiz4Urz5"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/interfaces/IEntryPoint.sol":{"keccak256":"0x1972a5fcb3a808b58c85af5741949ef6af11ab0debd3ae8c708171ae1ae0d0c4","urls":["bzz-raw://baa9837ae73b9e2362a47d42d081d7c0f3d8e878e5edb381117d94a6968949c9","dweb:/ipfs/QmUmo6FUE7fv5z1WzW1YFjxp8PqaeN2JrEee9au59w3Xhe"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/interfaces/INonceManager.sol":{"keccak256":"0xd575af0f6ebbd5f0b2933307d44cd7b4e03a69f4b817a67db5409bd3c89aeecb","urls":["bzz-raw://3b1e2dea9b05cfba9d13339ed16d96457dc861013cc4f3f35b71a80f82448db3","dweb:/ipfs/QmVaGy5uGDMSiU2SzyokTjoHFyb39VVG5wtaM9KTnHyZSk"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/interfaces/IStakeManager.sol":{"keccak256":"0xbe5ca9e7f254d031687419e7b96ef48c9c63e9398bbe992dc72ffc6dc14e0a04","urls":["bzz-raw://1fffec71c38627a26fabb423350148009579f092623fb02b471a12d973763a00","dweb:/ipfs/QmRBi31QEYXHj3x1AnQ2jKa2eziZH1b9av396P3b4dw6bj"],"license":"GPL-3.0-only"},"lib/account-abstraction-v7/contracts/interfaces/PackedUserOperation.sol":{"keccak256":"0x1129b46381db68eddbc5cb49e50664667b66b03c480453858e7b25eabe444359","urls":["bzz-raw://499a948aba60480dba6e25c763b8d918f1c246eb7a3302e04f493e080f3295be","dweb:/ipfs/QmeRhhswf4NACcBKam2PyjpTP2ddSm648kah5kkQJsvwz3"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/utils/Exec.sol":{"keccak256":"0x86b1b1cd11158dddb9d381040c57fdc643c74b5e4eed3e7e036f32452672ad74","urls":["bzz-raw://ad88663b6c76df73cf09a272cf333d038df7bb4c51281284b572bf9b46e1cd77","dweb:/ipfs/QmVKxYF8avyPBtqejVhFCM2CuHsfpsCh7TsPqkBLtrgwJQ"],"license":"LGPL-3.0-only"},"lib/account-abstraction-v8/contracts/interfaces/IAggregator.sol":{"keccak256":"0xdf580eafa015b81bde436d6a5468cc92b531ada84007cef885e923f6dfc5e8bf","urls":["bzz-raw://99f0060626568619ac94d750eb4c0888d92ca5775a6bd957fef9847843835b77","dweb:/ipfs/QmXJer3D9sTkEj3mmUDqpdqfGpe46Rn9G22nGrfZdP2wAT"],"license":"MIT"},"lib/account-abstraction-v8/contracts/interfaces/IEntryPoint.sol":{"keccak256":"0x3b0423737e810dd886183ed32cfed9b45edd315f5fb3e1076fc19f86791adc64","urls":["bzz-raw://c43081efaa2eda581b6249053281bb58cb0c4eeb6bf87efc55d95daaec2fc931","dweb:/ipfs/QmXRN2JnyzWZNeFMHauTnDuc7jhxGY4ZkY37HTtjXKdC87"],"license":"MIT"},"lib/account-abstraction-v8/contracts/interfaces/INonceManager.sol":{"keccak256":"0xee493ae200b8c675bdc0da66f7ac6bb883ecea33672d7d0a95526b9eecdedf87","urls":["bzz-raw://979784a0333ac4ef3cc53ab9323a4b7fa574d929bd511f0eed03d3b0370db22d","dweb:/ipfs/QmeiciN5gs4upM6vfKvrRxWiDBUzMU4uJQRRkJajhim9gX"],"license":"MIT"},"lib/account-abstraction-v8/contracts/interfaces/ISenderCreator.sol":{"keccak256":"0x677f651d733162b80d1af7901e4f36469e362737a8353d1d0cc7bb94489e4ba4","urls":["bzz-raw://d6905a80acd70b444ea230b5b582164cb99aaae518bf72c88f8292df31615570","dweb:/ipfs/QmfTKTPwJYf9pmA3T5PE5cCG8GLLDrLaq3jQqMP3pVRL6w"],"license":"MIT"},"lib/account-abstraction-v8/contracts/interfaces/IStakeManager.sol":{"keccak256":"0xe48e904fcac02295aad07fbfa1c1d449a74bf44c04e432afef6f34d1ef726ae0","urls":["bzz-raw://5882b635ea6f5da9ae411485975888431de571f85d4baf35e3db1a83c1f14b85","dweb:/ipfs/QmVSTX36Byr48y8JBmz1hCTGAAyQdTYegQbsSqdRNuSQYz"],"license":"MIT"},"lib/account-abstraction-v8/contracts/interfaces/PackedUserOperation.sol":{"keccak256":"0xb15188e25e45fe73097e279675b6c0beccbd4133ead2260f8f0c4ba840046800","urls":["bzz-raw://5d14c1edd1e95d37c26e54bb34305e2cc9dedc46eb75ec91caeb777678e8ea79","dweb:/ipfs/QmcCL2syVtV7W3XvYx3si84MPkbEJKqEN8hjFNhAPoDDhK"],"license":"MIT"},"lib/account-abstraction-v9/contracts/interfaces/IAggregator.sol":{"keccak256":"0xdf580eafa015b81bde436d6a5468cc92b531ada84007cef885e923f6dfc5e8bf","urls":["bzz-raw://99f0060626568619ac94d750eb4c0888d92ca5775a6bd957fef9847843835b77","dweb:/ipfs/QmXJer3D9sTkEj3mmUDqpdqfGpe46Rn9G22nGrfZdP2wAT"],"license":"MIT"},"lib/account-abstraction-v9/contracts/interfaces/IEntryPoint.sol":{"keccak256":"0x62f739f59c661f48b750e1d67d96f209056bbc2e4b5e48cbcd0656d162e566cd","urls":["bzz-raw://ee103fb0c5103bc001171303bac9f80659c5f0efc4ebf4cfa22e1adc831c68ce","dweb:/ipfs/QmbiosncMJBe3skD8KsCXE9Y3C6NdKthHq83ba3Sw6RP4U"],"license":"MIT"},"lib/account-abstraction-v9/contracts/interfaces/INonceManager.sol":{"keccak256":"0x0a93a26e990e3da5762c461f5f500bec0f6e216bb42c55f07d95651bd85d5f74","urls":["bzz-raw://d76343b1e306ed0ed2a5f49b578b8c30d1c6aecac260c8b71d30665021f93961","dweb:/ipfs/QmPo7xaetd9koekFkNoapGUE2omFH1HhxF35PstTH6fG3J"],"license":"MIT"},"lib/account-abstraction-v9/contracts/interfaces/ISenderCreator.sol":{"keccak256":"0x677f651d733162b80d1af7901e4f36469e362737a8353d1d0cc7bb94489e4ba4","urls":["bzz-raw://d6905a80acd70b444ea230b5b582164cb99aaae518bf72c88f8292df31615570","dweb:/ipfs/QmfTKTPwJYf9pmA3T5PE5cCG8GLLDrLaq3jQqMP3pVRL6w"],"license":"MIT"},"lib/account-abstraction-v9/contracts/interfaces/IStakeManager.sol":{"keccak256":"0xcbac5ac68fb0582d743c4172cc78afc530f750ed529386327ebfa909be067111","urls":["bzz-raw://95ec6059800b3c9a645c1fdc33061f7a48c2b49b9f8bce53d55fc840092dd964","dweb:/ipfs/Qmb33bEcx36hdhXpVCcsUGFmk3AGEU1rto9FU7VBu5S941"],"license":"MIT"},"lib/account-abstraction-v9/contracts/interfaces/PackedUserOperation.sol":{"keccak256":"0xa262abaec9b922c33e54dd8cd88d4fd1989915e16127959736af966884b4d441","urls":["bzz-raw://8cb49a30d699867fd6efa3e349b5802dd1ec1a57379e70077e38fe001e19008d","dweb:/ipfs/QmdsY3et68ceJAyuDScz8iWJfimXmApf6Qcp3BmqDjNSzc"],"license":"MIT"},"lib/openzeppelin-contracts-v4.8.3/contracts/security/ReentrancyGuard.sol":{"keccak256":"0x190dd6f8d592b7e4e930feb7f4313aeb8e1c4ad3154c27ce1cf6a512fc30d8cc","urls":["bzz-raw://4ce8dfb62d0c4fa260d6eec8f1cd47f5f2a044e11bde5b31d18072fa6e7d9010","dweb:/ipfs/QmTyFztU3tLEcEDnqqiaW4UJetqsU77LXc6pjc9oTXCK5u"],"license":"MIT"},"lib/openzeppelin-contracts-v4.8.3/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-v4.8.3/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts-v4.8.3/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/solady/src/tokens/ERC20.sol":{"keccak256":"0x1c3cdf5158b29b16ba2d2c7ff1f6d4304754605441257e198b46803f0fa9df1a","urls":["bzz-raw://f6ed3d15fd372495ff76439878fb5e007ae0b39da3ce3d9fd877ee8147647bb2","dweb:/ipfs/QmZ1zC91VhPHMXAdcY8SahJMwDsC2B5q9uXFF16R5eHmkV"],"license":"MIT"},"lib/solady/src/utils/LibBytes.sol":{"keccak256":"0x905f1c122299888350964a3bdd3dccd4b969273389b8d869f9aacb6871ff199e","urls":["bzz-raw://b6cff3ef7090aa48f214b960f373a33c15878f80e617443a3a4d53f130bab862","dweb:/ipfs/QmdMEpK6ZVxUesqSpurqS9UkDnm1kAnjUeJKLN6ZWPNJnT"],"license":"MIT"},"src/IEntryPointSimulations.sol":{"keccak256":"0xbc2129076267d33c8a7a7bb9ed92cc7b4a7d0d20c224a5f428412cca113bed41","urls":["bzz-raw://f35d68119a9c4108b415c8523667bae15466b544f2e0a17111e7c8481bdb07b5","dweb:/ipfs/Qme8yMWE1KLcGmJ5UhHS4KBc27TRTaeoXwBxaXQbErAC5t"],"license":"MIT"},"src/PimlicoSimulations.sol":{"keccak256":"0xa980588f431640f95765d3c16bccad06c70308ce8fb0d8bcfafa744a10d9e6dc","urls":["bzz-raw://d56374264adf0998b0063c709b7abfb1ec6b7ee34903ce96e48060c8b232d4f4","dweb:/ipfs/QmeVKWkmpFz5J6vLqFPzAzmMoMPuvjS2v6jBoGNuvRCsQA"],"license":"MIT"},"src/SimulationOverrideHelper.sol":{"keccak256":"0x327a9038314036c1259ce7d2422d17b10f264df6b0d9f6b87cddb6b047898774","urls":["bzz-raw://f4288cd354dbc1344dbe6139a862abe6bbc784186705cd2fc5197ef0e26d8b66","dweb:/ipfs/Qmerifmk26zWoYk2hRXptyC6ncPH4m7zyQEDJERHNo5ijf"],"license":"MIT"},"src/v06/EntryPointGasEstimationOverride.sol":{"keccak256":"0xd543e1dfeb6c3f74ce1964099364ce549563c11ea47c3cb97b02bc7e71e8f46d","urls":["bzz-raw://53d579d8654dbed980bb14d08ecafddb30b4f634ffedd4a64a2d30b39803d4f7","dweb:/ipfs/QmTnT9yk1AB2LydP2QWiyuPrTHAZzqFcrLLjkB5Q1z7DpD"],"license":"GPL-3.0"},"src/v08/IEntryPointFilterOpsOverride.sol":{"keccak256":"0xe069a104d10fd2a44eaa5fb8e5b42c88db1b79e2fb158d479baf1d037100aa0e","urls":["bzz-raw://f1440a823d770d3b70e73c769ac97039facc8b9cdb3f41debd37ae7a12ef5e9b","dweb:/ipfs/QmahuKjkumBBkJEgfogRM2Pa3sSFLQ6mkyXBao87G4EF4T"],"license":"MIT"},"src/v09/IEntryPointFilterOpsOverride.sol":{"keccak256":"0x650c3d21c5c2cf5df86280c280361470636fa01aa697928d8c9cb6e3d304121a","urls":["bzz-raw://099ac0bd696fa0a16ade75f8bac3d0e60cdee9d8cec1c44f2b231095f566104f","dweb:/ipfs/QmNf3jPVQ3bZtGpKtuR1aqV8bT16MhZSj4qmxUbmSiBXR5"],"license":"MIT"}},"version":1},"id":37}