@arbitrum/nitro-contracts 1.2.1 → 2.0.0-beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (300) hide show
  1. package/README.md +1 -1
  2. package/build/contracts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +1 -1
  3. package/build/contracts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json +1 -1
  4. package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json +1 -1
  5. package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.dbg.json +1 -1
  6. package/build/contracts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json +1 -1
  7. package/build/contracts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json +1 -1
  8. package/build/contracts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.dbg.json +1 -1
  9. package/build/contracts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.dbg.json +1 -1
  10. package/build/contracts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.dbg.json +1 -1
  11. package/build/contracts/@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol/UUPSUpgradeable.dbg.json +1 -1
  12. package/build/contracts/@openzeppelin/contracts/security/ReentrancyGuard.sol/ReentrancyGuard.dbg.json +1 -1
  13. package/build/contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +1 -1
  14. package/build/contracts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +1 -1
  15. package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +1 -1
  16. package/build/contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json +1 -1
  17. package/build/contracts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +1 -1
  18. package/build/contracts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +1 -1
  19. package/build/contracts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +1 -1
  20. package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +4 -0
  21. package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.json +10 -0
  22. package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.dbg.json +1 -1
  23. package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol/IAccessControlUpgradeable.dbg.json +1 -1
  24. package/build/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +1 -1
  25. package/build/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +1 -1
  26. package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.dbg.json +1 -1
  27. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +1 -1
  28. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +1 -1
  29. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +1 -1
  30. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.dbg.json +1 -1
  31. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.dbg.json +1 -1
  32. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.dbg.json +1 -1
  33. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol/IERC165Upgradeable.dbg.json +1 -1
  34. package/build/contracts/src/bridge/AbsBridge.sol/AbsBridge.dbg.json +1 -1
  35. package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.dbg.json +1 -1
  36. package/build/contracts/src/bridge/AbsOutbox.sol/AbsOutbox.dbg.json +1 -1
  37. package/build/contracts/src/bridge/Bridge.sol/Bridge.dbg.json +1 -1
  38. package/build/contracts/src/bridge/Bridge.sol/Bridge.json +2 -2
  39. package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.dbg.json +1 -1
  40. package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.json +26 -2
  41. package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.dbg.json +1 -1
  42. package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.json +13 -2
  43. package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.dbg.json +1 -1
  44. package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.json +2 -2
  45. package/build/contracts/src/bridge/GasRefunder.sol/GasRefunder.dbg.json +1 -1
  46. package/build/contracts/src/bridge/IBridge.sol/IBridge.dbg.json +1 -1
  47. package/build/contracts/src/bridge/IDelayedMessageProvider.sol/IDelayedMessageProvider.dbg.json +1 -1
  48. package/build/contracts/src/bridge/IERC20Bridge.sol/IERC20Bridge.dbg.json +1 -1
  49. package/build/contracts/src/bridge/IERC20Bridge.sol/IERC20Bridge.json +13 -0
  50. package/build/contracts/src/bridge/IERC20Inbox.sol/IERC20Inbox.dbg.json +1 -1
  51. package/build/contracts/src/bridge/IEthBridge.sol/IEthBridge.dbg.json +1 -1
  52. package/build/contracts/src/bridge/IInbox.sol/IInbox.dbg.json +1 -1
  53. package/build/contracts/src/bridge/IInboxBase.sol/IInboxBase.dbg.json +1 -1
  54. package/build/contracts/src/bridge/IOutbox.sol/IOutbox.dbg.json +1 -1
  55. package/build/contracts/src/bridge/IOwnable.sol/IOwnable.dbg.json +1 -1
  56. package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.dbg.json +1 -1
  57. package/build/contracts/src/bridge/Inbox.sol/Inbox.dbg.json +1 -1
  58. package/build/contracts/src/bridge/Inbox.sol/Inbox.json +2 -2
  59. package/build/contracts/src/bridge/Messages.sol/Messages.dbg.json +1 -1
  60. package/build/contracts/src/bridge/Outbox.sol/Outbox.dbg.json +1 -1
  61. package/build/contracts/src/bridge/Outbox.sol/Outbox.json +2 -2
  62. package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.dbg.json +1 -1
  63. package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.json +2 -2
  64. package/build/contracts/src/chain/CacheManager.sol/CacheManager.dbg.json +4 -0
  65. package/build/contracts/src/chain/CacheManager.sol/CacheManager.json +517 -0
  66. package/build/contracts/src/challenge/ChallengeLib.sol/ChallengeLib.dbg.json +1 -1
  67. package/build/contracts/src/challenge/ChallengeLib.sol/ChallengeLib.json +2 -2
  68. package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.dbg.json +1 -1
  69. package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.json +50 -2
  70. package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.dbg.json +1 -1
  71. package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.json +55 -0
  72. package/build/contracts/src/challenge/IChallengeResultReceiver.sol/IChallengeResultReceiver.dbg.json +1 -1
  73. package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.dbg.json +1 -1
  74. package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.dbg.json +1 -1
  75. package/build/contracts/src/libraries/AdminFallbackProxy.sol/DoubleLogicERC1967Upgrade.dbg.json +1 -1
  76. package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.dbg.json +1 -1
  77. package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.dbg.json +1 -1
  78. package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.dbg.json +4 -0
  79. package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.json +10 -0
  80. package/build/contracts/src/libraries/DelegateCallAware.sol/DelegateCallAware.dbg.json +1 -1
  81. package/build/contracts/src/libraries/DoubleLogicUUPSUpgradeable.sol/DoubleLogicUUPSUpgradeable.dbg.json +1 -1
  82. package/build/contracts/src/libraries/GasRefundEnabled.sol/GasRefundEnabled.dbg.json +1 -1
  83. package/build/contracts/src/libraries/IGasRefunder.sol/IGasRefunder.dbg.json +1 -1
  84. package/build/contracts/src/libraries/IReader4844.sol/IReader4844.dbg.json +1 -1
  85. package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.dbg.json +1 -1
  86. package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.json +2 -2
  87. package/build/contracts/src/libraries/UUPSNotUpgradeable.sol/UUPSNotUpgradeable.dbg.json +1 -1
  88. package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.dbg.json +4 -0
  89. package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.json +46 -0
  90. package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.dbg.json +1 -1
  91. package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.json +28 -2
  92. package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.dbg.json +1 -1
  93. package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.json +2 -2
  94. package/build/contracts/src/mocks/InboxStub.sol/InboxStub.dbg.json +1 -1
  95. package/build/contracts/src/mocks/InboxStub.sol/InboxStub.json +2 -2
  96. package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.dbg.json +1 -1
  97. package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.json +2 -2
  98. package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.dbg.json +4 -0
  99. package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.json +71 -0
  100. package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.dbg.json +4 -0
  101. package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.json +36 -0
  102. package/build/contracts/src/mocks/Program.sol/ProgramTest.dbg.json +4 -0
  103. package/build/contracts/src/mocks/Program.sol/ProgramTest.json +142 -0
  104. package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.dbg.json +1 -1
  105. package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.dbg.json +4 -0
  106. package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.json +25 -0
  107. package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.dbg.json +1 -1
  108. package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.json +2 -2
  109. package/build/contracts/src/mocks/Simple.sol/Simple.dbg.json +1 -1
  110. package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.dbg.json +4 -0
  111. package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.json +37 -0
  112. package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.dbg.json +1 -1
  113. package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.dbg.json +1 -1
  114. package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.json +50 -2
  115. package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.dbg.json +1 -1
  116. package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.json +50 -2
  117. package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.dbg.json +1 -1
  118. package/build/contracts/src/node-interface/NodeInterface.sol/NodeInterface.dbg.json +1 -1
  119. package/build/contracts/src/node-interface/NodeInterfaceDebug.sol/NodeInterfaceDebug.dbg.json +1 -1
  120. package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.dbg.json +1 -1
  121. package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.dbg.json +1 -1
  122. package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.json +48 -0
  123. package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.dbg.json +1 -1
  124. package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.json +2 -2
  125. package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.dbg.json +1 -1
  126. package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.json +88 -0
  127. package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.dbg.json +1 -1
  128. package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.json +50 -2
  129. package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.dbg.json +1 -1
  130. package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.json +90 -2
  131. package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.dbg.json +1 -1
  132. package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.json +90 -2
  133. package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.dbg.json +1 -1
  134. package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.json +90 -2
  135. package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.dbg.json +1 -1
  136. package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.json +90 -2
  137. package/build/contracts/src/precompiles/ArbAddressTable.sol/ArbAddressTable.dbg.json +1 -1
  138. package/build/contracts/src/precompiles/ArbAggregator.sol/ArbAggregator.dbg.json +1 -1
  139. package/build/contracts/src/precompiles/ArbBLS.sol/ArbBLS.dbg.json +1 -1
  140. package/build/contracts/src/precompiles/ArbDebug.sol/ArbDebug.dbg.json +1 -1
  141. package/build/contracts/src/precompiles/ArbDebug.sol/ArbDebug.json +7 -0
  142. package/build/contracts/src/precompiles/ArbFunctionTable.sol/ArbFunctionTable.dbg.json +1 -1
  143. package/build/contracts/src/precompiles/ArbGasInfo.sol/ArbGasInfo.dbg.json +1 -1
  144. package/build/contracts/src/precompiles/ArbInfo.sol/ArbInfo.dbg.json +1 -1
  145. package/build/contracts/src/precompiles/ArbOwner.sol/ArbOwner.dbg.json +1 -1
  146. package/build/contracts/src/precompiles/ArbOwner.sol/ArbOwner.json +161 -0
  147. package/build/contracts/src/precompiles/ArbOwnerPublic.sol/ArbOwnerPublic.dbg.json +1 -1
  148. package/build/contracts/src/precompiles/ArbRetryableTx.sol/ArbRetryableTx.dbg.json +1 -1
  149. package/build/contracts/src/precompiles/ArbStatistics.sol/ArbStatistics.dbg.json +1 -1
  150. package/build/contracts/src/precompiles/ArbSys.sol/ArbSys.dbg.json +1 -1
  151. package/build/contracts/src/precompiles/ArbWasm.sol/ArbWasm.dbg.json +4 -0
  152. package/build/contracts/src/precompiles/ArbWasm.sol/ArbWasm.json +453 -0
  153. package/build/contracts/src/precompiles/ArbWasmCache.sol/ArbWasmCache.dbg.json +4 -0
  154. package/build/contracts/src/precompiles/ArbWasmCache.sol/ArbWasmCache.json +126 -0
  155. package/build/contracts/src/precompiles/ArbosActs.sol/ArbosActs.dbg.json +1 -1
  156. package/build/contracts/src/precompiles/ArbosTest.sol/ArbosTest.dbg.json +1 -1
  157. package/build/contracts/src/rollup/AbsRollupEventInbox.sol/AbsRollupEventInbox.dbg.json +1 -1
  158. package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.dbg.json +1 -1
  159. package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.json +2 -2
  160. package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.dbg.json +1 -1
  161. package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.json +2 -2
  162. package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.dbg.json +1 -1
  163. package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.json +2 -2
  164. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.dbg.json +4 -0
  165. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.json +68 -0
  166. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IDeployHelper.dbg.json +4 -0
  167. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IDeployHelper.json +58 -0
  168. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20.dbg.json +4 -0
  169. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20.json +40 -0
  170. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20Bridge.dbg.json +4 -0
  171. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20Bridge.json +24 -0
  172. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IInboxBase.dbg.json +4 -0
  173. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IInboxBase.json +24 -0
  174. package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.dbg.json +1 -1
  175. package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.dbg.json +1 -1
  176. package/build/contracts/src/rollup/IRollupEventInbox.sol/IRollupEventInbox.dbg.json +1 -1
  177. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.dbg.json +1 -1
  178. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.json +18 -0
  179. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.dbg.json +1 -1
  180. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.json +18 -0
  181. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.dbg.json +1 -1
  182. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.json +18 -0
  183. package/build/contracts/src/rollup/Node.sol/NodeLib.dbg.json +1 -1
  184. package/build/contracts/src/rollup/Node.sol/NodeLib.json +2 -2
  185. package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.dbg.json +1 -1
  186. package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.json +28 -2
  187. package/build/contracts/src/rollup/RollupCore.sol/RollupCore.dbg.json +1 -1
  188. package/build/contracts/src/rollup/RollupCore.sol/RollupCore.json +13 -0
  189. package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.dbg.json +1 -1
  190. package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.json +2 -2
  191. package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.dbg.json +1 -1
  192. package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.json +2 -2
  193. package/build/contracts/src/rollup/RollupLib.sol/RollupLib.dbg.json +1 -1
  194. package/build/contracts/src/rollup/RollupLib.sol/RollupLib.json +2 -2
  195. package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.dbg.json +1 -1
  196. package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.json +2 -2
  197. package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.dbg.json +1 -1
  198. package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.json +31 -0
  199. package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.dbg.json +1 -1
  200. package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.json +33 -2
  201. package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.dbg.json +1 -1
  202. package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.json +33 -2
  203. package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.dbg.json +1 -1
  204. package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.json +2 -2
  205. package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.dbg.json +1 -1
  206. package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.json +2 -2
  207. package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.dbg.json +1 -1
  208. package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.json +2 -2
  209. package/build/contracts/src/state/Deserialize.sol/Deserialize.dbg.json +1 -1
  210. package/build/contracts/src/state/Deserialize.sol/Deserialize.json +2 -2
  211. package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.dbg.json +1 -1
  212. package/build/contracts/src/state/Instructions.sol/Instructions.dbg.json +1 -1
  213. package/build/contracts/src/state/Instructions.sol/Instructions.json +2 -2
  214. package/build/contracts/src/state/Machine.sol/MachineLib.dbg.json +1 -1
  215. package/build/contracts/src/state/Machine.sol/MachineLib.json +2 -2
  216. package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.dbg.json +1 -1
  217. package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.json +2 -2
  218. package/build/contracts/src/state/Module.sol/ModuleLib.dbg.json +1 -1
  219. package/build/contracts/src/state/Module.sol/ModuleLib.json +2 -2
  220. package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.dbg.json +1 -1
  221. package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.json +2 -2
  222. package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.dbg.json +1 -1
  223. package/build/contracts/src/state/MultiStack.sol/MultiStackLib.dbg.json +4 -0
  224. package/build/contracts/src/state/MultiStack.sol/MultiStackLib.json +10 -0
  225. package/build/contracts/src/state/PcArray.sol/PcArrayLib.dbg.json +1 -1
  226. package/build/contracts/src/state/StackFrame.sol/StackFrameLib.dbg.json +1 -1
  227. package/build/contracts/src/state/StackFrame.sol/StackFrameLib.json +2 -2
  228. package/build/contracts/src/state/Value.sol/ValueLib.dbg.json +1 -1
  229. package/build/contracts/src/state/Value.sol/ValueLib.json +2 -2
  230. package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.dbg.json +1 -1
  231. package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.json +2 -2
  232. package/build/contracts/src/state/ValueStack.sol/ValueStackLib.dbg.json +1 -1
  233. package/build/contracts/src/state/ValueStack.sol/ValueStackLib.json +2 -2
  234. package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.dbg.json +1 -1
  235. package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.json +28 -2
  236. package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.dbg.json +1 -1
  237. package/build/contracts/src/test-helpers/EthVault.sol/EthVault.dbg.json +1 -1
  238. package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.dbg.json +1 -1
  239. package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.dbg.json +1 -1
  240. package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.json +2 -2
  241. package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.dbg.json +1 -1
  242. package/build/contracts/src/test-helpers/TestToken.sol/TestToken.dbg.json +1 -1
  243. package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.dbg.json +1 -1
  244. package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.json +2 -2
  245. package/package.json +17 -8
  246. package/src/bridge/AbsInbox.sol +16 -4
  247. package/src/bridge/AbsOutbox.sol +11 -2
  248. package/src/bridge/ERC20Bridge.sol +30 -3
  249. package/src/bridge/ERC20Inbox.sol +28 -4
  250. package/src/bridge/ERC20Outbox.sol +10 -1
  251. package/src/bridge/IERC20Bridge.sol +7 -0
  252. package/src/bridge/IERC20Inbox.sol +4 -3
  253. package/src/bridge/IInbox.sol +3 -3
  254. package/src/bridge/Inbox.sol +6 -1
  255. package/src/bridge/Outbox.sol +5 -0
  256. package/src/chain/CacheManager.sol +293 -0
  257. package/src/challenge/ChallengeLib.sol +0 -45
  258. package/src/challenge/ChallengeManager.sol +24 -9
  259. package/src/challenge/IChallengeManager.sol +13 -0
  260. package/src/libraries/Constants.sol +11 -0
  261. package/src/libraries/DecimalsConverterHelper.sol +33 -0
  262. package/src/libraries/Error.sol +6 -0
  263. package/src/mocks/Benchmarks.sol +52 -0
  264. package/src/mocks/BridgeStub.sol +3 -0
  265. package/src/mocks/MultiCallTest.sol +117 -0
  266. package/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol +29 -0
  267. package/src/mocks/Program.sol +126 -0
  268. package/src/mocks/SdkStorage.sol +176 -0
  269. package/src/mocks/SimpleCacheManager.sol +22 -0
  270. package/src/node-interface/NodeInterface.sol +1 -1
  271. package/src/osp/IOneStepProofEntry.sol +10 -0
  272. package/src/osp/OneStepProofEntry.sol +81 -7
  273. package/src/osp/OneStepProver0.sol +64 -20
  274. package/src/osp/OneStepProverHostIo.sol +201 -2
  275. package/src/osp/OneStepProverMemory.sol +4 -33
  276. package/src/precompiles/ArbDebug.sol +2 -0
  277. package/src/precompiles/ArbOwner.sol +51 -9
  278. package/src/precompiles/ArbWasm.sol +119 -0
  279. package/src/precompiles/ArbWasmCache.sol +36 -0
  280. package/src/rollup/AbsRollupEventInbox.sol +3 -4
  281. package/src/rollup/DeployHelper.sol +22 -11
  282. package/src/rollup/ERC20RollupEventInbox.sol +5 -0
  283. package/src/rollup/FactoryDeployerHelper.sol +54 -0
  284. package/src/rollup/IRollupLogic.sol +2 -0
  285. package/src/rollup/RollupAdminLogic.sol +11 -0
  286. package/src/rollup/RollupCore.sol +1 -0
  287. package/src/rollup/RollupCreator.sol +49 -1
  288. package/src/rollup/RollupEventInbox.sol +8 -0
  289. package/src/rollup/RollupUserLogic.sol +35 -13
  290. package/src/state/Deserialize.sol +88 -47
  291. package/src/state/Instructions.sol +38 -3
  292. package/src/state/Machine.sol +92 -15
  293. package/src/state/MerkleProof.sol +22 -4
  294. package/src/state/Module.sol +3 -1
  295. package/src/state/ModuleMemory.sol +54 -0
  296. package/src/state/MultiStack.sol +58 -0
  297. package/src/state/StackFrame.sol +6 -1
  298. package/src/state/Value.sol +13 -1
  299. package/src/state/ValueStack.sol +6 -1
  300. package/src/test-helpers/BridgeTester.sol +3 -0
