@pimlico/alto 0.0.0-main.20251020T162406 → 0.0.0-main.20251021T165518

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 (73) 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/EntryPointGasEstimationOverride.sol/EntryPointGasEstimationOverride06.json +1 -1
  10. package/contracts/EntryPointSimulations.sol/EntryPointSimulations07.json +1 -1
  11. package/contracts/EntryPointSimulations.sol/EntryPointSimulations08.json +1 -1
  12. package/contracts/Exec.sol/Exec.json +1 -1
  13. package/contracts/IAccount.sol/IAccount.json +1 -1
  14. package/contracts/IAccountExecute.sol/IAccountExecute.json +1 -1
  15. package/contracts/IAggregator.sol/IAggregator.json +1 -1
  16. package/contracts/IERC165.sol/IERC165.json +1 -1
  17. package/contracts/IERC5267.sol/IERC5267.json +1 -1
  18. package/contracts/IEntryPoint.sol/IEntryPoint.json +1 -1
  19. package/contracts/IEntryPointFilterOpsOverride.sol/IEntryPointFilterOpsOverride08.json +1 -1
  20. package/contracts/IEntryPointSimulations.sol/IEntryPointSimulations.json +1 -1
  21. package/contracts/INonceManager.sol/INonceManager.json +1 -1
  22. package/contracts/IPaymaster.sol/IPaymaster.json +1 -1
  23. package/contracts/ISenderCreator.sol/ISenderCreator.json +1 -1
  24. package/contracts/IStakeManager.sol/IStakeManager.json +1 -1
  25. package/contracts/LibBytes.sol/LibBytes.json +1 -1
  26. package/contracts/Math.sol/Math.json +1 -1
  27. package/contracts/MessageHashUtils.sol/MessageHashUtils.json +1 -1
  28. package/contracts/NonceManager.sol/NonceManager.json +1 -1
  29. package/contracts/Panic.sol/Panic.json +1 -1
  30. package/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -1
  31. package/contracts/ReentrancyGuard.sol/ReentrancyGuard.json +1 -1
  32. package/contracts/ReentrancyGuardTransient.sol/ReentrancyGuardTransient.json +1 -1
  33. package/contracts/SafeCast.sol/SafeCast.json +1 -1
  34. package/contracts/SenderCreator.sol/SenderCreator.json +1 -1
  35. package/contracts/ShortStrings.sol/ShortStrings.json +1 -1
  36. package/contracts/SignedMath.sol/SignedMath.json +1 -1
  37. package/contracts/SimulationOverrideHelper.sol/SimulationOverrideHelper.json +1 -1
  38. package/contracts/StakeManager.sol/StakeManager.json +1 -1
  39. package/contracts/StorageSlot.sol/StorageSlot.json +1 -1
  40. package/contracts/Strings.sol/Strings.json +1 -1
  41. package/contracts/TransientSlot.sol/TransientSlot.json +1 -1
  42. package/contracts/UserOperation.sol/UserOperationLib.json +1 -1
  43. package/contracts/UserOperationLib.sol/UserOperationLib.json +1 -1
  44. package/contracts/build-info/{18c8965fdfa23caa.json → 006aa55b425148d5.json} +1 -1
  45. package/contracts/build-info/{1961a9e5bee7b1e0.json → 416ffb069999d6eb.json} +1 -1
  46. package/contracts/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -1
  47. package/contracts/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -1
  48. package/contracts/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -1
  49. package/contracts/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -1
  50. package/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -1
  51. package/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -1
  52. package/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -1
  53. package/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -1
  54. package/contracts/utils/Exec.sol/Exec.json +1 -1
  55. package/contracts/utils/StorageSlot.sol/StorageSlot.json +1 -1
  56. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride06.json +1 -1
  57. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride07.json +1 -1
  58. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride08.json +1 -1
  59. package/esm/contracts/EntryPointGasEstimationOverride.sol/EntryPointGasEstimationOverride06.json +1 -1
  60. package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations07.json +1 -1
  61. package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations08.json +1 -1
  62. package/esm/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -1
  63. package/esm/executor/bundleManager.js +3 -3
  64. package/esm/executor/bundleManager.js.map +1 -1
  65. package/esm/executor/executorManager.js +5 -5
  66. package/esm/executor/executorManager.js.map +1 -1
  67. package/esm/executor/senderManager/flushOnStartUp.js +4 -4
  68. package/esm/executor/senderManager/flushOnStartUp.js.map +1 -1
  69. package/esm/executor/utils.js +3 -3
  70. package/esm/executor/utils.js.map +1 -1
  71. package/esm/handlers/gasPriceManager.js +2 -2
  72. package/esm/handlers/gasPriceManager.js.map +1 -1
  73. package/package.json +1 -1
