@pimlico/alto 0.0.0-main.20251204T111226 → 0.0.0-main.20260101T133101

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 (156) hide show
  1. package/contracts/EIP712.sol/EIP712.json +1 -1
  2. package/contracts/ERC165.sol/ERC165.json +1 -1
  3. package/contracts/ERC20.sol/ERC20.json +1 -1
  4. package/contracts/Eip7702Support.sol/Eip7702Support.json +1 -1
  5. package/contracts/EntryPoint.sol/EntryPoint.json +1 -1
  6. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride06.json +1 -1
  7. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride07.json +1 -1
  8. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride08.json +1 -1
  9. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride09.json +1 -0
  10. package/contracts/EntryPointGasEstimationOverride.sol/EntryPointGasEstimationOverride06.json +1 -1
  11. package/contracts/EntryPointSimulations.sol/EntryPointSimulations07.json +1 -1
  12. package/contracts/EntryPointSimulations.sol/EntryPointSimulations08.json +1 -1
  13. package/contracts/EntryPointSimulations.sol/EntryPointSimulations09.json +1 -0
  14. package/contracts/Exec.sol/Exec.json +1 -1
  15. package/contracts/IAccount.sol/IAccount.json +1 -1
  16. package/contracts/IAccountExecute.sol/IAccountExecute.json +1 -1
  17. package/contracts/IAggregator.sol/IAggregator.json +1 -1
  18. package/contracts/IERC165.sol/IERC165.json +1 -1
  19. package/contracts/IERC5267.sol/IERC5267.json +1 -1
  20. package/contracts/IEntryPoint.sol/IEntryPoint.json +1 -1
  21. package/contracts/IEntryPointFilterOpsOverride.sol/IEntryPointFilterOpsOverride08.json +1 -1
  22. package/contracts/IEntryPointFilterOpsOverride.sol/IEntryPointFilterOpsOverride09.json +1 -0
  23. package/contracts/IEntryPointSimulations.sol/IEntryPointSimulations.json +1 -1
  24. package/contracts/INonceManager.sol/INonceManager.json +1 -1
  25. package/contracts/IPaymaster.sol/IPaymaster.json +1 -1
  26. package/contracts/ISenderCreator.sol/ISenderCreator.json +1 -1
  27. package/contracts/IStakeManager.sol/IStakeManager.json +1 -1
  28. package/contracts/LibBytes.sol/LibBytes.json +1 -1
  29. package/contracts/Math.sol/Math.json +1 -1
  30. package/contracts/MessageHashUtils.sol/MessageHashUtils.json +1 -1
  31. package/contracts/NonceManager.sol/NonceManager.json +1 -1
  32. package/contracts/Panic.sol/Panic.json +1 -1
  33. package/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -1
  34. package/contracts/ReentrancyGuard.sol/ReentrancyGuard.json +1 -1
  35. package/contracts/ReentrancyGuardTransient.sol/ReentrancyGuardTransient.json +1 -1
  36. package/contracts/SafeCast.sol/SafeCast.json +1 -1
  37. package/contracts/SenderCreator.sol/SenderCreator.json +1 -1
  38. package/contracts/ShortStrings.sol/ShortStrings.json +1 -1
  39. package/contracts/SignedMath.sol/SignedMath.json +1 -1
  40. package/contracts/SimulationOverrideHelper.sol/SimulationOverrideHelper.json +1 -1
  41. package/contracts/StakeManager.sol/StakeManager.json +1 -1
  42. package/contracts/StorageSlot.sol/StorageSlot.json +1 -1
  43. package/contracts/Strings.sol/Strings.json +1 -1
  44. package/contracts/TransientSlot.sol/TransientSlot.json +1 -1
  45. package/contracts/UserOperation.sol/UserOperationLib.json +1 -1
  46. package/contracts/UserOperationLib.sol/UserOperationLib.json +1 -1
  47. package/contracts/account-abstraction-v9/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -0
  48. package/contracts/account-abstraction-v9/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -0
  49. package/contracts/account-abstraction-v9/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -0
  50. package/contracts/account-abstraction-v9/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -0
  51. package/contracts/build-info/{006aa55b425148d5.json → 338795fc743ca612.json} +1 -1
  52. package/contracts/build-info/44a9648cfe32a468.json +1 -0
  53. package/contracts/build-info/{416ffb069999d6eb.json → 8dbf8a4ad39019b5.json} +1 -1
  54. package/contracts/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -1
  55. package/contracts/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -1
  56. package/contracts/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -1
  57. package/contracts/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -1
  58. package/contracts/core/Eip7702Support.sol/Eip7702Support.json +1 -0
  59. package/contracts/core/NonceManager.sol/NonceManager.json +1 -0
  60. package/contracts/core/SenderCreator.sol/SenderCreator.json +1 -0
  61. package/contracts/core/StakeManager.sol/StakeManager.json +1 -0
  62. package/contracts/core/UserOperationLib.sol/UserOperationLib.json +1 -0
  63. package/contracts/interfaces/IAccount.sol/IAccount.json +1 -0
  64. package/contracts/interfaces/IAccountExecute.sol/IAccountExecute.json +1 -0
  65. package/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -1
  66. package/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -1
  67. package/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -1
  68. package/contracts/interfaces/IPaymaster.sol/IPaymaster.json +1 -0
  69. package/contracts/interfaces/ISenderCreator.sol/ISenderCreator.json +1 -0
  70. package/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -1
  71. package/contracts/overrides/Eip7702Support.sol/Eip7702Support.json +1 -0
  72. package/contracts/overrides/NonceManager.sol/NonceManager.json +1 -0
  73. package/contracts/overrides/SenderCreator.sol/SenderCreator.json +1 -0
  74. package/contracts/overrides/StakeManager.sol/StakeManager.json +1 -0
  75. package/contracts/overrides/UserOperationLib.sol/UserOperationLib.json +1 -0
  76. package/contracts/utils/Exec.sol/Exec.json +1 -1
  77. package/contracts/utils/StorageSlot.sol/StorageSlot.json +1 -1
  78. package/contracts/v09/EntryPoint.sol/EntryPoint.json +1 -0
  79. package/esm/cli/config/bundler.d.ts +68 -50
  80. package/esm/cli/config/bundler.js +5 -2
  81. package/esm/cli/config/bundler.js.map +1 -1
  82. package/esm/cli/config/options.js +17 -1
  83. package/esm/cli/config/options.js.map +1 -1
  84. package/esm/cli/deploySimulationsContract.d.ts +1 -0
  85. package/esm/cli/deploySimulationsContract.js +41 -5
  86. package/esm/cli/deploySimulationsContract.js.map +1 -1
  87. package/esm/cli/handler.js +14 -0
  88. package/esm/cli/handler.js.map +1 -1
  89. package/esm/cli/setupServer.js +3 -4
  90. package/esm/cli/setupServer.js.map +1 -1
  91. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride06.json +1 -1
  92. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride07.json +1 -1
  93. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride08.json +1 -1
  94. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride09.json +1 -0
  95. package/esm/contracts/EntryPointGasEstimationOverride.sol/EntryPointGasEstimationOverride06.json +1 -1
  96. package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations07.json +1 -1
  97. package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations08.json +1 -1
  98. package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations09.json +1 -0
  99. package/esm/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -1
  100. package/esm/executor/bundleManager.js +1 -2
  101. package/esm/executor/bundleManager.js.map +1 -1
  102. package/esm/executor/filterOpsAndEstimateGas.js +12 -0
  103. package/esm/executor/filterOpsAndEstimateGas.js.map +1 -1
  104. package/esm/executor/utils.js +2 -2
  105. package/esm/executor/utils.js.map +1 -1
  106. package/esm/handlers/eventManager.d.ts +6 -6
  107. package/esm/handlers/eventManager.js +47 -57
  108. package/esm/handlers/eventManager.js.map +1 -1
  109. package/esm/mempool/mempool.d.ts +34 -0
  110. package/esm/mempool/mempool.js +14 -4
  111. package/esm/mempool/mempool.js.map +1 -1
  112. package/esm/rpc/estimation/gasEstimations07.js +7 -6
  113. package/esm/rpc/estimation/gasEstimations07.js.map +1 -1
  114. package/esm/rpc/estimation/preVerificationGasCalculator.js +1 -1
  115. package/esm/rpc/estimation/preVerificationGasCalculator.js.map +1 -1
  116. package/esm/rpc/methods/boost_sendUserOperation.d.ts +304 -0
  117. package/esm/rpc/methods/debug_bundler_dumpMempool.d.ts +338 -0
  118. package/esm/rpc/methods/eth_estimateUserOperationGas.d.ts +622 -14
  119. package/esm/rpc/methods/eth_getUserOperationByHash.d.ts +621 -11
  120. package/esm/rpc/methods/eth_sendUserOperation.d.ts +304 -0
  121. package/esm/rpc/methods/pimlico_sendUserOperationNow.d.ts +304 -0
  122. package/esm/rpc/methods/pimlico_sendUserOperationNow.js +3 -12
  123. package/esm/rpc/methods/pimlico_sendUserOperationNow.js.map +1 -1
  124. package/esm/rpc/methods/pimlico_simulateAssetChange.d.ts +620 -12
  125. package/esm/rpc/validation/SafeValidator.js +5 -5
  126. package/esm/rpc/validation/SafeValidator.js.map +1 -1
  127. package/esm/store/createMempoolStore.js +8 -2
  128. package/esm/store/createMempoolStore.js.map +1 -1
  129. package/esm/store/outstanding/memory.js +26 -17
  130. package/esm/store/outstanding/memory.js.map +1 -1
  131. package/esm/store/outstanding/redis.js +46 -18
  132. package/esm/store/outstanding/redis.js.map +1 -1
  133. package/esm/store/outstanding/types.d.ts +2 -1
  134. package/esm/store/processing/memory.d.ts +3 -1
  135. package/esm/store/processing/memory.js +14 -2
  136. package/esm/store/processing/memory.js.map +1 -1
  137. package/esm/store/processing/redis.d.ts +4 -2
  138. package/esm/store/processing/redis.js +20 -4
  139. package/esm/store/processing/redis.js.map +1 -1
  140. package/esm/store/processing/types.d.ts +2 -1
  141. package/esm/store/types.d.ts +1 -0
  142. package/esm/types/contracts/PimlicoSimulations.d.ts +81 -0
  143. package/esm/types/contracts/PimlicoSimulations.js +105 -0
  144. package/esm/types/contracts/PimlicoSimulations.js.map +1 -1
  145. package/esm/types/schemas.d.ts +13039 -4597
  146. package/esm/types/schemas.js +92 -2
  147. package/esm/types/schemas.js.map +1 -1
  148. package/esm/utils/entryPointOverrides.js +7 -0
  149. package/esm/utils/entryPointOverrides.js.map +1 -1
  150. package/esm/utils/metrics.d.ts +0 -1
  151. package/esm/utils/metrics.js +0 -7
  152. package/esm/utils/metrics.js.map +1 -1
  153. package/esm/utils/userop.d.ts +76 -2
  154. package/esm/utils/userop.js +71 -79
  155. package/esm/utils/userop.js.map +1 -1
  156. package/package.json +2 -2
@@ -1 +1 @@
1
- {"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"_accountValidation","inputs":[{"name":"opIndex","type":"uint256","internalType":"uint256"},{"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":"outOpInfo","type":"tuple","internalType":"struct EntryPoint.UserOpInfo","components":[{"name":"mUserOp","type":"tuple","internalType":"struct EntryPoint.MemoryUserOp","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"verificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"callGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterVerificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterPostOpGasLimit","type":"uint256","internalType":"uint256"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"paymaster","type":"address","internalType":"address"},{"name":"maxFeePerGas","type":"uint256","internalType":"uint256"},{"name":"maxPriorityFeePerGas","type":"uint256","internalType":"uint256"}]},{"name":"userOpHash","type":"bytes32","internalType":"bytes32"},{"name":"prefund","type":"uint256","internalType":"uint256"},{"name":"contextOffset","type":"uint256","internalType":"uint256"},{"name":"preOpGas","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"validationData","type":"uint256","internalType":"uint256"},{"name":"paymasterValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterVerificationGasLimit","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"_paymasterValidation","inputs":[{"name":"opIndex","type":"uint256","internalType":"uint256"},{"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":"outOpInfo","type":"tuple","internalType":"struct EntryPoint.UserOpInfo","components":[{"name":"mUserOp","type":"tuple","internalType":"struct EntryPoint.MemoryUserOp","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"verificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"callGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterVerificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterPostOpGasLimit","type":"uint256","internalType":"uint256"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"paymaster","type":"address","internalType":"address"},{"name":"maxFeePerGas","type":"uint256","internalType":"uint256"},{"name":"maxPriorityFeePerGas","type":"uint256","internalType":"uint256"}]},{"name":"userOpHash","type":"bytes32","internalType":"bytes32"},{"name":"prefund","type":"uint256","internalType":"uint256"},{"name":"contextOffset","type":"uint256","internalType":"uint256"},{"name":"preOpGas","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"validationData","type":"uint256","internalType":"uint256"},{"name":"paymasterValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterVerificationGasLimit","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"_validatePrepayment","inputs":[{"name":"opIndex","type":"uint256","internalType":"uint256"},{"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":"outOpInfo","type":"tuple","internalType":"struct EntryPoint.UserOpInfo","components":[{"name":"mUserOp","type":"tuple","internalType":"struct EntryPoint.MemoryUserOp","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"verificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"callGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterVerificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterPostOpGasLimit","type":"uint256","internalType":"uint256"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"paymaster","type":"address","internalType":"address"},{"name":"maxFeePerGas","type":"uint256","internalType":"uint256"},{"name":"maxPriorityFeePerGas","type":"uint256","internalType":"uint256"}]},{"name":"userOpHash","type":"bytes32","internalType":"bytes32"},{"name":"prefund","type":"uint256","internalType":"uint256"},{"name":"contextOffset","type":"uint256","internalType":"uint256"},{"name":"preOpGas","type":"uint256","internalType":"uint256"}]},{"name":"validatePaymasterPrepayment","type":"bool","internalType":"bool"}],"outputs":[{"name":"validationData","type":"uint256","internalType":"uint256"},{"name":"paymasterValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterVerificationGasLimit","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"addStake","inputs":[{"name":"unstakeDelaySec","type":"uint32","internalType":"uint32"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"binarySearchCallGas","inputs":[{"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":"entryPoint","type":"address","internalType":"address"},{"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":"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":"entryPoint","type":"address","internalType":"address"},{"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":"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":"entryPoint","type":"address","internalType":"address"},{"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":"delegateAndRevert","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"depositTo","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getDepositInfo","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"info","type":"tuple","internalType":"struct IStakeManager.DepositInfo","components":[{"name":"deposit","type":"uint256","internalType":"uint256"},{"name":"staked","type":"bool","internalType":"bool"},{"name":"stake","type":"uint112","internalType":"uint112"},{"name":"unstakeDelaySec","type":"uint32","internalType":"uint32"},{"name":"withdrawTime","type":"uint48","internalType":"uint48"}]}],"stateMutability":"view"},{"type":"function","name":"getDomainSeparatorV4","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getNonce","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"key","type":"uint192","internalType":"uint192"}],"outputs":[{"name":"nonce","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPackedUserOpTypeHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"getSenderAddress","inputs":[{"name":"initCode","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getUserOpHash","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"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"handleAggregatedOps","inputs":[{"name":"","type":"tuple[]","internalType":"struct IEntryPoint.UserOpsPerAggregator[]","components":[{"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":"aggregator","type":"address","internalType":"contract IAggregator"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"handleOps","inputs":[{"name":"","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":"","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"incrementNonce","inputs":[{"name":"key","type":"uint192","internalType":"uint192"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"innerHandleOp","inputs":[{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"opInfo","type":"tuple","internalType":"struct EntryPoint.UserOpInfo","components":[{"name":"mUserOp","type":"tuple","internalType":"struct EntryPoint.MemoryUserOp","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"verificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"callGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterVerificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterPostOpGasLimit","type":"uint256","internalType":"uint256"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"paymaster","type":"address","internalType":"address"},{"name":"maxFeePerGas","type":"uint256","internalType":"uint256"},{"name":"maxPriorityFeePerGas","type":"uint256","internalType":"uint256"}]},{"name":"userOpHash","type":"bytes32","internalType":"bytes32"},{"name":"prefund","type":"uint256","internalType":"uint256"},{"name":"contextOffset","type":"uint256","internalType":"uint256"},{"name":"preOpGas","type":"uint256","internalType":"uint256"}]},{"name":"context","type":"bytes","internalType":"bytes"},{"name":"preGas","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"actualGasCost","type":"uint256","internalType":"uint256"},{"name":"paymasterPostOpGasLimit","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"nonceSequenceNumber","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint192","internalType":"uint192"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"senderCreator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ISenderCreator"}],"stateMutability":"view"},{"type":"function","name":"simulateCall","inputs":[{"name":"entryPoint","type":"address","internalType":"address"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"gas","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"},{"name":"result","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"simulateCallAndRevert","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"gas","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"simulateHandleOp","inputs":[{"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":"simulateHandleOpSingle","inputs":[{"name":"op","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":"target","type":"address","internalType":"address"},{"name":"targetCallData","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":"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":"function","name":"simulateValidation","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"}]}],"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":"function","name":"unlockStake","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawStake","inputs":[{"name":"withdrawAddress","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawTo","inputs":[{"name":"withdrawAddress","type":"address","internalType":"address payable"},{"name":"withdrawAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AccountDeployed","inputs":[{"name":"userOpHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"factory","type":"address","indexed":false,"internalType":"address"},{"name":"paymaster","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BeforeExecution","inputs":[],"anonymous":false},{"type":"event","name":"Deposited","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"totalDeposit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"EIP712DomainChanged","inputs":[],"anonymous":false},{"type":"event","name":"PostOpRevertReason","inputs":[{"name":"userOpHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"nonce","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"revertReason","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"SignatureAggregatorChanged","inputs":[{"name":"aggregator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"StakeLocked","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"totalStaked","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"StakeUnlocked","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"withdrawTime","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"StakeWithdrawn","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"withdrawAddress","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"UserOperationEvent","inputs":[{"name":"userOpHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"paymaster","type":"address","indexed":true,"internalType":"address"},{"name":"nonce","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"success","type":"bool","indexed":false,"internalType":"bool"},{"name":"actualGasCost","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"actualGasUsed","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"UserOperationPrefundTooLow","inputs":[{"name":"userOpHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"nonce","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"UserOperationRevertReason","inputs":[{"name":"userOpHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"nonce","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"revertReason","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Withdrawn","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"withdrawAddress","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"CallPhaseReverted","inputs":[{"name":"reason","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"DelegateAndRevert","inputs":[{"name":"success","type":"bool","internalType":"bool"},{"name":"ret","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"FailedOp","inputs":[{"name":"opIndex","type":"uint256","internalType":"uint256"},{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"FailedOpWithRevert","inputs":[{"name":"opIndex","type":"uint256","internalType":"uint256"},{"name":"reason","type":"string","internalType":"string"},{"name":"inner","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"InvalidShortString","inputs":[]},{"type":"error","name":"PostOpReverted","inputs":[{"name":"returnData","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SenderAddressResult","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"SignatureValidationFailed","inputs":[{"name":"aggregator","type":"address","internalType":"address"}]},{"type":"error","name":"StringTooLong","inputs":[{"name":"str","type":"string","internalType":"string"}]},{"type":"error","name":"innerCallResult","inputs":[{"name":"remainingGas","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x610180604052346101b8576040516100186040826101eb565b600781526020810190664552433433333760c81b82526040519161003d6040846101eb565b600183526020830191603160f81b83526100568161020e565b61012052610063846103a9565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a081526100cc60c0826101eb565b5190206080523060c05230610160526040516100e7816101bc565b5f815260208101905f8252806020604051610101816101bc565b5f81520152600480546001600160a01b0319169055516005555160065560405161567c90816104e28239608051816132ab015260a05181613368015260c0518161327c015260e051816132fa01526101005181613320015261012051816113630152610140518161138c0152610160518181816130bc015281816135050152818161355f01528181613747015281816137fb015281816138540152818161396401528181613a1801528181613a710152613b810152f35b5f80fd5b604081019081106001600160401b038211176101d757604052565b634e487b7160e01b5f52604160045260245ffd5b601f909101601f19168101906001600160401b038211908210176101d757604052565b908151602081105f14610288575090601f815111610248576020815191015160208210610239571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b0381116101d757600254600181811c9116801561039f575b602082101461038b57601f8111610358575b50602092601f82116001146102f757928192935f926102ec575b50508160011b915f199060031b1c19161760025560ff90565b015190505f806102d3565b601f1982169360025f52805f20915f5b8681106103405750836001959610610328575b505050811b0160025560ff90565b01515f1960f88460031b161c191690555f808061031a565b91926020600181928685015181550194019201610307565b60025f52601f60205f20910160051c810190601f830160051c015b81811061038057506102b9565b5f8155600101610373565b634e487b7160e01b5f52602260045260245ffd5b90607f16906102a7565b908151602081105f146103d4575090601f815111610248576020815191015160208210610239571790565b6001600160401b0381116101d757600354600181811c911680156104d7575b602082101461038b57601f81116104a4575b50602092601f821160011461044357928192935f92610438575b50508160011b915f199060031b1c19161760035560ff90565b015190505f8061041f565b601f1982169360035f52805f20915f5b86811061048c5750836001959610610474575b505050811b0160035560ff90565b01515f1960f88460031b161c191690555f8080610466565b91926020600181928685015181550194019201610453565b60035f52601f60205f20910160051c810190601f830160051c015b8181106104cc5750610405565b5f81556001016104bf565b90607f16906103f356fe60806040526004361015610022575b3615610018575f80fd5b6100206131b5565b005b5f3560e01c80630396cb601461021c57806309ccb880146102175780630bd28e3b146102125780630da826611461020d57806313c65a6e14610208578063154e58dc146102035780631b2e01b8146101fe578063205c2878146101f9578063212eccc6146101f457806321e60b37146101ef57806322cdde4c146101ea57806335567e1a146101e557806344403473146101e05780635287ce12146101db57806369683cfa146101d657806370a08231146101d1578063765e827f1461018b5780637da0c462146101cc57806384b0196e146101c7578063850aaf62146101c25780639b249f69146101bd578063acbe911e146101b8578063aec321fb146101b3578063af324943146101ae578063b760faf9146101a9578063bb9fe6bf146101a4578063c23a5cea1461019f578063c3bce0091461019a578063c579f76b14610195578063d72f259314610190578063dbed18e01461018b5763f7e426e80361000e57611b41565b6110fd565b611b21565b611a01565b6119e3565b6118c0565b61179d565b61177d565b61170c565b6116b5565b611581565b6114a0565b611464565b61134b565b611173565b611089565b610eb0565b610da3565b610d5e565b610c82565b610c6a565b610ba5565b610a5c565b610825565b6107c8565b61078e565b61076c565b610649565b61045a565b610419565b602036600319011261040b5760043563ffffffff81169081810361040b576104067fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c01916103e86102da6102ca610282336001600160a01b03165f525f60205260405f2090565b9661028e811515611b7a565b6102bb6001890154916102b46102ab8463ffffffff9060781c1690565b63ffffffff1690565b1115611bc5565b60081c6001600160701b031690565b6001600160701b03349116611c46565b946102e6861515611c53565b6102f96001600160701b03871115611c9e565b5461030261055e565b908152600160208201526001600160701b038616604082015263ffffffff831660608201525f6080820152610347336001600160a01b03165f525f60205260405f2090565b81518155602082015160019091018054604084015160608501516080909501517fffffffffffffff0000000000000000000000000000000000000000000000000090921660ff941515949094169390931760089390931b6effffffffffffffffffffffffffff00169290921760789390931b72ffffffff000000000000000000000000000000169290921760989190911b65ffffffffffff60981b16179055565b6040805194855263ffffffff90911660208501523393918291820190565b0390a2005b5f80fd5b5f91031261040b57565b3461040b575f36600319011261040b576020610433611cf4565b6001600160a01b0360405191168152f35b602435906001600160c01b038216820361040b57565b3461040b57602036600319011261040b576004356001600160c01b038116810361040b576104a490335f52600160205260405f20906001600160c01b03165f5260205260405f2090565b6104ae8154611d69565b9055005b634e487b7160e01b5f52604160045260245ffd5b60a0810190811067ffffffffffffffff8211176104e257604052565b6104b2565b6060810190811067ffffffffffffffff8211176104e257604052565b610140810190811067ffffffffffffffff8211176104e257604052565b6040810190811067ffffffffffffffff8211176104e257604052565b90601f8019910116810190811067ffffffffffffffff8211176104e257604052565b6040519061056d60a08361053c565b565b6040519061056d6101408361053c565b6040519061056d6101008361053c565b6040519061056d60408361053c565b6040519061056d60608361053c565b6040519061056d6101208361053c565b67ffffffffffffffff81116104e257601f01601f191660200190565b9291926105e5826105bd565b916105f3604051938461053c565b82948184528183011161040b578281602093845f960137010152565b9080601f8301121561040b5781602061062a933591016105d9565b90565b6001600160a01b0381160361040b57565b359061056d8261062d565b3461040b5761022036600319011261040b5760043567ffffffffffffffff811161040b5761067b90369060040161060f565b3660231901906101c0821261040b576101406040519261069a846104c6565b1261040b576106a761056f565b6106b1602461063e565b815260443560208201526064356040820152608435606082015260a435608082015260c43560a082015260e43560c08201526106ee61010461063e565b60e0820152610124356101008201526101443561012082015282526101643560208301526101843560408301526101a43560608301526101c43560808301526101e4359067ffffffffffffffff821161040b5760409261075561076093369060040161060f565b906102043592611d77565b82519182526020820152f35b3461040b575f36600319011261040b576020610786613272565b604051908152f35b3461040b575f36600319011261040b5760206040517f29a0bca4af4be3421398da00295e58e6d7de38cb492214754cb6a47507dd6f8e8152f35b3461040b57604036600319011261040b57602061081c6004356107ea8161062d565b6001600160a01b036107fa610444565b91165f526001835260405f20906001600160c01b03165f5260205260405f2090565b54604051908152f35b3461040b57604036600319011261040b576004356108428161062d565b602435335f525f60205260405f20918254908183116108c6575f8080856001600160a01b03829589610877846100209a611fea565b9055604080516001600160a01b03831681526020810185905233917fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb91a2165af16108c061200b565b5061203a565b606460405162461bcd60e51b815260206004820152601960248201527f576974686472617720616d6f756e7420746f6f206c61726765000000000000006044820152fd5b9181601f8401121561040b5782359167ffffffffffffffff831161040b576020808501948460051b01011161040b57565b908161012091031261040b5790565b60c060031982011261040b5760043567ffffffffffffffff811161040b57816109759160040161090a565b929092916024359067ffffffffffffffff821161040b576109989160040161093b565b906044356109a58161062d565b90606435906084359060a43590565b634e487b7160e01b5f52602160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6020815281516002811015610a5757602082015260a0604080610a3b8160208701518582880152805160c08801526020810151151560e0880152015160606101008701526101208601906109c8565b9401518051606085015260208101516080850152015191015290565b6109b4565b3461040b57610aa3610a97610a89610a733661094a565b9691949095610a839493946120a3565b5061338e565b610a928161341b565b6134ad565b604051918291826109ec565b0390f35b61020060031982011261040b576004359160243567ffffffffffffffff811161040b5782610ad79160040161093b565b916043190160446101c0821261040b5761014060405192610af7846104c6565b1261040b576101a090610b0861056f565b610b118261063e565b81526020820135602082015260408201356040820152606082013560608201526080820135608082015260a082013560a082015260c082013560c0820152610b5b60e0830161063e565b60e082015261010082013561010082015261012082013561012082015283526101408101356020840152610160810135604084015261018081013560608401520135608082015290565b3461040b576060610bb536610aa7565b905f926001600160a01b0360e08451610bce8186613c91565b610bd7856120e4565b6020870152610c0781610100604082015160608301510160808301510160a08301510160c0830151019101510290565b6040870152015116610c2b575b505050604051905f825260208201525f6040820152f35b610c359350613d7f565b90505f8080610c14565b602060031982011261040b576004359067ffffffffffffffff821161040b5761062a9160040161093b565b3461040b576020610786610c7d36610c3f565b6120e4565b3461040b57604036600319011261040b576020600435610ca18161062d565b6001600160a01b03610cb1610444565b91165f5260018252610cd78160405f20906001600160c01b03165f5260205260405f2090565b546040805192901b67ffffffffffffffff1916178152f35b9181601f8401121561040b5782359167ffffffffffffffff831161040b576020838186019501011161040b57565b90606060031983011261040b57600435610d368161062d565b916024359067ffffffffffffffff821161040b57610d5691600401610cef565b909160443590565b3461040b575f8080610d6f36610d1d565b939181604094929451948592833781018381520393f1610d8d61200b565b9015610d9557005b805190811561040b57602001fd5b3461040b57602036600319011261040b576001600160a01b03600435610dc88161062d565b5f6080604051610dd7816104c6565b8281528260208201528260408201528260608201520152165f525f602052610aa360405f20610e5c65ffffffffffff600160405193610e15856104c6565b80548552015460ff8116151560208501526001600160701b038160081c16604085015263ffffffff8160781c16606085015260981c16608083019065ffffffffffff169052565b60405191829182919091608065ffffffffffff8160a0840195805185526020810151151560208601526001600160701b03604082015116604086015263ffffffff6060820151166060860152015116910152565b3461040b57610ebe36610aa7565b9190915a92815193610ed08583613c91565b610ed9826120e4565b6020840152604085015193610f256effffffffffffffffffffffffffffff8660c08901511760608901511760808901511760a08901511761010089015117610120890151171115612223565b610f5086610100604082015160608301510160808301510160a08301510160c0830151019101510290565b94610f85610f81610f645a89898988614024565b986020610f7882516001600160a01b031690565b91015190614107565b1590565b611034575a830311610fe2575092610fc6926080610fc19360a0610fcd975a9560408601526060808601525a9003910135019101525a90611fea565b61226f565b6064900490565b604080519283525f6020840152820152606090f35b60408051631101335b60e11b815260048101929092526024820152601e60448201527f41413236206f76657220766572696669636174696f6e4761734c696d69740000606482015280608481015b0390fd5b61103082604051918291631101335b60e11b835260048301608091815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b3461040b57602036600319011261040b576001600160a01b036004356110ae8161062d565b165f525f602052602060405f2054604051908152f35b604060031982011261040b576004359067ffffffffffffffff821161040b576110ef9160040161090a565b909160243561062a8161062d565b3461040b5761110b366110c4565b91612285565b61012060e061062a936020845280516020850152602081015160408501526040810151606085015260608101516080850152608081015160a085015260a081015160c085015260c08101511515828501520151916101008082015201906109c8565b3461040b57606036600319011261040b5760043567ffffffffffffffff811161040b576111a490369060040161093b565b6024356111b08161062d565b6044359167ffffffffffffffff831161040b576111d4610aa393369060040161060f565b916111dd6122f7565b506111e6614155565b6111ee612450565b926111f88361341b565b6112028484612bd4565b9091945a6060880151886112196060850185612505565b94905f60038711611343575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b0361132b57506112959450611290602083015191611282604051938492638dd7712f60e01b6020850152602484016142e3565b03601f19810183528261053c565b611d77565b9290965b5f946060966001600160a01b038116611300575b50509560806112e796970151976112c261057f565b988952602089015260408801526060870152608086015260a0850152151560c0840152565b60e08201526112f46141c9565b60405191829182611111565b6112e797505f92965090829182602083519301915af195608061132161200b565b97959197966112ad565b611290915061133b9536916105d9565b929096611299565b508035611225565b3461040b575f36600319011261040b5761140b6113877f0000000000000000000000000000000000000000000000000000000000000000615374565b6113b07f000000000000000000000000000000000000000000000000000000000000000061545a565b60206040516113bf828261053c565b5f81528161141981830194601f1983013687376040519788977f0f00000000000000000000000000000000000000000000000000000000000000895260e0858a015260e08901906109c8565b9087820360408901526109c8565b914660608701523060808701525f60a087015285830360c087015251918281520192915f5b82811061144d57505050500390f35b83518552869550938101939281019260010161143e565b3461040b57604036600319011261040b5761148060043561062d565b60243567ffffffffffffffff811161040b57610020903690600401610cef565b3461040b57602036600319011261040b5760043567ffffffffffffffff811161040b5760206114d6611506923690600401610cef565b906001600160a01b036114e7611cf4565b16905f604051809681958294632b870d1b60e11b8452600484016124f4565b03925af1801561157c576001600160a01b03915f9161154d575b507f6ca7b806000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b61156f915060203d602011611575575b611567818361053c565b8101906124bf565b5f611520565b503d61155d565b611ce9565b3461040b57610aa3610a976115953661094a565b95949094939193612585565b604060031982011261040b5760043567ffffffffffffffff811161040b57816115cc9160040161090a565b929092916024359067ffffffffffffffff821161040b5761062a9160040161093b565b61062a9060208152610100608061164881865161014060208701528051610160870152602081015161018087015260408101516101a087015260608101516101c0870152015160a06101e08601526102008501906109c8565b60208087015180516040870152015160608501529461167860408201518386019060208091805184520151910152565b6060810151805160c08601526020015160e0850152015191019080516001600160a01b031682526020908101518051828401520151604090910152565b3461040b576116c3366115a1565b91906116cd612652565b505f5b8181106116ef57610aa36116e3856129c0565b604051918291826115ef565b8061170561170060019385876126e8565b6129c0565b50016116d0565b3461040b5761171a366115a1565b91906117246122f7565b506020905f5b81811061175757610aa36112f4866040519061174760208361053c565b5f82526117526122f7565b612345565b8061177661176860019385886126e8565b60405190611747878361053c565b500161172a565b602036600319011261040b576100206004356117988161062d565b612710565b3461040b575f36600319011261040b57335f525f602052600160405f2001805463ffffffff8160781c161561187c576118056117f76102ab836117eb6117e661183f9660ff1690565b612769565b60781c63ffffffff1690565b65ffffffffffff42166127b4565b82547fffffffffffffff000000000000ffffffffffffffffffffffffffffffffffff001665ffffffffffff60981b609883901b1617909255565b60405165ffffffffffff909116815233907ffa9b3c14cc825c412c9ed81b3ba365a5b459439403f18829e572ed53a4180f0a908060208101610406565b606460405162461bcd60e51b815260206004820152600a60248201527f6e6f74207374616b6564000000000000000000000000000000000000000000006044820152fd5b3461040b57602036600319011261040b576100205f8080806004356118e48161062d565b6001600160a01b036001611908336001600160a01b03165f525f60205260405f2090565b019161199683549361196e65ffffffffffff61195a611940611934896001600160701b039060081c1690565b6001600160701b031690565b9761194c8915156127d2565b60981c65ffffffffffff1690565b1661196681151561281d565b421015612868565b80547fffffffffffffff000000000000000000000000000000000000000000000000ff169055565b604080516001600160a01b03831681526020810185905233917fb7c918e0e249f999e965cafeb6c664271b3f4317d296461500e71da39f0cbda391a2165af16119dd61200b565b506128b3565b3461040b57610aa36116e361170036610c3f565b8015150361040b57565b3461040b5761022036600319011261040b5760043560243567ffffffffffffffff811161040b57611a3690369060040161093b565b3660431901916101c0831261040b5761014060405193611a55856104c6565b1261040b57610aa392611b0492611a6a61056f565b611a74604461063e565b81526064356020820152608435604082015260a435606082015260c435608082015260e43560a08201526101043560c0820152611ab261012461063e565b60e0820152610144356101008201526101643561012082015282526101843560208301526101a43560408301526101c43560608301526101e43560808301526102043592611aff846119f7565b612da5565b604080519384526020840192909252908201529081906060820190565b3461040b57610aa3610a97611b353661094a565b95949094939193612f0e565b3461040b57611b5b611b5236610d1d565b92919091613067565b90610aa3604051928392151583526040602084015260408301906109c8565b15611b8157565b606460405162461bcd60e51b815260206004820152601a60248201527f6d757374207370656369667920756e7374616b652064656c61790000000000006044820152fd5b15611bcc57565b606460405162461bcd60e51b815260206004820152601c60248201527f63616e6e6f7420646563726561736520756e7374616b652074696d65000000006044820152fd5b634e487b7160e01b5f52601160045260245ffd5b906113888201809211611c3357565b611c10565b9060018201809211611c3357565b91908201809211611c3357565b15611c5a57565b606460405162461bcd60e51b815260206004820152601260248201527f6e6f207374616b652073706563696669656400000000000000000000000000006044820152fd5b15611ca557565b606460405162461bcd60e51b815260206004820152600e60248201527f7374616b65206f766572666c6f770000000000000000000000000000000000006044820152fd5b6040513d5f823e3d90fd5b6040517f09ccb880000000000000000000000000000000000000000000000000000000008152602081600481305afa90811561157c575f91611d34575090565b90506020813d602011611d61575b81611d4f6020938361053c565b8101031261040b575161062a8161062d565b3d9150611d42565b5f198114611c335760010190565b9392909193825190606082015181519081611f64575b505050505a9003608082015101925f935a91835191611dab836144e4565b92611dc060e08201516001600160a01b031690565b91611dd660808801518203606084015190614536565b01925f926001600160a01b0381169081611e7b5750505090611e036040949392516001600160a01b031690565b945b5a9003010102920151908282105f14611e4957611e215f6131eb565b7fdeadaa51000000000000000000000000000000000000000000000000000000005f5260205ffd5b82611e6d9203906001600160a01b03165f525f60205260405f209081540180915590565b50611e775f6131eb565b9190565b96928251611e92575b505050906040939291611e05565b919950949392505a98611ea45f6131eb565b60a05a920195865191813b1561040b578692835f809489611ef7604051988997889687947f7c627b21000000000000000000000000000000000000000000000000000000008652029086600486016131f5565b0393f19081611f4a575b50611f2a57611030611f116131be565b6040519182916365c8fd4d60e01b835260048301613227565b604094611f40915a9003995a9003905190614536565b9192935f80611e84565b80611f585f611f5e9361053c565b8061040f565b5f611f01565b5f80949360206001600160a01b0383965116910192f115611f88575f808080611d8d565b611030611f936131be565b6040519182917f462c71b20000000000000000000000000000000000000000000000000000000083526020600484015260248301906109c8565b600319810191908211611c3357565b5f19810191908211611c3357565b91908203918211611c3357565b6040519061200660208361053c565b5f8252565b3d15612035573d9061201c826105bd565b9161202a604051938461053c565b82523d5f602084013e565b606090565b1561204157565b606460405162461bcd60e51b815260206004820152601260248201527f6661696c656420746f20776974686472617700000000000000000000000000006044820152fd5b60405190612092826104e7565b5f6040838281528260208201520152565b604051906120b0826104e7565b815f81526040516120c0816104e7565b5f81525f602082015260606040820152602082015260406120df612085565b910152565b61062a906120f181613eae565b6120f9613272565b916121c78135926121098461062d565b60208301359080156122035761128290935b61213161212b6060830183612505565b906155e4565b90608081013560a08201359061215361212b60c08501359460e0810190612505565b93604051988997602089019b8c94919261010096939998979491996001600160a01b0361012088019b7f29a0bca4af4be3421398da00295e58e6d7de38cb492214754cb6a47507dd6f8e895216602088015260408701526060860152608085015260a084015260c083015260e08201520152565b51902090604291604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b506112826122146040850185612505565b9081604051918237209361211b565b1561222a57565b60405162461bcd60e51b815260206004820152601860248201527f41413934206761732076616c756573206f766572666c6f7700000000000000006044820152606490fd5b90607382029180830460731490151715611c3357565b61228d614155565b608460405162461bcd60e51b815260206004820152602760248201527f53484f554c44204e4f542042452043414c4c454420445552494e472053494d5560448201527f4c4154494f4e53000000000000000000000000000000000000000000000000006064820152fd5b60405190610100820182811067ffffffffffffffff8211176104e257604052606060e0835f81525f60208201525f60408201525f838201525f60808201525f60a08201525f60c08201520152565b509050612350614155565b608061235a612450565b916123648161341b565b61236e8382612bd4565b929091905a6060870151876123866060850185612505565b94905f60038711612448575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b0361243057506123ef9450611290602083015191611282604051938492638dd7712f60e01b6020850152602484016142e3565b9490955b0151946123fe61057f565b958652602086015260408501526060840152608083015260a08201525f60c0820152606060e08201529061056d6141c9565b61129091506124409536916105d9565b9490956123f3565b508035612392565b6040519061245d826104c6565b5f60808360405161246d81610503565b83815283602082015283604082015283606082015283838201528360a08201528360c08201528360e0820152836101008201528361012082015281528260208201528260408201528260608201520152565b9081602091031261040b575161062a8161062d565b908060209392818452848401375f828201840152601f01601f1916010190565b91602061062a9381815201916124d4565b903590601e198136030182121561040b570180359067ffffffffffffffff821161040b5760200191813603831361040b57565b6040519061254760208361053c565b5f808352366020840137565b9061255d826105bd565b61256a604051918261053c565b828152809261257b601f19916105bd565b0190602036910137565b959493929190956125946120a3565b506125a26060830183612505565b9050156125d85761062a966125b69161338e565b6125d06125c1612450565b6125ca8361341b565b82612bd4565b5050506137c1565b505050505050506125e7612538565b604051906125f4826104e7565b5f82525f6020830152604082015260405161260e816104e7565b5f81525f60208201525f60408201526040519161262a836104e7565b5f83526020830152604082015290565b6040519061264782610520565b5f6020838281520152565b6040519061265f826104c6565b8160405161266c816104c6565b5f81525f60208201525f60408201525f606082015260606080820152815261269261263a565b602082015261269f61263a565b60408201526126ac61263a565b60608201526080604051916126c083610520565b5f83526126cb61263a565b60208401520152565b634e487b7160e01b5f52603260045260245ffd5b919081101561270b5760051b8101359061011e198136030182121561040b570190565b6126d4565b7f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c460206001600160a01b0361275d34856001600160a01b03165f525f60205260405f209081540180915590565b936040519485521692a2565b1561277057565b606460405162461bcd60e51b815260206004820152601160248201527f616c726561647920756e7374616b696e670000000000000000000000000000006044820152fd5b9065ffffffffffff8091169116019065ffffffffffff8211611c3357565b156127d957565b606460405162461bcd60e51b815260206004820152601460248201527f4e6f207374616b6520746f2077697468647261770000000000000000000000006044820152fd5b1561282457565b606460405162461bcd60e51b815260206004820152601d60248201527f6d7573742063616c6c20756e6c6f636b5374616b6528292066697273740000006044820152fd5b1561286f57565b606460405162461bcd60e51b815260206004820152601b60248201527f5374616b65207769746864726177616c206973206e6f742064756500000000006044820152fd5b156128ba57565b606460405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f207769746864726177207374616b6500000000000000006044820152fd5b9060141161040b5790601490565b909291928360141161040b57831161040b57601401916013190190565b909291928360341161040b57831161040b57603401916033190190565b356bffffffffffffffffffffffff19811692919060148210612966575050565b6bffffffffffffffffffffffff1960149290920360031b82901b16169150565b6040519061299382610520565b6004546001600160a01b031682526040516020836129b083610520565b6005548352600654828401520152565b6129c8612652565b506129d1612450565b906129db8161341b565b6129e58282612bd4565b509190926129f383856142fa565b612a10612a0b60e0835101516001600160a01b031690565b6144a4565b91612a3e612a2a612a0b84516001600160a01b0390511690565b91612a3361263a565b506040810190612505565b9060148210612b1957612a60612a5a612a6693612a0b936128fe565b90612946565b60601c90565b916001600160a01b038616946080820151966060604084015193015192612a8b61055e565b9889526020890152604088015260608701526080860152612aaa612986565b9380151580612b0e575b612adc575b50612ac261055e565b948552602085015260408401526060830152608082015290565b909350612ae8816144a4565b612b02612af361058f565b6001600160a01b039093168352565b6020820152925f612ab9565b506001811415612ab4565b5050612a665f6144a4565b15612b2c5750565b60405190631101335b60e11b82526004820152604060248201528061103060448201604090601881527f41413934206761732076616c756573206f766572666c6f77000000000000000060208201520190565b15612b875750565b60408051631101335b60e11b815260048101929092526024820152601a60448201527f4141323520696e76616c6964206163636f756e74206e6f6e63650000000000006064820152608490fd5b9190915f915a93805192612be88482613c91565b612c01604051612bf7836120e4565b6020850152604052565b604084015195612c495f6effffffffffffffffffffffffffffff8960c08901511760608901511760808901511760a08901511761010089015117610120890151171115612b24565b612c94612c7786610100604082015160608301510160808301510160a08301510160c0830151019101510290565b806040860152612c8b608085013560801c90565b9085855f614024565b96612cbd5f612cb8612cad89516001600160a01b031690565b60208a015190614107565b612b7f565b5a820311612d52576060946001600160a01b03612ce560e05a9301516001600160a01b031690565b16151580612d4a575b612d1c575b60809291612d0a610fc6610fc160a0945a90611fea565b9660608601525a900391013501910152565b9450610fc195509060a0608092612d0a610fc6612d3a87865f613d7f565b9a90999450505050919250612cf3565b506001612cee565b604051631101335b60e11b8152806110305f60048301608091815260406020820152601e60408201527f41413236206f76657220766572696669636174696f6e4761734c696d6974000060608201520190565b939092915f935a8251612db88184613c91565b612dd1604051612dc7856120e4565b6020870152604052565b604081015197612e19816effffffffffffffffffffffffffffff8b60c08601511760608601511760808601511760a08601511761010086015117610120860151171115612b24565b612e64612e4783610100604082015160608301510160808301510160a08301510160c0830151019101510290565b806040880152612e5b608087013560801c90565b90878785614024565b98612e8882612cb8612e7d86516001600160a01b031690565b602087015190614107565b5a840311610fe2576060966001600160a01b03612eb060e05a9501516001600160a01b031690565b1615159081612f06575b50612ed8575b5060809291612d0a610fc6610fc160a0945a90611fea565b610fc1975060a091965091612d0a610fc6612ef7878760809897613d7f565b9a909994505050509192612ec0565b90505f612eba565b95949392919095612f1d6120a3565b506014612f2d60e0840184612505565b905010612f685761062a96612f5a91610a83612f47612450565b612f52815187613c91565b5a9086613f41565b612f638161341b565b6139de565b50505050505050612f77612538565b60405190612f84826104e7565b5f82525f60208301526040820152612f9a61059e565b5f81525f60208201525f6040820152612fb161059e565b915f83526020830152604082015290565b6040906001600160a01b0361062a959316815281602082015201916124d4565b90815181101561270b570160200190565b919060408382031261040b57825161300a816119f7565b9260208101519067ffffffffffffffff821161040b570181601f8201121561040b57805190613038826105bd565b92613046604051948561053c565b8284526020838301011161040b57815f9260208093018386015e8301015290565b91925f936001600160a01b036060941691823b1561040b576130e5935f80946040518097819682957f850aaf620000000000000000000000000000000000000000000000000000000084526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048501612fc2565b0393f190816131a1575b5061318f5750506130fe61200b565b9060048251106131935761311a6131158351611fcd565b612553565b60045b8351811015613179578061315c61313660019387612fe2565b517fff000000000000000000000000000000000000000000000000000000000000001690565b61317261316883611fcd565b915f1a9185612fe2565b530161311d565b5061318f91925060208082518301019101612ff3565b9091565b905061319d612538565b5f91565b80611f585f6131af9361053c565b5f6130ef565b61056d33612710565b3d61080081116131e2575b604051906020818301016040528082525f602083013e90565b506108006131c9565b60031115610a5757565b90949392946003811015610a575760609261321d9183526080602084015260808301906109c8565b9460408201520152565b9060a061062a925f815260606020820152601460608201527f4141353020706f73744f70207265766572746564000000000000000000000000608082015281604082015201906109c8565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016301480613365575b156132cd577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815261335f60c08261053c565b51902090565b507f000000000000000000000000000000000000000000000000000000000000000046146132a4565b5f5b82811061339c57505050565b6001906133a7612450565b6133b28286866126e8565b6133bb8161341b565b6133c58282612bd4565b5050506133d56060820182612505565b90501561340a576133ee5f929160208493015190614555565b9082602083519301915af15061340261200b565b505b01613390565b5050613404565b3561062a8161062d565b61344e9061342c6040820182612505565b9161344681359161343c8361062d565b60e0810190612505565b9390926145ee565b80516134575750565b61103090604051918291631101335b60e11b83525f60048401526040602484015260448301906109c8565b9392916134a8906001600160a01b036040931686526060602087015260608601906109c8565b930152565b9390946134b86120a3565b508215613727576134f8926134cb611ff7565b50915f6134da5a88600361497f565b5a906040519687928392631efc84dd60e31b84528c60048501613482565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af190811561157c575f945f92613708575b508194809281156136e65750506135549095929394955b85611c46565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b8461358c8885611fea565b106136b7575a61359b88611c24565b1161365e5791889391879695935f8c8b6135cd6135c46135be886135ed9f611c46565b60011c90565b809a600361497f565b835a936040519e8f9586948593631efc84dd60e31b855260048501613482565b03925af198891561157c575f905f9a613637575b50156136225750505061361383611fdc565b95915b93949591929092613581565b93965093613631919750611c38565b94613616565b90506136569199503d805f833e61364e818361053c565b810190612ff3565b98905f613601565b50955093955050509350613670612538565b9261367961059e565b935f85525f6020860152604085015261369061059e565b928352602083015260408201526136a561059e565b60018152916020830152604082015290565b9650965050919550506136d991506136cd61059e565b93845215156020840152565b6040820152612f9a61059e565b965096505050945050506136d96136fb61059e565b5f81529215156020840152565b90945061371f91503d805f833e61364e818361053c565b90935f613537565b61373a92505a5f6134da5a88600361497f565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af192831561157c575f945f9461379f575b50839461378881935a90611fea565b9481156136e657505061355490959293949561354e565b9093506137b79194503d805f833e61364e818361053c565b939093925f613779565b9390946137cc6120a3565b508215613944576137ee926137df611ff7565b50915f6134da5a88600161497f565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af190811561157c575f945f92613925575b508194809281156136e657505061384990959293949585611c46565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846138818885611fea565b106136b7575a61389088611c24565b1161365e5791889391879695935f8c8b6135cd6138b36135be886138bc9f611c46565b809a600161497f565b03925af198891561157c575f905f9a613906575b50156138f1575050506138e283611fdc565b95915b93949591929092613876565b93965093613900919750611c38565b946138e5565b905061391d9199503d805f833e61364e818361053c565b98905f6138d0565b90945061393c91503d805f833e61364e818361053c565b90935f61382d565b61395792505a5f6134da5a88600161497f565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af192831561157c575f945f946139bc575b5083946139a581935a90611fea565b9481156136e657505061384990959293949561354e565b9093506139d49194503d805f833e61364e818361053c565b939093925f613996565b9390946139e96120a3565b508215613b6157613a0b926139fc611ff7565b50915f6134da5a88600261497f565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af190811561157c575f945f92613b42575b508194809281156136e6575050613a6690959293949585611c46565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b84613a9e8885611fea565b106136b7575a613aad88611c24565b1161365e5791889391879695935f8c8b6135cd613ad06135be88613ad99f611c46565b809a600261497f565b03925af198891561157c575f905f9a613b23575b5015613b0e57505050613aff83611fdc565b95915b93949591929092613a93565b93965093613b1d919750611c38565b94613b02565b9050613b3a9199503d805f833e61364e818361053c565b98905f613aed565b909450613b5991503d805f833e61364e818361053c565b90935f613a4a565b613b7492505a5f6134da5a88600261497f565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af192831561157c575f945f94613bd9575b508394613bc281935a90611fea565b9481156136e6575050613a6690959293949561354e565b909350613bf19194503d805f833e61364e818361053c565b939093925f613bb3565b15613c0257565b606460405162461bcd60e51b815260206004820152601d60248201527f4141393320696e76616c6964207061796d6173746572416e64446174610000006044820152fd5b15613c4d57565b606460405162461bcd60e51b815260206004820152601660248201527f4141393820696e76616c6964207061796d6173746572000000000000000000006044820152fd5b613d2890613cae613ca182613411565b6001600160a01b03168452565b60208101356020840152613cdb6080820135906fffffffffffffffffffffffffffffffff8260801c921690565b6060850152604084015260a081013560c0840152613d1260c0820135906fffffffffffffffffffffffffffffffff8260801c921690565b61010085015261012084015260e0810190612505565b80929192613d3557505050565b613d518161056d94613d4c603460e0951015613bfb565b614bbb565b60a0850152608084015291613d706001600160a01b0384161515613c46565b01906001600160a01b03169052565b9290925a938351613da26001600160a01b0360e083015116604087015190614bf3565b15613e3a57906080613db992015194859184614c85565b9390945a900311613dc75750565b60408051631101335b60e11b815260048101929092526024820152602760448201527f41413336206f766572207061796d6173746572566572696669636174696f6e4760648201527f61734c696d697400000000000000000000000000000000000000000000000000608482015260a490fd5b60848360405190631101335b60e11b8252600482015260406024820152601e60448201527f41413331207061796d6173746572206465706f73697420746f6f206c6f7700006064820152fd5b909280926014946bffffffffffffffffffffffff199060601b1683528483013701015f815290565b613ebb6040820182612505565b9091613eca610f818385614d7a565b613f3a57613eda613edf91613411565b614dbc565b9160148211613f1657505060405161335f816112826020820194856014916bffffffffffffffffffffffff199060601b1681520190565b8161335f92613f249261290c565b9190611282604051938492602084019687613e86565b5050505f90565b9291613f85908251926001600160a01b0360e08186511695613f71613f6960408b018b612505565b90865f614ec0565b015116905f91159687613ff1575b5f61526d565b92613f8d5750565b5f613f9791614bf3565b15613f9e57565b604051631101335b60e11b8152806110305f60048301608091815260406020820152601760408201527f41413231206469646e2774207061792070726566756e6400000000000000000060608201520190565b915061400d856001600160a01b03165f525f60205260405f2090565b54801561401d57505f5b91613f7f565b5f03614017565b9290949361406a908351936001600160a01b0360e0818751169661405661404e60408d018d612505565b90868c614ec0565b015116905f911598896140d2575b8761526d565b9461407457505050565b61407d91614bf3565b156140855750565b60408051631101335b60e11b815260048101929092526024820152601760448201527f41413231206469646e2774207061792070726566756e640000000000000000006064820152608490fd5b91506140ee866001600160a01b03165f525f60205260405f2090565b548581111561410057505f5b91614064565b85036140fa565b6001600160a01b03165f52600160205267ffffffffffffffff6141418260401c60405f20906001600160c01b03165f5260205260405f2090565b9182549261414e84611d69565b9055161490565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c6141a15760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d565b7f3ee5aeb5000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d565b9035601e198236030181121561040b57016020813591019167ffffffffffffffff821161040b57813603831361040b57565b61062a9161423e816142318461063e565b6001600160a01b03169052565b602082013560208201526142d46142c861428f61427461426160408701876141ee565b61012060408801526101208701916124d4565b61428160608701876141ee565b9086830360608801526124d4565b6080850135608085015260a085013560a085015260c085013560c08501526142ba60e08601866141ee565b9085830360e08701526124d4565b926101008101906141ee565b916101008185039101526124d4565b9291906134a8602091604086526040860190614220565b61430b6001600160a01b0391615512565b9116614451576143fe576143266001600160a01b0391615512565b91166143ab5761433257565b604051631101335b60e11b8152806110305f6004830160a091815260406020820152602160408201527f41413332207061796d61737465722065787069726564206f72206e6f7420647560608201527f650000000000000000000000000000000000000000000000000000000000000060808201520190565b604051631101335b60e11b8152806110305f60048301608091815260406020820152601460408201527f41413334207369676e6174757265206572726f7200000000000000000000000060608201520190565b604051631101335b60e11b8152806110305f60048301608091815260406020820152601760408201527f414132322065787069726564206f72206e6f742064756500000000000000000060608201520190565b604051631101335b60e11b8152806110305f60048301608091815260406020820152601460408201527f41413234207369676e6174757265206572726f7200000000000000000000000060608201520190565b906001600160a01b036144b561263a565b92165f525f60205263ffffffff600160405f2001546001600160701b038160081c16845260781c166020830152565b6101206101008201519101517f59e3bb5c9eacf8e7a9c3802366751badc68d4d97d3e35b1744045784c52f20dd5480155f14614530575048905b018082101561452b575090565b905090565b9061451e565b90619c40820181111561454f57606491600a9103020490565b50505f90565b919082356145628161062d565b9260608101638dd7712f60e01b7fffffffff0000000000000000000000000000000000000000000000000000000061459a8385612505565b9060035f92116145e5575b5016036145d0575061062a90611282604051938492638dd7712f60e01b6020850152602484016142e3565b61062a92506145de91612505565b36916105d9565b9050355f6145a5565b509291921590816146a3575b50614666576014811015614613575b505061062a611ff7565b60141161040b573560601c3b1561462b575f80614609565b60405161463960408261053c565b601b81527f41413330207061796d6173746572206e6f74206465706c6f7965640000000000602082015290565b505060405161467660408261053c565b601981527f41413230206163636f756e74206e6f74206465706c6f79656400000000000000602082015290565b90503b155f6145fa565b9190916101208184031261040b576146c36105ad565b926146cd8261063e565b845260208201356020850152604082013567ffffffffffffffff811161040b57816146f991840161060f565b6040850152606082013567ffffffffffffffff811161040b578161471e91840161060f565b60608501526080820135608085015260a082013560a085015260c082013560c085015260e082013567ffffffffffffffff811161040b578161476191840161060f565b60e085015261010082013567ffffffffffffffff811161040b57614785920161060f565b610100830152565b60041115610a5757565b916020936fffffffffffffffffffffffffffffffff198092603497946bffffffffffffffffffffffff199060601b1686521660148501521660248301528051928391018483015e01015f815290565b80516001600160a01b0316825261062a9160208201516020820152610100614867614837614825604086015161012060408701526101208601906109c8565b606086015185820360608701526109c8565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e08601526109c8565b920151906101008184039101526109c8565b60806101a09161012081516148978682516001600160a01b03169052565b602081015160208701526040810151604087015260608101516060870152838101518487015260a081015160a087015260c081015160c08701526148eb60e082015160e08801906001600160a01b03169052565b61010081015161010087015201516101208501526020810151610140850152604081015161016085015260608101516101808501520151910152565b61495661494b61020093969594965f845261022060208501526102208401906147e6565b956040830190614879565b0152565b6102009061495661494b5f9496959685845261022060208501526102208401906147e6565b91614988612450565b9261499336846146ad565b61499c8261478d565b60028214614ad7576149ad8261478d565b60038214614a595750806149c260019261478d565b14614a0c5760405162461bcd60e51b815260206004820152600c60248201527f496e76616c6964206d6f646500000000000000000000000000000000000000006044820152606490fd5b614a2161062a92602061128295015190614555565b9390916040519485937f4440347300000000000000000000000000000000000000000000000000000000602086015260248501613482565b9190506fffffffffffffffffffffffffffffffff614a97614a90608061062a9601356fffffffffffffffffffffffffffffffff1690565b9260801b90565b91161760808201526112826040519384927fc579f76b0000000000000000000000000000000000000000000000000000000060208501526024840161495a565b9161128291506fffffffffffffffffffffffffffffffff1984614b6360e061062a9701614b55614b10614b0a8386612505565b90614bbb565b9391905060609160e08b0196603488515111614b99575b505060405196879460801b16906fffffffffffffffffffffffffffffffff198960801b169060208601614797565b03601f19810184528361053c565b526040519485937f21e60b3700000000000000000000000000000000000000000000000000000000602086015260248501614927565b614bb39293506145de91614bac91612505565b8091612929565b905f80614b27565b90918260141161040b578135918360241161040b5760148101359360341161040b5760609290921c92608090811c9260240135901c90565b6001600160a01b03165f525f60205260405f20908154818110613f3a57039055600190565b614c3060409295949395606083526060830190614220565b9460208201520152565b60a09061062a9392815260606020820152600d60608201527f4141333320726576657274656400000000000000000000000000000000000000608082015281604082015201906109c8565b925f8091959392956040519682614cfa60e0602088015197614ceb8c614cdc6040840151602083019c8d997f52b7512c000000000000000000000000000000000000000000000000000000008b5260248501614c18565b038d601f19820190528d61053c565b5101516001600160a01b031690565b895193f1933d91825f833e51938151604083019687519015918215614d6e575b508115614d5c575b50614d375750601f909101601f191601604052565b614d3f6131be565b906110306040519283926365c8fd4d60e01b845260048401614c3a565b9050601f605f1985019101105f614d22565b6040141591505f614d1a565b90600211614db757356bffffffffffffffffffffffff19167f77020000000000000000000000000000000000000000000000000000000000001490565b505f90565b60175f80833c5f51907fef010000000000000000000000000000000000000000000000000000000000007fffffff0000000000000000000000000000000000000000000000000000000000831603614e315750612a60614e1f61062a9260181b90565b6bffffffffffffffffffffffff191690565b3b15614e7c5760405162461bcd60e51b815260206004820152601860248201527f6e6f7420616e204549502d373730322064656c656761746500000000000000006044820152606490fd5b606460405162461bcd60e51b815260206004820152601260248201527f73656e64657220686173206e6f20636f646500000000000000000000000000006044820152fd5b92909181614ecf575b50505050565b8251516001600160a01b031693614ee68383614d7a565b61518657843b61513957601483106150ec575f6020614f12614f06611cf4565b6001600160a01b031690565b60408751015160405180948193632b870d1b60e11b835282614f388b8b600484016124f4565b0393f190811561157c575f916150cd575b506001600160a01b038116958615615078576001600160a01b0316809603615023573b15614fd65750612a60612a5a7fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d93614fa3936128fe565b602083810151935160e00151604080516001600160a01b039485168152939091169183019190915290a35f808080614ec9565b60408051631101335b60e11b815260048101929092526024820152602060448201527f4141313520696e6974436f6465206d757374206372656174652073656e6465726064820152608490fd5b61103082604051918291631101335b60e11b835260048301608091815260406020820152602060408201527f4141313420696e6974436f6465206d7573742072657475726e2073656e64657260608201520190565b61103083604051918291631101335b60e11b835260048301608091815260406020820152601b60408201527f4141313320696e6974436f6465206661696c6564206f72204f4f47000000000060608201520190565b6150e6915060203d60201161157557611567818361053c565b5f614f49565b60408051631101335b60e11b815260048101929092526024820152601760448201527f4141393920696e6974436f646520746f6f20736d616c6c0000000000000000006064820152608490fd5b60408051631101335b60e11b815260048101929092526024820152601f60448201527f414131302073656e64657220616c726561647920636f6e7374727563746564006064820152608490fd5b5090601481116151965750505050565b806151b29160406151a8614f06611cf4565b955101519361290c565b9190833b1561040b575f80946151f896604051978896879586937fc09ad0d900000000000000000000000000000000000000000000000000000000855260048501612fc2565b0393f1801561157c5761520e575b808080614ec9565b80611f585f61521c9361053c565b5f615206565b60a09061062a9392815260606020820152600d60608201527f4141323320726576657274656400000000000000000000000000000000000000608082015281604082015201906109c8565b92916020959486926152d75f936152c961529082516001600160a01b0390511690565b976040519b8c930151888401957f19822f7c00000000000000000000000000000000000000000000000000000000875260248501614c18565b03601f1981018a528961053c565b8285895193f15f519460203d0361536c575b604052156152f5575050565b3b6153475760408051631101335b60e11b815260048101929092526024820152601960448201527f41413230206163636f756e74206e6f74206465706c6f796564000000000000006064820152608490fd5b61534f6131be565b906110306040519283926365c8fd4d60e01b845260048401615222565b5f91506152e9565b60ff81146153855761062a906155ef565b506040515f6002548060011c91600182168015615450575b60208410811461543c578385528492602084019190811561542357506001146153ce575b5061062a9250038261053c565b60025f90815291507f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5b84831061540c575061062a9350015f6153c1565b8054828401528593506020909201916001016153f8565b60ff191682525061062a93151560051b0190505f6153c1565b634e487b7160e01b5f52602260045260245ffd5b92607f169261539d565b60ff811461546b5761062a906155ef565b506040515f6003548060011c91600182168015615508575b60208410811461543c578385528492602084019190811561542357506001146154b3575061062a9250038261053c565b60035f90815291507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8483106154f1575061062a9350015f6153c1565b8054828401528593506020909201916001016154dd565b92607f1692615483565b80156155dd57615520612085565b5065ffffffffffff8160a01c169081156155cf575b6155b09061559761558c6040519461554c866104e7565b6001600160a01b038416865265ffffffffffff602087019460d01c1684526155806040870191829065ffffffffffff169052565b5165ffffffffffff1690565b65ffffffffffff1690565b42119081156155b3575b5091516001600160a01b031690565b91565b516155c6915065ffffffffffff1661558c565b4211155f6155a1565b65ffffffffffff9150615535565b505f905f90565b816040519182372090565b60ff811690601f821161561e576040519161560b60408461053c565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffdfea26469706673582212200c1bc9721375e58a182fe2194614b4b44c1b2bf7bc6e1a63eef38ae647a6e4a464736f6c634300081c0033","sourceMap":"971:17770:28:-:0;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;971:17770:28;;;;;;;;;:::i;:::-;1977:9:27;971:17770:28;;;1977:9:27;;;-1:-1:-1;;;1977:9:27;;3401:45:20;;;:::i;:::-;3393:53;;3467:51;;;:::i;:::-;3456:62;;971:17770:28;3542:22:20;;3528:36;;;;971:17770:28;3591:25:20;;3574:42;;;3644:13;3627:30;;971:17770:28;;4204:80:20;971:17770:28;4204:80:20;;2079:95;;;;971:17770:28;2079:95:20;;;;;;;3644:13;2079:95;;;;4278:4;3627:30;2079:95;;;3627:30;4204:80;;;;;;:::i;:::-;971:17770:28;4194:91:20;;2079:95;3667:48;4278:4;4204:80;3725:27;4278:4;1097::28;;971:17770;;;;;:::i;:::-;-1:-1:-1;971:17770:28;;;1216:29;;971:17770;-1:-1:-1;971:17770:28;;;;;;;;;:::i;:::-;-1:-1:-1;971:17770:28;;1172:74;971:17770;1172:74;971:17770;;-1:-1:-1;;;;;;971:17770:28;;;;;;;;;;;;;;;;;2079:95:20;971:17770:28;;;;;3627:30:20;971:17770:28;;;;;4204:80:20;971:17770:28;;;;;3528:36:20;971:17770:28;;;;;3574:42:20;971:17770:28;;;;;3393:53:20;971:17770:28;;;;;3456:62:20;971:17770:28;;;;;1097:4;971:17770;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;971:17770:28;;;;;;;:::o;:::-;;;;-1:-1:-1;971:17770:28;;;;;-1:-1:-1;971:17770:28;;;;;;-1:-1:-1;;971:17770:28;;;;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;:::o;2887:340:16:-;;971:17770:28;;3032:2:16;3010:24;;3006:215;3032:2;;;971:17770:28;;1854:2:16;971:17770:28;;1840:16:16;1836:72;;3032:2;971:17770:28;;;;2079:95:20;3032:2:16;971:17770:28;;;;1949:36:16;3050:27;:::o;971:17770:28:-;;;;3032:2:16;971:17770:28;;;;;1949:36:16;3050:27;:::o;1836:72::-;971:17770:28;3032:2:16;971:17770:28;;;1879:18:16;;;;;;;;;;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;1854:2:16;971:17770:28;-1:-1:-1;;971:17770:28;;;1879:18:16;;;;3006:215;-1:-1:-1;;;;;971:17770:28;;;;3432:13:20;971:17770:28;;;;;;;;;;;3006:215:16;3032:2;971:17770:28;;;;;;;;;;3006:215:16;971:17770:28;3032:2:16;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3432:13:20;971:17770:28;1390:66:16;3168:42;:::o;971:17770:28:-;;;;-1:-1:-1;971:17770:28;;;;;;;;;;3432:13:20;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;3432:13:20;971:17770:28;1390:66:16;3168:42;:::o;971:17770:28:-;;;;;;;;;;;;;;;;;;;;;;;3032:2:16;971:17770:28;;;;;;;;;;;;;;;;;3432:13:20;971:17770:28;;;3032:2:16;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2887:340:16;;971:17770:28;;3032:2:16;3010:24;;3006:215;3032:2;;;971:17770:28;;1854:2:16;971:17770:28;;1840:16:16;1836:72;;3032:2;971:17770:28;;;;2079:95:20;3032:2:16;971:17770:28;;;;1949:36:16;3050:27;:::o;3006:215::-;-1:-1:-1;;;;;971:17770:28;;;;3501:16:20;971:17770:28;;;;;;;;;;;3006:215:16;3032:2;971:17770:28;;;;;;;;;;3006:215:16;971:17770:28;3032:2:16;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;3501:16:20;971:17770:28;;;;;3501:16:20;971:17770:28;1390:66:16;3168:42;:::o;971:17770:28:-;;;;-1:-1:-1;971:17770:28;;;;;;;;;;3501:16:20;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;3501:16:20;971:17770:28;1390:66:16;3168:42;:::o;971:17770:28:-;;;;;;;3501:16:20;971:17770:28;;;;;;;;;;;;;;;3032:2:16;971:17770:28;;;;;;;;;;;;;;;;;3501:16:20;971:17770:28;;;3032:2:16;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610022575b3615610018575f80fd5b6100206131b5565b005b5f3560e01c80630396cb601461021c57806309ccb880146102175780630bd28e3b146102125780630da826611461020d57806313c65a6e14610208578063154e58dc146102035780631b2e01b8146101fe578063205c2878146101f9578063212eccc6146101f457806321e60b37146101ef57806322cdde4c146101ea57806335567e1a146101e557806344403473146101e05780635287ce12146101db57806369683cfa146101d657806370a08231146101d1578063765e827f1461018b5780637da0c462146101cc57806384b0196e146101c7578063850aaf62146101c25780639b249f69146101bd578063acbe911e146101b8578063aec321fb146101b3578063af324943146101ae578063b760faf9146101a9578063bb9fe6bf146101a4578063c23a5cea1461019f578063c3bce0091461019a578063c579f76b14610195578063d72f259314610190578063dbed18e01461018b5763f7e426e80361000e57611b41565b6110fd565b611b21565b611a01565b6119e3565b6118c0565b61179d565b61177d565b61170c565b6116b5565b611581565b6114a0565b611464565b61134b565b611173565b611089565b610eb0565b610da3565b610d5e565b610c82565b610c6a565b610ba5565b610a5c565b610825565b6107c8565b61078e565b61076c565b610649565b61045a565b610419565b602036600319011261040b5760043563ffffffff81169081810361040b576104067fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c01916103e86102da6102ca610282336001600160a01b03165f525f60205260405f2090565b9661028e811515611b7a565b6102bb6001890154916102b46102ab8463ffffffff9060781c1690565b63ffffffff1690565b1115611bc5565b60081c6001600160701b031690565b6001600160701b03349116611c46565b946102e6861515611c53565b6102f96001600160701b03871115611c9e565b5461030261055e565b908152600160208201526001600160701b038616604082015263ffffffff831660608201525f6080820152610347336001600160a01b03165f525f60205260405f2090565b81518155602082015160019091018054604084015160608501516080909501517fffffffffffffff0000000000000000000000000000000000000000000000000090921660ff941515949094169390931760089390931b6effffffffffffffffffffffffffff00169290921760789390931b72ffffffff000000000000000000000000000000169290921760989190911b65ffffffffffff60981b16179055565b6040805194855263ffffffff90911660208501523393918291820190565b0390a2005b5f80fd5b5f91031261040b57565b3461040b575f36600319011261040b576020610433611cf4565b6001600160a01b0360405191168152f35b602435906001600160c01b038216820361040b57565b3461040b57602036600319011261040b576004356001600160c01b038116810361040b576104a490335f52600160205260405f20906001600160c01b03165f5260205260405f2090565b6104ae8154611d69565b9055005b634e487b7160e01b5f52604160045260245ffd5b60a0810190811067ffffffffffffffff8211176104e257604052565b6104b2565b6060810190811067ffffffffffffffff8211176104e257604052565b610140810190811067ffffffffffffffff8211176104e257604052565b6040810190811067ffffffffffffffff8211176104e257604052565b90601f8019910116810190811067ffffffffffffffff8211176104e257604052565b6040519061056d60a08361053c565b565b6040519061056d6101408361053c565b6040519061056d6101008361053c565b6040519061056d60408361053c565b6040519061056d60608361053c565b6040519061056d6101208361053c565b67ffffffffffffffff81116104e257601f01601f191660200190565b9291926105e5826105bd565b916105f3604051938461053c565b82948184528183011161040b578281602093845f960137010152565b9080601f8301121561040b5781602061062a933591016105d9565b90565b6001600160a01b0381160361040b57565b359061056d8261062d565b3461040b5761022036600319011261040b5760043567ffffffffffffffff811161040b5761067b90369060040161060f565b3660231901906101c0821261040b576101406040519261069a846104c6565b1261040b576106a761056f565b6106b1602461063e565b815260443560208201526064356040820152608435606082015260a435608082015260c43560a082015260e43560c08201526106ee61010461063e565b60e0820152610124356101008201526101443561012082015282526101643560208301526101843560408301526101a43560608301526101c43560808301526101e4359067ffffffffffffffff821161040b5760409261075561076093369060040161060f565b906102043592611d77565b82519182526020820152f35b3461040b575f36600319011261040b576020610786613272565b604051908152f35b3461040b575f36600319011261040b5760206040517f29a0bca4af4be3421398da00295e58e6d7de38cb492214754cb6a47507dd6f8e8152f35b3461040b57604036600319011261040b57602061081c6004356107ea8161062d565b6001600160a01b036107fa610444565b91165f526001835260405f20906001600160c01b03165f5260205260405f2090565b54604051908152f35b3461040b57604036600319011261040b576004356108428161062d565b602435335f525f60205260405f20918254908183116108c6575f8080856001600160a01b03829589610877846100209a611fea565b9055604080516001600160a01b03831681526020810185905233917fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb91a2165af16108c061200b565b5061203a565b606460405162461bcd60e51b815260206004820152601960248201527f576974686472617720616d6f756e7420746f6f206c61726765000000000000006044820152fd5b9181601f8401121561040b5782359167ffffffffffffffff831161040b576020808501948460051b01011161040b57565b908161012091031261040b5790565b60c060031982011261040b5760043567ffffffffffffffff811161040b57816109759160040161090a565b929092916024359067ffffffffffffffff821161040b576109989160040161093b565b906044356109a58161062d565b90606435906084359060a43590565b634e487b7160e01b5f52602160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6020815281516002811015610a5757602082015260a0604080610a3b8160208701518582880152805160c08801526020810151151560e0880152015160606101008701526101208601906109c8565b9401518051606085015260208101516080850152015191015290565b6109b4565b3461040b57610aa3610a97610a89610a733661094a565b9691949095610a839493946120a3565b5061338e565b610a928161341b565b6134ad565b604051918291826109ec565b0390f35b61020060031982011261040b576004359160243567ffffffffffffffff811161040b5782610ad79160040161093b565b916043190160446101c0821261040b5761014060405192610af7846104c6565b1261040b576101a090610b0861056f565b610b118261063e565b81526020820135602082015260408201356040820152606082013560608201526080820135608082015260a082013560a082015260c082013560c0820152610b5b60e0830161063e565b60e082015261010082013561010082015261012082013561012082015283526101408101356020840152610160810135604084015261018081013560608401520135608082015290565b3461040b576060610bb536610aa7565b905f926001600160a01b0360e08451610bce8186613c91565b610bd7856120e4565b6020870152610c0781610100604082015160608301510160808301510160a08301510160c0830151019101510290565b6040870152015116610c2b575b505050604051905f825260208201525f6040820152f35b610c359350613d7f565b90505f8080610c14565b602060031982011261040b576004359067ffffffffffffffff821161040b5761062a9160040161093b565b3461040b576020610786610c7d36610c3f565b6120e4565b3461040b57604036600319011261040b576020600435610ca18161062d565b6001600160a01b03610cb1610444565b91165f5260018252610cd78160405f20906001600160c01b03165f5260205260405f2090565b546040805192901b67ffffffffffffffff1916178152f35b9181601f8401121561040b5782359167ffffffffffffffff831161040b576020838186019501011161040b57565b90606060031983011261040b57600435610d368161062d565b916024359067ffffffffffffffff821161040b57610d5691600401610cef565b909160443590565b3461040b575f8080610d6f36610d1d565b939181604094929451948592833781018381520393f1610d8d61200b565b9015610d9557005b805190811561040b57602001fd5b3461040b57602036600319011261040b576001600160a01b03600435610dc88161062d565b5f6080604051610dd7816104c6565b8281528260208201528260408201528260608201520152165f525f602052610aa360405f20610e5c65ffffffffffff600160405193610e15856104c6565b80548552015460ff8116151560208501526001600160701b038160081c16604085015263ffffffff8160781c16606085015260981c16608083019065ffffffffffff169052565b60405191829182919091608065ffffffffffff8160a0840195805185526020810151151560208601526001600160701b03604082015116604086015263ffffffff6060820151166060860152015116910152565b3461040b57610ebe36610aa7565b9190915a92815193610ed08583613c91565b610ed9826120e4565b6020840152604085015193610f256effffffffffffffffffffffffffffff8660c08901511760608901511760808901511760a08901511761010089015117610120890151171115612223565b610f5086610100604082015160608301510160808301510160a08301510160c0830151019101510290565b94610f85610f81610f645a89898988614024565b986020610f7882516001600160a01b031690565b91015190614107565b1590565b611034575a830311610fe2575092610fc6926080610fc19360a0610fcd975a9560408601526060808601525a9003910135019101525a90611fea565b61226f565b6064900490565b604080519283525f6020840152820152606090f35b60408051631101335b60e11b815260048101929092526024820152601e60448201527f41413236206f76657220766572696669636174696f6e4761734c696d69740000606482015280608481015b0390fd5b61103082604051918291631101335b60e11b835260048301608091815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b3461040b57602036600319011261040b576001600160a01b036004356110ae8161062d565b165f525f602052602060405f2054604051908152f35b604060031982011261040b576004359067ffffffffffffffff821161040b576110ef9160040161090a565b909160243561062a8161062d565b3461040b5761110b366110c4565b91612285565b61012060e061062a936020845280516020850152602081015160408501526040810151606085015260608101516080850152608081015160a085015260a081015160c085015260c08101511515828501520151916101008082015201906109c8565b3461040b57606036600319011261040b5760043567ffffffffffffffff811161040b576111a490369060040161093b565b6024356111b08161062d565b6044359167ffffffffffffffff831161040b576111d4610aa393369060040161060f565b916111dd6122f7565b506111e6614155565b6111ee612450565b926111f88361341b565b6112028484612bd4565b9091945a6060880151886112196060850185612505565b94905f60038711611343575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b0361132b57506112959450611290602083015191611282604051938492638dd7712f60e01b6020850152602484016142e3565b03601f19810183528261053c565b611d77565b9290965b5f946060966001600160a01b038116611300575b50509560806112e796970151976112c261057f565b988952602089015260408801526060870152608086015260a0850152151560c0840152565b60e08201526112f46141c9565b60405191829182611111565b6112e797505f92965090829182602083519301915af195608061132161200b565b97959197966112ad565b611290915061133b9536916105d9565b929096611299565b508035611225565b3461040b575f36600319011261040b5761140b6113877f0000000000000000000000000000000000000000000000000000000000000000615374565b6113b07f000000000000000000000000000000000000000000000000000000000000000061545a565b60206040516113bf828261053c565b5f81528161141981830194601f1983013687376040519788977f0f00000000000000000000000000000000000000000000000000000000000000895260e0858a015260e08901906109c8565b9087820360408901526109c8565b914660608701523060808701525f60a087015285830360c087015251918281520192915f5b82811061144d57505050500390f35b83518552869550938101939281019260010161143e565b3461040b57604036600319011261040b5761148060043561062d565b60243567ffffffffffffffff811161040b57610020903690600401610cef565b3461040b57602036600319011261040b5760043567ffffffffffffffff811161040b5760206114d6611506923690600401610cef565b906001600160a01b036114e7611cf4565b16905f604051809681958294632b870d1b60e11b8452600484016124f4565b03925af1801561157c576001600160a01b03915f9161154d575b507f6ca7b806000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b61156f915060203d602011611575575b611567818361053c565b8101906124bf565b5f611520565b503d61155d565b611ce9565b3461040b57610aa3610a976115953661094a565b95949094939193612585565b604060031982011261040b5760043567ffffffffffffffff811161040b57816115cc9160040161090a565b929092916024359067ffffffffffffffff821161040b5761062a9160040161093b565b61062a9060208152610100608061164881865161014060208701528051610160870152602081015161018087015260408101516101a087015260608101516101c0870152015160a06101e08601526102008501906109c8565b60208087015180516040870152015160608501529461167860408201518386019060208091805184520151910152565b6060810151805160c08601526020015160e0850152015191019080516001600160a01b031682526020908101518051828401520151604090910152565b3461040b576116c3366115a1565b91906116cd612652565b505f5b8181106116ef57610aa36116e3856129c0565b604051918291826115ef565b8061170561170060019385876126e8565b6129c0565b50016116d0565b3461040b5761171a366115a1565b91906117246122f7565b506020905f5b81811061175757610aa36112f4866040519061174760208361053c565b5f82526117526122f7565b612345565b8061177661176860019385886126e8565b60405190611747878361053c565b500161172a565b602036600319011261040b576100206004356117988161062d565b612710565b3461040b575f36600319011261040b57335f525f602052600160405f2001805463ffffffff8160781c161561187c576118056117f76102ab836117eb6117e661183f9660ff1690565b612769565b60781c63ffffffff1690565b65ffffffffffff42166127b4565b82547fffffffffffffff000000000000ffffffffffffffffffffffffffffffffffff001665ffffffffffff60981b609883901b1617909255565b60405165ffffffffffff909116815233907ffa9b3c14cc825c412c9ed81b3ba365a5b459439403f18829e572ed53a4180f0a908060208101610406565b606460405162461bcd60e51b815260206004820152600a60248201527f6e6f74207374616b6564000000000000000000000000000000000000000000006044820152fd5b3461040b57602036600319011261040b576100205f8080806004356118e48161062d565b6001600160a01b036001611908336001600160a01b03165f525f60205260405f2090565b019161199683549361196e65ffffffffffff61195a611940611934896001600160701b039060081c1690565b6001600160701b031690565b9761194c8915156127d2565b60981c65ffffffffffff1690565b1661196681151561281d565b421015612868565b80547fffffffffffffff000000000000000000000000000000000000000000000000ff169055565b604080516001600160a01b03831681526020810185905233917fb7c918e0e249f999e965cafeb6c664271b3f4317d296461500e71da39f0cbda391a2165af16119dd61200b565b506128b3565b3461040b57610aa36116e361170036610c3f565b8015150361040b57565b3461040b5761022036600319011261040b5760043560243567ffffffffffffffff811161040b57611a3690369060040161093b565b3660431901916101c0831261040b5761014060405193611a55856104c6565b1261040b57610aa392611b0492611a6a61056f565b611a74604461063e565b81526064356020820152608435604082015260a435606082015260c435608082015260e43560a08201526101043560c0820152611ab261012461063e565b60e0820152610144356101008201526101643561012082015282526101843560208301526101a43560408301526101c43560608301526101e43560808301526102043592611aff846119f7565b612da5565b604080519384526020840192909252908201529081906060820190565b3461040b57610aa3610a97611b353661094a565b95949094939193612f0e565b3461040b57611b5b611b5236610d1d565b92919091613067565b90610aa3604051928392151583526040602084015260408301906109c8565b15611b8157565b606460405162461bcd60e51b815260206004820152601a60248201527f6d757374207370656369667920756e7374616b652064656c61790000000000006044820152fd5b15611bcc57565b606460405162461bcd60e51b815260206004820152601c60248201527f63616e6e6f7420646563726561736520756e7374616b652074696d65000000006044820152fd5b634e487b7160e01b5f52601160045260245ffd5b906113888201809211611c3357565b611c10565b9060018201809211611c3357565b91908201809211611c3357565b15611c5a57565b606460405162461bcd60e51b815260206004820152601260248201527f6e6f207374616b652073706563696669656400000000000000000000000000006044820152fd5b15611ca557565b606460405162461bcd60e51b815260206004820152600e60248201527f7374616b65206f766572666c6f770000000000000000000000000000000000006044820152fd5b6040513d5f823e3d90fd5b6040517f09ccb880000000000000000000000000000000000000000000000000000000008152602081600481305afa90811561157c575f91611d34575090565b90506020813d602011611d61575b81611d4f6020938361053c565b8101031261040b575161062a8161062d565b3d9150611d42565b5f198114611c335760010190565b9392909193825190606082015181519081611f64575b505050505a9003608082015101925f935a91835191611dab836144e4565b92611dc060e08201516001600160a01b031690565b91611dd660808801518203606084015190614536565b01925f926001600160a01b0381169081611e7b5750505090611e036040949392516001600160a01b031690565b945b5a9003010102920151908282105f14611e4957611e215f6131eb565b7fdeadaa51000000000000000000000000000000000000000000000000000000005f5260205ffd5b82611e6d9203906001600160a01b03165f525f60205260405f209081540180915590565b50611e775f6131eb565b9190565b96928251611e92575b505050906040939291611e05565b919950949392505a98611ea45f6131eb565b60a05a920195865191813b1561040b578692835f809489611ef7604051988997889687947f7c627b21000000000000000000000000000000000000000000000000000000008652029086600486016131f5565b0393f19081611f4a575b50611f2a57611030611f116131be565b6040519182916365c8fd4d60e01b835260048301613227565b604094611f40915a9003995a9003905190614536565b9192935f80611e84565b80611f585f611f5e9361053c565b8061040f565b5f611f01565b5f80949360206001600160a01b0383965116910192f115611f88575f808080611d8d565b611030611f936131be565b6040519182917f462c71b20000000000000000000000000000000000000000000000000000000083526020600484015260248301906109c8565b600319810191908211611c3357565b5f19810191908211611c3357565b91908203918211611c3357565b6040519061200660208361053c565b5f8252565b3d15612035573d9061201c826105bd565b9161202a604051938461053c565b82523d5f602084013e565b606090565b1561204157565b606460405162461bcd60e51b815260206004820152601260248201527f6661696c656420746f20776974686472617700000000000000000000000000006044820152fd5b60405190612092826104e7565b5f6040838281528260208201520152565b604051906120b0826104e7565b815f81526040516120c0816104e7565b5f81525f602082015260606040820152602082015260406120df612085565b910152565b61062a906120f181613eae565b6120f9613272565b916121c78135926121098461062d565b60208301359080156122035761128290935b61213161212b6060830183612505565b906155e4565b90608081013560a08201359061215361212b60c08501359460e0810190612505565b93604051988997602089019b8c94919261010096939998979491996001600160a01b0361012088019b7f29a0bca4af4be3421398da00295e58e6d7de38cb492214754cb6a47507dd6f8e895216602088015260408701526060860152608085015260a084015260c083015260e08201520152565b51902090604291604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b506112826122146040850185612505565b9081604051918237209361211b565b1561222a57565b60405162461bcd60e51b815260206004820152601860248201527f41413934206761732076616c756573206f766572666c6f7700000000000000006044820152606490fd5b90607382029180830460731490151715611c3357565b61228d614155565b608460405162461bcd60e51b815260206004820152602760248201527f53484f554c44204e4f542042452043414c4c454420445552494e472053494d5560448201527f4c4154494f4e53000000000000000000000000000000000000000000000000006064820152fd5b60405190610100820182811067ffffffffffffffff8211176104e257604052606060e0835f81525f60208201525f60408201525f838201525f60808201525f60a08201525f60c08201520152565b509050612350614155565b608061235a612450565b916123648161341b565b61236e8382612bd4565b929091905a6060870151876123866060850185612505565b94905f60038711612448575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b0361243057506123ef9450611290602083015191611282604051938492638dd7712f60e01b6020850152602484016142e3565b9490955b0151946123fe61057f565b958652602086015260408501526060840152608083015260a08201525f60c0820152606060e08201529061056d6141c9565b61129091506124409536916105d9565b9490956123f3565b508035612392565b6040519061245d826104c6565b5f60808360405161246d81610503565b83815283602082015283604082015283606082015283838201528360a08201528360c08201528360e0820152836101008201528361012082015281528260208201528260408201528260608201520152565b9081602091031261040b575161062a8161062d565b908060209392818452848401375f828201840152601f01601f1916010190565b91602061062a9381815201916124d4565b903590601e198136030182121561040b570180359067ffffffffffffffff821161040b5760200191813603831361040b57565b6040519061254760208361053c565b5f808352366020840137565b9061255d826105bd565b61256a604051918261053c565b828152809261257b601f19916105bd565b0190602036910137565b959493929190956125946120a3565b506125a26060830183612505565b9050156125d85761062a966125b69161338e565b6125d06125c1612450565b6125ca8361341b565b82612bd4565b5050506137c1565b505050505050506125e7612538565b604051906125f4826104e7565b5f82525f6020830152604082015260405161260e816104e7565b5f81525f60208201525f60408201526040519161262a836104e7565b5f83526020830152604082015290565b6040519061264782610520565b5f6020838281520152565b6040519061265f826104c6565b8160405161266c816104c6565b5f81525f60208201525f60408201525f606082015260606080820152815261269261263a565b602082015261269f61263a565b60408201526126ac61263a565b60608201526080604051916126c083610520565b5f83526126cb61263a565b60208401520152565b634e487b7160e01b5f52603260045260245ffd5b919081101561270b5760051b8101359061011e198136030182121561040b570190565b6126d4565b7f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c460206001600160a01b0361275d34856001600160a01b03165f525f60205260405f209081540180915590565b936040519485521692a2565b1561277057565b606460405162461bcd60e51b815260206004820152601160248201527f616c726561647920756e7374616b696e670000000000000000000000000000006044820152fd5b9065ffffffffffff8091169116019065ffffffffffff8211611c3357565b156127d957565b606460405162461bcd60e51b815260206004820152601460248201527f4e6f207374616b6520746f2077697468647261770000000000000000000000006044820152fd5b1561282457565b606460405162461bcd60e51b815260206004820152601d60248201527f6d7573742063616c6c20756e6c6f636b5374616b6528292066697273740000006044820152fd5b1561286f57565b606460405162461bcd60e51b815260206004820152601b60248201527f5374616b65207769746864726177616c206973206e6f742064756500000000006044820152fd5b156128ba57565b606460405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f207769746864726177207374616b6500000000000000006044820152fd5b9060141161040b5790601490565b909291928360141161040b57831161040b57601401916013190190565b909291928360341161040b57831161040b57603401916033190190565b356bffffffffffffffffffffffff19811692919060148210612966575050565b6bffffffffffffffffffffffff1960149290920360031b82901b16169150565b6040519061299382610520565b6004546001600160a01b031682526040516020836129b083610520565b6005548352600654828401520152565b6129c8612652565b506129d1612450565b906129db8161341b565b6129e58282612bd4565b509190926129f383856142fa565b612a10612a0b60e0835101516001600160a01b031690565b6144a4565b91612a3e612a2a612a0b84516001600160a01b0390511690565b91612a3361263a565b506040810190612505565b9060148210612b1957612a60612a5a612a6693612a0b936128fe565b90612946565b60601c90565b916001600160a01b038616946080820151966060604084015193015192612a8b61055e565b9889526020890152604088015260608701526080860152612aaa612986565b9380151580612b0e575b612adc575b50612ac261055e565b948552602085015260408401526060830152608082015290565b909350612ae8816144a4565b612b02612af361058f565b6001600160a01b039093168352565b6020820152925f612ab9565b506001811415612ab4565b5050612a665f6144a4565b15612b2c5750565b60405190631101335b60e11b82526004820152604060248201528061103060448201604090601881527f41413934206761732076616c756573206f766572666c6f77000000000000000060208201520190565b15612b875750565b60408051631101335b60e11b815260048101929092526024820152601a60448201527f4141323520696e76616c6964206163636f756e74206e6f6e63650000000000006064820152608490fd5b9190915f915a93805192612be88482613c91565b612c01604051612bf7836120e4565b6020850152604052565b604084015195612c495f6effffffffffffffffffffffffffffff8960c08901511760608901511760808901511760a08901511761010089015117610120890151171115612b24565b612c94612c7786610100604082015160608301510160808301510160a08301510160c0830151019101510290565b806040860152612c8b608085013560801c90565b9085855f614024565b96612cbd5f612cb8612cad89516001600160a01b031690565b60208a015190614107565b612b7f565b5a820311612d52576060946001600160a01b03612ce560e05a9301516001600160a01b031690565b16151580612d4a575b612d1c575b60809291612d0a610fc6610fc160a0945a90611fea565b9660608601525a900391013501910152565b9450610fc195509060a0608092612d0a610fc6612d3a87865f613d7f565b9a90999450505050919250612cf3565b506001612cee565b604051631101335b60e11b8152806110305f60048301608091815260406020820152601e60408201527f41413236206f76657220766572696669636174696f6e4761734c696d6974000060608201520190565b939092915f935a8251612db88184613c91565b612dd1604051612dc7856120e4565b6020870152604052565b604081015197612e19816effffffffffffffffffffffffffffff8b60c08601511760608601511760808601511760a08601511761010086015117610120860151171115612b24565b612e64612e4783610100604082015160608301510160808301510160a08301510160c0830151019101510290565b806040880152612e5b608087013560801c90565b90878785614024565b98612e8882612cb8612e7d86516001600160a01b031690565b602087015190614107565b5a840311610fe2576060966001600160a01b03612eb060e05a9501516001600160a01b031690565b1615159081612f06575b50612ed8575b5060809291612d0a610fc6610fc160a0945a90611fea565b610fc1975060a091965091612d0a610fc6612ef7878760809897613d7f565b9a909994505050509192612ec0565b90505f612eba565b95949392919095612f1d6120a3565b506014612f2d60e0840184612505565b905010612f685761062a96612f5a91610a83612f47612450565b612f52815187613c91565b5a9086613f41565b612f638161341b565b6139de565b50505050505050612f77612538565b60405190612f84826104e7565b5f82525f60208301526040820152612f9a61059e565b5f81525f60208201525f6040820152612fb161059e565b915f83526020830152604082015290565b6040906001600160a01b0361062a959316815281602082015201916124d4565b90815181101561270b570160200190565b919060408382031261040b57825161300a816119f7565b9260208101519067ffffffffffffffff821161040b570181601f8201121561040b57805190613038826105bd565b92613046604051948561053c565b8284526020838301011161040b57815f9260208093018386015e8301015290565b91925f936001600160a01b036060941691823b1561040b576130e5935f80946040518097819682957f850aaf620000000000000000000000000000000000000000000000000000000084526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048501612fc2565b0393f190816131a1575b5061318f5750506130fe61200b565b9060048251106131935761311a6131158351611fcd565b612553565b60045b8351811015613179578061315c61313660019387612fe2565b517fff000000000000000000000000000000000000000000000000000000000000001690565b61317261316883611fcd565b915f1a9185612fe2565b530161311d565b5061318f91925060208082518301019101612ff3565b9091565b905061319d612538565b5f91565b80611f585f6131af9361053c565b5f6130ef565b61056d33612710565b3d61080081116131e2575b604051906020818301016040528082525f602083013e90565b506108006131c9565b60031115610a5757565b90949392946003811015610a575760609261321d9183526080602084015260808301906109c8565b9460408201520152565b9060a061062a925f815260606020820152601460608201527f4141353020706f73744f70207265766572746564000000000000000000000000608082015281604082015201906109c8565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016301480613365575b156132cd577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815261335f60c08261053c565b51902090565b507f000000000000000000000000000000000000000000000000000000000000000046146132a4565b5f5b82811061339c57505050565b6001906133a7612450565b6133b28286866126e8565b6133bb8161341b565b6133c58282612bd4565b5050506133d56060820182612505565b90501561340a576133ee5f929160208493015190614555565b9082602083519301915af15061340261200b565b505b01613390565b5050613404565b3561062a8161062d565b61344e9061342c6040820182612505565b9161344681359161343c8361062d565b60e0810190612505565b9390926145ee565b80516134575750565b61103090604051918291631101335b60e11b83525f60048401526040602484015260448301906109c8565b9392916134a8906001600160a01b036040931686526060602087015260608601906109c8565b930152565b9390946134b86120a3565b508215613727576134f8926134cb611ff7565b50915f6134da5a88600361497f565b5a906040519687928392631efc84dd60e31b84528c60048501613482565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af190811561157c575f945f92613708575b508194809281156136e65750506135549095929394955b85611c46565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b8461358c8885611fea565b106136b7575a61359b88611c24565b1161365e5791889391879695935f8c8b6135cd6135c46135be886135ed9f611c46565b60011c90565b809a600361497f565b835a936040519e8f9586948593631efc84dd60e31b855260048501613482565b03925af198891561157c575f905f9a613637575b50156136225750505061361383611fdc565b95915b93949591929092613581565b93965093613631919750611c38565b94613616565b90506136569199503d805f833e61364e818361053c565b810190612ff3565b98905f613601565b50955093955050509350613670612538565b9261367961059e565b935f85525f6020860152604085015261369061059e565b928352602083015260408201526136a561059e565b60018152916020830152604082015290565b9650965050919550506136d991506136cd61059e565b93845215156020840152565b6040820152612f9a61059e565b965096505050945050506136d96136fb61059e565b5f81529215156020840152565b90945061371f91503d805f833e61364e818361053c565b90935f613537565b61373a92505a5f6134da5a88600361497f565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af192831561157c575f945f9461379f575b50839461378881935a90611fea565b9481156136e657505061355490959293949561354e565b9093506137b79194503d805f833e61364e818361053c565b939093925f613779565b9390946137cc6120a3565b508215613944576137ee926137df611ff7565b50915f6134da5a88600161497f565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af190811561157c575f945f92613925575b508194809281156136e657505061384990959293949585611c46565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846138818885611fea565b106136b7575a61389088611c24565b1161365e5791889391879695935f8c8b6135cd6138b36135be886138bc9f611c46565b809a600161497f565b03925af198891561157c575f905f9a613906575b50156138f1575050506138e283611fdc565b95915b93949591929092613876565b93965093613900919750611c38565b946138e5565b905061391d9199503d805f833e61364e818361053c565b98905f6138d0565b90945061393c91503d805f833e61364e818361053c565b90935f61382d565b61395792505a5f6134da5a88600161497f565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af192831561157c575f945f946139bc575b5083946139a581935a90611fea565b9481156136e657505061384990959293949561354e565b9093506139d49194503d805f833e61364e818361053c565b939093925f613996565b9390946139e96120a3565b508215613b6157613a0b926139fc611ff7565b50915f6134da5a88600261497f565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af190811561157c575f945f92613b42575b508194809281156136e6575050613a6690959293949585611c46565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b84613a9e8885611fea565b106136b7575a613aad88611c24565b1161365e5791889391879695935f8c8b6135cd613ad06135be88613ad99f611c46565b809a600261497f565b03925af198891561157c575f905f9a613b23575b5015613b0e57505050613aff83611fdc565b95915b93949591929092613a93565b93965093613b1d919750611c38565b94613b02565b9050613b3a9199503d805f833e61364e818361053c565b98905f613aed565b909450613b5991503d805f833e61364e818361053c565b90935f613a4a565b613b7492505a5f6134da5a88600261497f565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af192831561157c575f945f94613bd9575b508394613bc281935a90611fea565b9481156136e6575050613a6690959293949561354e565b909350613bf19194503d805f833e61364e818361053c565b939093925f613bb3565b15613c0257565b606460405162461bcd60e51b815260206004820152601d60248201527f4141393320696e76616c6964207061796d6173746572416e64446174610000006044820152fd5b15613c4d57565b606460405162461bcd60e51b815260206004820152601660248201527f4141393820696e76616c6964207061796d6173746572000000000000000000006044820152fd5b613d2890613cae613ca182613411565b6001600160a01b03168452565b60208101356020840152613cdb6080820135906fffffffffffffffffffffffffffffffff8260801c921690565b6060850152604084015260a081013560c0840152613d1260c0820135906fffffffffffffffffffffffffffffffff8260801c921690565b61010085015261012084015260e0810190612505565b80929192613d3557505050565b613d518161056d94613d4c603460e0951015613bfb565b614bbb565b60a0850152608084015291613d706001600160a01b0384161515613c46565b01906001600160a01b03169052565b9290925a938351613da26001600160a01b0360e083015116604087015190614bf3565b15613e3a57906080613db992015194859184614c85565b9390945a900311613dc75750565b60408051631101335b60e11b815260048101929092526024820152602760448201527f41413336206f766572207061796d6173746572566572696669636174696f6e4760648201527f61734c696d697400000000000000000000000000000000000000000000000000608482015260a490fd5b60848360405190631101335b60e11b8252600482015260406024820152601e60448201527f41413331207061796d6173746572206465706f73697420746f6f206c6f7700006064820152fd5b909280926014946bffffffffffffffffffffffff199060601b1683528483013701015f815290565b613ebb6040820182612505565b9091613eca610f818385614d7a565b613f3a57613eda613edf91613411565b614dbc565b9160148211613f1657505060405161335f816112826020820194856014916bffffffffffffffffffffffff199060601b1681520190565b8161335f92613f249261290c565b9190611282604051938492602084019687613e86565b5050505f90565b9291613f85908251926001600160a01b0360e08186511695613f71613f6960408b018b612505565b90865f614ec0565b015116905f91159687613ff1575b5f61526d565b92613f8d5750565b5f613f9791614bf3565b15613f9e57565b604051631101335b60e11b8152806110305f60048301608091815260406020820152601760408201527f41413231206469646e2774207061792070726566756e6400000000000000000060608201520190565b915061400d856001600160a01b03165f525f60205260405f2090565b54801561401d57505f5b91613f7f565b5f03614017565b9290949361406a908351936001600160a01b0360e0818751169661405661404e60408d018d612505565b90868c614ec0565b015116905f911598896140d2575b8761526d565b9461407457505050565b61407d91614bf3565b156140855750565b60408051631101335b60e11b815260048101929092526024820152601760448201527f41413231206469646e2774207061792070726566756e640000000000000000006064820152608490fd5b91506140ee866001600160a01b03165f525f60205260405f2090565b548581111561410057505f5b91614064565b85036140fa565b6001600160a01b03165f52600160205267ffffffffffffffff6141418260401c60405f20906001600160c01b03165f5260205260405f2090565b9182549261414e84611d69565b9055161490565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c6141a15760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d565b7f3ee5aeb5000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d565b9035601e198236030181121561040b57016020813591019167ffffffffffffffff821161040b57813603831361040b57565b61062a9161423e816142318461063e565b6001600160a01b03169052565b602082013560208201526142d46142c861428f61427461426160408701876141ee565b61012060408801526101208701916124d4565b61428160608701876141ee565b9086830360608801526124d4565b6080850135608085015260a085013560a085015260c085013560c08501526142ba60e08601866141ee565b9085830360e08701526124d4565b926101008101906141ee565b916101008185039101526124d4565b9291906134a8602091604086526040860190614220565b61430b6001600160a01b0391615512565b9116614451576143fe576143266001600160a01b0391615512565b91166143ab5761433257565b604051631101335b60e11b8152806110305f6004830160a091815260406020820152602160408201527f41413332207061796d61737465722065787069726564206f72206e6f7420647560608201527f650000000000000000000000000000000000000000000000000000000000000060808201520190565b604051631101335b60e11b8152806110305f60048301608091815260406020820152601460408201527f41413334207369676e6174757265206572726f7200000000000000000000000060608201520190565b604051631101335b60e11b8152806110305f60048301608091815260406020820152601760408201527f414132322065787069726564206f72206e6f742064756500000000000000000060608201520190565b604051631101335b60e11b8152806110305f60048301608091815260406020820152601460408201527f41413234207369676e6174757265206572726f7200000000000000000000000060608201520190565b906001600160a01b036144b561263a565b92165f525f60205263ffffffff600160405f2001546001600160701b038160081c16845260781c166020830152565b6101206101008201519101517f59e3bb5c9eacf8e7a9c3802366751badc68d4d97d3e35b1744045784c52f20dd5480155f14614530575048905b018082101561452b575090565b905090565b9061451e565b90619c40820181111561454f57606491600a9103020490565b50505f90565b919082356145628161062d565b9260608101638dd7712f60e01b7fffffffff0000000000000000000000000000000000000000000000000000000061459a8385612505565b9060035f92116145e5575b5016036145d0575061062a90611282604051938492638dd7712f60e01b6020850152602484016142e3565b61062a92506145de91612505565b36916105d9565b9050355f6145a5565b509291921590816146a3575b50614666576014811015614613575b505061062a611ff7565b60141161040b573560601c3b1561462b575f80614609565b60405161463960408261053c565b601b81527f41413330207061796d6173746572206e6f74206465706c6f7965640000000000602082015290565b505060405161467660408261053c565b601981527f41413230206163636f756e74206e6f74206465706c6f79656400000000000000602082015290565b90503b155f6145fa565b9190916101208184031261040b576146c36105ad565b926146cd8261063e565b845260208201356020850152604082013567ffffffffffffffff811161040b57816146f991840161060f565b6040850152606082013567ffffffffffffffff811161040b578161471e91840161060f565b60608501526080820135608085015260a082013560a085015260c082013560c085015260e082013567ffffffffffffffff811161040b578161476191840161060f565b60e085015261010082013567ffffffffffffffff811161040b57614785920161060f565b610100830152565b60041115610a5757565b916020936fffffffffffffffffffffffffffffffff198092603497946bffffffffffffffffffffffff199060601b1686521660148501521660248301528051928391018483015e01015f815290565b80516001600160a01b0316825261062a9160208201516020820152610100614867614837614825604086015161012060408701526101208601906109c8565b606086015185820360608701526109c8565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e08601526109c8565b920151906101008184039101526109c8565b60806101a09161012081516148978682516001600160a01b03169052565b602081015160208701526040810151604087015260608101516060870152838101518487015260a081015160a087015260c081015160c08701526148eb60e082015160e08801906001600160a01b03169052565b61010081015161010087015201516101208501526020810151610140850152604081015161016085015260608101516101808501520151910152565b61495661494b61020093969594965f845261022060208501526102208401906147e6565b956040830190614879565b0152565b6102009061495661494b5f9496959685845261022060208501526102208401906147e6565b91614988612450565b9261499336846146ad565b61499c8261478d565b60028214614ad7576149ad8261478d565b60038214614a595750806149c260019261478d565b14614a0c5760405162461bcd60e51b815260206004820152600c60248201527f496e76616c6964206d6f646500000000000000000000000000000000000000006044820152606490fd5b614a2161062a92602061128295015190614555565b9390916040519485937f4440347300000000000000000000000000000000000000000000000000000000602086015260248501613482565b9190506fffffffffffffffffffffffffffffffff614a97614a90608061062a9601356fffffffffffffffffffffffffffffffff1690565b9260801b90565b91161760808201526112826040519384927fc579f76b0000000000000000000000000000000000000000000000000000000060208501526024840161495a565b9161128291506fffffffffffffffffffffffffffffffff1984614b6360e061062a9701614b55614b10614b0a8386612505565b90614bbb565b9391905060609160e08b0196603488515111614b99575b505060405196879460801b16906fffffffffffffffffffffffffffffffff198960801b169060208601614797565b03601f19810184528361053c565b526040519485937f21e60b3700000000000000000000000000000000000000000000000000000000602086015260248501614927565b614bb39293506145de91614bac91612505565b8091612929565b905f80614b27565b90918260141161040b578135918360241161040b5760148101359360341161040b5760609290921c92608090811c9260240135901c90565b6001600160a01b03165f525f60205260405f20908154818110613f3a57039055600190565b614c3060409295949395606083526060830190614220565b9460208201520152565b60a09061062a9392815260606020820152600d60608201527f4141333320726576657274656400000000000000000000000000000000000000608082015281604082015201906109c8565b925f8091959392956040519682614cfa60e0602088015197614ceb8c614cdc6040840151602083019c8d997f52b7512c000000000000000000000000000000000000000000000000000000008b5260248501614c18565b038d601f19820190528d61053c565b5101516001600160a01b031690565b895193f1933d91825f833e51938151604083019687519015918215614d6e575b508115614d5c575b50614d375750601f909101601f191601604052565b614d3f6131be565b906110306040519283926365c8fd4d60e01b845260048401614c3a565b9050601f605f1985019101105f614d22565b6040141591505f614d1a565b90600211614db757356bffffffffffffffffffffffff19167f77020000000000000000000000000000000000000000000000000000000000001490565b505f90565b60175f80833c5f51907fef010000000000000000000000000000000000000000000000000000000000007fffffff0000000000000000000000000000000000000000000000000000000000831603614e315750612a60614e1f61062a9260181b90565b6bffffffffffffffffffffffff191690565b3b15614e7c5760405162461bcd60e51b815260206004820152601860248201527f6e6f7420616e204549502d373730322064656c656761746500000000000000006044820152606490fd5b606460405162461bcd60e51b815260206004820152601260248201527f73656e64657220686173206e6f20636f646500000000000000000000000000006044820152fd5b92909181614ecf575b50505050565b8251516001600160a01b031693614ee68383614d7a565b61518657843b61513957601483106150ec575f6020614f12614f06611cf4565b6001600160a01b031690565b60408751015160405180948193632b870d1b60e11b835282614f388b8b600484016124f4565b0393f190811561157c575f916150cd575b506001600160a01b038116958615615078576001600160a01b0316809603615023573b15614fd65750612a60612a5a7fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d93614fa3936128fe565b602083810151935160e00151604080516001600160a01b039485168152939091169183019190915290a35f808080614ec9565b60408051631101335b60e11b815260048101929092526024820152602060448201527f4141313520696e6974436f6465206d757374206372656174652073656e6465726064820152608490fd5b61103082604051918291631101335b60e11b835260048301608091815260406020820152602060408201527f4141313420696e6974436f6465206d7573742072657475726e2073656e64657260608201520190565b61103083604051918291631101335b60e11b835260048301608091815260406020820152601b60408201527f4141313320696e6974436f6465206661696c6564206f72204f4f47000000000060608201520190565b6150e6915060203d60201161157557611567818361053c565b5f614f49565b60408051631101335b60e11b815260048101929092526024820152601760448201527f4141393920696e6974436f646520746f6f20736d616c6c0000000000000000006064820152608490fd5b60408051631101335b60e11b815260048101929092526024820152601f60448201527f414131302073656e64657220616c726561647920636f6e7374727563746564006064820152608490fd5b5090601481116151965750505050565b806151b29160406151a8614f06611cf4565b955101519361290c565b9190833b1561040b575f80946151f896604051978896879586937fc09ad0d900000000000000000000000000000000000000000000000000000000855260048501612fc2565b0393f1801561157c5761520e575b808080614ec9565b80611f585f61521c9361053c565b5f615206565b60a09061062a9392815260606020820152600d60608201527f4141323320726576657274656400000000000000000000000000000000000000608082015281604082015201906109c8565b92916020959486926152d75f936152c961529082516001600160a01b0390511690565b976040519b8c930151888401957f19822f7c00000000000000000000000000000000000000000000000000000000875260248501614c18565b03601f1981018a528961053c565b8285895193f15f519460203d0361536c575b604052156152f5575050565b3b6153475760408051631101335b60e11b815260048101929092526024820152601960448201527f41413230206163636f756e74206e6f74206465706c6f796564000000000000006064820152608490fd5b61534f6131be565b906110306040519283926365c8fd4d60e01b845260048401615222565b5f91506152e9565b60ff81146153855761062a906155ef565b506040515f6002548060011c91600182168015615450575b60208410811461543c578385528492602084019190811561542357506001146153ce575b5061062a9250038261053c565b60025f90815291507f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5b84831061540c575061062a9350015f6153c1565b8054828401528593506020909201916001016153f8565b60ff191682525061062a93151560051b0190505f6153c1565b634e487b7160e01b5f52602260045260245ffd5b92607f169261539d565b60ff811461546b5761062a906155ef565b506040515f6003548060011c91600182168015615508575b60208410811461543c578385528492602084019190811561542357506001146154b3575061062a9250038261053c565b60035f90815291507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8483106154f1575061062a9350015f6153c1565b8054828401528593506020909201916001016154dd565b92607f1692615483565b80156155dd57615520612085565b5065ffffffffffff8160a01c169081156155cf575b6155b09061559761558c6040519461554c866104e7565b6001600160a01b038416865265ffffffffffff602087019460d01c1684526155806040870191829065ffffffffffff169052565b5165ffffffffffff1690565b65ffffffffffff1690565b42119081156155b3575b5091516001600160a01b031690565b91565b516155c6915065ffffffffffff1661558c565b4211155f6155a1565b65ffffffffffff9150615535565b505f905f90565b816040519182372090565b60ff811690601f821161561e576040519161560b60408461053c565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffdfea26469706673582212200c1bc9721375e58a182fe2194614b4b44c1b2bf7bc6e1a63eef38ae647a6e4a464736f6c634300081c0033","sourceMap":"971:17770:28:-:0;;;;;;;;;-1:-1:-1;971:17770:28;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;971:17770:28;;;;;;;;;;;;;;;3456:47:31;;3011:10;971:17770:28;3206:22:31;971:17770:28;3002:20:31;3011:10;-1:-1:-1;;;;;971:17770:28;3002:8:31;971:17770:28;3002:8:31;971:17770:28;;;3002:8:31;971:17770:28;;;3002:20:31;3040:19;3032:58;3040:19;;;3032:58;:::i;:::-;3100:80;3127:20;;;971:17770:28;;3108:39:31;971:17770:28;;;;;;;;;;;;;;3108:39:31;-1:-1:-1;3108:39:31;3100:80;:::i;:::-;971:17770:28;;-1:-1:-1;;;;;971:17770:28;;;;-1:-1:-1;;;;;3219:9:31;971:17770:28;;3206:22:31;:::i;:::-;3246:9;3238:40;3246:9;;;3238:40;:::i;:::-;3288:53;-1:-1:-1;;;;;3296:26:31;;;3288:53;:::i;:::-;971:17770:28;;;:::i;:::-;;;;3127:20:31;971:17770:28;3374:67:31;;971:17770:28;-1:-1:-1;;;;;971:17770:28;;3374:67:31;;;971:17770:28;;;;3374:67:31;;;971:17770:28;-1:-1:-1;3374:67:31;;;971:17770:28;3351:20:31;3011:10;-1:-1:-1;;;;;971:17770:28;3002:8:31;971:17770:28;3002:8:31;971:17770:28;;;3002:8:31;971:17770:28;;;3351:20:31;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;971:17770:28;;;;;;3374:67:31;971:17770:28;;;;;;;;;;;;;3011:10:31;;971:17770:28;;;;;;;3456:47:31;;;;971:17770:28;;-1:-1:-1;971:17770:28;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;971:17770:28;;;;;;;:::i;:::-;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;;-1:-1:-1;;;;;971:17770:28;;;;;;:::o;:::-;;;;;;-1:-1:-1;;971:17770:28;;;;;;-1:-1:-1;;;;;971:17770:28;;;;;;893:36:0;913:10;;-1:-1:-1;971:17770:28;893:19:0;971:17770:28;;;-1:-1:-1;971:17770:28;;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;893:36:0;:38;971:17770:28;;893:38:0;:::i;:::-;971:17770:28;;;;-1:-1:-1;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;2420:15;971:17770;;;2420:15;971:17770;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;971:17770:28;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;971:17770:28;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;-1:-1:-1;;;;;971:17770:28;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;971:17770:28;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;971:17770:28;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;971:17770:28;;;;;3445:20:27;;:::i;:::-;971:17770:28;;;;;;;;;;;;-1:-1:-1;;971:17770:28;;;;;;;1092:197:32;971:17770:28;;;;;;;;;-1:-1:-1;;971:17770:28;;;;;279:74:0;971:17770:28;;;;;:::i;:::-;-1:-1:-1;;;;;971:17770:28;;:::i;:::-;;;-1:-1:-1;971:17770:28;279:74:0;971:17770:28;;;-1:-1:-1;971:17770:28;;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;279:74:0;971:17770:28;;;;;;;;;;;;;-1:-1:-1;;971:17770:28;;;;;;;;;:::i;:::-;;;4820:10:31;-1:-1:-1;971:17770:28;-1:-1:-1;971:17770:28;;;-1:-1:-1;971:17770:28;;;;4896:32:31;;;;971:17770:28;;-1:-1:-1;4983:31:31;;;-1:-1:-1;;;;;4983:31:31;;;;;5168:38;4983:31;;:::i;:::-;971:17770:28;;;;;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;4820:10:31;;5029:54;;;971:17770:28;5111:47:31;;;;:::i;:::-;;5168:38;:::i;971:17770:28:-;;;;-1:-1:-1;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;-1:-1:-1;;971:17770:28;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;971:17770:28;;;;;;;;-1:-1:-1;;971:17770:28;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;13544:152;13462:13;971:17770;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;13462:13;:::i;:::-;13513:12;;;:::i;:::-;13544:152;:::i;:::-;971:17770;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;971:17770:28;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;971:17770:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;-1:-1:-1;13882:17:27;-1:-1:-1;;;;;14072:17:27;13882;;13937:7;;;;:::i;:::-;13978:21;;;:::i;:::-;13955:20;;;971:17770:28;14030:28:27;;10020:20;9803:28;;;971:17770:28;9834:20:27;;;971:17770:28;1679:4:27;9873:37;;;971:17770:28;1679:4:27;9913:31;;;971:17770:28;1679:4:27;9947:26;;;971:17770:28;1679:4:27;10020:20;;971:17770:28;;9633:424:27;;14030:28;14010:17;;;971:17770:28;14072:17:27;971:17770:28;;14068:155:27;;971:17770:28;;;;14010:17:27;971:17770:28;;-1:-1:-1;971:17770:28;;13955:20:27;971:17770:28;;;-1:-1:-1;14010:17:27;971:17770:28;;;;14068:155:27;14156:56;;;;:::i;:::-;14119:93;;14068:155;;;;;971:17770:28;;-1:-1:-1;;971:17770:28;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;971:17770:28;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;971:17770:28;;:::i;:::-;;;-1:-1:-1;971:17770:28;507:19:0;971:17770:28;;507:32:0;971:17770:28;;-1:-1:-1;971:17770:28;;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;507:32:0;971:17770:28;;;;;;;-1:-1:-1;;971:17770:28;507:55:0;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;971:17770:28;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;-1:-1:-1;971:17770:28;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6626:27;;;;;:::i;:::-;6667:8;;6663:175;;971:17770;6663:175;971:17770;;6695:22;;;6691:36;;6741:87;;;971:17770;;;;;;-1:-1:-1;;971:17770:28;;;;-1:-1:-1;;;;;971:17770:28;;;;;:::i;:::-;-1:-1:-1;971:17770:28;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;971:17770:28;-1:-1:-1;971:17770:28;;;;-1:-1:-1;971:17770:28;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25525:9:27;;;;25574:17;;;25629:7;;;;;:::i;:::-;25670:21;;;:::i;:::-;25647:20;;;971:17770:28;25886:28:27;;;971:17770:28;25947:26:27;26181:70;971:17770:28;25947:26:27;;;;971:17770:28;25947:49:27;25999:20;;;971:17770:28;25947:72:27;26034:37;;;971:17770:28;25947:124:27;26074:31;;;971:17770:28;25947:158:27;26108:20;;;971:17770:28;25947:181:27;26143:28;;;971:17770:28;25947:224:27;26189:33;;26181:70;:::i;:::-;26288:28;;10020:20;9803:28;;;971:17770:28;9834:20:27;;;971:17770:28;1679:4:27;9873:37;;;971:17770:28;1679:4:27;9913:31;;;971:17770:28;1679:4:27;9947:26;;;971:17770:28;1679:4:27;10020:20;;971:17770:28;;9633:424:27;;26288:28;26415:9;26440:55;26441:54;26343:82;26415:9;26343:82;;;;;:::i;:::-;971:17770:28;25647:20:27;971:17770:28;;;-1:-1:-1;;;;;971:17770:28;;;;26481:13:27;;971:17770:28;26441:54:27;;:::i;:::-;26440:55;;971:17770:28;26440:55:27;26436:140;;26623:9;1679:4;;26614:41;26610:138;;26821:9;;27153:32;26821:9;26034:37;27154:24;26821:9;26074:31;27152:40;26821:9;;26912:17;25886:28;26912:17;;971:17770:28;25999:20:27;26961:23;;;971:17770:28;27063:9:27;1679:4;;27075:25;;971:17770:28;1679:4:27;27033:18;;971:17770:28;27169:9:27;27154:24;;:::i;:::-;27153:32;:::i;:::-;27189:3;971:17770:28;;;;27152:40:27;25886:28;971:17770:28;;;;;;;;;;;;;;;;26610:138:27;25886:28;971:17770:28;;-1:-1:-1;;;26682:51:27;;971:17770:28;26682:51:27;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;26682:51:27;;;;26436:140;26518:47;971:17770:28;25886:28:27;971:17770:28;26518:47:27;;;-1:-1:-1;;;26518:47:27;;971:17770:28;26518:47:27;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;971:17770:28;;;;-1:-1:-1;;;;;971:17770:28;;;;;:::i;:::-;;-1:-1:-1;971:17770:28;-1:-1:-1;971:17770:28;;;;-1:-1:-1;971:17770:28;;;;;;;;;;-1:-1:-1;;971:17770:28;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;2102:156:27;;:::i;971:17770:28:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;971:17770:28;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;1181:103:15;;:::i;:::-;971:17770:28;;:::i;:::-;16002:2;;;;:::i;:::-;16126:40;;;;:::i;:::-;3723:1327:27;;;3979:9;4047:20;;;971:17770:28;4140:15:27;;4047:20;4140:15;;;;:::i;:::-;4205:16;;-1:-1:-1;4235:160:27;;;;;971:17770:28;;;-1:-1:-1;;;4412:51:27;4425:38;;4567:17;4643:53;4567:17;;4512:74;4567:17;;;971:17770:28;;4512:74:27;971:17770:28;;4512:74:27;;;-1:-1:-1;;;4567:17:27;4512:74;;;;;;;:::i;:::-;;971:17770:28;;4512:74:27;;;;;;:::i;:::-;4643:53;:::i;:::-;4604:92;;4408:626;;-1:-1:-1;16295:25:28;4047:20:27;971:17770:28;-1:-1:-1;;;;;971:17770:28;;16330:110;;4408:626:27;16486:15:28;;;;16457:270;16486:15;;;971:17770;;;;:::i;:::-;;;;16457:270;;;971:17770;16457:270;;;971:17770;4047:20:27;16457:270:28;;971:17770;16486:15;16457:270;;971:17770;16457:270;;;971:17770;;;16457:270;;;971:17770;;16457:270;;;;971:17770;1246:1:15;;:::i;:::-;971:17770:28;;;;;;;:::i;16330:110::-;16457:270;16402:27;;-1:-1:-1;16402:27:28;;;;;;;;;;;;;;;;16486:15;16402:27;;:::i;:::-;16370:59;16330:110;;;;;;4408:626:27;971:17770:28;;;4875:48:27;971:17770:28;;;;:::i;4875:48:27:-;4836:87;;4408:626;;;4235:160;-1:-1:-1;4235:160:27;;;;971:17770:28;;;;;;-1:-1:-1;;971:17770:28;;;;;6099:41:20;:5;:41;:::i;:::-;6554:47;:8;:47;:::i;:::-;971:17770:28;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5590:13:20;;971:17770:28;;;;5625:4:20;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;971:17770:28;;;;;;;;;;;;;;;;;;-1:-1:-1;;971:17770:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;971:17770:28;;;;;;;;;;;;;2894:38:27;971:17770:28;;;;;;:::i;:::-;2894:15:27;-1:-1:-1;;;;;2894:15:27;;:::i;:::-;971:17770:28;;-1:-1:-1;971:17770:28;;2894:38:27;;;;;;-1:-1:-1;;;2894:38:27;;971:17770:28;2894:38:27;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;2894:38:27;-1:-1:-1;2894:38:27;;;971:17770:28;2949:27:27;;-1:-1:-1;2949:27:27;971:17770:28;;;;-1:-1:-1;2949:27:27;2894:38;;;;971:17770:28;2894:38:27;971:17770:28;2894:38:27;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;971:17770:28:-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;-1:-1:-1;;971:17770:28;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;-1:-1:-1;6264:24:28;;;;;;971:17770;6439:32;;;:::i;:::-;971:17770;;;;;;;:::i;6290:3::-;6328:16;6309:36;6328:16;971:17770;6328:16;;;;:::i;:::-;6309:36;:::i;:::-;;971:17770;6249:13;;971:17770;;;;;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;971:17770:28;;-1:-1:-1;17010:24:28;;;;;;971:17770;15903:22;971:17770;;;;;;;;:::i;:::-;-1:-1:-1;971:17770:28;;;;:::i;:::-;15903:22;:::i;17036:3::-;17078:16;15903:22;17078:16;971:17770;17078:16;;;;:::i;:::-;971:17770;;;;;;;:::i;15903:22::-;;971:17770;16995:13;;971:17770;;;-1:-1:-1;;971:17770:28;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;971:17770:28;;;;3628:10:31;971:17770:28;;;;;3657:20:31;971:17770:28;;;3657:20:31;971:17770:28;;;;;;;3657:25:31;971:17770:28;;3780:46:31;;971:17770:28;;3707:41:31;971:17770:28;3878:19:31;971:17770:28;;;;;;3707:41:31;:::i;:::-;971:17770:28;;;;;;3780:46:31;971:17770:28;3787:15:31;971:17770:28;3780:46:31;:::i;:::-;971:17770:28;;;;-1:-1:-1;;;971:17770:28;;;;;;;;;;3878:19:31;971:17770:28;;;;;;;;3628:10:31;;3912:39;;971:17770:28;;;;3912:39:31;971:17770:28;;;;;-1:-1:-1;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;971:17770:28;;;;4597:44:31;-1:-1:-1;971:17770:28;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4146:10:31;4100:20;4109:10;-1:-1:-1;;;;;971:17770:28;3002:8:31;971:17770:28;3002:8:31;971:17770:28;;;3002:8:31;971:17770:28;;;4100:20:31;4146:10;971:17770:28;4442:14:31;971:17770:28;;;4291:76:31;971:17770:28;;4130:26:31;971:17770:28;;-1:-1:-1;;;;;971:17770:28;;;;;;;-1:-1:-1;;;;;971:17770:28;;;4130:26:31;4174:9;4166:42;4174:9;;;4166:42;:::i;:::-;971:17770:28;;;;;;;;4218:63:31;4226:21;;;4218:63;:::i;:::-;4320:15;-1:-1:-1;4299:36:31;4291:76;:::i;:::-;971:17770:28;;;;;;;4442:14:31;971:17770:28;;;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;4109:10:31;;4471:50;;;971:17770:28;4549:38:31;;;;:::i;:::-;;4597:44;:::i;971:17770:28:-;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;971:17770:28;;;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;971:17770:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;-1:-1:-1;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;971:17770:28;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;971:17770:28;;;;;;;;;;10624:5;971:17770;;;;;;;:::o;:::-;;:::i;:::-;;11542:1;971:17770;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;-1:-1:-1;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;2989:114:27;971:17770:28;;;3076:20:27;;;:4;:20;:4;;:20;;;;;;;-1:-1:-1;3076:20:27;;;3069:27;2989:114;:::o;3076:20::-;;;;;;;;;;;;;;;;;:::i;:::-;;;971:17770:28;;;;;;;;:::i;3076:20:27:-;;;-1:-1:-1;3076:20:27;;971:17770:28;-1:-1:-1;;971:17770:28;;;;;;;:::o;6503:1650:27:-;;;;;;6820:14;;6868:20;;;;971:17770:28;;;7278:19:27;;7274:703;;6503:1650;8040:9;;;;;1679:4;;8052:15;;;971:17770:28;1679:4:27;8088:48;-1:-1:-1;28175:9:27;;28218:21;28283:14;;28330:27;;;;:::i;:::-;28392:17;971:17770:28;28392:17:27;;;971:17770:28;-1:-1:-1;;;;;971:17770:28;;;;28542:15:27;28704:60;28542:15;;;971:17770:28;1679:4:27;;28743:20;;;971:17770:28;28704:60:27;;:::i;:::-;1679:4;;-1:-1:-1;;;;;;;971:17770:28;;;28840:23:27;971:17770:28;;;;;;;30833:14:27;971:17770:28;;;;-1:-1:-1;;;;;971:17770:28;;;;28836:1846:27;;30717:9;1679:4;;;;971:17770:28;30833:14:27;;971:17770:28;30865:23:27;;;;30861:626;30865:23;;;971:17770:28;6820:14:27;971:17770:28;:::i;:::-;31098:146:27;6820:14;31098:146;;6820:14;31098:146;30861:626;1679:4;31358:40;1679:4;;31358:40;-1:-1:-1;;;;;971:17770:28;1822:8:31;971:17770:28;1822:8:31;971:17770:28;;;1822:8:31;971:17770:28;;;;1679:4:27;971:17770:28;;;1674:305:31;;31358:40:27;;971:17770:28;6820:14:27;971:17770:28;:::i;:::-;8081:55:27;6503:1650;:::o;28836:1846::-;28952:25;;971:17770:28;;28995:1673:27;;28836:1846;;;;;30833:14;28836:1846;;;;;28995:1673;29122:9;;;;;;;;971:17770:28;;-1:-1:-1;971:17770:28;:::i;:::-;29325:31:27;29252:9;29325:31;;971:17770:28;;;29291:160:27;;;;;;971:17770:28;;;-1:-1:-1;971:17770:28;;;29291:160:27;971:17770:28;;29291:160:27;;;;;;;971:17770:28;29291:160:27;;971:17770:28;29291:160:27;;;;;;:::i;:::-;;;;;;;;28995:1673;-1:-1:-1;29287:901:27;;30011:150;30090:41;;:::i;:::-;971:17770:28;;30011:150:27;;;-1:-1:-1;;;30011:150:27;;29291:160;30011:150;;;:::i;29287:901::-;30833:14;29287:901;30581:68;29287:901;30254:9;1679:4;;30525:9;;1679:4;;971:17770:28;;30581:68:27;;:::i;:::-;28995:1673;;;;;;;29291:160;;;-1:-1:-1;29291:160:27;;;:::i;:::-;;;:::i;:::-;;;;7274:703;-1:-1:-1;971:17770:28;;;378:118:9;-1:-1:-1;;;;;971:17770:28;;;;378:118:9;;;;7398:8:27;7394:573;;7274:703;;;;;;7394:573;1679:4;7448:41;;:::i;:::-;971:17770:28;;7514:25:27;;;;;;378:118:9;7514:25:27;;;1679:4;;;;;;:::i;971:17770:28:-;-1:-1:-1;;971:17770:28;;;;;;;;:::o;:::-;-1:-1:-1;;971:17770:28;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;-1:-1:-1;971:17770:28;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;971:17770:28;;;;:::o;:::-;;;:::o;:::-;;;;:::o;:::-;;;;-1:-1:-1;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;971:17770:28;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;-1:-1:-1;971:17770:28;;;;;;;:::i;:::-;-1:-1:-1;971:17770:28;;-1:-1:-1;971:17770:28;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;2469:300:27:-;2671:91;2469:300;2600:54;;;:::i;:::-;3445:20;;:::i;:::-;971:17770:28;2195:281:32;971:17770:28;;;;;;:::i;:::-;1740:12:32;;;971:17770:28;;1785:25:32;;;;2195:281;1785:82;;;1900:31;1915:15;;;;;;:::i;:::-;1900:31;;:::i;:::-;1968:23;;;;971:17770:28;2030:25:32;;;971:17770:28;2083:14:32;2138:39;2153:23;2083:14;;;971:17770:28;2153:23:32;;;;;;:::i;2138:39::-;971:17770:28;;;2195:281:32;;;1740:12;2195:281;;;;971:17770:28;;;;;;;;;;;;-1:-1:-1;;;;;971:17770:28;;;;1092:197:32;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2195:281:32;971:17770:28;5014:47:32;;2671:91:27;3445:249:21;3326:374;3445:249;;;;;;;;;;;;;;;3326:374;;1785:82:32;1851:15;2195:281;1851:15;;;;;;:::i;:::-;3287:193:10;;1851:15:32;3287:193:10;;;;;1785:82:32;;;971:17770:28;;;;:::o;:::-;;;-1:-1:-1;;;971:17770:28;;;;;;;;;;;;;;;;;;;26682:51:27;971:17770:28;;27182:3:27;971:17770:28;;;;;;27182:3:27;971:17770:28;;;;;;;:::o;1181:103:15:-;;;:::i;:::-;2202:49:27;971:17770:28;;-1:-1:-1;;;2202:49:27;;971:17770:28;2202:49:27;;;971:17770:28;;;;;;;;;;;;;;;;2202:49:27;971:17770:28;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;971:17770:28;;-1:-1:-1;971:17770:28;;;;-1:-1:-1;971:17770:28;;;;-1:-1:-1;971:17770:28;;;;-1:-1:-1;971:17770:28;;;;-1:-1:-1;971:17770:28;;;;-1:-1:-1;971:17770:28;;;;;;:::o;1181:103:15:-;;;;;;:::i;:::-;16486:15:28;971:17770;;:::i;:::-;16002:2;;;;:::i;:::-;16126:40;;;;:::i;:::-;3723:1327:27;;;;3979:9;4047:20;;;971:17770:28;4140:15:27;;4047:20;4140:15;;;;:::i;:::-;4205:16;;971:17770:28;4235:160:27;;;;;1181:103:15;971:17770:28;;-1:-1:-1;;;4412:51:27;4425:38;;4567:17;4643:53;4567:17;;4512:74;4567:17;;;971:17770:28;;4512:74:27;971:17770:28;;4512:74:27;;;-1:-1:-1;;;4567:17:27;4512:74;;;;;;;:::i;4643:53::-;4604:92;;4408:626;;16486:15:28;971:17770;;;;:::i;:::-;;;;16457:270;;;971:17770;16457:270;;;971:17770;4047:20:27;16457:270:28;;971:17770;16486:15;16457:270;;971:17770;16457:270;;;971:17770;-1:-1:-1;16457:270:28;;;971:17770;4047:20:27;16457:270:28;;;971:17770;1246:1:15;;;:::i;4408:626:27:-;971:17770:28;;;4875:48:27;971:17770:28;;;;:::i;4875:48:27:-;4836:87;;4408:626;;;4235:160;-1:-1:-1;4235:160:27;;;;971:17770:28;;;;;;;:::i;:::-;-1:-1:-1;971:17770:28;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;971:17770:28;;;;;;;;-1:-1:-1;;971:17770:28;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;14901:1;971:17770;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;14477:1165::-;;;;;;;;971:17770;;:::i;:::-;14869:21;;;;;;;:::i;:::-;:33;;;14865:286;;15491:144;15182:13;;;;:::i;:::-;15433:40;971:17770;;:::i;:::-;15420:2;;;:::i;:::-;15433:40;;:::i;:::-;15491:144;;;;:::i;14865:286::-;15039:12;;;;;;;;;:::i;:::-;971:17770;;;;;;:::i;:::-;14901:1;971:17770;;14901:1;15009:43;;;971:17770;;15009:43;;971:17770;;;;;;:::i;:::-;14901:1;971:17770;;14901:1;15009:43;15070:29;;971:17770;14901:1;971:17770;15070:29;;971:17770;;;;;;;:::i;:::-;-1:-1:-1;971:17770:28;;15009:43;14925:215;;971:17770;;14925:215;;971:17770;14918:222;:::o;971:17770::-;;;;;;;:::i;:::-;-1:-1:-1;971:17770:28;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;971:17770:28;;-1:-1:-1;971:17770:28;;;;-1:-1:-1;971:17770:28;;;;-1:-1:-1;971:17770:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;-1:-1:-1;971:17770:28;;;;:::i;:::-;;;;;;;:::o;:::-;-1:-1:-1;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;2687:179:31:-;2829:30;971:17770:28;-1:-1:-1;;;;;2777:37:31;2804:9;2777:37;-1:-1:-1;;;;;971:17770:28;1822:8:31;971:17770:28;1822:8:31;971:17770:28;;;1822:8:31;971:17770:28;;;;1679:4:27;971:17770:28;;;1674:305:31;;2777:37;971:17770:28;;;;;;;2829:30:31;;2687:179::o;971:17770:28:-;;;;:::o;:::-;;;;-1:-1:-1;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;-1:-1:-1;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;971:17770:28;;;;;;;;;;;;;;;;;;;;2486:2;971:17770;;;;2486:2;971:17770;:::o;:::-;;;;;;1230:2:29;971:17770:28;;;;;;;1230:2:29;971:17770:28;;-1:-1:-1;;971:17770:28;;:::o;:::-;;;;;;531:2:32;971:17770:28;;;;;;;531:2:32;971:17770:28;;-1:-1:-1;;971:17770:28;;:::o;:::-;;-1:-1:-1;;971:17770:28;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;971:17770:28;;;;;;;;;;;;;-1:-1:-1;971:17770:28:o;:::-;;;;;;;:::i;:::-;2980:14;971:17770;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;1677:1645::-;971:17770;;:::i;:::-;;;;:::i;:::-;1858:6;;;;:::i;:::-;2011:47;;;;:::i;:::-;2069:98;;;;;;;;:::i;:::-;2211:42;971:17770;2225:27;:17;;:27;971:17770;-1:-1:-1;;;;;971:17770:28;;;;2211:42;:::i;:::-;2307:17;2420:15;2293:39;2307:24;:17;;-1:-1:-1;;;;;971:17770:28;;;;;2293:39;971:17770;;;:::i;:::-;;2420:15;;;;;:::i;:::-;2467:69;2486:2;2467:21;;2486:2;;2499:23;2507:14;2564:22;2507:14;2491:32;2507:14;;:::i;:::-;2499:23;;:::i;:::-;971:17770;;;;2564:22;971:17770;-1:-1:-1;;;;;971:17770:28;;2725:18;;;;971:17770;2757:17;2879:23;2420:15;2757:17;;971:17770;2879:23;;971:17770;;;;:::i;:::-;;;;2701:212;;;971:17770;2420:15;2701:212;;971:17770;2879:23;2701:212;;971:17770;2725:18;2701:212;;971:17770;;;:::i;:::-;3008:45;;;;:93;;;2467:69;3004:211;;2467:69;971:17770;;;:::i;:::-;;;;2701:212;3231:84;;971:17770;2420:15;3231:84;;971:17770;2879:23;3231:84;;971:17770;2725:18;3231:84;;971:17770;1677:1645;:::o;3004:211::-;3178:25;;;;;;:::i;:::-;3134:70;971:17770;;:::i;:::-;-1:-1:-1;;;;;971:17770:28;;;;;;3134:70;2701:212;3134:70;;971:17770;3004:211;;;;3008:93;3057:44;2053:4;3057:44;;;3008:93;;2467:69;;;2564:22;-1:-1:-1;2564:22:28;:::i;971:17770::-;;;;;:::o;:::-;;;;-1:-1:-1;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;26682:51:27;22885:2364;;;;-1:-1:-1;23244:9:27;;23293:17;;;23348:7;;;;;:::i;:::-;23560;33278:67;;23513:21;;;:::i;:::-;23490:20;;;971:17770:28;33561:66:27;;33499:134;23560:7;33278:67;23763:28;;971:17770:28;23824:26:27;24058:89;-1:-1:-1;971:17770:28;23824:26:27;;;;971:17770:28;23824:49:27;23876:20;;;971:17770:28;23824:72:27;23911:37;;;971:17770:28;23824:124:27;23951:31;;;971:17770:28;23824:158:27;23985:20;;;971:17770:28;23824:181:27;24020:28;;;971:17770:28;23824:224:27;24066:33;;24058:89;:::i;:::-;24296:108;24184:28;;10020:20;9803:28;;;971:17770:28;9834:20:27;;;971:17770:28;1679:4:27;9873:37;;;971:17770:28;1679:4:27;9913:31;;;971:17770:28;1679:4:27;9947:26;;;971:17770:28;1679:4:27;10020:20;;971:17770:28;;9633:424:27;;24184:28;24222:17;33278:67;24222:17;;971:17770:28;3458:38:32;23911:37:27;3472:23:32;;971:17770:28;475:2:32;;;;3458:38;24296:108:27;;;-1:-1:-1;24296:108:27;:::i;:::-;971:17770:28;24415:112:27;-1:-1:-1;24423:54:27;971:17770:28;;;-1:-1:-1;;;;;971:17770:28;;;;23490:20:27;24463:13;;971:17770:28;24423:54:27;;:::i;:::-;24415:112;:::i;:::-;24575:9;1679:4;;24566:41;24562:138;;23876:20;24773:9;-1:-1:-1;;;;;971:17770:28;24796:17:27;24773:9;24796:17;;971:17770:28;-1:-1:-1;;;;;971:17770:28;;;;;24796:31:27;;:62;;;22885:2364;24792:186;;22885:2364;23911:37;25036:9;;25019:40;25020:32;25021:24;23951:31;25036:9;;25021:24;;:::i;25019:40::-;25093:23;23876:20;25093:23;;971:17770:28;25195:9:27;1679:4;;25207:25;;971:17770:28;1679:4:27;25165:18;;971:17770:28;22885:2364:27:o;24792:186::-;24911:56;;25021:24;24911:56;;;23951:31;23911:37;24911:56;25019:40;25020:32;24911:56;;;-1:-1:-1;24911:56:27;:::i;:::-;24874:93;;24792:186;;;;;;;;;;;24796:62;;16161:4:28;24796:62:27;;24562:138;33278:67;971:17770:28;-1:-1:-1;;;24634:51:27;;;;-1:-1:-1;24634:51:27;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;22885:2364:27;;;;;971:17770:28;23244:9:27;;23293:17;;23348:7;;;;:::i;:::-;23560;33278:67;;23513:21;;;:::i;:::-;23490:20;;;971:17770:28;33561:66:27;;33499:134;23560:7;33278:67;23763:28;;971:17770:28;23824:26:27;24058:89;23824:26;971:17770:28;23824:26:27;;;;971:17770:28;23824:49:27;23876:20;;;971:17770:28;23824:72:27;23911:37;;;971:17770:28;23824:124:27;23951:31;;;971:17770:28;23824:158:27;23985:20;;;971:17770:28;23824:181:27;24020:28;;;971:17770:28;23824:224:27;24066:33;;24058:89;:::i;:::-;24296:108;24184:28;;10020:20;9803:28;;;971:17770:28;9834:20:27;;;971:17770:28;1679:4:27;9873:37;;;971:17770:28;1679:4:27;9913:31;;;971:17770:28;1679:4:27;9947:26;;;971:17770:28;1679:4:27;10020:20;;971:17770:28;;9633:424:27;;24184:28;24222:17;33278:67;24222:17;;971:17770:28;3458:38:32;23911:37:27;3472:23:32;;971:17770:28;475:2:32;;;;3458:38;24296:108:27;;;;;:::i;:::-;971:17770:28;24415:112:27;971:17770:28;24423:54:27;971:17770:28;;;-1:-1:-1;;;;;971:17770:28;;;;23490:20:27;24463:13;;971:17770:28;24423:54:27;;:::i;24415:112::-;24575:9;1679:4;;24566:41;24562:138;;23876:20;24773:9;-1:-1:-1;;;;;971:17770:28;24796:17:27;24773:9;24796:17;;971:17770:28;-1:-1:-1;;;;;971:17770:28;;;;;24796:31:27;;:62;;;;22885:2364;24792:186;;;22885:2364;25036:9;23911:37;25036:9;;25019:40;25020:32;25021:24;23951:31;25036:9;;25021:24;;:::i;24792:186::-;25021:24;24911:56;;23951:31;24911:56;;;;25019:40;25020:32;24911:56;;;23911:37;24911:56;;;:::i;:::-;24874:93;;24792:186;;;;;;;;;;24796:62;;;;;;11814:1264:28;;;;;;;;971:17770;;:::i;:::-;12228:29;12267:2;12228:29;;;;;;:::i;:::-;:41;;;12224:294;;12850:221;971:17770;12768:13;971:17770;12631:70;971:17770;;:::i;:::-;12601:19;;;;;:::i;:::-;12691:9;12631:70;;;:::i;12768:13::-;12819:12;;;:::i;:::-;12850:221;:::i;12224:294::-;12406:12;;;;;;;;;:::i;:::-;971:17770;;;;;;:::i;:::-;12328:30;971:17770;;12328:30;12376:43;;;971:17770;;12376:43;;971:17770;;;:::i;:::-;12328:30;971:17770;;12328:30;12376:43;12437:29;;971:17770;12328:30;971:17770;12437:29;;971:17770;;;:::i;:::-;;-1:-1:-1;971:17770:28;;12376:43;12292:215;;971:17770;;12292:215;;971:17770;12285:222;:::o;971:17770::-;;;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;971:17770:28;;;;;;;;;;;;;;:::o;6938:751::-;;;971:17770;7065:19;-1:-1:-1;;;;;971:17770:28;;;7104:92;;;;;;;971:17770;;;;;;7104:92;;;;;;971:17770;7104:92;;-1:-1:-1;;;;;7173:12:28;971:17770;7104:92;;;;:::i;:::-;;;;;;;;6938:751;-1:-1:-1;7100:583:28;;7208:475;;;;:::i;:::-;971:17770;7104:92;971:17770;;7254:17;7250:164;;7454:28;7464:17;971:17770;;7464:17;:::i;:::-;7454:28;:::i;:::-;7104:92;7535:3;971:17770;;7516:17;;;;;7578:9;;;971:17770;7578:9;;;:::i;:::-;971:17770;;;;;7578:9;7558:29;7569:5;;;:::i;:::-;7558:29;971:17770;7558:29;;;;:::i;:::-;;971:17770;7501:13;;7516:17;;7635:37;7516:17;;;7635:37;971:17770;;;7635:37;;;;;;:::i;:::-;7615:57;7100:583;6938:751::o;7250:164::-;7386:12;;;;:::i;:::-;971:17770;;7371:28::o;7104:92::-;;;971:17770;7104:92;;;:::i;:::-;;;;1394:65:31;1441:10;;;:::i;1107:452:9:-;1204:349;1679:4:27;1204:349:9;;;;1107:452;1204:349;;;;;;;;;;;;;;;;;;1107:452;:::o;1204:349::-;;1679:4:27;1204:349:9;;971:17770:28;;-1:-1:-1;971:17770:28;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3845:262:20:-;-1:-1:-1;;;;;3938:11:20;971:17770:28;3929:4:20;3921:28;:63;;;3845:262;3917:184;;;4007:22;4000:29;:::o;3917:184::-;971:17770:28;;4204:80:20;;;971:17770:28;2079:95:20;971:17770:28;;4226:11:20;971:17770:28;2079:95:20;;971:17770:28;4239:14:20;2079:95;;;971:17770:28;4255:13:20;2079:95;;;971:17770:28;3929:4:20;2079:95;;;971:17770:28;2079:95:20;4204:80;;;;;;:::i;:::-;971:17770:28;4194:91:20;;4060:30;:::o;3921:63::-;3970:14;;3953:13;:31;3921:63;;7695:829:28;7894:1;7897:24;;;;;;7695:829;;;:::o;7923:3::-;971:17770;;;;:::i;:::-;8018:16;;;;;:::i;:::-;8075:6;;;:::i;:::-;8096:44;;;;:::i;:::-;8215:15;;;;;;;;;:::i;:::-;:27;;;8211:74;;8379:48;7894:1;8409:17;;;;;;971:17770;8379:48;;:::i;:::-;8459:27;;8409:17;8459:27;;;;;;;;;;:::i;:::-;;7882:13;971:17770;7882:13;;8211:74;8262:8;;;;971:17770;;;;;:::i;17269:332::-;17407:84;17269:332;17435:15;;;;;;:::i;:::-;971:17770;17467:23;971:17770;;;;;;:::i;:::-;17467:23;;;;;:::i;:::-;17407:84;;;;:::i;:::-;971:17770;;17501:94;;17269:332;:::o;17501:94::-;971:17770;;17435:15;971:17770;17559:25;;;-1:-1:-1;;;17559:25:28;;-1:-1:-1;17559:25:28;;;971:17770;17435:15;971:17770;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;8530:3278::-;;;;971:17770;;:::i;:::-;-1:-1:-1;8916:17:28;;;;9180:57;971:17770;;;:::i;:::-;;9124:9;-1:-1:-1;9077:57:28;9124:9;9077:57;13578:37;9077:57;:::i;:::-;9227:9;971:17770;;;9180:57;;;;;-1:-1:-1;;;9180:57:28;;;;;;;:::i;:::-;;:12;;-1:-1:-1;;;;;9180:12:28;971:17770;9180:57;;;;;;;-1:-1:-1;;;9180:57:28;;;8912:1483;9148:89;;;;9317:14;;;9313:299;;8912:1483;;10422:21;8912:1483;;;;;;;10422:21;;:::i;:::-;10453:27;-1:-1:-1;;;;;11118:12:28;971:17770;10491:1077;;10499:15;;;;;:::i;:::-;10498:35;;;10603:9;10615:14;;;:::i;:::-;-1:-1:-1;10599:323:28;;10954:15;;;;;;;;-1:-1:-1;10954:15:28;;11012:54;10953:21;10954:15;;11118:57;10954:15;;:::i;:::-;971:17770;;;;10953:21;11012:54;;13578:37;11012:54;:::i;:::-;11165:9;;971:17770;;;11118:57;;;;;;;-1:-1:-1;;;11118:57:28;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;11118:57:28;;;10491:1077;-1:-1:-1;11190:368:28;;;11317:19;;;11363:10;11317:19;11363:10;:::i;:::-;11391:21;11190:368;;10491:1077;;;;;;;;;11190:368;11533:10;;;;;;;;;:::i;:::-;11190:368;;;11118:57;;;;;;;;;-1:-1:-1;11118:57:28;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;10599:323;10779:12;;;;;;;;;;;;:::i;:::-;971:17770;;;:::i;:::-;;-1:-1:-1;971:17770:28;;-1:-1:-1;10749:43:28;;;971:17770;;10749:43;;971:17770;;;:::i;:::-;;;;10749:43;10841:48;;971:17770;;10841:48;;971:17770;;;:::i;:::-;10696:31;971:17770;;10656:251;10749:43;10656:251;;971:17770;;10656:251;;971:17770;10649:258;:::o;10498:35::-;;;;;;;;;;11661:60;10498:35;;971:17770;;:::i;:::-;;;;;;11661:60;;;971:17770;;11661:60;971:17770;11661:60;;971:17770;;;:::i;9313:299::-;971:17770;;;;;;;;;;9450:51;971:17770;;:::i;:::-;-1:-1:-1;971:17770:28;;;;;9450:51;;;971:17770;;9180:57;;;;;;;;;-1:-1:-1;9180:57:28;;;;;;:::i;:::-;;;;;;8912:1483;9906:57;9757:9;;;-1:-1:-1;9803:57:28;9850:9;9803:57;13578:37;9803:57;:::i;9906:::-;;:12;;-1:-1:-1;;;;;9906:12:28;971:17770;9906:57;;;;;;;-1:-1:-1;;;9906:57:28;;;8912:1483;9874:89;;;9986:24;9874:89;10001:9;;9986:24;;:::i;:::-;10090:14;;;10086:299;;8912:1483;;10422:21;8912:1483;;;;;;;;9906:57;;;;;;;;;;-1:-1:-1;9906:57:28;;;;;;:::i;:::-;;;;;;;;8530:3278;;;;971:17770;;:::i;:::-;-1:-1:-1;8916:17:28;;;;9180:57;971:17770;;;:::i;:::-;;9124:9;-1:-1:-1;9077:57:28;9124:9;9077:57;15468:4;9077:57;:::i;9180:::-;;:12;;-1:-1:-1;;;;;9180:12:28;971:17770;9180:57;;;;;;;-1:-1:-1;;;9180:57:28;;;8912:1483;9148:89;;;;9317:14;;;9313:299;;8912:1483;;10422:21;8912:1483;;;;;;10422:21;;:::i;:::-;10453:27;-1:-1:-1;;;;;11118:12:28;971:17770;10491:1077;;10499:15;;;;;:::i;:::-;10498:35;;;10603:9;10615:14;;;:::i;:::-;-1:-1:-1;10599:323:28;;10954:15;;;;;;;;-1:-1:-1;10954:15:28;;11012:54;10953:21;10954:15;;11118:57;10954:15;;:::i;10953:21::-;11012:54;;15468:4;11012:54;:::i;11118:57::-;;;;;;;;;;-1:-1:-1;;;11118:57:28;;;10491:1077;-1:-1:-1;11190:368:28;;;11317:19;;;11363:10;11317:19;11363:10;:::i;:::-;11391:21;11190:368;;10491:1077;;;;;;;;;11190:368;11533:10;;;;;;;;;:::i;:::-;11190:368;;;11118:57;;;;;;;;;-1:-1:-1;11118:57:28;;;;;;:::i;:::-;;;;;;9180;;;;;;;;;-1:-1:-1;9180:57:28;;;;;;:::i;:::-;;;;;;8912:1483;9906:57;9757:9;;;-1:-1:-1;9803:57:28;9850:9;9803:57;15468:4;9803:57;:::i;9906:::-;;:12;;-1:-1:-1;;;;;9906:12:28;971:17770;9906:57;;;;;;;-1:-1:-1;;;9906:57:28;;;8912:1483;9874:89;;;9986:24;9874:89;10001:9;;9986:24;;:::i;:::-;10090:14;;;10086:299;;8912:1483;;10422:21;8912:1483;;;;;;;;9906:57;;;;;;;;;;-1:-1:-1;9906:57:28;;;;;;:::i;:::-;;;;;;;;8530:3278;;;;971:17770;;:::i;:::-;-1:-1:-1;8916:17:28;;;;9180:57;971:17770;;;:::i;:::-;;9124:9;-1:-1:-1;9077:57:28;9124:9;9077:57;12884:46;9077:57;:::i;9180:::-;;:12;;-1:-1:-1;;;;;9180:12:28;971:17770;9180:57;;;;;;;-1:-1:-1;;;9180:57:28;;;8912:1483;9148:89;;;;9317:14;;;9313:299;;8912:1483;;10422:21;8912:1483;;;;;;10422:21;;:::i;:::-;10453:27;-1:-1:-1;;;;;11118:12:28;971:17770;10491:1077;;10499:15;;;;;:::i;:::-;10498:35;;;10603:9;10615:14;;;:::i;:::-;-1:-1:-1;10599:323:28;;10954:15;;;;;;;;-1:-1:-1;10954:15:28;;11012:54;10953:21;10954:15;;11118:57;10954:15;;:::i;10953:21::-;11012:54;;12884:46;11012:54;:::i;11118:57::-;;;;;;;;;;-1:-1:-1;;;11118:57:28;;;10491:1077;-1:-1:-1;11190:368:28;;;11317:19;;;11363:10;11317:19;11363:10;:::i;:::-;11391:21;11190:368;;10491:1077;;;;;;;;;11190:368;11533:10;;;;;;;;;:::i;:::-;11190:368;;;11118:57;;;;;;;;;-1:-1:-1;11118:57:28;;;;;;:::i;:::-;;;;;;9180;;;;;;;;;-1:-1:-1;9180:57:28;;;;;;:::i;:::-;;;;;;8912:1483;9906:57;9757:9;;;-1:-1:-1;9803:57:28;9850:9;9803:57;12884:46;9803:57;:::i;9906:::-;;:12;;-1:-1:-1;;;;;9906:12:28;971:17770;9906:57;;;;;;;-1:-1:-1;;;9906:57:28;;;8912:1483;9874:89;;;9986:24;9874:89;10001:9;;9986:24;;:::i;:::-;10090:14;;;10086:299;;8912:1483;;10422:21;8912:1483;;;;;;;;9906:57;;;;;;;;;;-1:-1:-1;9906:57:28;;;;;;:::i;:::-;;;;;;;;531:2:32;;;;:::o;:::-;;971:17770:28;;-1:-1:-1;;;531:2:32;;;;;;;;;;;971:17770:28;531:2:32;971:17770:28;;;531:2:32;;;;;;:::o;:::-;;971:17770:28;;-1:-1:-1;;;531:2:32;;;;;;;;;;;971:17770:28;531:2:32;971:17770:28;;;531:2:32;;8343:1086:27;8901:23;8343:1086;8498:30;8515:13;;;:::i;:::-;-1:-1:-1;;;;;971:17770:28;;;;8498:30:27;8554:12;;;971:17770:28;8554:12:27;8538:13;;971:17770:28;8631:53:27;8660:23;;;971:17770:28;2489:162:32;971:17770:28;475:2:32;;;971:17770:28;;2489:162:32;;8631:53:27;8607:20;;;971:17770:28;8577:28:27;;;971:17770:28;8723:25:27;;;971:17770:28;8694:26:27;;;971:17770:28;8813:44:27;8694:26;8842:14;;971:17770:28;2489:162:32;971:17770:28;475:2:32;;;971:17770:28;;2489:162:32;;8813:44:27;8789:20;;;971:17770:28;8759:28:27;;;971:17770:28;8901:23:27;;;;;:::i;:::-;8938:27;;;;8934:489;;8343:1086;;;:::o;8934:489::-;9235:62;8989:65;9383:29;8989:65;8981:107;531:2:32;8901:23:27;8989:65;;;8981:107;:::i;:::-;9235:62;:::i;:::-;8723:25;9184:31;;971:17770:28;8660:23:27;9145:37;;971:17770:28;9184:31:27;9311:58;-1:-1:-1;;;;;971:17770:28;;9319:23:27;;9311:58;:::i;:::-;9383:17;971:17770:28;-1:-1:-1;;;;;971:17770:28;;;;16644:974:27;;;;16909:9;16962:14;;;17100:48;-1:-1:-1;;;;;17010:17:27;;;971:17770:28;;17067:14:27;;;971:17770:28;17100:48:27;;:::i;:::-;17099:49;17095:146;;17287:37;;17366:73;17287:37;;971:17770:28;17366:73:27;;;;;:::i;:::-;17338:101;;17466:9;;1679:4;;17457:43;17453:149;;16644:974;:::o;17453:149::-;17067:14;971:17770:28;;-1:-1:-1;;;17527:60:27;;;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;26682:51:27;17095:146;17175:51;971:17770:28;17067:14:27;971:17770:28;17175:51:27;-1:-1:-1;;;17175:51:27;;;;;971:17770:28;17067:14:27;971:17770:28;;;;;;;;;;;;;;17175:51:27;971:17770:28;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;971:17770:28;;;:::o;896:503:29:-;1042:15;;;;;;:::i;:::-;1072:28;;1071:29;1072:28;;;;:::i;1071:29::-;1067:68;;1183:13;1163:34;1183:13;;:::i;:::-;1163:34;:::i;:::-;1211:21;1230:2;1211:21;;1230:2;;971:17770:28;;1042:15:29;971:17770:28;1265:26:29;;;;;;;;971:17770:28;;;;;;;;;;;;;1207:186:29;1367:13;1340:41;1367:13;;;;:::i;:::-;971:17770:28;;1340:41:29;1042:15;971:17770:28;1340:41:29;;;;;;;;;:::i;1067:68::-;1116:8;;;971:17770:28;1116:8:29;:::o;12469:1091:27:-;;;13242:83;12469:1091;12796:14;;971:17770:28;-1:-1:-1;;;;;12954:17:27;971:17770:28;;;;12908:11:27;;;;;;;;:::i;:::-;;;-1:-1:-1;12908:11:27;:::i;:::-;12954:17;971:17770:28;;12985:31:27;-1:-1:-1;13034:23:27;;13030:182;;;;12469:1091;-1:-1:-1;13242:83:27;:::i;:::-;13339:205;;;12469:1091;:::o;13339:205::-;-1:-1:-1;13391:45:27;;;:::i;:::-;13390:46;13386:144;;12469:1091::o;13386:144::-;12908:11;971:17770:28;-1:-1:-1;;;13467:44:27;;;;-1:-1:-1;13467:44:27;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;13030:182:27;1356:17:31;;;;-1:-1:-1;;;;;971:17770:28;3002:8:31;971:17770:28;3002:8:31;971:17770:28;;;3002:8:31;971:17770:28;;;1356:17:31;971:17770:28;13148:21:27;;;;:49;-1:-1:-1;13148:49:27;13030:182;;;13148:49;-1:-1:-1;1679:4:27;13148:49;;12469:1091;;;;;13242:83;12469:1091;12796:14;;971:17770:28;-1:-1:-1;;;;;12954:17:27;971:17770:28;;;;12908:11:27;;;;;;;;:::i;:::-;;;;;:::i;:::-;12954:17;971:17770:28;;12985:31:27;-1:-1:-1;13034:23:27;;13030:182;;;;12469:1091;13242:83;;:::i;:::-;13339:205;;;12469:1091;;;:::o;13339:205::-;13391:45;;;:::i;:::-;13390:46;13386:144;;12469:1091;:::o;13386:144::-;12908:11;971:17770:28;;-1:-1:-1;;;13467:44:27;;;;;971:17770:28;;;;;;;;;;;;;;;;;;;;26682:51:27;13030:182;1356:17:31;;;;-1:-1:-1;;;;;971:17770:28;3002:8:31;971:17770:28;3002:8:31;971:17770:28;;;3002:8:31;971:17770:28;;;1356:17:31;971:17770:28;13148:21:27;;;;;;:49;-1:-1:-1;13148:49:27;13030:182;;;13148:49;1679:4;;13148:49;;1187:234:0;-1:-1:-1;;;;;971:17770:28;-1:-1:-1;971:17770:28;1373:19:0;971:17770:28;;;1373:32:0;971:17770:28;1317:2:0;971:17770:28;1317:2:0;-1:-1:-1;971:17770:28;;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;1373:32:0;971:17770:28;;;1373:34:0;;;;:::i;:::-;971:17770:28;;;1373:41:0;1187:234;:::o;1290:346:15:-;637:66;3321:69:19;1413:93:15;;1624:4;637:66;3550:68:19;1290:346:15:o;1413:93::-;1465:30;-1:-1:-1;1465:30:15;;-1:-1:-1;1465:30:15;1642:105;-1:-1:-1;637:66:15;3550:68:19;1642:105:15:o;971:17770:28:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;20262:1109:27:-;20530:34;-1:-1:-1;;;;;20262:1109:27;20530:34;:::i;:::-;971:17770:28;;20574:111:27;;20694:96;;21092:43;-1:-1:-1;;;;;21092:43:27;;:::i;:::-;971:17770:28;;21145:105:27;;21259:106;;20262:1109::o;21259:106::-;971:17770:28;;-1:-1:-1;;;21300:54:27;;;;-1:-1:-1;21300:54:27;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;21145:105:27;971:17770:28;;-1:-1:-1;;;21198:41:27;;;;-1:-1:-1;21198:41:27;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;20694:96:27;971:17770:28;;-1:-1:-1;;;20735:44:27;;;;-1:-1:-1;20735:44:27;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;20574:111:27;971:17770:28;;-1:-1:-1;;;20633:41:27;;;;-1:-1:-1;20633:41:27;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;985:248:31;;-1:-1:-1;;;;;971:17770:28;;:::i;:::-;;;1112:8:31;971:17770:28;1112:8:31;971:17770:28;;;1149:17:31;971:17770:28;1112:8:31;971:17770:28;1149:17:31;971:17770:28;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;1176:20:31;;971:17770:28;985:248:31:o;31759:508:27:-;31970:28;31905:20;;;971:17770:28;31970:28:27;;971:17770:28;405:35:26;971:17770:28;2102:12:26;;:38;:12;;;2117:13;;2102:38;;1679:4:27;3696:5:10;;;;;;:13;31759:508:27;:::o;3696:13:10:-;;;31759:508:27;:::o;2102:38:26:-;;;;33639:413:27;;1926:5;1679:4;;33774:43;;;33770:90;;33995:3;1679:4;1812:2;1679:4;;971:17770:28;;33639:413:27;:::o;33770:90::-;33837:8;;971:17770:28;33837:8:27;:::o;3408:737:28:-;;;971:17770;;;;;:::i;:::-;3660:15;971:17770;3660:15;;-1:-1:-1;;;971:17770:28;3660:15;;;;:::i;:::-;3727:16;3753:148;971:17770;3753:148;;;;3408:737;-1:-1:-1;971:17770:28;3914:51;3927:38;;971:17770;3998:67;971:17770;3998:67;971:17770;;3998:67;;;-1:-1:-1;;;3998:67:28;;;;;;;;:::i;3910:229::-;971:17770;4113:15;;;;;:::i;:::-;971:17770;;;:::i;3753:148::-;;;;;;;17998:741;;;;;18189:20;:47;;;;17998:741;18185:183;;;18408:2;18381:29;;;18377:310;;17998:741;971:17770;;;;:::i;18377:310::-;18408:2;971:17770;;;;;;18504:21;:26;18500:177;;18377:310;;;;18500:177;971:17770;;;;;;:::i;:::-;;;;;;;;;18624:38;:::o;18185:183::-;971:17770;;;;;;;;:::i;:::-;;;;;;;;;18321:36;:::o;18189:47::-;18213:18;;;:23;18189:47;;;971:17770;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;-1:-1:-1;971:17770:28;;;:::o;:::-;;;;-1:-1:-1;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;971:17770:28;;;:::o;:::-;;;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;971:17770:28;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;:::o;:::-;;;;;-1:-1:-1;971:17770:28;;;;;;;;;;;;;;;;;:::i;4151:1833::-;;971:17770;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;4442:46;4434:54;;4430:837;;971:17770;;;:::i;:::-;5289:37;5281:45;;5277:379;;971:17770;;;5678:29;971:17770;;:::i;:::-;5670:37;5666:279;;971:17770;;-1:-1:-1;;;5955:22:28;;971:17770;5955:22;;;971:17770;;;;;;;;;;;;;26682:51:27;5666:279:28;5771:54;5846:88;5807:17;;5846:88;5807:17;;971:17770;5771:54;;:::i;:::-;971:17770;;;;;5846:88;;;971:17770;5807:17;5846:88;;;;;;;:::i;5277:379::-;3636:23:32;;;971:17770:28;5448:19;3623:37:32;3636:23;5566:79:28;3636:23:32;;971:17770:28;;;2893:118:32;;3623:37;5448:19:28;971:17770;;;;5448:19;971:17770;;5447:45;3636:23:32;5507:19:28;;971:17770;5566:79;971:17770;;5566:79;;;971:17770;5566:79;;;;;;;;:::i;4430:837::-;4612:29;5178:78;4612:29;;-1:-1:-1;;4612:29:28;5057:99;4612:29;5178:78;4612:29;;5057:99;4567:75;4612:29;;;;:::i;:::-;4567:75;;:::i;:::-;4691:26;;;;971:17770;4735:19;4612:29;4735:19;;;531:2:32;4735:19:28;;971:17770;4735:67;4731:192;;4430:837;971:17770;;;;;;;;;;;-1:-1:-1;;971:17770:28;;;;5057:99;;;;;:::i;:::-;;971:17770;;5057:99;;;;;;:::i;:::-;5019:137;971:17770;;5178:78;;;971:17770;5057:99;5178:78;;;;;;;:::i;4731:192::-;971:17770;4838:29;;;:70;:29;;;;:::i;:::-;:70;;;:::i;971:17770::-;4731:192;;;;;4140:516:32;;;971:17770:28;413:2:32;971:17770:28;;;;;;;475:2:32;971:17770:28;;;413:2:32;971:17770:28;;475:2:32;971:17770:28;531:2:32;971:17770:28;;;;;;;;;475:2:32;;;;;;971:17770:28;475:2:32;;;;4140:516::o;2250:397:31:-;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;;;2484:23:31;;;2480:74;;1679:4:27;971:17770:28;;2626:4:31;2250:397;:::o;971:17770:28:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17624:2265:27:-;;-1:-1:-1;17624:2265:27;;;;;;33278:67;;18028:17;;971:17770:28;18093:24:27;18028:17;;;971:17770:28;18047:14:27;17972:91;18047:14;17972:91;33278:67;18047:14;;971:17770:28;18028:17:27;17972:91;;;;;;;;;;;;:::i;:::-;;971:17770:28;;;17972:91:27;;;;;;:::i;:::-;18093:14;:24;971:17770:28;-1:-1:-1;;;;;971:17770:28;;;;18363:1229:27;;;;;;;;-1:-1:-1;18363:1229:27;;;;;;33278:67;18363:1229;;;;;19630:8;;971:17770:28;;;19630:31:27;;17624:2265;19630:72;;;;;17624:2265;19626:205;;;-1:-1:-1;971:17770:28;;;;-1:-1:-1;;971:17770:28;4020:413:10;;;971:17770:28:o;19626:205:27:-;19774:41;;:::i;:::-;971:17770:28;19729:87:27;33278:67;971:17770:28;19729:87:27;;;-1:-1:-1;;;19729:87:27;;17972:91;19729:87;;;:::i;19630:72::-;18363:1229;;19681:2;18363:1229;;;;1679:4;;19665:37;19630:72;;;:31;33278:67;19642:19;;;-1:-1:-1;19630:31:27;;;1712:551:29;;1826:1;-1:-1:-1;1804:62:29;;2015:95;-1:-1:-1;;971:17770:28;;2207:49:29;;1712:551::o;1804:62::-;1843:12;971:17770:28;1843:12:29;:::o;2572:661::-;2688:113;-1:-1:-1;2688:113:29;;;-1:-1:-1;2688:113:29;971:17770:28;;;;;2939:36:29;2935:241;;3208:16;3200:25;3208:16;3192:34;3208:16;971:17770:28;;;;3208:16:29;-1:-1:-1;;971:17770:28;;449:8:29;2935:241;3072:18;:22;449:8;;971:17770:28;;-1:-1:-1;;;3131:34:29;;449:8;3131:34;;;449:8;;;;;971:17770:28;449:8:29;971:17770:28;;;449:8:29;;;3131:34;449:8;;971:17770:28;;-1:-1:-1;;;449:8:29;;;;;;;;;;;971:17770:28;449:8:29;971:17770:28;;;449:8:29;;10311:1671:27;;;;10461:20;10457:1519;;10311:1671;;;;;:::o;10457:1519::-;10514:14;;971:17770:28;-1:-1:-1;;;;;971:17770:28;10553:43:27;;;;;:::i;:::-;10549:495;;11061:18;;11057:121;;11213:2;11195:20;;11191:110;;10480:1;11332:80;:28;:15;;:::i;:::-;-1:-1:-1;;;;;971:17770:28;;;11332:28:27;11366:35;:14;;:35;971:17770:28;11366:35:27;971:17770:28;11332:80:27;;;;-1:-1:-1;;;11332:80:27;;;;;;;;;;:::i;:::-;;;;;;;;;10480:1;11332:80;;;10457:1519;971:17770:28;-1:-1:-1;;;;;971:17770:28;;11430:21:27;;;11426:115;;-1:-1:-1;;;;;971:17770:28;11558:17:27;;;11554:116;;11687:19;:24;11683:123;;11853:14;11845:23;11853:14;11888:77;11853:14;11837:32;11853:14;;:::i;11837:32::-;11332:80;11904:17;;;971:17770:28;11940:14:27;;971:17770:28;11940:24:27;971:17770:28;11366:35:27;971:17770:28;;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;;;;;;;11366:35:27;11888:77;10457:1519;;;;;;11683:123;11366:35;971:17770:28;;-1:-1:-1;;;11738:53:27;;11332:80;11738:53;;971:17770:28;;;;;;;;;;;;;;;;;;;;26682:51:27;11554:116;11602:53;971:17770:28;11366:35:27;971:17770:28;11602:53:27;;;-1:-1:-1;;;11602:53:27;;11332:80;11602:53;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;11426:115:27;11478:48;971:17770:28;11366:35:27;971:17770:28;11478:48:27;;;-1:-1:-1;;;11478:48:27;;11332:80;11478:48;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;11332:80:27;;;;;;;;;;;;;;:::i;:::-;;;;11191:110;971:17770:28;;;-1:-1:-1;;;11242:44:27;;;;;971:17770:28;;;;;;;;;;;;;;;;;;;;26682:51:27;11057:121;971:17770:28;;;-1:-1:-1;;;11111:52:27;;;;;971:17770:28;;;;;;;;;;;;;;;;;;;;26682:51:27;10549:495;10620:20;;10638:2;10620:20;;10616:390;;11023:7;;;;:::o;10616:390::-;10889:15;10973:13;10889:15;10928:35;10889:33;:15;;:::i;:33::-;10928:14;;:35;971:17770:28;10973:13:27;;:::i;:::-;10889:98;;;;;;;10480:1;971:17770:28;;10889:98:27;971:17770:28;10928:35:27;971:17770:28;10889:98:27;;;;;;;971:17770:28;10889:98:27;;;;;;:::i;:::-;;;;;;;;;;10616:390;;;;;;10889:98;;;10480:1;10889:98;;;:::i;:::-;;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14682:1270:27:-;;;15219:17;14682:1270;;;;15174:85;15018:14;14682:1270;15174:85;15018:21;:14;;-1:-1:-1;;;;;971:17770:28;;;;;15018:21:27;15049:12;33278:67;;15219:17;;;;971:17770:28;15174:85:27;;;;;;;;;;;:::i;:::-;;971:17770:28;;15174:85:27;;;;;;:::i;:::-;15273:326;;;;;;15018:14;15273:326;;15219:17;15273:326;;;;14682:1270;33561:66;;15664:8;15660:286;;14682:1270;;:::o;15660:286::-;15692:18;;;33278:67;971:17770:28;;-1:-1:-1;;;15742:46:27;;15174:85;15742:46;;971:17770:28;;;;;;;;;;;;;;;;;;;;26682:51:27;15688:248;15879:41;;:::i;:::-;971:17770:28;15834:87:27;33278:67;971:17770:28;15834:87:27;;;-1:-1:-1;;;15834:87:27;;15174:85;15834:87;;;:::i;15273:326::-;15018:14;;-1:-1:-1;15273:326:27;;3358:267:16;1390:66;3481:46;;1390:66;;3550:15;;;:::i;3477:142::-;971:17770:28;;;-1:-1:-1;6126:13:20;1390:66:16;;;;;;;;;;;;3477:142;1390:66;;;;;;;971:17770:28;;;1390:66:16;;971:17770:28;;;1390:66:16;;;;;;;;;;;;;;;;;;;:::i;:::-;6126:13:20;1390:66:16;;;;;-1:-1:-1;1390:66:16;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1390:66:16;;;;;;;;;;-1:-1:-1;;1390:66:16;;;-1:-1:-1;1390:66:16;;;;;;;;-1:-1:-1;1390:66:16;;;;-1:-1:-1;;;;1390:66:16;;;;;-1:-1:-1;1390:66:16;;;;;;;;3358:267;1390:66;3481:46;;1390:66;;3550:15;;;:::i;3477:142::-;971:17770:28;;;-1:-1:-1;6584:16:20;1390:66:16;;;;;;;;;;;;3477:142;1390:66;;;;;;;971:17770:28;;;1390:66:16;;971:17770:28;;;1390:66:16;;;;;;;;;;;;;;;;;;:::i;:::-;6584:16:20;1390:66:16;;;;;-1:-1:-1;1390:66:16;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1390:66:16;;;;;;;;;;;;;;;;21701:517:27;21875:19;;21871:76;;971:17770:28;;:::i;:::-;;;;1666:3:10;971:17770:28;;1680:15:10;;;1676:67;;21701:517:27;971:17770:28;;22102:33:27;971:17770:28;;;;;;;:::i;:::-;-1:-1:-1;;;;;971:17770:28;;;;;1817:50:10;;;971:17770:28;1794:8:10;971:17770:28;;;;1817:50:10;971:17770:28;1817:50:10;;;;971:17770:28;;;;;;1817:50:10;971:17770:28;;;;;;;;;;22102:33:27;:15;:33;:71;;;;;21701:517;22085:88;971:17770:28;;-1:-1:-1;;;;;971:17770:28;;;;21701:517:27;:::o;22102:71::-;971:17770:28;22139:34:27;;-1:-1:-1;971:17770:28;;;;22139:34:27;22102:15;22139:34;;22102:71;;;1676:67:10;971:17770:28;;-1:-1:-1;1676:67:10;;21871:76:27;21910:26;21893:1;21910:26;21893:1;21910:26;:::o;3205:281:10:-;3287:193;;;;;;;3205:281;:::o;2078:378:16:-;2661:4;2625:40;;2679:11;2688:2;2679:11;;2675:69;;971:17770:28;;;;;;;:::i;:::-;2311:2:16;971:17770:28;;;;;;;;;;;2324:106:16;;;2078:378;:::o;2675:69::-;2713:20;-1:-1:-1;2713:20:16;;-1:-1:-1;2713:20:16","linkReferences":{},"immutableReferences":{"1906":[{"start":12971,"length":32}],"1908":[{"start":13160,"length":32}],"1910":[{"start":12924,"length":32}],"1912":[{"start":13050,"length":32}],"1914":[{"start":13088,"length":32}],"1917":[{"start":4963,"length":32}],"1920":[{"start":5004,"length":32}],"7998":[{"start":12476,"length":32},{"start":13573,"length":32},{"start":13663,"length":32},{"start":14151,"length":32},{"start":14331,"length":32},{"start":14420,"length":32},{"start":14692,"length":32},{"start":14872,"length":32},{"start":14961,"length":32},{"start":15233,"length":32}]}},"methodIdentifiers":{"_accountValidation(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256))":"69683cfa","_paymasterValidation(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256))":"21e60b37","_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)":"c579f76b","addStake(uint32)":"0396cb60","balanceOf(address)":"70a08231","binarySearchCallGas((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,uint256,uint256,uint256)":"acbe911e","binarySearchPaymasterVerificationGas((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,uint256,uint256,uint256)":"d72f2593","binarySearchVerificationGas((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,uint256,uint256,uint256)":"212eccc6","delegateAndRevert(address,bytes)":"850aaf62","depositTo(address)":"b760faf9","eip712Domain()":"84b0196e","getDepositInfo(address)":"5287ce12","getDomainSeparatorV4()":"13c65a6e","getNonce(address,uint192)":"35567e1a","getPackedUserOpTypeHash()":"154e58dc","getSenderAddress(bytes)":"9b249f69","getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":"22cdde4c","handleAggregatedOps(((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address,bytes)[],address)":"dbed18e0","handleOps((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address)":"765e827f","incrementNonce(uint192)":"0bd28e3b","innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)":"0da82661","nonceSequenceNumber(address,uint192)":"1b2e01b8","senderCreator()":"09ccb880","simulateCall(address,bytes,uint256)":"f7e426e8","simulateCallAndRevert(address,bytes,uint256)":"44403473","simulateHandleOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":"af324943","simulateHandleOpSingle((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)":"7da0c462","simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":"c3bce009","simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":"aec321fb","unlockStake()":"bb9fe6bf","withdrawStake(address)":"c23a5cea","withdrawTo(address,uint256)":"205c2878"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"CallPhaseReverted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"ret\",\"type\":\"bytes\"}],\"name\":\"DelegateAndRevert\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"FailedOp\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"inner\",\"type\":\"bytes\"}],\"name\":\"FailedOpWithRevert\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidShortString\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"PostOpReverted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"SenderAddressResult\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"}],\"name\":\"SignatureValidationFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"StringTooLong\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"remainingGas\",\"type\":\"uint256\"}],\"name\":\"innerCallResult\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"factory\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"}],\"name\":\"AccountDeployed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"BeforeExecution\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalDeposit\",\"type\":\"uint256\"}],\"name\":\"Deposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"name\":\"PostOpRevertReason\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"}],\"name\":\"SignatureAggregatorChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalStaked\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"name\":\"StakeLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"withdrawTime\",\"type\":\"uint256\"}],\"name\":\"StakeUnlocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"StakeWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"actualGasCost\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"actualGasUsed\",\"type\":\"uint256\"}],\"name\":\"UserOperationEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"UserOperationPrefundTooLow\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"name\":\"UserOperationRevertReason\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdrawn\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"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\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.MemoryUserOp\",\"name\":\"mUserOp\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"contextOffset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.UserOpInfo\",\"name\":\"outOpInfo\",\"type\":\"tuple\"}],\"name\":\"_accountValidation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"validationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"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\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.MemoryUserOp\",\"name\":\"mUserOp\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"contextOffset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.UserOpInfo\",\"name\":\"outOpInfo\",\"type\":\"tuple\"}],\"name\":\"_paymasterValidation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"validationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"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\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.MemoryUserOp\",\"name\":\"mUserOp\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"contextOffset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.UserOpInfo\",\"name\":\"outOpInfo\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"validatePaymasterPrepayment\",\"type\":\"bool\"}],\"name\":\"_validatePrepayment\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"validationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"unstakeDelaySec\",\"type\":\"uint32\"}],\"name\":\"addStake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"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\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"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\":[{\"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\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"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\":[{\"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\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"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\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"delegateAndRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"depositTo\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getDepositInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"staked\",\"type\":\"bool\"},{\"internalType\":\"uint112\",\"name\":\"stake\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"unstakeDelaySec\",\"type\":\"uint32\"},{\"internalType\":\"uint48\",\"name\":\"withdrawTime\",\"type\":\"uint48\"}],\"internalType\":\"struct IStakeManager.DepositInfo\",\"name\":\"info\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDomainSeparatorV4\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint192\",\"name\":\"key\",\"type\":\"uint192\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPackedUserOpTypeHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"}],\"name\":\"getSenderAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"}],\"name\":\"getUserOpHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"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\":\"contract IAggregator\",\"name\":\"aggregator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPoint.UserOpsPerAggregator[]\",\"name\":\"\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"handleAggregatedOps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"handleOps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint192\",\"name\":\"key\",\"type\":\"uint192\"}],\"name\":\"incrementNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.MemoryUserOp\",\"name\":\"mUserOp\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"contextOffset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.UserOpInfo\",\"name\":\"opInfo\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"context\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"preGas\",\"type\":\"uint256\"}],\"name\":\"innerHandleOp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"actualGasCost\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint192\",\"name\":\"\",\"type\":\"uint192\"}],\"name\":\"nonceSequenceNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"senderCreator\",\"outputs\":[{\"internalType\":\"contract ISenderCreator\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"}],\"name\":\"simulateCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"}],\"name\":\"simulateCallAndRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"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\":[{\"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\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"name\":\"simulateHandleOpSingle\",\"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\":[{\"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\"},{\"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\"}],\"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\"},{\"inputs\":[],\"name\":\"unlockStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"withdrawAddress\",\"type\":\"address\"}],\"name\":\"withdrawStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"withdrawAmount\",\"type\":\"uint256\"}],\"name\":\"withdrawTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"FailedOp(uint256,string)\":[{\"params\":{\"opIndex\":\"- Index into the array of ops to the failed one (in simulateValidation, this is always zero).\",\"reason\":\"- Revert reason. The string starts with a unique code \\\"AAmn\\\", where \\\"m\\\" is \\\"1\\\" for factory, \\\"2\\\" for account and \\\"3\\\" for paymaster issues, so a failure can be attributed to the correct entity.\"}}],\"FailedOpWithRevert(uint256,string,bytes)\":[{\"details\":\"note that inner is truncated to 2048 bytes\",\"params\":{\"inner\":\"- data from inner cought revert reason\",\"opIndex\":\"- Index into the array of ops to the failed one (in simulateValidation, this is always zero).\",\"reason\":\"- Revert reason. see FailedOp(uint256,string), above\"}}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SignatureValidationFailed(address)\":[{\"params\":{\"aggregator\":\"The aggregator that failed to verify the signature\"}}]},\"events\":{\"AccountDeployed(bytes32,address,address,address)\":{\"params\":{\"factory\":\"- The factory used to deploy this account (in the initCode)\",\"paymaster\":\"- The paymaster used by this UserOp\",\"sender\":\"- The account that is deployed\",\"userOpHash\":\"- The userOp that deployed this account. UserOperationEvent will follow.\"}},\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"PostOpRevertReason(bytes32,address,uint256,bytes)\":{\"params\":{\"nonce\":\"- The nonce used in the request.\",\"revertReason\":\"- The return bytes from the (reverted) call to \\\"callData\\\".\",\"sender\":\"- The sender of this request.\",\"userOpHash\":\"- The request unique identifier.\"}},\"SignatureAggregatorChanged(address)\":{\"params\":{\"aggregator\":\"- The aggregator used for the following UserOperationEvents.\"}},\"UserOperationPrefundTooLow(bytes32,address,uint256)\":{\"params\":{\"nonce\":\"- The nonce used in the request.\",\"sender\":\"- The sender of this request.\",\"userOpHash\":\"- The request unique identifier.\"}},\"UserOperationRevertReason(bytes32,address,uint256,bytes)\":{\"params\":{\"nonce\":\"- The nonce used in the request.\",\"revertReason\":\"- The return bytes from the (reverted) call to \\\"callData\\\".\",\"sender\":\"- The sender of this request.\",\"userOpHash\":\"- The request unique identifier.\"}}},\"kind\":\"dev\",\"methods\":{\"_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)\":{\"params\":{\"opIndex\":\"- The index of this userOp into the \\\"opInfos\\\" array.\",\"outOpInfo\":\"- The empty unpacked in-memory UserOperation structure that will be filled in here.\",\"userOp\":\"- The packed calldata UserOperation structure to validate.\"},\"returns\":{\"paymasterValidationData\":\"- The paymaster's validationData.\",\"validationData\":\" - The account's validationData.\"}},\"addStake(uint32)\":{\"params\":{\"_unstakeDelaySec\":\"- The new lock duration before the deposit can be withdrawn.\"}},\"balanceOf(address)\":{\"params\":{\"account\":\"- The account to query.\"},\"returns\":{\"_0\":\"- The deposit (for gas payment) of the account.\"}},\"delegateAndRevert(address,bytes)\":{\"details\":\"calling this method, the EntryPoint will make a delegatecall to the given data, and report (via revert) the result. The method always revert, so is only useful off-chain for dry run calls, in cases where state-override to replace actual EntryPoint code is less convenient.\",\"params\":{\"data\":\"data to pass to target in a delegatecall\",\"target\":\"a target contract to make a delegatecall from entrypoint\"}},\"depositTo(address)\":{\"params\":{\"account\":\"- The account to add to.\"}},\"eip712Domain()\":{\"details\":\"See {IERC-5267}.\"},\"getDepositInfo(address)\":{\"params\":{\"account\":\"- The account to query.\"},\"returns\":{\"info\":\" - Full deposit information of given account.\"}},\"getNonce(address,uint192)\":{\"params\":{\"key\":\"the high 192 bit of the nonce\",\"sender\":\"the account address\"},\"returns\":{\"nonce\":\"a full nonce to pass for next UserOp with this sender.\"}},\"getSenderAddress(bytes)\":{\"params\":{\"initCode\":\"- The constructor code to be passed into the UserOperation.\"}},\"getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"params\":{\"userOp\":\"- The user operation to generate the request ID for.\"},\"returns\":{\"_0\":\"hash the hash of this UserOperation\"}},\"innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)\":{\"params\":{\"callData\":\"- The callData to execute.\",\"context\":\"- The context bytes.\",\"opInfo\":\"- The UserOpInfo struct.\"},\"returns\":{\"actualGasCost\":\"- the actual cost in eth this UserOperation paid for gas\"}},\"withdrawStake(address)\":{\"params\":{\"withdrawAddress\":\"- The address to send withdrawn value.\"}},\"withdrawTo(address,uint256)\":{\"params\":{\"withdrawAddress\":\"- The address to send withdrawn value.\",\"withdrawAmount\":\"- The amount to withdraw.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"FailedOp(uint256,string)\":[{\"notice\":\"A custom revert error of handleOps, to identify the offending op. Should be caught in off-chain handleOps simulation and not happen on-chain. Useful for mitigating DoS attempts against batchers or for troubleshooting of factory/account/paymaster reverts. NOTE: If simulateValidation passes successfully, there should be no reason for handleOps to fail on it.\"}],\"FailedOpWithRevert(uint256,string,bytes)\":[{\"notice\":\"A custom revert error of handleOps, to report a revert by account or paymaster.\"}],\"SignatureValidationFailed(address)\":[{\"notice\":\"Error case when a signature aggregator fails to verify the aggregated signature it had created.\"}]},\"events\":{\"AccountDeployed(bytes32,address,address,address)\":{\"notice\":\"Account \\\"sender\\\" was deployed.\"},\"BeforeExecution()\":{\"notice\":\"An event emitted by handleOps(), before starting the execution loop. Any event emitted before this event, is part of the validation.\"},\"PostOpRevertReason(bytes32,address,uint256,bytes)\":{\"notice\":\"An event emitted if the UserOperation Paymaster's \\\"postOp\\\" call reverted with non-zero length.\"},\"SignatureAggregatorChanged(address)\":{\"notice\":\"Signature aggregator used by the following UserOperationEvents within this bundle.\"},\"UserOperationPrefundTooLow(bytes32,address,uint256)\":{\"notice\":\"UserOp consumed more than prefund. The UserOperation is reverted, and no refund is made.\"},\"UserOperationRevertReason(bytes32,address,uint256,bytes)\":{\"notice\":\"An event emitted if the UserOperation \\\"callData\\\" reverted with non-zero length.\"}},\"kind\":\"user\",\"methods\":{\"_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)\":{\"notice\":\"Validate account and paymaster (if defined) and also make sure total validation doesn't exceed verificationGasLimit. This method is called off-chain (simulateValidation()) and on-chain (from handleOps)\"},\"addStake(uint32)\":{\"notice\":\"Add to the account's stake - amount and delay any pending unstake is first cancelled.\"},\"balanceOf(address)\":{\"notice\":\"Get account balance.\"},\"constructor\":{\"notice\":\"simulation contract should not be deployed, and specifically, accounts should not trust it as entrypoint, since the simulation functions don't check the signatures\"},\"delegateAndRevert(address,bytes)\":{\"notice\":\"Helper method for dry-run testing.\"},\"depositTo(address)\":{\"notice\":\"Add to the deposit of the given account.\"},\"getDepositInfo(address)\":{\"notice\":\"Get deposit info.\"},\"getNonce(address,uint192)\":{\"notice\":\"Return the next nonce for this sender. Within a given key, the nonce values are sequenced (starting with zero, and incremented by one on each userop) But UserOp with different keys can come with arbitrary order.\"},\"getSenderAddress(bytes)\":{\"notice\":\"Get counterfactual sender address. Calculate the sender contract address that will be generated by the initCode and salt in the UserOperation. This method always revert, and returns the address in SenderAddressResult error\"},\"getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"notice\":\"Generate a request Id - unique identifier for this request. The request ID is a hash over the content of the userOp (except the signature), the entrypoint and the chainid.\"},\"incrementNonce(uint192)\":{\"notice\":\"Manually increment the nonce of the sender. This method is exposed just for completeness.. Account does NOT need to call it, neither during validation, nor elsewhere, as the EntryPoint will update the nonce regardless. Possible use-case is call it with various keys to \\\"initialize\\\" their nonces to one, so that future UserOperations will not pay extra for the first transaction with a given key.\"},\"innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)\":{\"notice\":\"Inner function to handle a UserOperation. Must be declared \\\"external\\\" to open a call context, but it can only be called by handleOps.\"},\"nonceSequenceNumber(address,uint192)\":{\"notice\":\"The next valid sequence number for a given nonce key.\"},\"simulateHandleOpSingle((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)\":{\"notice\":\"simulates a single userOperation (taken from EntryPoint simulation example)\"},\"simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"notice\":\"simulate and validates a single userOperation (taken from EntryPoint simulation example)\"},\"unlockStake()\":{\"notice\":\"Attempt to unlock the stake. The value can be withdrawn (using withdrawStake) after the unstake delay.\"},\"withdrawStake(address)\":{\"notice\":\"Withdraw from the (unlocked) stake. Must first call unlockStake and wait for the unstakeDelay to pass.\"},\"withdrawTo(address,uint256)\":{\"notice\":\"Withdraw from the deposit.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/v08/EntryPointSimulations.sol\":\"EntryPointSimulations08\"},\"evmVersion\":\"cancun\",\"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-v7/contracts/core/NonceManager.sol\":{\"keccak256\":\"0x1f951786ce6f171e7ed0242fee73ee4a205c7523404ee6cffca48b8c64ea5fe9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a602bf2274d478dae7a532cca31f8179131808c324cc26ece5c7e87c5a1015a6\",\"dweb:/ipfs/QmaaSyw5GGbAWzUhAPCtsb38P3MmaVr1ngp61PYHCU2a5a\"]},\"lib/account-abstraction-v7/contracts/interfaces/IAccount.sol\":{\"keccak256\":\"0x38710bec0cb20ff4ceef46a80475b5bdabc27b7efd2687fd473db68332f61b78\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://dea7a723e1ef852e8764e69914a345d2e8bc5e13facfc9d5c29d791cb4ab0020\",\"dweb:/ipfs/QmU8dYgyF4DBJXFqjwLAtnE3q8q259ChfoEk9a6wyhHzEP\"]},\"lib/account-abstraction-v7/contracts/interfaces/IAccountExecute.sol\":{\"keccak256\":\"0xd3dc32dde1add1fb6377f939ceff6be31c2e21343522311f7b88db666be9ee6c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://5b8f065171bd32e23b306868189c730f849ce6147f753c59e396e7afcf384577\",\"dweb:/ipfs/QmZpDRNEZ9YNgGgyLQo5yM4bB1FNbtnfDABsChbgSQKXUh\"]},\"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/IPaymaster.sol\":{\"keccak256\":\"0x49d8dbf8a85b006bcd89bbc40e4e9e113997cc016007de85263bdae70572d07f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://bc0d83804c1b795d5c216b3518cd176c48f90db28550f267cbd89746d6b476c8\",\"dweb:/ipfs/QmNdCm4c6hnt7f6Q8q21QjtCNZWWRUaMVEYnQHEv68VnKt\"]},\"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/core/Helpers.sol\":{\"keccak256\":\"0x42b948af5fa14a96149611595df1186800c7558b2de8762e4b45a7c45c16f65e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737a7908131ece48a5df1faaa3d0be79c42792379c27f5615dae6aa14cd68c2f\",\"dweb:/ipfs/QmPAxGMDxuek7XWSUVfZpvYE8bustfsjTDVDK8hmE88e1f\"]},\"lib/account-abstraction-v8/contracts/interfaces/ISenderCreator.sol\":{\"keccak256\":\"0x677f651d733162b80d1af7901e4f36469e362737a8353d1d0cc7bb94489e4ba4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6905a80acd70b444ea230b5b582164cb99aaae518bf72c88f8292df31615570\",\"dweb:/ipfs/QmfTKTPwJYf9pmA3T5PE5cCG8GLLDrLaq3jQqMP3pVRL6w\"]},\"lib/openzeppelin-contracts-v4.8.3/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/ReentrancyGuardTransient.sol\":{\"keccak256\":\"0x534bf5c25d6003a8ce50b400d20fa460c03169ad7baa90d47a912917c36dfe2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc0cc39c40ea23d3c46e8517e19ebdd877719d3159fa032f2a91802cdd205c79\",\"dweb:/ipfs/QmSoNh7HTkD4TJcBkBKSGSPMMpLUZKE7s9f2G6mjdaJywg\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a\",\"dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889\",\"dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c\",\"dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e\",\"dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/IEntryPointSimulations.sol\":{\"keccak256\":\"0xbc2129076267d33c8a7a7bb9ed92cc7b4a7d0d20c224a5f428412cca113bed41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f35d68119a9c4108b415c8523667bae15466b544f2e0a17111e7c8481bdb07b5\",\"dweb:/ipfs/Qme8yMWE1KLcGmJ5UhHS4KBc27TRTaeoXwBxaXQbErAC5t\"]},\"src/SimulationOverrideHelper.sol\":{\"keccak256\":\"0x98850f986164c992b840ba8e878814c459be0852debe8ad8d69140c09c6b05c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a57d5979f5557ccbc6947c3f6b5b6ec10f152609b9d11c265b20d925d915b559\",\"dweb:/ipfs/QmcA4kpMCnjCfEyky32w5S8qXzvvchZJhMBvJvmBp5tcep\"]},\"src/v08/EntryPoint.sol\":{\"keccak256\":\"0x8d889771da572658d9d4cc2aeeb8145c2fcc55b20fc160732ee3b3ecf27623ac\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7a5dab7432771386b816248df9c417987426667319024e13fd3d0056ca3efc7b\",\"dweb:/ipfs/QmZ9h8CUHWwzxVwXxW8nSDbcttnmstXzUgDCdEoWXzYauN\"]},\"src/v08/EntryPointSimulations.sol\":{\"keccak256\":\"0xe020df97ccf89974f9517046c4e5a34e4587df536746d8607ec42eebf1b56d4a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://525e9d52d66142a8663df724d80977f4a0ca7639dbeb82e318121a34f4e689af\",\"dweb:/ipfs/QmdZ4fjXEkycx4XunVZJDQKpAZFwaqV1vkR845w59zk24n\"]},\"src/v08/overrides/Eip7702Support.sol\":{\"keccak256\":\"0x43b1ea67340dd543e34135d258ea258fb824247eb404c11e99a1945f5826ab3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a920bdb53b67730c177c9bdb6003095a82a6b3ecf458f3493e46d683f006ed8b\",\"dweb:/ipfs/QmcwWBMhqqPEmH6JMExB68yPS7b5dn3AQQWz5Y7YTmambW\"]},\"src/v08/overrides/SenderCreator.sol\":{\"keccak256\":\"0x883d989f60af4c076f1748b1749fed9b9c711727dcd700e32da91c47f0aeae4c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d29f93bf7d0e32ad8fc7f7555c132baec37d594d2d8974c5de0632c152840b0b\",\"dweb:/ipfs/QmY4g8EWWLTUvjYsHoSmn4rZb8NA1SVddziEdXwp98Nd96\"]},\"src/v08/overrides/StakeManager.sol\":{\"keccak256\":\"0x9bac55672ee2fa70eb8378eb8975e4b23b689809bb8848a439771d81dea86ba0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://34fa8b7a33f4ed9c2cac5ebe8a9e6cc1b545a3188ddd0b1008960a86c11c392c\",\"dweb:/ipfs/QmVYyvmELFPrzkQe2eSnoTWXxzyiJohay2jAFNkuZBQswn\"]},\"src/v08/overrides/UserOperationLib.sol\":{\"keccak256\":\"0xf5512d40f62d36dba06a127832ad33ae9db28225632abcb46f4d41ba0fceca17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afa1670de9e4d240258aed3613426663690931b313701f9af5edb1600b3071c3\",\"dweb:/ipfs/QmeoQgTwpEQhyACQAqtUBRTEVpzzckLpKg1y5tS6FBpdcu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes","name":"reason","type":"bytes"}],"type":"error","name":"CallPhaseReverted"},{"inputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"ret","type":"bytes"}],"type":"error","name":"DelegateAndRevert"},{"inputs":[{"internalType":"uint256","name":"opIndex","type":"uint256"},{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"FailedOp"},{"inputs":[{"internalType":"uint256","name":"opIndex","type":"uint256"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"inner","type":"bytes"}],"type":"error","name":"FailedOpWithRevert"},{"inputs":[],"type":"error","name":"InvalidShortString"},{"inputs":[{"internalType":"bytes","name":"returnData","type":"bytes"}],"type":"error","name":"PostOpReverted"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"SenderAddressResult"},{"inputs":[{"internalType":"address","name":"aggregator","type":"address"}],"type":"error","name":"SignatureValidationFailed"},{"inputs":[{"internalType":"string","name":"str","type":"string"}],"type":"error","name":"StringTooLong"},{"inputs":[{"internalType":"uint256","name":"remainingGas","type":"uint256"}],"type":"error","name":"innerCallResult"},{"inputs":[{"internalType":"bytes32","name":"userOpHash","type":"bytes32","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"factory","type":"address","indexed":false},{"internalType":"address","name":"paymaster","type":"address","indexed":false}],"type":"event","name":"AccountDeployed","anonymous":false},{"inputs":[],"type":"event","name":"BeforeExecution","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"totalDeposit","type":"uint256","indexed":false}],"type":"event","name":"Deposited","anonymous":false},{"inputs":[],"type":"event","name":"EIP712DomainChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"userOpHash","type":"bytes32","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"nonce","type":"uint256","indexed":false},{"internalType":"bytes","name":"revertReason","type":"bytes","indexed":false}],"type":"event","name":"PostOpRevertReason","anonymous":false},{"inputs":[{"internalType":"address","name":"aggregator","type":"address","indexed":true}],"type":"event","name":"SignatureAggregatorChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"totalStaked","type":"uint256","indexed":false},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256","indexed":false}],"type":"event","name":"StakeLocked","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"withdrawTime","type":"uint256","indexed":false}],"type":"event","name":"StakeUnlocked","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"withdrawAddress","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"StakeWithdrawn","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"userOpHash","type":"bytes32","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"paymaster","type":"address","indexed":true},{"internalType":"uint256","name":"nonce","type":"uint256","indexed":false},{"internalType":"bool","name":"success","type":"bool","indexed":false},{"internalType":"uint256","name":"actualGasCost","type":"uint256","indexed":false},{"internalType":"uint256","name":"actualGasUsed","type":"uint256","indexed":false}],"type":"event","name":"UserOperationEvent","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"userOpHash","type":"bytes32","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"nonce","type":"uint256","indexed":false}],"type":"event","name":"UserOperationPrefundTooLow","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"userOpHash","type":"bytes32","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"nonce","type":"uint256","indexed":false},{"internalType":"bytes","name":"revertReason","type":"bytes","indexed":false}],"type":"event","name":"UserOperationRevertReason","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"withdrawAddress","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Withdrawn","anonymous":false},{"inputs":[{"internalType":"uint256","name":"opIndex","type":"uint256"},{"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":"struct EntryPoint.UserOpInfo","name":"outOpInfo","type":"tuple","components":[{"internalType":"struct EntryPoint.MemoryUserOp","name":"mUserOp","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"verificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"callGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterVerificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterPostOpGasLimit","type":"uint256"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"address","name":"paymaster","type":"address"},{"internalType":"uint256","name":"maxFeePerGas","type":"uint256"},{"internalType":"uint256","name":"maxPriorityFeePerGas","type":"uint256"}]},{"internalType":"bytes32","name":"userOpHash","type":"bytes32"},{"internalType":"uint256","name":"prefund","type":"uint256"},{"internalType":"uint256","name":"contextOffset","type":"uint256"},{"internalType":"uint256","name":"preOpGas","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"_accountValidation","outputs":[{"internalType":"uint256","name":"validationData","type":"uint256"},{"internalType":"uint256","name":"paymasterValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterVerificationGasLimit","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"opIndex","type":"uint256"},{"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":"struct EntryPoint.UserOpInfo","name":"outOpInfo","type":"tuple","components":[{"internalType":"struct EntryPoint.MemoryUserOp","name":"mUserOp","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"verificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"callGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterVerificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterPostOpGasLimit","type":"uint256"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"address","name":"paymaster","type":"address"},{"internalType":"uint256","name":"maxFeePerGas","type":"uint256"},{"internalType":"uint256","name":"maxPriorityFeePerGas","type":"uint256"}]},{"internalType":"bytes32","name":"userOpHash","type":"bytes32"},{"internalType":"uint256","name":"prefund","type":"uint256"},{"internalType":"uint256","name":"contextOffset","type":"uint256"},{"internalType":"uint256","name":"preOpGas","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"_paymasterValidation","outputs":[{"internalType":"uint256","name":"validationData","type":"uint256"},{"internalType":"uint256","name":"paymasterValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterVerificationGasLimit","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"opIndex","type":"uint256"},{"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":"struct EntryPoint.UserOpInfo","name":"outOpInfo","type":"tuple","components":[{"internalType":"struct EntryPoint.MemoryUserOp","name":"mUserOp","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"verificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"callGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterVerificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterPostOpGasLimit","type":"uint256"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"address","name":"paymaster","type":"address"},{"internalType":"uint256","name":"maxFeePerGas","type":"uint256"},{"internalType":"uint256","name":"maxPriorityFeePerGas","type":"uint256"}]},{"internalType":"bytes32","name":"userOpHash","type":"bytes32"},{"internalType":"uint256","name":"prefund","type":"uint256"},{"internalType":"uint256","name":"contextOffset","type":"uint256"},{"internalType":"uint256","name":"preOpGas","type":"uint256"}]},{"internalType":"bool","name":"validatePaymasterPrepayment","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"_validatePrepayment","outputs":[{"internalType":"uint256","name":"validationData","type":"uint256"},{"internalType":"uint256","name":"paymasterValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterVerificationGasLimit","type":"uint256"}]},{"inputs":[{"internalType":"uint32","name":"unstakeDelaySec","type":"uint32"}],"stateMutability":"payable","type":"function","name":"addStake"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"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":"address","name":"entryPoint","type":"address"},{"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":"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":"address","name":"entryPoint","type":"address"},{"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":"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":"address","name":"entryPoint","type":"address"},{"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":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"delegateAndRevert"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"payable","type":"function","name":"depositTo"},{"inputs":[],"stateMutability":"view","type":"function","name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getDepositInfo","outputs":[{"internalType":"struct IStakeManager.DepositInfo","name":"info","type":"tuple","components":[{"internalType":"uint256","name":"deposit","type":"uint256"},{"internalType":"bool","name":"staked","type":"bool"},{"internalType":"uint112","name":"stake","type":"uint112"},{"internalType":"uint32","name":"unstakeDelaySec","type":"uint32"},{"internalType":"uint48","name":"withdrawTime","type":"uint48"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getDomainSeparatorV4","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint192","name":"key","type":"uint192"}],"stateMutability":"view","type":"function","name":"getNonce","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"getPackedUserOpTypeHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes","name":"initCode","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"getSenderAddress"},{"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"}]}],"stateMutability":"view","type":"function","name":"getUserOpHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct IEntryPoint.UserOpsPerAggregator[]","name":"","type":"tuple[]","components":[{"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":"contract IAggregator","name":"aggregator","type":"address"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"handleAggregatedOps"},{"inputs":[{"internalType":"struct PackedUserOperation[]","name":"","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":"","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"handleOps"},{"inputs":[{"internalType":"uint192","name":"key","type":"uint192"}],"stateMutability":"nonpayable","type":"function","name":"incrementNonce"},{"inputs":[{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"struct EntryPoint.UserOpInfo","name":"opInfo","type":"tuple","components":[{"internalType":"struct EntryPoint.MemoryUserOp","name":"mUserOp","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"verificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"callGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterVerificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterPostOpGasLimit","type":"uint256"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"address","name":"paymaster","type":"address"},{"internalType":"uint256","name":"maxFeePerGas","type":"uint256"},{"internalType":"uint256","name":"maxPriorityFeePerGas","type":"uint256"}]},{"internalType":"bytes32","name":"userOpHash","type":"bytes32"},{"internalType":"uint256","name":"prefund","type":"uint256"},{"internalType":"uint256","name":"contextOffset","type":"uint256"},{"internalType":"uint256","name":"preOpGas","type":"uint256"}]},{"internalType":"bytes","name":"context","type":"bytes"},{"internalType":"uint256","name":"preGas","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"innerHandleOp","outputs":[{"internalType":"uint256","name":"actualGasCost","type":"uint256"},{"internalType":"uint256","name":"paymasterPostOpGasLimit","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint192","name":"","type":"uint192"}],"stateMutability":"view","type":"function","name":"nonceSequenceNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"senderCreator","outputs":[{"internalType":"contract ISenderCreator","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"entryPoint","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint256","name":"gas","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"simulateCall","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"result","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"gas","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"simulateCallAndRevert"},{"inputs":[{"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":"struct PackedUserOperation","name":"op","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"targetCallData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"simulateHandleOpSingle","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":"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"}]}]}]}]},{"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"}]}],"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"}]}]}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unlockStake"},{"inputs":[{"internalType":"address payable","name":"withdrawAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdrawStake"},{"inputs":[{"internalType":"address payable","name":"withdrawAddress","type":"address"},{"internalType":"uint256","name":"withdrawAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawTo"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)":{"params":{"opIndex":"- The index of this userOp into the \"opInfos\" array.","outOpInfo":"- The empty unpacked in-memory UserOperation structure that will be filled in here.","userOp":"- The packed calldata UserOperation structure to validate."},"returns":{"paymasterValidationData":"- The paymaster's validationData.","validationData":" - The account's validationData."}},"addStake(uint32)":{"params":{"_unstakeDelaySec":"- The new lock duration before the deposit can be withdrawn."}},"balanceOf(address)":{"params":{"account":"- The account to query."},"returns":{"_0":"- The deposit (for gas payment) of the account."}},"delegateAndRevert(address,bytes)":{"details":"calling this method, the EntryPoint will make a delegatecall to the given data, and report (via revert) the result. The method always revert, so is only useful off-chain for dry run calls, in cases where state-override to replace actual EntryPoint code is less convenient.","params":{"data":"data to pass to target in a delegatecall","target":"a target contract to make a delegatecall from entrypoint"}},"depositTo(address)":{"params":{"account":"- The account to add to."}},"eip712Domain()":{"details":"See {IERC-5267}."},"getDepositInfo(address)":{"params":{"account":"- The account to query."},"returns":{"info":" - Full deposit information of given account."}},"getNonce(address,uint192)":{"params":{"key":"the high 192 bit of the nonce","sender":"the account address"},"returns":{"nonce":"a full nonce to pass for next UserOp with this sender."}},"getSenderAddress(bytes)":{"params":{"initCode":"- The constructor code to be passed into the UserOperation."}},"getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":{"params":{"userOp":"- The user operation to generate the request ID for."},"returns":{"_0":"hash the hash of this UserOperation"}},"innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)":{"params":{"callData":"- The callData to execute.","context":"- The context bytes.","opInfo":"- The UserOpInfo struct."},"returns":{"actualGasCost":"- the actual cost in eth this UserOperation paid for gas"}},"withdrawStake(address)":{"params":{"withdrawAddress":"- The address to send withdrawn value."}},"withdrawTo(address,uint256)":{"params":{"withdrawAddress":"- The address to send withdrawn value.","withdrawAmount":"- The amount to withdraw."}}},"version":1},"userdoc":{"kind":"user","methods":{"_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)":{"notice":"Validate account and paymaster (if defined) and also make sure total validation doesn't exceed verificationGasLimit. This method is called off-chain (simulateValidation()) and on-chain (from handleOps)"},"addStake(uint32)":{"notice":"Add to the account's stake - amount and delay any pending unstake is first cancelled."},"balanceOf(address)":{"notice":"Get account balance."},"constructor":{"notice":"simulation contract should not be deployed, and specifically, accounts should not trust it as entrypoint, since the simulation functions don't check the signatures"},"delegateAndRevert(address,bytes)":{"notice":"Helper method for dry-run testing."},"depositTo(address)":{"notice":"Add to the deposit of the given account."},"getDepositInfo(address)":{"notice":"Get deposit info."},"getNonce(address,uint192)":{"notice":"Return the next nonce for this sender. Within a given key, the nonce values are sequenced (starting with zero, and incremented by one on each userop) But UserOp with different keys can come with arbitrary order."},"getSenderAddress(bytes)":{"notice":"Get counterfactual sender address. Calculate the sender contract address that will be generated by the initCode and salt in the UserOperation. This method always revert, and returns the address in SenderAddressResult error"},"getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":{"notice":"Generate a request Id - unique identifier for this request. The request ID is a hash over the content of the userOp (except the signature), the entrypoint and the chainid."},"incrementNonce(uint192)":{"notice":"Manually increment the nonce of the sender. This method is exposed just for completeness.. Account does NOT need to call it, neither during validation, nor elsewhere, as the EntryPoint will update the nonce regardless. Possible use-case is call it with various keys to \"initialize\" their nonces to one, so that future UserOperations will not pay extra for the first transaction with a given key."},"innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)":{"notice":"Inner function to handle a UserOperation. Must be declared \"external\" to open a call context, but it can only be called by handleOps."},"nonceSequenceNumber(address,uint192)":{"notice":"The next valid sequence number for a given nonce key."},"simulateHandleOpSingle((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)":{"notice":"simulates a single userOperation (taken from EntryPoint simulation example)"},"simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":{"notice":"simulate and validates a single userOperation (taken from EntryPoint simulation example)"},"unlockStake()":{"notice":"Attempt to unlock the stake. The value can be withdrawn (using withdrawStake) after the unstake delay."},"withdrawStake(address)":{"notice":"Withdraw from the (unlocked) stake. Must first call unlockStake and wait for the unstakeDelay to pass."},"withdrawTo(address,uint256)":{"notice":"Withdraw from the deposit."}},"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/v08/EntryPointSimulations.sol":"EntryPointSimulations08"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/account-abstraction-v7/contracts/core/NonceManager.sol":{"keccak256":"0x1f951786ce6f171e7ed0242fee73ee4a205c7523404ee6cffca48b8c64ea5fe9","urls":["bzz-raw://a602bf2274d478dae7a532cca31f8179131808c324cc26ece5c7e87c5a1015a6","dweb:/ipfs/QmaaSyw5GGbAWzUhAPCtsb38P3MmaVr1ngp61PYHCU2a5a"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/interfaces/IAccount.sol":{"keccak256":"0x38710bec0cb20ff4ceef46a80475b5bdabc27b7efd2687fd473db68332f61b78","urls":["bzz-raw://dea7a723e1ef852e8764e69914a345d2e8bc5e13facfc9d5c29d791cb4ab0020","dweb:/ipfs/QmU8dYgyF4DBJXFqjwLAtnE3q8q259ChfoEk9a6wyhHzEP"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/interfaces/IAccountExecute.sol":{"keccak256":"0xd3dc32dde1add1fb6377f939ceff6be31c2e21343522311f7b88db666be9ee6c","urls":["bzz-raw://5b8f065171bd32e23b306868189c730f849ce6147f753c59e396e7afcf384577","dweb:/ipfs/QmZpDRNEZ9YNgGgyLQo5yM4bB1FNbtnfDABsChbgSQKXUh"],"license":"GPL-3.0"},"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/IPaymaster.sol":{"keccak256":"0x49d8dbf8a85b006bcd89bbc40e4e9e113997cc016007de85263bdae70572d07f","urls":["bzz-raw://bc0d83804c1b795d5c216b3518cd176c48f90db28550f267cbd89746d6b476c8","dweb:/ipfs/QmNdCm4c6hnt7f6Q8q21QjtCNZWWRUaMVEYnQHEv68VnKt"],"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/core/Helpers.sol":{"keccak256":"0x42b948af5fa14a96149611595df1186800c7558b2de8762e4b45a7c45c16f65e","urls":["bzz-raw://737a7908131ece48a5df1faaa3d0be79c42792379c27f5615dae6aa14cd68c2f","dweb:/ipfs/QmPAxGMDxuek7XWSUVfZpvYE8bustfsjTDVDK8hmE88e1f"],"license":"MIT"},"lib/account-abstraction-v8/contracts/interfaces/ISenderCreator.sol":{"keccak256":"0x677f651d733162b80d1af7901e4f36469e362737a8353d1d0cc7bb94489e4ba4","urls":["bzz-raw://d6905a80acd70b444ea230b5b582164cb99aaae518bf72c88f8292df31615570","dweb:/ipfs/QmfTKTPwJYf9pmA3T5PE5cCG8GLLDrLaq3jQqMP3pVRL6w"],"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-v5.1.0/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts-v5.1.0/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts-v5.1.0/contracts/utils/ReentrancyGuardTransient.sol":{"keccak256":"0x534bf5c25d6003a8ce50b400d20fa460c03169ad7baa90d47a912917c36dfe2b","urls":["bzz-raw://cc0cc39c40ea23d3c46e8517e19ebdd877719d3159fa032f2a91802cdd205c79","dweb:/ipfs/QmSoNh7HTkD4TJcBkBKSGSPMMpLUZKE7s9f2G6mjdaJywg"],"license":"MIT"},"lib/openzeppelin-contracts-v5.1.0/contracts/utils/ShortStrings.sol":{"keccak256":"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549","urls":["bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a","dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK"],"license":"MIT"},"lib/openzeppelin-contracts-v5.1.0/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts-v5.1.0/contracts/utils/Strings.sol":{"keccak256":"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed","urls":["bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0","dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49"],"license":"MIT"},"lib/openzeppelin-contracts-v5.1.0/contracts/utils/TransientSlot.sol":{"keccak256":"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1","urls":["bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889","dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t"],"license":"MIT"},"lib/openzeppelin-contracts-v5.1.0/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d","urls":["bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c","dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p"],"license":"MIT"},"lib/openzeppelin-contracts-v5.1.0/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575","urls":["bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e","dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs"],"license":"MIT"},"lib/openzeppelin-contracts-v5.1.0/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts-v5.1.0/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts-v5.1.0/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/IEntryPointSimulations.sol":{"keccak256":"0xbc2129076267d33c8a7a7bb9ed92cc7b4a7d0d20c224a5f428412cca113bed41","urls":["bzz-raw://f35d68119a9c4108b415c8523667bae15466b544f2e0a17111e7c8481bdb07b5","dweb:/ipfs/Qme8yMWE1KLcGmJ5UhHS4KBc27TRTaeoXwBxaXQbErAC5t"],"license":"MIT"},"src/SimulationOverrideHelper.sol":{"keccak256":"0x98850f986164c992b840ba8e878814c459be0852debe8ad8d69140c09c6b05c5","urls":["bzz-raw://a57d5979f5557ccbc6947c3f6b5b6ec10f152609b9d11c265b20d925d915b559","dweb:/ipfs/QmcA4kpMCnjCfEyky32w5S8qXzvvchZJhMBvJvmBp5tcep"],"license":"MIT"},"src/v08/EntryPoint.sol":{"keccak256":"0x8d889771da572658d9d4cc2aeeb8145c2fcc55b20fc160732ee3b3ecf27623ac","urls":["bzz-raw://7a5dab7432771386b816248df9c417987426667319024e13fd3d0056ca3efc7b","dweb:/ipfs/QmZ9h8CUHWwzxVwXxW8nSDbcttnmstXzUgDCdEoWXzYauN"],"license":"GPL-3.0"},"src/v08/EntryPointSimulations.sol":{"keccak256":"0xe020df97ccf89974f9517046c4e5a34e4587df536746d8607ec42eebf1b56d4a","urls":["bzz-raw://525e9d52d66142a8663df724d80977f4a0ca7639dbeb82e318121a34f4e689af","dweb:/ipfs/QmdZ4fjXEkycx4XunVZJDQKpAZFwaqV1vkR845w59zk24n"],"license":"GPL-3.0"},"src/v08/overrides/Eip7702Support.sol":{"keccak256":"0x43b1ea67340dd543e34135d258ea258fb824247eb404c11e99a1945f5826ab3c","urls":["bzz-raw://a920bdb53b67730c177c9bdb6003095a82a6b3ecf458f3493e46d683f006ed8b","dweb:/ipfs/QmcwWBMhqqPEmH6JMExB68yPS7b5dn3AQQWz5Y7YTmambW"],"license":"MIT"},"src/v08/overrides/SenderCreator.sol":{"keccak256":"0x883d989f60af4c076f1748b1749fed9b9c711727dcd700e32da91c47f0aeae4c","urls":["bzz-raw://d29f93bf7d0e32ad8fc7f7555c132baec37d594d2d8974c5de0632c152840b0b","dweb:/ipfs/QmY4g8EWWLTUvjYsHoSmn4rZb8NA1SVddziEdXwp98Nd96"],"license":"GPL-3.0"},"src/v08/overrides/StakeManager.sol":{"keccak256":"0x9bac55672ee2fa70eb8378eb8975e4b23b689809bb8848a439771d81dea86ba0","urls":["bzz-raw://34fa8b7a33f4ed9c2cac5ebe8a9e6cc1b545a3188ddd0b1008960a86c11c392c","dweb:/ipfs/QmVYyvmELFPrzkQe2eSnoTWXxzyiJohay2jAFNkuZBQswn"],"license":"GPL-3.0"},"src/v08/overrides/UserOperationLib.sol":{"keccak256":"0xf5512d40f62d36dba06a127832ad33ae9db28225632abcb46f4d41ba0fceca17","urls":["bzz-raw://afa1670de9e4d240258aed3613426663690931b313701f9af5edb1600b3071c3","dweb:/ipfs/QmeoQgTwpEQhyACQAqtUBRTEVpzzckLpKg1y5tS6FBpdcu"],"license":"MIT"}},"version":1},"id":28}
1
+ {"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"_accountValidation","inputs":[{"name":"opIndex","type":"uint256","internalType":"uint256"},{"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":"outOpInfo","type":"tuple","internalType":"struct EntryPoint.UserOpInfo","components":[{"name":"mUserOp","type":"tuple","internalType":"struct EntryPoint.MemoryUserOp","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"verificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"callGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterVerificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterPostOpGasLimit","type":"uint256","internalType":"uint256"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"paymaster","type":"address","internalType":"address"},{"name":"maxFeePerGas","type":"uint256","internalType":"uint256"},{"name":"maxPriorityFeePerGas","type":"uint256","internalType":"uint256"}]},{"name":"userOpHash","type":"bytes32","internalType":"bytes32"},{"name":"prefund","type":"uint256","internalType":"uint256"},{"name":"contextOffset","type":"uint256","internalType":"uint256"},{"name":"preOpGas","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"validationData","type":"uint256","internalType":"uint256"},{"name":"paymasterValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterVerificationGasLimit","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"_paymasterValidation","inputs":[{"name":"opIndex","type":"uint256","internalType":"uint256"},{"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":"outOpInfo","type":"tuple","internalType":"struct EntryPoint.UserOpInfo","components":[{"name":"mUserOp","type":"tuple","internalType":"struct EntryPoint.MemoryUserOp","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"verificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"callGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterVerificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterPostOpGasLimit","type":"uint256","internalType":"uint256"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"paymaster","type":"address","internalType":"address"},{"name":"maxFeePerGas","type":"uint256","internalType":"uint256"},{"name":"maxPriorityFeePerGas","type":"uint256","internalType":"uint256"}]},{"name":"userOpHash","type":"bytes32","internalType":"bytes32"},{"name":"prefund","type":"uint256","internalType":"uint256"},{"name":"contextOffset","type":"uint256","internalType":"uint256"},{"name":"preOpGas","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"validationData","type":"uint256","internalType":"uint256"},{"name":"paymasterValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterVerificationGasLimit","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"_validatePrepayment","inputs":[{"name":"opIndex","type":"uint256","internalType":"uint256"},{"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":"outOpInfo","type":"tuple","internalType":"struct EntryPoint.UserOpInfo","components":[{"name":"mUserOp","type":"tuple","internalType":"struct EntryPoint.MemoryUserOp","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"verificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"callGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterVerificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterPostOpGasLimit","type":"uint256","internalType":"uint256"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"paymaster","type":"address","internalType":"address"},{"name":"maxFeePerGas","type":"uint256","internalType":"uint256"},{"name":"maxPriorityFeePerGas","type":"uint256","internalType":"uint256"}]},{"name":"userOpHash","type":"bytes32","internalType":"bytes32"},{"name":"prefund","type":"uint256","internalType":"uint256"},{"name":"contextOffset","type":"uint256","internalType":"uint256"},{"name":"preOpGas","type":"uint256","internalType":"uint256"}]},{"name":"validatePaymasterPrepayment","type":"bool","internalType":"bool"}],"outputs":[{"name":"validationData","type":"uint256","internalType":"uint256"},{"name":"paymasterValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterVerificationGasLimit","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"addStake","inputs":[{"name":"unstakeDelaySec","type":"uint32","internalType":"uint32"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"binarySearchCallGas","inputs":[{"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":"entryPoint","type":"address","internalType":"address"},{"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":"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":"entryPoint","type":"address","internalType":"address"},{"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":"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":"entryPoint","type":"address","internalType":"address"},{"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":"delegateAndRevert","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"depositTo","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getDepositInfo","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"info","type":"tuple","internalType":"struct IStakeManager.DepositInfo","components":[{"name":"deposit","type":"uint256","internalType":"uint256"},{"name":"staked","type":"bool","internalType":"bool"},{"name":"stake","type":"uint112","internalType":"uint112"},{"name":"unstakeDelaySec","type":"uint32","internalType":"uint32"},{"name":"withdrawTime","type":"uint48","internalType":"uint48"}]}],"stateMutability":"view"},{"type":"function","name":"getDomainSeparatorV4","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getNonce","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"key","type":"uint192","internalType":"uint192"}],"outputs":[{"name":"nonce","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPackedUserOpTypeHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"getSenderAddress","inputs":[{"name":"initCode","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getUserOpHash","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"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"handleAggregatedOps","inputs":[{"name":"","type":"tuple[]","internalType":"struct IEntryPoint.UserOpsPerAggregator[]","components":[{"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":"aggregator","type":"address","internalType":"contract IAggregator"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"handleOps","inputs":[{"name":"","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":"","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"incrementNonce","inputs":[{"name":"key","type":"uint192","internalType":"uint192"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"innerHandleOp","inputs":[{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"opInfo","type":"tuple","internalType":"struct EntryPoint.UserOpInfo","components":[{"name":"mUserOp","type":"tuple","internalType":"struct EntryPoint.MemoryUserOp","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"verificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"callGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterVerificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterPostOpGasLimit","type":"uint256","internalType":"uint256"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"paymaster","type":"address","internalType":"address"},{"name":"maxFeePerGas","type":"uint256","internalType":"uint256"},{"name":"maxPriorityFeePerGas","type":"uint256","internalType":"uint256"}]},{"name":"userOpHash","type":"bytes32","internalType":"bytes32"},{"name":"prefund","type":"uint256","internalType":"uint256"},{"name":"contextOffset","type":"uint256","internalType":"uint256"},{"name":"preOpGas","type":"uint256","internalType":"uint256"}]},{"name":"context","type":"bytes","internalType":"bytes"},{"name":"preGas","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"actualGasCost","type":"uint256","internalType":"uint256"},{"name":"paymasterPostOpGasLimit","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"nonceSequenceNumber","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint192","internalType":"uint192"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"senderCreator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ISenderCreator"}],"stateMutability":"view"},{"type":"function","name":"simulateCall","inputs":[{"name":"entryPoint","type":"address","internalType":"address"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"gas","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"},{"name":"result","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"simulateCallAndRevert","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"gas","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"simulateHandleOp","inputs":[{"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":"simulateHandleOpSingle","inputs":[{"name":"op","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":"target","type":"address","internalType":"address"},{"name":"targetCallData","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":"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":"function","name":"simulateValidation","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"}]}],"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":"function","name":"unlockStake","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawStake","inputs":[{"name":"withdrawAddress","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawTo","inputs":[{"name":"withdrawAddress","type":"address","internalType":"address payable"},{"name":"withdrawAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AccountDeployed","inputs":[{"name":"userOpHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"factory","type":"address","indexed":false,"internalType":"address"},{"name":"paymaster","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BeforeExecution","inputs":[],"anonymous":false},{"type":"event","name":"Deposited","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"totalDeposit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"EIP712DomainChanged","inputs":[],"anonymous":false},{"type":"event","name":"PostOpRevertReason","inputs":[{"name":"userOpHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"nonce","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"revertReason","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"SignatureAggregatorChanged","inputs":[{"name":"aggregator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"StakeLocked","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"totalStaked","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"StakeUnlocked","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"withdrawTime","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"StakeWithdrawn","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"withdrawAddress","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"UserOperationEvent","inputs":[{"name":"userOpHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"paymaster","type":"address","indexed":true,"internalType":"address"},{"name":"nonce","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"success","type":"bool","indexed":false,"internalType":"bool"},{"name":"actualGasCost","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"actualGasUsed","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"UserOperationPrefundTooLow","inputs":[{"name":"userOpHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"nonce","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"UserOperationRevertReason","inputs":[{"name":"userOpHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"nonce","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"revertReason","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Withdrawn","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"withdrawAddress","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"CallPhaseReverted","inputs":[{"name":"reason","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"DelegateAndRevert","inputs":[{"name":"success","type":"bool","internalType":"bool"},{"name":"ret","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"FailedOp","inputs":[{"name":"opIndex","type":"uint256","internalType":"uint256"},{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"FailedOpWithRevert","inputs":[{"name":"opIndex","type":"uint256","internalType":"uint256"},{"name":"reason","type":"string","internalType":"string"},{"name":"inner","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"InvalidShortString","inputs":[]},{"type":"error","name":"PostOpReverted","inputs":[{"name":"returnData","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SenderAddressResult","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"SignatureValidationFailed","inputs":[{"name":"aggregator","type":"address","internalType":"address"}]},{"type":"error","name":"StringTooLong","inputs":[{"name":"str","type":"string","internalType":"string"}]},{"type":"error","name":"innerCallResult","inputs":[{"name":"remainingGas","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x610180604052346101b8576040516100186040826101eb565b600781526020810190664552433433333760c81b82526040519161003d6040846101eb565b600183526020830191603160f81b83526100568161020e565b61012052610063846103a9565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a081526100cc60c0826101eb565b5190206080523060c05230610160526040516100e7816101bc565b5f815260208101905f8252806020604051610101816101bc565b5f81520152600480546001600160a01b0319169055516005555160065560405161567c90816104e28239608051816132ab015260a05181613368015260c0518161327c015260e051816132fa01526101005181613320015261012051816113630152610140518161138c0152610160518181816130bc015281816135050152818161355f01528181613747015281816137fb015281816138540152818161396401528181613a1801528181613a710152613b810152f35b5f80fd5b604081019081106001600160401b038211176101d757604052565b634e487b7160e01b5f52604160045260245ffd5b601f909101601f19168101906001600160401b038211908210176101d757604052565b908151602081105f14610288575090601f815111610248576020815191015160208210610239571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b0381116101d757600254600181811c9116801561039f575b602082101461038b57601f8111610358575b50602092601f82116001146102f757928192935f926102ec575b50508160011b915f199060031b1c19161760025560ff90565b015190505f806102d3565b601f1982169360025f52805f20915f5b8681106103405750836001959610610328575b505050811b0160025560ff90565b01515f1960f88460031b161c191690555f808061031a565b91926020600181928685015181550194019201610307565b60025f52601f60205f20910160051c810190601f830160051c015b81811061038057506102b9565b5f8155600101610373565b634e487b7160e01b5f52602260045260245ffd5b90607f16906102a7565b908151602081105f146103d4575090601f815111610248576020815191015160208210610239571790565b6001600160401b0381116101d757600354600181811c911680156104d7575b602082101461038b57601f81116104a4575b50602092601f821160011461044357928192935f92610438575b50508160011b915f199060031b1c19161760035560ff90565b015190505f8061041f565b601f1982169360035f52805f20915f5b86811061048c5750836001959610610474575b505050811b0160035560ff90565b01515f1960f88460031b161c191690555f8080610466565b91926020600181928685015181550194019201610453565b60035f52601f60205f20910160051c810190601f830160051c015b8181106104cc5750610405565b5f81556001016104bf565b90607f16906103f356fe60806040526004361015610022575b3615610018575f80fd5b6100206131b5565b005b5f3560e01c80630396cb601461021c57806309ccb880146102175780630bd28e3b146102125780630da826611461020d57806313c65a6e14610208578063154e58dc146102035780631b2e01b8146101fe578063205c2878146101f9578063212eccc6146101f457806321e60b37146101ef57806322cdde4c146101ea57806335567e1a146101e557806344403473146101e05780635287ce12146101db57806369683cfa146101d657806370a08231146101d1578063765e827f1461018b5780637da0c462146101cc57806384b0196e146101c7578063850aaf62146101c25780639b249f69146101bd578063acbe911e146101b8578063aec321fb146101b3578063af324943146101ae578063b760faf9146101a9578063bb9fe6bf146101a4578063c23a5cea1461019f578063c3bce0091461019a578063c579f76b14610195578063d72f259314610190578063dbed18e01461018b5763f7e426e80361000e57611b41565b6110fd565b611b21565b611a01565b6119e3565b6118c0565b61179d565b61177d565b61170c565b6116b5565b611581565b6114a0565b611464565b61134b565b611173565b611089565b610eb0565b610da3565b610d5e565b610c82565b610c6a565b610ba5565b610a5c565b610825565b6107c8565b61078e565b61076c565b610649565b61045a565b610419565b602036600319011261040b5760043563ffffffff81169081810361040b576104067fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c01916103e86102da6102ca610282336001600160a01b03165f525f60205260405f2090565b9661028e811515611b7a565b6102bb6001890154916102b46102ab8463ffffffff9060781c1690565b63ffffffff1690565b1115611bc5565b60081c6001600160701b031690565b6001600160701b03349116611c46565b946102e6861515611c53565b6102f96001600160701b03871115611c9e565b5461030261055e565b908152600160208201526001600160701b038616604082015263ffffffff831660608201525f6080820152610347336001600160a01b03165f525f60205260405f2090565b81518155602082015160019091018054604084015160608501516080909501517fffffffffffffff0000000000000000000000000000000000000000000000000090921660ff941515949094169390931760089390931b6effffffffffffffffffffffffffff00169290921760789390931b72ffffffff000000000000000000000000000000169290921760989190911b65ffffffffffff60981b16179055565b6040805194855263ffffffff90911660208501523393918291820190565b0390a2005b5f80fd5b5f91031261040b57565b3461040b575f36600319011261040b576020610433611cf4565b6001600160a01b0360405191168152f35b602435906001600160c01b038216820361040b57565b3461040b57602036600319011261040b576004356001600160c01b038116810361040b576104a490335f52600160205260405f20906001600160c01b03165f5260205260405f2090565b6104ae8154611d69565b9055005b634e487b7160e01b5f52604160045260245ffd5b60a0810190811067ffffffffffffffff8211176104e257604052565b6104b2565b6060810190811067ffffffffffffffff8211176104e257604052565b610140810190811067ffffffffffffffff8211176104e257604052565b6040810190811067ffffffffffffffff8211176104e257604052565b90601f8019910116810190811067ffffffffffffffff8211176104e257604052565b6040519061056d60a08361053c565b565b6040519061056d6101408361053c565b6040519061056d6101008361053c565b6040519061056d60408361053c565b6040519061056d60608361053c565b6040519061056d6101208361053c565b67ffffffffffffffff81116104e257601f01601f191660200190565b9291926105e5826105bd565b916105f3604051938461053c565b82948184528183011161040b578281602093845f960137010152565b9080601f8301121561040b5781602061062a933591016105d9565b90565b6001600160a01b0381160361040b57565b359061056d8261062d565b3461040b5761022036600319011261040b5760043567ffffffffffffffff811161040b5761067b90369060040161060f565b3660231901906101c0821261040b576101406040519261069a846104c6565b1261040b576106a761056f565b6106b1602461063e565b815260443560208201526064356040820152608435606082015260a435608082015260c43560a082015260e43560c08201526106ee61010461063e565b60e0820152610124356101008201526101443561012082015282526101643560208301526101843560408301526101a43560608301526101c43560808301526101e4359067ffffffffffffffff821161040b5760409261075561076093369060040161060f565b906102043592611d77565b82519182526020820152f35b3461040b575f36600319011261040b576020610786613272565b604051908152f35b3461040b575f36600319011261040b5760206040517f29a0bca4af4be3421398da00295e58e6d7de38cb492214754cb6a47507dd6f8e8152f35b3461040b57604036600319011261040b57602061081c6004356107ea8161062d565b6001600160a01b036107fa610444565b91165f526001835260405f20906001600160c01b03165f5260205260405f2090565b54604051908152f35b3461040b57604036600319011261040b576004356108428161062d565b602435335f525f60205260405f20918254908183116108c6575f8080856001600160a01b03829589610877846100209a611fea565b9055604080516001600160a01b03831681526020810185905233917fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb91a2165af16108c061200b565b5061203a565b606460405162461bcd60e51b815260206004820152601960248201527f576974686472617720616d6f756e7420746f6f206c61726765000000000000006044820152fd5b9181601f8401121561040b5782359167ffffffffffffffff831161040b576020808501948460051b01011161040b57565b908161012091031261040b5790565b60c060031982011261040b5760043567ffffffffffffffff811161040b57816109759160040161090a565b929092916024359067ffffffffffffffff821161040b576109989160040161093b565b906044356109a58161062d565b90606435906084359060a43590565b634e487b7160e01b5f52602160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6020815281516002811015610a5757602082015260a0604080610a3b8160208701518582880152805160c08801526020810151151560e0880152015160606101008701526101208601906109c8565b9401518051606085015260208101516080850152015191015290565b6109b4565b3461040b57610aa3610a97610a89610a733661094a565b9691949095610a839493946120a3565b5061338e565b610a928161341b565b6134ad565b604051918291826109ec565b0390f35b61020060031982011261040b576004359160243567ffffffffffffffff811161040b5782610ad79160040161093b565b916043190160446101c0821261040b5761014060405192610af7846104c6565b1261040b576101a090610b0861056f565b610b118261063e565b81526020820135602082015260408201356040820152606082013560608201526080820135608082015260a082013560a082015260c082013560c0820152610b5b60e0830161063e565b60e082015261010082013561010082015261012082013561012082015283526101408101356020840152610160810135604084015261018081013560608401520135608082015290565b3461040b576060610bb536610aa7565b905f926001600160a01b0360e08451610bce8186613c91565b610bd7856120e4565b6020870152610c0781610100604082015160608301510160808301510160a08301510160c0830151019101510290565b6040870152015116610c2b575b505050604051905f825260208201525f6040820152f35b610c359350613d7f565b90505f8080610c14565b602060031982011261040b576004359067ffffffffffffffff821161040b5761062a9160040161093b565b3461040b576020610786610c7d36610c3f565b6120e4565b3461040b57604036600319011261040b576020600435610ca18161062d565b6001600160a01b03610cb1610444565b91165f5260018252610cd78160405f20906001600160c01b03165f5260205260405f2090565b546040805192901b67ffffffffffffffff1916178152f35b9181601f8401121561040b5782359167ffffffffffffffff831161040b576020838186019501011161040b57565b90606060031983011261040b57600435610d368161062d565b916024359067ffffffffffffffff821161040b57610d5691600401610cef565b909160443590565b3461040b575f8080610d6f36610d1d565b939181604094929451948592833781018381520393f1610d8d61200b565b9015610d9557005b805190811561040b57602001fd5b3461040b57602036600319011261040b576001600160a01b03600435610dc88161062d565b5f6080604051610dd7816104c6565b8281528260208201528260408201528260608201520152165f525f602052610aa360405f20610e5c65ffffffffffff600160405193610e15856104c6565b80548552015460ff8116151560208501526001600160701b038160081c16604085015263ffffffff8160781c16606085015260981c16608083019065ffffffffffff169052565b60405191829182919091608065ffffffffffff8160a0840195805185526020810151151560208601526001600160701b03604082015116604086015263ffffffff6060820151166060860152015116910152565b3461040b57610ebe36610aa7565b9190915a92815193610ed08583613c91565b610ed9826120e4565b6020840152604085015193610f256effffffffffffffffffffffffffffff8660c08901511760608901511760808901511760a08901511761010089015117610120890151171115612223565b610f5086610100604082015160608301510160808301510160a08301510160c0830151019101510290565b94610f85610f81610f645a89898988614024565b986020610f7882516001600160a01b031690565b91015190614107565b1590565b611034575a830311610fe2575092610fc6926080610fc19360a0610fcd975a9560408601526060808601525a9003910135019101525a90611fea565b61226f565b6064900490565b604080519283525f6020840152820152606090f35b60408051631101335b60e11b815260048101929092526024820152601e60448201527f41413236206f76657220766572696669636174696f6e4761734c696d69740000606482015280608481015b0390fd5b61103082604051918291631101335b60e11b835260048301608091815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b3461040b57602036600319011261040b576001600160a01b036004356110ae8161062d565b165f525f602052602060405f2054604051908152f35b604060031982011261040b576004359067ffffffffffffffff821161040b576110ef9160040161090a565b909160243561062a8161062d565b3461040b5761110b366110c4565b91612285565b61012060e061062a936020845280516020850152602081015160408501526040810151606085015260608101516080850152608081015160a085015260a081015160c085015260c08101511515828501520151916101008082015201906109c8565b3461040b57606036600319011261040b5760043567ffffffffffffffff811161040b576111a490369060040161093b565b6024356111b08161062d565b6044359167ffffffffffffffff831161040b576111d4610aa393369060040161060f565b916111dd6122f7565b506111e6614155565b6111ee612450565b926111f88361341b565b6112028484612bd4565b9091945a6060880151886112196060850185612505565b94905f60038711611343575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b0361132b57506112959450611290602083015191611282604051938492638dd7712f60e01b6020850152602484016142e3565b03601f19810183528261053c565b611d77565b9290965b5f946060966001600160a01b038116611300575b50509560806112e796970151976112c261057f565b988952602089015260408801526060870152608086015260a0850152151560c0840152565b60e08201526112f46141c9565b60405191829182611111565b6112e797505f92965090829182602083519301915af195608061132161200b565b97959197966112ad565b611290915061133b9536916105d9565b929096611299565b508035611225565b3461040b575f36600319011261040b5761140b6113877f0000000000000000000000000000000000000000000000000000000000000000615374565b6113b07f000000000000000000000000000000000000000000000000000000000000000061545a565b60206040516113bf828261053c565b5f81528161141981830194601f1983013687376040519788977f0f00000000000000000000000000000000000000000000000000000000000000895260e0858a015260e08901906109c8565b9087820360408901526109c8565b914660608701523060808701525f60a087015285830360c087015251918281520192915f5b82811061144d57505050500390f35b83518552869550938101939281019260010161143e565b3461040b57604036600319011261040b5761148060043561062d565b60243567ffffffffffffffff811161040b57610020903690600401610cef565b3461040b57602036600319011261040b5760043567ffffffffffffffff811161040b5760206114d6611506923690600401610cef565b906001600160a01b036114e7611cf4565b16905f604051809681958294632b870d1b60e11b8452600484016124f4565b03925af1801561157c576001600160a01b03915f9161154d575b507f6ca7b806000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b61156f915060203d602011611575575b611567818361053c565b8101906124bf565b5f611520565b503d61155d565b611ce9565b3461040b57610aa3610a976115953661094a565b95949094939193612585565b604060031982011261040b5760043567ffffffffffffffff811161040b57816115cc9160040161090a565b929092916024359067ffffffffffffffff821161040b5761062a9160040161093b565b61062a9060208152610100608061164881865161014060208701528051610160870152602081015161018087015260408101516101a087015260608101516101c0870152015160a06101e08601526102008501906109c8565b60208087015180516040870152015160608501529461167860408201518386019060208091805184520151910152565b6060810151805160c08601526020015160e0850152015191019080516001600160a01b031682526020908101518051828401520151604090910152565b3461040b576116c3366115a1565b91906116cd612652565b505f5b8181106116ef57610aa36116e3856129c0565b604051918291826115ef565b8061170561170060019385876126e8565b6129c0565b50016116d0565b3461040b5761171a366115a1565b91906117246122f7565b506020905f5b81811061175757610aa36112f4866040519061174760208361053c565b5f82526117526122f7565b612345565b8061177661176860019385886126e8565b60405190611747878361053c565b500161172a565b602036600319011261040b576100206004356117988161062d565b612710565b3461040b575f36600319011261040b57335f525f602052600160405f2001805463ffffffff8160781c161561187c576118056117f76102ab836117eb6117e661183f9660ff1690565b612769565b60781c63ffffffff1690565b65ffffffffffff42166127b4565b82547fffffffffffffff000000000000ffffffffffffffffffffffffffffffffffff001665ffffffffffff60981b609883901b1617909255565b60405165ffffffffffff909116815233907ffa9b3c14cc825c412c9ed81b3ba365a5b459439403f18829e572ed53a4180f0a908060208101610406565b606460405162461bcd60e51b815260206004820152600a60248201527f6e6f74207374616b6564000000000000000000000000000000000000000000006044820152fd5b3461040b57602036600319011261040b576100205f8080806004356118e48161062d565b6001600160a01b036001611908336001600160a01b03165f525f60205260405f2090565b019161199683549361196e65ffffffffffff61195a611940611934896001600160701b039060081c1690565b6001600160701b031690565b9761194c8915156127d2565b60981c65ffffffffffff1690565b1661196681151561281d565b421015612868565b80547fffffffffffffff000000000000000000000000000000000000000000000000ff169055565b604080516001600160a01b03831681526020810185905233917fb7c918e0e249f999e965cafeb6c664271b3f4317d296461500e71da39f0cbda391a2165af16119dd61200b565b506128b3565b3461040b57610aa36116e361170036610c3f565b8015150361040b57565b3461040b5761022036600319011261040b5760043560243567ffffffffffffffff811161040b57611a3690369060040161093b565b3660431901916101c0831261040b5761014060405193611a55856104c6565b1261040b57610aa392611b0492611a6a61056f565b611a74604461063e565b81526064356020820152608435604082015260a435606082015260c435608082015260e43560a08201526101043560c0820152611ab261012461063e565b60e0820152610144356101008201526101643561012082015282526101843560208301526101a43560408301526101c43560608301526101e43560808301526102043592611aff846119f7565b612da5565b604080519384526020840192909252908201529081906060820190565b3461040b57610aa3610a97611b353661094a565b95949094939193612f0e565b3461040b57611b5b611b5236610d1d565b92919091613067565b90610aa3604051928392151583526040602084015260408301906109c8565b15611b8157565b606460405162461bcd60e51b815260206004820152601a60248201527f6d757374207370656369667920756e7374616b652064656c61790000000000006044820152fd5b15611bcc57565b606460405162461bcd60e51b815260206004820152601c60248201527f63616e6e6f7420646563726561736520756e7374616b652074696d65000000006044820152fd5b634e487b7160e01b5f52601160045260245ffd5b906113888201809211611c3357565b611c10565b9060018201809211611c3357565b91908201809211611c3357565b15611c5a57565b606460405162461bcd60e51b815260206004820152601260248201527f6e6f207374616b652073706563696669656400000000000000000000000000006044820152fd5b15611ca557565b606460405162461bcd60e51b815260206004820152600e60248201527f7374616b65206f766572666c6f770000000000000000000000000000000000006044820152fd5b6040513d5f823e3d90fd5b6040517f09ccb880000000000000000000000000000000000000000000000000000000008152602081600481305afa90811561157c575f91611d34575090565b90506020813d602011611d61575b81611d4f6020938361053c565b8101031261040b575161062a8161062d565b3d9150611d42565b5f198114611c335760010190565b9392909193825190606082015181519081611f64575b505050505a9003608082015101925f935a91835191611dab836144e4565b92611dc060e08201516001600160a01b031690565b91611dd660808801518203606084015190614536565b01925f926001600160a01b0381169081611e7b5750505090611e036040949392516001600160a01b031690565b945b5a9003010102920151908282105f14611e4957611e215f6131eb565b7fdeadaa51000000000000000000000000000000000000000000000000000000005f5260205ffd5b82611e6d9203906001600160a01b03165f525f60205260405f209081540180915590565b50611e775f6131eb565b9190565b96928251611e92575b505050906040939291611e05565b919950949392505a98611ea45f6131eb565b60a05a920195865191813b1561040b578692835f809489611ef7604051988997889687947f7c627b21000000000000000000000000000000000000000000000000000000008652029086600486016131f5565b0393f19081611f4a575b50611f2a57611030611f116131be565b6040519182916365c8fd4d60e01b835260048301613227565b604094611f40915a9003995a9003905190614536565b9192935f80611e84565b80611f585f611f5e9361053c565b8061040f565b5f611f01565b5f80949360206001600160a01b0383965116910192f115611f88575f808080611d8d565b611030611f936131be565b6040519182917f462c71b20000000000000000000000000000000000000000000000000000000083526020600484015260248301906109c8565b600319810191908211611c3357565b5f19810191908211611c3357565b91908203918211611c3357565b6040519061200660208361053c565b5f8252565b3d15612035573d9061201c826105bd565b9161202a604051938461053c565b82523d5f602084013e565b606090565b1561204157565b606460405162461bcd60e51b815260206004820152601260248201527f6661696c656420746f20776974686472617700000000000000000000000000006044820152fd5b60405190612092826104e7565b5f6040838281528260208201520152565b604051906120b0826104e7565b815f81526040516120c0816104e7565b5f81525f602082015260606040820152602082015260406120df612085565b910152565b61062a906120f181613eae565b6120f9613272565b916121c78135926121098461062d565b60208301359080156122035761128290935b61213161212b6060830183612505565b906155e4565b90608081013560a08201359061215361212b60c08501359460e0810190612505565b93604051988997602089019b8c94919261010096939998979491996001600160a01b0361012088019b7f29a0bca4af4be3421398da00295e58e6d7de38cb492214754cb6a47507dd6f8e895216602088015260408701526060860152608085015260a084015260c083015260e08201520152565b51902090604291604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b506112826122146040850185612505565b9081604051918237209361211b565b1561222a57565b60405162461bcd60e51b815260206004820152601860248201527f41413934206761732076616c756573206f766572666c6f7700000000000000006044820152606490fd5b90607382029180830460731490151715611c3357565b61228d614155565b608460405162461bcd60e51b815260206004820152602760248201527f53484f554c44204e4f542042452043414c4c454420445552494e472053494d5560448201527f4c4154494f4e53000000000000000000000000000000000000000000000000006064820152fd5b60405190610100820182811067ffffffffffffffff8211176104e257604052606060e0835f81525f60208201525f60408201525f838201525f60808201525f60a08201525f60c08201520152565b509050612350614155565b608061235a612450565b916123648161341b565b61236e8382612bd4565b929091905a6060870151876123866060850185612505565b94905f60038711612448575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b0361243057506123ef9450611290602083015191611282604051938492638dd7712f60e01b6020850152602484016142e3565b9490955b0151946123fe61057f565b958652602086015260408501526060840152608083015260a08201525f60c0820152606060e08201529061056d6141c9565b61129091506124409536916105d9565b9490956123f3565b508035612392565b6040519061245d826104c6565b5f60808360405161246d81610503565b83815283602082015283604082015283606082015283838201528360a08201528360c08201528360e0820152836101008201528361012082015281528260208201528260408201528260608201520152565b9081602091031261040b575161062a8161062d565b908060209392818452848401375f828201840152601f01601f1916010190565b91602061062a9381815201916124d4565b903590601e198136030182121561040b570180359067ffffffffffffffff821161040b5760200191813603831361040b57565b6040519061254760208361053c565b5f808352366020840137565b9061255d826105bd565b61256a604051918261053c565b828152809261257b601f19916105bd565b0190602036910137565b959493929190956125946120a3565b506125a26060830183612505565b9050156125d85761062a966125b69161338e565b6125d06125c1612450565b6125ca8361341b565b82612bd4565b5050506137c1565b505050505050506125e7612538565b604051906125f4826104e7565b5f82525f6020830152604082015260405161260e816104e7565b5f81525f60208201525f60408201526040519161262a836104e7565b5f83526020830152604082015290565b6040519061264782610520565b5f6020838281520152565b6040519061265f826104c6565b8160405161266c816104c6565b5f81525f60208201525f60408201525f606082015260606080820152815261269261263a565b602082015261269f61263a565b60408201526126ac61263a565b60608201526080604051916126c083610520565b5f83526126cb61263a565b60208401520152565b634e487b7160e01b5f52603260045260245ffd5b919081101561270b5760051b8101359061011e198136030182121561040b570190565b6126d4565b7f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c460206001600160a01b0361275d34856001600160a01b03165f525f60205260405f209081540180915590565b936040519485521692a2565b1561277057565b606460405162461bcd60e51b815260206004820152601160248201527f616c726561647920756e7374616b696e670000000000000000000000000000006044820152fd5b9065ffffffffffff8091169116019065ffffffffffff8211611c3357565b156127d957565b606460405162461bcd60e51b815260206004820152601460248201527f4e6f207374616b6520746f2077697468647261770000000000000000000000006044820152fd5b1561282457565b606460405162461bcd60e51b815260206004820152601d60248201527f6d7573742063616c6c20756e6c6f636b5374616b6528292066697273740000006044820152fd5b1561286f57565b606460405162461bcd60e51b815260206004820152601b60248201527f5374616b65207769746864726177616c206973206e6f742064756500000000006044820152fd5b156128ba57565b606460405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f207769746864726177207374616b6500000000000000006044820152fd5b9060141161040b5790601490565b909291928360141161040b57831161040b57601401916013190190565b909291928360341161040b57831161040b57603401916033190190565b356bffffffffffffffffffffffff19811692919060148210612966575050565b6bffffffffffffffffffffffff1960149290920360031b82901b16169150565b6040519061299382610520565b6004546001600160a01b031682526040516020836129b083610520565b6005548352600654828401520152565b6129c8612652565b506129d1612450565b906129db8161341b565b6129e58282612bd4565b509190926129f383856142fa565b612a10612a0b60e0835101516001600160a01b031690565b6144a4565b91612a3e612a2a612a0b84516001600160a01b0390511690565b91612a3361263a565b506040810190612505565b9060148210612b1957612a60612a5a612a6693612a0b936128fe565b90612946565b60601c90565b916001600160a01b038616946080820151966060604084015193015192612a8b61055e565b9889526020890152604088015260608701526080860152612aaa612986565b9380151580612b0e575b612adc575b50612ac261055e565b948552602085015260408401526060830152608082015290565b909350612ae8816144a4565b612b02612af361058f565b6001600160a01b039093168352565b6020820152925f612ab9565b506001811415612ab4565b5050612a665f6144a4565b15612b2c5750565b60405190631101335b60e11b82526004820152604060248201528061103060448201604090601881527f41413934206761732076616c756573206f766572666c6f77000000000000000060208201520190565b15612b875750565b60408051631101335b60e11b815260048101929092526024820152601a60448201527f4141323520696e76616c6964206163636f756e74206e6f6e63650000000000006064820152608490fd5b9190915f915a93805192612be88482613c91565b612c01604051612bf7836120e4565b6020850152604052565b604084015195612c495f6effffffffffffffffffffffffffffff8960c08901511760608901511760808901511760a08901511761010089015117610120890151171115612b24565b612c94612c7786610100604082015160608301510160808301510160a08301510160c0830151019101510290565b806040860152612c8b608085013560801c90565b9085855f614024565b96612cbd5f612cb8612cad89516001600160a01b031690565b60208a015190614107565b612b7f565b5a820311612d52576060946001600160a01b03612ce560e05a9301516001600160a01b031690565b16151580612d4a575b612d1c575b60809291612d0a610fc6610fc160a0945a90611fea565b9660608601525a900391013501910152565b9450610fc195509060a0608092612d0a610fc6612d3a87865f613d7f565b9a90999450505050919250612cf3565b506001612cee565b604051631101335b60e11b8152806110305f60048301608091815260406020820152601e60408201527f41413236206f76657220766572696669636174696f6e4761734c696d6974000060608201520190565b939092915f935a8251612db88184613c91565b612dd1604051612dc7856120e4565b6020870152604052565b604081015197612e19816effffffffffffffffffffffffffffff8b60c08601511760608601511760808601511760a08601511761010086015117610120860151171115612b24565b612e64612e4783610100604082015160608301510160808301510160a08301510160c0830151019101510290565b806040880152612e5b608087013560801c90565b90878785614024565b98612e8882612cb8612e7d86516001600160a01b031690565b602087015190614107565b5a840311610fe2576060966001600160a01b03612eb060e05a9501516001600160a01b031690565b1615159081612f06575b50612ed8575b5060809291612d0a610fc6610fc160a0945a90611fea565b610fc1975060a091965091612d0a610fc6612ef7878760809897613d7f565b9a909994505050509192612ec0565b90505f612eba565b95949392919095612f1d6120a3565b506014612f2d60e0840184612505565b905010612f685761062a96612f5a91610a83612f47612450565b612f52815187613c91565b5a9086613f41565b612f638161341b565b6139de565b50505050505050612f77612538565b60405190612f84826104e7565b5f82525f60208301526040820152612f9a61059e565b5f81525f60208201525f6040820152612fb161059e565b915f83526020830152604082015290565b6040906001600160a01b0361062a959316815281602082015201916124d4565b90815181101561270b570160200190565b919060408382031261040b57825161300a816119f7565b9260208101519067ffffffffffffffff821161040b570181601f8201121561040b57805190613038826105bd565b92613046604051948561053c565b8284526020838301011161040b57815f9260208093018386015e8301015290565b91925f936001600160a01b036060941691823b1561040b576130e5935f80946040518097819682957f850aaf620000000000000000000000000000000000000000000000000000000084526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048501612fc2565b0393f190816131a1575b5061318f5750506130fe61200b565b9060048251106131935761311a6131158351611fcd565b612553565b60045b8351811015613179578061315c61313660019387612fe2565b517fff000000000000000000000000000000000000000000000000000000000000001690565b61317261316883611fcd565b915f1a9185612fe2565b530161311d565b5061318f91925060208082518301019101612ff3565b9091565b905061319d612538565b5f91565b80611f585f6131af9361053c565b5f6130ef565b61056d33612710565b3d61080081116131e2575b604051906020818301016040528082525f602083013e90565b506108006131c9565b60031115610a5757565b90949392946003811015610a575760609261321d9183526080602084015260808301906109c8565b9460408201520152565b9060a061062a925f815260606020820152601460608201527f4141353020706f73744f70207265766572746564000000000000000000000000608082015281604082015201906109c8565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016301480613365575b156132cd577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815261335f60c08261053c565b51902090565b507f000000000000000000000000000000000000000000000000000000000000000046146132a4565b5f5b82811061339c57505050565b6001906133a7612450565b6133b28286866126e8565b6133bb8161341b565b6133c58282612bd4565b5050506133d56060820182612505565b90501561340a576133ee5f929160208493015190614555565b9082602083519301915af15061340261200b565b505b01613390565b5050613404565b3561062a8161062d565b61344e9061342c6040820182612505565b9161344681359161343c8361062d565b60e0810190612505565b9390926145ee565b80516134575750565b61103090604051918291631101335b60e11b83525f60048401526040602484015260448301906109c8565b9392916134a8906001600160a01b036040931686526060602087015260608601906109c8565b930152565b9390946134b86120a3565b508215613727576134f8926134cb611ff7565b50915f6134da5a88600361497f565b5a906040519687928392631efc84dd60e31b84528c60048501613482565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af190811561157c575f945f92613708575b508194809281156136e65750506135549095929394955b85611c46565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b8461358c8885611fea565b106136b7575a61359b88611c24565b1161365e5791889391879695935f8c8b6135cd6135c46135be886135ed9f611c46565b60011c90565b809a600361497f565b835a936040519e8f9586948593631efc84dd60e31b855260048501613482565b03925af198891561157c575f905f9a613637575b50156136225750505061361383611fdc565b95915b93949591929092613581565b93965093613631919750611c38565b94613616565b90506136569199503d805f833e61364e818361053c565b810190612ff3565b98905f613601565b50955093955050509350613670612538565b9261367961059e565b935f85525f6020860152604085015261369061059e565b928352602083015260408201526136a561059e565b60018152916020830152604082015290565b9650965050919550506136d991506136cd61059e565b93845215156020840152565b6040820152612f9a61059e565b965096505050945050506136d96136fb61059e565b5f81529215156020840152565b90945061371f91503d805f833e61364e818361053c565b90935f613537565b61373a92505a5f6134da5a88600361497f565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af192831561157c575f945f9461379f575b50839461378881935a90611fea565b9481156136e657505061355490959293949561354e565b9093506137b79194503d805f833e61364e818361053c565b939093925f613779565b9390946137cc6120a3565b508215613944576137ee926137df611ff7565b50915f6134da5a88600161497f565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af190811561157c575f945f92613925575b508194809281156136e657505061384990959293949585611c46565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846138818885611fea565b106136b7575a61389088611c24565b1161365e5791889391879695935f8c8b6135cd6138b36135be886138bc9f611c46565b809a600161497f565b03925af198891561157c575f905f9a613906575b50156138f1575050506138e283611fdc565b95915b93949591929092613876565b93965093613900919750611c38565b946138e5565b905061391d9199503d805f833e61364e818361053c565b98905f6138d0565b90945061393c91503d805f833e61364e818361053c565b90935f61382d565b61395792505a5f6134da5a88600161497f565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af192831561157c575f945f946139bc575b5083946139a581935a90611fea565b9481156136e657505061384990959293949561354e565b9093506139d49194503d805f833e61364e818361053c565b939093925f613996565b9390946139e96120a3565b508215613b6157613a0b926139fc611ff7565b50915f6134da5a88600261497f565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af190811561157c575f945f92613b42575b508194809281156136e6575050613a6690959293949585611c46565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b84613a9e8885611fea565b106136b7575a613aad88611c24565b1161365e5791889391879695935f8c8b6135cd613ad06135be88613ad99f611c46565b809a600261497f565b03925af198891561157c575f905f9a613b23575b5015613b0e57505050613aff83611fdc565b95915b93949591929092613a93565b93965093613b1d919750611c38565b94613b02565b9050613b3a9199503d805f833e61364e818361053c565b98905f613aed565b909450613b5991503d805f833e61364e818361053c565b90935f613a4a565b613b7492505a5f6134da5a88600261497f565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af192831561157c575f945f94613bd9575b508394613bc281935a90611fea565b9481156136e6575050613a6690959293949561354e565b909350613bf19194503d805f833e61364e818361053c565b939093925f613bb3565b15613c0257565b606460405162461bcd60e51b815260206004820152601d60248201527f4141393320696e76616c6964207061796d6173746572416e64446174610000006044820152fd5b15613c4d57565b606460405162461bcd60e51b815260206004820152601660248201527f4141393820696e76616c6964207061796d6173746572000000000000000000006044820152fd5b613d2890613cae613ca182613411565b6001600160a01b03168452565b60208101356020840152613cdb6080820135906fffffffffffffffffffffffffffffffff8260801c921690565b6060850152604084015260a081013560c0840152613d1260c0820135906fffffffffffffffffffffffffffffffff8260801c921690565b61010085015261012084015260e0810190612505565b80929192613d3557505050565b613d518161056d94613d4c603460e0951015613bfb565b614bbb565b60a0850152608084015291613d706001600160a01b0384161515613c46565b01906001600160a01b03169052565b9290925a938351613da26001600160a01b0360e083015116604087015190614bf3565b15613e3a57906080613db992015194859184614c85565b9390945a900311613dc75750565b60408051631101335b60e11b815260048101929092526024820152602760448201527f41413336206f766572207061796d6173746572566572696669636174696f6e4760648201527f61734c696d697400000000000000000000000000000000000000000000000000608482015260a490fd5b60848360405190631101335b60e11b8252600482015260406024820152601e60448201527f41413331207061796d6173746572206465706f73697420746f6f206c6f7700006064820152fd5b909280926014946bffffffffffffffffffffffff199060601b1683528483013701015f815290565b613ebb6040820182612505565b9091613eca610f818385614d7a565b613f3a57613eda613edf91613411565b614dbc565b9160148211613f1657505060405161335f816112826020820194856014916bffffffffffffffffffffffff199060601b1681520190565b8161335f92613f249261290c565b9190611282604051938492602084019687613e86565b5050505f90565b9291613f85908251926001600160a01b0360e08186511695613f71613f6960408b018b612505565b90865f614ec0565b015116905f91159687613ff1575b5f61526d565b92613f8d5750565b5f613f9791614bf3565b15613f9e57565b604051631101335b60e11b8152806110305f60048301608091815260406020820152601760408201527f41413231206469646e2774207061792070726566756e6400000000000000000060608201520190565b915061400d856001600160a01b03165f525f60205260405f2090565b54801561401d57505f5b91613f7f565b5f03614017565b9290949361406a908351936001600160a01b0360e0818751169661405661404e60408d018d612505565b90868c614ec0565b015116905f911598896140d2575b8761526d565b9461407457505050565b61407d91614bf3565b156140855750565b60408051631101335b60e11b815260048101929092526024820152601760448201527f41413231206469646e2774207061792070726566756e640000000000000000006064820152608490fd5b91506140ee866001600160a01b03165f525f60205260405f2090565b548581111561410057505f5b91614064565b85036140fa565b6001600160a01b03165f52600160205267ffffffffffffffff6141418260401c60405f20906001600160c01b03165f5260205260405f2090565b9182549261414e84611d69565b9055161490565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c6141a15760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d565b7f3ee5aeb5000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d565b9035601e198236030181121561040b57016020813591019167ffffffffffffffff821161040b57813603831361040b57565b61062a9161423e816142318461063e565b6001600160a01b03169052565b602082013560208201526142d46142c861428f61427461426160408701876141ee565b61012060408801526101208701916124d4565b61428160608701876141ee565b9086830360608801526124d4565b6080850135608085015260a085013560a085015260c085013560c08501526142ba60e08601866141ee565b9085830360e08701526124d4565b926101008101906141ee565b916101008185039101526124d4565b9291906134a8602091604086526040860190614220565b61430b6001600160a01b0391615512565b9116614451576143fe576143266001600160a01b0391615512565b91166143ab5761433257565b604051631101335b60e11b8152806110305f6004830160a091815260406020820152602160408201527f41413332207061796d61737465722065787069726564206f72206e6f7420647560608201527f650000000000000000000000000000000000000000000000000000000000000060808201520190565b604051631101335b60e11b8152806110305f60048301608091815260406020820152601460408201527f41413334207369676e6174757265206572726f7200000000000000000000000060608201520190565b604051631101335b60e11b8152806110305f60048301608091815260406020820152601760408201527f414132322065787069726564206f72206e6f742064756500000000000000000060608201520190565b604051631101335b60e11b8152806110305f60048301608091815260406020820152601460408201527f41413234207369676e6174757265206572726f7200000000000000000000000060608201520190565b906001600160a01b036144b561263a565b92165f525f60205263ffffffff600160405f2001546001600160701b038160081c16845260781c166020830152565b6101206101008201519101517f59e3bb5c9eacf8e7a9c3802366751badc68d4d97d3e35b1744045784c52f20dd5480155f14614530575048905b018082101561452b575090565b905090565b9061451e565b90619c40820181111561454f57606491600a9103020490565b50505f90565b919082356145628161062d565b9260608101638dd7712f60e01b7fffffffff0000000000000000000000000000000000000000000000000000000061459a8385612505565b9060035f92116145e5575b5016036145d0575061062a90611282604051938492638dd7712f60e01b6020850152602484016142e3565b61062a92506145de91612505565b36916105d9565b9050355f6145a5565b509291921590816146a3575b50614666576014811015614613575b505061062a611ff7565b60141161040b573560601c3b1561462b575f80614609565b60405161463960408261053c565b601b81527f41413330207061796d6173746572206e6f74206465706c6f7965640000000000602082015290565b505060405161467660408261053c565b601981527f41413230206163636f756e74206e6f74206465706c6f79656400000000000000602082015290565b90503b155f6145fa565b9190916101208184031261040b576146c36105ad565b926146cd8261063e565b845260208201356020850152604082013567ffffffffffffffff811161040b57816146f991840161060f565b6040850152606082013567ffffffffffffffff811161040b578161471e91840161060f565b60608501526080820135608085015260a082013560a085015260c082013560c085015260e082013567ffffffffffffffff811161040b578161476191840161060f565b60e085015261010082013567ffffffffffffffff811161040b57614785920161060f565b610100830152565b60041115610a5757565b916020936fffffffffffffffffffffffffffffffff198092603497946bffffffffffffffffffffffff199060601b1686521660148501521660248301528051928391018483015e01015f815290565b80516001600160a01b0316825261062a9160208201516020820152610100614867614837614825604086015161012060408701526101208601906109c8565b606086015185820360608701526109c8565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e08601526109c8565b920151906101008184039101526109c8565b60806101a09161012081516148978682516001600160a01b03169052565b602081015160208701526040810151604087015260608101516060870152838101518487015260a081015160a087015260c081015160c08701526148eb60e082015160e08801906001600160a01b03169052565b61010081015161010087015201516101208501526020810151610140850152604081015161016085015260608101516101808501520151910152565b61495661494b61020093969594965f845261022060208501526102208401906147e6565b956040830190614879565b0152565b6102009061495661494b5f9496959685845261022060208501526102208401906147e6565b91614988612450565b9261499336846146ad565b61499c8261478d565b60028214614ad7576149ad8261478d565b60038214614a595750806149c260019261478d565b14614a0c5760405162461bcd60e51b815260206004820152600c60248201527f496e76616c6964206d6f646500000000000000000000000000000000000000006044820152606490fd5b614a2161062a92602061128295015190614555565b9390916040519485937f4440347300000000000000000000000000000000000000000000000000000000602086015260248501613482565b9190506fffffffffffffffffffffffffffffffff614a97614a90608061062a9601356fffffffffffffffffffffffffffffffff1690565b9260801b90565b91161760808201526112826040519384927fc579f76b0000000000000000000000000000000000000000000000000000000060208501526024840161495a565b9161128291506fffffffffffffffffffffffffffffffff1984614b6360e061062a9701614b55614b10614b0a8386612505565b90614bbb565b9391905060609160e08b0196603488515111614b99575b505060405196879460801b16906fffffffffffffffffffffffffffffffff198960801b169060208601614797565b03601f19810184528361053c565b526040519485937f21e60b3700000000000000000000000000000000000000000000000000000000602086015260248501614927565b614bb39293506145de91614bac91612505565b8091612929565b905f80614b27565b90918260141161040b578135918360241161040b5760148101359360341161040b5760609290921c92608090811c9260240135901c90565b6001600160a01b03165f525f60205260405f20908154818110613f3a57039055600190565b614c3060409295949395606083526060830190614220565b9460208201520152565b60a09061062a9392815260606020820152600d60608201527f4141333320726576657274656400000000000000000000000000000000000000608082015281604082015201906109c8565b925f8091959392956040519682614cfa60e0602088015197614ceb8c614cdc6040840151602083019c8d997f52b7512c000000000000000000000000000000000000000000000000000000008b5260248501614c18565b038d601f19820190528d61053c565b5101516001600160a01b031690565b895193f1933d91825f833e51938151604083019687519015918215614d6e575b508115614d5c575b50614d375750601f909101601f191601604052565b614d3f6131be565b906110306040519283926365c8fd4d60e01b845260048401614c3a565b9050601f605f1985019101105f614d22565b6040141591505f614d1a565b90600211614db757356bffffffffffffffffffffffff19167f77020000000000000000000000000000000000000000000000000000000000001490565b505f90565b60175f80833c5f51907fef010000000000000000000000000000000000000000000000000000000000007fffffff0000000000000000000000000000000000000000000000000000000000831603614e315750612a60614e1f61062a9260181b90565b6bffffffffffffffffffffffff191690565b3b15614e7c5760405162461bcd60e51b815260206004820152601860248201527f6e6f7420616e204549502d373730322064656c656761746500000000000000006044820152606490fd5b606460405162461bcd60e51b815260206004820152601260248201527f73656e64657220686173206e6f20636f646500000000000000000000000000006044820152fd5b92909181614ecf575b50505050565b8251516001600160a01b031693614ee68383614d7a565b61518657843b61513957601483106150ec575f6020614f12614f06611cf4565b6001600160a01b031690565b60408751015160405180948193632b870d1b60e11b835282614f388b8b600484016124f4565b0393f190811561157c575f916150cd575b506001600160a01b038116958615615078576001600160a01b0316809603615023573b15614fd65750612a60612a5a7fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d93614fa3936128fe565b602083810151935160e00151604080516001600160a01b039485168152939091169183019190915290a35f808080614ec9565b60408051631101335b60e11b815260048101929092526024820152602060448201527f4141313520696e6974436f6465206d757374206372656174652073656e6465726064820152608490fd5b61103082604051918291631101335b60e11b835260048301608091815260406020820152602060408201527f4141313420696e6974436f6465206d7573742072657475726e2073656e64657260608201520190565b61103083604051918291631101335b60e11b835260048301608091815260406020820152601b60408201527f4141313320696e6974436f6465206661696c6564206f72204f4f47000000000060608201520190565b6150e6915060203d60201161157557611567818361053c565b5f614f49565b60408051631101335b60e11b815260048101929092526024820152601760448201527f4141393920696e6974436f646520746f6f20736d616c6c0000000000000000006064820152608490fd5b60408051631101335b60e11b815260048101929092526024820152601f60448201527f414131302073656e64657220616c726561647920636f6e7374727563746564006064820152608490fd5b5090601481116151965750505050565b806151b29160406151a8614f06611cf4565b955101519361290c565b9190833b1561040b575f80946151f896604051978896879586937fc09ad0d900000000000000000000000000000000000000000000000000000000855260048501612fc2565b0393f1801561157c5761520e575b808080614ec9565b80611f585f61521c9361053c565b5f615206565b60a09061062a9392815260606020820152600d60608201527f4141323320726576657274656400000000000000000000000000000000000000608082015281604082015201906109c8565b92916020959486926152d75f936152c961529082516001600160a01b0390511690565b976040519b8c930151888401957f19822f7c00000000000000000000000000000000000000000000000000000000875260248501614c18565b03601f1981018a528961053c565b8285895193f15f519460203d0361536c575b604052156152f5575050565b3b6153475760408051631101335b60e11b815260048101929092526024820152601960448201527f41413230206163636f756e74206e6f74206465706c6f796564000000000000006064820152608490fd5b61534f6131be565b906110306040519283926365c8fd4d60e01b845260048401615222565b5f91506152e9565b60ff81146153855761062a906155ef565b506040515f6002548060011c91600182168015615450575b60208410811461543c578385528492602084019190811561542357506001146153ce575b5061062a9250038261053c565b60025f90815291507f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5b84831061540c575061062a9350015f6153c1565b8054828401528593506020909201916001016153f8565b60ff191682525061062a93151560051b0190505f6153c1565b634e487b7160e01b5f52602260045260245ffd5b92607f169261539d565b60ff811461546b5761062a906155ef565b506040515f6003548060011c91600182168015615508575b60208410811461543c578385528492602084019190811561542357506001146154b3575061062a9250038261053c565b60035f90815291507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8483106154f1575061062a9350015f6153c1565b8054828401528593506020909201916001016154dd565b92607f1692615483565b80156155dd57615520612085565b5065ffffffffffff8160a01c169081156155cf575b6155b09061559761558c6040519461554c866104e7565b6001600160a01b038416865265ffffffffffff602087019460d01c1684526155806040870191829065ffffffffffff169052565b5165ffffffffffff1690565b65ffffffffffff1690565b42119081156155b3575b5091516001600160a01b031690565b91565b516155c6915065ffffffffffff1661558c565b4211155f6155a1565b65ffffffffffff9150615535565b505f905f90565b816040519182372090565b60ff811690601f821161561e576040519161560b60408461053c565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffdfea26469706673582212208ab1b0974d542f92d6d061c883628e71e92e632c91a62febb202a003e7efe01864736f6c634300081c0033","sourceMap":"971:17770:28:-:0;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;971:17770:28;;;;;;;;;:::i;:::-;1977:9:27;971:17770:28;;;1977:9:27;;;-1:-1:-1;;;1977:9:27;;3401:45:20;;;:::i;:::-;3393:53;;3467:51;;;:::i;:::-;3456:62;;971:17770:28;3542:22:20;;3528:36;;;;971:17770:28;3591:25:20;;3574:42;;;3644:13;3627:30;;971:17770:28;;4204:80:20;971:17770:28;4204:80:20;;2079:95;;;;971:17770:28;2079:95:20;;;;;;;3644:13;2079:95;;;;4278:4;3627:30;2079:95;;;3627:30;4204:80;;;;;;:::i;:::-;971:17770:28;4194:91:20;;2079:95;3667:48;4278:4;4204:80;3725:27;4278:4;1097::28;;971:17770;;;;;:::i;:::-;-1:-1:-1;971:17770:28;;;1216:29;;971:17770;-1:-1:-1;971:17770:28;;;;;;;;;:::i;:::-;-1:-1:-1;971:17770:28;;1172:74;971:17770;1172:74;971:17770;;-1:-1:-1;;;;;;971:17770:28;;;;;;;;;;;;;;;;;2079:95:20;971:17770:28;;;;;3627:30:20;971:17770:28;;;;;4204:80:20;971:17770:28;;;;;3528:36:20;971:17770:28;;;;;3574:42:20;971:17770:28;;;;;3393:53:20;971:17770:28;;;;;3456:62:20;971:17770:28;;;;;1097:4;971:17770;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;971:17770:28;;;;;;;:::o;:::-;;;;-1:-1:-1;971:17770:28;;;;;-1:-1:-1;971:17770:28;;;;;;-1:-1:-1;;971:17770:28;;;;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;:::o;2887:340:16:-;;971:17770:28;;3032:2:16;3010:24;;3006:215;3032:2;;;971:17770:28;;1854:2:16;971:17770:28;;1840:16:16;1836:72;;3032:2;971:17770:28;;;;2079:95:20;3032:2:16;971:17770:28;;;;1949:36:16;3050:27;:::o;971:17770:28:-;;;;3032:2:16;971:17770:28;;;;;1949:36:16;3050:27;:::o;1836:72::-;971:17770:28;3032:2:16;971:17770:28;;;1879:18:16;;;;;;;;;;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;1854:2:16;971:17770:28;-1:-1:-1;;971:17770:28;;;1879:18:16;;;;3006:215;-1:-1:-1;;;;;971:17770:28;;;;3432:13:20;971:17770:28;;;;;;;;;;;3006:215:16;3032:2;971:17770:28;;;;;;;;;;3006:215:16;971:17770:28;3032:2:16;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3432:13:20;971:17770:28;1390:66:16;3168:42;:::o;971:17770:28:-;;;;-1:-1:-1;971:17770:28;;;;;;;;;;3432:13:20;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;3432:13:20;971:17770:28;1390:66:16;3168:42;:::o;971:17770:28:-;;;;;;;;;;;;;;;;;;;;;;;3032:2:16;971:17770:28;;;;;;;;;;;;;;;;;3432:13:20;971:17770:28;;;3032:2:16;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2887:340:16;;971:17770:28;;3032:2:16;3010:24;;3006:215;3032:2;;;971:17770:28;;1854:2:16;971:17770:28;;1840:16:16;1836:72;;3032:2;971:17770:28;;;;2079:95:20;3032:2:16;971:17770:28;;;;1949:36:16;3050:27;:::o;3006:215::-;-1:-1:-1;;;;;971:17770:28;;;;3501:16:20;971:17770:28;;;;;;;;;;;3006:215:16;3032:2;971:17770:28;;;;;;;;;;3006:215:16;971:17770:28;3032:2:16;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;3501:16:20;971:17770:28;;;;;3501:16:20;971:17770:28;1390:66:16;3168:42;:::o;971:17770:28:-;;;;-1:-1:-1;971:17770:28;;;;;;;;;;3501:16:20;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;3501:16:20;971:17770:28;1390:66:16;3168:42;:::o;971:17770:28:-;;;;;;;3501:16:20;971:17770:28;;;;;;;;;;;;;;;3032:2:16;971:17770:28;;;;;;;;;;;;;;;;;3501:16:20;971:17770:28;;;3032:2:16;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610022575b3615610018575f80fd5b6100206131b5565b005b5f3560e01c80630396cb601461021c57806309ccb880146102175780630bd28e3b146102125780630da826611461020d57806313c65a6e14610208578063154e58dc146102035780631b2e01b8146101fe578063205c2878146101f9578063212eccc6146101f457806321e60b37146101ef57806322cdde4c146101ea57806335567e1a146101e557806344403473146101e05780635287ce12146101db57806369683cfa146101d657806370a08231146101d1578063765e827f1461018b5780637da0c462146101cc57806384b0196e146101c7578063850aaf62146101c25780639b249f69146101bd578063acbe911e146101b8578063aec321fb146101b3578063af324943146101ae578063b760faf9146101a9578063bb9fe6bf146101a4578063c23a5cea1461019f578063c3bce0091461019a578063c579f76b14610195578063d72f259314610190578063dbed18e01461018b5763f7e426e80361000e57611b41565b6110fd565b611b21565b611a01565b6119e3565b6118c0565b61179d565b61177d565b61170c565b6116b5565b611581565b6114a0565b611464565b61134b565b611173565b611089565b610eb0565b610da3565b610d5e565b610c82565b610c6a565b610ba5565b610a5c565b610825565b6107c8565b61078e565b61076c565b610649565b61045a565b610419565b602036600319011261040b5760043563ffffffff81169081810361040b576104067fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c01916103e86102da6102ca610282336001600160a01b03165f525f60205260405f2090565b9661028e811515611b7a565b6102bb6001890154916102b46102ab8463ffffffff9060781c1690565b63ffffffff1690565b1115611bc5565b60081c6001600160701b031690565b6001600160701b03349116611c46565b946102e6861515611c53565b6102f96001600160701b03871115611c9e565b5461030261055e565b908152600160208201526001600160701b038616604082015263ffffffff831660608201525f6080820152610347336001600160a01b03165f525f60205260405f2090565b81518155602082015160019091018054604084015160608501516080909501517fffffffffffffff0000000000000000000000000000000000000000000000000090921660ff941515949094169390931760089390931b6effffffffffffffffffffffffffff00169290921760789390931b72ffffffff000000000000000000000000000000169290921760989190911b65ffffffffffff60981b16179055565b6040805194855263ffffffff90911660208501523393918291820190565b0390a2005b5f80fd5b5f91031261040b57565b3461040b575f36600319011261040b576020610433611cf4565b6001600160a01b0360405191168152f35b602435906001600160c01b038216820361040b57565b3461040b57602036600319011261040b576004356001600160c01b038116810361040b576104a490335f52600160205260405f20906001600160c01b03165f5260205260405f2090565b6104ae8154611d69565b9055005b634e487b7160e01b5f52604160045260245ffd5b60a0810190811067ffffffffffffffff8211176104e257604052565b6104b2565b6060810190811067ffffffffffffffff8211176104e257604052565b610140810190811067ffffffffffffffff8211176104e257604052565b6040810190811067ffffffffffffffff8211176104e257604052565b90601f8019910116810190811067ffffffffffffffff8211176104e257604052565b6040519061056d60a08361053c565b565b6040519061056d6101408361053c565b6040519061056d6101008361053c565b6040519061056d60408361053c565b6040519061056d60608361053c565b6040519061056d6101208361053c565b67ffffffffffffffff81116104e257601f01601f191660200190565b9291926105e5826105bd565b916105f3604051938461053c565b82948184528183011161040b578281602093845f960137010152565b9080601f8301121561040b5781602061062a933591016105d9565b90565b6001600160a01b0381160361040b57565b359061056d8261062d565b3461040b5761022036600319011261040b5760043567ffffffffffffffff811161040b5761067b90369060040161060f565b3660231901906101c0821261040b576101406040519261069a846104c6565b1261040b576106a761056f565b6106b1602461063e565b815260443560208201526064356040820152608435606082015260a435608082015260c43560a082015260e43560c08201526106ee61010461063e565b60e0820152610124356101008201526101443561012082015282526101643560208301526101843560408301526101a43560608301526101c43560808301526101e4359067ffffffffffffffff821161040b5760409261075561076093369060040161060f565b906102043592611d77565b82519182526020820152f35b3461040b575f36600319011261040b576020610786613272565b604051908152f35b3461040b575f36600319011261040b5760206040517f29a0bca4af4be3421398da00295e58e6d7de38cb492214754cb6a47507dd6f8e8152f35b3461040b57604036600319011261040b57602061081c6004356107ea8161062d565b6001600160a01b036107fa610444565b91165f526001835260405f20906001600160c01b03165f5260205260405f2090565b54604051908152f35b3461040b57604036600319011261040b576004356108428161062d565b602435335f525f60205260405f20918254908183116108c6575f8080856001600160a01b03829589610877846100209a611fea565b9055604080516001600160a01b03831681526020810185905233917fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb91a2165af16108c061200b565b5061203a565b606460405162461bcd60e51b815260206004820152601960248201527f576974686472617720616d6f756e7420746f6f206c61726765000000000000006044820152fd5b9181601f8401121561040b5782359167ffffffffffffffff831161040b576020808501948460051b01011161040b57565b908161012091031261040b5790565b60c060031982011261040b5760043567ffffffffffffffff811161040b57816109759160040161090a565b929092916024359067ffffffffffffffff821161040b576109989160040161093b565b906044356109a58161062d565b90606435906084359060a43590565b634e487b7160e01b5f52602160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6020815281516002811015610a5757602082015260a0604080610a3b8160208701518582880152805160c08801526020810151151560e0880152015160606101008701526101208601906109c8565b9401518051606085015260208101516080850152015191015290565b6109b4565b3461040b57610aa3610a97610a89610a733661094a565b9691949095610a839493946120a3565b5061338e565b610a928161341b565b6134ad565b604051918291826109ec565b0390f35b61020060031982011261040b576004359160243567ffffffffffffffff811161040b5782610ad79160040161093b565b916043190160446101c0821261040b5761014060405192610af7846104c6565b1261040b576101a090610b0861056f565b610b118261063e565b81526020820135602082015260408201356040820152606082013560608201526080820135608082015260a082013560a082015260c082013560c0820152610b5b60e0830161063e565b60e082015261010082013561010082015261012082013561012082015283526101408101356020840152610160810135604084015261018081013560608401520135608082015290565b3461040b576060610bb536610aa7565b905f926001600160a01b0360e08451610bce8186613c91565b610bd7856120e4565b6020870152610c0781610100604082015160608301510160808301510160a08301510160c0830151019101510290565b6040870152015116610c2b575b505050604051905f825260208201525f6040820152f35b610c359350613d7f565b90505f8080610c14565b602060031982011261040b576004359067ffffffffffffffff821161040b5761062a9160040161093b565b3461040b576020610786610c7d36610c3f565b6120e4565b3461040b57604036600319011261040b576020600435610ca18161062d565b6001600160a01b03610cb1610444565b91165f5260018252610cd78160405f20906001600160c01b03165f5260205260405f2090565b546040805192901b67ffffffffffffffff1916178152f35b9181601f8401121561040b5782359167ffffffffffffffff831161040b576020838186019501011161040b57565b90606060031983011261040b57600435610d368161062d565b916024359067ffffffffffffffff821161040b57610d5691600401610cef565b909160443590565b3461040b575f8080610d6f36610d1d565b939181604094929451948592833781018381520393f1610d8d61200b565b9015610d9557005b805190811561040b57602001fd5b3461040b57602036600319011261040b576001600160a01b03600435610dc88161062d565b5f6080604051610dd7816104c6565b8281528260208201528260408201528260608201520152165f525f602052610aa360405f20610e5c65ffffffffffff600160405193610e15856104c6565b80548552015460ff8116151560208501526001600160701b038160081c16604085015263ffffffff8160781c16606085015260981c16608083019065ffffffffffff169052565b60405191829182919091608065ffffffffffff8160a0840195805185526020810151151560208601526001600160701b03604082015116604086015263ffffffff6060820151166060860152015116910152565b3461040b57610ebe36610aa7565b9190915a92815193610ed08583613c91565b610ed9826120e4565b6020840152604085015193610f256effffffffffffffffffffffffffffff8660c08901511760608901511760808901511760a08901511761010089015117610120890151171115612223565b610f5086610100604082015160608301510160808301510160a08301510160c0830151019101510290565b94610f85610f81610f645a89898988614024565b986020610f7882516001600160a01b031690565b91015190614107565b1590565b611034575a830311610fe2575092610fc6926080610fc19360a0610fcd975a9560408601526060808601525a9003910135019101525a90611fea565b61226f565b6064900490565b604080519283525f6020840152820152606090f35b60408051631101335b60e11b815260048101929092526024820152601e60448201527f41413236206f76657220766572696669636174696f6e4761734c696d69740000606482015280608481015b0390fd5b61103082604051918291631101335b60e11b835260048301608091815260406020820152601a60408201527f4141323520696e76616c6964206163636f756e74206e6f6e636500000000000060608201520190565b3461040b57602036600319011261040b576001600160a01b036004356110ae8161062d565b165f525f602052602060405f2054604051908152f35b604060031982011261040b576004359067ffffffffffffffff821161040b576110ef9160040161090a565b909160243561062a8161062d565b3461040b5761110b366110c4565b91612285565b61012060e061062a936020845280516020850152602081015160408501526040810151606085015260608101516080850152608081015160a085015260a081015160c085015260c08101511515828501520151916101008082015201906109c8565b3461040b57606036600319011261040b5760043567ffffffffffffffff811161040b576111a490369060040161093b565b6024356111b08161062d565b6044359167ffffffffffffffff831161040b576111d4610aa393369060040161060f565b916111dd6122f7565b506111e6614155565b6111ee612450565b926111f88361341b565b6112028484612bd4565b9091945a6060880151886112196060850185612505565b94905f60038711611343575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b0361132b57506112959450611290602083015191611282604051938492638dd7712f60e01b6020850152602484016142e3565b03601f19810183528261053c565b611d77565b9290965b5f946060966001600160a01b038116611300575b50509560806112e796970151976112c261057f565b988952602089015260408801526060870152608086015260a0850152151560c0840152565b60e08201526112f46141c9565b60405191829182611111565b6112e797505f92965090829182602083519301915af195608061132161200b565b97959197966112ad565b611290915061133b9536916105d9565b929096611299565b508035611225565b3461040b575f36600319011261040b5761140b6113877f0000000000000000000000000000000000000000000000000000000000000000615374565b6113b07f000000000000000000000000000000000000000000000000000000000000000061545a565b60206040516113bf828261053c565b5f81528161141981830194601f1983013687376040519788977f0f00000000000000000000000000000000000000000000000000000000000000895260e0858a015260e08901906109c8565b9087820360408901526109c8565b914660608701523060808701525f60a087015285830360c087015251918281520192915f5b82811061144d57505050500390f35b83518552869550938101939281019260010161143e565b3461040b57604036600319011261040b5761148060043561062d565b60243567ffffffffffffffff811161040b57610020903690600401610cef565b3461040b57602036600319011261040b5760043567ffffffffffffffff811161040b5760206114d6611506923690600401610cef565b906001600160a01b036114e7611cf4565b16905f604051809681958294632b870d1b60e11b8452600484016124f4565b03925af1801561157c576001600160a01b03915f9161154d575b507f6ca7b806000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b61156f915060203d602011611575575b611567818361053c565b8101906124bf565b5f611520565b503d61155d565b611ce9565b3461040b57610aa3610a976115953661094a565b95949094939193612585565b604060031982011261040b5760043567ffffffffffffffff811161040b57816115cc9160040161090a565b929092916024359067ffffffffffffffff821161040b5761062a9160040161093b565b61062a9060208152610100608061164881865161014060208701528051610160870152602081015161018087015260408101516101a087015260608101516101c0870152015160a06101e08601526102008501906109c8565b60208087015180516040870152015160608501529461167860408201518386019060208091805184520151910152565b6060810151805160c08601526020015160e0850152015191019080516001600160a01b031682526020908101518051828401520151604090910152565b3461040b576116c3366115a1565b91906116cd612652565b505f5b8181106116ef57610aa36116e3856129c0565b604051918291826115ef565b8061170561170060019385876126e8565b6129c0565b50016116d0565b3461040b5761171a366115a1565b91906117246122f7565b506020905f5b81811061175757610aa36112f4866040519061174760208361053c565b5f82526117526122f7565b612345565b8061177661176860019385886126e8565b60405190611747878361053c565b500161172a565b602036600319011261040b576100206004356117988161062d565b612710565b3461040b575f36600319011261040b57335f525f602052600160405f2001805463ffffffff8160781c161561187c576118056117f76102ab836117eb6117e661183f9660ff1690565b612769565b60781c63ffffffff1690565b65ffffffffffff42166127b4565b82547fffffffffffffff000000000000ffffffffffffffffffffffffffffffffffff001665ffffffffffff60981b609883901b1617909255565b60405165ffffffffffff909116815233907ffa9b3c14cc825c412c9ed81b3ba365a5b459439403f18829e572ed53a4180f0a908060208101610406565b606460405162461bcd60e51b815260206004820152600a60248201527f6e6f74207374616b6564000000000000000000000000000000000000000000006044820152fd5b3461040b57602036600319011261040b576100205f8080806004356118e48161062d565b6001600160a01b036001611908336001600160a01b03165f525f60205260405f2090565b019161199683549361196e65ffffffffffff61195a611940611934896001600160701b039060081c1690565b6001600160701b031690565b9761194c8915156127d2565b60981c65ffffffffffff1690565b1661196681151561281d565b421015612868565b80547fffffffffffffff000000000000000000000000000000000000000000000000ff169055565b604080516001600160a01b03831681526020810185905233917fb7c918e0e249f999e965cafeb6c664271b3f4317d296461500e71da39f0cbda391a2165af16119dd61200b565b506128b3565b3461040b57610aa36116e361170036610c3f565b8015150361040b57565b3461040b5761022036600319011261040b5760043560243567ffffffffffffffff811161040b57611a3690369060040161093b565b3660431901916101c0831261040b5761014060405193611a55856104c6565b1261040b57610aa392611b0492611a6a61056f565b611a74604461063e565b81526064356020820152608435604082015260a435606082015260c435608082015260e43560a08201526101043560c0820152611ab261012461063e565b60e0820152610144356101008201526101643561012082015282526101843560208301526101a43560408301526101c43560608301526101e43560808301526102043592611aff846119f7565b612da5565b604080519384526020840192909252908201529081906060820190565b3461040b57610aa3610a97611b353661094a565b95949094939193612f0e565b3461040b57611b5b611b5236610d1d565b92919091613067565b90610aa3604051928392151583526040602084015260408301906109c8565b15611b8157565b606460405162461bcd60e51b815260206004820152601a60248201527f6d757374207370656369667920756e7374616b652064656c61790000000000006044820152fd5b15611bcc57565b606460405162461bcd60e51b815260206004820152601c60248201527f63616e6e6f7420646563726561736520756e7374616b652074696d65000000006044820152fd5b634e487b7160e01b5f52601160045260245ffd5b906113888201809211611c3357565b611c10565b9060018201809211611c3357565b91908201809211611c3357565b15611c5a57565b606460405162461bcd60e51b815260206004820152601260248201527f6e6f207374616b652073706563696669656400000000000000000000000000006044820152fd5b15611ca557565b606460405162461bcd60e51b815260206004820152600e60248201527f7374616b65206f766572666c6f770000000000000000000000000000000000006044820152fd5b6040513d5f823e3d90fd5b6040517f09ccb880000000000000000000000000000000000000000000000000000000008152602081600481305afa90811561157c575f91611d34575090565b90506020813d602011611d61575b81611d4f6020938361053c565b8101031261040b575161062a8161062d565b3d9150611d42565b5f198114611c335760010190565b9392909193825190606082015181519081611f64575b505050505a9003608082015101925f935a91835191611dab836144e4565b92611dc060e08201516001600160a01b031690565b91611dd660808801518203606084015190614536565b01925f926001600160a01b0381169081611e7b5750505090611e036040949392516001600160a01b031690565b945b5a9003010102920151908282105f14611e4957611e215f6131eb565b7fdeadaa51000000000000000000000000000000000000000000000000000000005f5260205ffd5b82611e6d9203906001600160a01b03165f525f60205260405f209081540180915590565b50611e775f6131eb565b9190565b96928251611e92575b505050906040939291611e05565b919950949392505a98611ea45f6131eb565b60a05a920195865191813b1561040b578692835f809489611ef7604051988997889687947f7c627b21000000000000000000000000000000000000000000000000000000008652029086600486016131f5565b0393f19081611f4a575b50611f2a57611030611f116131be565b6040519182916365c8fd4d60e01b835260048301613227565b604094611f40915a9003995a9003905190614536565b9192935f80611e84565b80611f585f611f5e9361053c565b8061040f565b5f611f01565b5f80949360206001600160a01b0383965116910192f115611f88575f808080611d8d565b611030611f936131be565b6040519182917f462c71b20000000000000000000000000000000000000000000000000000000083526020600484015260248301906109c8565b600319810191908211611c3357565b5f19810191908211611c3357565b91908203918211611c3357565b6040519061200660208361053c565b5f8252565b3d15612035573d9061201c826105bd565b9161202a604051938461053c565b82523d5f602084013e565b606090565b1561204157565b606460405162461bcd60e51b815260206004820152601260248201527f6661696c656420746f20776974686472617700000000000000000000000000006044820152fd5b60405190612092826104e7565b5f6040838281528260208201520152565b604051906120b0826104e7565b815f81526040516120c0816104e7565b5f81525f602082015260606040820152602082015260406120df612085565b910152565b61062a906120f181613eae565b6120f9613272565b916121c78135926121098461062d565b60208301359080156122035761128290935b61213161212b6060830183612505565b906155e4565b90608081013560a08201359061215361212b60c08501359460e0810190612505565b93604051988997602089019b8c94919261010096939998979491996001600160a01b0361012088019b7f29a0bca4af4be3421398da00295e58e6d7de38cb492214754cb6a47507dd6f8e895216602088015260408701526060860152608085015260a084015260c083015260e08201520152565b51902090604291604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b506112826122146040850185612505565b9081604051918237209361211b565b1561222a57565b60405162461bcd60e51b815260206004820152601860248201527f41413934206761732076616c756573206f766572666c6f7700000000000000006044820152606490fd5b90607382029180830460731490151715611c3357565b61228d614155565b608460405162461bcd60e51b815260206004820152602760248201527f53484f554c44204e4f542042452043414c4c454420445552494e472053494d5560448201527f4c4154494f4e53000000000000000000000000000000000000000000000000006064820152fd5b60405190610100820182811067ffffffffffffffff8211176104e257604052606060e0835f81525f60208201525f60408201525f838201525f60808201525f60a08201525f60c08201520152565b509050612350614155565b608061235a612450565b916123648161341b565b61236e8382612bd4565b929091905a6060870151876123866060850185612505565b94905f60038711612448575b7fffffffff0000000000000000000000000000000000000000000000000000000016638dd7712f60e01b0361243057506123ef9450611290602083015191611282604051938492638dd7712f60e01b6020850152602484016142e3565b9490955b0151946123fe61057f565b958652602086015260408501526060840152608083015260a08201525f60c0820152606060e08201529061056d6141c9565b61129091506124409536916105d9565b9490956123f3565b508035612392565b6040519061245d826104c6565b5f60808360405161246d81610503565b83815283602082015283604082015283606082015283838201528360a08201528360c08201528360e0820152836101008201528361012082015281528260208201528260408201528260608201520152565b9081602091031261040b575161062a8161062d565b908060209392818452848401375f828201840152601f01601f1916010190565b91602061062a9381815201916124d4565b903590601e198136030182121561040b570180359067ffffffffffffffff821161040b5760200191813603831361040b57565b6040519061254760208361053c565b5f808352366020840137565b9061255d826105bd565b61256a604051918261053c565b828152809261257b601f19916105bd565b0190602036910137565b959493929190956125946120a3565b506125a26060830183612505565b9050156125d85761062a966125b69161338e565b6125d06125c1612450565b6125ca8361341b565b82612bd4565b5050506137c1565b505050505050506125e7612538565b604051906125f4826104e7565b5f82525f6020830152604082015260405161260e816104e7565b5f81525f60208201525f60408201526040519161262a836104e7565b5f83526020830152604082015290565b6040519061264782610520565b5f6020838281520152565b6040519061265f826104c6565b8160405161266c816104c6565b5f81525f60208201525f60408201525f606082015260606080820152815261269261263a565b602082015261269f61263a565b60408201526126ac61263a565b60608201526080604051916126c083610520565b5f83526126cb61263a565b60208401520152565b634e487b7160e01b5f52603260045260245ffd5b919081101561270b5760051b8101359061011e198136030182121561040b570190565b6126d4565b7f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c460206001600160a01b0361275d34856001600160a01b03165f525f60205260405f209081540180915590565b936040519485521692a2565b1561277057565b606460405162461bcd60e51b815260206004820152601160248201527f616c726561647920756e7374616b696e670000000000000000000000000000006044820152fd5b9065ffffffffffff8091169116019065ffffffffffff8211611c3357565b156127d957565b606460405162461bcd60e51b815260206004820152601460248201527f4e6f207374616b6520746f2077697468647261770000000000000000000000006044820152fd5b1561282457565b606460405162461bcd60e51b815260206004820152601d60248201527f6d7573742063616c6c20756e6c6f636b5374616b6528292066697273740000006044820152fd5b1561286f57565b606460405162461bcd60e51b815260206004820152601b60248201527f5374616b65207769746864726177616c206973206e6f742064756500000000006044820152fd5b156128ba57565b606460405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f207769746864726177207374616b6500000000000000006044820152fd5b9060141161040b5790601490565b909291928360141161040b57831161040b57601401916013190190565b909291928360341161040b57831161040b57603401916033190190565b356bffffffffffffffffffffffff19811692919060148210612966575050565b6bffffffffffffffffffffffff1960149290920360031b82901b16169150565b6040519061299382610520565b6004546001600160a01b031682526040516020836129b083610520565b6005548352600654828401520152565b6129c8612652565b506129d1612450565b906129db8161341b565b6129e58282612bd4565b509190926129f383856142fa565b612a10612a0b60e0835101516001600160a01b031690565b6144a4565b91612a3e612a2a612a0b84516001600160a01b0390511690565b91612a3361263a565b506040810190612505565b9060148210612b1957612a60612a5a612a6693612a0b936128fe565b90612946565b60601c90565b916001600160a01b038616946080820151966060604084015193015192612a8b61055e565b9889526020890152604088015260608701526080860152612aaa612986565b9380151580612b0e575b612adc575b50612ac261055e565b948552602085015260408401526060830152608082015290565b909350612ae8816144a4565b612b02612af361058f565b6001600160a01b039093168352565b6020820152925f612ab9565b506001811415612ab4565b5050612a665f6144a4565b15612b2c5750565b60405190631101335b60e11b82526004820152604060248201528061103060448201604090601881527f41413934206761732076616c756573206f766572666c6f77000000000000000060208201520190565b15612b875750565b60408051631101335b60e11b815260048101929092526024820152601a60448201527f4141323520696e76616c6964206163636f756e74206e6f6e63650000000000006064820152608490fd5b9190915f915a93805192612be88482613c91565b612c01604051612bf7836120e4565b6020850152604052565b604084015195612c495f6effffffffffffffffffffffffffffff8960c08901511760608901511760808901511760a08901511761010089015117610120890151171115612b24565b612c94612c7786610100604082015160608301510160808301510160a08301510160c0830151019101510290565b806040860152612c8b608085013560801c90565b9085855f614024565b96612cbd5f612cb8612cad89516001600160a01b031690565b60208a015190614107565b612b7f565b5a820311612d52576060946001600160a01b03612ce560e05a9301516001600160a01b031690565b16151580612d4a575b612d1c575b60809291612d0a610fc6610fc160a0945a90611fea565b9660608601525a900391013501910152565b9450610fc195509060a0608092612d0a610fc6612d3a87865f613d7f565b9a90999450505050919250612cf3565b506001612cee565b604051631101335b60e11b8152806110305f60048301608091815260406020820152601e60408201527f41413236206f76657220766572696669636174696f6e4761734c696d6974000060608201520190565b939092915f935a8251612db88184613c91565b612dd1604051612dc7856120e4565b6020870152604052565b604081015197612e19816effffffffffffffffffffffffffffff8b60c08601511760608601511760808601511760a08601511761010086015117610120860151171115612b24565b612e64612e4783610100604082015160608301510160808301510160a08301510160c0830151019101510290565b806040880152612e5b608087013560801c90565b90878785614024565b98612e8882612cb8612e7d86516001600160a01b031690565b602087015190614107565b5a840311610fe2576060966001600160a01b03612eb060e05a9501516001600160a01b031690565b1615159081612f06575b50612ed8575b5060809291612d0a610fc6610fc160a0945a90611fea565b610fc1975060a091965091612d0a610fc6612ef7878760809897613d7f565b9a909994505050509192612ec0565b90505f612eba565b95949392919095612f1d6120a3565b506014612f2d60e0840184612505565b905010612f685761062a96612f5a91610a83612f47612450565b612f52815187613c91565b5a9086613f41565b612f638161341b565b6139de565b50505050505050612f77612538565b60405190612f84826104e7565b5f82525f60208301526040820152612f9a61059e565b5f81525f60208201525f6040820152612fb161059e565b915f83526020830152604082015290565b6040906001600160a01b0361062a959316815281602082015201916124d4565b90815181101561270b570160200190565b919060408382031261040b57825161300a816119f7565b9260208101519067ffffffffffffffff821161040b570181601f8201121561040b57805190613038826105bd565b92613046604051948561053c565b8284526020838301011161040b57815f9260208093018386015e8301015290565b91925f936001600160a01b036060941691823b1561040b576130e5935f80946040518097819682957f850aaf620000000000000000000000000000000000000000000000000000000084526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048501612fc2565b0393f190816131a1575b5061318f5750506130fe61200b565b9060048251106131935761311a6131158351611fcd565b612553565b60045b8351811015613179578061315c61313660019387612fe2565b517fff000000000000000000000000000000000000000000000000000000000000001690565b61317261316883611fcd565b915f1a9185612fe2565b530161311d565b5061318f91925060208082518301019101612ff3565b9091565b905061319d612538565b5f91565b80611f585f6131af9361053c565b5f6130ef565b61056d33612710565b3d61080081116131e2575b604051906020818301016040528082525f602083013e90565b506108006131c9565b60031115610a5757565b90949392946003811015610a575760609261321d9183526080602084015260808301906109c8565b9460408201520152565b9060a061062a925f815260606020820152601460608201527f4141353020706f73744f70207265766572746564000000000000000000000000608082015281604082015201906109c8565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016301480613365575b156132cd577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815261335f60c08261053c565b51902090565b507f000000000000000000000000000000000000000000000000000000000000000046146132a4565b5f5b82811061339c57505050565b6001906133a7612450565b6133b28286866126e8565b6133bb8161341b565b6133c58282612bd4565b5050506133d56060820182612505565b90501561340a576133ee5f929160208493015190614555565b9082602083519301915af15061340261200b565b505b01613390565b5050613404565b3561062a8161062d565b61344e9061342c6040820182612505565b9161344681359161343c8361062d565b60e0810190612505565b9390926145ee565b80516134575750565b61103090604051918291631101335b60e11b83525f60048401526040602484015260448301906109c8565b9392916134a8906001600160a01b036040931686526060602087015260608601906109c8565b930152565b9390946134b86120a3565b508215613727576134f8926134cb611ff7565b50915f6134da5a88600361497f565b5a906040519687928392631efc84dd60e31b84528c60048501613482565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af190811561157c575f945f92613708575b508194809281156136e65750506135549095929394955b85611c46565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b8461358c8885611fea565b106136b7575a61359b88611c24565b1161365e5791889391879695935f8c8b6135cd6135c46135be886135ed9f611c46565b60011c90565b809a600361497f565b835a936040519e8f9586948593631efc84dd60e31b855260048501613482565b03925af198891561157c575f905f9a613637575b50156136225750505061361383611fdc565b95915b93949591929092613581565b93965093613631919750611c38565b94613616565b90506136569199503d805f833e61364e818361053c565b810190612ff3565b98905f613601565b50955093955050509350613670612538565b9261367961059e565b935f85525f6020860152604085015261369061059e565b928352602083015260408201526136a561059e565b60018152916020830152604082015290565b9650965050919550506136d991506136cd61059e565b93845215156020840152565b6040820152612f9a61059e565b965096505050945050506136d96136fb61059e565b5f81529215156020840152565b90945061371f91503d805f833e61364e818361053c565b90935f613537565b61373a92505a5f6134da5a88600361497f565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af192831561157c575f945f9461379f575b50839461378881935a90611fea565b9481156136e657505061355490959293949561354e565b9093506137b79194503d805f833e61364e818361053c565b939093925f613779565b9390946137cc6120a3565b508215613944576137ee926137df611ff7565b50915f6134da5a88600161497f565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af190811561157c575f945f92613925575b508194809281156136e657505061384990959293949585611c46565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b846138818885611fea565b106136b7575a61389088611c24565b1161365e5791889391879695935f8c8b6135cd6138b36135be886138bc9f611c46565b809a600161497f565b03925af198891561157c575f905f9a613906575b50156138f1575050506138e283611fdc565b95915b93949591929092613876565b93965093613900919750611c38565b946138e5565b905061391d9199503d805f833e61364e818361053c565b98905f6138d0565b90945061393c91503d805f833e61364e818361053c565b90935f61382d565b61395792505a5f6134da5a88600161497f565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af192831561157c575f945f946139bc575b5083946139a581935a90611fea565b9481156136e657505061384990959293949561354e565b9093506139d49194503d805f833e61364e818361053c565b939093925f613996565b9390946139e96120a3565b508215613b6157613a0b926139fc611ff7565b50915f6134da5a88600261497f565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af190811561157c575f945f92613b42575b508194809281156136e6575050613a6690959293949585611c46565b806001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016965b84613a9e8885611fea565b106136b7575a613aad88611c24565b1161365e5791889391879695935f8c8b6135cd613ad06135be88613ad99f611c46565b809a600261497f565b03925af198891561157c575f905f9a613b23575b5015613b0e57505050613aff83611fdc565b95915b93949591929092613a93565b93965093613b1d919750611c38565b94613b02565b9050613b3a9199503d805f833e61364e818361053c565b98905f613aed565b909450613b5991503d805f833e61364e818361053c565b90935f613a4a565b613b7492505a5f6134da5a88600261497f565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af192831561157c575f945f94613bd9575b508394613bc281935a90611fea565b9481156136e6575050613a6690959293949561354e565b909350613bf19194503d805f833e61364e818361053c565b939093925f613bb3565b15613c0257565b606460405162461bcd60e51b815260206004820152601d60248201527f4141393320696e76616c6964207061796d6173746572416e64446174610000006044820152fd5b15613c4d57565b606460405162461bcd60e51b815260206004820152601660248201527f4141393820696e76616c6964207061796d6173746572000000000000000000006044820152fd5b613d2890613cae613ca182613411565b6001600160a01b03168452565b60208101356020840152613cdb6080820135906fffffffffffffffffffffffffffffffff8260801c921690565b6060850152604084015260a081013560c0840152613d1260c0820135906fffffffffffffffffffffffffffffffff8260801c921690565b61010085015261012084015260e0810190612505565b80929192613d3557505050565b613d518161056d94613d4c603460e0951015613bfb565b614bbb565b60a0850152608084015291613d706001600160a01b0384161515613c46565b01906001600160a01b03169052565b9290925a938351613da26001600160a01b0360e083015116604087015190614bf3565b15613e3a57906080613db992015194859184614c85565b9390945a900311613dc75750565b60408051631101335b60e11b815260048101929092526024820152602760448201527f41413336206f766572207061796d6173746572566572696669636174696f6e4760648201527f61734c696d697400000000000000000000000000000000000000000000000000608482015260a490fd5b60848360405190631101335b60e11b8252600482015260406024820152601e60448201527f41413331207061796d6173746572206465706f73697420746f6f206c6f7700006064820152fd5b909280926014946bffffffffffffffffffffffff199060601b1683528483013701015f815290565b613ebb6040820182612505565b9091613eca610f818385614d7a565b613f3a57613eda613edf91613411565b614dbc565b9160148211613f1657505060405161335f816112826020820194856014916bffffffffffffffffffffffff199060601b1681520190565b8161335f92613f249261290c565b9190611282604051938492602084019687613e86565b5050505f90565b9291613f85908251926001600160a01b0360e08186511695613f71613f6960408b018b612505565b90865f614ec0565b015116905f91159687613ff1575b5f61526d565b92613f8d5750565b5f613f9791614bf3565b15613f9e57565b604051631101335b60e11b8152806110305f60048301608091815260406020820152601760408201527f41413231206469646e2774207061792070726566756e6400000000000000000060608201520190565b915061400d856001600160a01b03165f525f60205260405f2090565b54801561401d57505f5b91613f7f565b5f03614017565b9290949361406a908351936001600160a01b0360e0818751169661405661404e60408d018d612505565b90868c614ec0565b015116905f911598896140d2575b8761526d565b9461407457505050565b61407d91614bf3565b156140855750565b60408051631101335b60e11b815260048101929092526024820152601760448201527f41413231206469646e2774207061792070726566756e640000000000000000006064820152608490fd5b91506140ee866001600160a01b03165f525f60205260405f2090565b548581111561410057505f5b91614064565b85036140fa565b6001600160a01b03165f52600160205267ffffffffffffffff6141418260401c60405f20906001600160c01b03165f5260205260405f2090565b9182549261414e84611d69565b9055161490565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c6141a15760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d565b7f3ee5aeb5000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d565b9035601e198236030181121561040b57016020813591019167ffffffffffffffff821161040b57813603831361040b57565b61062a9161423e816142318461063e565b6001600160a01b03169052565b602082013560208201526142d46142c861428f61427461426160408701876141ee565b61012060408801526101208701916124d4565b61428160608701876141ee565b9086830360608801526124d4565b6080850135608085015260a085013560a085015260c085013560c08501526142ba60e08601866141ee565b9085830360e08701526124d4565b926101008101906141ee565b916101008185039101526124d4565b9291906134a8602091604086526040860190614220565b61430b6001600160a01b0391615512565b9116614451576143fe576143266001600160a01b0391615512565b91166143ab5761433257565b604051631101335b60e11b8152806110305f6004830160a091815260406020820152602160408201527f41413332207061796d61737465722065787069726564206f72206e6f7420647560608201527f650000000000000000000000000000000000000000000000000000000000000060808201520190565b604051631101335b60e11b8152806110305f60048301608091815260406020820152601460408201527f41413334207369676e6174757265206572726f7200000000000000000000000060608201520190565b604051631101335b60e11b8152806110305f60048301608091815260406020820152601760408201527f414132322065787069726564206f72206e6f742064756500000000000000000060608201520190565b604051631101335b60e11b8152806110305f60048301608091815260406020820152601460408201527f41413234207369676e6174757265206572726f7200000000000000000000000060608201520190565b906001600160a01b036144b561263a565b92165f525f60205263ffffffff600160405f2001546001600160701b038160081c16845260781c166020830152565b6101206101008201519101517f59e3bb5c9eacf8e7a9c3802366751badc68d4d97d3e35b1744045784c52f20dd5480155f14614530575048905b018082101561452b575090565b905090565b9061451e565b90619c40820181111561454f57606491600a9103020490565b50505f90565b919082356145628161062d565b9260608101638dd7712f60e01b7fffffffff0000000000000000000000000000000000000000000000000000000061459a8385612505565b9060035f92116145e5575b5016036145d0575061062a90611282604051938492638dd7712f60e01b6020850152602484016142e3565b61062a92506145de91612505565b36916105d9565b9050355f6145a5565b509291921590816146a3575b50614666576014811015614613575b505061062a611ff7565b60141161040b573560601c3b1561462b575f80614609565b60405161463960408261053c565b601b81527f41413330207061796d6173746572206e6f74206465706c6f7965640000000000602082015290565b505060405161467660408261053c565b601981527f41413230206163636f756e74206e6f74206465706c6f79656400000000000000602082015290565b90503b155f6145fa565b9190916101208184031261040b576146c36105ad565b926146cd8261063e565b845260208201356020850152604082013567ffffffffffffffff811161040b57816146f991840161060f565b6040850152606082013567ffffffffffffffff811161040b578161471e91840161060f565b60608501526080820135608085015260a082013560a085015260c082013560c085015260e082013567ffffffffffffffff811161040b578161476191840161060f565b60e085015261010082013567ffffffffffffffff811161040b57614785920161060f565b610100830152565b60041115610a5757565b916020936fffffffffffffffffffffffffffffffff198092603497946bffffffffffffffffffffffff199060601b1686521660148501521660248301528051928391018483015e01015f815290565b80516001600160a01b0316825261062a9160208201516020820152610100614867614837614825604086015161012060408701526101208601906109c8565b606086015185820360608701526109c8565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e08601526109c8565b920151906101008184039101526109c8565b60806101a09161012081516148978682516001600160a01b03169052565b602081015160208701526040810151604087015260608101516060870152838101518487015260a081015160a087015260c081015160c08701526148eb60e082015160e08801906001600160a01b03169052565b61010081015161010087015201516101208501526020810151610140850152604081015161016085015260608101516101808501520151910152565b61495661494b61020093969594965f845261022060208501526102208401906147e6565b956040830190614879565b0152565b6102009061495661494b5f9496959685845261022060208501526102208401906147e6565b91614988612450565b9261499336846146ad565b61499c8261478d565b60028214614ad7576149ad8261478d565b60038214614a595750806149c260019261478d565b14614a0c5760405162461bcd60e51b815260206004820152600c60248201527f496e76616c6964206d6f646500000000000000000000000000000000000000006044820152606490fd5b614a2161062a92602061128295015190614555565b9390916040519485937f4440347300000000000000000000000000000000000000000000000000000000602086015260248501613482565b9190506fffffffffffffffffffffffffffffffff614a97614a90608061062a9601356fffffffffffffffffffffffffffffffff1690565b9260801b90565b91161760808201526112826040519384927fc579f76b0000000000000000000000000000000000000000000000000000000060208501526024840161495a565b9161128291506fffffffffffffffffffffffffffffffff1984614b6360e061062a9701614b55614b10614b0a8386612505565b90614bbb565b9391905060609160e08b0196603488515111614b99575b505060405196879460801b16906fffffffffffffffffffffffffffffffff198960801b169060208601614797565b03601f19810184528361053c565b526040519485937f21e60b3700000000000000000000000000000000000000000000000000000000602086015260248501614927565b614bb39293506145de91614bac91612505565b8091612929565b905f80614b27565b90918260141161040b578135918360241161040b5760148101359360341161040b5760609290921c92608090811c9260240135901c90565b6001600160a01b03165f525f60205260405f20908154818110613f3a57039055600190565b614c3060409295949395606083526060830190614220565b9460208201520152565b60a09061062a9392815260606020820152600d60608201527f4141333320726576657274656400000000000000000000000000000000000000608082015281604082015201906109c8565b925f8091959392956040519682614cfa60e0602088015197614ceb8c614cdc6040840151602083019c8d997f52b7512c000000000000000000000000000000000000000000000000000000008b5260248501614c18565b038d601f19820190528d61053c565b5101516001600160a01b031690565b895193f1933d91825f833e51938151604083019687519015918215614d6e575b508115614d5c575b50614d375750601f909101601f191601604052565b614d3f6131be565b906110306040519283926365c8fd4d60e01b845260048401614c3a565b9050601f605f1985019101105f614d22565b6040141591505f614d1a565b90600211614db757356bffffffffffffffffffffffff19167f77020000000000000000000000000000000000000000000000000000000000001490565b505f90565b60175f80833c5f51907fef010000000000000000000000000000000000000000000000000000000000007fffffff0000000000000000000000000000000000000000000000000000000000831603614e315750612a60614e1f61062a9260181b90565b6bffffffffffffffffffffffff191690565b3b15614e7c5760405162461bcd60e51b815260206004820152601860248201527f6e6f7420616e204549502d373730322064656c656761746500000000000000006044820152606490fd5b606460405162461bcd60e51b815260206004820152601260248201527f73656e64657220686173206e6f20636f646500000000000000000000000000006044820152fd5b92909181614ecf575b50505050565b8251516001600160a01b031693614ee68383614d7a565b61518657843b61513957601483106150ec575f6020614f12614f06611cf4565b6001600160a01b031690565b60408751015160405180948193632b870d1b60e11b835282614f388b8b600484016124f4565b0393f190811561157c575f916150cd575b506001600160a01b038116958615615078576001600160a01b0316809603615023573b15614fd65750612a60612a5a7fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d93614fa3936128fe565b602083810151935160e00151604080516001600160a01b039485168152939091169183019190915290a35f808080614ec9565b60408051631101335b60e11b815260048101929092526024820152602060448201527f4141313520696e6974436f6465206d757374206372656174652073656e6465726064820152608490fd5b61103082604051918291631101335b60e11b835260048301608091815260406020820152602060408201527f4141313420696e6974436f6465206d7573742072657475726e2073656e64657260608201520190565b61103083604051918291631101335b60e11b835260048301608091815260406020820152601b60408201527f4141313320696e6974436f6465206661696c6564206f72204f4f47000000000060608201520190565b6150e6915060203d60201161157557611567818361053c565b5f614f49565b60408051631101335b60e11b815260048101929092526024820152601760448201527f4141393920696e6974436f646520746f6f20736d616c6c0000000000000000006064820152608490fd5b60408051631101335b60e11b815260048101929092526024820152601f60448201527f414131302073656e64657220616c726561647920636f6e7374727563746564006064820152608490fd5b5090601481116151965750505050565b806151b29160406151a8614f06611cf4565b955101519361290c565b9190833b1561040b575f80946151f896604051978896879586937fc09ad0d900000000000000000000000000000000000000000000000000000000855260048501612fc2565b0393f1801561157c5761520e575b808080614ec9565b80611f585f61521c9361053c565b5f615206565b60a09061062a9392815260606020820152600d60608201527f4141323320726576657274656400000000000000000000000000000000000000608082015281604082015201906109c8565b92916020959486926152d75f936152c961529082516001600160a01b0390511690565b976040519b8c930151888401957f19822f7c00000000000000000000000000000000000000000000000000000000875260248501614c18565b03601f1981018a528961053c565b8285895193f15f519460203d0361536c575b604052156152f5575050565b3b6153475760408051631101335b60e11b815260048101929092526024820152601960448201527f41413230206163636f756e74206e6f74206465706c6f796564000000000000006064820152608490fd5b61534f6131be565b906110306040519283926365c8fd4d60e01b845260048401615222565b5f91506152e9565b60ff81146153855761062a906155ef565b506040515f6002548060011c91600182168015615450575b60208410811461543c578385528492602084019190811561542357506001146153ce575b5061062a9250038261053c565b60025f90815291507f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5b84831061540c575061062a9350015f6153c1565b8054828401528593506020909201916001016153f8565b60ff191682525061062a93151560051b0190505f6153c1565b634e487b7160e01b5f52602260045260245ffd5b92607f169261539d565b60ff811461546b5761062a906155ef565b506040515f6003548060011c91600182168015615508575b60208410811461543c578385528492602084019190811561542357506001146154b3575061062a9250038261053c565b60035f90815291507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8483106154f1575061062a9350015f6153c1565b8054828401528593506020909201916001016154dd565b92607f1692615483565b80156155dd57615520612085565b5065ffffffffffff8160a01c169081156155cf575b6155b09061559761558c6040519461554c866104e7565b6001600160a01b038416865265ffffffffffff602087019460d01c1684526155806040870191829065ffffffffffff169052565b5165ffffffffffff1690565b65ffffffffffff1690565b42119081156155b3575b5091516001600160a01b031690565b91565b516155c6915065ffffffffffff1661558c565b4211155f6155a1565b65ffffffffffff9150615535565b505f905f90565b816040519182372090565b60ff811690601f821161561e576040519161560b60408461053c565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffdfea26469706673582212208ab1b0974d542f92d6d061c883628e71e92e632c91a62febb202a003e7efe01864736f6c634300081c0033","sourceMap":"971:17770:28:-:0;;;;;;;;;-1:-1:-1;971:17770:28;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;971:17770:28;;;;;;;;;;;;;;;3456:47:31;;3011:10;971:17770:28;3206:22:31;971:17770:28;3002:20:31;3011:10;-1:-1:-1;;;;;971:17770:28;3002:8:31;971:17770:28;3002:8:31;971:17770:28;;;3002:8:31;971:17770:28;;;3002:20:31;3040:19;3032:58;3040:19;;;3032:58;:::i;:::-;3100:80;3127:20;;;971:17770:28;;3108:39:31;971:17770:28;;;;;;;;;;;;;;3108:39:31;-1:-1:-1;3108:39:31;3100:80;:::i;:::-;971:17770:28;;-1:-1:-1;;;;;971:17770:28;;;;-1:-1:-1;;;;;3219:9:31;971:17770:28;;3206:22:31;:::i;:::-;3246:9;3238:40;3246:9;;;3238:40;:::i;:::-;3288:53;-1:-1:-1;;;;;3296:26:31;;;3288:53;:::i;:::-;971:17770:28;;;:::i;:::-;;;;3127:20:31;971:17770:28;3374:67:31;;971:17770:28;-1:-1:-1;;;;;971:17770:28;;3374:67:31;;;971:17770:28;;;;3374:67:31;;;971:17770:28;-1:-1:-1;3374:67:31;;;971:17770:28;3351:20:31;3011:10;-1:-1:-1;;;;;971:17770:28;3002:8:31;971:17770:28;3002:8:31;971:17770:28;;;3002:8:31;971:17770:28;;;3351:20:31;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;971:17770:28;;;;;;3374:67:31;971:17770:28;;;;;;;;;;;;;3011:10:31;;971:17770:28;;;;;;;3456:47:31;;;;971:17770:28;;-1:-1:-1;971:17770:28;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;971:17770:28;;;;;;;:::i;:::-;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;;-1:-1:-1;;;;;971:17770:28;;;;;;:::o;:::-;;;;;;-1:-1:-1;;971:17770:28;;;;;;-1:-1:-1;;;;;971:17770:28;;;;;;893:36:0;913:10;;-1:-1:-1;971:17770:28;893:19:0;971:17770:28;;;-1:-1:-1;971:17770:28;;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;893:36:0;:38;971:17770:28;;893:38:0;:::i;:::-;971:17770:28;;;;-1:-1:-1;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;2420:15;971:17770;;;2420:15;971:17770;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;971:17770:28;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;971:17770:28;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;-1:-1:-1;;;;;971:17770:28;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;971:17770:28;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;971:17770:28;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;971:17770:28;;;;;3445:20:27;;:::i;:::-;971:17770:28;;;;;;;;;;;;-1:-1:-1;;971:17770:28;;;;;;;1092:197:32;971:17770:28;;;;;;;;;-1:-1:-1;;971:17770:28;;;;;279:74:0;971:17770:28;;;;;:::i;:::-;-1:-1:-1;;;;;971:17770:28;;:::i;:::-;;;-1:-1:-1;971:17770:28;279:74:0;971:17770:28;;;-1:-1:-1;971:17770:28;;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;279:74:0;971:17770:28;;;;;;;;;;;;;-1:-1:-1;;971:17770:28;;;;;;;;;:::i;:::-;;;4820:10:31;-1:-1:-1;971:17770:28;-1:-1:-1;971:17770:28;;;-1:-1:-1;971:17770:28;;;;4896:32:31;;;;971:17770:28;;-1:-1:-1;4983:31:31;;;-1:-1:-1;;;;;4983:31:31;;;;;5168:38;4983:31;;:::i;:::-;971:17770:28;;;;;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;4820:10:31;;5029:54;;;971:17770:28;5111:47:31;;;;:::i;:::-;;5168:38;:::i;971:17770:28:-;;;;-1:-1:-1;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;-1:-1:-1;;971:17770:28;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;971:17770:28;;;;;;;;-1:-1:-1;;971:17770:28;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;13544:152;13462:13;971:17770;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;13462:13;:::i;:::-;13513:12;;;:::i;:::-;13544:152;:::i;:::-;971:17770;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;971:17770:28;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;971:17770:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;-1:-1:-1;13882:17:27;-1:-1:-1;;;;;14072:17:27;13882;;13937:7;;;;:::i;:::-;13978:21;;;:::i;:::-;13955:20;;;971:17770:28;14030:28:27;;10020:20;9803:28;;;971:17770:28;9834:20:27;;;971:17770:28;1679:4:27;9873:37;;;971:17770:28;1679:4:27;9913:31;;;971:17770:28;1679:4:27;9947:26;;;971:17770:28;1679:4:27;10020:20;;971:17770:28;;9633:424:27;;14030:28;14010:17;;;971:17770:28;14072:17:27;971:17770:28;;14068:155:27;;971:17770:28;;;;14010:17:27;971:17770:28;;-1:-1:-1;971:17770:28;;13955:20:27;971:17770:28;;;-1:-1:-1;14010:17:27;971:17770:28;;;;14068:155:27;14156:56;;;;:::i;:::-;14119:93;;14068:155;;;;;971:17770:28;;-1:-1:-1;;971:17770:28;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;971:17770:28;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;971:17770:28;;:::i;:::-;;;-1:-1:-1;971:17770:28;507:19:0;971:17770:28;;507:32:0;971:17770:28;;-1:-1:-1;971:17770:28;;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;507:32:0;971:17770:28;;;;;;;-1:-1:-1;;971:17770:28;507:55:0;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;971:17770:28;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;-1:-1:-1;971:17770:28;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6626:27;;;;;:::i;:::-;6667:8;;6663:175;;971:17770;6663:175;971:17770;;6695:22;;;6691:36;;6741:87;;;971:17770;;;;;;-1:-1:-1;;971:17770:28;;;;-1:-1:-1;;;;;971:17770:28;;;;;:::i;:::-;-1:-1:-1;971:17770:28;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;971:17770:28;-1:-1:-1;971:17770:28;;;;-1:-1:-1;971:17770:28;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25525:9:27;;;;25574:17;;;25629:7;;;;;:::i;:::-;25670:21;;;:::i;:::-;25647:20;;;971:17770:28;25886:28:27;;;971:17770:28;25947:26:27;26181:70;971:17770:28;25947:26:27;;;;971:17770:28;25947:49:27;25999:20;;;971:17770:28;25947:72:27;26034:37;;;971:17770:28;25947:124:27;26074:31;;;971:17770:28;25947:158:27;26108:20;;;971:17770:28;25947:181:27;26143:28;;;971:17770:28;25947:224:27;26189:33;;26181:70;:::i;:::-;26288:28;;10020:20;9803:28;;;971:17770:28;9834:20:27;;;971:17770:28;1679:4:27;9873:37;;;971:17770:28;1679:4:27;9913:31;;;971:17770:28;1679:4:27;9947:26;;;971:17770:28;1679:4:27;10020:20;;971:17770:28;;9633:424:27;;26288:28;26415:9;26440:55;26441:54;26343:82;26415:9;26343:82;;;;;:::i;:::-;971:17770:28;25647:20:27;971:17770:28;;;-1:-1:-1;;;;;971:17770:28;;;;26481:13:27;;971:17770:28;26441:54:27;;:::i;:::-;26440:55;;971:17770:28;26440:55:27;26436:140;;26623:9;1679:4;;26614:41;26610:138;;26821:9;;27153:32;26821:9;26034:37;27154:24;26821:9;26074:31;27152:40;26821:9;;26912:17;25886:28;26912:17;;971:17770:28;25999:20:27;26961:23;;;971:17770:28;27063:9:27;1679:4;;27075:25;;971:17770:28;1679:4:27;27033:18;;971:17770:28;27169:9:27;27154:24;;:::i;:::-;27153:32;:::i;:::-;27189:3;971:17770:28;;;;27152:40:27;25886:28;971:17770:28;;;;;;;;;;;;;;;;26610:138:27;25886:28;971:17770:28;;-1:-1:-1;;;26682:51:27;;971:17770:28;26682:51:27;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;26682:51:27;;;;26436:140;26518:47;971:17770:28;25886:28:27;971:17770:28;26518:47:27;;;-1:-1:-1;;;26518:47:27;;971:17770:28;26518:47:27;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;971:17770:28;;;;-1:-1:-1;;;;;971:17770:28;;;;;:::i;:::-;;-1:-1:-1;971:17770:28;-1:-1:-1;971:17770:28;;;;-1:-1:-1;971:17770:28;;;;;;;;;;-1:-1:-1;;971:17770:28;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;2102:156:27;;:::i;971:17770:28:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;971:17770:28;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;1181:103:15;;:::i;:::-;971:17770:28;;:::i;:::-;16002:2;;;;:::i;:::-;16126:40;;;;:::i;:::-;3723:1327:27;;;3979:9;4047:20;;;971:17770:28;4140:15:27;;4047:20;4140:15;;;;:::i;:::-;4205:16;;-1:-1:-1;4235:160:27;;;;;971:17770:28;;;-1:-1:-1;;;4412:51:27;4425:38;;4567:17;4643:53;4567:17;;4512:74;4567:17;;;971:17770:28;;4512:74:27;971:17770:28;;4512:74:27;;;-1:-1:-1;;;4567:17:27;4512:74;;;;;;;:::i;:::-;;971:17770:28;;4512:74:27;;;;;;:::i;:::-;4643:53;:::i;:::-;4604:92;;4408:626;;-1:-1:-1;16295:25:28;4047:20:27;971:17770:28;-1:-1:-1;;;;;971:17770:28;;16330:110;;4408:626:27;16486:15:28;;;;16457:270;16486:15;;;971:17770;;;;:::i;:::-;;;;16457:270;;;971:17770;16457:270;;;971:17770;4047:20:27;16457:270:28;;971:17770;16486:15;16457:270;;971:17770;16457:270;;;971:17770;;;16457:270;;;971:17770;;16457:270;;;;971:17770;1246:1:15;;:::i;:::-;971:17770:28;;;;;;;:::i;16330:110::-;16457:270;16402:27;;-1:-1:-1;16402:27:28;;;;;;;;;;;;;;;;16486:15;16402:27;;:::i;:::-;16370:59;16330:110;;;;;;4408:626:27;971:17770:28;;;4875:48:27;971:17770:28;;;;:::i;4875:48:27:-;4836:87;;4408:626;;;4235:160;-1:-1:-1;4235:160:27;;;;971:17770:28;;;;;;-1:-1:-1;;971:17770:28;;;;;6099:41:20;:5;:41;:::i;:::-;6554:47;:8;:47;:::i;:::-;971:17770:28;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5590:13:20;;971:17770:28;;;;5625:4:20;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;971:17770:28;;;;;;;;;;;;;;;;;;-1:-1:-1;;971:17770:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;971:17770:28;;;;;;;;;;;;;2894:38:27;971:17770:28;;;;;;:::i;:::-;2894:15:27;-1:-1:-1;;;;;2894:15:27;;:::i;:::-;971:17770:28;;-1:-1:-1;971:17770:28;;2894:38:27;;;;;;-1:-1:-1;;;2894:38:27;;971:17770:28;2894:38:27;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;2894:38:27;-1:-1:-1;2894:38:27;;;971:17770:28;2949:27:27;;-1:-1:-1;2949:27:27;971:17770:28;;;;-1:-1:-1;2949:27:27;2894:38;;;;971:17770:28;2894:38:27;971:17770:28;2894:38:27;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;971:17770:28:-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;-1:-1:-1;;971:17770:28;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;-1:-1:-1;6264:24:28;;;;;;971:17770;6439:32;;;:::i;:::-;971:17770;;;;;;;:::i;6290:3::-;6328:16;6309:36;6328:16;971:17770;6328:16;;;;:::i;:::-;6309:36;:::i;:::-;;971:17770;6249:13;;971:17770;;;;;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;971:17770:28;;-1:-1:-1;17010:24:28;;;;;;971:17770;15903:22;971:17770;;;;;;;;:::i;:::-;-1:-1:-1;971:17770:28;;;;:::i;:::-;15903:22;:::i;17036:3::-;17078:16;15903:22;17078:16;971:17770;17078:16;;;;:::i;:::-;971:17770;;;;;;;:::i;15903:22::-;;971:17770;16995:13;;971:17770;;;-1:-1:-1;;971:17770:28;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;971:17770:28;;;;3628:10:31;971:17770:28;;;;;3657:20:31;971:17770:28;;;3657:20:31;971:17770:28;;;;;;;3657:25:31;971:17770:28;;3780:46:31;;971:17770:28;;3707:41:31;971:17770:28;3878:19:31;971:17770:28;;;;;;3707:41:31;:::i;:::-;971:17770:28;;;;;;3780:46:31;971:17770:28;3787:15:31;971:17770:28;3780:46:31;:::i;:::-;971:17770:28;;;;-1:-1:-1;;;971:17770:28;;;;;;;;;;3878:19:31;971:17770:28;;;;;;;;3628:10:31;;3912:39;;971:17770:28;;;;3912:39:31;971:17770:28;;;;;-1:-1:-1;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;971:17770:28;;;;4597:44:31;-1:-1:-1;971:17770:28;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4146:10:31;4100:20;4109:10;-1:-1:-1;;;;;971:17770:28;3002:8:31;971:17770:28;3002:8:31;971:17770:28;;;3002:8:31;971:17770:28;;;4100:20:31;4146:10;971:17770:28;4442:14:31;971:17770:28;;;4291:76:31;971:17770:28;;4130:26:31;971:17770:28;;-1:-1:-1;;;;;971:17770:28;;;;;;;-1:-1:-1;;;;;971:17770:28;;;4130:26:31;4174:9;4166:42;4174:9;;;4166:42;:::i;:::-;971:17770:28;;;;;;;;4218:63:31;4226:21;;;4218:63;:::i;:::-;4320:15;-1:-1:-1;4299:36:31;4291:76;:::i;:::-;971:17770:28;;;;;;;4442:14:31;971:17770:28;;;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;4109:10:31;;4471:50;;;971:17770:28;4549:38:31;;;;:::i;:::-;;4597:44;:::i;971:17770:28:-;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;971:17770:28;;;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;971:17770:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;-1:-1:-1;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;971:17770:28;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;971:17770:28;;;;;;;;;;10624:5;971:17770;;;;;;;:::o;:::-;;:::i;:::-;;11542:1;971:17770;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;-1:-1:-1;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;2989:114:27;971:17770:28;;;3076:20:27;;;:4;:20;:4;;:20;;;;;;;-1:-1:-1;3076:20:27;;;3069:27;2989:114;:::o;3076:20::-;;;;;;;;;;;;;;;;;:::i;:::-;;;971:17770:28;;;;;;;;:::i;3076:20:27:-;;;-1:-1:-1;3076:20:27;;971:17770:28;-1:-1:-1;;971:17770:28;;;;;;;:::o;6503:1650:27:-;;;;;;6820:14;;6868:20;;;;971:17770:28;;;7278:19:27;;7274:703;;6503:1650;8040:9;;;;;1679:4;;8052:15;;;971:17770:28;1679:4:27;8088:48;-1:-1:-1;28175:9:27;;28218:21;28283:14;;28330:27;;;;:::i;:::-;28392:17;971:17770:28;28392:17:27;;;971:17770:28;-1:-1:-1;;;;;971:17770:28;;;;28542:15:27;28704:60;28542:15;;;971:17770:28;1679:4:27;;28743:20;;;971:17770:28;28704:60:27;;:::i;:::-;1679:4;;-1:-1:-1;;;;;;;971:17770:28;;;28840:23:27;971:17770:28;;;;;;;30833:14:27;971:17770:28;;;;-1:-1:-1;;;;;971:17770:28;;;;28836:1846:27;;30717:9;1679:4;;;;971:17770:28;30833:14:27;;971:17770:28;30865:23:27;;;;30861:626;30865:23;;;971:17770:28;6820:14:27;971:17770:28;:::i;:::-;31098:146:27;6820:14;31098:146;;6820:14;31098:146;30861:626;1679:4;31358:40;1679:4;;31358:40;-1:-1:-1;;;;;971:17770:28;1822:8:31;971:17770:28;1822:8:31;971:17770:28;;;1822:8:31;971:17770:28;;;;1679:4:27;971:17770:28;;;1674:305:31;;31358:40:27;;971:17770:28;6820:14:27;971:17770:28;:::i;:::-;8081:55:27;6503:1650;:::o;28836:1846::-;28952:25;;971:17770:28;;28995:1673:27;;28836:1846;;;;;30833:14;28836:1846;;;;;28995:1673;29122:9;;;;;;;;971:17770:28;;-1:-1:-1;971:17770:28;:::i;:::-;29325:31:27;29252:9;29325:31;;971:17770:28;;;29291:160:27;;;;;;971:17770:28;;;-1:-1:-1;971:17770:28;;;29291:160:27;971:17770:28;;29291:160:27;;;;;;;971:17770:28;29291:160:27;;971:17770:28;29291:160:27;;;;;;:::i;:::-;;;;;;;;28995:1673;-1:-1:-1;29287:901:27;;30011:150;30090:41;;:::i;:::-;971:17770:28;;30011:150:27;;;-1:-1:-1;;;30011:150:27;;29291:160;30011:150;;;:::i;29287:901::-;30833:14;29287:901;30581:68;29287:901;30254:9;1679:4;;30525:9;;1679:4;;971:17770:28;;30581:68:27;;:::i;:::-;28995:1673;;;;;;;29291:160;;;-1:-1:-1;29291:160:27;;;:::i;:::-;;;:::i;:::-;;;;7274:703;-1:-1:-1;971:17770:28;;;378:118:9;-1:-1:-1;;;;;971:17770:28;;;;378:118:9;;;;7398:8:27;7394:573;;7274:703;;;;;;7394:573;1679:4;7448:41;;:::i;:::-;971:17770:28;;7514:25:27;;;;;;378:118:9;7514:25:27;;;1679:4;;;;;;:::i;971:17770:28:-;-1:-1:-1;;971:17770:28;;;;;;;;:::o;:::-;-1:-1:-1;;971:17770:28;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;-1:-1:-1;971:17770:28;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;971:17770:28;;;;:::o;:::-;;;:::o;:::-;;;;:::o;:::-;;;;-1:-1:-1;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;971:17770:28;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;-1:-1:-1;971:17770:28;;;;;;;:::i;:::-;-1:-1:-1;971:17770:28;;-1:-1:-1;971:17770:28;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;2469:300:27:-;2671:91;2469:300;2600:54;;;:::i;:::-;3445:20;;:::i;:::-;971:17770:28;2195:281:32;971:17770:28;;;;;;:::i;:::-;1740:12:32;;;971:17770:28;;1785:25:32;;;;2195:281;1785:82;;;1900:31;1915:15;;;;;;:::i;:::-;1900:31;;:::i;:::-;1968:23;;;;971:17770:28;2030:25:32;;;971:17770:28;2083:14:32;2138:39;2153:23;2083:14;;;971:17770:28;2153:23:32;;;;;;:::i;2138:39::-;971:17770:28;;;2195:281:32;;;1740:12;2195:281;;;;971:17770:28;;;;;;;;;;;;-1:-1:-1;;;;;971:17770:28;;;;1092:197:32;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2195:281:32;971:17770:28;5014:47:32;;2671:91:27;3445:249:21;3326:374;3445:249;;;;;;;;;;;;;;;3326:374;;1785:82:32;1851:15;2195:281;1851:15;;;;;;:::i;:::-;3287:193:10;;1851:15:32;3287:193:10;;;;;1785:82:32;;;971:17770:28;;;;:::o;:::-;;;-1:-1:-1;;;971:17770:28;;;;;;;;;;;;;;;;;;;26682:51:27;971:17770:28;;27182:3:27;971:17770:28;;;;;;27182:3:27;971:17770:28;;;;;;;:::o;1181:103:15:-;;;:::i;:::-;2202:49:27;971:17770:28;;-1:-1:-1;;;2202:49:27;;971:17770:28;2202:49:27;;;971:17770:28;;;;;;;;;;;;;;;;2202:49:27;971:17770:28;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;971:17770:28;;-1:-1:-1;971:17770:28;;;;-1:-1:-1;971:17770:28;;;;-1:-1:-1;971:17770:28;;;;-1:-1:-1;971:17770:28;;;;-1:-1:-1;971:17770:28;;;;-1:-1:-1;971:17770:28;;;;;;:::o;1181:103:15:-;;;;;;:::i;:::-;16486:15:28;971:17770;;:::i;:::-;16002:2;;;;:::i;:::-;16126:40;;;;:::i;:::-;3723:1327:27;;;;3979:9;4047:20;;;971:17770:28;4140:15:27;;4047:20;4140:15;;;;:::i;:::-;4205:16;;971:17770:28;4235:160:27;;;;;1181:103:15;971:17770:28;;-1:-1:-1;;;4412:51:27;4425:38;;4567:17;4643:53;4567:17;;4512:74;4567:17;;;971:17770:28;;4512:74:27;971:17770:28;;4512:74:27;;;-1:-1:-1;;;4567:17:27;4512:74;;;;;;;:::i;4643:53::-;4604:92;;4408:626;;16486:15:28;971:17770;;;;:::i;:::-;;;;16457:270;;;971:17770;16457:270;;;971:17770;4047:20:27;16457:270:28;;971:17770;16486:15;16457:270;;971:17770;16457:270;;;971:17770;-1:-1:-1;16457:270:28;;;971:17770;4047:20:27;16457:270:28;;;971:17770;1246:1:15;;;:::i;4408:626:27:-;971:17770:28;;;4875:48:27;971:17770:28;;;;:::i;4875:48:27:-;4836:87;;4408:626;;;4235:160;-1:-1:-1;4235:160:27;;;;971:17770:28;;;;;;;:::i;:::-;-1:-1:-1;971:17770:28;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;971:17770:28;;;;;;;;-1:-1:-1;;971:17770:28;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;14901:1;971:17770;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;14477:1165::-;;;;;;;;971:17770;;:::i;:::-;14869:21;;;;;;;:::i;:::-;:33;;;14865:286;;15491:144;15182:13;;;;:::i;:::-;15433:40;971:17770;;:::i;:::-;15420:2;;;:::i;:::-;15433:40;;:::i;:::-;15491:144;;;;:::i;14865:286::-;15039:12;;;;;;;;;:::i;:::-;971:17770;;;;;;:::i;:::-;14901:1;971:17770;;14901:1;15009:43;;;971:17770;;15009:43;;971:17770;;;;;;:::i;:::-;14901:1;971:17770;;14901:1;15009:43;15070:29;;971:17770;14901:1;971:17770;15070:29;;971:17770;;;;;;;:::i;:::-;-1:-1:-1;971:17770:28;;15009:43;14925:215;;971:17770;;14925:215;;971:17770;14918:222;:::o;971:17770::-;;;;;;;:::i;:::-;-1:-1:-1;971:17770:28;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;971:17770:28;;-1:-1:-1;971:17770:28;;;;-1:-1:-1;971:17770:28;;;;-1:-1:-1;971:17770:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;-1:-1:-1;971:17770:28;;;;:::i;:::-;;;;;;;:::o;:::-;-1:-1:-1;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;2687:179:31:-;2829:30;971:17770:28;-1:-1:-1;;;;;2777:37:31;2804:9;2777:37;-1:-1:-1;;;;;971:17770:28;1822:8:31;971:17770:28;1822:8:31;971:17770:28;;;1822:8:31;971:17770:28;;;;1679:4:27;971:17770:28;;;1674:305:31;;2777:37;971:17770:28;;;;;;;2829:30:31;;2687:179::o;971:17770:28:-;;;;:::o;:::-;;;;-1:-1:-1;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;-1:-1:-1;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;971:17770:28;;;;;;;;;;;;;;;;;;;;2486:2;971:17770;;;;2486:2;971:17770;:::o;:::-;;;;;;1230:2:29;971:17770:28;;;;;;;1230:2:29;971:17770:28;;-1:-1:-1;;971:17770:28;;:::o;:::-;;;;;;531:2:32;971:17770:28;;;;;;;531:2:32;971:17770:28;;-1:-1:-1;;971:17770:28;;:::o;:::-;;-1:-1:-1;;971:17770:28;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;971:17770:28;;;;;;;;;;;;;-1:-1:-1;971:17770:28:o;:::-;;;;;;;:::i;:::-;2980:14;971:17770;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;1677:1645::-;971:17770;;:::i;:::-;;;;:::i;:::-;1858:6;;;;:::i;:::-;2011:47;;;;:::i;:::-;2069:98;;;;;;;;:::i;:::-;2211:42;971:17770;2225:27;:17;;:27;971:17770;-1:-1:-1;;;;;971:17770:28;;;;2211:42;:::i;:::-;2307:17;2420:15;2293:39;2307:24;:17;;-1:-1:-1;;;;;971:17770:28;;;;;2293:39;971:17770;;;:::i;:::-;;2420:15;;;;;:::i;:::-;2467:69;2486:2;2467:21;;2486:2;;2499:23;2507:14;2564:22;2507:14;2491:32;2507:14;;:::i;:::-;2499:23;;:::i;:::-;971:17770;;;;2564:22;971:17770;-1:-1:-1;;;;;971:17770:28;;2725:18;;;;971:17770;2757:17;2879:23;2420:15;2757:17;;971:17770;2879:23;;971:17770;;;;:::i;:::-;;;;2701:212;;;971:17770;2420:15;2701:212;;971:17770;2879:23;2701:212;;971:17770;2725:18;2701:212;;971:17770;;;:::i;:::-;3008:45;;;;:93;;;2467:69;3004:211;;2467:69;971:17770;;;:::i;:::-;;;;2701:212;3231:84;;971:17770;2420:15;3231:84;;971:17770;2879:23;3231:84;;971:17770;2725:18;3231:84;;971:17770;1677:1645;:::o;3004:211::-;3178:25;;;;;;:::i;:::-;3134:70;971:17770;;:::i;:::-;-1:-1:-1;;;;;971:17770:28;;;;;;3134:70;2701:212;3134:70;;971:17770;3004:211;;;;3008:93;3057:44;2053:4;3057:44;;;3008:93;;2467:69;;;2564:22;-1:-1:-1;2564:22:28;:::i;971:17770::-;;;;;:::o;:::-;;;;-1:-1:-1;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;26682:51:27;22885:2364;;;;-1:-1:-1;23244:9:27;;23293:17;;;23348:7;;;;;:::i;:::-;23560;33278:67;;23513:21;;;:::i;:::-;23490:20;;;971:17770:28;33561:66:27;;33499:134;23560:7;33278:67;23763:28;;971:17770:28;23824:26:27;24058:89;-1:-1:-1;971:17770:28;23824:26:27;;;;971:17770:28;23824:49:27;23876:20;;;971:17770:28;23824:72:27;23911:37;;;971:17770:28;23824:124:27;23951:31;;;971:17770:28;23824:158:27;23985:20;;;971:17770:28;23824:181:27;24020:28;;;971:17770:28;23824:224:27;24066:33;;24058:89;:::i;:::-;24296:108;24184:28;;10020:20;9803:28;;;971:17770:28;9834:20:27;;;971:17770:28;1679:4:27;9873:37;;;971:17770:28;1679:4:27;9913:31;;;971:17770:28;1679:4:27;9947:26;;;971:17770:28;1679:4:27;10020:20;;971:17770:28;;9633:424:27;;24184:28;24222:17;33278:67;24222:17;;971:17770:28;3458:38:32;23911:37:27;3472:23:32;;971:17770:28;475:2:32;;;;3458:38;24296:108:27;;;-1:-1:-1;24296:108:27;:::i;:::-;971:17770:28;24415:112:27;-1:-1:-1;24423:54:27;971:17770:28;;;-1:-1:-1;;;;;971:17770:28;;;;23490:20:27;24463:13;;971:17770:28;24423:54:27;;:::i;:::-;24415:112;:::i;:::-;24575:9;1679:4;;24566:41;24562:138;;23876:20;24773:9;-1:-1:-1;;;;;971:17770:28;24796:17:27;24773:9;24796:17;;971:17770:28;-1:-1:-1;;;;;971:17770:28;;;;;24796:31:27;;:62;;;22885:2364;24792:186;;22885:2364;23911:37;25036:9;;25019:40;25020:32;25021:24;23951:31;25036:9;;25021:24;;:::i;25019:40::-;25093:23;23876:20;25093:23;;971:17770:28;25195:9:27;1679:4;;25207:25;;971:17770:28;1679:4:27;25165:18;;971:17770:28;22885:2364:27:o;24792:186::-;24911:56;;25021:24;24911:56;;;23951:31;23911:37;24911:56;25019:40;25020:32;24911:56;;;-1:-1:-1;24911:56:27;:::i;:::-;24874:93;;24792:186;;;;;;;;;;;24796:62;;16161:4:28;24796:62:27;;24562:138;33278:67;971:17770:28;-1:-1:-1;;;24634:51:27;;;;-1:-1:-1;24634:51:27;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;22885:2364:27;;;;;971:17770:28;23244:9:27;;23293:17;;23348:7;;;;:::i;:::-;23560;33278:67;;23513:21;;;:::i;:::-;23490:20;;;971:17770:28;33561:66:27;;33499:134;23560:7;33278:67;23763:28;;971:17770:28;23824:26:27;24058:89;23824:26;971:17770:28;23824:26:27;;;;971:17770:28;23824:49:27;23876:20;;;971:17770:28;23824:72:27;23911:37;;;971:17770:28;23824:124:27;23951:31;;;971:17770:28;23824:158:27;23985:20;;;971:17770:28;23824:181:27;24020:28;;;971:17770:28;23824:224:27;24066:33;;24058:89;:::i;:::-;24296:108;24184:28;;10020:20;9803:28;;;971:17770:28;9834:20:27;;;971:17770:28;1679:4:27;9873:37;;;971:17770:28;1679:4:27;9913:31;;;971:17770:28;1679:4:27;9947:26;;;971:17770:28;1679:4:27;10020:20;;971:17770:28;;9633:424:27;;24184:28;24222:17;33278:67;24222:17;;971:17770:28;3458:38:32;23911:37:27;3472:23:32;;971:17770:28;475:2:32;;;;3458:38;24296:108:27;;;;;:::i;:::-;971:17770:28;24415:112:27;971:17770:28;24423:54:27;971:17770:28;;;-1:-1:-1;;;;;971:17770:28;;;;23490:20:27;24463:13;;971:17770:28;24423:54:27;;:::i;24415:112::-;24575:9;1679:4;;24566:41;24562:138;;23876:20;24773:9;-1:-1:-1;;;;;971:17770:28;24796:17:27;24773:9;24796:17;;971:17770:28;-1:-1:-1;;;;;971:17770:28;;;;;24796:31:27;;:62;;;;22885:2364;24792:186;;;22885:2364;25036:9;23911:37;25036:9;;25019:40;25020:32;25021:24;23951:31;25036:9;;25021:24;;:::i;24792:186::-;25021:24;24911:56;;23951:31;24911:56;;;;25019:40;25020:32;24911:56;;;23911:37;24911:56;;;:::i;:::-;24874:93;;24792:186;;;;;;;;;;24796:62;;;;;;11814:1264:28;;;;;;;;971:17770;;:::i;:::-;12228:29;12267:2;12228:29;;;;;;:::i;:::-;:41;;;12224:294;;12850:221;971:17770;12768:13;971:17770;12631:70;971:17770;;:::i;:::-;12601:19;;;;;:::i;:::-;12691:9;12631:70;;;:::i;12768:13::-;12819:12;;;:::i;:::-;12850:221;:::i;12224:294::-;12406:12;;;;;;;;;:::i;:::-;971:17770;;;;;;:::i;:::-;12328:30;971:17770;;12328:30;12376:43;;;971:17770;;12376:43;;971:17770;;;:::i;:::-;12328:30;971:17770;;12328:30;12376:43;12437:29;;971:17770;12328:30;971:17770;12437:29;;971:17770;;;:::i;:::-;;-1:-1:-1;971:17770:28;;12376:43;12292:215;;971:17770;;12292:215;;971:17770;12285:222;:::o;971:17770::-;;;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;971:17770:28;;;;;;;;;;;;;;:::o;6938:751::-;;;971:17770;7065:19;-1:-1:-1;;;;;971:17770:28;;;7104:92;;;;;;;971:17770;;;;;;7104:92;;;;;;971:17770;7104:92;;-1:-1:-1;;;;;7173:12:28;971:17770;7104:92;;;;:::i;:::-;;;;;;;;6938:751;-1:-1:-1;7100:583:28;;7208:475;;;;:::i;:::-;971:17770;7104:92;971:17770;;7254:17;7250:164;;7454:28;7464:17;971:17770;;7464:17;:::i;:::-;7454:28;:::i;:::-;7104:92;7535:3;971:17770;;7516:17;;;;;7578:9;;;971:17770;7578:9;;;:::i;:::-;971:17770;;;;;7578:9;7558:29;7569:5;;;:::i;:::-;7558:29;971:17770;7558:29;;;;:::i;:::-;;971:17770;7501:13;;7516:17;;7635:37;7516:17;;;7635:37;971:17770;;;7635:37;;;;;;:::i;:::-;7615:57;7100:583;6938:751::o;7250:164::-;7386:12;;;;:::i;:::-;971:17770;;7371:28::o;7104:92::-;;;971:17770;7104:92;;;:::i;:::-;;;;1394:65:31;1441:10;;;:::i;1107:452:9:-;1204:349;1679:4:27;1204:349:9;;;;1107:452;1204:349;;;;;;;;;;;;;;;;;;1107:452;:::o;1204:349::-;;1679:4:27;1204:349:9;;971:17770:28;;-1:-1:-1;971:17770:28;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3845:262:20:-;-1:-1:-1;;;;;3938:11:20;971:17770:28;3929:4:20;3921:28;:63;;;3845:262;3917:184;;;4007:22;4000:29;:::o;3917:184::-;971:17770:28;;4204:80:20;;;971:17770:28;2079:95:20;971:17770:28;;4226:11:20;971:17770:28;2079:95:20;;971:17770:28;4239:14:20;2079:95;;;971:17770:28;4255:13:20;2079:95;;;971:17770:28;3929:4:20;2079:95;;;971:17770:28;2079:95:20;4204:80;;;;;;:::i;:::-;971:17770:28;4194:91:20;;4060:30;:::o;3921:63::-;3970:14;;3953:13;:31;3921:63;;7695:829:28;7894:1;7897:24;;;;;;7695:829;;;:::o;7923:3::-;971:17770;;;;:::i;:::-;8018:16;;;;;:::i;:::-;8075:6;;;:::i;:::-;8096:44;;;;:::i;:::-;8215:15;;;;;;;;;:::i;:::-;:27;;;8211:74;;8379:48;7894:1;8409:17;;;;;;971:17770;8379:48;;:::i;:::-;8459:27;;8409:17;8459:27;;;;;;;;;;:::i;:::-;;7882:13;971:17770;7882:13;;8211:74;8262:8;;;;971:17770;;;;;:::i;17269:332::-;17407:84;17269:332;17435:15;;;;;;:::i;:::-;971:17770;17467:23;971:17770;;;;;;:::i;:::-;17467:23;;;;;:::i;:::-;17407:84;;;;:::i;:::-;971:17770;;17501:94;;17269:332;:::o;17501:94::-;971:17770;;17435:15;971:17770;17559:25;;;-1:-1:-1;;;17559:25:28;;-1:-1:-1;17559:25:28;;;971:17770;17435:15;971:17770;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;8530:3278::-;;;;971:17770;;:::i;:::-;-1:-1:-1;8916:17:28;;;;9180:57;971:17770;;;:::i;:::-;;9124:9;-1:-1:-1;9077:57:28;9124:9;9077:57;13578:37;9077:57;:::i;:::-;9227:9;971:17770;;;9180:57;;;;;-1:-1:-1;;;9180:57:28;;;;;;;:::i;:::-;;:12;;-1:-1:-1;;;;;9180:12:28;971:17770;9180:57;;;;;;;-1:-1:-1;;;9180:57:28;;;8912:1483;9148:89;;;;9317:14;;;9313:299;;8912:1483;;10422:21;8912:1483;;;;;;;10422:21;;:::i;:::-;10453:27;-1:-1:-1;;;;;11118:12:28;971:17770;10491:1077;;10499:15;;;;;:::i;:::-;10498:35;;;10603:9;10615:14;;;:::i;:::-;-1:-1:-1;10599:323:28;;10954:15;;;;;;;;-1:-1:-1;10954:15:28;;11012:54;10953:21;10954:15;;11118:57;10954:15;;:::i;:::-;971:17770;;;;10953:21;11012:54;;13578:37;11012:54;:::i;:::-;11165:9;;971:17770;;;11118:57;;;;;;;-1:-1:-1;;;11118:57:28;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;11118:57:28;;;10491:1077;-1:-1:-1;11190:368:28;;;11317:19;;;11363:10;11317:19;11363:10;:::i;:::-;11391:21;11190:368;;10491:1077;;;;;;;;;11190:368;11533:10;;;;;;;;;:::i;:::-;11190:368;;;11118:57;;;;;;;;;-1:-1:-1;11118:57:28;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;10599:323;10779:12;;;;;;;;;;;;:::i;:::-;971:17770;;;:::i;:::-;;-1:-1:-1;971:17770:28;;-1:-1:-1;10749:43:28;;;971:17770;;10749:43;;971:17770;;;:::i;:::-;;;;10749:43;10841:48;;971:17770;;10841:48;;971:17770;;;:::i;:::-;10696:31;971:17770;;10656:251;10749:43;10656:251;;971:17770;;10656:251;;971:17770;10649:258;:::o;10498:35::-;;;;;;;;;;11661:60;10498:35;;971:17770;;:::i;:::-;;;;;;11661:60;;;971:17770;;11661:60;971:17770;11661:60;;971:17770;;;:::i;9313:299::-;971:17770;;;;;;;;;;9450:51;971:17770;;:::i;:::-;-1:-1:-1;971:17770:28;;;;;9450:51;;;971:17770;;9180:57;;;;;;;;;-1:-1:-1;9180:57:28;;;;;;:::i;:::-;;;;;;8912:1483;9906:57;9757:9;;;-1:-1:-1;9803:57:28;9850:9;9803:57;13578:37;9803:57;:::i;9906:::-;;:12;;-1:-1:-1;;;;;9906:12:28;971:17770;9906:57;;;;;;;-1:-1:-1;;;9906:57:28;;;8912:1483;9874:89;;;9986:24;9874:89;10001:9;;9986:24;;:::i;:::-;10090:14;;;10086:299;;8912:1483;;10422:21;8912:1483;;;;;;;;9906:57;;;;;;;;;;-1:-1:-1;9906:57:28;;;;;;:::i;:::-;;;;;;;;8530:3278;;;;971:17770;;:::i;:::-;-1:-1:-1;8916:17:28;;;;9180:57;971:17770;;;:::i;:::-;;9124:9;-1:-1:-1;9077:57:28;9124:9;9077:57;15468:4;9077:57;:::i;9180:::-;;:12;;-1:-1:-1;;;;;9180:12:28;971:17770;9180:57;;;;;;;-1:-1:-1;;;9180:57:28;;;8912:1483;9148:89;;;;9317:14;;;9313:299;;8912:1483;;10422:21;8912:1483;;;;;;10422:21;;:::i;:::-;10453:27;-1:-1:-1;;;;;11118:12:28;971:17770;10491:1077;;10499:15;;;;;:::i;:::-;10498:35;;;10603:9;10615:14;;;:::i;:::-;-1:-1:-1;10599:323:28;;10954:15;;;;;;;;-1:-1:-1;10954:15:28;;11012:54;10953:21;10954:15;;11118:57;10954:15;;:::i;10953:21::-;11012:54;;15468:4;11012:54;:::i;11118:57::-;;;;;;;;;;-1:-1:-1;;;11118:57:28;;;10491:1077;-1:-1:-1;11190:368:28;;;11317:19;;;11363:10;11317:19;11363:10;:::i;:::-;11391:21;11190:368;;10491:1077;;;;;;;;;11190:368;11533:10;;;;;;;;;:::i;:::-;11190:368;;;11118:57;;;;;;;;;-1:-1:-1;11118:57:28;;;;;;:::i;:::-;;;;;;9180;;;;;;;;;-1:-1:-1;9180:57:28;;;;;;:::i;:::-;;;;;;8912:1483;9906:57;9757:9;;;-1:-1:-1;9803:57:28;9850:9;9803:57;15468:4;9803:57;:::i;9906:::-;;:12;;-1:-1:-1;;;;;9906:12:28;971:17770;9906:57;;;;;;;-1:-1:-1;;;9906:57:28;;;8912:1483;9874:89;;;9986:24;9874:89;10001:9;;9986:24;;:::i;:::-;10090:14;;;10086:299;;8912:1483;;10422:21;8912:1483;;;;;;;;9906:57;;;;;;;;;;-1:-1:-1;9906:57:28;;;;;;:::i;:::-;;;;;;;;8530:3278;;;;971:17770;;:::i;:::-;-1:-1:-1;8916:17:28;;;;9180:57;971:17770;;;:::i;:::-;;9124:9;-1:-1:-1;9077:57:28;9124:9;9077:57;12884:46;9077:57;:::i;9180:::-;;:12;;-1:-1:-1;;;;;9180:12:28;971:17770;9180:57;;;;;;;-1:-1:-1;;;9180:57:28;;;8912:1483;9148:89;;;;9317:14;;;9313:299;;8912:1483;;10422:21;8912:1483;;;;;;10422:21;;:::i;:::-;10453:27;-1:-1:-1;;;;;11118:12:28;971:17770;10491:1077;;10499:15;;;;;:::i;:::-;10498:35;;;10603:9;10615:14;;;:::i;:::-;-1:-1:-1;10599:323:28;;10954:15;;;;;;;;-1:-1:-1;10954:15:28;;11012:54;10953:21;10954:15;;11118:57;10954:15;;:::i;10953:21::-;11012:54;;12884:46;11012:54;:::i;11118:57::-;;;;;;;;;;-1:-1:-1;;;11118:57:28;;;10491:1077;-1:-1:-1;11190:368:28;;;11317:19;;;11363:10;11317:19;11363:10;:::i;:::-;11391:21;11190:368;;10491:1077;;;;;;;;;11190:368;11533:10;;;;;;;;;:::i;:::-;11190:368;;;11118:57;;;;;;;;;-1:-1:-1;11118:57:28;;;;;;:::i;:::-;;;;;;9180;;;;;;;;;-1:-1:-1;9180:57:28;;;;;;:::i;:::-;;;;;;8912:1483;9906:57;9757:9;;;-1:-1:-1;9803:57:28;9850:9;9803:57;12884:46;9803:57;:::i;9906:::-;;:12;;-1:-1:-1;;;;;9906:12:28;971:17770;9906:57;;;;;;;-1:-1:-1;;;9906:57:28;;;8912:1483;9874:89;;;9986:24;9874:89;10001:9;;9986:24;;:::i;:::-;10090:14;;;10086:299;;8912:1483;;10422:21;8912:1483;;;;;;;;9906:57;;;;;;;;;;-1:-1:-1;9906:57:28;;;;;;:::i;:::-;;;;;;;;531:2:32;;;;:::o;:::-;;971:17770:28;;-1:-1:-1;;;531:2:32;;;;;;;;;;;971:17770:28;531:2:32;971:17770:28;;;531:2:32;;;;;;:::o;:::-;;971:17770:28;;-1:-1:-1;;;531:2:32;;;;;;;;;;;971:17770:28;531:2:32;971:17770:28;;;531:2:32;;8343:1086:27;8901:23;8343:1086;8498:30;8515:13;;;:::i;:::-;-1:-1:-1;;;;;971:17770:28;;;;8498:30:27;8554:12;;;971:17770:28;8554:12:27;8538:13;;971:17770:28;8631:53:27;8660:23;;;971:17770:28;2489:162:32;971:17770:28;475:2:32;;;971:17770:28;;2489:162:32;;8631:53:27;8607:20;;;971:17770:28;8577:28:27;;;971:17770:28;8723:25:27;;;971:17770:28;8694:26:27;;;971:17770:28;8813:44:27;8694:26;8842:14;;971:17770:28;2489:162:32;971:17770:28;475:2:32;;;971:17770:28;;2489:162:32;;8813:44:27;8789:20;;;971:17770:28;8759:28:27;;;971:17770:28;8901:23:27;;;;;:::i;:::-;8938:27;;;;8934:489;;8343:1086;;;:::o;8934:489::-;9235:62;8989:65;9383:29;8989:65;8981:107;531:2:32;8901:23:27;8989:65;;;8981:107;:::i;:::-;9235:62;:::i;:::-;8723:25;9184:31;;971:17770:28;8660:23:27;9145:37;;971:17770:28;9184:31:27;9311:58;-1:-1:-1;;;;;971:17770:28;;9319:23:27;;9311:58;:::i;:::-;9383:17;971:17770:28;-1:-1:-1;;;;;971:17770:28;;;;16644:974:27;;;;16909:9;16962:14;;;17100:48;-1:-1:-1;;;;;17010:17:27;;;971:17770:28;;17067:14:27;;;971:17770:28;17100:48:27;;:::i;:::-;17099:49;17095:146;;17287:37;;17366:73;17287:37;;971:17770:28;17366:73:27;;;;;:::i;:::-;17338:101;;17466:9;;1679:4;;17457:43;17453:149;;16644:974;:::o;17453:149::-;17067:14;971:17770:28;;-1:-1:-1;;;17527:60:27;;;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;26682:51:27;17095:146;17175:51;971:17770:28;17067:14:27;971:17770:28;17175:51:27;-1:-1:-1;;;17175:51:27;;;;;971:17770:28;17067:14:27;971:17770:28;;;;;;;;;;;;;;17175:51:27;971:17770:28;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;971:17770:28;;;:::o;896:503:29:-;1042:15;;;;;;:::i;:::-;1072:28;;1071:29;1072:28;;;;:::i;1071:29::-;1067:68;;1183:13;1163:34;1183:13;;:::i;:::-;1163:34;:::i;:::-;1211:21;1230:2;1211:21;;1230:2;;971:17770:28;;1042:15:29;971:17770:28;1265:26:29;;;;;;;;971:17770:28;;;;;;;;;;;;;1207:186:29;1367:13;1340:41;1367:13;;;;:::i;:::-;971:17770:28;;1340:41:29;1042:15;971:17770:28;1340:41:29;;;;;;;;;:::i;1067:68::-;1116:8;;;971:17770:28;1116:8:29;:::o;12469:1091:27:-;;;13242:83;12469:1091;12796:14;;971:17770:28;-1:-1:-1;;;;;12954:17:27;971:17770:28;;;;12908:11:27;;;;;;;;:::i;:::-;;;-1:-1:-1;12908:11:27;:::i;:::-;12954:17;971:17770:28;;12985:31:27;-1:-1:-1;13034:23:27;;13030:182;;;;12469:1091;-1:-1:-1;13242:83:27;:::i;:::-;13339:205;;;12469:1091;:::o;13339:205::-;-1:-1:-1;13391:45:27;;;:::i;:::-;13390:46;13386:144;;12469:1091::o;13386:144::-;12908:11;971:17770:28;-1:-1:-1;;;13467:44:27;;;;-1:-1:-1;13467:44:27;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;13030:182:27;1356:17:31;;;;-1:-1:-1;;;;;971:17770:28;3002:8:31;971:17770:28;3002:8:31;971:17770:28;;;3002:8:31;971:17770:28;;;1356:17:31;971:17770:28;13148:21:27;;;;:49;-1:-1:-1;13148:49:27;13030:182;;;13148:49;-1:-1:-1;1679:4:27;13148:49;;12469:1091;;;;;13242:83;12469:1091;12796:14;;971:17770:28;-1:-1:-1;;;;;12954:17:27;971:17770:28;;;;12908:11:27;;;;;;;;:::i;:::-;;;;;:::i;:::-;12954:17;971:17770:28;;12985:31:27;-1:-1:-1;13034:23:27;;13030:182;;;;12469:1091;13242:83;;:::i;:::-;13339:205;;;12469:1091;;;:::o;13339:205::-;13391:45;;;:::i;:::-;13390:46;13386:144;;12469:1091;:::o;13386:144::-;12908:11;971:17770:28;;-1:-1:-1;;;13467:44:27;;;;;971:17770:28;;;;;;;;;;;;;;;;;;;;26682:51:27;13030:182;1356:17:31;;;;-1:-1:-1;;;;;971:17770:28;3002:8:31;971:17770:28;3002:8:31;971:17770:28;;;3002:8:31;971:17770:28;;;1356:17:31;971:17770:28;13148:21:27;;;;;;:49;-1:-1:-1;13148:49:27;13030:182;;;13148:49;1679:4;;13148:49;;1187:234:0;-1:-1:-1;;;;;971:17770:28;-1:-1:-1;971:17770:28;1373:19:0;971:17770:28;;;1373:32:0;971:17770:28;1317:2:0;971:17770:28;1317:2:0;-1:-1:-1;971:17770:28;;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;1373:32:0;971:17770:28;;;1373:34:0;;;;:::i;:::-;971:17770:28;;;1373:41:0;1187:234;:::o;1290:346:15:-;637:66;3321:69:19;1413:93:15;;1624:4;637:66;3550:68:19;1290:346:15:o;1413:93::-;1465:30;-1:-1:-1;1465:30:15;;-1:-1:-1;1465:30:15;1642:105;-1:-1:-1;637:66:15;3550:68:19;1642:105:15:o;971:17770:28:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;20262:1109:27:-;20530:34;-1:-1:-1;;;;;20262:1109:27;20530:34;:::i;:::-;971:17770:28;;20574:111:27;;20694:96;;21092:43;-1:-1:-1;;;;;21092:43:27;;:::i;:::-;971:17770:28;;21145:105:27;;21259:106;;20262:1109::o;21259:106::-;971:17770:28;;-1:-1:-1;;;21300:54:27;;;;-1:-1:-1;21300:54:27;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;21145:105:27;971:17770:28;;-1:-1:-1;;;21198:41:27;;;;-1:-1:-1;21198:41:27;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;20694:96:27;971:17770:28;;-1:-1:-1;;;20735:44:27;;;;-1:-1:-1;20735:44:27;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;20574:111:27;971:17770:28;;-1:-1:-1;;;20633:41:27;;;;-1:-1:-1;20633:41:27;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;985:248:31;;-1:-1:-1;;;;;971:17770:28;;:::i;:::-;;;1112:8:31;971:17770:28;1112:8:31;971:17770:28;;;1149:17:31;971:17770:28;1112:8:31;971:17770:28;1149:17:31;971:17770:28;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;1176:20:31;;971:17770:28;985:248:31:o;31759:508:27:-;31970:28;31905:20;;;971:17770:28;31970:28:27;;971:17770:28;405:35:26;971:17770:28;2492:12:26;;:38;:12;;;2507:13;;2492:38;;1679:4:27;3696:5:10;;;;;;:13;31759:508:27;:::o;3696:13:10:-;;;31759:508:27;:::o;2492:38:26:-;;;;33639:413:27;;1926:5;1679:4;;33774:43;;;33770:90;;33995:3;1679:4;1812:2;1679:4;;971:17770:28;;33639:413:27;:::o;33770:90::-;33837:8;;971:17770:28;33837:8:27;:::o;3408:737:28:-;;;971:17770;;;;;:::i;:::-;3660:15;971:17770;3660:15;;-1:-1:-1;;;971:17770:28;3660:15;;;;:::i;:::-;3727:16;3753:148;971:17770;3753:148;;;;3408:737;-1:-1:-1;971:17770:28;3914:51;3927:38;;971:17770;3998:67;971:17770;3998:67;971:17770;;3998:67;;;-1:-1:-1;;;3998:67:28;;;;;;;;:::i;3910:229::-;971:17770;4113:15;;;;;:::i;:::-;971:17770;;;:::i;3753:148::-;;;;;;;17998:741;;;;;18189:20;:47;;;;17998:741;18185:183;;;18408:2;18381:29;;;18377:310;;17998:741;971:17770;;;;:::i;18377:310::-;18408:2;971:17770;;;;;;18504:21;:26;18500:177;;18377:310;;;;18500:177;971:17770;;;;;;:::i;:::-;;;;;;;;;18624:38;:::o;18185:183::-;971:17770;;;;;;;;:::i;:::-;;;;;;;;;18321:36;:::o;18189:47::-;18213:18;;;:23;18189:47;;;971:17770;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;-1:-1:-1;971:17770:28;;;:::o;:::-;;;;-1:-1:-1;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;971:17770:28;;;:::o;:::-;;;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;971:17770:28;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;:::o;:::-;;;;;-1:-1:-1;971:17770:28;;;;;;;;;;;;;;;;;:::i;4151:1833::-;;971:17770;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;4442:46;4434:54;;4430:837;;971:17770;;;:::i;:::-;5289:37;5281:45;;5277:379;;971:17770;;;5678:29;971:17770;;:::i;:::-;5670:37;5666:279;;971:17770;;-1:-1:-1;;;5955:22:28;;971:17770;5955:22;;;971:17770;;;;;;;;;;;;;26682:51:27;5666:279:28;5771:54;5846:88;5807:17;;5846:88;5807:17;;971:17770;5771:54;;:::i;:::-;971:17770;;;;;5846:88;;;971:17770;5807:17;5846:88;;;;;;;:::i;5277:379::-;3636:23:32;;;971:17770:28;5448:19;3623:37:32;3636:23;5566:79:28;3636:23:32;;971:17770:28;;;2893:118:32;;3623:37;5448:19:28;971:17770;;;;5448:19;971:17770;;5447:45;3636:23:32;5507:19:28;;971:17770;5566:79;971:17770;;5566:79;;;971:17770;5566:79;;;;;;;;:::i;4430:837::-;4612:29;5178:78;4612:29;;-1:-1:-1;;4612:29:28;5057:99;4612:29;5178:78;4612:29;;5057:99;4567:75;4612:29;;;;:::i;:::-;4567:75;;:::i;:::-;4691:26;;;;971:17770;4735:19;4612:29;4735:19;;;531:2:32;4735:19:28;;971:17770;4735:67;4731:192;;4430:837;971:17770;;;;;;;;;;;-1:-1:-1;;971:17770:28;;;;5057:99;;;;;:::i;:::-;;971:17770;;5057:99;;;;;;:::i;:::-;5019:137;971:17770;;5178:78;;;971:17770;5057:99;5178:78;;;;;;;:::i;4731:192::-;971:17770;4838:29;;;:70;:29;;;;:::i;:::-;:70;;;:::i;971:17770::-;4731:192;;;;;4140:516:32;;;971:17770:28;413:2:32;971:17770:28;;;;;;;475:2:32;971:17770:28;;;413:2:32;971:17770:28;;475:2:32;971:17770:28;531:2:32;971:17770:28;;;;;;;;;475:2:32;;;;;;971:17770:28;475:2:32;;;;4140:516::o;2250:397:31:-;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;;;2484:23:31;;;2480:74;;1679:4:27;971:17770:28;;2626:4:31;2250:397;:::o;971:17770:28:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17624:2265:27:-;;-1:-1:-1;17624:2265:27;;;;;;33278:67;;18028:17;;971:17770:28;18093:24:27;18028:17;;;971:17770:28;18047:14:27;17972:91;18047:14;17972:91;33278:67;18047:14;;971:17770:28;18028:17:27;17972:91;;;;;;;;;;;;:::i;:::-;;971:17770:28;;;17972:91:27;;;;;;:::i;:::-;18093:14;:24;971:17770:28;-1:-1:-1;;;;;971:17770:28;;;;18363:1229:27;;;;;;;;-1:-1:-1;18363:1229:27;;;;;;33278:67;18363:1229;;;;;19630:8;;971:17770:28;;;19630:31:27;;17624:2265;19630:72;;;;;17624:2265;19626:205;;;-1:-1:-1;971:17770:28;;;;-1:-1:-1;;971:17770:28;4020:413:10;;;971:17770:28:o;19626:205:27:-;19774:41;;:::i;:::-;971:17770:28;19729:87:27;33278:67;971:17770:28;19729:87:27;;;-1:-1:-1;;;19729:87:27;;17972:91;19729:87;;;:::i;19630:72::-;18363:1229;;19681:2;18363:1229;;;;1679:4;;19665:37;19630:72;;;:31;33278:67;19642:19;;;-1:-1:-1;19630:31:27;;;1712:551:29;;1826:1;-1:-1:-1;1804:62:29;;2015:95;-1:-1:-1;;971:17770:28;;2207:49:29;;1712:551::o;1804:62::-;1843:12;971:17770:28;1843:12:29;:::o;2572:661::-;2688:113;-1:-1:-1;2688:113:29;;;-1:-1:-1;2688:113:29;971:17770:28;;;;;2939:36:29;2935:241;;3208:16;3200:25;3208:16;3192:34;3208:16;971:17770:28;;;;3208:16:29;-1:-1:-1;;971:17770:28;;449:8:29;2935:241;3072:18;:22;449:8;;971:17770:28;;-1:-1:-1;;;3131:34:29;;449:8;3131:34;;;449:8;;;;;971:17770:28;449:8:29;971:17770:28;;;449:8:29;;;3131:34;449:8;;971:17770:28;;-1:-1:-1;;;449:8:29;;;;;;;;;;;971:17770:28;449:8:29;971:17770:28;;;449:8:29;;10311:1671:27;;;;10461:20;10457:1519;;10311:1671;;;;;:::o;10457:1519::-;10514:14;;971:17770:28;-1:-1:-1;;;;;971:17770:28;10553:43:27;;;;;:::i;:::-;10549:495;;11061:18;;11057:121;;11213:2;11195:20;;11191:110;;10480:1;11332:80;:28;:15;;:::i;:::-;-1:-1:-1;;;;;971:17770:28;;;11332:28:27;11366:35;:14;;:35;971:17770:28;11366:35:27;971:17770:28;11332:80:27;;;;-1:-1:-1;;;11332:80:27;;;;;;;;;;:::i;:::-;;;;;;;;;10480:1;11332:80;;;10457:1519;971:17770:28;-1:-1:-1;;;;;971:17770:28;;11430:21:27;;;11426:115;;-1:-1:-1;;;;;971:17770:28;11558:17:27;;;11554:116;;11687:19;:24;11683:123;;11853:14;11845:23;11853:14;11888:77;11853:14;11837:32;11853:14;;:::i;11837:32::-;11332:80;11904:17;;;971:17770:28;11940:14:27;;971:17770:28;11940:24:27;971:17770:28;11366:35:27;971:17770:28;;-1:-1:-1;;;;;971:17770:28;;;;;;;;;;;;;;;;11366:35:27;11888:77;10457:1519;;;;;;11683:123;11366:35;971:17770:28;;-1:-1:-1;;;11738:53:27;;11332:80;11738:53;;971:17770:28;;;;;;;;;;;;;;;;;;;;26682:51:27;11554:116;11602:53;971:17770:28;11366:35:27;971:17770:28;11602:53:27;;;-1:-1:-1;;;11602:53:27;;11332:80;11602:53;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;11426:115:27;11478:48;971:17770:28;11366:35:27;971:17770:28;11478:48:27;;;-1:-1:-1;;;11478:48:27;;11332:80;11478:48;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;11332:80:27;;;;;;;;;;;;;;:::i;:::-;;;;11191:110;971:17770:28;;;-1:-1:-1;;;11242:44:27;;;;;971:17770:28;;;;;;;;;;;;;;;;;;;;26682:51:27;11057:121;971:17770:28;;;-1:-1:-1;;;11111:52:27;;;;;971:17770:28;;;;;;;;;;;;;;;;;;;;26682:51:27;10549:495;10620:20;;10638:2;10620:20;;10616:390;;11023:7;;;;:::o;10616:390::-;10889:15;10973:13;10889:15;10928:35;10889:33;:15;;:::i;:33::-;10928:14;;:35;971:17770:28;10973:13:27;;:::i;:::-;10889:98;;;;;;;10480:1;971:17770:28;;10889:98:27;971:17770:28;10928:35:27;971:17770:28;10889:98:27;;;;;;;971:17770:28;10889:98:27;;;;;;:::i;:::-;;;;;;;;;;10616:390;;;;;;10889:98;;;10480:1;10889:98;;;:::i;:::-;;;;971:17770:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14682:1270:27:-;;;15219:17;14682:1270;;;;15174:85;15018:14;14682:1270;15174:85;15018:21;:14;;-1:-1:-1;;;;;971:17770:28;;;;;15018:21:27;15049:12;33278:67;;15219:17;;;;971:17770:28;15174:85:27;;;;;;;;;;;:::i;:::-;;971:17770:28;;15174:85:27;;;;;;:::i;:::-;15273:326;;;;;;15018:14;15273:326;;15219:17;15273:326;;;;14682:1270;33561:66;;15664:8;15660:286;;14682:1270;;:::o;15660:286::-;15692:18;;;33278:67;971:17770:28;;-1:-1:-1;;;15742:46:27;;15174:85;15742:46;;971:17770:28;;;;;;;;;;;;;;;;;;;;26682:51:27;15688:248;15879:41;;:::i;:::-;971:17770:28;15834:87:27;33278:67;971:17770:28;15834:87:27;;;-1:-1:-1;;;15834:87:27;;15174:85;15834:87;;;:::i;15273:326::-;15018:14;;-1:-1:-1;15273:326:27;;3358:267:16;1390:66;3481:46;;1390:66;;3550:15;;;:::i;3477:142::-;971:17770:28;;;-1:-1:-1;6126:13:20;1390:66:16;;;;;;;;;;;;3477:142;1390:66;;;;;;;971:17770:28;;;1390:66:16;;971:17770:28;;;1390:66:16;;;;;;;;;;;;;;;;;;;:::i;:::-;6126:13:20;1390:66:16;;;;;-1:-1:-1;1390:66:16;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1390:66:16;;;;;;;;;;-1:-1:-1;;1390:66:16;;;-1:-1:-1;1390:66:16;;;;;;;;-1:-1:-1;1390:66:16;;;;-1:-1:-1;;;;1390:66:16;;;;;-1:-1:-1;1390:66:16;;;;;;;;3358:267;1390:66;3481:46;;1390:66;;3550:15;;;:::i;3477:142::-;971:17770:28;;;-1:-1:-1;6584:16:20;1390:66:16;;;;;;;;;;;;3477:142;1390:66;;;;;;;971:17770:28;;;1390:66:16;;971:17770:28;;;1390:66:16;;;;;;;;;;;;;;;;;;:::i;:::-;6584:16:20;1390:66:16;;;;;-1:-1:-1;1390:66:16;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1390:66:16;;;;;;;;;;;;;;;;21701:517:27;21875:19;;21871:76;;971:17770:28;;:::i;:::-;;;;1666:3:10;971:17770:28;;1680:15:10;;;1676:67;;21701:517:27;971:17770:28;;22102:33:27;971:17770:28;;;;;;;:::i;:::-;-1:-1:-1;;;;;971:17770:28;;;;;1817:50:10;;;971:17770:28;1794:8:10;971:17770:28;;;;1817:50:10;971:17770:28;1817:50:10;;;;971:17770:28;;;;;;1817:50:10;971:17770:28;;;;;;;;;;22102:33:27;:15;:33;:71;;;;;21701:517;22085:88;971:17770:28;;-1:-1:-1;;;;;971:17770:28;;;;21701:517:27;:::o;22102:71::-;971:17770:28;22139:34:27;;-1:-1:-1;971:17770:28;;;;22139:34:27;22102:15;22139:34;;22102:71;;;1676:67:10;971:17770:28;;-1:-1:-1;1676:67:10;;21871:76:27;21910:26;21893:1;21910:26;21893:1;21910:26;:::o;3205:281:10:-;3287:193;;;;;;;3205:281;:::o;2078:378:16:-;2661:4;2625:40;;2679:11;2688:2;2679:11;;2675:69;;971:17770:28;;;;;;;:::i;:::-;2311:2:16;971:17770:28;;;;;;;;;;;2324:106:16;;;2078:378;:::o;2675:69::-;2713:20;-1:-1:-1;2713:20:16;;-1:-1:-1;2713:20:16","linkReferences":{},"immutableReferences":{"1906":[{"start":12971,"length":32}],"1908":[{"start":13160,"length":32}],"1910":[{"start":12924,"length":32}],"1912":[{"start":13050,"length":32}],"1914":[{"start":13088,"length":32}],"1917":[{"start":4963,"length":32}],"1920":[{"start":5004,"length":32}],"8025":[{"start":12476,"length":32},{"start":13573,"length":32},{"start":13663,"length":32},{"start":14151,"length":32},{"start":14331,"length":32},{"start":14420,"length":32},{"start":14692,"length":32},{"start":14872,"length":32},{"start":14961,"length":32},{"start":15233,"length":32}]}},"methodIdentifiers":{"_accountValidation(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256))":"69683cfa","_paymasterValidation(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256))":"21e60b37","_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)":"c579f76b","addStake(uint32)":"0396cb60","balanceOf(address)":"70a08231","binarySearchCallGas((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,uint256,uint256,uint256)":"acbe911e","binarySearchPaymasterVerificationGas((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,uint256,uint256,uint256)":"d72f2593","binarySearchVerificationGas((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,uint256,uint256,uint256)":"212eccc6","delegateAndRevert(address,bytes)":"850aaf62","depositTo(address)":"b760faf9","eip712Domain()":"84b0196e","getDepositInfo(address)":"5287ce12","getDomainSeparatorV4()":"13c65a6e","getNonce(address,uint192)":"35567e1a","getPackedUserOpTypeHash()":"154e58dc","getSenderAddress(bytes)":"9b249f69","getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":"22cdde4c","handleAggregatedOps(((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address,bytes)[],address)":"dbed18e0","handleOps((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address)":"765e827f","incrementNonce(uint192)":"0bd28e3b","innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)":"0da82661","nonceSequenceNumber(address,uint192)":"1b2e01b8","senderCreator()":"09ccb880","simulateCall(address,bytes,uint256)":"f7e426e8","simulateCallAndRevert(address,bytes,uint256)":"44403473","simulateHandleOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":"af324943","simulateHandleOpSingle((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)":"7da0c462","simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":"c3bce009","simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":"aec321fb","unlockStake()":"bb9fe6bf","withdrawStake(address)":"c23a5cea","withdrawTo(address,uint256)":"205c2878"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"reason\",\"type\":\"bytes\"}],\"name\":\"CallPhaseReverted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"ret\",\"type\":\"bytes\"}],\"name\":\"DelegateAndRevert\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"FailedOp\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"inner\",\"type\":\"bytes\"}],\"name\":\"FailedOpWithRevert\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidShortString\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"PostOpReverted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"SenderAddressResult\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"}],\"name\":\"SignatureValidationFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"StringTooLong\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"remainingGas\",\"type\":\"uint256\"}],\"name\":\"innerCallResult\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"factory\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"}],\"name\":\"AccountDeployed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"BeforeExecution\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalDeposit\",\"type\":\"uint256\"}],\"name\":\"Deposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"name\":\"PostOpRevertReason\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"}],\"name\":\"SignatureAggregatorChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalStaked\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"name\":\"StakeLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"withdrawTime\",\"type\":\"uint256\"}],\"name\":\"StakeUnlocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"StakeWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"actualGasCost\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"actualGasUsed\",\"type\":\"uint256\"}],\"name\":\"UserOperationEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"UserOperationPrefundTooLow\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"name\":\"UserOperationRevertReason\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdrawn\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"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\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.MemoryUserOp\",\"name\":\"mUserOp\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"contextOffset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.UserOpInfo\",\"name\":\"outOpInfo\",\"type\":\"tuple\"}],\"name\":\"_accountValidation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"validationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"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\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.MemoryUserOp\",\"name\":\"mUserOp\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"contextOffset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.UserOpInfo\",\"name\":\"outOpInfo\",\"type\":\"tuple\"}],\"name\":\"_paymasterValidation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"validationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"opIndex\",\"type\":\"uint256\"},{\"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\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.MemoryUserOp\",\"name\":\"mUserOp\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"contextOffset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.UserOpInfo\",\"name\":\"outOpInfo\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"validatePaymasterPrepayment\",\"type\":\"bool\"}],\"name\":\"_validatePrepayment\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"validationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"unstakeDelaySec\",\"type\":\"uint32\"}],\"name\":\"addStake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"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\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"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\":[{\"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\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"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\":[{\"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\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"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\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"delegateAndRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"depositTo\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getDepositInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"staked\",\"type\":\"bool\"},{\"internalType\":\"uint112\",\"name\":\"stake\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"unstakeDelaySec\",\"type\":\"uint32\"},{\"internalType\":\"uint48\",\"name\":\"withdrawTime\",\"type\":\"uint48\"}],\"internalType\":\"struct IStakeManager.DepositInfo\",\"name\":\"info\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDomainSeparatorV4\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint192\",\"name\":\"key\",\"type\":\"uint192\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPackedUserOpTypeHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"}],\"name\":\"getSenderAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"userOp\",\"type\":\"tuple\"}],\"name\":\"getUserOpHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"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\":\"contract IAggregator\",\"name\":\"aggregator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPoint.UserOpsPerAggregator[]\",\"name\":\"\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"handleAggregatedOps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"handleOps\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint192\",\"name\":\"key\",\"type\":\"uint192\"}],\"name\":\"incrementNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymaster\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.MemoryUserOp\",\"name\":\"mUserOp\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"contextOffset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"}],\"internalType\":\"struct EntryPoint.UserOpInfo\",\"name\":\"opInfo\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"context\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"preGas\",\"type\":\"uint256\"}],\"name\":\"innerHandleOp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"actualGasCost\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint192\",\"name\":\"\",\"type\":\"uint192\"}],\"name\":\"nonceSequenceNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"senderCreator\",\"outputs\":[{\"internalType\":\"contract ISenderCreator\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"}],\"name\":\"simulateCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"gas\",\"type\":\"uint256\"}],\"name\":\"simulateCallAndRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"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\":[{\"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\":\"op\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"targetCallData\",\"type\":\"bytes\"}],\"name\":\"simulateHandleOpSingle\",\"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\":[{\"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\"},{\"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\"}],\"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\"},{\"inputs\":[],\"name\":\"unlockStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"withdrawAddress\",\"type\":\"address\"}],\"name\":\"withdrawStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"withdrawAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"withdrawAmount\",\"type\":\"uint256\"}],\"name\":\"withdrawTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"FailedOp(uint256,string)\":[{\"params\":{\"opIndex\":\"- Index into the array of ops to the failed one (in simulateValidation, this is always zero).\",\"reason\":\"- Revert reason. The string starts with a unique code \\\"AAmn\\\", where \\\"m\\\" is \\\"1\\\" for factory, \\\"2\\\" for account and \\\"3\\\" for paymaster issues, so a failure can be attributed to the correct entity.\"}}],\"FailedOpWithRevert(uint256,string,bytes)\":[{\"details\":\"note that inner is truncated to 2048 bytes\",\"params\":{\"inner\":\"- data from inner cought revert reason\",\"opIndex\":\"- Index into the array of ops to the failed one (in simulateValidation, this is always zero).\",\"reason\":\"- Revert reason. see FailedOp(uint256,string), above\"}}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SignatureValidationFailed(address)\":[{\"params\":{\"aggregator\":\"The aggregator that failed to verify the signature\"}}]},\"events\":{\"AccountDeployed(bytes32,address,address,address)\":{\"params\":{\"factory\":\"- The factory used to deploy this account (in the initCode)\",\"paymaster\":\"- The paymaster used by this UserOp\",\"sender\":\"- The account that is deployed\",\"userOpHash\":\"- The userOp that deployed this account. UserOperationEvent will follow.\"}},\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"PostOpRevertReason(bytes32,address,uint256,bytes)\":{\"params\":{\"nonce\":\"- The nonce used in the request.\",\"revertReason\":\"- The return bytes from the (reverted) call to \\\"callData\\\".\",\"sender\":\"- The sender of this request.\",\"userOpHash\":\"- The request unique identifier.\"}},\"SignatureAggregatorChanged(address)\":{\"params\":{\"aggregator\":\"- The aggregator used for the following UserOperationEvents.\"}},\"UserOperationPrefundTooLow(bytes32,address,uint256)\":{\"params\":{\"nonce\":\"- The nonce used in the request.\",\"sender\":\"- The sender of this request.\",\"userOpHash\":\"- The request unique identifier.\"}},\"UserOperationRevertReason(bytes32,address,uint256,bytes)\":{\"params\":{\"nonce\":\"- The nonce used in the request.\",\"revertReason\":\"- The return bytes from the (reverted) call to \\\"callData\\\".\",\"sender\":\"- The sender of this request.\",\"userOpHash\":\"- The request unique identifier.\"}}},\"kind\":\"dev\",\"methods\":{\"_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)\":{\"params\":{\"opIndex\":\"- The index of this userOp into the \\\"opInfos\\\" array.\",\"outOpInfo\":\"- The empty unpacked in-memory UserOperation structure that will be filled in here.\",\"userOp\":\"- The packed calldata UserOperation structure to validate.\"},\"returns\":{\"paymasterValidationData\":\"- The paymaster's validationData.\",\"validationData\":\" - The account's validationData.\"}},\"addStake(uint32)\":{\"params\":{\"_unstakeDelaySec\":\"- The new lock duration before the deposit can be withdrawn.\"}},\"balanceOf(address)\":{\"params\":{\"account\":\"- The account to query.\"},\"returns\":{\"_0\":\"- The deposit (for gas payment) of the account.\"}},\"delegateAndRevert(address,bytes)\":{\"details\":\"calling this method, the EntryPoint will make a delegatecall to the given data, and report (via revert) the result. The method always revert, so is only useful off-chain for dry run calls, in cases where state-override to replace actual EntryPoint code is less convenient.\",\"params\":{\"data\":\"data to pass to target in a delegatecall\",\"target\":\"a target contract to make a delegatecall from entrypoint\"}},\"depositTo(address)\":{\"params\":{\"account\":\"- The account to add to.\"}},\"eip712Domain()\":{\"details\":\"See {IERC-5267}.\"},\"getDepositInfo(address)\":{\"params\":{\"account\":\"- The account to query.\"},\"returns\":{\"info\":\" - Full deposit information of given account.\"}},\"getNonce(address,uint192)\":{\"params\":{\"key\":\"the high 192 bit of the nonce\",\"sender\":\"the account address\"},\"returns\":{\"nonce\":\"a full nonce to pass for next UserOp with this sender.\"}},\"getSenderAddress(bytes)\":{\"params\":{\"initCode\":\"- The constructor code to be passed into the UserOperation.\"}},\"getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"params\":{\"userOp\":\"- The user operation to generate the request ID for.\"},\"returns\":{\"_0\":\"hash the hash of this UserOperation\"}},\"innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)\":{\"params\":{\"callData\":\"- The callData to execute.\",\"context\":\"- The context bytes.\",\"opInfo\":\"- The UserOpInfo struct.\"},\"returns\":{\"actualGasCost\":\"- the actual cost in eth this UserOperation paid for gas\"}},\"withdrawStake(address)\":{\"params\":{\"withdrawAddress\":\"- The address to send withdrawn value.\"}},\"withdrawTo(address,uint256)\":{\"params\":{\"withdrawAddress\":\"- The address to send withdrawn value.\",\"withdrawAmount\":\"- The amount to withdraw.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"FailedOp(uint256,string)\":[{\"notice\":\"A custom revert error of handleOps, to identify the offending op. Should be caught in off-chain handleOps simulation and not happen on-chain. Useful for mitigating DoS attempts against batchers or for troubleshooting of factory/account/paymaster reverts. NOTE: If simulateValidation passes successfully, there should be no reason for handleOps to fail on it.\"}],\"FailedOpWithRevert(uint256,string,bytes)\":[{\"notice\":\"A custom revert error of handleOps, to report a revert by account or paymaster.\"}],\"SignatureValidationFailed(address)\":[{\"notice\":\"Error case when a signature aggregator fails to verify the aggregated signature it had created.\"}]},\"events\":{\"AccountDeployed(bytes32,address,address,address)\":{\"notice\":\"Account \\\"sender\\\" was deployed.\"},\"BeforeExecution()\":{\"notice\":\"An event emitted by handleOps(), before starting the execution loop. Any event emitted before this event, is part of the validation.\"},\"PostOpRevertReason(bytes32,address,uint256,bytes)\":{\"notice\":\"An event emitted if the UserOperation Paymaster's \\\"postOp\\\" call reverted with non-zero length.\"},\"SignatureAggregatorChanged(address)\":{\"notice\":\"Signature aggregator used by the following UserOperationEvents within this bundle.\"},\"UserOperationPrefundTooLow(bytes32,address,uint256)\":{\"notice\":\"UserOp consumed more than prefund. The UserOperation is reverted, and no refund is made.\"},\"UserOperationRevertReason(bytes32,address,uint256,bytes)\":{\"notice\":\"An event emitted if the UserOperation \\\"callData\\\" reverted with non-zero length.\"}},\"kind\":\"user\",\"methods\":{\"_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)\":{\"notice\":\"Validate account and paymaster (if defined) and also make sure total validation doesn't exceed verificationGasLimit. This method is called off-chain (simulateValidation()) and on-chain (from handleOps)\"},\"addStake(uint32)\":{\"notice\":\"Add to the account's stake - amount and delay any pending unstake is first cancelled.\"},\"balanceOf(address)\":{\"notice\":\"Get account balance.\"},\"constructor\":{\"notice\":\"simulation contract should not be deployed, and specifically, accounts should not trust it as entrypoint, since the simulation functions don't check the signatures\"},\"delegateAndRevert(address,bytes)\":{\"notice\":\"Helper method for dry-run testing.\"},\"depositTo(address)\":{\"notice\":\"Add to the deposit of the given account.\"},\"getDepositInfo(address)\":{\"notice\":\"Get deposit info.\"},\"getNonce(address,uint192)\":{\"notice\":\"Return the next nonce for this sender. Within a given key, the nonce values are sequenced (starting with zero, and incremented by one on each userop) But UserOp with different keys can come with arbitrary order.\"},\"getSenderAddress(bytes)\":{\"notice\":\"Get counterfactual sender address. Calculate the sender contract address that will be generated by the initCode and salt in the UserOperation. This method always revert, and returns the address in SenderAddressResult error\"},\"getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"notice\":\"Generate a request Id - unique identifier for this request. The request ID is a hash over the content of the userOp (except the signature), the entrypoint and the chainid.\"},\"incrementNonce(uint192)\":{\"notice\":\"Manually increment the nonce of the sender. This method is exposed just for completeness.. Account does NOT need to call it, neither during validation, nor elsewhere, as the EntryPoint will update the nonce regardless. Possible use-case is call it with various keys to \\\"initialize\\\" their nonces to one, so that future UserOperations will not pay extra for the first transaction with a given key.\"},\"innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)\":{\"notice\":\"Inner function to handle a UserOperation. Must be declared \\\"external\\\" to open a call context, but it can only be called by handleOps.\"},\"nonceSequenceNumber(address,uint192)\":{\"notice\":\"The next valid sequence number for a given nonce key.\"},\"simulateHandleOpSingle((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)\":{\"notice\":\"simulates a single userOperation (taken from EntryPoint simulation example)\"},\"simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"notice\":\"simulate and validates a single userOperation (taken from EntryPoint simulation example)\"},\"unlockStake()\":{\"notice\":\"Attempt to unlock the stake. The value can be withdrawn (using withdrawStake) after the unstake delay.\"},\"withdrawStake(address)\":{\"notice\":\"Withdraw from the (unlocked) stake. Must first call unlockStake and wait for the unstakeDelay to pass.\"},\"withdrawTo(address,uint256)\":{\"notice\":\"Withdraw from the deposit.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/v08/EntryPointSimulations.sol\":\"EntryPointSimulations08\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@account-abstraction-v6/=lib/account-abstraction-v6/contracts/\",\":@account-abstraction-v7/=lib/account-abstraction-v7/contracts/\",\":@account-abstraction-v8/=lib/account-abstraction-v8/contracts/\",\":@account-abstraction-v9/=lib/account-abstraction-v9/contracts/\",\":@openzeppelin-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/\",\":@openzeppelin-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/\",\":@openzeppelin-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts-v5.0.2/contracts/\",\":@test-aa-utils/=lib/singleton-paymaster/test/utils/account-abstraction/\",\":@test-utils/=lib/singleton-paymaster/test/utils/\",\":account-abstraction-v6/=lib/account-abstraction-v6/contracts/\",\":account-abstraction-v7/=lib/account-abstraction-v7/contracts/\",\":account-abstraction-v8/=lib/account-abstraction-v8/contracts/\",\":account-abstraction-v9/=lib/account-abstraction-v9/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-v5.0.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-v5.1.0/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/\",\":openzeppelin-contracts-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/\",\":openzeppelin-contracts-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/\",\":singleton-paymaster/=lib/singleton-paymaster/src/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"lib/account-abstraction-v7/contracts/core/NonceManager.sol\":{\"keccak256\":\"0x1f951786ce6f171e7ed0242fee73ee4a205c7523404ee6cffca48b8c64ea5fe9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a602bf2274d478dae7a532cca31f8179131808c324cc26ece5c7e87c5a1015a6\",\"dweb:/ipfs/QmaaSyw5GGbAWzUhAPCtsb38P3MmaVr1ngp61PYHCU2a5a\"]},\"lib/account-abstraction-v7/contracts/interfaces/IAccount.sol\":{\"keccak256\":\"0x38710bec0cb20ff4ceef46a80475b5bdabc27b7efd2687fd473db68332f61b78\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://dea7a723e1ef852e8764e69914a345d2e8bc5e13facfc9d5c29d791cb4ab0020\",\"dweb:/ipfs/QmU8dYgyF4DBJXFqjwLAtnE3q8q259ChfoEk9a6wyhHzEP\"]},\"lib/account-abstraction-v7/contracts/interfaces/IAccountExecute.sol\":{\"keccak256\":\"0xd3dc32dde1add1fb6377f939ceff6be31c2e21343522311f7b88db666be9ee6c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://5b8f065171bd32e23b306868189c730f849ce6147f753c59e396e7afcf384577\",\"dweb:/ipfs/QmZpDRNEZ9YNgGgyLQo5yM4bB1FNbtnfDABsChbgSQKXUh\"]},\"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/IPaymaster.sol\":{\"keccak256\":\"0x49d8dbf8a85b006bcd89bbc40e4e9e113997cc016007de85263bdae70572d07f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://bc0d83804c1b795d5c216b3518cd176c48f90db28550f267cbd89746d6b476c8\",\"dweb:/ipfs/QmNdCm4c6hnt7f6Q8q21QjtCNZWWRUaMVEYnQHEv68VnKt\"]},\"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/core/Helpers.sol\":{\"keccak256\":\"0x42b948af5fa14a96149611595df1186800c7558b2de8762e4b45a7c45c16f65e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737a7908131ece48a5df1faaa3d0be79c42792379c27f5615dae6aa14cd68c2f\",\"dweb:/ipfs/QmPAxGMDxuek7XWSUVfZpvYE8bustfsjTDVDK8hmE88e1f\"]},\"lib/account-abstraction-v8/contracts/interfaces/ISenderCreator.sol\":{\"keccak256\":\"0x677f651d733162b80d1af7901e4f36469e362737a8353d1d0cc7bb94489e4ba4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6905a80acd70b444ea230b5b582164cb99aaae518bf72c88f8292df31615570\",\"dweb:/ipfs/QmfTKTPwJYf9pmA3T5PE5cCG8GLLDrLaq3jQqMP3pVRL6w\"]},\"lib/openzeppelin-contracts-v4.8.3/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/ReentrancyGuardTransient.sol\":{\"keccak256\":\"0x534bf5c25d6003a8ce50b400d20fa460c03169ad7baa90d47a912917c36dfe2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc0cc39c40ea23d3c46e8517e19ebdd877719d3159fa032f2a91802cdd205c79\",\"dweb:/ipfs/QmSoNh7HTkD4TJcBkBKSGSPMMpLUZKE7s9f2G6mjdaJywg\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a\",\"dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/Strings.sol\":{\"keccak256\":\"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0\",\"dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889\",\"dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c\",\"dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e\",\"dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts-v5.1.0/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/IEntryPointSimulations.sol\":{\"keccak256\":\"0xbc2129076267d33c8a7a7bb9ed92cc7b4a7d0d20c224a5f428412cca113bed41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f35d68119a9c4108b415c8523667bae15466b544f2e0a17111e7c8481bdb07b5\",\"dweb:/ipfs/Qme8yMWE1KLcGmJ5UhHS4KBc27TRTaeoXwBxaXQbErAC5t\"]},\"src/SimulationOverrideHelper.sol\":{\"keccak256\":\"0x327a9038314036c1259ce7d2422d17b10f264df6b0d9f6b87cddb6b047898774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4288cd354dbc1344dbe6139a862abe6bbc784186705cd2fc5197ef0e26d8b66\",\"dweb:/ipfs/Qmerifmk26zWoYk2hRXptyC6ncPH4m7zyQEDJERHNo5ijf\"]},\"src/v08/EntryPoint.sol\":{\"keccak256\":\"0x8d889771da572658d9d4cc2aeeb8145c2fcc55b20fc160732ee3b3ecf27623ac\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7a5dab7432771386b816248df9c417987426667319024e13fd3d0056ca3efc7b\",\"dweb:/ipfs/QmZ9h8CUHWwzxVwXxW8nSDbcttnmstXzUgDCdEoWXzYauN\"]},\"src/v08/EntryPointSimulations.sol\":{\"keccak256\":\"0xe020df97ccf89974f9517046c4e5a34e4587df536746d8607ec42eebf1b56d4a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://525e9d52d66142a8663df724d80977f4a0ca7639dbeb82e318121a34f4e689af\",\"dweb:/ipfs/QmdZ4fjXEkycx4XunVZJDQKpAZFwaqV1vkR845w59zk24n\"]},\"src/v08/overrides/Eip7702Support.sol\":{\"keccak256\":\"0x43b1ea67340dd543e34135d258ea258fb824247eb404c11e99a1945f5826ab3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a920bdb53b67730c177c9bdb6003095a82a6b3ecf458f3493e46d683f006ed8b\",\"dweb:/ipfs/QmcwWBMhqqPEmH6JMExB68yPS7b5dn3AQQWz5Y7YTmambW\"]},\"src/v08/overrides/SenderCreator.sol\":{\"keccak256\":\"0x883d989f60af4c076f1748b1749fed9b9c711727dcd700e32da91c47f0aeae4c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d29f93bf7d0e32ad8fc7f7555c132baec37d594d2d8974c5de0632c152840b0b\",\"dweb:/ipfs/QmY4g8EWWLTUvjYsHoSmn4rZb8NA1SVddziEdXwp98Nd96\"]},\"src/v08/overrides/StakeManager.sol\":{\"keccak256\":\"0x9bac55672ee2fa70eb8378eb8975e4b23b689809bb8848a439771d81dea86ba0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://34fa8b7a33f4ed9c2cac5ebe8a9e6cc1b545a3188ddd0b1008960a86c11c392c\",\"dweb:/ipfs/QmVYyvmELFPrzkQe2eSnoTWXxzyiJohay2jAFNkuZBQswn\"]},\"src/v08/overrides/UserOperationLib.sol\":{\"keccak256\":\"0xf5512d40f62d36dba06a127832ad33ae9db28225632abcb46f4d41ba0fceca17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afa1670de9e4d240258aed3613426663690931b313701f9af5edb1600b3071c3\",\"dweb:/ipfs/QmeoQgTwpEQhyACQAqtUBRTEVpzzckLpKg1y5tS6FBpdcu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes","name":"reason","type":"bytes"}],"type":"error","name":"CallPhaseReverted"},{"inputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"ret","type":"bytes"}],"type":"error","name":"DelegateAndRevert"},{"inputs":[{"internalType":"uint256","name":"opIndex","type":"uint256"},{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"FailedOp"},{"inputs":[{"internalType":"uint256","name":"opIndex","type":"uint256"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"inner","type":"bytes"}],"type":"error","name":"FailedOpWithRevert"},{"inputs":[],"type":"error","name":"InvalidShortString"},{"inputs":[{"internalType":"bytes","name":"returnData","type":"bytes"}],"type":"error","name":"PostOpReverted"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"SenderAddressResult"},{"inputs":[{"internalType":"address","name":"aggregator","type":"address"}],"type":"error","name":"SignatureValidationFailed"},{"inputs":[{"internalType":"string","name":"str","type":"string"}],"type":"error","name":"StringTooLong"},{"inputs":[{"internalType":"uint256","name":"remainingGas","type":"uint256"}],"type":"error","name":"innerCallResult"},{"inputs":[{"internalType":"bytes32","name":"userOpHash","type":"bytes32","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"factory","type":"address","indexed":false},{"internalType":"address","name":"paymaster","type":"address","indexed":false}],"type":"event","name":"AccountDeployed","anonymous":false},{"inputs":[],"type":"event","name":"BeforeExecution","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"totalDeposit","type":"uint256","indexed":false}],"type":"event","name":"Deposited","anonymous":false},{"inputs":[],"type":"event","name":"EIP712DomainChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"userOpHash","type":"bytes32","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"nonce","type":"uint256","indexed":false},{"internalType":"bytes","name":"revertReason","type":"bytes","indexed":false}],"type":"event","name":"PostOpRevertReason","anonymous":false},{"inputs":[{"internalType":"address","name":"aggregator","type":"address","indexed":true}],"type":"event","name":"SignatureAggregatorChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"totalStaked","type":"uint256","indexed":false},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256","indexed":false}],"type":"event","name":"StakeLocked","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"withdrawTime","type":"uint256","indexed":false}],"type":"event","name":"StakeUnlocked","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"withdrawAddress","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"StakeWithdrawn","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"userOpHash","type":"bytes32","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"paymaster","type":"address","indexed":true},{"internalType":"uint256","name":"nonce","type":"uint256","indexed":false},{"internalType":"bool","name":"success","type":"bool","indexed":false},{"internalType":"uint256","name":"actualGasCost","type":"uint256","indexed":false},{"internalType":"uint256","name":"actualGasUsed","type":"uint256","indexed":false}],"type":"event","name":"UserOperationEvent","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"userOpHash","type":"bytes32","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"nonce","type":"uint256","indexed":false}],"type":"event","name":"UserOperationPrefundTooLow","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"userOpHash","type":"bytes32","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"nonce","type":"uint256","indexed":false},{"internalType":"bytes","name":"revertReason","type":"bytes","indexed":false}],"type":"event","name":"UserOperationRevertReason","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"withdrawAddress","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Withdrawn","anonymous":false},{"inputs":[{"internalType":"uint256","name":"opIndex","type":"uint256"},{"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":"struct EntryPoint.UserOpInfo","name":"outOpInfo","type":"tuple","components":[{"internalType":"struct EntryPoint.MemoryUserOp","name":"mUserOp","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"verificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"callGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterVerificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterPostOpGasLimit","type":"uint256"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"address","name":"paymaster","type":"address"},{"internalType":"uint256","name":"maxFeePerGas","type":"uint256"},{"internalType":"uint256","name":"maxPriorityFeePerGas","type":"uint256"}]},{"internalType":"bytes32","name":"userOpHash","type":"bytes32"},{"internalType":"uint256","name":"prefund","type":"uint256"},{"internalType":"uint256","name":"contextOffset","type":"uint256"},{"internalType":"uint256","name":"preOpGas","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"_accountValidation","outputs":[{"internalType":"uint256","name":"validationData","type":"uint256"},{"internalType":"uint256","name":"paymasterValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterVerificationGasLimit","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"opIndex","type":"uint256"},{"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":"struct EntryPoint.UserOpInfo","name":"outOpInfo","type":"tuple","components":[{"internalType":"struct EntryPoint.MemoryUserOp","name":"mUserOp","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"verificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"callGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterVerificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterPostOpGasLimit","type":"uint256"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"address","name":"paymaster","type":"address"},{"internalType":"uint256","name":"maxFeePerGas","type":"uint256"},{"internalType":"uint256","name":"maxPriorityFeePerGas","type":"uint256"}]},{"internalType":"bytes32","name":"userOpHash","type":"bytes32"},{"internalType":"uint256","name":"prefund","type":"uint256"},{"internalType":"uint256","name":"contextOffset","type":"uint256"},{"internalType":"uint256","name":"preOpGas","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"_paymasterValidation","outputs":[{"internalType":"uint256","name":"validationData","type":"uint256"},{"internalType":"uint256","name":"paymasterValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterVerificationGasLimit","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"opIndex","type":"uint256"},{"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":"struct EntryPoint.UserOpInfo","name":"outOpInfo","type":"tuple","components":[{"internalType":"struct EntryPoint.MemoryUserOp","name":"mUserOp","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"verificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"callGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterVerificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterPostOpGasLimit","type":"uint256"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"address","name":"paymaster","type":"address"},{"internalType":"uint256","name":"maxFeePerGas","type":"uint256"},{"internalType":"uint256","name":"maxPriorityFeePerGas","type":"uint256"}]},{"internalType":"bytes32","name":"userOpHash","type":"bytes32"},{"internalType":"uint256","name":"prefund","type":"uint256"},{"internalType":"uint256","name":"contextOffset","type":"uint256"},{"internalType":"uint256","name":"preOpGas","type":"uint256"}]},{"internalType":"bool","name":"validatePaymasterPrepayment","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"_validatePrepayment","outputs":[{"internalType":"uint256","name":"validationData","type":"uint256"},{"internalType":"uint256","name":"paymasterValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterVerificationGasLimit","type":"uint256"}]},{"inputs":[{"internalType":"uint32","name":"unstakeDelaySec","type":"uint32"}],"stateMutability":"payable","type":"function","name":"addStake"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"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":"address","name":"entryPoint","type":"address"},{"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":"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":"address","name":"entryPoint","type":"address"},{"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":"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":"address","name":"entryPoint","type":"address"},{"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":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"delegateAndRevert"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"payable","type":"function","name":"depositTo"},{"inputs":[],"stateMutability":"view","type":"function","name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getDepositInfo","outputs":[{"internalType":"struct IStakeManager.DepositInfo","name":"info","type":"tuple","components":[{"internalType":"uint256","name":"deposit","type":"uint256"},{"internalType":"bool","name":"staked","type":"bool"},{"internalType":"uint112","name":"stake","type":"uint112"},{"internalType":"uint32","name":"unstakeDelaySec","type":"uint32"},{"internalType":"uint48","name":"withdrawTime","type":"uint48"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getDomainSeparatorV4","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint192","name":"key","type":"uint192"}],"stateMutability":"view","type":"function","name":"getNonce","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"getPackedUserOpTypeHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes","name":"initCode","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"getSenderAddress"},{"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"}]}],"stateMutability":"view","type":"function","name":"getUserOpHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct IEntryPoint.UserOpsPerAggregator[]","name":"","type":"tuple[]","components":[{"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":"contract IAggregator","name":"aggregator","type":"address"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"handleAggregatedOps"},{"inputs":[{"internalType":"struct PackedUserOperation[]","name":"","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":"","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"handleOps"},{"inputs":[{"internalType":"uint192","name":"key","type":"uint192"}],"stateMutability":"nonpayable","type":"function","name":"incrementNonce"},{"inputs":[{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"struct EntryPoint.UserOpInfo","name":"opInfo","type":"tuple","components":[{"internalType":"struct EntryPoint.MemoryUserOp","name":"mUserOp","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"verificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"callGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterVerificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterPostOpGasLimit","type":"uint256"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"address","name":"paymaster","type":"address"},{"internalType":"uint256","name":"maxFeePerGas","type":"uint256"},{"internalType":"uint256","name":"maxPriorityFeePerGas","type":"uint256"}]},{"internalType":"bytes32","name":"userOpHash","type":"bytes32"},{"internalType":"uint256","name":"prefund","type":"uint256"},{"internalType":"uint256","name":"contextOffset","type":"uint256"},{"internalType":"uint256","name":"preOpGas","type":"uint256"}]},{"internalType":"bytes","name":"context","type":"bytes"},{"internalType":"uint256","name":"preGas","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"innerHandleOp","outputs":[{"internalType":"uint256","name":"actualGasCost","type":"uint256"},{"internalType":"uint256","name":"paymasterPostOpGasLimit","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint192","name":"","type":"uint192"}],"stateMutability":"view","type":"function","name":"nonceSequenceNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"senderCreator","outputs":[{"internalType":"contract ISenderCreator","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"entryPoint","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint256","name":"gas","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"simulateCall","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"result","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"gas","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"simulateCallAndRevert"},{"inputs":[{"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":"struct PackedUserOperation","name":"op","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"targetCallData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"simulateHandleOpSingle","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":"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"}]}]}]}]},{"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"}]}],"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"}]}]}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unlockStake"},{"inputs":[{"internalType":"address payable","name":"withdrawAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdrawStake"},{"inputs":[{"internalType":"address payable","name":"withdrawAddress","type":"address"},{"internalType":"uint256","name":"withdrawAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawTo"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)":{"params":{"opIndex":"- The index of this userOp into the \"opInfos\" array.","outOpInfo":"- The empty unpacked in-memory UserOperation structure that will be filled in here.","userOp":"- The packed calldata UserOperation structure to validate."},"returns":{"paymasterValidationData":"- The paymaster's validationData.","validationData":" - The account's validationData."}},"addStake(uint32)":{"params":{"_unstakeDelaySec":"- The new lock duration before the deposit can be withdrawn."}},"balanceOf(address)":{"params":{"account":"- The account to query."},"returns":{"_0":"- The deposit (for gas payment) of the account."}},"delegateAndRevert(address,bytes)":{"details":"calling this method, the EntryPoint will make a delegatecall to the given data, and report (via revert) the result. The method always revert, so is only useful off-chain for dry run calls, in cases where state-override to replace actual EntryPoint code is less convenient.","params":{"data":"data to pass to target in a delegatecall","target":"a target contract to make a delegatecall from entrypoint"}},"depositTo(address)":{"params":{"account":"- The account to add to."}},"eip712Domain()":{"details":"See {IERC-5267}."},"getDepositInfo(address)":{"params":{"account":"- The account to query."},"returns":{"info":" - Full deposit information of given account."}},"getNonce(address,uint192)":{"params":{"key":"the high 192 bit of the nonce","sender":"the account address"},"returns":{"nonce":"a full nonce to pass for next UserOp with this sender."}},"getSenderAddress(bytes)":{"params":{"initCode":"- The constructor code to be passed into the UserOperation."}},"getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":{"params":{"userOp":"- The user operation to generate the request ID for."},"returns":{"_0":"hash the hash of this UserOperation"}},"innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)":{"params":{"callData":"- The callData to execute.","context":"- The context bytes.","opInfo":"- The UserOpInfo struct."},"returns":{"actualGasCost":"- the actual cost in eth this UserOperation paid for gas"}},"withdrawStake(address)":{"params":{"withdrawAddress":"- The address to send withdrawn value."}},"withdrawTo(address,uint256)":{"params":{"withdrawAddress":"- The address to send withdrawn value.","withdrawAmount":"- The amount to withdraw."}}},"version":1},"userdoc":{"kind":"user","methods":{"_validatePrepayment(uint256,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bool)":{"notice":"Validate account and paymaster (if defined) and also make sure total validation doesn't exceed verificationGasLimit. This method is called off-chain (simulateValidation()) and on-chain (from handleOps)"},"addStake(uint32)":{"notice":"Add to the account's stake - amount and delay any pending unstake is first cancelled."},"balanceOf(address)":{"notice":"Get account balance."},"constructor":{"notice":"simulation contract should not be deployed, and specifically, accounts should not trust it as entrypoint, since the simulation functions don't check the signatures"},"delegateAndRevert(address,bytes)":{"notice":"Helper method for dry-run testing."},"depositTo(address)":{"notice":"Add to the deposit of the given account."},"getDepositInfo(address)":{"notice":"Get deposit info."},"getNonce(address,uint192)":{"notice":"Return the next nonce for this sender. Within a given key, the nonce values are sequenced (starting with zero, and incremented by one on each userop) But UserOp with different keys can come with arbitrary order."},"getSenderAddress(bytes)":{"notice":"Get counterfactual sender address. Calculate the sender contract address that will be generated by the initCode and salt in the UserOperation. This method always revert, and returns the address in SenderAddressResult error"},"getUserOpHash((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":{"notice":"Generate a request Id - unique identifier for this request. The request ID is a hash over the content of the userOp (except the signature), the entrypoint and the chainid."},"incrementNonce(uint192)":{"notice":"Manually increment the nonce of the sender. This method is exposed just for completeness.. Account does NOT need to call it, neither during validation, nor elsewhere, as the EntryPoint will update the nonce regardless. Possible use-case is call it with various keys to \"initialize\" their nonces to one, so that future UserOperations will not pay extra for the first transaction with a given key."},"innerHandleOp(bytes,((address,uint256,uint256,uint256,uint256,uint256,uint256,address,uint256,uint256),bytes32,uint256,uint256,uint256),bytes,uint256)":{"notice":"Inner function to handle a UserOperation. Must be declared \"external\" to open a call context, but it can only be called by handleOps."},"nonceSequenceNumber(address,uint192)":{"notice":"The next valid sequence number for a given nonce key."},"simulateHandleOpSingle((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),address,bytes)":{"notice":"simulates a single userOperation (taken from EntryPoint simulation example)"},"simulateValidation((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":{"notice":"simulate and validates a single userOperation (taken from EntryPoint simulation example)"},"unlockStake()":{"notice":"Attempt to unlock the stake. The value can be withdrawn (using withdrawStake) after the unstake delay."},"withdrawStake(address)":{"notice":"Withdraw from the (unlocked) stake. Must first call unlockStake and wait for the unstakeDelay to pass."},"withdrawTo(address,uint256)":{"notice":"Withdraw from the deposit."}},"version":1}},"settings":{"remappings":["@account-abstraction-v6/=lib/account-abstraction-v6/contracts/","@account-abstraction-v7/=lib/account-abstraction-v7/contracts/","@account-abstraction-v8/=lib/account-abstraction-v8/contracts/","@account-abstraction-v9/=lib/account-abstraction-v9/contracts/","@openzeppelin-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/","@openzeppelin-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/","@openzeppelin-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/","@openzeppelin/contracts/=lib/openzeppelin-contracts-v5.0.2/contracts/","@test-aa-utils/=lib/singleton-paymaster/test/utils/account-abstraction/","@test-utils/=lib/singleton-paymaster/test/utils/","account-abstraction-v6/=lib/account-abstraction-v6/contracts/","account-abstraction-v7/=lib/account-abstraction-v7/contracts/","account-abstraction-v8/=lib/account-abstraction-v8/contracts/","account-abstraction-v9/=lib/account-abstraction-v9/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-v5.0.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-v5.1.0/lib/halmos-cheatcodes/src/","openzeppelin-contracts-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/","openzeppelin-contracts-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/","openzeppelin-contracts-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/","singleton-paymaster/=lib/singleton-paymaster/src/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/v08/EntryPointSimulations.sol":"EntryPointSimulations08"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/account-abstraction-v7/contracts/core/NonceManager.sol":{"keccak256":"0x1f951786ce6f171e7ed0242fee73ee4a205c7523404ee6cffca48b8c64ea5fe9","urls":["bzz-raw://a602bf2274d478dae7a532cca31f8179131808c324cc26ece5c7e87c5a1015a6","dweb:/ipfs/QmaaSyw5GGbAWzUhAPCtsb38P3MmaVr1ngp61PYHCU2a5a"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/interfaces/IAccount.sol":{"keccak256":"0x38710bec0cb20ff4ceef46a80475b5bdabc27b7efd2687fd473db68332f61b78","urls":["bzz-raw://dea7a723e1ef852e8764e69914a345d2e8bc5e13facfc9d5c29d791cb4ab0020","dweb:/ipfs/QmU8dYgyF4DBJXFqjwLAtnE3q8q259ChfoEk9a6wyhHzEP"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/interfaces/IAccountExecute.sol":{"keccak256":"0xd3dc32dde1add1fb6377f939ceff6be31c2e21343522311f7b88db666be9ee6c","urls":["bzz-raw://5b8f065171bd32e23b306868189c730f849ce6147f753c59e396e7afcf384577","dweb:/ipfs/QmZpDRNEZ9YNgGgyLQo5yM4bB1FNbtnfDABsChbgSQKXUh"],"license":"GPL-3.0"},"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/IPaymaster.sol":{"keccak256":"0x49d8dbf8a85b006bcd89bbc40e4e9e113997cc016007de85263bdae70572d07f","urls":["bzz-raw://bc0d83804c1b795d5c216b3518cd176c48f90db28550f267cbd89746d6b476c8","dweb:/ipfs/QmNdCm4c6hnt7f6Q8q21QjtCNZWWRUaMVEYnQHEv68VnKt"],"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/core/Helpers.sol":{"keccak256":"0x42b948af5fa14a96149611595df1186800c7558b2de8762e4b45a7c45c16f65e","urls":["bzz-raw://737a7908131ece48a5df1faaa3d0be79c42792379c27f5615dae6aa14cd68c2f","dweb:/ipfs/QmPAxGMDxuek7XWSUVfZpvYE8bustfsjTDVDK8hmE88e1f"],"license":"MIT"},"lib/account-abstraction-v8/contracts/interfaces/ISenderCreator.sol":{"keccak256":"0x677f651d733162b80d1af7901e4f36469e362737a8353d1d0cc7bb94489e4ba4","urls":["bzz-raw://d6905a80acd70b444ea230b5b582164cb99aaae518bf72c88f8292df31615570","dweb:/ipfs/QmfTKTPwJYf9pmA3T5PE5cCG8GLLDrLaq3jQqMP3pVRL6w"],"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-v5.1.0/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts-v5.1.0/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts-v5.1.0/contracts/utils/ReentrancyGuardTransient.sol":{"keccak256":"0x534bf5c25d6003a8ce50b400d20fa460c03169ad7baa90d47a912917c36dfe2b","urls":["bzz-raw://cc0cc39c40ea23d3c46e8517e19ebdd877719d3159fa032f2a91802cdd205c79","dweb:/ipfs/QmSoNh7HTkD4TJcBkBKSGSPMMpLUZKE7s9f2G6mjdaJywg"],"license":"MIT"},"lib/openzeppelin-contracts-v5.1.0/contracts/utils/ShortStrings.sol":{"keccak256":"0x7d94fa0af099a2172eb01f9c8a8a443cbe7e0e43654841563e4e09968efdb549","urls":["bzz-raw://65e38fb76b6add407d4557753ae83dd1268e8261195dbe5c19a580d5ba6e4e9a","dweb:/ipfs/QmTkGSJtaQrqjcyWM4AgemeEmKgtDydKPPVRajsUJRQSrK"],"license":"MIT"},"lib/openzeppelin-contracts-v5.1.0/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts-v5.1.0/contracts/utils/Strings.sol":{"keccak256":"0x725209b582291bb83058e3078624b53d15a133f7401c30295e7f3704181d2aed","urls":["bzz-raw://0564ddb19c6d870e27b789d8f985283d815267ad7224883c2d5243c8bacc7dc0","dweb:/ipfs/QmeC953H4sj88ZRFdJNFdmpf7J9SksP1wK4jyMHLo66z49"],"license":"MIT"},"lib/openzeppelin-contracts-v5.1.0/contracts/utils/TransientSlot.sol":{"keccak256":"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1","urls":["bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889","dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t"],"license":"MIT"},"lib/openzeppelin-contracts-v5.1.0/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x10eb97d047f8d84fe263a02bb4a656ac6674f6679d74532cc37546289e073a9d","urls":["bzz-raw://3e41287d40b0c46982f1083d40d32de2761f009c5c51627fe79a7feb0ab1cf5c","dweb:/ipfs/Qme7dbh6HX3ZvUJdbQAcVqXkmyXyfcLiUZRhhon3cU6K8p"],"license":"MIT"},"lib/openzeppelin-contracts-v5.1.0/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x4515543bc4c78561f6bea83ecfdfc3dead55bd59858287d682045b11de1ae575","urls":["bzz-raw://60601f91440125727244fffd2ba84da7caafecaae0fd887c7ccfec678e02b61e","dweb:/ipfs/QmZnKPBtVDiQS9Dp8gZ4sa3ZeTrWVfqF7yuUd6Y8hwm1Rs"],"license":"MIT"},"lib/openzeppelin-contracts-v5.1.0/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"lib/openzeppelin-contracts-v5.1.0/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts-v5.1.0/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/IEntryPointSimulations.sol":{"keccak256":"0xbc2129076267d33c8a7a7bb9ed92cc7b4a7d0d20c224a5f428412cca113bed41","urls":["bzz-raw://f35d68119a9c4108b415c8523667bae15466b544f2e0a17111e7c8481bdb07b5","dweb:/ipfs/Qme8yMWE1KLcGmJ5UhHS4KBc27TRTaeoXwBxaXQbErAC5t"],"license":"MIT"},"src/SimulationOverrideHelper.sol":{"keccak256":"0x327a9038314036c1259ce7d2422d17b10f264df6b0d9f6b87cddb6b047898774","urls":["bzz-raw://f4288cd354dbc1344dbe6139a862abe6bbc784186705cd2fc5197ef0e26d8b66","dweb:/ipfs/Qmerifmk26zWoYk2hRXptyC6ncPH4m7zyQEDJERHNo5ijf"],"license":"MIT"},"src/v08/EntryPoint.sol":{"keccak256":"0x8d889771da572658d9d4cc2aeeb8145c2fcc55b20fc160732ee3b3ecf27623ac","urls":["bzz-raw://7a5dab7432771386b816248df9c417987426667319024e13fd3d0056ca3efc7b","dweb:/ipfs/QmZ9h8CUHWwzxVwXxW8nSDbcttnmstXzUgDCdEoWXzYauN"],"license":"GPL-3.0"},"src/v08/EntryPointSimulations.sol":{"keccak256":"0xe020df97ccf89974f9517046c4e5a34e4587df536746d8607ec42eebf1b56d4a","urls":["bzz-raw://525e9d52d66142a8663df724d80977f4a0ca7639dbeb82e318121a34f4e689af","dweb:/ipfs/QmdZ4fjXEkycx4XunVZJDQKpAZFwaqV1vkR845w59zk24n"],"license":"GPL-3.0"},"src/v08/overrides/Eip7702Support.sol":{"keccak256":"0x43b1ea67340dd543e34135d258ea258fb824247eb404c11e99a1945f5826ab3c","urls":["bzz-raw://a920bdb53b67730c177c9bdb6003095a82a6b3ecf458f3493e46d683f006ed8b","dweb:/ipfs/QmcwWBMhqqPEmH6JMExB68yPS7b5dn3AQQWz5Y7YTmambW"],"license":"MIT"},"src/v08/overrides/SenderCreator.sol":{"keccak256":"0x883d989f60af4c076f1748b1749fed9b9c711727dcd700e32da91c47f0aeae4c","urls":["bzz-raw://d29f93bf7d0e32ad8fc7f7555c132baec37d594d2d8974c5de0632c152840b0b","dweb:/ipfs/QmY4g8EWWLTUvjYsHoSmn4rZb8NA1SVddziEdXwp98Nd96"],"license":"GPL-3.0"},"src/v08/overrides/StakeManager.sol":{"keccak256":"0x9bac55672ee2fa70eb8378eb8975e4b23b689809bb8848a439771d81dea86ba0","urls":["bzz-raw://34fa8b7a33f4ed9c2cac5ebe8a9e6cc1b545a3188ddd0b1008960a86c11c392c","dweb:/ipfs/QmVYyvmELFPrzkQe2eSnoTWXxzyiJohay2jAFNkuZBQswn"],"license":"GPL-3.0"},"src/v08/overrides/UserOperationLib.sol":{"keccak256":"0xf5512d40f62d36dba06a127832ad33ae9db28225632abcb46f4d41ba0fceca17","urls":["bzz-raw://afa1670de9e4d240258aed3613426663690931b313701f9af5edb1600b3071c3","dweb:/ipfs/QmeoQgTwpEQhyACQAqtUBRTEVpzzckLpKg1y5tS6FBpdcu"],"license":"MIT"}},"version":1},"id":28}