@@ -422,6 +422,32 @@
422
422
  "stateMutability": "pure",
423
423
  "type": "function"
424
424
  },
425
+ {
426
+ "inputs": [],
427
+ "name": "nativeToken",
428
+ "outputs": [
429
+ {
430
+ "internalType": "address",
431
+ "name": "",
432
+ "type": "address"
433
+ }
434
+ ],
435
+ "stateMutability": "view",
436
+ "type": "function"
437
+ },
438
+ {
439
+ "inputs": [],
440
+ "name": "nativeTokenDecimals",
441
+ "outputs": [
442
+ {
443
+ "internalType": "uint8",
444
+ "name": "",
445
+ "type": "uint8"
446
+ }
447
+ ],
448
+ "stateMutability": "view",
449
+ "type": "function"
450
+ },
425
451
  {
426
452
  "inputs": [],
427
453
  "name": "rollup",
@@ -580,8 +606,8 @@
580
606
  "type": "function"
581
607
  }
582
608
  ],
583
- "bytecode": "0x608060405234801561001057600080fd5b50610c91806100206000396000f3fe6080604052600436106101345760003560e01c80639e5d4c49116100ab578063cee3d7281161006f578063cee3d72814610372578063d5719dc21461038d578063e76f5c8d146103ad578063e77145f4146101cd578063eca067ad146103cd578063ee35f327146103e257600080fd5b80639e5d4c49146102d3578063ab5d894314610301578063ae60bd1314610321578063c4d66de81461027b578063cb23bcb51461035d57600080fd5b80635fca4a16116100fd5780635fca4a16146101ef5780637a88b1071461020557806386598a56146102285780638db5993b14610268578063919cc7061461027b578063945e11471461029b57600080fd5b806284120c1461013957806316bf55791461015d578063413b35bd1461017d57806347fb24c5146101ad5780634f61f850146101cf575b600080fd5b34801561014557600080fd5b506005545b6040519081526020015b60405180910390f35b34801561016957600080fd5b5061014a6101783660046109c1565b610402565b34801561018957600080fd5b5061019d6101983660046109f2565b610423565b6040519015158152602001610154565b3480156101b957600080fd5b506101cd6101c8366004610a16565b610446565b005b3480156101db57600080fd5b506101cd6101ea3660046109f2565b61065d565b3480156101fb57600080fd5b5061014a60075481565b34801561021157600080fd5b5061014a610220366004610a54565b600092915050565b34801561023457600080fd5b50610248610243366004610a80565b6106b1565b604080519485526020850193909352918301526060820152608001610154565b61014a610276366004610ab2565b6107e8565b34801561028757600080fd5b506101cd6102963660046109f2565b610851565b3480156102a757600080fd5b506102bb6102b63660046109c1565b610869565b6040516001600160a01b039091168152602001610154565b3480156102df57600080fd5b506102f36102ee366004610af9565b610893565b604051610154929190610b82565b34801561030d57600080fd5b506003546102bb906001600160a01b031681565b34801561032d57600080fd5b5061019d61033c3660046109f2565b6001600160a01b031660009081526020819052604090206001015460ff1690565b34801561036957600080fd5b506102bb610423565b34801561037e57600080fd5b506101cd610296366004610a16565b34801561039957600080fd5b5061014a6103a83660046109c1565b6108af565b3480156103b957600080fd5b506102bb6103c83660046109c1565b6108bf565b3480156103d957600080fd5b5060045461014a565b3480156103ee57600080fd5b506006546102bb906001600160a01b031681565b6005818154811061041257600080fd5b600091825260209091200154905081565b600060405162461bcd60e51b815260040161043d90610be1565b60405180910390fd5b6001600160a01b03821660008181526020818152604091829020600181015492518515158152909360ff90931692917f6675ce8882cb71637de5903a193d218cc0544be9c0650cb83e0955f6aa2bf521910160405180910390a282151581151514156104b25750505050565b821561053e5760408051808201825260018054825260208083018281526001600160a01b0389166000818152928390529482209351845551928201805460ff1916931515939093179092558054808201825591527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319169091179055610657565b6001805461054d908290610c0a565b8154811061055d5761055d610c2f565b6000918252602090912001548254600180546001600160a01b0390931692909190811061058c5761058c610c2f565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816000015460008060018560000154815481106105d9576105d9610c2f565b60009182526020808320909101546001600160a01b03168352820192909252604001902055600180548061060f5761060f610c45565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b038616825281905260408120908155600101805460ff191690555b50505050565b600680546001600160a01b0319166001600160a01b0383169081179091556040519081527f8c1e6003ed33ca6748d4ad3dd4ecc949065c89dceb31fdf546a5289202763c6a9060200160405180910390a150565b60008060008085600754141580156106c857508515155b80156106d5575060075415155b156107015760075460405163e2051feb60e01b815260048101919091526024810187905260440161043d565b60078590556005549350831561073f576005805461072190600190610c0a565b8154811061073157610731610c2f565b906000526020600020015492505b8615610770576004610752600189610c0a565b8154811061076257610762610c2f565b906000526020600020015491505b60408051602081018590529081018990526060810183905260800160408051601f198184030181529190528051602090910120600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0018190559398929750909550919350915050565b3360009081526020819052604081206001015460ff1661083b5760405162461bcd60e51b815260206004820152600e60248201526d09c9ea8be8ca49e9abe929c849eb60931b604482015260640161043d565b6108498484434248876108cf565b949350505050565b60405162461bcd60e51b815260040161043d90610be1565b6002818154811061087957600080fd5b6000918252602090912001546001600160a01b0316905081565b6000606060405162461bcd60e51b815260040161043d90610be1565b6004818154811061041257600080fd5b6001818154811061087957600080fd5b60045460408051600060208083018290526021830182905260358301829052603d8301829052604583018290526065830182905260858084018790528451808503909101815260a5909301909352815191909201209091906000821561095a57600461093c600185610c0a565b8154811061094c5761094c610c2f565b906000526020600020015490505b6040805160208082019390935280820193909352805180840382018152606090930190528151910120600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0155979650505050505050565b6000602082840312156109d357600080fd5b5035919050565b6001600160a01b03811681146109ef57600080fd5b50565b600060208284031215610a0457600080fd5b8135610a0f816109da565b9392505050565b60008060408385031215610a2957600080fd5b8235610a34816109da565b915060208301358015158114610a4957600080fd5b809150509250929050565b60008060408385031215610a6757600080fd5b8235610a72816109da565b946020939093013593505050565b60008060008060808587031215610a9657600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060608486031215610ac757600080fd5b833560ff81168114610ad857600080fd5b92506020840135610ae8816109da565b929592945050506040919091013590565b60008060008060608587031215610b0f57600080fd5b8435610b1a816109da565b935060208501359250604085013567ffffffffffffffff80821115610b3e57600080fd5b818701915087601f830112610b5257600080fd5b813581811115610b6157600080fd5b886020828501011115610b7357600080fd5b95989497505060200194505050565b821515815260006020604081840152835180604085015260005b81811015610bb857858101830151858201606001528201610b9c565b81811115610bca576000606083870101525b50601f01601f191692909201606001949350505050565b6020808252600f908201526e1393d517d253541311535153951151608a1b604082015260600190565b600082821015610c2a57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fdfea2646970667358221220ae1b5e9e373ec4e7d8434b49f90ee411de9ff29e5d92e11114f405b313155b5064736f6c63430008090033",
584
- "deployedBytecode": "0x6080604052600436106101345760003560e01c80639e5d4c49116100ab578063cee3d7281161006f578063cee3d72814610372578063d5719dc21461038d578063e76f5c8d146103ad578063e77145f4146101cd578063eca067ad146103cd578063ee35f327146103e257600080fd5b80639e5d4c49146102d3578063ab5d894314610301578063ae60bd1314610321578063c4d66de81461027b578063cb23bcb51461035d57600080fd5b80635fca4a16116100fd5780635fca4a16146101ef5780637a88b1071461020557806386598a56146102285780638db5993b14610268578063919cc7061461027b578063945e11471461029b57600080fd5b806284120c1461013957806316bf55791461015d578063413b35bd1461017d57806347fb24c5146101ad5780634f61f850146101cf575b600080fd5b34801561014557600080fd5b506005545b6040519081526020015b60405180910390f35b34801561016957600080fd5b5061014a6101783660046109c1565b610402565b34801561018957600080fd5b5061019d6101983660046109f2565b610423565b6040519015158152602001610154565b3480156101b957600080fd5b506101cd6101c8366004610a16565b610446565b005b3480156101db57600080fd5b506101cd6101ea3660046109f2565b61065d565b3480156101fb57600080fd5b5061014a60075481565b34801561021157600080fd5b5061014a610220366004610a54565b600092915050565b34801561023457600080fd5b50610248610243366004610a80565b6106b1565b604080519485526020850193909352918301526060820152608001610154565b61014a610276366004610ab2565b6107e8565b34801561028757600080fd5b506101cd6102963660046109f2565b610851565b3480156102a757600080fd5b506102bb6102b63660046109c1565b610869565b6040516001600160a01b039091168152602001610154565b3480156102df57600080fd5b506102f36102ee366004610af9565b610893565b604051610154929190610b82565b34801561030d57600080fd5b506003546102bb906001600160a01b031681565b34801561032d57600080fd5b5061019d61033c3660046109f2565b6001600160a01b031660009081526020819052604090206001015460ff1690565b34801561036957600080fd5b506102bb610423565b34801561037e57600080fd5b506101cd610296366004610a16565b34801561039957600080fd5b5061014a6103a83660046109c1565b6108af565b3480156103b957600080fd5b506102bb6103c83660046109c1565b6108bf565b3480156103d957600080fd5b5060045461014a565b3480156103ee57600080fd5b506006546102bb906001600160a01b031681565b6005818154811061041257600080fd5b600091825260209091200154905081565b600060405162461bcd60e51b815260040161043d90610be1565b60405180910390fd5b6001600160a01b03821660008181526020818152604091829020600181015492518515158152909360ff90931692917f6675ce8882cb71637de5903a193d218cc0544be9c0650cb83e0955f6aa2bf521910160405180910390a282151581151514156104b25750505050565b821561053e5760408051808201825260018054825260208083018281526001600160a01b0389166000818152928390529482209351845551928201805460ff1916931515939093179092558054808201825591527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319169091179055610657565b6001805461054d908290610c0a565b8154811061055d5761055d610c2f565b6000918252602090912001548254600180546001600160a01b0390931692909190811061058c5761058c610c2f565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816000015460008060018560000154815481106105d9576105d9610c2f565b60009182526020808320909101546001600160a01b03168352820192909252604001902055600180548061060f5761060f610c45565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b038616825281905260408120908155600101805460ff191690555b50505050565b600680546001600160a01b0319166001600160a01b0383169081179091556040519081527f8c1e6003ed33ca6748d4ad3dd4ecc949065c89dceb31fdf546a5289202763c6a9060200160405180910390a150565b60008060008085600754141580156106c857508515155b80156106d5575060075415155b156107015760075460405163e2051feb60e01b815260048101919091526024810187905260440161043d565b60078590556005549350831561073f576005805461072190600190610c0a565b8154811061073157610731610c2f565b906000526020600020015492505b8615610770576004610752600189610c0a565b8154811061076257610762610c2f565b906000526020600020015491505b60408051602081018590529081018990526060810183905260800160408051601f198184030181529190528051602090910120600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0018190559398929750909550919350915050565b3360009081526020819052604081206001015460ff1661083b5760405162461bcd60e51b815260206004820152600e60248201526d09c9ea8be8ca49e9abe929c849eb60931b604482015260640161043d565b6108498484434248876108cf565b949350505050565b60405162461bcd60e51b815260040161043d90610be1565b6002818154811061087957600080fd5b6000918252602090912001546001600160a01b0316905081565b6000606060405162461bcd60e51b815260040161043d90610be1565b6004818154811061041257600080fd5b6001818154811061087957600080fd5b60045460408051600060208083018290526021830182905260358301829052603d8301829052604583018290526065830182905260858084018790528451808503909101815260a5909301909352815191909201209091906000821561095a57600461093c600185610c0a565b8154811061094c5761094c610c2f565b906000526020600020015490505b6040805160208082019390935280820193909352805180840382018152606090930190528151910120600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0155979650505050505050565b6000602082840312156109d357600080fd5b5035919050565b6001600160a01b03811681146109ef57600080fd5b50565b600060208284031215610a0457600080fd5b8135610a0f816109da565b9392505050565b60008060408385031215610a2957600080fd5b8235610a34816109da565b915060208301358015158114610a4957600080fd5b809150509250929050565b60008060408385031215610a6757600080fd5b8235610a72816109da565b946020939093013593505050565b60008060008060808587031215610a9657600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060608486031215610ac757600080fd5b833560ff81168114610ad857600080fd5b92506020840135610ae8816109da565b929592945050506040919091013590565b60008060008060608587031215610b0f57600080fd5b8435610b1a816109da565b935060208501359250604085013567ffffffffffffffff80821115610b3e57600080fd5b818701915087601f830112610b5257600080fd5b813581811115610b6157600080fd5b886020828501011115610b7357600080fd5b95989497505060200194505050565b821515815260006020604081840152835180604085015260005b81811015610bb857858101830151858201606001528201610b9c565b81811115610bca576000606083870101525b50601f01601f191692909201606001949350505050565b6020808252600f908201526e1393d517d253541311535153951151608a1b604082015260600190565b600082821015610c2a57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fdfea2646970667358221220ae1b5e9e373ec4e7d8434b49f90ee411de9ff29e5d92e11114f405b313155b5064736f6c63430008090033",
609
+ "bytecode": "0x608060405234801561001057600080fd5b50610cfa806100206000396000f3fe60806040526004361061014a5760003560e01c8063ab5d8943116100b6578063d5719dc21161006f578063d5719dc2146103d6578063e1758bd8146103f6578063e76f5c8d14610416578063e77145f4146101e3578063eca067ad14610436578063ee35f3271461044b57600080fd5b8063ab5d894314610317578063ad48cb5e14610337578063ae60bd131461036a578063c4d66de814610291578063cb23bcb5146103a6578063cee3d728146103bb57600080fd5b80637a88b107116101085780637a88b1071461021b57806386598a561461023e5780638db5993b1461027e578063919cc70614610291578063945e1147146102b15780639e5d4c49146102e957600080fd5b806284120c1461014f57806316bf557914610173578063413b35bd1461019357806347fb24c5146101c35780634f61f850146101e55780635fca4a1614610205575b600080fd5b34801561015b57600080fd5b506005545b6040519081526020015b60405180910390f35b34801561017f57600080fd5b5061016061018e366004610a2a565b61046b565b34801561019f57600080fd5b506101b36101ae366004610a5b565b61048c565b604051901515815260200161016a565b3480156101cf57600080fd5b506101e36101de366004610a7f565b6104af565b005b3480156101f157600080fd5b506101e3610200366004610a5b565b6106c6565b34801561021157600080fd5b5061016060075481565b34801561022757600080fd5b50610160610236366004610abd565b600092915050565b34801561024a57600080fd5b5061025e610259366004610ae9565b61071a565b60408051948552602085019390935291830152606082015260800161016a565b61016061028c366004610b1b565b610851565b34801561029d57600080fd5b506101e36102ac366004610a5b565b6108ba565b3480156102bd57600080fd5b506102d16102cc366004610a2a565b6108d2565b6040516001600160a01b03909116815260200161016a565b3480156102f557600080fd5b50610309610304366004610b62565b6108fc565b60405161016a929190610beb565b34801561032357600080fd5b506003546102d1906001600160a01b031681565b34801561034357600080fd5b5060085461035890600160a01b900460ff1681565b60405160ff909116815260200161016a565b34801561037657600080fd5b506101b3610385366004610a5b565b6001600160a01b031660009081526020819052604090206001015460ff1690565b3480156103b257600080fd5b506102d161048c565b3480156103c757600080fd5b506101e36102ac366004610a7f565b3480156103e257600080fd5b506101606103f1366004610a2a565b610918565b34801561040257600080fd5b506008546102d1906001600160a01b031681565b34801561042257600080fd5b506102d1610431366004610a2a565b610928565b34801561044257600080fd5b50600454610160565b34801561045757600080fd5b506006546102d1906001600160a01b031681565b6005818154811061047b57600080fd5b600091825260209091200154905081565b600060405162461bcd60e51b81526004016104a690610c4a565b60405180910390fd5b6001600160a01b03821660008181526020818152604091829020600181015492518515158152909360ff90931692917f6675ce8882cb71637de5903a193d218cc0544be9c0650cb83e0955f6aa2bf521910160405180910390a2821515811515141561051b5750505050565b82156105a75760408051808201825260018054825260208083018281526001600160a01b0389166000818152928390529482209351845551928201805460ff1916931515939093179092558054808201825591527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b03191690911790556106c0565b600180546105b6908290610c73565b815481106105c6576105c6610c98565b6000918252602090912001548254600180546001600160a01b039093169290919081106105f5576105f5610c98565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508160000154600080600185600001548154811061064257610642610c98565b60009182526020808320909101546001600160a01b03168352820192909252604001902055600180548061067857610678610cae565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b038616825281905260408120908155600101805460ff191690555b50505050565b600680546001600160a01b0319166001600160a01b0383169081179091556040519081527f8c1e6003ed33ca6748d4ad3dd4ecc949065c89dceb31fdf546a5289202763c6a9060200160405180910390a150565b600080600080856007541415801561073157508515155b801561073e575060075415155b1561076a5760075460405163e2051feb60e01b81526004810191909152602481018790526044016104a6565b6007859055600554935083156107a8576005805461078a90600190610c73565b8154811061079a5761079a610c98565b906000526020600020015492505b86156107d95760046107bb600189610c73565b815481106107cb576107cb610c98565b906000526020600020015491505b60408051602081018590529081018990526060810183905260800160408051601f198184030181529190528051602090910120600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0018190559398929750909550919350915050565b3360009081526020819052604081206001015460ff166108a45760405162461bcd60e51b815260206004820152600e60248201526d09c9ea8be8ca49e9abe929c849eb60931b60448201526064016104a6565b6108b2848443424887610938565b949350505050565b60405162461bcd60e51b81526004016104a690610c4a565b600281815481106108e257600080fd5b6000918252602090912001546001600160a01b0316905081565b6000606060405162461bcd60e51b81526004016104a690610c4a565b6004818154811061047b57600080fd5b600181815481106108e257600080fd5b60045460408051600060208083018290526021830182905260358301829052603d8301829052604583018290526065830182905260858084018790528451808503909101815260a590930190935281519190920120909190600082156109c35760046109a5600185610c73565b815481106109b5576109b5610c98565b906000526020600020015490505b6040805160208082019390935280820193909352805180840382018152606090930190528151910120600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0155979650505050505050565b600060208284031215610a3c57600080fd5b5035919050565b6001600160a01b0381168114610a5857600080fd5b50565b600060208284031215610a6d57600080fd5b8135610a7881610a43565b9392505050565b60008060408385031215610a9257600080fd5b8235610a9d81610a43565b915060208301358015158114610ab257600080fd5b809150509250929050565b60008060408385031215610ad057600080fd5b8235610adb81610a43565b946020939093013593505050565b60008060008060808587031215610aff57600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060608486031215610b3057600080fd5b833560ff81168114610b4157600080fd5b92506020840135610b5181610a43565b929592945050506040919091013590565b60008060008060608587031215610b7857600080fd5b8435610b8381610a43565b935060208501359250604085013567ffffffffffffffff80821115610ba757600080fd5b818701915087601f830112610bbb57600080fd5b813581811115610bca57600080fd5b886020828501011115610bdc57600080fd5b95989497505060200194505050565b821515815260006020604081840152835180604085015260005b81811015610c2157858101830151858201606001528201610c05565b81811115610c33576000606083870101525b50601f01601f191692909201606001949350505050565b6020808252600f908201526e1393d517d253541311535153951151608a1b604082015260600190565b600082821015610c9357634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fdfea264697066735822122098b9c6a75c564e1691ebcc79d1ec955be60745576d70efeddeb9c36a2186a8c264736f6c63430008090033",
610
+ "deployedBytecode": "0x60806040526004361061014a5760003560e01c8063ab5d8943116100b6578063d5719dc21161006f578063d5719dc2146103d6578063e1758bd8146103f6578063e76f5c8d14610416578063e77145f4146101e3578063eca067ad14610436578063ee35f3271461044b57600080fd5b8063ab5d894314610317578063ad48cb5e14610337578063ae60bd131461036a578063c4d66de814610291578063cb23bcb5146103a6578063cee3d728146103bb57600080fd5b80637a88b107116101085780637a88b1071461021b57806386598a561461023e5780638db5993b1461027e578063919cc70614610291578063945e1147146102b15780639e5d4c49146102e957600080fd5b806284120c1461014f57806316bf557914610173578063413b35bd1461019357806347fb24c5146101c35780634f61f850146101e55780635fca4a1614610205575b600080fd5b34801561015b57600080fd5b506005545b6040519081526020015b60405180910390f35b34801561017f57600080fd5b5061016061018e366004610a2a565b61046b565b34801561019f57600080fd5b506101b36101ae366004610a5b565b61048c565b604051901515815260200161016a565b3480156101cf57600080fd5b506101e36101de366004610a7f565b6104af565b005b3480156101f157600080fd5b506101e3610200366004610a5b565b6106c6565b34801561021157600080fd5b5061016060075481565b34801561022757600080fd5b50610160610236366004610abd565b600092915050565b34801561024a57600080fd5b5061025e610259366004610ae9565b61071a565b60408051948552602085019390935291830152606082015260800161016a565b61016061028c366004610b1b565b610851565b34801561029d57600080fd5b506101e36102ac366004610a5b565b6108ba565b3480156102bd57600080fd5b506102d16102cc366004610a2a565b6108d2565b6040516001600160a01b03909116815260200161016a565b3480156102f557600080fd5b50610309610304366004610b62565b6108fc565b60405161016a929190610beb565b34801561032357600080fd5b506003546102d1906001600160a01b031681565b34801561034357600080fd5b5060085461035890600160a01b900460ff1681565b60405160ff909116815260200161016a565b34801561037657600080fd5b506101b3610385366004610a5b565b6001600160a01b031660009081526020819052604090206001015460ff1690565b3480156103b257600080fd5b506102d161048c565b3480156103c757600080fd5b506101e36102ac366004610a7f565b3480156103e257600080fd5b506101606103f1366004610a2a565b610918565b34801561040257600080fd5b506008546102d1906001600160a01b031681565b34801561042257600080fd5b506102d1610431366004610a2a565b610928565b34801561044257600080fd5b50600454610160565b34801561045757600080fd5b506006546102d1906001600160a01b031681565b6005818154811061047b57600080fd5b600091825260209091200154905081565b600060405162461bcd60e51b81526004016104a690610c4a565b60405180910390fd5b6001600160a01b03821660008181526020818152604091829020600181015492518515158152909360ff90931692917f6675ce8882cb71637de5903a193d218cc0544be9c0650cb83e0955f6aa2bf521910160405180910390a2821515811515141561051b5750505050565b82156105a75760408051808201825260018054825260208083018281526001600160a01b0389166000818152928390529482209351845551928201805460ff1916931515939093179092558054808201825591527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b03191690911790556106c0565b600180546105b6908290610c73565b815481106105c6576105c6610c98565b6000918252602090912001548254600180546001600160a01b039093169290919081106105f5576105f5610c98565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508160000154600080600185600001548154811061064257610642610c98565b60009182526020808320909101546001600160a01b03168352820192909252604001902055600180548061067857610678610cae565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b038616825281905260408120908155600101805460ff191690555b50505050565b600680546001600160a01b0319166001600160a01b0383169081179091556040519081527f8c1e6003ed33ca6748d4ad3dd4ecc949065c89dceb31fdf546a5289202763c6a9060200160405180910390a150565b600080600080856007541415801561073157508515155b801561073e575060075415155b1561076a5760075460405163e2051feb60e01b81526004810191909152602481018790526044016104a6565b6007859055600554935083156107a8576005805461078a90600190610c73565b8154811061079a5761079a610c98565b906000526020600020015492505b86156107d95760046107bb600189610c73565b815481106107cb576107cb610c98565b906000526020600020015491505b60408051602081018590529081018990526060810183905260800160408051601f198184030181529190528051602090910120600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0018190559398929750909550919350915050565b3360009081526020819052604081206001015460ff166108a45760405162461bcd60e51b815260206004820152600e60248201526d09c9ea8be8ca49e9abe929c849eb60931b60448201526064016104a6565b6108b2848443424887610938565b949350505050565b60405162461bcd60e51b81526004016104a690610c4a565b600281815481106108e257600080fd5b6000918252602090912001546001600160a01b0316905081565b6000606060405162461bcd60e51b81526004016104a690610c4a565b6004818154811061047b57600080fd5b600181815481106108e257600080fd5b60045460408051600060208083018290526021830182905260358301829052603d8301829052604583018290526065830182905260858084018790528451808503909101815260a590930190935281519190920120909190600082156109c35760046109a5600185610c73565b815481106109b5576109b5610c98565b906000526020600020015490505b6040805160208082019390935280820193909352805180840382018152606090930190528151910120600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0155979650505050505050565b600060208284031215610a3c57600080fd5b5035919050565b6001600160a01b0381168114610a5857600080fd5b50565b600060208284031215610a6d57600080fd5b8135610a7881610a43565b9392505050565b60008060408385031215610a9257600080fd5b8235610a9d81610a43565b915060208301358015158114610ab257600080fd5b809150509250929050565b60008060408385031215610ad057600080fd5b8235610adb81610a43565b946020939093013593505050565b60008060008060808587031215610aff57600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060608486031215610b3057600080fd5b833560ff81168114610b4157600080fd5b92506020840135610b5181610a43565b929592945050506040919091013590565b60008060008060608587031215610b7857600080fd5b8435610b8381610a43565b935060208501359250604085013567ffffffffffffffff80821115610ba757600080fd5b818701915087601f830112610bbb57600080fd5b813581811115610bca57600080fd5b886020828501011115610bdc57600080fd5b95989497505060200194505050565b821515815260006020604081840152835180604085015260005b81811015610c2157858101830151858201606001528201610c05565b81811115610c33576000606083870101525b50601f01601f191692909201606001949350505050565b6020808252600f908201526e1393d517d253541311535153951151608a1b604082015260600190565b600082821015610c9357634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fdfea264697066735822122098b9c6a75c564e1691ebcc79d1ec955be60745576d70efeddeb9c36a2186a8c264736f6c63430008090033",
585
611
  "linkReferences": {},