@@ -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":"0x60808060405234603a577f20d4cb4d83077ae7f93cbc84f032f6918d99772c5bb321c4333007d83641ab7e600080a161389490816100408239f35b600080fdfe60a0604052600436101561001257600080fd5b60006080526080513560e01c8063141eb033146122a75780632e5a0a9314612238578063685f602614611e345780637134990314611d26578063861d9d5914611ac757806390d81dfb146118b3578063959c4cb7146112a75780639f2d378914611215578063a4968eab14610ff0578063b21b38c814610d54578063de040de114610a3d578063ef5bfc371461079e578063f1143043146107165763fccb5ff6146100bc57600080fd5b3461048b57606036600319011261048b5760043567ffffffffffffffff811161048b576100ed9036906004016126c5565b906100f66124c3565b906100ff6124d9565b90610108612a2e565b5061011161306b565b8051906801000000000000000082116106fe576080515482608051558083106105ee575b5060808051805251939493907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563906020015b8383106105ca575050505060805192608051916001600160a01b038060805195169216956040945b8181106101c9576101c58787878151926101a884612535565b835260208301526101b76132be565b81830152519182918261286b565b0390f35b85516101d587826125e0565b600181526080515b601f198801811061055c57506101f4828486613581565b6101208136031261048b5787519061020b826125a6565b610214816124ef565b8252602081013560208301528881013567ffffffffffffffff811161048b576102409036908301612636565b89830152606081013567ffffffffffffffff811161048b576102659036908301612636565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013567ffffffffffffffff811161048b576102a99036908301612636565b60e08301526101008101359067ffffffffffffffff821161048b576102d091369101612636565b6101008201526102df826129d7565b526102e9816129d7565b5084315a918a3b1561048b578851907f765e827f000000000000000000000000000000000000000000000000000000008252604482018a600484015281518091526064830190602060648260051b860101930191608051905b8282106104915750505050876024830152818c8180608051940391608051905af19081610472575b506104445750506103c261037c612f82565b6020610389848688613581565b8951809481927f22cdde4c0000000000000000000000000000000000000000000000000000000083528460048401526024830190612aef565b03818d5afa91821561043857608051926103fe575b50600192916103f8918951916103ec83612551565b82526020820152613266565b0161018f565b90915060203d8111610431575b61041581836125e0565b6020826000928101031261042e575051906103f86103d7565b80fd5b503d61040b565b88513d608051823e3d90fd5b956104606001939761046661046c949b6104605a8b319e613236565b90613259565b9a613236565b946103f8565b60805161047e916125e0565b60805161048b573861036a565b60805180fd5b909192936020989e9798808f9e9c9f610542909c9e999c6001946063198b82030187526101006105306105006104ee8d51956001600160a01b038751168652888701518987015261012081880151918701526101208601906126a0565b606086015185820360608701526126a0565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e08601526126a0565b920151906101008184039101526126a0565b9601920192019092919d97969d9c999b9c9a98959a610342565b602090889795989992939996949651610574816125a6565b608051815260805183820152606089820152606080820152608051608082015260805160a082015260805160c0820152606060e082015260606101008201528282860101520197919097969395969492946101dd565b60026020826105df6001949a999a5186613104565b01920192019190959495610167565b6001600160ff1b03811681036106e6576001600160ff1b03831683036106e6576080516080515260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b81811061066e5750610135565b60805181556001810180546002929190610687906130b3565b80610695575b505001610661565b601f81116001146106ae575060805190555b388061068d565b6106cf9082608051526001601f602060805120920160051c820191016130ed565b6080805182905251602081209181905590556106a7565b634e487b7160e01b6080515260116004526024608051fd5b634e487b7160e01b6080515260416004526024608051fd5b3461048b576101c561078a61077b6107746107666001600160a01b0361073b36612957565b6107499793949691976133d8565b5060405197889363af32494360e01b60208601526024850161341b565b03601f1981018652856125e0565b16906135a4565b60208082518301019101613441565b6040519182916020835260208301906128f8565b3461048b57604036600319011261048b5760043567ffffffffffffffff811161048b576107cf9036906004016126c5565b9060243567ffffffffffffffff811161048b576107f09036906004016126c5565b838102939192918015818604831417156106e65761080d85612602565b9461081b60405196876125e0565b80865261082a601f1991612602565b016080515b818110610a2657505060805190815b8181106108b557866040518091602082016020835281518091526020604084019201906080515b818110610873575050500390f35b9193509160206060600192604087516001600160a01b0381511683526001600160a01b0385820151168584015201516040820152019401910191849392610865565b6108c86108c382848861355d565b61356d565b608051906001600160a01b038116915b8681106108ea5750505060010161083e565b86898273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b036109186108c384878761355d565b1603610984575050508131905b6109336108c3828a8d61355d565b916001600160a01b036040519361094985612535565b86855216602084015260408301528660001981146106e657876001936109768e9a8661097d95019b6129fa565b528c6129fa565b50016108d8565b61099e6108c36001600160a01b039260249560209561355d565b16604051928380927f70a082310000000000000000000000000000000000000000000000000000000082528860048301525afa908115610a1957608051916109e8575b5090610925565b90506020813d8211610a11575b81610a02602093836125e0565b8101031261048b57518b6109e1565b3d91506109f5565b6040513d608051823e3d90fd5b602090610a31612a4f565b82828a0101520161082f565b3461048b57610b5a6107746107666001600160a01b03610a5c36612957565b604097939496919751610a6e8161258a565b604051610a7a8161258a565b6080518152608051602082015260805160408201526080516060820152606060808201528152604051610aac81612551565b60008152600060208201526020820152604051610ac881612551565b60008152600060208201526040820152604051610ae481612551565b60008152600060208201526060820152608060405191610b0383612551565b81518352604051610b1381612551565b6000815260006020820152602084015201526040519788937faec321fb0000000000000000000000000000000000000000000000000000000060208601526024850161341b565b80518101602081019160208183031261048b5760208101519067ffffffffffffffff821161048b5701808203601f19810192906101401361048b5760405190610ba28261258a565b602083015167ffffffffffffffff811161048b578301602081019160a09190031261048b5760405190610bd48261258a565b8051825260208101516020830152604081015160408301526060810151606083015260808101519067ffffffffffffffff821161048b57610c1791879101612c6a565b60808201528152610c2b8460408401613535565b9160208201928352610c408560808301613535565b90604083019182526060610c578760c08401613535565b8482019081529560bf19011261048b57602080958180959481610cfe60808298610ca36101409e6101206040519b610c8e8d612551565b610c9b6101008201612d95565b8d5201613535565b848a01528181019889526040519d848f9e928f938452519201528c61016082519101528c610180858301519101528c6101a060408301519101528c6101c06060830151910152015160a06101e08d01526102008c01906126a0565b9851805160408c0152015160608a015251805160808a0152015160a088015251805160c0880152015160e0860152516001600160a01b038151166101008601520151805161012085015201516101408301520390f35b3461048b5760a036600319011261048b5760043567ffffffffffffffff811161048b57610120600319823603011261048b57610d8e6124c3565b610d966124d9565b9060643567ffffffffffffffff811161048b57610db79036906004016126c5565b60849491943567ffffffffffffffff811161048b57610dda9036906004016126c5565b6040969196519663ef5bfc3760e01b88526080518880610e008585898960048601612ea1565b0381305afa978815610a195760805198610f99575b50610ea494610766610ebc9895610e646001600160a01b0396610e5661077b9b976107749760405195869463ef5bfc3760e01b602087015260248601612ea1565b03601f1981018352826125e0565b6040519788937f7da0c462000000000000000000000000000000000000000000000000000000006020860152606060248601526084850190600401612aef565b306044850152838103602319016064850152906126a0565b60c081015115610f8d5760e0610edd91015160208082518301019101612da9565b90610ee88151612fff565b916080515b8251811015610f7f57806001600160a01b03610f0b600193866129fa565b5151166001600160a01b036020610f2284886129fa565b510151166040610f3284886129fa565b5101516040610f4185886129fa565b5101519160405193610f5285612503565b8452602084015260408301526060820152610f6d82876129fa565b52610f7881866129fa565b5001610eed565b604051806101c586826127fd565b60e00151602081519101fd5b61077491985094610766610ebc9895610e646001600160a01b0396610e5661077b9b97610fdc610ea49c3d80608051833e610fd481836125e0565b810190612da9565b9e9750979b50509650509598505094610e15565b3461048b57610ffe366126f6565b60409793959297969196519661101388612535565b61101b6133d8565b8852602088019861102a612a6e565b8a526040890197611039612a6e565b895261107661077b826110668b610e5660405193849263af32494360e01b60208501528d6024850161341b565b6001600160a01b0388168a6135a4565b8a52878787876110bb8888888860405198899788977f2e5a0a930000000000000000000000000000000000000000000000000000000089526080519a60048a016134e3565b0381608051305af1908115610a1957608051916111f9575b508b5260e0810135601e198236030181121561048b57810180359067ffffffffffffffff821161048b57602082360391011361048b5760141115611160575b61113a8a6101c58b61114d8f60405195869560208752516060602088015260808701906128f8565b9051858203601f19016040870152612782565b9051838203601f19016060850152612782565b906111a2939291604099989951998a9788977f9f2d37890000000000000000000000000000000000000000000000000000000089526080519a60048a016134e3565b0381608051305af1918215610a195761113a946101c59361114d92608051916111d5575b50835294829387808080611112565b6111f391503d80608051833e6111eb81836125e0565b810190612cac565b876111c6565b61120f91503d80608051833e6111eb81836125e0565b8c6110d3565b3461048b576101c56112936112846107666107746001600160a01b0361123a366126f6565b92958097999661124e9b959b939293612a6e565b506040519b8c977fd72f25930000000000000000000000000000000000000000000000000000000060208a015260248901612c13565b60208082518301019101612cac565b604051918291602083526020830190612782565b3461048b57606036600319011261048b5760043567ffffffffffffffff811161048b576112d89036906004016126c5565b906112e16124c3565b906112ea6124d9565b906112f3612a2e565b506112fc61306b565b8051906801000000000000000082116106fe576080515482608051558083106117bb575b5060808051805251939493907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563906020015b838310611797575050505060805192608051916001600160a01b038060805195169216956040945b818110611393576101c58787878151926101a884612535565b855161139f87826125e0565b600181526080515b601f198801811061171757506113be828486613213565b6101608136031261048b578751906113d58261256d565b6113de816124ef565b8252602081013560208301528881013567ffffffffffffffff811161048b5761140a9036908301612636565b89830152606081013567ffffffffffffffff811161048b5761142f9036908301612636565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013560e083015261010081013561010083015261012081013567ffffffffffffffff811161048b5761148a9036908301612636565b6101208301526101408101359067ffffffffffffffff821161048b576114b291369101612636565b6101408201526114c1826129d7565b526114cb816129d7565b5084315a918a3b1561048b578851907f1fad948c000000000000000000000000000000000000000000000000000000008252604482018a600484015281518091526064830190602060648260051b860101930191608051905b8282106116465750505050876024830152818c8180608051940391608051905af1908161162d575b5061160b5750506115a461155e612f82565b602061156b848688613213565b8951809481927fa61935310000000000000000000000000000000000000000000000000000000083528460048401526024830190612ec8565b03818d5afa91821561043857608051926115d4575b50600192916115ce918951916103ec83612551565b0161137a565b90915060203d8111611604575b6115eb81836125e0565b6020826000928101031261042e575051906115ce6115b9565b503d6115e1565b9561046060019397610466611627949b6104605a8b319e613236565b946115ce565b608051611639916125e0565b60805161048b578b61154c565b909192936020989e9798808f9e9c9f6116fd909c9e999c6001946063198b82030187526101406116eb6116a36104ee8d51956001600160a01b038751168652888701518987015261016081880151918701526101608601906126a0565b6080850151608085015260a085015160a085015260c085015160c085015260e085015160e08501526101008501516101008501526101208501518482036101208601526126a0565b920151906101408184039101526126a0565b9601920192019092919d97969d9c999b9c9a98959a611524565b60209088979598999293999694965161172f8161256d565b608051815260805183820152606089820152606080820152608051608082015260805160a082015260805160c082015260805160e0820152608051610100820152606061012082015260606101408201528282860101520197919097969395969492946113a7565b60026020826117ac6001949a999a5186613104565b01920192019190959495611352565b6001600160ff1b03811681036106e6576001600160ff1b03831683036106e6576080516080515260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b81811061183b5750611320565b60805181556001810180546002929190611854906130b3565b80611862575b50500161182e565b601f811160011461187b575060805190555b898061185a565b61189c9082608051526001601f602060805120920160051c820191016130ed565b608080518290525160208120918190559055611874565b3461048b5760a036600319011261048b5760043567ffffffffffffffff811161048b57610120600319823603011261048b576118ed6124c3565b6118f56124d9565b9060643567ffffffffffffffff811161048b576119169036906004016126c5565b608435949167ffffffffffffffff861161048b576119ae611990946119c4936001600160a01b03989361194e8a9536906004016126c5565b9590996040519b8c9a8b9a7fb21b38c8000000000000000000000000000000000000000000000000000000008c5260a060048d015260a48c0190600401612aef565b951660248a0152166044880152868303600319016064880152612e5f565b9060031984830301608485015260805195612e5f565b0381608051305af18015610a1957608051906119eb575b6101c590604051918291826127fd565b503d80608051833e6119fd81836125e0565b81019060208183031261048b5780519067ffffffffffffffff821161048b57019080601f8301121561048b57815191611a3583612602565b91611a4360405193846125e0565b83835260208084019460071b8301019181831161048b57602001935b828510611a73575050506101c591506119db565b60808583031261048b576020608091604051611a8e81612503565b611a9788612d95565b8152611aa4838901612d95565b838201526040880151604082015260608801516060820152815201940193611a5f565b3461048b57606036600319011261048b5760043567ffffffffffffffff811161048b57611af89036906004016126c5565b90611b016124c3565b906001600160a01b03611b126124d9565b611b1a612a2e565b501690813b1561048b576040517fd12e825d0000000000000000000000000000000000000000000000000000000081526080518160048183875af1611d0d575b50611b9f6001600160a01b0391604051957ffccb5ff6000000000000000000000000000000000000000000000000000000008752606060048801526064870191612bac565b9216602484015260448301528180608051920381608051305af18015610a195760805190611bd8575b6101c5906040519182918261286b565b503d80608051833e611bea81836125e0565b81019060208183031261048b5780519067ffffffffffffffff821161048b570160608183031261048b5760405190611c2182612535565b805182526020810151602083015260408101519067ffffffffffffffff821161048b570182601f8201121561048b57805190611c5c82612602565b91611c6a60405193846125e0565b80835260208084019160051b8301019185831161048b5760208101915b838310611ca157505050506101c592506040820152611bc8565b825167ffffffffffffffff811161048b578201906040828903601f19011261048b5760405190611cd082612551565b6020830151825260408301519167ffffffffffffffff831161048b57611cfe8a602080969581960101612c6a565b83820152815201920191611c87565b608051611d19916125e0565b60805161048b5784611b5a565b3461048b5760e036600319011261048b57611d3f6124a8565b611d476124c3565b60443567ffffffffffffffff811161048b57611d679036906004016126c5565b906064359267ffffffffffffffff841161048b57610120600319853603011261048b576101c594611e2f61128494611dfa61129397611da4612a6e565b50611de56040519788947facbe911e00000000000000000000000000000000000000000000000000000000602087015260c0602487015260e4860191612bac565b83810360231901604485015290600401612aef565b6001600160a01b0385166064830152608435608483015260a43560a483015260c43560c483015203601f1981018552846125e0565b6135a4565b3461048b57608036600319011261048b5760043567ffffffffffffffff811161048b57610160600319823603011261048b57611e6e6124c3565b9060443567ffffffffffffffff811161048b57611e8f9036906004016126c5565b909260643567ffffffffffffffff811161048b57611eb19036906004016126c5565b6040959195519563ef5bfc3760e01b87526080518780611ed785858a8960048601612ea1565b0381305afa968715610a195760805197612203575b5091611f1f611f2d926001600160a01b0395946080515060405197889463ef5bfc3760e01b602087015260248601612ea1565b03601f1981018552846125e0565b1691823b1561048b57611f9992611f7e916040518095819482937fd6383f94000000000000000000000000000000000000000000000000000000008452606060048501526064840190600401612ec8565b306024840152828103600319016044840152608051966126a0565b0391608051905af190816121f1575b506121ad57611fb5612f82565b600481511115612169576001600160e01b0319611fd9611fd4836137b0565b612fb2565b167f220266b6000000000000000000000000000000000000000000000000000000008114612160577f462c71b200000000000000000000000000000000000000000000000000000000148015612157575b61214f5780516120399161382d565b8051810160c08282031261048b5761205360608301612fec565b5061206060808301612fec565b5061206d60a08301612c5d565b9160c08101519167ffffffffffffffff831161048b57612094926020809201920101612c6a565b901561214f57806020806120ad93518301019101612da9565b906120b88151612fff565b916080515b8251811015610f7f57806001600160a01b036120db600193866129fa565b5151166001600160a01b0360206120f284886129fa565b51015116604061210284886129fa565b510151604061211185886129fa565b510151916040519361212285612503565b845260208401526040830152606082015261213d82876129fa565b5261214881866129fa565b50016120bd565b602081519101fd5b5060805161202a565b50602081519101fd5b606460405162461bcd60e51b815260206004820152601d60248201527f556e657870656374656420726576657274206461746120666f726d61740000006044820152fd5b606460405162461bcd60e51b815260206004820152601c60248201527f73696d756c61746548616e646c654f70206d75737420726576657274000000006044820152fd5b6080516121fd916125e0565b82611fa8565b6001600160a01b039493919750611f2d9261222c611f1f923d80608051833e610fd481836125e0565b98929495509250611eec565b3461048b576101c56112936112846107666107746001600160a01b0361225d366126f6565b9295809799966122719b959b939293612a6e565b506040519b8c977f212eccc60000000000000000000000000000000000000000000000000000000060208a015260248901612c13565b3461048b57606036600319011261048b576122c06124a8565b6122c86124c3565b60443567ffffffffffffffff811161048b573660238201121561048b5780600401356122f381612602565b9161230160405193846125e0565b8183526024602084019260051b8201019036821161048b5760248101925b828410612478575050505080519261233684612602565b9361234460405195866125e0565b808552612353601f1991612602565b016080515b8181106124675750506001600160a01b036080519316925b82518110156123fe57600190606061238882866129fa565b516040516123ac81610e56602082019463428557b160e11b86528960248401612a0e565b5a608051926080519251918a60805191f1156123df575b6123cd82886129fa565b526123d881876129fa565b5001612370565b503d60405190602081830101604052808252608051602083013e6123c3565b846040518091602082016020835281518091526040830190602060408260051b860101930191608051905b82821061243857505050500390f35b919360019193955060206124578192603f198a820301865288516126a0565b9601920192018594939192612429565b806060602080938901015201612358565b833567ffffffffffffffff811161048b5760209161249d839260243691870101612636565b81520193019261231f565b600435906001600160a01b03821682036124be57565b600080fd5b602435906001600160a01b03821682036124be57565b604435906001600160a01b03821682036124be57565b35906001600160a01b03821682036124be57565b6080810190811067ffffffffffffffff82111761251f57604052565b634e487b7160e01b600052604160045260246000fd5b6060810190811067ffffffffffffffff82111761251f57604052565b6040810190811067ffffffffffffffff82111761251f57604052565b610160810190811067ffffffffffffffff82111761251f57604052565b60a0810190811067ffffffffffffffff82111761251f57604052565b610120810190811067ffffffffffffffff82111761251f57604052565b610100810190811067ffffffffffffffff82111761251f57604052565b90601f8019910116810190811067ffffffffffffffff82111761251f57604052565b67ffffffffffffffff811161251f5760051b60200190565b67ffffffffffffffff811161251f57601f01601f191660200190565b81601f820112156124be5780359061264d8261261a565b9261265b60405194856125e0565b828452602083830101116124be57816000926020809301838601378301015290565b60005b8381106126905750506000910152565b8181015183820152602001612680565b906020916126b98151809281855285808601910161267d565b601f01601f1916010190565b9181601f840112156124be5782359167ffffffffffffffff83116124be576020808501948460051b0101116124be57565b60e06003198201126124be576004356001600160a01b03811681036124be57916024356001600160a01b03811681036124be579160443567ffffffffffffffff81116124be5781612749916004016126c5565b929092916064359067ffffffffffffffff82116124be576101209082900360031901126124be57600401906084359060a4359060c43590565b90815160028110156127e757815260806040806127cc81602087015160a06020880152805160a08801526020810151151560c08801520151606060e08701526101008601906126a0565b94015180518285015260208101516060850152015191015290565b634e487b7160e01b600052602160045260246000fd5b602060408183019282815284518094520192019060005b8181106128215750505090565b90919260206080600192606087516001600160a01b0381511683526001600160a01b0385820151168584015260408101516040840152015160608201520194019101919091612814565b602081526040608082019280516020840152602081015182840152015191606080830152825180915260a0820191602060a08360051b8301019401926000915b8383106128ba57505050505090565b90919293946020806128e9600193609f198682030187526040838b5180518452015191818582015201906126a0565b970193019301919392906128ab565b9061010060e061295493805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c0810151151560c08501520151918160e082015201906126a0565b90565b60806003198201126124be576004356001600160a01b03811681036124be57916024356001600160a01b03811681036124be579160443567ffffffffffffffff81116124be57816129aa916004016126c5565b929092916064359067ffffffffffffffff82116124be576101209082900360031901126124be5760040190565b8051156129e45760200190565b634e487b7160e01b600052603260045260246000fd5b80518210156129e45760209160051b010190565b6040906001600160a01b03612954949316815281602082015201906126a0565b60405190612a3b82612535565b606060408360008152600060208201520152565b60405190612a5c82612535565b60006040838281528260208201520152565b60405190612a7b82612535565b8160008152612a88612a2e565b60208201526040612a97612a4f565b910152565b9035601e19823603018112156124be57016020813591019167ffffffffffffffff82116124be5781360383136124be57565b908060209392818452848401376000828201840152601f01601f1916010190565b612954916001600160a01b03612b04836124ef565b16815260208201356020820152612b9d612b91612b58612b3d612b2a6040870187612a9c565b6101206040880152610120870191612ace565b612b4a6060870187612a9c565b908683036060880152612ace565b6080850135608085015260a085013560a085015260c085013560c0850152612b8360e0860186612a9c565b9085830360e0870152612ace565b92610100810190612a9c565b91610100818503910152612ace565b90602083828152019060208160051b85010193836000915b838310612bd45750505050505090565b909192939495601f19828203018652863561011e19843603018112156124be576020612c0560019386839401612aef565b980196019493019190612bc4565b9397969592612c4890612c3a6001600160a01b039360a0989560c0895260c0890191612bac565b908682036020880152612aef565b97166040840152606083015260808201520152565b519081151582036124be57565b81601f820112156124be578051612c808161261a565b92612c8e60405194856125e0565b818452602082840101116124be57612954916020808501910161267d565b6020818303126124be5780519067ffffffffffffffff82116124be57018082039160a083126124be5760405192612ce284612535565b825160028110156124be578452602083015167ffffffffffffffff81116124be5783016060818403126124be5760405190612d1c82612535565b80518252612d2c60208201612c5d565b602083015260408101519367ffffffffffffffff85116124be57606094612d539201612c6a565b60408201526020850152603f1901126124be57608060405191612d7583612535565b604081015183526060810151602084015201516040820152604082015290565b51906001600160a01b03821682036124be57565b6020818303126124be5780519067ffffffffffffffff82116124be570181601f820112156124be57805190612ddd82612602565b92612deb60405194856125e0565b828452602060608186019402830101918183116124be57602001925b828410612e15575050505090565b6060848303126124be576020606091604051612e3081612535565b612e3987612d95565b8152612e46838801612d95565b8382015260408701516040820152815201930192612e07565b9160209082815201919060005b818110612e795750505090565b9091926020806001926001600160a01b03612e93886124ef565b168152019401929101612e6c565b9290612eba906129549593604086526040860191612e5f565b926020818503910152612e5f565b612954916001600160a01b03612edd836124ef565b16815260208201356020820152612f73612f67612f16612b3d612f036040870187612a9c565b6101606040880152610160870191612ace565b6080850135608085015260a085013560a085015260c085013560c085015260e085013560e0850152610100850135610100850152612f58610120860186612a9c565b90858303610120870152612ace565b92610140810190612a9c565b91610140818503910152612ace565b3d15612fad573d90612f938261261a565b91612fa160405193846125e0565b82523d6000602084013e565b606090565b90602082519201516001600160e01b031981169260048110612fd2575050565b6001600160e01b0319929350829060040360031b1b161690565b519065ffffffffffff821682036124be57565b9061300982612602565b61301660405191826125e0565b8281528092613027601f1991612602565b019060005b82811061303857505050565b60209060405161304781612503565b6000815260008382015260006040820152600060608201528282850101520161302c565b6040519061307a6020836125e0565b600080835282815b82811061308e57505050565b60209060405161309d81612551565b6000815260608382015282828501015201613082565b90600182811c921680156130e3575b60208310146130cd57565b634e487b7160e01b600052602260045260246000fd5b91607f16916130c2565b8181106130f8575050565b600081556001016130ed565b6001602091939293845181550192015191825167ffffffffffffffff811161251f5761313082546130b3565b601f81116131d6575b506020601f82116001146131745781929394600092613169575b50508160011b916000199060031b1c1916179055565b015190503880613153565b601f1982169083600052806000209160005b8181106131be575095836001959697106131a5575b505050811b019055565b015160001960f88460031b161c1916905538808061319b565b9192602060018192868b015181550194019201613186565b61320390836000526020600020601f840160051c81019160208510613209575b601f0160051c01906130ed565b38613139565b90915081906131f6565b91908110156129e45760051b8101359061015e19813603018212156124be570190565b9190820391821161324357565b634e487b7160e01b600052601160045260246000fd5b9190820180921161324357565b600054906801000000000000000082101561251f5760018201806000558210156129e457600080526132bc9160011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301613104565b565b600054906132cb82612602565b916132d960405193846125e0565b8083526000808052907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563602085015b8284106133155750505050565b60405161332181612551565b8254815260405160018401805460009161333a826130b3565b80855291600181169081156133b3575060011461337b575b5050926002928261336960209460019703826125e0565b83820152815201920193019290613308565b6000908152602081209092505b81831061339d57505081016020018282613352565b6001816020925483868801015201920191613388565b60ff191660208087019190915292151560051b85019092019250849150839050613352565b604051906133e5826125c3565b606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b91612954939161343391604085526040850191612bac565b916020818403910152612aef565b6020818303126124be5780519067ffffffffffffffff82116124be5701610100818303126124be5760405191613476836125c3565b815183526020820151602084015260408201516040840152606082015160608401526080820151608084015260a082015160a08401526134b860c08301612c5d565b60c084015260e082015167ffffffffffffffff81116124be576134db9201612c6a565b60e082015290565b94919260c096999897946001600160a01b0361352695816135189516895216602088015260e0604088015260e0870191612bac565b908482036060860152612aef565b95608083015260a08201520152565b91908260409103126124be5760405161354d81612551565b6020808294805184520151910152565b91908110156129e45760051b0190565b356001600160a01b03811681036124be5790565b91908110156129e45760051b8101359061011e19813603018212156124be570190565b60405163428557b160e11b602082019081526000948594859485926135d29186916107669160248401612a0e565b5a935193f1613746573d60405191602082840101604052818352602083013e60048151106136dc5763428557b160e11b6001600160e01b0319613617611fd4846137b0565b16146136725780516136289161382d565b805181016040828203126124be5761364260208301612c5d565b9160408101519167ffffffffffffffff83116124be57613669926020809201920101612c6a565b901561214f5790565b608460405162461bcd60e51b815260206004820152603d60248201527f44656c6567617465416e6452657665727420646964206e6f742072657665727460448201527f20776974682044656c6567617465416e64526576657274206572726f720000006064820152fd5b608460405162461bcd60e51b815260206004820152602a60248201527f44656c6567617465416e6452657665727420726576657274206461746120697360448201527f20746f6f2073686f7274000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602c60248201527f44656c6567617465416e6452657665727420646964206e6f742072657665727460448201527f20617320657870656374656400000000000000000000000000000000000000006064820152fd5b9060009160049060609381516004811115613825575b801561381d575b508281106137da57505050565b6040519450918290039101601f8201601f19165b8181015185820152601f190190811561380757906137ee565b5050604081840160006020820152016040528252565b9050386137cd565b9250826137c6565b9190600492606093815183811115613856575b600481111561381d57508281106137da57505050565b92508261384056fea26469706673582212207b9200fa7f9b339025e714768eb8f9378ea945cd2ee52cfc8fa3dec77666e58c64736f6c634300081c0033","sourceMap":"1102:21517:31:-:0;;;;;;;1519:27;;;;1102:21517;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60a0604052600436101561001257600080fd5b60006080526080513560e01c8063141eb033146122a75780632e5a0a9314612238578063685f602614611e345780637134990314611d26578063861d9d5914611ac757806390d81dfb146118b3578063959c4cb7146112a75780639f2d378914611215578063a4968eab14610ff0578063b21b38c814610d54578063de040de114610a3d578063ef5bfc371461079e578063f1143043146107165763fccb5ff6146100bc57600080fd5b3461048b57606036600319011261048b5760043567ffffffffffffffff811161048b576100ed9036906004016126c5565b906100f66124c3565b906100ff6124d9565b90610108612a2e565b5061011161306b565b8051906801000000000000000082116106fe576080515482608051558083106105ee575b5060808051805251939493907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563906020015b8383106105ca575050505060805192608051916001600160a01b038060805195169216956040945b8181106101c9576101c58787878151926101a884612535565b835260208301526101b76132be565b81830152519182918261286b565b0390f35b85516101d587826125e0565b600181526080515b601f198801811061055c57506101f4828486613581565b6101208136031261048b5787519061020b826125a6565b610214816124ef565b8252602081013560208301528881013567ffffffffffffffff811161048b576102409036908301612636565b89830152606081013567ffffffffffffffff811161048b576102659036908301612636565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013567ffffffffffffffff811161048b576102a99036908301612636565b60e08301526101008101359067ffffffffffffffff821161048b576102d091369101612636565b6101008201526102df826129d7565b526102e9816129d7565b5084315a918a3b1561048b578851907f765e827f000000000000000000000000000000000000000000000000000000008252604482018a600484015281518091526064830190602060648260051b860101930191608051905b8282106104915750505050876024830152818c8180608051940391608051905af19081610472575b506104445750506103c261037c612f82565b6020610389848688613581565b8951809481927f22cdde4c0000000000000000000000000000000000000000000000000000000083528460048401526024830190612aef565b03818d5afa91821561043857608051926103fe575b50600192916103f8918951916103ec83612551565b82526020820152613266565b0161018f565b90915060203d8111610431575b61041581836125e0565b6020826000928101031261042e575051906103f86103d7565b80fd5b503d61040b565b88513d608051823e3d90fd5b956104606001939761046661046c949b6104605a8b319e613236565b90613259565b9a613236565b946103f8565b60805161047e916125e0565b60805161048b573861036a565b60805180fd5b909192936020989e9798808f9e9c9f610542909c9e999c6001946063198b82030187526101006105306105006104ee8d51956001600160a01b038751168652888701518987015261012081880151918701526101208601906126a0565b606086015185820360608701526126a0565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e08601526126a0565b920151906101008184039101526126a0565b9601920192019092919d97969d9c999b9c9a98959a610342565b602090889795989992939996949651610574816125a6565b608051815260805183820152606089820152606080820152608051608082015260805160a082015260805160c0820152606060e082015260606101008201528282860101520197919097969395969492946101dd565b60026020826105df6001949a999a5186613104565b01920192019190959495610167565b6001600160ff1b03811681036106e6576001600160ff1b03831683036106e6576080516080515260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b81811061066e5750610135565b60805181556001810180546002929190610687906130b3565b80610695575b505001610661565b601f81116001146106ae575060805190555b388061068d565b6106cf9082608051526001601f602060805120920160051c820191016130ed565b6080805182905251602081209181905590556106a7565b634e487b7160e01b6080515260116004526024608051fd5b634e487b7160e01b6080515260416004526024608051fd5b3461048b576101c561078a61077b6107746107666001600160a01b0361073b36612957565b6107499793949691976133d8565b5060405197889363af32494360e01b60208601526024850161341b565b03601f1981018652856125e0565b16906135a4565b60208082518301019101613441565b6040519182916020835260208301906128f8565b3461048b57604036600319011261048b5760043567ffffffffffffffff811161048b576107cf9036906004016126c5565b9060243567ffffffffffffffff811161048b576107f09036906004016126c5565b838102939192918015818604831417156106e65761080d85612602565b9461081b60405196876125e0565b80865261082a601f1991612602565b016080515b818110610a2657505060805190815b8181106108b557866040518091602082016020835281518091526020604084019201906080515b818110610873575050500390f35b9193509160206060600192604087516001600160a01b0381511683526001600160a01b0385820151168584015201516040820152019401910191849392610865565b6108c86108c382848861355d565b61356d565b608051906001600160a01b038116915b8681106108ea5750505060010161083e565b86898273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b036109186108c384878761355d565b1603610984575050508131905b6109336108c3828a8d61355d565b916001600160a01b036040519361094985612535565b86855216602084015260408301528660001981146106e657876001936109768e9a8661097d95019b6129fa565b528c6129fa565b50016108d8565b61099e6108c36001600160a01b039260249560209561355d565b16604051928380927f70a082310000000000000000000000000000000000000000000000000000000082528860048301525afa908115610a1957608051916109e8575b5090610925565b90506020813d8211610a11575b81610a02602093836125e0565b8101031261048b57518b6109e1565b3d91506109f5565b6040513d608051823e3d90fd5b602090610a31612a4f565b82828a0101520161082f565b3461048b57610b5a6107746107666001600160a01b03610a5c36612957565b604097939496919751610a6e8161258a565b604051610a7a8161258a565b6080518152608051602082015260805160408201526080516060820152606060808201528152604051610aac81612551565b60008152600060208201526020820152604051610ac881612551565b60008152600060208201526040820152604051610ae481612551565b60008152600060208201526060820152608060405191610b0383612551565b81518352604051610b1381612551565b6000815260006020820152602084015201526040519788937faec321fb0000000000000000000000000000000000000000000000000000000060208601526024850161341b565b80518101602081019160208183031261048b5760208101519067ffffffffffffffff821161048b5701808203601f19810192906101401361048b5760405190610ba28261258a565b602083015167ffffffffffffffff811161048b578301602081019160a09190031261048b5760405190610bd48261258a565b8051825260208101516020830152604081015160408301526060810151606083015260808101519067ffffffffffffffff821161048b57610c1791879101612c6a565b60808201528152610c2b8460408401613535565b9160208201928352610c408560808301613535565b90604083019182526060610c578760c08401613535565b8482019081529560bf19011261048b57602080958180959481610cfe60808298610ca36101409e6101206040519b610c8e8d612551565b610c9b6101008201612d95565b8d5201613535565b848a01528181019889526040519d848f9e928f938452519201528c61016082519101528c610180858301519101528c6101a060408301519101528c6101c06060830151910152015160a06101e08d01526102008c01906126a0565b9851805160408c0152015160608a015251805160808a0152015160a088015251805160c0880152015160e0860152516001600160a01b038151166101008601520151805161012085015201516101408301520390f35b3461048b5760a036600319011261048b5760043567ffffffffffffffff811161048b57610120600319823603011261048b57610d8e6124c3565b610d966124d9565b9060643567ffffffffffffffff811161048b57610db79036906004016126c5565b60849491943567ffffffffffffffff811161048b57610dda9036906004016126c5565b6040969196519663ef5bfc3760e01b88526080518880610e008585898960048601612ea1565b0381305afa978815610a195760805198610f99575b50610ea494610766610ebc9895610e646001600160a01b0396610e5661077b9b976107749760405195869463ef5bfc3760e01b602087015260248601612ea1565b03601f1981018352826125e0565b6040519788937f7da0c462000000000000000000000000000000000000000000000000000000006020860152606060248601526084850190600401612aef565b306044850152838103602319016064850152906126a0565b60c081015115610f8d5760e0610edd91015160208082518301019101612da9565b90610ee88151612fff565b916080515b8251811015610f7f57806001600160a01b03610f0b600193866129fa565b5151166001600160a01b036020610f2284886129fa565b510151166040610f3284886129fa565b5101516040610f4185886129fa565b5101519160405193610f5285612503565b8452602084015260408301526060820152610f6d82876129fa565b52610f7881866129fa565b5001610eed565b604051806101c586826127fd565b60e00151602081519101fd5b61077491985094610766610ebc9895610e646001600160a01b0396610e5661077b9b97610fdc610ea49c3d80608051833e610fd481836125e0565b810190612da9565b9e9750979b50509650509598505094610e15565b3461048b57610ffe366126f6565b60409793959297969196519661101388612535565b61101b6133d8565b8852602088019861102a612a6e565b8a526040890197611039612a6e565b895261107661077b826110668b610e5660405193849263af32494360e01b60208501528d6024850161341b565b6001600160a01b0388168a6135a4565b8a52878787876110bb8888888860405198899788977f2e5a0a930000000000000000000000000000000000000000000000000000000089526080519a60048a016134e3565b0381608051305af1908115610a1957608051916111f9575b508b5260e0810135601e198236030181121561048b57810180359067ffffffffffffffff821161048b57602082360391011361048b5760141115611160575b61113a8a6101c58b61114d8f60405195869560208752516060602088015260808701906128f8565b9051858203601f19016040870152612782565b9051838203601f19016060850152612782565b906111a2939291604099989951998a9788977f9f2d37890000000000000000000000000000000000000000000000000000000089526080519a60048a016134e3565b0381608051305af1918215610a195761113a946101c59361114d92608051916111d5575b50835294829387808080611112565b6111f391503d80608051833e6111eb81836125e0565b810190612cac565b876111c6565b61120f91503d80608051833e6111eb81836125e0565b8c6110d3565b3461048b576101c56112936112846107666107746001600160a01b0361123a366126f6565b92958097999661124e9b959b939293612a6e565b506040519b8c977fd72f25930000000000000000000000000000000000000000000000000000000060208a015260248901612c13565b60208082518301019101612cac565b604051918291602083526020830190612782565b3461048b57606036600319011261048b5760043567ffffffffffffffff811161048b576112d89036906004016126c5565b906112e16124c3565b906112ea6124d9565b906112f3612a2e565b506112fc61306b565b8051906801000000000000000082116106fe576080515482608051558083106117bb575b5060808051805251939493907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563906020015b838310611797575050505060805192608051916001600160a01b038060805195169216956040945b818110611393576101c58787878151926101a884612535565b855161139f87826125e0565b600181526080515b601f198801811061171757506113be828486613213565b6101608136031261048b578751906113d58261256d565b6113de816124ef565b8252602081013560208301528881013567ffffffffffffffff811161048b5761140a9036908301612636565b89830152606081013567ffffffffffffffff811161048b5761142f9036908301612636565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013560e083015261010081013561010083015261012081013567ffffffffffffffff811161048b5761148a9036908301612636565b6101208301526101408101359067ffffffffffffffff821161048b576114b291369101612636565b6101408201526114c1826129d7565b526114cb816129d7565b5084315a918a3b1561048b578851907f1fad948c000000000000000000000000000000000000000000000000000000008252604482018a600484015281518091526064830190602060648260051b860101930191608051905b8282106116465750505050876024830152818c8180608051940391608051905af1908161162d575b5061160b5750506115a461155e612f82565b602061156b848688613213565b8951809481927fa61935310000000000000000000000000000000000000000000000000000000083528460048401526024830190612ec8565b03818d5afa91821561043857608051926115d4575b50600192916115ce918951916103ec83612551565b0161137a565b90915060203d8111611604575b6115eb81836125e0565b6020826000928101031261042e575051906115ce6115b9565b503d6115e1565b9561046060019397610466611627949b6104605a8b319e613236565b946115ce565b608051611639916125e0565b60805161048b578b61154c565b909192936020989e9798808f9e9c9f6116fd909c9e999c6001946063198b82030187526101406116eb6116a36104ee8d51956001600160a01b038751168652888701518987015261016081880151918701526101608601906126a0565b6080850151608085015260a085015160a085015260c085015160c085015260e085015160e08501526101008501516101008501526101208501518482036101208601526126a0565b920151906101408184039101526126a0565b9601920192019092919d97969d9c999b9c9a98959a611524565b60209088979598999293999694965161172f8161256d565b608051815260805183820152606089820152606080820152608051608082015260805160a082015260805160c082015260805160e0820152608051610100820152606061012082015260606101408201528282860101520197919097969395969492946113a7565b60026020826117ac6001949a999a5186613104565b01920192019190959495611352565b6001600160ff1b03811681036106e6576001600160ff1b03831683036106e6576080516080515260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b81811061183b5750611320565b60805181556001810180546002929190611854906130b3565b80611862575b50500161182e565b601f811160011461187b575060805190555b898061185a565b61189c9082608051526001601f602060805120920160051c820191016130ed565b608080518290525160208120918190559055611874565b3461048b5760a036600319011261048b5760043567ffffffffffffffff811161048b57610120600319823603011261048b576118ed6124c3565b6118f56124d9565b9060643567ffffffffffffffff811161048b576119169036906004016126c5565b608435949167ffffffffffffffff861161048b576119ae611990946119c4936001600160a01b03989361194e8a9536906004016126c5565b9590996040519b8c9a8b9a7fb21b38c8000000000000000000000000000000000000000000000000000000008c5260a060048d015260a48c0190600401612aef565b951660248a0152166044880152868303600319016064880152612e5f565b9060031984830301608485015260805195612e5f565b0381608051305af18015610a1957608051906119eb575b6101c590604051918291826127fd565b503d80608051833e6119fd81836125e0565b81019060208183031261048b5780519067ffffffffffffffff821161048b57019080601f8301121561048b57815191611a3583612602565b91611a4360405193846125e0565b83835260208084019460071b8301019181831161048b57602001935b828510611a73575050506101c591506119db565b60808583031261048b576020608091604051611a8e81612503565b611a9788612d95565b8152611aa4838901612d95565b838201526040880151604082015260608801516060820152815201940193611a5f565b3461048b57606036600319011261048b5760043567ffffffffffffffff811161048b57611af89036906004016126c5565b90611b016124c3565b906001600160a01b03611b126124d9565b611b1a612a2e565b501690813b1561048b576040517fd12e825d0000000000000000000000000000000000000000000000000000000081526080518160048183875af1611d0d575b50611b9f6001600160a01b0391604051957ffccb5ff6000000000000000000000000000000000000000000000000000000008752606060048801526064870191612bac565b9216602484015260448301528180608051920381608051305af18015610a195760805190611bd8575b6101c5906040519182918261286b565b503d80608051833e611bea81836125e0565b81019060208183031261048b5780519067ffffffffffffffff821161048b570160608183031261048b5760405190611c2182612535565b805182526020810151602083015260408101519067ffffffffffffffff821161048b570182601f8201121561048b57805190611c5c82612602565b91611c6a60405193846125e0565b80835260208084019160051b8301019185831161048b5760208101915b838310611ca157505050506101c592506040820152611bc8565b825167ffffffffffffffff811161048b578201906040828903601f19011261048b5760405190611cd082612551565b6020830151825260408301519167ffffffffffffffff831161048b57611cfe8a602080969581960101612c6a565b83820152815201920191611c87565b608051611d19916125e0565b60805161048b5784611b5a565b3461048b5760e036600319011261048b57611d3f6124a8565b611d476124c3565b60443567ffffffffffffffff811161048b57611d679036906004016126c5565b906064359267ffffffffffffffff841161048b57610120600319853603011261048b576101c594611e2f61128494611dfa61129397611da4612a6e565b50611de56040519788947facbe911e00000000000000000000000000000000000000000000000000000000602087015260c0602487015260e4860191612bac565b83810360231901604485015290600401612aef565b6001600160a01b0385166064830152608435608483015260a43560a483015260c43560c483015203601f1981018552846125e0565b6135a4565b3461048b57608036600319011261048b5760043567ffffffffffffffff811161048b57610160600319823603011261048b57611e6e6124c3565b9060443567ffffffffffffffff811161048b57611e8f9036906004016126c5565b909260643567ffffffffffffffff811161048b57611eb19036906004016126c5565b6040959195519563ef5bfc3760e01b87526080518780611ed785858a8960048601612ea1565b0381305afa968715610a195760805197612203575b5091611f1f611f2d926001600160a01b0395946080515060405197889463ef5bfc3760e01b602087015260248601612ea1565b03601f1981018552846125e0565b1691823b1561048b57611f9992611f7e916040518095819482937fd6383f94000000000000000000000000000000000000000000000000000000008452606060048501526064840190600401612ec8565b306024840152828103600319016044840152608051966126a0565b0391608051905af190816121f1575b506121ad57611fb5612f82565b600481511115612169576001600160e01b0319611fd9611fd4836137b0565b612fb2565b167f220266b6000000000000000000000000000000000000000000000000000000008114612160577f462c71b200000000000000000000000000000000000000000000000000000000148015612157575b61214f5780516120399161382d565b8051810160c08282031261048b5761205360608301612fec565b5061206060808301612fec565b5061206d60a08301612c5d565b9160c08101519167ffffffffffffffff831161048b57612094926020809201920101612c6a565b901561214f57806020806120ad93518301019101612da9565b906120b88151612fff565b916080515b8251811015610f7f57806001600160a01b036120db600193866129fa565b5151166001600160a01b0360206120f284886129fa565b51015116604061210284886129fa565b510151604061211185886129fa565b510151916040519361212285612503565b845260208401526040830152606082015261213d82876129fa565b5261214881866129fa565b50016120bd565b602081519101fd5b5060805161202a565b50602081519101fd5b606460405162461bcd60e51b815260206004820152601d60248201527f556e657870656374656420726576657274206461746120666f726d61740000006044820152fd5b606460405162461bcd60e51b815260206004820152601c60248201527f73696d756c61746548616e646c654f70206d75737420726576657274000000006044820152fd5b6080516121fd916125e0565b82611fa8565b6001600160a01b039493919750611f2d9261222c611f1f923d80608051833e610fd481836125e0565b98929495509250611eec565b3461048b576101c56112936112846107666107746001600160a01b0361225d366126f6565b9295809799966122719b959b939293612a6e565b506040519b8c977f212eccc60000000000000000000000000000000000000000000000000000000060208a015260248901612c13565b3461048b57606036600319011261048b576122c06124a8565b6122c86124c3565b60443567ffffffffffffffff811161048b573660238201121561048b5780600401356122f381612602565b9161230160405193846125e0565b8183526024602084019260051b8201019036821161048b5760248101925b828410612478575050505080519261233684612602565b9361234460405195866125e0565b808552612353601f1991612602565b016080515b8181106124675750506001600160a01b036080519316925b82518110156123fe57600190606061238882866129fa565b516040516123ac81610e56602082019463428557b160e11b86528960248401612a0e565b5a608051926080519251918a60805191f1156123df575b6123cd82886129fa565b526123d881876129fa565b5001612370565b503d60405190602081830101604052808252608051602083013e6123c3565b846040518091602082016020835281518091526040830190602060408260051b860101930191608051905b82821061243857505050500390f35b919360019193955060206124578192603f198a820301865288516126a0565b9601920192018594939192612429565b806060602080938901015201612358565b833567ffffffffffffffff811161048b5760209161249d839260243691870101612636565b81520193019261231f565b600435906001600160a01b03821682036124be57565b600080fd5b602435906001600160a01b03821682036124be57565b604435906001600160a01b03821682036124be57565b35906001600160a01b03821682036124be57565b6080810190811067ffffffffffffffff82111761251f57604052565b634e487b7160e01b600052604160045260246000fd5b6060810190811067ffffffffffffffff82111761251f57604052565b6040810190811067ffffffffffffffff82111761251f57604052565b610160810190811067ffffffffffffffff82111761251f57604052565b60a0810190811067ffffffffffffffff82111761251f57604052565b610120810190811067ffffffffffffffff82111761251f57604052565b610100810190811067ffffffffffffffff82111761251f57604052565b90601f8019910116810190811067ffffffffffffffff82111761251f57604052565b67ffffffffffffffff811161251f5760051b60200190565b67ffffffffffffffff811161251f57601f01601f191660200190565b81601f820112156124be5780359061264d8261261a565b9261265b60405194856125e0565b828452602083830101116124be57816000926020809301838601378301015290565b60005b8381106126905750506000910152565b8181015183820152602001612680565b906020916126b98151809281855285808601910161267d565b601f01601f1916010190565b9181601f840112156124be5782359167ffffffffffffffff83116124be576020808501948460051b0101116124be57565b60e06003198201126124be576004356001600160a01b03811681036124be57916024356001600160a01b03811681036124be579160443567ffffffffffffffff81116124be5781612749916004016126c5565b929092916064359067ffffffffffffffff82116124be576101209082900360031901126124be57600401906084359060a4359060c43590565b90815160028110156127e757815260806040806127cc81602087015160a06020880152805160a08801526020810151151560c08801520151606060e08701526101008601906126a0565b94015180518285015260208101516060850152015191015290565b634e487b7160e01b600052602160045260246000fd5b602060408183019282815284518094520192019060005b8181106128215750505090565b90919260206080600192606087516001600160a01b0381511683526001600160a01b0385820151168584015260408101516040840152015160608201520194019101919091612814565b602081526040608082019280516020840152602081015182840152015191606080830152825180915260a0820191602060a08360051b8301019401926000915b8383106128ba57505050505090565b90919293946020806128e9600193609f198682030187526040838b5180518452015191818582015201906126a0565b970193019301919392906128ab565b9061010060e061295493805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c0810151151560c08501520151918160e082015201906126a0565b90565b60806003198201126124be576004356001600160a01b03811681036124be57916024356001600160a01b03811681036124be579160443567ffffffffffffffff81116124be57816129aa916004016126c5565b929092916064359067ffffffffffffffff82116124be576101209082900360031901126124be5760040190565b8051156129e45760200190565b634e487b7160e01b600052603260045260246000fd5b80518210156129e45760209160051b010190565b6040906001600160a01b03612954949316815281602082015201906126a0565b60405190612a3b82612535565b606060408360008152600060208201520152565b60405190612a5c82612535565b60006040838281528260208201520152565b60405190612a7b82612535565b8160008152612a88612a2e565b60208201526040612a97612a4f565b910152565b9035601e19823603018112156124be57016020813591019167ffffffffffffffff82116124be5781360383136124be57565b908060209392818452848401376000828201840152601f01601f1916010190565b612954916001600160a01b03612b04836124ef565b16815260208201356020820152612b9d612b91612b58612b3d612b2a6040870187612a9c565b6101206040880152610120870191612ace565b612b4a6060870187612a9c565b908683036060880152612ace565b6080850135608085015260a085013560a085015260c085013560c0850152612b8360e0860186612a9c565b9085830360e0870152612ace565b92610100810190612a9c565b91610100818503910152612ace565b90602083828152019060208160051b85010193836000915b838310612bd45750505050505090565b909192939495601f19828203018652863561011e19843603018112156124be576020612c0560019386839401612aef565b980196019493019190612bc4565b9397969592612c4890612c3a6001600160a01b039360a0989560c0895260c0890191612bac565b908682036020880152612aef565b97166040840152606083015260808201520152565b519081151582036124be57565b81601f820112156124be578051612c808161261a565b92612c8e60405194856125e0565b818452602082840101116124be57612954916020808501910161267d565b6020818303126124be5780519067ffffffffffffffff82116124be57018082039160a083126124be5760405192612ce284612535565b825160028110156124be578452602083015167ffffffffffffffff81116124be5783016060818403126124be5760405190612d1c82612535565b80518252612d2c60208201612c5d565b602083015260408101519367ffffffffffffffff85116124be57606094612d539201612c6a565b60408201526020850152603f1901126124be57608060405191612d7583612535565b604081015183526060810151602084015201516040820152604082015290565b51906001600160a01b03821682036124be57565b6020818303126124be5780519067ffffffffffffffff82116124be570181601f820112156124be57805190612ddd82612602565b92612deb60405194856125e0565b828452602060608186019402830101918183116124be57602001925b828410612e15575050505090565b6060848303126124be576020606091604051612e3081612535565b612e3987612d95565b8152612e46838801612d95565b8382015260408701516040820152815201930192612e07565b9160209082815201919060005b818110612e795750505090565b9091926020806001926001600160a01b03612e93886124ef565b168152019401929101612e6c565b9290612eba906129549593604086526040860191612e5f565b926020818503910152612e5f565b612954916001600160a01b03612edd836124ef565b16815260208201356020820152612f73612f67612f16612b3d612f036040870187612a9c565b6101606040880152610160870191612ace565b6080850135608085015260a085013560a085015260c085013560c085015260e085013560e0850152610100850135610100850152612f58610120860186612a9c565b90858303610120870152612ace565b92610140810190612a9c565b91610140818503910152612ace565b3d15612fad573d90612f938261261a565b91612fa160405193846125e0565b82523d6000602084013e565b606090565b90602082519201516001600160e01b031981169260048110612fd2575050565b6001600160e01b0319929350829060040360031b1b161690565b519065ffffffffffff821682036124be57565b9061300982612602565b61301660405191826125e0565b8281528092613027601f1991612602565b019060005b82811061303857505050565b60209060405161304781612503565b6000815260008382015260006040820152600060608201528282850101520161302c565b6040519061307a6020836125e0565b600080835282815b82811061308e57505050565b60209060405161309d81612551565b6000815260608382015282828501015201613082565b90600182811c921680156130e3575b60208310146130cd57565b634e487b7160e01b600052602260045260246000fd5b91607f16916130c2565b8181106130f8575050565b600081556001016130ed565b6001602091939293845181550192015191825167ffffffffffffffff811161251f5761313082546130b3565b601f81116131d6575b506020601f82116001146131745781929394600092613169575b50508160011b916000199060031b1c1916179055565b015190503880613153565b601f1982169083600052806000209160005b8181106131be575095836001959697106131a5575b505050811b019055565b015160001960f88460031b161c1916905538808061319b565b9192602060018192868b015181550194019201613186565b61320390836000526020600020601f840160051c81019160208510613209575b601f0160051c01906130ed565b38613139565b90915081906131f6565b91908110156129e45760051b8101359061015e19813603018212156124be570190565b9190820391821161324357565b634e487b7160e01b600052601160045260246000fd5b9190820180921161324357565b600054906801000000000000000082101561251f5760018201806000558210156129e457600080526132bc9160011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301613104565b565b600054906132cb82612602565b916132d960405193846125e0565b8083526000808052907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563602085015b8284106133155750505050565b60405161332181612551565b8254815260405160018401805460009161333a826130b3565b80855291600181169081156133b3575060011461337b575b5050926002928261336960209460019703826125e0565b83820152815201920193019290613308565b6000908152602081209092505b81831061339d57505081016020018282613352565b6001816020925483868801015201920191613388565b60ff191660208087019190915292151560051b85019092019250849150839050613352565b604051906133e5826125c3565b606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b91612954939161343391604085526040850191612bac565b916020818403910152612aef565b6020818303126124be5780519067ffffffffffffffff82116124be5701610100818303126124be5760405191613476836125c3565b815183526020820151602084015260408201516040840152606082015160608401526080820151608084015260a082015160a08401526134b860c08301612c5d565b60c084015260e082015167ffffffffffffffff81116124be576134db9201612c6a565b60e082015290565b94919260c096999897946001600160a01b0361352695816135189516895216602088015260e0604088015260e0870191612bac565b908482036060860152612aef565b95608083015260a08201520152565b91908260409103126124be5760405161354d81612551565b6020808294805184520151910152565b91908110156129e45760051b0190565b356001600160a01b03811681036124be5790565b91908110156129e45760051b8101359061011e19813603018212156124be570190565b60405163428557b160e11b602082019081526000948594859485926135d29186916107669160248401612a0e565b5a935193f1613746573d60405191602082840101604052818352602083013e60048151106136dc5763428557b160e11b6001600160e01b0319613617611fd4846137b0565b16146136725780516136289161382d565b805181016040828203126124be5761364260208301612c5d565b9160408101519167ffffffffffffffff83116124be57613669926020809201920101612c6a565b901561214f5790565b608460405162461bcd60e51b815260206004820152603d60248201527f44656c6567617465416e6452657665727420646964206e6f742072657665727460448201527f20776974682044656c6567617465416e64526576657274206572726f720000006064820152fd5b608460405162461bcd60e51b815260206004820152602a60248201527f44656c6567617465416e6452657665727420726576657274206461746120697360448201527f20746f6f2073686f7274000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602c60248201527f44656c6567617465416e6452657665727420646964206e6f742072657665727460448201527f20617320657870656374656400000000000000000000000000000000000000006064820152fd5b9060009160049060609381516004811115613825575b801561381d575b508281106137da57505050565b6040519450918290039101601f8201601f19165b8181015185820152601f190190811561380757906137ee565b5050604081840160006020820152016040528252565b9050386137cd565b9250826137c6565b9190600492606093815183811115613856575b600481111561381d57508281106137da57505050565b92508261384056fea26469706673582212207b9200fa7f9b339025e714768eb8f9378ea945cd2ee52cfc8fa3dec77666e58c64736f6c634300081c0033","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.1.0/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.1.0/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":"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}