586
612
  "deployedLinkReferences": {}
587
613
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/7de232cc334b063903f669aaef0a3136.json"
3
+ "buildInfo": "../../../build-info/c1d194c598f27e74e5febef0e822787e.json"
4
4
  }
@@ -674,8 +674,8 @@
674
674
  "type": "function"
675
675
  }
676
676
  ],
677
- "bytecode": "0x60a06040523060805234801561001457600080fd5b50600580546001600160a01b03199081166001600160a01b031790915560088054909116331790556080516118186100576000396000610db801526118186000f3fe60806040526004361061013f5760003560e01c80639e5d4c49116100b6578063d5719dc21161006f578063d5719dc214610393578063e76f5c8d146103b3578063e77145f4146101d8578063eca067ad146103d3578063ee35f327146103e8578063f81ff3b31461040857600080fd5b80639e5d4c49146102d0578063ab5d8943146102fe578063ae60bd1314610313578063c4d66de814610333578063cb23bcb514610353578063cee3d7281461037357600080fd5b80635fca4a16116101085780635fca4a16146101fa5780637a88b1071461021057806386598a56146102305780638db5993b14610270578063919cc70614610283578063945e1147146102a357600080fd5b806284120c1461014457806316bf557914610168578063413b35bd1461018857806347fb24c5146101b85780634f61f850146101da575b600080fd5b34801561015057600080fd5b506007545b6040519081526020015b60405180910390f35b34801561017457600080fd5b506101556101833660046114cc565b610428565b34801561019457600080fd5b506101a86101a33660046114fa565b610449565b604051901515815260200161015f565b3480156101c457600080fd5b506101d86101d3366004611517565b61046a565b005b3480156101e657600080fd5b506101d86101f53660046114fa565b610760565b34801561020657600080fd5b50610155600a5481565b34801561021c57600080fd5b5061015561022b366004611555565b610885565b34801561023c57600080fd5b5061025061024b366004611581565b6108cb565b60408051948552602085019390935291830152606082015260800161015f565b61015561027e3660046115b3565b610a32565b34801561028f57600080fd5b506101d861029e3660046114fa565b610a48565b3480156102af57600080fd5b506102c36102be3660046114cc565b610b62565b60405161015f91906115fa565b3480156102dc57600080fd5b506102f06102eb36600461160e565b610b8c565b60405161015f9291906116c3565b34801561030a57600080fd5b506102c3610cc1565b34801561031f57600080fd5b506101a861032e3660046114fa565b610ce7565b34801561033f57600080fd5b506101d861034e3660046114fa565b610d09565b34801561035f57600080fd5b506008546102c3906001600160a01b031681565b34801561037f57600080fd5b506101d861038e366004611517565b610e7d565b34801561039f57600080fd5b506101556103ae3660046114cc565b611196565b3480156103bf57600080fd5b506102c36103ce3660046114cc565b6111a6565b3480156103df57600080fd5b50600654610155565b3480156103f457600080fd5b506009546102c3906001600160a01b031681565b34801561041457600080fd5b506101d86104233660046114cc565b6111b6565b6007818154811061043857600080fd5b600091825260209091200154905081565b6001600160a01b031660009081526002602052604090206001015460ff1690565b6008546001600160a01b031633146105425760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b1580156104c157600080fd5b505afa1580156104d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f991906116ff565b9050336001600160a01b0382161461054057600854604051630739600760e01b81526105379133916001600160a01b0390911690849060040161171c565b60405180910390fd5b505b6001600160a01b0382166000818152600160208181526040928390209182015492518515158152919360ff90931692917f6675ce8882cb71637de5903a193d218cc0544be9c0650cb83e0955f6aa2bf521910160405180910390a282151581151514156105af5750505050565b821561063d57604080518082018252600380548252600160208084018281526001600160a01b038a166000818152928490529582209451855551938201805460ff1916941515949094179093558154908101825591527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b0319169091179055610759565b6003805461064d9060019061173f565b8154811061065d5761065d611764565b6000918252602090912001548254600380546001600160a01b0390931692909190811061068c5761068c611764565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081600001546001600060038560000154815481106106da576106da611764565b60009182526020808320909101546001600160a01b0316835282019290925260400190205560038054806107105761071061177a565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b03861682526001908190526040822091825501805460ff191690555b50505b5050565b6008546001600160a01b0316331461082f5760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b1580156107b757600080fd5b505afa1580156107cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ef91906116ff565b9050336001600160a01b0382161461082d57600854604051630739600760e01b81526105379133916001600160a01b0390911690849060040161171c565b505b600980546001600160a01b0319166001600160a01b0383161790556040517f8c1e6003ed33ca6748d4ad3dd4ecc949065c89dceb31fdf546a5289202763c6a9061087a9083906115fa565b60405180910390a150565b6009546000906001600160a01b031633146108b5573360405163223e13c160e21b815260040161053791906115fa565b6108c4600d844342488761128a565b9392505050565b6009546000908190819081906001600160a01b03163314610901573360405163223e13c160e21b815260040161053791906115fa565b85600a541415801561091257508515155b801561091f5750600a5415155b1561094b57600a5460405163e2051feb60e01b8152600481019190915260248101879052604401610537565b600a85905560075493508315610989576007805461096b9060019061173f565b8154811061097b5761097b611764565b906000526020600020015492505b86156109ba57600661099c60018961173f565b815481106109ac576109ac611764565b906000526020600020015491505b60408051602081018590529081018990526060810183905260800160408051601f198184030181529190528051602090910120600780546001810182556000919091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688018190559398929750909550919350915050565b6000610a4084848434611419565b949350505050565b6008546001600160a01b03163314610b175760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610a9f57600080fd5b505afa158015610ab3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad791906116ff565b9050336001600160a01b03821614610b1557600854604051630739600760e01b81526105379133916001600160a01b0390911690849060040161171c565b505b600880546001600160a01b0319166001600160a01b0383161790556040517fae1f5aa15f6ff844896347ceca2a3c24c8d3a27785efdeacd581a0a95172784a9061087a9083906115fa565b60048181548110610b7257600080fd5b6000918252602090912001546001600160a01b0316905081565b60006060610b9933610449565b610bb857336040516332ea82ab60e01b815260040161053791906115fa565b8215801590610bcf57506001600160a01b0386163b155b15610bef578560405163b5cf5b8f60e01b815260040161053791906115fa565b600580546001600160a01b031981163317909155604080516020601f87018190048102820181019092528581526001600160a01b0390921691610c509189918991899089908190840183828082843760009201919091525061145d92505050565b600580546001600160a01b0319166001600160a01b038581169190911790915560405192955090935088169033907f2d9d115ef3e4a606d698913b1eae831a3cdfe20d9a83d48007b0526749c3d46690610caf908a908a908a90611790565b60405180910390a35094509492505050565b6005546000906001600160a01b0390811690811415610ce257600091505090565b919050565b6001600160a01b03166000908152600160208190526040909120015460ff1690565b600054610100900460ff16610d245760005460ff1615610d28565b303b155b610d8b5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610537565b600054610100900460ff16158015610dad576000805461ffff19166101011790555b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610e3b5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b6064820152608401610537565b600580546001600160a01b036001600160a01b0319918216811790925560088054909116918416919091179055801561075c576000805461ff00191690555050565b6008546001600160a01b03163314610f4c5760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610ed457600080fd5b505afa158015610ee8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0c91906116ff565b9050336001600160a01b03821614610f4a57600854604051630739600760e01b81526105379133916001600160a01b0390911690849060040161171c565b505b6001600160a01b038281161415610f78578160405163077abed160e41b815260040161053791906115fa565b6001600160a01b038216600081815260026020908152604091829020600181015492518515158152909360ff90931692917f49477e7356dbcb654ab85d7534b50126772d938130d1350e23e2540370c8dffa910160405180910390a28215158115151415610fe65750505050565b821561107557604080518082018252600480548252600160208084018281526001600160a01b038a16600081815260029093529582209451855551938201805460ff1916941515949094179093558154908101825591527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319169091179055610759565b600480546110859060019061173f565b8154811061109557611095611764565b6000918252602090912001548254600480546001600160a01b039093169290919081106110c4576110c4611764565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816000015460026000600485600001548154811061111257611112611764565b60009182526020808320909101546001600160a01b0316835282019290925260400190205560048054806111485761114861177a565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b03861682526002905260408120908155600101805460ff1916905550505050565b6006818154811061043857600080fd5b60038181548110610b7257600080fd5b6008546001600160a01b031633146112855760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b15801561120d57600080fd5b505afa158015611221573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124591906116ff565b9050336001600160a01b0382161461128357600854604051630739600760e01b81526105379133916001600160a01b0390911690849060040161171c565b505b600a55565b600654604080516001600160f81b031960f88a901b166020808301919091526bffffffffffffffffffffffff1960608a901b1660218301526001600160c01b031960c089811b8216603585015288901b16603d830152604582018490526065820186905260858083018690528351808403909101815260a59092019092528051910120600091906000821561134457600661132660018561173f565b8154811061133657611336611764565b906000526020600020015490505b6040805160208082018490528183018590528251808303840181526060830180855281519190920120600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f015533905260ff8c1660808201526001600160a01b038b1660a082015260c0810187905260e0810188905267ffffffffffffffff89166101008201529051829185917f5e3c1311ea442664e8b1611bfabef659120ea7a0a2cfc0667700bebc69cbffe1918190036101200190a3509098975050505050505050565b600061142433610ce7565b611443573360405163b6c60ea360e01b815260040161053791906115fa565b600061145386864342488961128a565b9695505050505050565b60006060846001600160a01b0316848460405161147a91906117c6565b60006040518083038185875af1925050503d80600081146114b7576040519150601f19603f3d011682016040523d82523d6000602084013e6114bc565b606091505b5090969095509350505050565b50565b6000602082840312156114de57600080fd5b5035919050565b6001600160a01b03811681146114c957600080fd5b60006020828403121561150c57600080fd5b81356108c4816114e5565b6000806040838503121561152a57600080fd5b8235611535816114e5565b91506020830135801515811461154a57600080fd5b809150509250929050565b6000806040838503121561156857600080fd5b8235611573816114e5565b946020939093013593505050565b6000806000806080858703121561159757600080fd5b5050823594602084013594506040840135936060013592509050565b6000806000606084860312156115c857600080fd5b833560ff811681146115d957600080fd5b925060208401356115e9816114e5565b929592945050506040919091013590565b6001600160a01b0391909116815260200190565b6000806000806060858703121561162457600080fd5b843561162f816114e5565b935060208501359250604085013567ffffffffffffffff8082111561165357600080fd5b818701915087601f83011261166757600080fd5b81358181111561167657600080fd5b88602082850101111561168857600080fd5b95989497505060200194505050565b60005b838110156116b257818101518382015260200161169a565b838111156107595750506000910152565b821515815260406020820152600082518060408401526116ea816060850160208701611697565b601f01601f1916919091016060019392505050565b60006020828403121561171157600080fd5b81516108c4816114e5565b6001600160a01b0393841681529183166020830152909116604082015260600190565b60008282101561175f57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b83815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b600082516117d8818460208701611697565b919091019291505056fea264697066735822122088a189778e0d25de9666ac3e81f862765ab0a68565f28d4b2e80af3ff71a470b64736f6c63430008090033",
678
- "deployedBytecode": "0x60806040526004361061013f5760003560e01c80639e5d4c49116100b6578063d5719dc21161006f578063d5719dc214610393578063e76f5c8d146103b3578063e77145f4146101d8578063eca067ad146103d3578063ee35f327146103e8578063f81ff3b31461040857600080fd5b80639e5d4c49146102d0578063ab5d8943146102fe578063ae60bd1314610313578063c4d66de814610333578063cb23bcb514610353578063cee3d7281461037357600080fd5b80635fca4a16116101085780635fca4a16146101fa5780637a88b1071461021057806386598a56146102305780638db5993b14610270578063919cc70614610283578063945e1147146102a357600080fd5b806284120c1461014457806316bf557914610168578063413b35bd1461018857806347fb24c5146101b85780634f61f850146101da575b600080fd5b34801561015057600080fd5b506007545b6040519081526020015b60405180910390f35b34801561017457600080fd5b506101556101833660046114cc565b610428565b34801561019457600080fd5b506101a86101a33660046114fa565b610449565b604051901515815260200161015f565b3480156101c457600080fd5b506101d86101d3366004611517565b61046a565b005b3480156101e657600080fd5b506101d86101f53660046114fa565b610760565b34801561020657600080fd5b50610155600a5481565b34801561021c57600080fd5b5061015561022b366004611555565b610885565b34801561023c57600080fd5b5061025061024b366004611581565b6108cb565b60408051948552602085019390935291830152606082015260800161015f565b61015561027e3660046115b3565b610a32565b34801561028f57600080fd5b506101d861029e3660046114fa565b610a48565b3480156102af57600080fd5b506102c36102be3660046114cc565b610b62565b60405161015f91906115fa565b3480156102dc57600080fd5b506102f06102eb36600461160e565b610b8c565b60405161015f9291906116c3565b34801561030a57600080fd5b506102c3610cc1565b34801561031f57600080fd5b506101a861032e3660046114fa565b610ce7565b34801561033f57600080fd5b506101d861034e3660046114fa565b610d09565b34801561035f57600080fd5b506008546102c3906001600160a01b031681565b34801561037f57600080fd5b506101d861038e366004611517565b610e7d565b34801561039f57600080fd5b506101556103ae3660046114cc565b611196565b3480156103bf57600080fd5b506102c36103ce3660046114cc565b6111a6565b3480156103df57600080fd5b50600654610155565b3480156103f457600080fd5b506009546102c3906001600160a01b031681565b34801561041457600080fd5b506101d86104233660046114cc565b6111b6565b6007818154811061043857600080fd5b600091825260209091200154905081565b6001600160a01b031660009081526002602052604090206001015460ff1690565b6008546001600160a01b031633146105425760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b1580156104c157600080fd5b505afa1580156104d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f991906116ff565b9050336001600160a01b0382161461054057600854604051630739600760e01b81526105379133916001600160a01b0390911690849060040161171c565b60405180910390fd5b505b6001600160a01b0382166000818152600160208181526040928390209182015492518515158152919360ff90931692917f6675ce8882cb71637de5903a193d218cc0544be9c0650cb83e0955f6aa2bf521910160405180910390a282151581151514156105af5750505050565b821561063d57604080518082018252600380548252600160208084018281526001600160a01b038a166000818152928490529582209451855551938201805460ff1916941515949094179093558154908101825591527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b0319169091179055610759565b6003805461064d9060019061173f565b8154811061065d5761065d611764565b6000918252602090912001548254600380546001600160a01b0390931692909190811061068c5761068c611764565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081600001546001600060038560000154815481106106da576106da611764565b60009182526020808320909101546001600160a01b0316835282019290925260400190205560038054806107105761071061177a565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b03861682526001908190526040822091825501805460ff191690555b50505b5050565b6008546001600160a01b0316331461082f5760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b1580156107b757600080fd5b505afa1580156107cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ef91906116ff565b9050336001600160a01b0382161461082d57600854604051630739600760e01b81526105379133916001600160a01b0390911690849060040161171c565b505b600980546001600160a01b0319166001600160a01b0383161790556040517f8c1e6003ed33ca6748d4ad3dd4ecc949065c89dceb31fdf546a5289202763c6a9061087a9083906115fa565b60405180910390a150565b6009546000906001600160a01b031633146108b5573360405163223e13c160e21b815260040161053791906115fa565b6108c4600d844342488761128a565b9392505050565b6009546000908190819081906001600160a01b03163314610901573360405163223e13c160e21b815260040161053791906115fa565b85600a541415801561091257508515155b801561091f5750600a5415155b1561094b57600a5460405163e2051feb60e01b8152600481019190915260248101879052604401610537565b600a85905560075493508315610989576007805461096b9060019061173f565b8154811061097b5761097b611764565b906000526020600020015492505b86156109ba57600661099c60018961173f565b815481106109ac576109ac611764565b906000526020600020015491505b60408051602081018590529081018990526060810183905260800160408051601f198184030181529190528051602090910120600780546001810182556000919091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688018190559398929750909550919350915050565b6000610a4084848434611419565b949350505050565b6008546001600160a01b03163314610b175760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610a9f57600080fd5b505afa158015610ab3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad791906116ff565b9050336001600160a01b03821614610b1557600854604051630739600760e01b81526105379133916001600160a01b0390911690849060040161171c565b505b600880546001600160a01b0319166001600160a01b0383161790556040517fae1f5aa15f6ff844896347ceca2a3c24c8d3a27785efdeacd581a0a95172784a9061087a9083906115fa565b60048181548110610b7257600080fd5b6000918252602090912001546001600160a01b0316905081565b60006060610b9933610449565b610bb857336040516332ea82ab60e01b815260040161053791906115fa565b8215801590610bcf57506001600160a01b0386163b155b15610bef578560405163b5cf5b8f60e01b815260040161053791906115fa565b600580546001600160a01b031981163317909155604080516020601f87018190048102820181019092528581526001600160a01b0390921691610c509189918991899089908190840183828082843760009201919091525061145d92505050565b600580546001600160a01b0319166001600160a01b038581169190911790915560405192955090935088169033907f2d9d115ef3e4a606d698913b1eae831a3cdfe20d9a83d48007b0526749c3d46690610caf908a908a908a90611790565b60405180910390a35094509492505050565b6005546000906001600160a01b0390811690811415610ce257600091505090565b919050565b6001600160a01b03166000908152600160208190526040909120015460ff1690565b600054610100900460ff16610d245760005460ff1615610d28565b303b155b610d8b5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610537565b600054610100900460ff16158015610dad576000805461ffff19166101011790555b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610e3b5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b6064820152608401610537565b600580546001600160a01b036001600160a01b0319918216811790925560088054909116918416919091179055801561075c576000805461ff00191690555050565b6008546001600160a01b03163314610f4c5760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610ed457600080fd5b505afa158015610ee8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0c91906116ff565b9050336001600160a01b03821614610f4a57600854604051630739600760e01b81526105379133916001600160a01b0390911690849060040161171c565b505b6001600160a01b038281161415610f78578160405163077abed160e41b815260040161053791906115fa565b6001600160a01b038216600081815260026020908152604091829020600181015492518515158152909360ff90931692917f49477e7356dbcb654ab85d7534b50126772d938130d1350e23e2540370c8dffa910160405180910390a28215158115151415610fe65750505050565b821561107557604080518082018252600480548252600160208084018281526001600160a01b038a16600081815260029093529582209451855551938201805460ff1916941515949094179093558154908101825591527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319169091179055610759565b600480546110859060019061173f565b8154811061109557611095611764565b6000918252602090912001548254600480546001600160a01b039093169290919081106110c4576110c4611764565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816000015460026000600485600001548154811061111257611112611764565b60009182526020808320909101546001600160a01b0316835282019290925260400190205560048054806111485761114861177a565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b03861682526002905260408120908155600101805460ff1916905550505050565b6006818154811061043857600080fd5b60038181548110610b7257600080fd5b6008546001600160a01b031633146112855760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b15801561120d57600080fd5b505afa158015611221573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124591906116ff565b9050336001600160a01b0382161461128357600854604051630739600760e01b81526105379133916001600160a01b0390911690849060040161171c565b505b600a55565b600654604080516001600160f81b031960f88a901b166020808301919091526bffffffffffffffffffffffff1960608a901b1660218301526001600160c01b031960c089811b8216603585015288901b16603d830152604582018490526065820186905260858083018690528351808403909101815260a59092019092528051910120600091906000821561134457600661132660018561173f565b8154811061133657611336611764565b906000526020600020015490505b6040805160208082018490528183018590528251808303840181526060830180855281519190920120600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f015533905260ff8c1660808201526001600160a01b038b1660a082015260c0810187905260e0810188905267ffffffffffffffff89166101008201529051829185917f5e3c1311ea442664e8b1611bfabef659120ea7a0a2cfc0667700bebc69cbffe1918190036101200190a3509098975050505050505050565b600061142433610ce7565b611443573360405163b6c60ea360e01b815260040161053791906115fa565b600061145386864342488961128a565b9695505050505050565b60006060846001600160a01b0316848460405161147a91906117c6565b60006040518083038185875af1925050503d80600081146114b7576040519150601f19603f3d011682016040523d82523d6000602084013e6114bc565b606091505b5090969095509350505050565b50565b6000602082840312156114de57600080fd5b5035919050565b6001600160a01b03811681146114c957600080fd5b60006020828403121561150c57600080fd5b81356108c4816114e5565b6000806040838503121561152a57600080fd5b8235611535816114e5565b91506020830135801515811461154a57600080fd5b809150509250929050565b6000806040838503121561156857600080fd5b8235611573816114e5565b946020939093013593505050565b6000806000806080858703121561159757600080fd5b5050823594602084013594506040840135936060013592509050565b6000806000606084860312156115c857600080fd5b833560ff811681146115d957600080fd5b925060208401356115e9816114e5565b929592945050506040919091013590565b6001600160a01b0391909116815260200190565b6000806000806060858703121561162457600080fd5b843561162f816114e5565b935060208501359250604085013567ffffffffffffffff8082111561165357600080fd5b818701915087601f83011261166757600080fd5b81358181111561167657600080fd5b88602082850101111561168857600080fd5b95989497505060200194505050565b60005b838110156116b257818101518382015260200161169a565b838111156107595750506000910152565b821515815260406020820152600082518060408401526116ea816060850160208701611697565b601f01601f1916919091016060019392505050565b60006020828403121561171157600080fd5b81516108c4816114e5565b6001600160a01b0393841681529183166020830152909116604082015260600190565b60008282101561175f57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b83815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b600082516117d8818460208701611697565b919091019291505056fea264697066735822122088a189778e0d25de9666ac3e81f862765ab0a68565f28d4b2e80af3ff71a470b64736f6c63430008090033",
677
+ "bytecode": "0x60a06040523060805234801561001457600080fd5b50600580546001600160a01b03199081166001600160a01b031790915560088054909116331790556080516118186100576000396000610db801526118186000f3fe60806040526004361061013f5760003560e01c80639e5d4c49116100b6578063d5719dc21161006f578063d5719dc214610393578063e76f5c8d146103b3578063e77145f4146101d8578063eca067ad146103d3578063ee35f327146103e8578063f81ff3b31461040857600080fd5b80639e5d4c49146102d0578063ab5d8943146102fe578063ae60bd1314610313578063c4d66de814610333578063cb23bcb514610353578063cee3d7281461037357600080fd5b80635fca4a16116101085780635fca4a16146101fa5780637a88b1071461021057806386598a56146102305780638db5993b14610270578063919cc70614610283578063945e1147146102a357600080fd5b806284120c1461014457806316bf557914610168578063413b35bd1461018857806347fb24c5146101b85780634f61f850146101da575b600080fd5b34801561015057600080fd5b506007545b6040519081526020015b60405180910390f35b34801561017457600080fd5b506101556101833660046114cc565b610428565b34801561019457600080fd5b506101a86101a33660046114fa565b610449565b604051901515815260200161015f565b3480156101c457600080fd5b506101d86101d3366004611517565b61046a565b005b3480156101e657600080fd5b506101d86101f53660046114fa565b610760565b34801561020657600080fd5b50610155600a5481565b34801561021c57600080fd5b5061015561022b366004611555565b610885565b34801561023c57600080fd5b5061025061024b366004611581565b6108cb565b60408051948552602085019390935291830152606082015260800161015f565b61015561027e3660046115b3565b610a32565b34801561028f57600080fd5b506101d861029e3660046114fa565b610a48565b3480156102af57600080fd5b506102c36102be3660046114cc565b610b62565b60405161015f91906115fa565b3480156102dc57600080fd5b506102f06102eb36600461160e565b610b8c565b60405161015f9291906116c3565b34801561030a57600080fd5b506102c3610cc1565b34801561031f57600080fd5b506101a861032e3660046114fa565b610ce7565b34801561033f57600080fd5b506101d861034e3660046114fa565b610d09565b34801561035f57600080fd5b506008546102c3906001600160a01b031681565b34801561037f57600080fd5b506101d861038e366004611517565b610e7d565b34801561039f57600080fd5b506101556103ae3660046114cc565b611196565b3480156103bf57600080fd5b506102c36103ce3660046114cc565b6111a6565b3480156103df57600080fd5b50600654610155565b3480156103f457600080fd5b506009546102c3906001600160a01b031681565b34801561041457600080fd5b506101d86104233660046114cc565b6111b6565b6007818154811061043857600080fd5b600091825260209091200154905081565b6001600160a01b031660009081526002602052604090206001015460ff1690565b6008546001600160a01b031633146105425760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b1580156104c157600080fd5b505afa1580156104d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f991906116ff565b9050336001600160a01b0382161461054057600854604051630739600760e01b81526105379133916001600160a01b0390911690849060040161171c565b60405180910390fd5b505b6001600160a01b0382166000818152600160208181526040928390209182015492518515158152919360ff90931692917f6675ce8882cb71637de5903a193d218cc0544be9c0650cb83e0955f6aa2bf521910160405180910390a282151581151514156105af5750505050565b821561063d57604080518082018252600380548252600160208084018281526001600160a01b038a166000818152928490529582209451855551938201805460ff1916941515949094179093558154908101825591527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b0319169091179055610759565b6003805461064d9060019061173f565b8154811061065d5761065d611764565b6000918252602090912001548254600380546001600160a01b0390931692909190811061068c5761068c611764565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081600001546001600060038560000154815481106106da576106da611764565b60009182526020808320909101546001600160a01b0316835282019290925260400190205560038054806107105761071061177a565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b03861682526001908190526040822091825501805460ff191690555b50505b5050565b6008546001600160a01b0316331461082f5760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b1580156107b757600080fd5b505afa1580156107cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ef91906116ff565b9050336001600160a01b0382161461082d57600854604051630739600760e01b81526105379133916001600160a01b0390911690849060040161171c565b505b600980546001600160a01b0319166001600160a01b0383161790556040517f8c1e6003ed33ca6748d4ad3dd4ecc949065c89dceb31fdf546a5289202763c6a9061087a9083906115fa565b60405180910390a150565b6009546000906001600160a01b031633146108b5573360405163223e13c160e21b815260040161053791906115fa565b6108c4600d844342488761128a565b9392505050565b6009546000908190819081906001600160a01b03163314610901573360405163223e13c160e21b815260040161053791906115fa565b85600a541415801561091257508515155b801561091f5750600a5415155b1561094b57600a5460405163e2051feb60e01b8152600481019190915260248101879052604401610537565b600a85905560075493508315610989576007805461096b9060019061173f565b8154811061097b5761097b611764565b906000526020600020015492505b86156109ba57600661099c60018961173f565b815481106109ac576109ac611764565b906000526020600020015491505b60408051602081018590529081018990526060810183905260800160408051601f198184030181529190528051602090910120600780546001810182556000919091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688018190559398929750909550919350915050565b6000610a4084848434611419565b949350505050565b6008546001600160a01b03163314610b175760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610a9f57600080fd5b505afa158015610ab3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad791906116ff565b9050336001600160a01b03821614610b1557600854604051630739600760e01b81526105379133916001600160a01b0390911690849060040161171c565b505b600880546001600160a01b0319166001600160a01b0383161790556040517fae1f5aa15f6ff844896347ceca2a3c24c8d3a27785efdeacd581a0a95172784a9061087a9083906115fa565b60048181548110610b7257600080fd5b6000918252602090912001546001600160a01b0316905081565b60006060610b9933610449565b610bb857336040516332ea82ab60e01b815260040161053791906115fa565b8215801590610bcf57506001600160a01b0386163b155b15610bef578560405163b5cf5b8f60e01b815260040161053791906115fa565b600580546001600160a01b031981163317909155604080516020601f87018190048102820181019092528581526001600160a01b0390921691610c509189918991899089908190840183828082843760009201919091525061145d92505050565b600580546001600160a01b0319166001600160a01b038581169190911790915560405192955090935088169033907f2d9d115ef3e4a606d698913b1eae831a3cdfe20d9a83d48007b0526749c3d46690610caf908a908a908a90611790565b60405180910390a35094509492505050565b6005546000906001600160a01b0390811690811415610ce257600091505090565b919050565b6001600160a01b03166000908152600160208190526040909120015460ff1690565b600054610100900460ff16610d245760005460ff1615610d28565b303b155b610d8b5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610537565b600054610100900460ff16158015610dad576000805461ffff19166101011790555b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610e3b5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b6064820152608401610537565b600580546001600160a01b036001600160a01b0319918216811790925560088054909116918416919091179055801561075c576000805461ff00191690555050565b6008546001600160a01b03163314610f4c5760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610ed457600080fd5b505afa158015610ee8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0c91906116ff565b9050336001600160a01b03821614610f4a57600854604051630739600760e01b81526105379133916001600160a01b0390911690849060040161171c565b505b6001600160a01b038281161415610f78578160405163077abed160e41b815260040161053791906115fa565b6001600160a01b038216600081815260026020908152604091829020600181015492518515158152909360ff90931692917f49477e7356dbcb654ab85d7534b50126772d938130d1350e23e2540370c8dffa910160405180910390a28215158115151415610fe65750505050565b821561107557604080518082018252600480548252600160208084018281526001600160a01b038a16600081815260029093529582209451855551938201805460ff1916941515949094179093558154908101825591527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319169091179055610759565b600480546110859060019061173f565b8154811061109557611095611764565b6000918252602090912001548254600480546001600160a01b039093169290919081106110c4576110c4611764565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816000015460026000600485600001548154811061111257611112611764565b60009182526020808320909101546001600160a01b0316835282019290925260400190205560048054806111485761114861177a565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b03861682526002905260408120908155600101805460ff1916905550505050565b6006818154811061043857600080fd5b60038181548110610b7257600080fd5b6008546001600160a01b031633146112855760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b15801561120d57600080fd5b505afa158015611221573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124591906116ff565b9050336001600160a01b0382161461128357600854604051630739600760e01b81526105379133916001600160a01b0390911690849060040161171c565b505b600a55565b600654604080516001600160f81b031960f88a901b166020808301919091526bffffffffffffffffffffffff1960608a901b1660218301526001600160c01b031960c089811b8216603585015288901b16603d830152604582018490526065820186905260858083018690528351808403909101815260a59092019092528051910120600091906000821561134457600661132660018561173f565b8154811061133657611336611764565b906000526020600020015490505b6040805160208082018490528183018590528251808303840181526060830180855281519190920120600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f015533905260ff8c1660808201526001600160a01b038b1660a082015260c0810187905260e0810188905267ffffffffffffffff89166101008201529051829185917f5e3c1311ea442664e8b1611bfabef659120ea7a0a2cfc0667700bebc69cbffe1918190036101200190a3509098975050505050505050565b600061142433610ce7565b611443573360405163b6c60ea360e01b815260040161053791906115fa565b600061145386864342488961128a565b9695505050505050565b60006060846001600160a01b0316848460405161147a91906117c6565b60006040518083038185875af1925050503d80600081146114b7576040519150601f19603f3d011682016040523d82523d6000602084013e6114bc565b606091505b5090969095509350505050565b50565b6000602082840312156114de57600080fd5b5035919050565b6001600160a01b03811681146114c957600080fd5b60006020828403121561150c57600080fd5b81356108c4816114e5565b6000806040838503121561152a57600080fd5b8235611535816114e5565b91506020830135801515811461154a57600080fd5b809150509250929050565b6000806040838503121561156857600080fd5b8235611573816114e5565b946020939093013593505050565b6000806000806080858703121561159757600080fd5b5050823594602084013594506040840135936060013592509050565b6000806000606084860312156115c857600080fd5b833560ff811681146115d957600080fd5b925060208401356115e9816114e5565b929592945050506040919091013590565b6001600160a01b0391909116815260200190565b6000806000806060858703121561162457600080fd5b843561162f816114e5565b935060208501359250604085013567ffffffffffffffff8082111561165357600080fd5b818701915087601f83011261166757600080fd5b81358181111561167657600080fd5b88602082850101111561168857600080fd5b95989497505060200194505050565b60005b838110156116b257818101518382015260200161169a565b838111156107595750506000910152565b821515815260406020820152600082518060408401526116ea816060850160208701611697565b601f01601f1916919091016060019392505050565b60006020828403121561171157600080fd5b81516108c4816114e5565b6001600160a01b0393841681529183166020830152909116604082015260600190565b60008282101561175f57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b83815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b600082516117d8818460208701611697565b919091019291505056fea2646970667358221220bb538b516a0e5e7f7e1f42c1c93491aac6657003749a65811dd771a529d46b5164736f6c63430008090033",
678
+ "deployedBytecode": "0x60806040526004361061013f5760003560e01c80639e5d4c49116100b6578063d5719dc21161006f578063d5719dc214610393578063e76f5c8d146103b3578063e77145f4146101d8578063eca067ad146103d3578063ee35f327146103e8578063f81ff3b31461040857600080fd5b80639e5d4c49146102d0578063ab5d8943146102fe578063ae60bd1314610313578063c4d66de814610333578063cb23bcb514610353578063cee3d7281461037357600080fd5b80635fca4a16116101085780635fca4a16146101fa5780637a88b1071461021057806386598a56146102305780638db5993b14610270578063919cc70614610283578063945e1147146102a357600080fd5b806284120c1461014457806316bf557914610168578063413b35bd1461018857806347fb24c5146101b85780634f61f850146101da575b600080fd5b34801561015057600080fd5b506007545b6040519081526020015b60405180910390f35b34801561017457600080fd5b506101556101833660046114cc565b610428565b34801561019457600080fd5b506101a86101a33660046114fa565b610449565b604051901515815260200161015f565b3480156101c457600080fd5b506101d86101d3366004611517565b61046a565b005b3480156101e657600080fd5b506101d86101f53660046114fa565b610760565b34801561020657600080fd5b50610155600a5481565b34801561021c57600080fd5b5061015561022b366004611555565b610885565b34801561023c57600080fd5b5061025061024b366004611581565b6108cb565b60408051948552602085019390935291830152606082015260800161015f565b61015561027e3660046115b3565b610a32565b34801561028f57600080fd5b506101d861029e3660046114fa565b610a48565b3480156102af57600080fd5b506102c36102be3660046114cc565b610b62565b60405161015f91906115fa565b3480156102dc57600080fd5b506102f06102eb36600461160e565b610b8c565b60405161015f9291906116c3565b34801561030a57600080fd5b506102c3610cc1565b34801561031f57600080fd5b506101a861032e3660046114fa565b610ce7565b34801561033f57600080fd5b506101d861034e3660046114fa565b610d09565b34801561035f57600080fd5b506008546102c3906001600160a01b031681565b34801561037f57600080fd5b506101d861038e366004611517565b610e7d565b34801561039f57600080fd5b506101556103ae3660046114cc565b611196565b3480156103bf57600080fd5b506102c36103ce3660046114cc565b6111a6565b3480156103df57600080fd5b50600654610155565b3480156103f457600080fd5b506009546102c3906001600160a01b031681565b34801561041457600080fd5b506101d86104233660046114cc565b6111b6565b6007818154811061043857600080fd5b600091825260209091200154905081565b6001600160a01b031660009081526002602052604090206001015460ff1690565b6008546001600160a01b031633146105425760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b1580156104c157600080fd5b505afa1580156104d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f991906116ff565b9050336001600160a01b0382161461054057600854604051630739600760e01b81526105379133916001600160a01b0390911690849060040161171c565b60405180910390fd5b505b6001600160a01b0382166000818152600160208181526040928390209182015492518515158152919360ff90931692917f6675ce8882cb71637de5903a193d218cc0544be9c0650cb83e0955f6aa2bf521910160405180910390a282151581151514156105af5750505050565b821561063d57604080518082018252600380548252600160208084018281526001600160a01b038a166000818152928490529582209451855551938201805460ff1916941515949094179093558154908101825591527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b0319169091179055610759565b6003805461064d9060019061173f565b8154811061065d5761065d611764565b6000918252602090912001548254600380546001600160a01b0390931692909190811061068c5761068c611764565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081600001546001600060038560000154815481106106da576106da611764565b60009182526020808320909101546001600160a01b0316835282019290925260400190205560038054806107105761071061177a565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b03861682526001908190526040822091825501805460ff191690555b50505b5050565b6008546001600160a01b0316331461082f5760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b1580156107b757600080fd5b505afa1580156107cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ef91906116ff565b9050336001600160a01b0382161461082d57600854604051630739600760e01b81526105379133916001600160a01b0390911690849060040161171c565b505b600980546001600160a01b0319166001600160a01b0383161790556040517f8c1e6003ed33ca6748d4ad3dd4ecc949065c89dceb31fdf546a5289202763c6a9061087a9083906115fa565b60405180910390a150565b6009546000906001600160a01b031633146108b5573360405163223e13c160e21b815260040161053791906115fa565b6108c4600d844342488761128a565b9392505050565b6009546000908190819081906001600160a01b03163314610901573360405163223e13c160e21b815260040161053791906115fa565b85600a541415801561091257508515155b801561091f5750600a5415155b1561094b57600a5460405163e2051feb60e01b8152600481019190915260248101879052604401610537565b600a85905560075493508315610989576007805461096b9060019061173f565b8154811061097b5761097b611764565b906000526020600020015492505b86156109ba57600661099c60018961173f565b815481106109ac576109ac611764565b906000526020600020015491505b60408051602081018590529081018990526060810183905260800160408051601f198184030181529190528051602090910120600780546001810182556000919091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688018190559398929750909550919350915050565b6000610a4084848434611419565b949350505050565b6008546001600160a01b03163314610b175760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610a9f57600080fd5b505afa158015610ab3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad791906116ff565b9050336001600160a01b03821614610b1557600854604051630739600760e01b81526105379133916001600160a01b0390911690849060040161171c565b505b600880546001600160a01b0319166001600160a01b0383161790556040517fae1f5aa15f6ff844896347ceca2a3c24c8d3a27785efdeacd581a0a95172784a9061087a9083906115fa565b60048181548110610b7257600080fd5b6000918252602090912001546001600160a01b0316905081565b60006060610b9933610449565b610bb857336040516332ea82ab60e01b815260040161053791906115fa565b8215801590610bcf57506001600160a01b0386163b155b15610bef578560405163b5cf5b8f60e01b815260040161053791906115fa565b600580546001600160a01b031981163317909155604080516020601f87018190048102820181019092528581526001600160a01b0390921691610c509189918991899089908190840183828082843760009201919091525061145d92505050565b600580546001600160a01b0319166001600160a01b038581169190911790915560405192955090935088169033907f2d9d115ef3e4a606d698913b1eae831a3cdfe20d9a83d48007b0526749c3d46690610caf908a908a908a90611790565b60405180910390a35094509492505050565b6005546000906001600160a01b0390811690811415610ce257600091505090565b919050565b6001600160a01b03166000908152600160208190526040909120015460ff1690565b600054610100900460ff16610d245760005460ff1615610d28565b303b155b610d8b5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610537565b600054610100900460ff16158015610dad576000805461ffff19166101011790555b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610e3b5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b6064820152608401610537565b600580546001600160a01b036001600160a01b0319918216811790925560088054909116918416919091179055801561075c576000805461ff00191690555050565b6008546001600160a01b03163314610f4c5760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610ed457600080fd5b505afa158015610ee8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0c91906116ff565b9050336001600160a01b03821614610f4a57600854604051630739600760e01b81526105379133916001600160a01b0390911690849060040161171c565b505b6001600160a01b038281161415610f78578160405163077abed160e41b815260040161053791906115fa565b6001600160a01b038216600081815260026020908152604091829020600181015492518515158152909360ff90931692917f49477e7356dbcb654ab85d7534b50126772d938130d1350e23e2540370c8dffa910160405180910390a28215158115151415610fe65750505050565b821561107557604080518082018252600480548252600160208084018281526001600160a01b038a16600081815260029093529582209451855551938201805460ff1916941515949094179093558154908101825591527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319169091179055610759565b600480546110859060019061173f565b8154811061109557611095611764565b6000918252602090912001548254600480546001600160a01b039093169290919081106110c4576110c4611764565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816000015460026000600485600001548154811061111257611112611764565b60009182526020808320909101546001600160a01b0316835282019290925260400190205560048054806111485761114861177a565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b03861682526002905260408120908155600101805460ff1916905550505050565b6006818154811061043857600080fd5b60038181548110610b7257600080fd5b6008546001600160a01b031633146112855760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b15801561120d57600080fd5b505afa158015611221573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124591906116ff565b9050336001600160a01b0382161461128357600854604051630739600760e01b81526105379133916001600160a01b0390911690849060040161171c565b505b600a55565b600654604080516001600160f81b031960f88a901b166020808301919091526bffffffffffffffffffffffff1960608a901b1660218301526001600160c01b031960c089811b8216603585015288901b16603d830152604582018490526065820186905260858083018690528351808403909101815260a59092019092528051910120600091906000821561134457600661132660018561173f565b8154811061133657611336611764565b906000526020600020015490505b6040805160208082018490528183018590528251808303840181526060830180855281519190920120600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f015533905260ff8c1660808201526001600160a01b038b1660a082015260c0810187905260e0810188905267ffffffffffffffff89166101008201529051829185917f5e3c1311ea442664e8b1611bfabef659120ea7a0a2cfc0667700bebc69cbffe1918190036101200190a3509098975050505050505050565b600061142433610ce7565b611443573360405163b6c60ea360e01b815260040161053791906115fa565b600061145386864342488961128a565b9695505050505050565b60006060846001600160a01b0316848460405161147a91906117c6565b60006040518083038185875af1925050503d80600081146114b7576040519150601f19603f3d011682016040523d82523d6000602084013e6114bc565b606091505b5090969095509350505050565b50565b6000602082840312156114de57600080fd5b5035919050565b6001600160a01b03811681146114c957600080fd5b60006020828403121561150c57600080fd5b81356108c4816114e5565b6000806040838503121561152a57600080fd5b8235611535816114e5565b91506020830135801515811461154a57600080fd5b809150509250929050565b6000806040838503121561156857600080fd5b8235611573816114e5565b946020939093013593505050565b6000806000806080858703121561159757600080fd5b5050823594602084013594506040840135936060013592509050565b6000806000606084860312156115c857600080fd5b833560ff811681146115d957600080fd5b925060208401356115e9816114e5565b929592945050506040919091013590565b6001600160a01b0391909116815260200190565b6000806000806060858703121561162457600080fd5b843561162f816114e5565b935060208501359250604085013567ffffffffffffffff8082111561165357600080fd5b818701915087601f83011261166757600080fd5b81358181111561167657600080fd5b88602082850101111561168857600080fd5b95989497505060200194505050565b60005b838110156116b257818101518382015260200161169a565b838111156107595750506000910152565b821515815260406020820152600082518060408401526116ea816060850160208701611697565b601f01601f1916919091016060019392505050565b60006020828403121561171157600080fd5b81516108c4816114e5565b6001600160a01b0393841681529183166020830152909116604082015260600190565b60008282101561175f57634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b83815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b600082516117d8818460208701611697565b919091019291505056fea2646970667358221220bb538b516a0e5e7f7e1f42c1c93491aac6657003749a65811dd771a529d46b5164736f6c63430008090033",
679
679
  "linkReferences": {},
680
680
  "deployedLinkReferences": {}
681
681
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/7de232cc334b063903f669aaef0a3136.json"
3
+ "buildInfo": "../../../build-info/c1d194c598f27e74e5febef0e822787e.json"
4
4
  }
@@ -675,8 +675,8 @@
675
675
  "type": "function"
676
676
  }
677
677
  ],
678
- "bytecode": "0x60a060405234801561001057600080fd5b506201cccc608052608051610c9861003360003960006103900152610c986000f3fe6080604052600436106101605760003560e01c80638456cb59116100c1578063c474d2c51161007a578063c474d2c514610320578063e3de72a51461033e578063e6bd12cf14610259578063e78cea921461035e578063e8eb1dc31461037e578063ee35f327146103b2578063efeadb6d146103d257600080fd5b80638456cb59146101dd5780638a631aa6146102825780638b3240a01461029d578063a66b327d146102ca578063b75436bb146102e5578063babcc5391461030557600080fd5b80635075788b1161011e5780635075788b146101655780635c975abb1461021c5780635e9167581461023d578063679b6ded1461024b57806367ef3ab8146102595780636e6e8a6a1461024b57806370665f141461026757600080fd5b8062f72382146101655780631fe927cf1461019857806322bd5c1c146101b85780633f4ba83a146101dd578063439370b1146101f4578063485cc955146101fc575b600080fd5b34801561017157600080fd5b506101856101803660046106b9565b6103ed565b6040519081526020015b60405180910390f35b3480156101a457600080fd5b506101856101b3366004610735565b610410565b3480156101c457600080fd5b506101cd6103ed565b604051901515815260200161018f565b3480156101e957600080fd5b506101f26104a9565b005b6101856103ed565b34801561020857600080fd5b506101f2610217366004610776565b6104e3565b34801561022857600080fd5b506001546101cd90600160a01b900460ff1681565b6101856101803660046107af565b610185610180366004610818565b6101856101803660046108bc565b34801561027357600080fd5b5061018561018036600461092e565b34801561028e57600080fd5b5061018561018036600461097b565b3480156102a957600080fd5b506102b26103ed565b6040516001600160a01b03909116815260200161018f565b3480156102d657600080fd5b506101856101803660046109cf565b3480156102f157600080fd5b50610185610300366004610735565b61054e565b34801561031157600080fd5b506101cd6101803660046109f1565b34801561032c57600080fd5b506101f261033b3660046109f1565b50565b34801561034a57600080fd5b506101f2610359366004610b05565b6105aa565b34801561036a57600080fd5b506000546102b2906001600160a01b031681565b34801561038a57600080fd5b506101857f000000000000000000000000000000000000000000000000000000000000000081565b3480156103be57600080fd5b506001546102b2906001600160a01b031681565b3480156103de57600080fd5b506101f2610359366004610bc6565b600060405162461bcd60e51b815260040161040790610be1565b60405180910390fd5b600033321461044f5760405162461bcd60e51b815260206004820152600b60248201526a6f726967696e206f6e6c7960a81b6044820152606401610407565b60006104746003338686604051610467929190610c0a565b60405180910390206105c2565b60405190915081907fab532385be8f1005a4b6ba8fa20a2245facb346134ac739fe9a5198dc1580b9c90600090a29392505050565b60405162461bcd60e51b815260206004820152600f60248201526e1393d5081253541311535153951151608a1b6044820152606401610407565b6000546001600160a01b03161561052b5760405162461bcd60e51b815260206004820152600c60248201526b1053149150511657d253925560a21b6044820152606401610407565b50600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000806105676003338686604051610467929190610c0a565b9050807fff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60b858560405161059b929190610c1a565b60405180910390a29392505050565b60405162461bcd60e51b815260040161040790610be1565b60008054604051638db5993b60e01b815260ff861660048201526001600160a01b0385811660248301526044820185905290911690638db5993b9034906064016020604051808303818588803b15801561061b57600080fd5b505af115801561062f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906106549190610c49565b949350505050565b6001600160a01b038116811461033b57600080fd5b60008083601f84011261068357600080fd5b5081356001600160401b0381111561069a57600080fd5b6020830191508360208285010111156106b257600080fd5b9250929050565b600080600080600080600060c0888a0312156106d457600080fd5b87359650602088013595506040880135945060608801356106f48161065c565b93506080880135925060a08801356001600160401b0381111561071657600080fd5b6107228a828b01610671565b989b979a50959850939692959293505050565b6000806020838503121561074857600080fd5b82356001600160401b0381111561075e57600080fd5b61076a85828601610671565b90969095509350505050565b6000806040838503121561078957600080fd5b82356107948161065c565b915060208301356107a48161065c565b809150509250929050565b6000806000806000608086880312156107c757600080fd5b853594506020860135935060408601356107e08161065c565b925060608601356001600160401b038111156107fb57600080fd5b61080788828901610671565b969995985093965092949392505050565b60008060008060008060008060006101008a8c03121561083757600080fd5b89356108428161065c565b985060208a0135975060408a0135965060608a01356108608161065c565b955060808a01356108708161065c565b945060a08a0135935060c08a0135925060e08a01356001600160401b0381111561089957600080fd5b6108a58c828d01610671565b915080935050809150509295985092959850929598565b60008060008060008060a087890312156108d557600080fd5b86359550602087013594506040870135935060608701356108f58161065c565b925060808701356001600160401b0381111561091057600080fd5b61091c89828a01610671565b979a9699509497509295939492505050565b600080600080600060a0868803121561094657600080fd5b85359450602086013593506040860135925060608601359150608086013561096d8161065c565b809150509295509295909350565b60008060008060008060a0878903121561099457600080fd5b863595506020870135945060408701356109ad8161065c565b93506060870135925060808701356001600160401b0381111561091057600080fd5b600080604083850312156109e257600080fd5b50508035926020909101359150565b600060208284031215610a0357600080fd5b8135610a0e8161065c565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715610a5357610a53610a15565b604052919050565b60006001600160401b03821115610a7457610a74610a15565b5060051b60200190565b80358015158114610a8e57600080fd5b919050565b600082601f830112610aa457600080fd5b81356020610ab9610ab483610a5b565b610a2b565b82815260059290921b84018101918181019086841115610ad857600080fd5b8286015b84811015610afa57610aed81610a7e565b8352918301918301610adc565b509695505050505050565b60008060408385031215610b1857600080fd5b82356001600160401b0380821115610b2f57600080fd5b818501915085601f830112610b4357600080fd5b81356020610b53610ab483610a5b565b82815260059290921b84018101918181019089841115610b7257600080fd5b948201945b83861015610b99578535610b8a8161065c565b82529482019490820190610b77565b96505086013592505080821115610baf57600080fd5b50610bbc85828601610a93565b9150509250929050565b600060208284031215610bd857600080fd5b610a0e82610a7e565b6020808252600f908201526e1393d517d253541311535153951151608a1b604082015260600190565b8183823760009101908152919050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b600060208284031215610c5b57600080fd5b505191905056fea2646970667358221220995a5d72d3e17ac82a7424cd93d520fede78acc21be04c4f4c4c4dbd41d2164a64736f6c63430008090033",
679
- "deployedBytecode": "0x6080604052600436106101605760003560e01c80638456cb59116100c1578063c474d2c51161007a578063c474d2c514610320578063e3de72a51461033e578063e6bd12cf14610259578063e78cea921461035e578063e8eb1dc31461037e578063ee35f327146103b2578063efeadb6d146103d257600080fd5b80638456cb59146101dd5780638a631aa6146102825780638b3240a01461029d578063a66b327d146102ca578063b75436bb146102e5578063babcc5391461030557600080fd5b80635075788b1161011e5780635075788b146101655780635c975abb1461021c5780635e9167581461023d578063679b6ded1461024b57806367ef3ab8146102595780636e6e8a6a1461024b57806370665f141461026757600080fd5b8062f72382146101655780631fe927cf1461019857806322bd5c1c146101b85780633f4ba83a146101dd578063439370b1146101f4578063485cc955146101fc575b600080fd5b34801561017157600080fd5b506101856101803660046106b9565b6103ed565b6040519081526020015b60405180910390f35b3480156101a457600080fd5b506101856101b3366004610735565b610410565b3480156101c457600080fd5b506101cd6103ed565b604051901515815260200161018f565b3480156101e957600080fd5b506101f26104a9565b005b6101856103ed565b34801561020857600080fd5b506101f2610217366004610776565b6104e3565b34801561022857600080fd5b506001546101cd90600160a01b900460ff1681565b6101856101803660046107af565b610185610180366004610818565b6101856101803660046108bc565b34801561027357600080fd5b5061018561018036600461092e565b34801561028e57600080fd5b5061018561018036600461097b565b3480156102a957600080fd5b506102b26103ed565b6040516001600160a01b03909116815260200161018f565b3480156102d657600080fd5b506101856101803660046109cf565b3480156102f157600080fd5b50610185610300366004610735565b61054e565b34801561031157600080fd5b506101cd6101803660046109f1565b34801561032c57600080fd5b506101f261033b3660046109f1565b50565b34801561034a57600080fd5b506101f2610359366004610b05565b6105aa565b34801561036a57600080fd5b506000546102b2906001600160a01b031681565b34801561038a57600080fd5b506101857f000000000000000000000000000000000000000000000000000000000000000081565b3480156103be57600080fd5b506001546102b2906001600160a01b031681565b3480156103de57600080fd5b506101f2610359366004610bc6565b600060405162461bcd60e51b815260040161040790610be1565b60405180910390fd5b600033321461044f5760405162461bcd60e51b815260206004820152600b60248201526a6f726967696e206f6e6c7960a81b6044820152606401610407565b60006104746003338686604051610467929190610c0a565b60405180910390206105c2565b60405190915081907fab532385be8f1005a4b6ba8fa20a2245facb346134ac739fe9a5198dc1580b9c90600090a29392505050565b60405162461bcd60e51b815260206004820152600f60248201526e1393d5081253541311535153951151608a1b6044820152606401610407565b6000546001600160a01b03161561052b5760405162461bcd60e51b815260206004820152600c60248201526b1053149150511657d253925560a21b6044820152606401610407565b50600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000806105676003338686604051610467929190610c0a565b9050807fff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60b858560405161059b929190610c1a565b60405180910390a29392505050565b60405162461bcd60e51b815260040161040790610be1565b60008054604051638db5993b60e01b815260ff861660048201526001600160a01b0385811660248301526044820185905290911690638db5993b9034906064016020604051808303818588803b15801561061b57600080fd5b505af115801561062f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906106549190610c49565b949350505050565b6001600160a01b038116811461033b57600080fd5b60008083601f84011261068357600080fd5b5081356001600160401b0381111561069a57600080fd5b6020830191508360208285010111156106b257600080fd5b9250929050565b600080600080600080600060c0888a0312156106d457600080fd5b87359650602088013595506040880135945060608801356106f48161065c565b93506080880135925060a08801356001600160401b0381111561071657600080fd5b6107228a828b01610671565b989b979a50959850939692959293505050565b6000806020838503121561074857600080fd5b82356001600160401b0381111561075e57600080fd5b61076a85828601610671565b90969095509350505050565b6000806040838503121561078957600080fd5b82356107948161065c565b915060208301356107a48161065c565b809150509250929050565b6000806000806000608086880312156107c757600080fd5b853594506020860135935060408601356107e08161065c565b925060608601356001600160401b038111156107fb57600080fd5b61080788828901610671565b969995985093965092949392505050565b60008060008060008060008060006101008a8c03121561083757600080fd5b89356108428161065c565b985060208a0135975060408a0135965060608a01356108608161065c565b955060808a01356108708161065c565b945060a08a0135935060c08a0135925060e08a01356001600160401b0381111561089957600080fd5b6108a58c828d01610671565b915080935050809150509295985092959850929598565b60008060008060008060a087890312156108d557600080fd5b86359550602087013594506040870135935060608701356108f58161065c565b925060808701356001600160401b0381111561091057600080fd5b61091c89828a01610671565b979a9699509497509295939492505050565b600080600080600060a0868803121561094657600080fd5b85359450602086013593506040860135925060608601359150608086013561096d8161065c565b809150509295509295909350565b60008060008060008060a0878903121561099457600080fd5b863595506020870135945060408701356109ad8161065c565b93506060870135925060808701356001600160401b0381111561091057600080fd5b600080604083850312156109e257600080fd5b50508035926020909101359150565b600060208284031215610a0357600080fd5b8135610a0e8161065c565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715610a5357610a53610a15565b604052919050565b60006001600160401b03821115610a7457610a74610a15565b5060051b60200190565b80358015158114610a8e57600080fd5b919050565b600082601f830112610aa457600080fd5b81356020610ab9610ab483610a5b565b610a2b565b82815260059290921b84018101918181019086841115610ad857600080fd5b8286015b84811015610afa57610aed81610a7e565b8352918301918301610adc565b509695505050505050565b60008060408385031215610b1857600080fd5b82356001600160401b0380821115610b2f57600080fd5b818501915085601f830112610b4357600080fd5b81356020610b53610ab483610a5b565b82815260059290921b84018101918181019089841115610b7257600080fd5b948201945b83861015610b99578535610b8a8161065c565b82529482019490820190610b77565b96505086013592505080821115610baf57600080fd5b50610bbc85828601610a93565b9150509250929050565b600060208284031215610bd857600080fd5b610a0e82610a7e565b6020808252600f908201526e1393d517d253541311535153951151608a1b604082015260600190565b8183823760009101908152919050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b600060208284031215610c5b57600080fd5b505191905056fea2646970667358221220995a5d72d3e17ac82a7424cd93d520fede78acc21be04c4f4c4c4dbd41d2164a64736f6c63430008090033",
678
+ "bytecode": "0x60a060405234801561001057600080fd5b506201cccc608052608051610c9861003360003960006103900152610c986000f3fe6080604052600436106101605760003560e01c80638456cb59116100c1578063c474d2c51161007a578063c474d2c514610320578063e3de72a51461033e578063e6bd12cf14610259578063e78cea921461035e578063e8eb1dc31461037e578063ee35f327146103b2578063efeadb6d146103d257600080fd5b80638456cb59146101dd5780638a631aa6146102825780638b3240a01461029d578063a66b327d146102ca578063b75436bb146102e5578063babcc5391461030557600080fd5b80635075788b1161011e5780635075788b146101655780635c975abb1461021c5780635e9167581461023d578063679b6ded1461024b57806367ef3ab8146102595780636e6e8a6a1461024b57806370665f141461026757600080fd5b8062f72382146101655780631fe927cf1461019857806322bd5c1c146101b85780633f4ba83a146101dd578063439370b1146101f4578063485cc955146101fc575b600080fd5b34801561017157600080fd5b506101856101803660046106b9565b6103ed565b6040519081526020015b60405180910390f35b3480156101a457600080fd5b506101856101b3366004610735565b610410565b3480156101c457600080fd5b506101cd6103ed565b604051901515815260200161018f565b3480156101e957600080fd5b506101f26104a9565b005b6101856103ed565b34801561020857600080fd5b506101f2610217366004610776565b6104e3565b34801561022857600080fd5b506001546101cd90600160a01b900460ff1681565b6101856101803660046107af565b610185610180366004610818565b6101856101803660046108bc565b34801561027357600080fd5b5061018561018036600461092e565b34801561028e57600080fd5b5061018561018036600461097b565b3480156102a957600080fd5b506102b26103ed565b6040516001600160a01b03909116815260200161018f565b3480156102d657600080fd5b506101856101803660046109cf565b3480156102f157600080fd5b50610185610300366004610735565b61054e565b34801561031157600080fd5b506101cd6101803660046109f1565b34801561032c57600080fd5b506101f261033b3660046109f1565b50565b34801561034a57600080fd5b506101f2610359366004610b05565b6105aa565b34801561036a57600080fd5b506000546102b2906001600160a01b031681565b34801561038a57600080fd5b506101857f000000000000000000000000000000000000000000000000000000000000000081565b3480156103be57600080fd5b506001546102b2906001600160a01b031681565b3480156103de57600080fd5b506101f2610359366004610bc6565b600060405162461bcd60e51b815260040161040790610be1565b60405180910390fd5b600033321461044f5760405162461bcd60e51b815260206004820152600b60248201526a6f726967696e206f6e6c7960a81b6044820152606401610407565b60006104746003338686604051610467929190610c0a565b60405180910390206105c2565b60405190915081907fab532385be8f1005a4b6ba8fa20a2245facb346134ac739fe9a5198dc1580b9c90600090a29392505050565b60405162461bcd60e51b815260206004820152600f60248201526e1393d5081253541311535153951151608a1b6044820152606401610407565b6000546001600160a01b03161561052b5760405162461bcd60e51b815260206004820152600c60248201526b1053149150511657d253925560a21b6044820152606401610407565b50600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000806105676003338686604051610467929190610c0a565b9050807fff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60b858560405161059b929190610c1a565b60405180910390a29392505050565b60405162461bcd60e51b815260040161040790610be1565b60008054604051638db5993b60e01b815260ff861660048201526001600160a01b0385811660248301526044820185905290911690638db5993b9034906064016020604051808303818588803b15801561061b57600080fd5b505af115801561062f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906106549190610c49565b949350505050565b6001600160a01b038116811461033b57600080fd5b60008083601f84011261068357600080fd5b5081356001600160401b0381111561069a57600080fd5b6020830191508360208285010111156106b257600080fd5b9250929050565b600080600080600080600060c0888a0312156106d457600080fd5b87359650602088013595506040880135945060608801356106f48161065c565b93506080880135925060a08801356001600160401b0381111561071657600080fd5b6107228a828b01610671565b989b979a50959850939692959293505050565b6000806020838503121561074857600080fd5b82356001600160401b0381111561075e57600080fd5b61076a85828601610671565b90969095509350505050565b6000806040838503121561078957600080fd5b82356107948161065c565b915060208301356107a48161065c565b809150509250929050565b6000806000806000608086880312156107c757600080fd5b853594506020860135935060408601356107e08161065c565b925060608601356001600160401b038111156107fb57600080fd5b61080788828901610671565b969995985093965092949392505050565b60008060008060008060008060006101008a8c03121561083757600080fd5b89356108428161065c565b985060208a0135975060408a0135965060608a01356108608161065c565b955060808a01356108708161065c565b945060a08a0135935060c08a0135925060e08a01356001600160401b0381111561089957600080fd5b6108a58c828d01610671565b915080935050809150509295985092959850929598565b60008060008060008060a087890312156108d557600080fd5b86359550602087013594506040870135935060608701356108f58161065c565b925060808701356001600160401b0381111561091057600080fd5b61091c89828a01610671565b979a9699509497509295939492505050565b600080600080600060a0868803121561094657600080fd5b85359450602086013593506040860135925060608601359150608086013561096d8161065c565b809150509295509295909350565b60008060008060008060a0878903121561099457600080fd5b863595506020870135945060408701356109ad8161065c565b93506060870135925060808701356001600160401b0381111561091057600080fd5b600080604083850312156109e257600080fd5b50508035926020909101359150565b600060208284031215610a0357600080fd5b8135610a0e8161065c565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715610a5357610a53610a15565b604052919050565b60006001600160401b03821115610a7457610a74610a15565b5060051b60200190565b80358015158114610a8e57600080fd5b919050565b600082601f830112610aa457600080fd5b81356020610ab9610ab483610a5b565b610a2b565b82815260059290921b84018101918181019086841115610ad857600080fd5b8286015b84811015610afa57610aed81610a7e565b8352918301918301610adc565b509695505050505050565b60008060408385031215610b1857600080fd5b82356001600160401b0380821115610b2f57600080fd5b818501915085601f830112610b4357600080fd5b81356020610b53610ab483610a5b565b82815260059290921b84018101918181019089841115610b7257600080fd5b948201945b83861015610b99578535610b8a8161065c565b82529482019490820190610b77565b96505086013592505080821115610baf57600080fd5b50610bbc85828601610a93565b9150509250929050565b600060208284031215610bd857600080fd5b610a0e82610a7e565b6020808252600f908201526e1393d517d253541311535153951151608a1b604082015260600190565b8183823760009101908152919050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b600060208284031215610c5b57600080fd5b505191905056fea2646970667358221220670b01adebf2b33be3f180b2e78e317786d597b4dfdff6b12ae4fef704229ccf64736f6c63430008090033",
679
+ "deployedBytecode": "0x6080604052600436106101605760003560e01c80638456cb59116100c1578063c474d2c51161007a578063c474d2c514610320578063e3de72a51461033e578063e6bd12cf14610259578063e78cea921461035e578063e8eb1dc31461037e578063ee35f327146103b2578063efeadb6d146103d257600080fd5b80638456cb59146101dd5780638a631aa6146102825780638b3240a01461029d578063a66b327d146102ca578063b75436bb146102e5578063babcc5391461030557600080fd5b80635075788b1161011e5780635075788b146101655780635c975abb1461021c5780635e9167581461023d578063679b6ded1461024b57806367ef3ab8146102595780636e6e8a6a1461024b57806370665f141461026757600080fd5b8062f72382146101655780631fe927cf1461019857806322bd5c1c146101b85780633f4ba83a146101dd578063439370b1146101f4578063485cc955146101fc575b600080fd5b34801561017157600080fd5b506101856101803660046106b9565b6103ed565b6040519081526020015b60405180910390f35b3480156101a457600080fd5b506101856101b3366004610735565b610410565b3480156101c457600080fd5b506101cd6103ed565b604051901515815260200161018f565b3480156101e957600080fd5b506101f26104a9565b005b6101856103ed565b34801561020857600080fd5b506101f2610217366004610776565b6104e3565b34801561022857600080fd5b506001546101cd90600160a01b900460ff1681565b6101856101803660046107af565b610185610180366004610818565b6101856101803660046108bc565b34801561027357600080fd5b5061018561018036600461092e565b34801561028e57600080fd5b5061018561018036600461097b565b3480156102a957600080fd5b506102b26103ed565b6040516001600160a01b03909116815260200161018f565b3480156102d657600080fd5b506101856101803660046109cf565b3480156102f157600080fd5b50610185610300366004610735565b61054e565b34801561031157600080fd5b506101cd6101803660046109f1565b34801561032c57600080fd5b506101f261033b3660046109f1565b50565b34801561034a57600080fd5b506101f2610359366004610b05565b6105aa565b34801561036a57600080fd5b506000546102b2906001600160a01b031681565b34801561038a57600080fd5b506101857f000000000000000000000000000000000000000000000000000000000000000081565b3480156103be57600080fd5b506001546102b2906001600160a01b031681565b3480156103de57600080fd5b506101f2610359366004610bc6565b600060405162461bcd60e51b815260040161040790610be1565b60405180910390fd5b600033321461044f5760405162461bcd60e51b815260206004820152600b60248201526a6f726967696e206f6e6c7960a81b6044820152606401610407565b60006104746003338686604051610467929190610c0a565b60405180910390206105c2565b60405190915081907fab532385be8f1005a4b6ba8fa20a2245facb346134ac739fe9a5198dc1580b9c90600090a29392505050565b60405162461bcd60e51b815260206004820152600f60248201526e1393d5081253541311535153951151608a1b6044820152606401610407565b6000546001600160a01b03161561052b5760405162461bcd60e51b815260206004820152600c60248201526b1053149150511657d253925560a21b6044820152606401610407565b50600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000806105676003338686604051610467929190610c0a565b9050807fff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60b858560405161059b929190610c1a565b60405180910390a29392505050565b60405162461bcd60e51b815260040161040790610be1565b60008054604051638db5993b60e01b815260ff861660048201526001600160a01b0385811660248301526044820185905290911690638db5993b9034906064016020604051808303818588803b15801561061b57600080fd5b505af115801561062f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906106549190610c49565b949350505050565b6001600160a01b038116811461033b57600080fd5b60008083601f84011261068357600080fd5b5081356001600160401b0381111561069a57600080fd5b6020830191508360208285010111156106b257600080fd5b9250929050565b600080600080600080600060c0888a0312156106d457600080fd5b87359650602088013595506040880135945060608801356106f48161065c565b93506080880135925060a08801356001600160401b0381111561071657600080fd5b6107228a828b01610671565b989b979a50959850939692959293505050565b6000806020838503121561074857600080fd5b82356001600160401b0381111561075e57600080fd5b61076a85828601610671565b90969095509350505050565b6000806040838503121561078957600080fd5b82356107948161065c565b915060208301356107a48161065c565b809150509250929050565b6000806000806000608086880312156107c757600080fd5b853594506020860135935060408601356107e08161065c565b925060608601356001600160401b038111156107fb57600080fd5b61080788828901610671565b969995985093965092949392505050565b60008060008060008060008060006101008a8c03121561083757600080fd5b89356108428161065c565b985060208a0135975060408a0135965060608a01356108608161065c565b955060808a01356108708161065c565b945060a08a0135935060c08a0135925060e08a01356001600160401b0381111561089957600080fd5b6108a58c828d01610671565b915080935050809150509295985092959850929598565b60008060008060008060a087890312156108d557600080fd5b86359550602087013594506040870135935060608701356108f58161065c565b925060808701356001600160401b0381111561091057600080fd5b61091c89828a01610671565b979a9699509497509295939492505050565b600080600080600060a0868803121561094657600080fd5b85359450602086013593506040860135925060608601359150608086013561096d8161065c565b809150509295509295909350565b60008060008060008060a0878903121561099457600080fd5b863595506020870135945060408701356109ad8161065c565b93506060870135925060808701356001600160401b0381111561091057600080fd5b600080604083850312156109e257600080fd5b50508035926020909101359150565b600060208284031215610a0357600080fd5b8135610a0e8161065c565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715610a5357610a53610a15565b604052919050565b60006001600160401b03821115610a7457610a74610a15565b5060051b60200190565b80358015158114610a8e57600080fd5b919050565b600082601f830112610aa457600080fd5b81356020610ab9610ab483610a5b565b610a2b565b82815260059290921b84018101918181019086841115610ad857600080fd5b8286015b84811015610afa57610aed81610a7e565b8352918301918301610adc565b509695505050505050565b60008060408385031215610b1857600080fd5b82356001600160401b0380821115610b2f57600080fd5b818501915085601f830112610b4357600080fd5b81356020610b53610ab483610a5b565b82815260059290921b84018101918181019089841115610b7257600080fd5b948201945b83861015610b99578535610b8a8161065c565b82529482019490820190610b77565b96505086013592505080821115610baf57600080fd5b50610bbc85828601610a93565b9150509250929050565b600060208284031215610bd857600080fd5b610a0e82610a7e565b6020808252600f908201526e1393d517d253541311535153951151608a1b604082015260600190565b8183823760009101908152919050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b600060208284031215610c5b57600080fd5b505191905056fea2646970667358221220670b01adebf2b33be3f180b2e78e317786d597b4dfdff6b12ae4fef704229ccf64736f6c63430008090033",
680
680
  "linkReferences": {},
681
681
  "deployedLinkReferences": {}
682
682
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/7de232cc334b063903f669aaef0a3136.json"
3
+ "buildInfo": "../../../build-info/c1d194c598f27e74e5febef0e822787e.json"
4
4
  }
@@ -181,8 +181,8 @@
181
181
  "type": "function"
182
182
  }
183
183
  ],
184
- "bytecode": "0x608060405234801561001057600080fd5b5060405161050f38038061050f83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b61047c806100936000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80630357aa491461006757806314eab5e71461007c578063481c6a75146100ad578063d6853748146100d8578063dfbf53ae146100ef578063e82898b314610102575b600080fd5b61007a610075366004610235565b610115565b005b61008f61008a36600461028a565b61017b565b60405167ffffffffffffffff90911681526020015b60405180910390f35b6000546100c0906001600160a01b031681565b6040516001600160a01b0390911681526020016100a4565b6100e160035481565b6040519081526020016100a4565b6001546100c0906001600160a01b031681565b6002546100c0906001600160a01b031681565b600180546001600160a01b03199081166001600160a01b0385811691821790935560028054909216928416928317909155600385905560405185907f88cb1f3fe351f3ac338db9c36bff1ece1750423c7ae6dfc427cd194b1c69b12790600090a4505050565b600080546040516314eab5e760e01b81526001600160a01b03909116906314eab5e7906101ba908c908c908c908c908c908c908c908c90600401610395565b602060405180830381600087803b1580156101d457600080fd5b505af11580156101e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020c9190610422565b9998505050505050505050565b80356001600160a01b038116811461023057600080fd5b919050565b60008060006060848603121561024a57600080fd5b8335925061025a60208501610219565b915061026860408501610219565b90509250925092565b67ffffffffffffffff8116811461028757600080fd5b50565b600080600080600080600080610200898b0312156102a757600080fd5b88359750606089018a8111156102bc57600080fd5b60208a0197506101608a018b8111156102d457600080fd5b909650356102e181610271565b94506102f06101808a01610219565b93506102ff6101a08a01610219565b92506101c089013591506101e089013590509295985092959890939650565b806000805b6002808210610332575061038e565b6040808588378681018481529085019084905b8382101561037757823561035881610271565b67ffffffffffffffff1681526020928301926001929092019101610345565b505050608095860195939093019250600101610323565b5050505050565b888152610200810160208083018a6000805b60028110156103d0578235600481106103be578283fd5b845292840192918401916001016103a7565b50505050506103e2606083018961031e565b67ffffffffffffffff969096166101608201526001600160a01b03948516610180820152929093166101a08301526101c08201526101e001529392505050565b60006020828403121561043457600080fd5b815161043f81610271565b939250505056fea26469706673582212207a365de6dd4243fbd643ba10fce23b0967eca3c213039779ecc0891ec2575c9b64736f6c63430008090033",
185
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100625760003560e01c80630357aa491461006757806314eab5e71461007c578063481c6a75146100ad578063d6853748146100d8578063dfbf53ae146100ef578063e82898b314610102575b600080fd5b61007a610075366004610235565b610115565b005b61008f61008a36600461028a565b61017b565b60405167ffffffffffffffff90911681526020015b60405180910390f35b6000546100c0906001600160a01b031681565b6040516001600160a01b0390911681526020016100a4565b6100e160035481565b6040519081526020016100a4565b6001546100c0906001600160a01b031681565b6002546100c0906001600160a01b031681565b600180546001600160a01b03199081166001600160a01b0385811691821790935560028054909216928416928317909155600385905560405185907f88cb1f3fe351f3ac338db9c36bff1ece1750423c7ae6dfc427cd194b1c69b12790600090a4505050565b600080546040516314eab5e760e01b81526001600160a01b03909116906314eab5e7906101ba908c908c908c908c908c908c908c908c90600401610395565b602060405180830381600087803b1580156101d457600080fd5b505af11580156101e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020c9190610422565b9998505050505050505050565b80356001600160a01b038116811461023057600080fd5b919050565b60008060006060848603121561024a57600080fd5b8335925061025a60208501610219565b915061026860408501610219565b90509250925092565b67ffffffffffffffff8116811461028757600080fd5b50565b600080600080600080600080610200898b0312156102a757600080fd5b88359750606089018a8111156102bc57600080fd5b60208a0197506101608a018b8111156102d457600080fd5b909650356102e181610271565b94506102f06101808a01610219565b93506102ff6101a08a01610219565b92506101c089013591506101e089013590509295985092959890939650565b806000805b6002808210610332575061038e565b6040808588378681018481529085019084905b8382101561037757823561035881610271565b67ffffffffffffffff1681526020928301926001929092019101610345565b505050608095860195939093019250600101610323565b5050505050565b888152610200810160208083018a6000805b60028110156103d0578235600481106103be578283fd5b845292840192918401916001016103a7565b50505050506103e2606083018961031e565b67ffffffffffffffff969096166101608201526001600160a01b03948516610180820152929093166101a08301526101c08201526101e001529392505050565b60006020828403121561043457600080fd5b815161043f81610271565b939250505056fea26469706673582212207a365de6dd4243fbd643ba10fce23b0967eca3c213039779ecc0891ec2575c9b64736f6c63430008090033",
184
+ "bytecode": "0x608060405234801561001057600080fd5b5060405161050f38038061050f83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b61047c806100936000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80630357aa491461006757806314eab5e71461007c578063481c6a75146100ad578063d6853748146100d8578063dfbf53ae146100ef578063e82898b314610102575b600080fd5b61007a610075366004610235565b610115565b005b61008f61008a36600461028a565b61017b565b60405167ffffffffffffffff90911681526020015b60405180910390f35b6000546100c0906001600160a01b031681565b6040516001600160a01b0390911681526020016100a4565b6100e160035481565b6040519081526020016100a4565b6001546100c0906001600160a01b031681565b6002546100c0906001600160a01b031681565b600180546001600160a01b03199081166001600160a01b0385811691821790935560028054909216928416928317909155600385905560405185907f88cb1f3fe351f3ac338db9c36bff1ece1750423c7ae6dfc427cd194b1c69b12790600090a4505050565b600080546040516314eab5e760e01b81526001600160a01b03909116906314eab5e7906101ba908c908c908c908c908c908c908c908c90600401610395565b602060405180830381600087803b1580156101d457600080fd5b505af11580156101e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020c9190610422565b9998505050505050505050565b80356001600160a01b038116811461023057600080fd5b919050565b60008060006060848603121561024a57600080fd5b8335925061025a60208501610219565b915061026860408501610219565b90509250925092565b67ffffffffffffffff8116811461028757600080fd5b50565b600080600080600080600080610200898b0312156102a757600080fd5b88359750606089018a8111156102bc57600080fd5b60208a0197506101608a018b8111156102d457600080fd5b909650356102e181610271565b94506102f06101808a01610219565b93506102ff6101a08a01610219565b92506101c089013591506101e089013590509295985092959890939650565b806000805b6002808210610332575061038e565b6040808588378681018481529085019084905b8382101561037757823561035881610271565b67ffffffffffffffff1681526020928301926001929092019101610345565b505050608095860195939093019250600101610323565b5050505050565b888152610200810160208083018a6000805b60028110156103d0578235600481106103be578283fd5b845292840192918401916001016103a7565b50505050506103e2606083018961031e565b67ffffffffffffffff969096166101608201526001600160a01b03948516610180820152929093166101a08301526101c08201526101e001529392505050565b60006020828403121561043457600080fd5b815161043f81610271565b939250505056fea2646970667358221220c420bab0c2db435e5531bfebbc1553ff124b5077960be98aad336d4d94a1990e64736f6c63430008090033",
185
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100625760003560e01c80630357aa491461006757806314eab5e71461007c578063481c6a75146100ad578063d6853748146100d8578063dfbf53ae146100ef578063e82898b314610102575b600080fd5b61007a610075366004610235565b610115565b005b61008f61008a36600461028a565b61017b565b60405167ffffffffffffffff90911681526020015b60405180910390f35b6000546100c0906001600160a01b031681565b6040516001600160a01b0390911681526020016100a4565b6100e160035481565b6040519081526020016100a4565b6001546100c0906001600160a01b031681565b6002546100c0906001600160a01b031681565b600180546001600160a01b03199081166001600160a01b0385811691821790935560028054909216928416928317909155600385905560405185907f88cb1f3fe351f3ac338db9c36bff1ece1750423c7ae6dfc427cd194b1c69b12790600090a4505050565b600080546040516314eab5e760e01b81526001600160a01b03909116906314eab5e7906101ba908c908c908c908c908c908c908c908c90600401610395565b602060405180830381600087803b1580156101d457600080fd5b505af11580156101e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020c9190610422565b9998505050505050505050565b80356001600160a01b038116811461023057600080fd5b919050565b60008060006060848603121561024a57600080fd5b8335925061025a60208501610219565b915061026860408501610219565b90509250925092565b67ffffffffffffffff8116811461028757600080fd5b50565b600080600080600080600080610200898b0312156102a757600080fd5b88359750606089018a8111156102bc57600080fd5b60208a0197506101608a018b8111156102d457600080fd5b909650356102e181610271565b94506102f06101808a01610219565b93506102ff6101a08a01610219565b92506101c089013591506101e089013590509295985092959890939650565b806000805b6002808210610332575061038e565b6040808588378681018481529085019084905b8382101561037757823561035881610271565b67ffffffffffffffff1681526020928301926001929092019101610345565b505050608095860195939093019250600101610323565b5050505050565b888152610200810160208083018a6000805b60028110156103d0578235600481106103be578283fd5b845292840192918401916001016103a7565b50505050506103e2606083018961031e565b67ffffffffffffffff969096166101608201526001600160a01b03948516610180820152929093166101a08301526101c08201526101e001529392505050565b60006020828403121561043457600080fd5b815161043f81610271565b939250505056fea2646970667358221220c420bab0c2db435e5531bfebbc1553ff124b5077960be98aad336d4d94a1990e64736f6c63430008090033",
186
186
  "linkReferences": {},
187
187
  "deployedLinkReferences": {}
188
188
  }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/c1d194c598f27e74e5febef0e822787e.json"
4
+ }
@@ -0,0 +1,71 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "MultiCallTest",
4
+ "sourceName": "src/mocks/MultiCallTest.sol",
5
+ "abi": [
6
+ {
7
+ "anonymous": false,
8
+ "inputs": [
9
+ {
10
+ "indexed": false,
11
+ "internalType": "address",
12
+ "name": "addr",
13
+ "type": "address"
14
+ },
15
+ {
16
+ "indexed": false,
17
+ "internalType": "uint8",
18
+ "name": "count",
19
+ "type": "uint8"
20
+ },
21
+ {
22
+ "indexed": false,
23
+ "internalType": "bool",
24
+ "name": "success",
25
+ "type": "bool"
26
+ },
27
+ {
28
+ "indexed": false,
29
+ "internalType": "bytes",
30
+ "name": "returnData",
31
+ "type": "bytes"
32
+ }
33
+ ],
34
+ "name": "Called",
35
+ "type": "event"
36
+ },
37
+ {
38
+ "anonymous": false,
39
+ "inputs": [
40
+ {
41
+ "indexed": false,
42
+ "internalType": "bytes32",
43
+ "name": "slot",
44
+ "type": "bytes32"
45
+ },
46
+ {
47
+ "indexed": false,
48
+ "internalType": "bytes32",
49
+ "name": "data",
50
+ "type": "bytes32"
51
+ },
52
+ {
53
+ "indexed": false,
54
+ "internalType": "bool",
55
+ "name": "write",
56
+ "type": "bool"
57
+ }
58
+ ],
59
+ "name": "Storage",
60
+ "type": "event"
61
+ },
62
+ {
63
+ "stateMutability": "payable",
64
+ "type": "fallback"
65
+ }
66
+ ],
67
+ "bytecode": "0x608060405234801561001057600080fd5b5061072c806100206000396000f3fe608060405260003660608161001357600080fd5b6000838360008181106100285761002861054e565b919091013560f81c915061004190508360018187610564565b93509350606060005b8260ff168160ff1610156104e8576000610066878760046104f6565b9050610075866004818a610564565b909750955036600061008f63ffffffff8416828a8c610564565b90925090506100a68863ffffffff8516818c610564565b985098506000828260008181106100bf576100bf61054e565b919091013560f81c91506100d890508260018186610564565b909350915060f081166103615760006003821661010f576100fb848460206104f6565b905061010a8360208187610564565b935093505b600061011e6014828688610564565b6101279161058e565b60601c905036600061013c866014818a610564565b909250905060606000600387166101b457846001600160a01b03168685856040516101689291906105c3565b60006040518083038185875af1925050503d80600081146101a5576040519150601f19603f3d011682016040523d82523d6000602084013e6101aa565b606091505b50925090506102b7565b600160038816141561021557846001600160a01b031684846040516101da9291906105c3565b600060405180830381855af49150503d80600081146101a5576040519150601f19603f3d011682016040523d82523d6000602084013e6101aa565b600260038816141561027657846001600160a01b0316848460405161023b9291906105c3565b600060405180830381855afa9150503d80600081146101a5576040519150601f19603f3d011682016040523d82523d6000602084013e6101aa565b60405162461bcd60e51b81526020600482015260116024820152701d5b9adb9bdddb8818d85b1b081ada5b99607a1b60448201526064015b60405180910390fd5b806102eb57600487166102d857815180156102d3578060208401fd5b600080fd5b6040518060200160405280600081525091505b6008871615610332577f30ad2f9d9b34e611e2e65d13ec9bb22af3424e51619d6006cec561bc2c322cc5858e83856040516103299493929190610603565b60405180910390a15b8b82604051602001610345929190610658565b6040516020818303038152906040529b505050505050506104d1565b601060f08216141561049757600061037c6020828587610564565b61038591610687565b90506103948360208187610564565b9094509250600080600384166103c9576103b2602060008789610564565b6103bb91610687565b915060019050818355610444565b600160038516141561040557505080546040516000906103ef908a9084906020016106a6565b6040516020818303038152906040529850610444565b60405162461bcd60e51b81526020600482015260146024820152731d5b9adb9bdddb881cdd1bdc9859d9481ada5b9960621b60448201526064016102ae565b600884161561048f5760408051848152602081018490528215158183015290517f6ab08a9a891703dcd5859f8e8328215fef6d9f250e7d58267bee45aabaee2fa89181900360600190a15b5050506104d1565b60405162461bcd60e51b815260206004820152600f60248201526e1d5b9adb9bdddb8818dbdb5b585b99608a1b60448201526064016102ae565b5050505080806104e0906106c8565b91505061004a565b508051945060200192505050f35b600080805b8360ff168160ff16101561054557600882901b915085858260ff168181106105255761052561054e565b919091013560f81c9290921791508061053d816106c8565b9150506104fb565b50949350505050565b634e487b7160e01b600052603260045260246000fd5b6000808585111561057457600080fd5b8386111561058157600080fd5b5050820193919092039150565b6bffffffffffffffffffffffff1981358181169160148510156105bb5780818660140360031b1b83161692505b505092915050565b8183823760009101908152919050565b60005b838110156105ee5781810151838201526020016105d6565b838111156105fd576000848401525b50505050565b60018060a01b038516815260ff84166020820152821515604082015260806060820152600082518060808401526106418160a08501602087016105d3565b601f01601f19169190910160a00195945050505050565b6000835161066a8184602088016105d3565b83519083019061067e8183602088016105d3565b01949350505050565b803560208310156106a057600019602084900360031b1b165b92915050565b600083516106b88184602088016105d3565b9190910191825250602001919050565b600060ff821660ff8114156106ed57634e487b7160e01b600052601160045260246000fd5b6001019291505056fea2646970667358221220f2e78137df29d5d63ed161371e5614c380dd2d72d1eb56b7abfd6437d496ee2264736f6c63430008090033",
68
+ "deployedBytecode": "0x608060405260003660608161001357600080fd5b6000838360008181106100285761002861054e565b919091013560f81c915061004190508360018187610564565b93509350606060005b8260ff168160ff1610156104e8576000610066878760046104f6565b9050610075866004818a610564565b909750955036600061008f63ffffffff8416828a8c610564565b90925090506100a68863ffffffff8516818c610564565b985098506000828260008181106100bf576100bf61054e565b919091013560f81c91506100d890508260018186610564565b909350915060f081166103615760006003821661010f576100fb848460206104f6565b905061010a8360208187610564565b935093505b600061011e6014828688610564565b6101279161058e565b60601c905036600061013c866014818a610564565b909250905060606000600387166101b457846001600160a01b03168685856040516101689291906105c3565b60006040518083038185875af1925050503d80600081146101a5576040519150601f19603f3d011682016040523d82523d6000602084013e6101aa565b606091505b50925090506102b7565b600160038816141561021557846001600160a01b031684846040516101da9291906105c3565b600060405180830381855af49150503d80600081146101a5576040519150601f19603f3d011682016040523d82523d6000602084013e6101aa565b600260038816141561027657846001600160a01b0316848460405161023b9291906105c3565b600060405180830381855afa9150503d80600081146101a5576040519150601f19603f3d011682016040523d82523d6000602084013e6101aa565b60405162461bcd60e51b81526020600482015260116024820152701d5b9adb9bdddb8818d85b1b081ada5b99607a1b60448201526064015b60405180910390fd5b806102eb57600487166102d857815180156102d3578060208401fd5b600080fd5b6040518060200160405280600081525091505b6008871615610332577f30ad2f9d9b34e611e2e65d13ec9bb22af3424e51619d6006cec561bc2c322cc5858e83856040516103299493929190610603565b60405180910390a15b8b82604051602001610345929190610658565b6040516020818303038152906040529b505050505050506104d1565b601060f08216141561049757600061037c6020828587610564565b61038591610687565b90506103948360208187610564565b9094509250600080600384166103c9576103b2602060008789610564565b6103bb91610687565b915060019050818355610444565b600160038516141561040557505080546040516000906103ef908a9084906020016106a6565b6040516020818303038152906040529850610444565b60405162461bcd60e51b81526020600482015260146024820152731d5b9adb9bdddb881cdd1bdc9859d9481ada5b9960621b60448201526064016102ae565b600884161561048f5760408051848152602081018490528215158183015290517f6ab08a9a891703dcd5859f8e8328215fef6d9f250e7d58267bee45aabaee2fa89181900360600190a15b5050506104d1565b60405162461bcd60e51b815260206004820152600f60248201526e1d5b9adb9bdddb8818dbdb5b585b99608a1b60448201526064016102ae565b5050505080806104e0906106c8565b91505061004a565b508051945060200192505050f35b600080805b8360ff168160ff16101561054557600882901b915085858260ff168181106105255761052561054e565b919091013560f81c9290921791508061053d816106c8565b9150506104fb565b50949350505050565b634e487b7160e01b600052603260045260246000fd5b6000808585111561057457600080fd5b8386111561058157600080fd5b5050820193919092039150565b6bffffffffffffffffffffffff1981358181169160148510156105bb5780818660140360031b1b83161692505b505092915050565b8183823760009101908152919050565b60005b838110156105ee5781810151838201526020016105d6565b838111156105fd576000848401525b50505050565b60018060a01b038516815260ff84166020820152821515604082015260806060820152600082518060808401526106418160a08501602087016105d3565b601f01601f19169190910160a00195945050505050565b6000835161066a8184602088016105d3565b83519083019061067e8183602088016105d3565b01949350505050565b803560208310156106a057600019602084900360031b1b165b92915050565b600083516106b88184602088016105d3565b9190910191825250602001919050565b600060ff821660ff8114156106ed57634e487b7160e01b600052601160045260246000fd5b6001019291505056fea2646970667358221220f2e78137df29d5d63ed161371e5614c380dd2d72d1eb56b7abfd6437d496ee2264736f6c63430008090033",
69
+ "linkReferences": {},
70
+ "deployedLinkReferences": {}
71
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/c1d194c598f27e74e5febef0e822787e.json"
4
+ }
@@ -0,0 +1,36 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "PendingBlkTimeAndNrAdvanceCheck",
4
+ "sourceName": "src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [],
8
+ "stateMutability": "nonpayable",
9
+ "type": "constructor"
10
+ },
11
+ {
12
+ "inputs": [
13
+ {
14
+ "internalType": "bytes32",
15
+ "name": "expected",
16
+ "type": "bytes32"
17
+ }
18
+ ],
19
+ "name": "checkArbBlockHashReturnsLatest",
20
+ "outputs": [],
21
+ "stateMutability": "nonpayable",
22
+ "type": "function"
23
+ },
24
+ {
25
+ "inputs": [],
26
+ "name": "isAdvancing",
27
+ "outputs": [],
28
+ "stateMutability": "nonpayable",
29
+ "type": "function"
30
+ }
31
+ ],
32
+ "bytecode": "0x60c060405234801561001057600080fd5b50426080818152505060646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561005357600080fd5b505afa158015610067573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061008b9190610093565b60a0526100ac565b6000602082840312156100a557600080fd5b5051919050565b60805160a0516103ad6100cf600039600060c401526000605a01526103ad6000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80634bc05a231461003b578063e46c80b614610045575b600080fd5b610043610058565b005b610043610053366004610320565b61019b565b7f000000000000000000000000000000000000000000000000000000000000000042116100c25760405162461bcd60e51b815260206004820152601360248201527254696d65206469646e277420616476616e636560681b60448201526064015b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000060646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561011d57600080fd5b505afa158015610131573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101559190610339565b116101995760405162461bcd60e51b8152602060048201526014602482015273426c6f636b206469646e277420616476616e636560601b60448201526064016100b9565b565b600060646001600160a01b0316632b407a82600160646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156101e957600080fd5b505afa1580156101fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102219190610339565b61022b9190610352565b6040518263ffffffff1660e01b815260040161024991815260200190565b60206040518083038186803b15801561026157600080fd5b505afa158015610275573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102999190610339565b9050806102da5760405162461bcd60e51b815260206004820152600f60248201526e0b48aa49ebe84989e8696be9082a69608b1b60448201526064016100b9565b81811461031c5760405162461bcd60e51b815260206004820152601060248201526f0aea49e9c8ebe84989e8696be9082a6960831b60448201526064016100b9565b5050565b60006020828403121561033257600080fd5b5035919050565b60006020828403121561034b57600080fd5b5051919050565b60008282101561037257634e487b7160e01b600052601160045260246000fd5b50039056fea2646970667358221220730c4b3e99fd4d26ab0da08f450c475a050be7fb07db1a6d32fff16bae24ef5364736f6c63430008090033",
33
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c80634bc05a231461003b578063e46c80b614610045575b600080fd5b610043610058565b005b610043610053366004610320565b61019b565b7f000000000000000000000000000000000000000000000000000000000000000042116100c25760405162461bcd60e51b815260206004820152601360248201527254696d65206469646e277420616476616e636560681b60448201526064015b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000060646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561011d57600080fd5b505afa158015610131573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101559190610339565b116101995760405162461bcd60e51b8152602060048201526014602482015273426c6f636b206469646e277420616476616e636560601b60448201526064016100b9565b565b600060646001600160a01b0316632b407a82600160646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156101e957600080fd5b505afa1580156101fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102219190610339565b61022b9190610352565b6040518263ffffffff1660e01b815260040161024991815260200190565b60206040518083038186803b15801561026157600080fd5b505afa158015610275573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102999190610339565b9050806102da5760405162461bcd60e51b815260206004820152600f60248201526e0b48aa49ebe84989e8696be9082a69608b1b60448201526064016100b9565b81811461031c5760405162461bcd60e51b815260206004820152601060248201526f0aea49e9c8ebe84989e8696be9082a6960831b60448201526064016100b9565b5050565b60006020828403121561033257600080fd5b5035919050565b60006020828403121561034b57600080fd5b5051919050565b60008282101561037257634e487b7160e01b600052601160045260246000fd5b50039056fea2646970667358221220730c4b3e99fd4d26ab0da08f450c475a050be7fb07db1a6d32fff16bae24ef5364736f6c63430008090033",
34
+ "linkReferences": {},
35
+ "deployedLinkReferences": {}
36
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/c1d194c598f27e74e5febef0e822787e.json"
4
+ }