@arbitrum/nitro-contracts 2.1.1-beta.0 → 3.0.0-alpha.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (541) hide show
  1. package/build/contracts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +1 -1
  2. package/build/contracts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json +1 -1
  3. package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json +1 -1
  4. package/build/contracts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json +2 -2
  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/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.json +2 -2
  10. package/build/contracts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.dbg.json +1 -1
  11. package/build/contracts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json +2 -2
  12. package/build/contracts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.dbg.json +1 -1
  13. package/build/contracts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +2 -2
  14. package/build/contracts/@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol/UUPSUpgradeable.dbg.json +1 -1
  15. package/build/contracts/@openzeppelin/contracts/security/ReentrancyGuard.sol/ReentrancyGuard.dbg.json +1 -1
  16. package/build/contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +1 -1
  17. package/build/contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json +2 -2
  18. package/build/contracts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +1 -1
  19. package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +1 -1
  20. package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.dbg.json +4 -0
  21. package/build/contracts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.json +86 -0
  22. package/build/contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json +1 -1
  23. package/build/contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.json +2 -2
  24. package/build/contracts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +1 -1
  25. package/build/contracts/@openzeppelin/contracts/utils/Address.sol/Address.json +2 -2
  26. package/build/contracts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +1 -1
  27. package/build/contracts/@openzeppelin/contracts/utils/Create2.sol/Create2.dbg.json +4 -0
  28. package/build/contracts/{src/express-lane-auction/ELCRound.sol/LatestELCRoundsLib.json → @openzeppelin/contracts/utils/Create2.sol/Create2.json} +4 -4
  29. package/build/contracts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +1 -1
  30. package/build/contracts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json +2 -2
  31. package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +1 -1
  32. package/build/contracts/@openzeppelin/contracts/utils/Strings.sol/Strings.json +2 -2
  33. package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.dbg.json +1 -1
  34. package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.json +13 -0
  35. package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol/IAccessControlUpgradeable.dbg.json +1 -1
  36. package/build/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +1 -1
  37. package/build/contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.json +13 -0
  38. package/build/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +1 -1
  39. package/build/contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.json +15 -1
  40. package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.dbg.json +1 -1
  41. package/build/contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.json +13 -0
  42. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +1 -1
  43. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.json +2 -2
  44. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +1 -1
  45. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.json +15 -1
  46. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/Create2Upgradeable.sol/Create2Upgradeable.dbg.json +4 -0
  47. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/Create2Upgradeable.sol/Create2Upgradeable.json +10 -0
  48. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.dbg.json +1 -1
  49. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.json +2 -2
  50. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.dbg.json +1 -1
  51. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.json +2 -2
  52. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.dbg.json +1 -1
  53. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.json +13 -0
  54. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol/IERC165Upgradeable.dbg.json +1 -1
  55. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.dbg.json +1 -1
  56. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol/EnumerableSetUpgradeable.json +2 -2
  57. package/build/contracts/src/assertionStakingPool/AbsBoldStakingPool.sol/AbsBoldStakingPool.dbg.json +4 -0
  58. package/build/contracts/{@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.json → src/assertionStakingPool/AbsBoldStakingPool.sol/AbsBoldStakingPool.json} +41 -95
  59. package/build/contracts/src/assertionStakingPool/AssertionStakingPool.sol/AssertionStakingPool.dbg.json +4 -0
  60. package/build/contracts/src/assertionStakingPool/AssertionStakingPool.sol/AssertionStakingPool.json +340 -0
  61. package/build/contracts/src/assertionStakingPool/AssertionStakingPoolCreator.sol/AssertionStakingPoolCreator.dbg.json +4 -0
  62. package/build/contracts/src/assertionStakingPool/AssertionStakingPoolCreator.sol/AssertionStakingPoolCreator.json +89 -0
  63. package/build/contracts/src/assertionStakingPool/EdgeStakingPool.sol/EdgeStakingPool.dbg.json +4 -0
  64. package/build/contracts/src/assertionStakingPool/EdgeStakingPool.sol/EdgeStakingPool.json +248 -0
  65. package/build/contracts/src/assertionStakingPool/EdgeStakingPoolCreator.sol/EdgeStakingPoolCreator.dbg.json +4 -0
  66. package/build/contracts/src/assertionStakingPool/EdgeStakingPoolCreator.sol/EdgeStakingPoolCreator.json +83 -0
  67. package/build/contracts/src/assertionStakingPool/StakingPoolCreatorUtils.sol/StakingPoolCreatorUtils.dbg.json +4 -0
  68. package/build/contracts/src/assertionStakingPool/StakingPoolCreatorUtils.sol/StakingPoolCreatorUtils.json +16 -0
  69. package/build/contracts/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol/IAbsBoldStakingPool.dbg.json +4 -0
  70. package/build/contracts/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol/IAbsBoldStakingPool.json +140 -0
  71. package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol/IAssertionStakingPool.dbg.json +4 -0
  72. package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol/IAssertionStakingPool.json +324 -0
  73. package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol/IAssertionStakingPoolCreator.dbg.json +4 -0
  74. package/build/contracts/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol/IAssertionStakingPoolCreator.json +84 -0
  75. package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol/IEdgeStakingPool.dbg.json +4 -0
  76. package/build/contracts/{@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.sol/IERC20MetadataUpgradeable.json → src/assertionStakingPool/interfaces/IEdgeStakingPool.sol/IEdgeStakingPool.json} +109 -110
  77. package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol/IEdgeStakingPoolCreator.dbg.json +4 -0
  78. package/build/contracts/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol/IEdgeStakingPoolCreator.json +78 -0
  79. package/build/contracts/src/bridge/AbsBridge.sol/AbsBridge.dbg.json +1 -1
  80. package/build/contracts/src/bridge/AbsBridge.sol/AbsBridge.json +13 -0
  81. package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.dbg.json +1 -1
  82. package/build/contracts/src/bridge/AbsInbox.sol/AbsInbox.json +14 -1
  83. package/build/contracts/src/bridge/AbsOutbox.sol/AbsOutbox.dbg.json +1 -1
  84. package/build/contracts/src/bridge/Bridge.sol/Bridge.dbg.json +1 -1
  85. package/build/contracts/src/bridge/Bridge.sol/Bridge.json +15 -2
  86. package/build/contracts/src/bridge/DelayBuffer.sol/DelayBuffer.dbg.json +4 -0
  87. package/build/contracts/src/bridge/DelayBuffer.sol/DelayBuffer.json +24 -0
  88. package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.dbg.json +1 -1
  89. package/build/contracts/src/bridge/ERC20Bridge.sol/ERC20Bridge.json +15 -2
  90. package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.dbg.json +1 -1
  91. package/build/contracts/src/bridge/ERC20Inbox.sol/ERC20Inbox.json +16 -3
  92. package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.dbg.json +1 -1
  93. package/build/contracts/src/bridge/ERC20Outbox.sol/ERC20Outbox.json +2 -2
  94. package/build/contracts/src/bridge/GasRefunder.sol/GasRefunder.dbg.json +1 -1
  95. package/build/contracts/src/bridge/GasRefunder.sol/GasRefunder.json +2 -2
  96. package/build/contracts/src/bridge/IBridge.sol/IBridge.dbg.json +1 -1
  97. package/build/contracts/src/bridge/IDelayedMessageProvider.sol/IDelayedMessageProvider.dbg.json +1 -1
  98. package/build/contracts/src/bridge/IERC20Bridge.sol/IERC20Bridge.dbg.json +1 -1
  99. package/build/contracts/src/bridge/IERC20Inbox.sol/IERC20Inbox.dbg.json +1 -1
  100. package/build/contracts/src/bridge/IEthBridge.sol/IEthBridge.dbg.json +1 -1
  101. package/build/contracts/src/bridge/IInbox.sol/IInbox.dbg.json +1 -1
  102. package/build/contracts/src/bridge/IInboxBase.sol/IInboxBase.dbg.json +1 -1
  103. package/build/contracts/src/bridge/IOutbox.sol/IOutbox.dbg.json +1 -1
  104. package/build/contracts/src/bridge/IOwnable.sol/IOwnable.dbg.json +1 -1
  105. package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.dbg.json +1 -1
  106. package/build/contracts/src/bridge/ISequencerInbox.sol/ISequencerInbox.json +441 -0
  107. package/build/contracts/src/bridge/Inbox.sol/Inbox.dbg.json +1 -1
  108. package/build/contracts/src/bridge/Inbox.sol/Inbox.json +20 -2
  109. package/build/contracts/src/bridge/Messages.sol/Messages.dbg.json +1 -1
  110. package/build/contracts/src/bridge/Messages.sol/Messages.json +2 -2
  111. package/build/contracts/src/bridge/Outbox.sol/Outbox.dbg.json +1 -1
  112. package/build/contracts/src/bridge/Outbox.sol/Outbox.json +2 -2
  113. package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.dbg.json +1 -1
  114. package/build/contracts/src/bridge/SequencerInbox.sol/SequencerInbox.json +566 -9
  115. package/build/contracts/src/chain/CacheManager.sol/CacheManager.dbg.json +1 -1
  116. package/build/contracts/src/chain/CacheManager.sol/CacheManager.json +15 -2
  117. package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/EdgeChallengeManager.dbg.json +4 -0
  118. package/build/contracts/src/challengeV2/EdgeChallengeManager.sol/EdgeChallengeManager.json +1631 -0
  119. package/build/contracts/src/challengeV2/IAssertionChain.sol/IAssertionChain.dbg.json +4 -0
  120. package/build/contracts/src/challengeV2/IAssertionChain.sol/IAssertionChain.json +247 -0
  121. package/build/contracts/src/challengeV2/IEdgeChallengeManager.sol/IEdgeChallengeManager.dbg.json +4 -0
  122. package/build/contracts/src/challengeV2/IEdgeChallengeManager.sol/IEdgeChallengeManager.json +762 -0
  123. package/build/contracts/src/challengeV2/libraries/ArrayUtilsLib.sol/ArrayUtilsLib.dbg.json +4 -0
  124. package/build/contracts/src/challengeV2/libraries/ArrayUtilsLib.sol/ArrayUtilsLib.json +10 -0
  125. package/build/contracts/src/challengeV2/libraries/ChallengeEdgeLib.sol/ChallengeEdgeLib.dbg.json +4 -0
  126. package/build/contracts/{@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.json → src/challengeV2/libraries/ChallengeEdgeLib.sol/ChallengeEdgeLib.json} +4 -4
  127. package/build/contracts/src/challengeV2/libraries/EdgeChallengeManagerLib.sol/EdgeChallengeManagerLib.dbg.json +4 -0
  128. package/build/contracts/src/challengeV2/libraries/EdgeChallengeManagerLib.sol/EdgeChallengeManagerLib.json +24 -0
  129. package/build/contracts/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol/MerkleTreeAccumulatorLib.dbg.json +4 -0
  130. package/build/contracts/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol/MerkleTreeAccumulatorLib.json +24 -0
  131. package/build/contracts/src/challengeV2/libraries/UintUtilsLib.sol/UintUtilsLib.dbg.json +4 -0
  132. package/build/contracts/src/challengeV2/libraries/UintUtilsLib.sol/UintUtilsLib.json +10 -0
  133. package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.dbg.json +1 -1
  134. package/build/contracts/src/libraries/AddressAliasHelper.sol/AddressAliasHelper.json +2 -2
  135. package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.dbg.json +1 -1
  136. package/build/contracts/src/libraries/AdminFallbackProxy.sol/AdminFallbackProxy.json +2 -2
  137. package/build/contracts/src/libraries/AdminFallbackProxy.sol/DoubleLogicERC1967Upgrade.dbg.json +1 -1
  138. package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.dbg.json +1 -1
  139. package/build/contracts/src/libraries/ArbitrumChecker.sol/ArbitrumChecker.json +2 -2
  140. package/build/contracts/src/libraries/CallerChecker.sol/CallerChecker.dbg.json +4 -0
  141. package/build/contracts/src/{challenge/ChallengeLib.sol/ChallengeLib.json → libraries/CallerChecker.sol/CallerChecker.json} +4 -4
  142. package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.dbg.json +1 -1
  143. package/build/contracts/src/libraries/CryptographyPrimitives.sol/CryptographyPrimitives.json +2 -2
  144. package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.dbg.json +1 -1
  145. package/build/contracts/src/libraries/DecimalsConverterHelper.sol/DecimalsConverterHelper.json +2 -2
  146. package/build/contracts/src/libraries/DelegateCallAware.sol/DelegateCallAware.dbg.json +1 -1
  147. package/build/contracts/src/libraries/DoubleLogicUUPSUpgradeable.sol/DoubleLogicUUPSUpgradeable.dbg.json +1 -1
  148. package/build/contracts/src/libraries/GasRefundEnabled.sol/GasRefundEnabled.dbg.json +1 -1
  149. package/build/contracts/src/libraries/IGasRefunder.sol/IGasRefunder.dbg.json +1 -1
  150. package/build/contracts/src/libraries/IReader4844.sol/IReader4844.dbg.json +1 -1
  151. package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.dbg.json +1 -1
  152. package/build/contracts/src/libraries/MerkleLib.sol/MerkleLib.json +2 -2
  153. package/build/contracts/src/libraries/UUPSNotUpgradeable.sol/UUPSNotUpgradeable.dbg.json +1 -1
  154. package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.dbg.json +1 -1
  155. package/build/contracts/src/mocks/Benchmarks.sol/Benchmarks.json +2 -2
  156. package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.dbg.json +1 -1
  157. package/build/contracts/src/mocks/BridgeStub.sol/BridgeStub.json +8 -8
  158. package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.dbg.json +1 -1
  159. package/build/contracts/src/mocks/BridgeUnproxied.sol/BridgeUnproxied.json +15 -2
  160. package/build/contracts/src/mocks/CreateTest.sol/CreateTest.dbg.json +1 -1
  161. package/build/contracts/src/mocks/CreateTest.sol/CreateTest.json +2 -2
  162. package/build/contracts/src/mocks/HostioTest.sol/HostioTest.dbg.json +1 -1
  163. package/build/contracts/src/mocks/HostioTest.sol/HostioTest.json +2 -2
  164. package/build/contracts/src/mocks/InboxStub.sol/InboxStub.dbg.json +1 -1
  165. package/build/contracts/src/mocks/InboxStub.sol/InboxStub.json +2 -2
  166. package/build/contracts/src/mocks/MerkleTreeAccess.sol/MerkleTreeAccess.dbg.json +4 -0
  167. package/build/contracts/src/mocks/MerkleTreeAccess.sol/MerkleTreeAccess.json +227 -0
  168. package/build/contracts/src/mocks/MockRollupEventInbox.sol/MockRollupEventInbox.dbg.json +4 -0
  169. package/build/contracts/src/mocks/MockRollupEventInbox.sol/MockRollupEventInbox.json +133 -0
  170. package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.dbg.json +1 -1
  171. package/build/contracts/src/mocks/MultiCallTest.sol/MultiCallTest.json +2 -2
  172. package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.dbg.json +1 -1
  173. package/build/contracts/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol/PendingBlkTimeAndNrAdvanceCheck.json +2 -2
  174. package/build/contracts/src/mocks/Program.sol/ProgramTest.dbg.json +1 -1
  175. package/build/contracts/src/mocks/Program.sol/ProgramTest.json +2 -2
  176. package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.dbg.json +1 -1
  177. package/build/contracts/src/mocks/ProxyAdminForBinding.sol/ProxyAdminForBinding.json +2 -2
  178. package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.dbg.json +1 -1
  179. package/build/contracts/src/mocks/SdkStorage.sol/SdkStorage.json +2 -2
  180. package/build/contracts/src/mocks/SequencerInboxBlobMock.sol/SequencerInboxBlobMock.dbg.json +4 -0
  181. package/build/contracts/src/mocks/SequencerInboxBlobMock.sol/SequencerInboxBlobMock.json +1632 -0
  182. package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.dbg.json +1 -1
  183. package/build/contracts/src/mocks/SequencerInboxStub.sol/SequencerInboxStub.json +566 -9
  184. package/build/contracts/src/mocks/Simple.sol/Simple.dbg.json +1 -1
  185. package/build/contracts/src/mocks/Simple.sol/Simple.json +2 -2
  186. package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.dbg.json +1 -1
  187. package/build/contracts/src/mocks/SimpleCacheManager.sol/SimpleCacheManager.json +2 -2
  188. package/build/contracts/src/mocks/SimpleOneStepProofEntry.sol/SimpleOneStepProofEntry.dbg.json +4 -0
  189. package/build/contracts/src/mocks/SimpleOneStepProofEntry.sol/SimpleOneStepProofEntry.json +142 -0
  190. package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.dbg.json +1 -1
  191. package/build/contracts/src/mocks/SimpleProxy.sol/SimpleProxy.json +2 -2
  192. package/build/contracts/src/mocks/TestWETH9.sol/IWETH9.dbg.json +4 -0
  193. package/build/contracts/src/mocks/TestWETH9.sol/IWETH9.json +31 -0
  194. package/build/contracts/src/mocks/TestWETH9.sol/TestWETH9.dbg.json +4 -0
  195. package/build/contracts/src/mocks/TestWETH9.sol/TestWETH9.json +317 -0
  196. package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.dbg.json +1 -1
  197. package/build/contracts/src/mocks/UpgradeExecutorMock.sol/UpgradeExecutorMock.json +15 -2
  198. package/build/contracts/src/node-interface/NodeInterface.sol/NodeInterface.dbg.json +1 -1
  199. package/build/contracts/src/node-interface/NodeInterfaceDebug.sol/NodeInterfaceDebug.dbg.json +1 -1
  200. package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.dbg.json +1 -1
  201. package/build/contracts/src/osp/HashProofHelper.sol/HashProofHelper.json +2 -2
  202. package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.dbg.json +1 -1
  203. package/build/contracts/src/osp/IOneStepProofEntry.sol/IOneStepProofEntry.json +33 -9
  204. package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.dbg.json +1 -1
  205. package/build/contracts/src/osp/IOneStepProofEntry.sol/OneStepProofEntryLib.json +2 -2
  206. package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.dbg.json +1 -1
  207. package/build/contracts/src/osp/IOneStepProver.sol/IOneStepProver.json +5 -0
  208. package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.dbg.json +1 -1
  209. package/build/contracts/src/osp/OneStepProofEntry.sol/OneStepProofEntry.json +35 -11
  210. package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.dbg.json +1 -1
  211. package/build/contracts/src/osp/OneStepProver0.sol/OneStepProver0.json +7 -2
  212. package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.dbg.json +1 -1
  213. package/build/contracts/src/osp/OneStepProverHostIo.sol/OneStepProverHostIo.json +7 -2
  214. package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.dbg.json +1 -1
  215. package/build/contracts/src/osp/OneStepProverMath.sol/OneStepProverMath.json +7 -2
  216. package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.dbg.json +1 -1
  217. package/build/contracts/src/osp/OneStepProverMemory.sol/OneStepProverMemory.json +7 -2
  218. package/build/contracts/src/precompiles/ArbAddressTable.sol/ArbAddressTable.dbg.json +1 -1
  219. package/build/contracts/src/precompiles/ArbAggregator.sol/ArbAggregator.dbg.json +1 -1
  220. package/build/contracts/src/precompiles/ArbBLS.sol/ArbBLS.dbg.json +1 -1
  221. package/build/contracts/src/precompiles/ArbDebug.sol/ArbDebug.dbg.json +1 -1
  222. package/build/contracts/src/precompiles/ArbFunctionTable.sol/ArbFunctionTable.dbg.json +1 -1
  223. package/build/contracts/src/precompiles/ArbGasInfo.sol/ArbGasInfo.dbg.json +1 -1
  224. package/build/contracts/src/precompiles/ArbInfo.sol/ArbInfo.dbg.json +1 -1
  225. package/build/contracts/src/precompiles/ArbOwner.sol/ArbOwner.dbg.json +1 -1
  226. package/build/contracts/src/precompiles/ArbOwnerPublic.sol/ArbOwnerPublic.dbg.json +1 -1
  227. package/build/contracts/src/precompiles/ArbRetryableTx.sol/ArbRetryableTx.dbg.json +1 -1
  228. package/build/contracts/src/precompiles/ArbStatistics.sol/ArbStatistics.dbg.json +1 -1
  229. package/build/contracts/src/precompiles/ArbSys.sol/ArbSys.dbg.json +1 -1
  230. package/build/contracts/src/precompiles/ArbWasm.sol/ArbWasm.dbg.json +1 -1
  231. package/build/contracts/src/precompiles/ArbWasmCache.sol/ArbWasmCache.dbg.json +1 -1
  232. package/build/contracts/src/precompiles/ArbosActs.sol/ArbosActs.dbg.json +1 -1
  233. package/build/contracts/src/precompiles/ArbosTest.sol/ArbosTest.dbg.json +1 -1
  234. package/build/contracts/src/rollup/AbsRollupEventInbox.sol/AbsRollupEventInbox.dbg.json +1 -1
  235. package/build/contracts/src/rollup/Assertion.sol/AssertionNodeLib.dbg.json +4 -0
  236. package/build/contracts/src/rollup/{Node.sol/NodeLib.json → Assertion.sol/AssertionNodeLib.json} +4 -4
  237. package/build/contracts/src/rollup/AssertionState.sol/AssertionStateLib.dbg.json +4 -0
  238. package/build/contracts/src/{express-lane-auction/Balance.sol/BalanceLib.json → rollup/AssertionState.sol/AssertionStateLib.json} +4 -4
  239. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.dbg.json +4 -0
  240. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/BOLDUpgradeAction.json +807 -0
  241. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.dbg.json +4 -0
  242. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ConstantArrayStorage.json +35 -0
  243. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollup.dbg.json +4 -0
  244. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollup.json +361 -0
  245. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollupAdmin.dbg.json +4 -0
  246. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/IOldRollupAdmin.json +38 -0
  247. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ISeqInboxPostUpgradeInit.dbg.json +4 -0
  248. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/ISeqInboxPostUpgradeInit.json +41 -0
  249. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/RollupReader.dbg.json +4 -0
  250. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/RollupReader.json +385 -0
  251. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.dbg.json +4 -0
  252. package/build/contracts/src/rollup/BOLDUpgradeAction.sol/StateHashPreImageLookup.json +203 -0
  253. package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.dbg.json +1 -1
  254. package/build/contracts/src/rollup/BridgeCreator.sol/BridgeCreator.json +62 -10
  255. package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.dbg.json +1 -1
  256. package/build/contracts/src/rollup/DeployHelper.sol/DeployHelper.json +2 -2
  257. package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.dbg.json +1 -1
  258. package/build/contracts/src/rollup/ERC20RollupEventInbox.sol/ERC20RollupEventInbox.json +2 -2
  259. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.dbg.json +1 -1
  260. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/FactoryDeployerHelper.json +2 -2
  261. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IDeployHelper.dbg.json +1 -1
  262. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20.dbg.json +1 -1
  263. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IERC20Bridge.dbg.json +1 -1
  264. package/build/contracts/src/rollup/FactoryDeployerHelper.sol/IInboxBase.dbg.json +1 -1
  265. package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.dbg.json +1 -1
  266. package/build/contracts/src/rollup/IRollupAdmin.sol/IRollupAdmin.json +473 -99
  267. package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.dbg.json +1 -1
  268. package/build/contracts/src/rollup/IRollupCore.sol/IRollupCore.json +315 -221
  269. package/build/contracts/src/rollup/IRollupEventInbox.sol/IRollupEventInbox.dbg.json +1 -1
  270. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.dbg.json +1 -1
  271. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUser.json +678 -499
  272. package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.dbg.json +1 -1
  273. package/build/contracts/src/rollup/RollupAdminLogic.sol/RollupAdminLogic.json +806 -435
  274. package/build/contracts/src/rollup/RollupCore.sol/RollupCore.dbg.json +1 -1
  275. package/build/contracts/src/rollup/RollupCore.sol/RollupCore.json +323 -235
  276. package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.dbg.json +1 -1
  277. package/build/contracts/src/rollup/RollupCreator.sol/RollupCreator.json +98 -36
  278. package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.dbg.json +1 -1
  279. package/build/contracts/src/rollup/RollupEventInbox.sol/RollupEventInbox.json +2 -2
  280. package/build/contracts/src/rollup/RollupLib.sol/RollupLib.dbg.json +1 -1
  281. package/build/contracts/src/rollup/RollupLib.sol/RollupLib.json +2 -2
  282. package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.dbg.json +1 -1
  283. package/build/contracts/src/rollup/RollupProxy.sol/RollupProxy.json +97 -16
  284. package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.dbg.json +1 -1
  285. package/build/contracts/src/rollup/RollupUserLogic.sol/RollupUserLogic.json +924 -535
  286. package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.dbg.json +1 -1
  287. package/build/contracts/src/rollup/ValidatorWallet.sol/ValidatorWallet.json +15 -43
  288. package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.dbg.json +1 -1
  289. package/build/contracts/src/rollup/ValidatorWalletCreator.sol/ValidatorWalletCreator.json +2 -2
  290. package/build/contracts/src/state/Deserialize.sol/Deserialize.dbg.json +1 -1
  291. package/build/contracts/src/state/Deserialize.sol/Deserialize.json +2 -2
  292. package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.dbg.json +1 -1
  293. package/build/contracts/src/state/GlobalState.sol/GlobalStateLib.json +2 -2
  294. package/build/contracts/src/state/Instructions.sol/Instructions.dbg.json +1 -1
  295. package/build/contracts/src/state/Instructions.sol/Instructions.json +2 -2
  296. package/build/contracts/src/state/Machine.sol/MachineLib.dbg.json +1 -1
  297. package/build/contracts/src/state/Machine.sol/MachineLib.json +2 -2
  298. package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.dbg.json +1 -1
  299. package/build/contracts/src/state/MerkleProof.sol/MerkleProofLib.json +2 -2
  300. package/build/contracts/src/state/Module.sol/ModuleLib.dbg.json +1 -1
  301. package/build/contracts/src/state/Module.sol/ModuleLib.json +2 -2
  302. package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.dbg.json +1 -1
  303. package/build/contracts/src/state/ModuleMemory.sol/ModuleMemoryLib.json +2 -2
  304. package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.dbg.json +1 -1
  305. package/build/contracts/src/state/ModuleMemoryCompact.sol/ModuleMemoryCompactLib.json +2 -2
  306. package/build/contracts/src/state/MultiStack.sol/MultiStackLib.dbg.json +1 -1
  307. package/build/contracts/src/state/MultiStack.sol/MultiStackLib.json +2 -2
  308. package/build/contracts/src/state/PcArray.sol/PcArrayLib.dbg.json +1 -1
  309. package/build/contracts/src/state/PcArray.sol/PcArrayLib.json +2 -2
  310. package/build/contracts/src/state/StackFrame.sol/StackFrameLib.dbg.json +1 -1
  311. package/build/contracts/src/state/StackFrame.sol/StackFrameLib.json +2 -2
  312. package/build/contracts/src/state/Value.sol/ValueLib.dbg.json +1 -1
  313. package/build/contracts/src/state/Value.sol/ValueLib.json +2 -2
  314. package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.dbg.json +1 -1
  315. package/build/contracts/src/state/ValueArray.sol/ValueArrayLib.json +2 -2
  316. package/build/contracts/src/state/ValueStack.sol/ValueStackLib.dbg.json +1 -1
  317. package/build/contracts/src/state/ValueStack.sol/ValueStackLib.json +2 -2
  318. package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.dbg.json +1 -1
  319. package/build/contracts/src/test-helpers/BridgeTester.sol/BridgeTester.json +15 -2
  320. package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.dbg.json +1 -1
  321. package/build/contracts/src/test-helpers/CryptographyPrimitivesTester.sol/CryptographyPrimitivesTester.json +2 -2
  322. package/build/contracts/src/test-helpers/EthVault.sol/EthVault.dbg.json +1 -1
  323. package/build/contracts/src/test-helpers/EthVault.sol/EthVault.json +2 -2
  324. package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.dbg.json +1 -1
  325. package/build/contracts/src/test-helpers/MessageTester.sol/MessageTester.json +2 -2
  326. package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.dbg.json +1 -1
  327. package/build/contracts/src/test-helpers/OutboxWithoutOptTester.sol/OutboxWithoutOptTester.json +2 -2
  328. package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.dbg.json +1 -1
  329. package/build/contracts/src/test-helpers/RollupMock.sol/RollupMock.json +2 -15
  330. package/build/contracts/src/test-helpers/TestToken.sol/TestToken.dbg.json +1 -1
  331. package/build/contracts/src/test-helpers/TestToken.sol/TestToken.json +2 -2
  332. package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.dbg.json +1 -1
  333. package/build/contracts/src/test-helpers/ValueArrayTester.sol/ValueArrayTester.json +2 -2
  334. package/out/yul/Reader4844.yul/Reader4844.json +1 -1
  335. package/package.json +11 -4
  336. package/src/assertionStakingPool/AbsBoldStakingPool.sol +66 -0
  337. package/src/assertionStakingPool/AssertionStakingPool.sol +70 -0
  338. package/src/assertionStakingPool/AssertionStakingPoolCreator.sol +35 -0
  339. package/src/assertionStakingPool/EdgeStakingPool.sol +57 -0
  340. package/src/assertionStakingPool/EdgeStakingPoolCreator.sol +34 -0
  341. package/src/assertionStakingPool/StakingPoolCreatorUtils.sol +25 -0
  342. package/src/assertionStakingPool/interfaces/IAbsBoldStakingPool.sol +41 -0
  343. package/src/assertionStakingPool/interfaces/IAssertionStakingPool.sol +36 -0
  344. package/src/assertionStakingPool/interfaces/IAssertionStakingPoolCreator.sol +31 -0
  345. package/src/assertionStakingPool/interfaces/IEdgeStakingPool.sol +27 -0
  346. package/src/assertionStakingPool/interfaces/IEdgeStakingPoolCreator.sol +28 -0
  347. package/src/bridge/AbsBridge.sol +38 -48
  348. package/src/bridge/AbsInbox.sol +89 -92
  349. package/src/bridge/AbsOutbox.sol +23 -37
  350. package/src/bridge/Bridge.sol +6 -4
  351. package/src/bridge/DelayBuffer.sol +123 -0
  352. package/src/bridge/DelayBufferTypes.sol +38 -0
  353. package/src/bridge/ERC20Bridge.sol +8 -4
  354. package/src/bridge/ERC20Inbox.sol +46 -53
  355. package/src/bridge/ERC20Outbox.sol +7 -3
  356. package/src/bridge/GasRefunder.sol +38 -24
  357. package/src/bridge/IBridge.sol +30 -21
  358. package/src/bridge/IERC20Bridge.sol +1 -1
  359. package/src/bridge/IERC20Inbox.sol +4 -2
  360. package/src/bridge/IEthBridge.sol +4 -2
  361. package/src/bridge/IInbox.sol +4 -2
  362. package/src/bridge/IInboxBase.sol +16 -8
  363. package/src/bridge/IOutbox.sol +13 -8
  364. package/src/bridge/ISequencerInbox.sol +118 -13
  365. package/src/bridge/Inbox.sol +134 -151
  366. package/src/bridge/Messages.sol +48 -18
  367. package/src/bridge/Outbox.sol +6 -2
  368. package/src/bridge/SequencerInbox.sol +343 -279
  369. package/src/chain/CacheManager.sol +49 -18
  370. package/src/challengeV2/EdgeChallengeManager.sol +559 -0
  371. package/src/challengeV2/IAssertionChain.sol +39 -0
  372. package/src/challengeV2/IEdgeChallengeManager.sol +233 -0
  373. package/src/challengeV2/libraries/ArrayUtilsLib.sol +61 -0
  374. package/src/challengeV2/libraries/ChallengeEdgeLib.sol +277 -0
  375. package/src/challengeV2/libraries/ChallengeErrors.sol +108 -0
  376. package/src/challengeV2/libraries/EdgeChallengeManagerLib.sol +819 -0
  377. package/src/challengeV2/libraries/Enums.sol +26 -0
  378. package/src/challengeV2/libraries/MerkleTreeAccumulatorLib.sol +390 -0
  379. package/src/challengeV2/libraries/Structs.sol +176 -0
  380. package/src/challengeV2/libraries/UintUtilsLib.sol +74 -0
  381. package/src/libraries/AddressAliasHelper.sol +6 -2
  382. package/src/libraries/AdminFallbackProxy.sol +8 -4
  383. package/src/libraries/ArbitrumChecker.sol +3 -4
  384. package/src/libraries/CallerChecker.sol +18 -0
  385. package/src/libraries/CryptographyPrimitives.sol +39 -46
  386. package/src/libraries/DecimalsConverterHelper.sol +2 -4
  387. package/src/libraries/DoubleLogicUUPSUpgradeable.sol +10 -7
  388. package/src/libraries/Error.sol +21 -3
  389. package/src/libraries/GasRefundEnabled.sol +5 -6
  390. package/src/libraries/MerkleLib.sol +6 -5
  391. package/src/libraries/UUPSNotUpgradeable.sol +2 -4
  392. package/src/mocks/BridgeStub.sol +50 -48
  393. package/src/mocks/CreateTest.sol +3 -1
  394. package/src/mocks/HostioTest.sol +20 -16
  395. package/src/mocks/InboxStub.sol +22 -17
  396. package/src/mocks/MerkleTreeAccess.sol +72 -0
  397. package/src/mocks/MockRollupEventInbox.sol +59 -0
  398. package/src/mocks/MultiCallTest.sol +3 -1
  399. package/src/mocks/PendingBlkTimeAndNrAdvanceCheck.sol +3 -1
  400. package/src/mocks/Program.sol +9 -7
  401. package/src/mocks/SequencerInboxBlobMock.sol +38 -0
  402. package/src/mocks/SequencerInboxStub.sol +9 -12
  403. package/src/mocks/Simple.sol +13 -25
  404. package/src/mocks/SimpleCacheManager.sol +10 -3
  405. package/src/mocks/SimpleOneStepProofEntry.sol +60 -0
  406. package/src/mocks/SimpleProxy.sol +3 -1
  407. package/src/mocks/TestWETH9.sol +30 -0
  408. package/src/mocks/UpgradeExecutorMock.sol +10 -17
  409. package/src/node-interface/NodeInterface.sol +23 -22
  410. package/src/node-interface/NodeInterfaceDebug.sol +5 -3
  411. package/src/osp/HashProofHelper.sol +9 -10
  412. package/src/osp/IOneStepProofEntry.sol +14 -9
  413. package/src/osp/IOneStepProver.sol +1 -0
  414. package/src/osp/OneStepProofEntry.sol +63 -54
  415. package/src/osp/OneStepProver0.sol +14 -27
  416. package/src/osp/OneStepProverHostIo.sol +31 -58
  417. package/src/osp/OneStepProverMath.sol +15 -23
  418. package/src/osp/OneStepProverMemory.sol +9 -23
  419. package/src/precompiles/ArbAddressTable.sol +19 -9
  420. package/src/precompiles/ArbAggregator.sol +12 -4
  421. package/src/precompiles/ArbBLS.sol +1 -3
  422. package/src/precompiles/ArbDebug.sol +5 -11
  423. package/src/precompiles/ArbFunctionTable.sol +7 -10
  424. package/src/precompiles/ArbGasInfo.sol +9 -43
  425. package/src/precompiles/ArbInfo.sol +6 -2
  426. package/src/precompiles/ArbOwner.sol +101 -34
  427. package/src/precompiles/ArbOwnerPublic.sol +6 -2
  428. package/src/precompiles/ArbRetryableTx.sol +15 -5
  429. package/src/precompiles/ArbStatistics.sol +1 -8
  430. package/src/precompiles/ArbSys.sol +16 -18
  431. package/src/precompiles/ArbWasm.sol +24 -14
  432. package/src/precompiles/ArbWasmCache.sol +15 -5
  433. package/src/precompiles/ArbosTest.sol +3 -1
  434. package/src/rollup/AbsRollupEventInbox.sol +15 -16
  435. package/src/rollup/Assertion.sol +100 -0
  436. package/src/rollup/AssertionState.sol +29 -0
  437. package/src/rollup/BOLDUpgradeAction.sol +631 -0
  438. package/src/rollup/BridgeCreator.sol +42 -15
  439. package/src/rollup/Config.sol +15 -7
  440. package/src/rollup/DeployHelper.sol +12 -31
  441. package/src/rollup/ERC20RollupEventInbox.sol +8 -9
  442. package/src/rollup/FactoryDeployerHelper.sol +8 -10
  443. package/src/rollup/IRollupAdmin.sol +127 -45
  444. package/src/rollup/IRollupCore.sol +64 -84
  445. package/src/rollup/IRollupEventInbox.sol +3 -1
  446. package/src/rollup/IRollupLogic.sol +35 -72
  447. package/src/rollup/RollupAdminLogic.sol +224 -203
  448. package/src/rollup/RollupCore.sol +407 -428
  449. package/src/rollup/RollupCreator.sol +84 -71
  450. package/src/rollup/RollupEventInbox.sol +7 -7
  451. package/src/rollup/RollupLib.sol +50 -86
  452. package/src/rollup/RollupProxy.sol +8 -12
  453. package/src/rollup/RollupUserLogic.sol +279 -644
  454. package/src/rollup/ValidatorUtils.sol +0 -242
  455. package/src/rollup/ValidatorWallet.sol +22 -38
  456. package/src/rollup/ValidatorWalletCreator.sol +8 -8
  457. package/src/state/Deserialize.sol +74 -96
  458. package/src/state/GlobalState.sol +74 -20
  459. package/src/state/Instructions.sol +4 -3
  460. package/src/state/Machine.sol +18 -19
  461. package/src/state/Module.sol +14 -13
  462. package/src/state/ModuleMemory.sol +6 -25
  463. package/src/state/ModuleMemoryCompact.sol +3 -1
  464. package/src/state/MultiStack.sol +16 -20
  465. package/src/state/PcArray.sol +7 -7
  466. package/src/state/StackFrame.sol +21 -14
  467. package/src/state/Value.sol +18 -6
  468. package/src/state/ValueArray.sol +7 -7
  469. package/src/state/ValueStack.sol +9 -3
  470. package/src/test-helpers/BridgeTester.sol +32 -42
  471. package/src/test-helpers/CryptographyPrimitivesTester.sol +12 -13
  472. package/src/test-helpers/EthVault.sol +4 -2
  473. package/src/test-helpers/InterfaceCompatibilityTester.sol +1 -1
  474. package/src/test-helpers/MessageTester.sol +3 -10
  475. package/src/test-helpers/OutboxWithoutOptTester.sol +12 -19
  476. package/src/test-helpers/RollupMock.sol +3 -7
  477. package/src/test-helpers/TestToken.sol +4 -2
  478. package/build/contracts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.dbg.json +0 -4
  479. package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlEnumerableUpgradeable.sol/AccessControlEnumerableUpgradeable.dbg.json +0 -4
  480. package/build/contracts/@openzeppelin/contracts-upgradeable/access/AccessControlEnumerableUpgradeable.sol/AccessControlEnumerableUpgradeable.json +0 -258
  481. package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlEnumerableUpgradeable.sol/IAccessControlEnumerableUpgradeable.dbg.json +0 -4
  482. package/build/contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlEnumerableUpgradeable.sol/IAccessControlEnumerableUpgradeable.json +0 -226
  483. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol/ERC20Upgradeable.dbg.json +0 -4
  484. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol/ERC20Upgradeable.json +0 -281
  485. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +0 -4
  486. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol/ERC20BurnableUpgradeable.dbg.json +0 -4
  487. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol/ERC20BurnableUpgradeable.json +0 -312
  488. package/build/contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.sol/IERC20MetadataUpgradeable.dbg.json +0 -4
  489. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/ECDSAUpgradeable.sol/ECDSAUpgradeable.dbg.json +0 -4
  490. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/ECDSAUpgradeable.sol/ECDSAUpgradeable.json +0 -10
  491. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/draft-EIP712Upgradeable.sol/EIP712Upgradeable.dbg.json +0 -4
  492. package/build/contracts/@openzeppelin/contracts-upgradeable/utils/cryptography/draft-EIP712Upgradeable.sol/EIP712Upgradeable.json +0 -10
  493. package/build/contracts/src/challenge/ChallengeLib.sol/ChallengeLib.dbg.json +0 -4
  494. package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.dbg.json +0 -4
  495. package/build/contracts/src/challenge/ChallengeManager.sol/ChallengeManager.json +0 -746
  496. package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.dbg.json +0 -4
  497. package/build/contracts/src/challenge/IChallengeManager.sol/IChallengeManager.json +0 -441
  498. package/build/contracts/src/challenge/IChallengeResultReceiver.sol/IChallengeResultReceiver.dbg.json +0 -4
  499. package/build/contracts/src/challenge/IChallengeResultReceiver.sol/IChallengeResultReceiver.json +0 -34
  500. package/build/contracts/src/express-lane-auction/Balance.sol/BalanceLib.dbg.json +0 -4
  501. package/build/contracts/src/express-lane-auction/Burner.sol/Burner.dbg.json +0 -4
  502. package/build/contracts/src/express-lane-auction/Burner.sol/Burner.json +0 -47
  503. package/build/contracts/src/express-lane-auction/ELCRound.sol/LatestELCRoundsLib.dbg.json +0 -4
  504. package/build/contracts/src/express-lane-auction/ExpressLaneAuction.sol/ExpressLaneAuction.dbg.json +0 -4
  505. package/build/contracts/src/express-lane-auction/ExpressLaneAuction.sol/ExpressLaneAuction.json +0 -1588
  506. package/build/contracts/src/express-lane-auction/IExpressLaneAuction.sol/IExpressLaneAuction.dbg.json +0 -4
  507. package/build/contracts/src/express-lane-auction/IExpressLaneAuction.sol/IExpressLaneAuction.json +0 -1296
  508. package/build/contracts/src/express-lane-auction/RoundTimingInfo.sol/RoundTimingInfoLib.dbg.json +0 -4
  509. package/build/contracts/src/express-lane-auction/RoundTimingInfo.sol/RoundTimingInfoLib.json +0 -10
  510. package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.dbg.json +0 -4
  511. package/build/contracts/src/mocks/MockResultReceiver.sol/MockResultReceiver.json +0 -188
  512. package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.dbg.json +0 -4
  513. package/build/contracts/src/mocks/SingleExecutionChallenge.sol/SingleExecutionChallenge.json +0 -797
  514. package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.dbg.json +0 -4
  515. package/build/contracts/src/mocks/TimedOutChallengeManager.sol/TimedOutChallengeManager.json +0 -746
  516. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.dbg.json +0 -4
  517. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserAbs.json +0 -1332
  518. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.dbg.json +0 -4
  519. package/build/contracts/src/rollup/IRollupLogic.sol/IRollupUserERC20.json +0 -1466
  520. package/build/contracts/src/rollup/Node.sol/NodeLib.dbg.json +0 -4
  521. package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.dbg.json +0 -4
  522. package/build/contracts/src/rollup/RollupUserLogic.sol/AbsRollupUserLogic.json +0 -1614
  523. package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.dbg.json +0 -4
  524. package/build/contracts/src/rollup/RollupUserLogic.sol/ERC20RollupUserLogic.json +0 -1748
  525. package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.dbg.json +0 -4
  526. package/build/contracts/src/rollup/ValidatorUtils.sol/ValidatorUtils.json +0 -379
  527. package/src/challenge/ChallengeLib.sol +0 -88
  528. package/src/challenge/ChallengeManager.sol +0 -375
  529. package/src/challenge/IChallengeManager.sol +0 -86
  530. package/src/challenge/IChallengeResultReceiver.sol +0 -13
  531. package/src/express-lane-auction/Balance.sol +0 -142
  532. package/src/express-lane-auction/Burner.sol +0 -25
  533. package/src/express-lane-auction/ELCRound.sol +0 -73
  534. package/src/express-lane-auction/Errors.sol +0 -31
  535. package/src/express-lane-auction/ExpressLaneAuction.sol +0 -565
  536. package/src/express-lane-auction/IExpressLaneAuction.sol +0 -421
  537. package/src/express-lane-auction/RoundTimingInfo.sol +0 -115
  538. package/src/mocks/MockResultReceiver.sol +0 -59
  539. package/src/mocks/SingleExecutionChallenge.sol +0 -41
  540. package/src/mocks/TimedOutChallengeManager.sol +0 -13
  541. package/src/rollup/Node.sol +0 -113
@@ -150,6 +150,19 @@
150
150
  "name": "InboxToggle",
151
151
  "type": "event"
152
152
  },
153
+ {
154
+ "anonymous": false,
155
+ "inputs": [
156
+ {
157
+ "indexed": false,
158
+ "internalType": "uint8",
159
+ "name": "version",
160
+ "type": "uint8"
161
+ }
162
+ ],
163
+ "name": "Initialized",
164
+ "type": "event"
165
+ },
153
166
  {
154
167
  "anonymous": false,
155
168
  "inputs": [
@@ -687,8 +700,8 @@
687
700
  "type": "function"
688
701
  }
689
702
  ],
690
- "bytecode": "0x60a060405230608052600060335534801561001957600080fd5b50600580546001600160a01b03199081166001600160a01b0317909155600880549091163317905560805161183961005c6000396000610dd901526118396000f3fe60806040526004361061014a5760003560e01c80639e5d4c49116100b6578063d5719dc21161006f578063d5719dc2146103b4578063e76f5c8d146103d4578063e77145f4146101e3578063eca067ad146103f4578063ee35f32714610409578063f81ff3b31461042957600080fd5b80639e5d4c49146102f1578063ab5d89431461031f578063ae60bd1314610334578063c4d66de814610354578063cb23bcb514610374578063cee3d7281461039457600080fd5b80637a88b107116101085780637a88b1071461021b57806386598a561461023b5780638db5993b1461027b578063919cc7061461028e578063927dcfab146102ae578063945e1147146102c457600080fd5b806284120c1461014f57806316bf557914610173578063413b35bd1461019357806347fb24c5146101c35780634f61f850146101e55780635fca4a1614610205575b600080fd5b34801561015b57600080fd5b506007545b6040519081526020015b60405180910390f35b34801561017f57600080fd5b5061016061018e3660046114ed565b610449565b34801561019f57600080fd5b506101b36101ae36600461151b565b61046a565b604051901515815260200161016a565b3480156101cf57600080fd5b506101e36101de366004611538565b61048b565b005b3480156101f157600080fd5b506101e361020036600461151b565b610781565b34801561021157600080fd5b50610160600a5481565b34801561022757600080fd5b50610160610236366004611576565b6108a6565b34801561024757600080fd5b5061025b6102563660046115a2565b6108ec565b60408051948552602085019390935291830152606082015260800161016a565b6101606102893660046115d4565b610a53565b34801561029a57600080fd5b506101e36102a936600461151b565b610a69565b3480156102ba57600080fd5b5061016060335481565b3480156102d057600080fd5b506102e46102df3660046114ed565b610b83565b60405161016a919061161b565b3480156102fd57600080fd5b5061031161030c36600461162f565b610bad565b60405161016a9291906116e4565b34801561032b57600080fd5b506102e4610ce2565b34801561034057600080fd5b506101b361034f36600461151b565b610d08565b34801561036057600080fd5b506101e361036f36600461151b565b610d2a565b34801561038057600080fd5b506008546102e4906001600160a01b031681565b3480156103a057600080fd5b506101e36103af366004611538565b610e9e565b3480156103c057600080fd5b506101606103cf3660046114ed565b6111b7565b3480156103e057600080fd5b506102e46103ef3660046114ed565b6111c7565b34801561040057600080fd5b50600654610160565b34801561041557600080fd5b506009546102e4906001600160a01b031681565b34801561043557600080fd5b506101e36104443660046114ed565b6111d7565b6007818154811061045957600080fd5b600091825260209091200154905081565b6001600160a01b031660009081526002602052604090206001015460ff1690565b6008546001600160a01b031633146105635760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b1580156104e257600080fd5b505afa1580156104f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051a9190611720565b9050336001600160a01b0382161461056157600854604051630739600760e01b81526105589133916001600160a01b0390911690849060040161173d565b60405180910390fd5b505b6001600160a01b0382166000818152600160208181526040928390209182015492518515158152919360ff90931692917f6675ce8882cb71637de5903a193d218cc0544be9c0650cb83e0955f6aa2bf521910160405180910390a282151581151514156105d05750505050565b821561065e57604080518082018252600380548252600160208084018281526001600160a01b038a166000818152928490529582209451855551938201805460ff1916941515949094179093558154908101825591527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b031916909117905561077a565b6003805461066e90600190611760565b8154811061067e5761067e611785565b6000918252602090912001548254600380546001600160a01b039093169290919081106106ad576106ad611785565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081600001546001600060038560000154815481106106fb576106fb611785565b60009182526020808320909101546001600160a01b0316835282019290925260400190205560038054806107315761073161179b565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b03861682526001908190526040822091825501805460ff191690555b50505b5050565b6008546001600160a01b031633146108505760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b1580156107d857600080fd5b505afa1580156107ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108109190611720565b9050336001600160a01b0382161461084e57600854604051630739600760e01b81526105589133916001600160a01b0390911690849060040161173d565b505b600980546001600160a01b0319166001600160a01b0383161790556040517f8c1e6003ed33ca6748d4ad3dd4ecc949065c89dceb31fdf546a5289202763c6a9061089b90839061161b565b60405180910390a150565b6009546000906001600160a01b031633146108d6573360405163223e13c160e21b8152600401610558919061161b565b6108e5600d84434248876112ab565b9392505050565b6009546000908190819081906001600160a01b03163314610922573360405163223e13c160e21b8152600401610558919061161b565b85600a541415801561093357508515155b80156109405750600a5415155b1561096c57600a5460405163e2051feb60e01b8152600481019190915260248101879052604401610558565b600a859055600754935083156109aa576007805461098c90600190611760565b8154811061099c5761099c611785565b906000526020600020015492505b86156109db5760066109bd600189611760565b815481106109cd576109cd611785565b906000526020600020015491505b60408051602081018590529081018990526060810183905260800160408051601f198184030181529190528051602090910120600780546001810182556000919091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688018190559398929750909550919350915050565b6000610a618484843461143a565b949350505050565b6008546001600160a01b03163314610b385760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610ac057600080fd5b505afa158015610ad4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af89190611720565b9050336001600160a01b03821614610b3657600854604051630739600760e01b81526105589133916001600160a01b0390911690849060040161173d565b505b600880546001600160a01b0319166001600160a01b0383161790556040517fae1f5aa15f6ff844896347ceca2a3c24c8d3a27785efdeacd581a0a95172784a9061089b90839061161b565b60048181548110610b9357600080fd5b6000918252602090912001546001600160a01b0316905081565b60006060610bba3361046a565b610bd957336040516332ea82ab60e01b8152600401610558919061161b565b8215801590610bf057506001600160a01b0386163b155b15610c10578560405163b5cf5b8f60e01b8152600401610558919061161b565b600580546001600160a01b031981163317909155604080516020601f87018190048102820181019092528581526001600160a01b0390921691610c719189918991899089908190840183828082843760009201919091525061147e92505050565b600580546001600160a01b0319166001600160a01b038581169190911790915560405192955090935088169033907f2d9d115ef3e4a606d698913b1eae831a3cdfe20d9a83d48007b0526749c3d46690610cd0908a908a908a906117b1565b60405180910390a35094509492505050565b6005546000906001600160a01b0390811690811415610d0357600091505090565b919050565b6001600160a01b03166000908152600160208190526040909120015460ff1690565b600054610100900460ff16610d455760005460ff1615610d49565b303b155b610dac5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610558565b600054610100900460ff16158015610dce576000805461ffff19166101011790555b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610e5c5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b6064820152608401610558565b600580546001600160a01b036001600160a01b0319918216811790925560088054909116918416919091179055801561077d576000805461ff00191690555050565b6008546001600160a01b03163314610f6d5760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610ef557600080fd5b505afa158015610f09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2d9190611720565b9050336001600160a01b03821614610f6b57600854604051630739600760e01b81526105589133916001600160a01b0390911690849060040161173d565b505b6001600160a01b038281161415610f99578160405163077abed160e41b8152600401610558919061161b565b6001600160a01b038216600081815260026020908152604091829020600181015492518515158152909360ff90931692917f49477e7356dbcb654ab85d7534b50126772d938130d1350e23e2540370c8dffa910160405180910390a282151581151514156110075750505050565b821561109657604080518082018252600480548252600160208084018281526001600160a01b038a16600081815260029093529582209451855551938201805460ff1916941515949094179093558154908101825591527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b031916909117905561077a565b600480546110a690600190611760565b815481106110b6576110b6611785565b6000918252602090912001548254600480546001600160a01b039093169290919081106110e5576110e5611785565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816000015460026000600485600001548154811061113357611133611785565b60009182526020808320909101546001600160a01b0316835282019290925260400190205560048054806111695761116961179b565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b03861682526002905260408120908155600101805460ff1916905550505050565b6006818154811061045957600080fd5b60038181548110610b9357600080fd5b6008546001600160a01b031633146112a65760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b15801561122e57600080fd5b505afa158015611242573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112669190611720565b9050336001600160a01b038216146112a457600854604051630739600760e01b81526105589133916001600160a01b0390911690849060040161173d565b505b600a55565b600654604080516001600160f81b031960f88a901b166020808301919091526bffffffffffffffffffffffff1960608a901b1660218301526001600160c01b031960c089811b8216603585015288901b16603d830152604582018490526065820186905260858083018690528351808403909101815260a590920190925280519101206000919060008215611365576006611347600185611760565b8154811061135757611357611785565b906000526020600020015490505b6040805160208082018490528183018590528251808303840181526060830180855281519190920120600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f015533905260ff8c1660808201526001600160a01b038b1660a082015260c0810187905260e0810188905267ffffffffffffffff89166101008201529051829185917f5e3c1311ea442664e8b1611bfabef659120ea7a0a2cfc0667700bebc69cbffe1918190036101200190a3509098975050505050505050565b600061144533610d08565b611464573360405163b6c60ea360e01b8152600401610558919061161b565b60006114748686434248896112ab565b9695505050505050565b60006060846001600160a01b0316848460405161149b91906117e7565b60006040518083038185875af1925050503d80600081146114d8576040519150601f19603f3d011682016040523d82523d6000602084013e6114dd565b606091505b5090969095509350505050565b50565b6000602082840312156114ff57600080fd5b5035919050565b6001600160a01b03811681146114ea57600080fd5b60006020828403121561152d57600080fd5b81356108e581611506565b6000806040838503121561154b57600080fd5b823561155681611506565b91506020830135801515811461156b57600080fd5b809150509250929050565b6000806040838503121561158957600080fd5b823561159481611506565b946020939093013593505050565b600080600080608085870312156115b857600080fd5b5050823594602084013594506040840135936060013592509050565b6000806000606084860312156115e957600080fd5b833560ff811681146115fa57600080fd5b9250602084013561160a81611506565b929592945050506040919091013590565b6001600160a01b0391909116815260200190565b6000806000806060858703121561164557600080fd5b843561165081611506565b935060208501359250604085013567ffffffffffffffff8082111561167457600080fd5b818701915087601f83011261168857600080fd5b81358181111561169757600080fd5b8860208285010111156116a957600080fd5b95989497505060200194505050565b60005b838110156116d35781810151838201526020016116bb565b8381111561077a5750506000910152565b8215158152604060208201526000825180604084015261170b8160608501602087016116b8565b601f01601f1916919091016060019392505050565b60006020828403121561173257600080fd5b81516108e581611506565b6001600160a01b0393841681529183166020830152909116604082015260600190565b60008282101561178057634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b83815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b600082516117f98184602087016116b8565b919091019291505056fea2646970667358221220b9e1e465f48d7748514739046e6fe9d70df30f27fb86225b832963bc27b16bf264736f6c63430008090033",
691
- "deployedBytecode": "0x60806040526004361061014a5760003560e01c80639e5d4c49116100b6578063d5719dc21161006f578063d5719dc2146103b4578063e76f5c8d146103d4578063e77145f4146101e3578063eca067ad146103f4578063ee35f32714610409578063f81ff3b31461042957600080fd5b80639e5d4c49146102f1578063ab5d89431461031f578063ae60bd1314610334578063c4d66de814610354578063cb23bcb514610374578063cee3d7281461039457600080fd5b80637a88b107116101085780637a88b1071461021b57806386598a561461023b5780638db5993b1461027b578063919cc7061461028e578063927dcfab146102ae578063945e1147146102c457600080fd5b806284120c1461014f57806316bf557914610173578063413b35bd1461019357806347fb24c5146101c35780634f61f850146101e55780635fca4a1614610205575b600080fd5b34801561015b57600080fd5b506007545b6040519081526020015b60405180910390f35b34801561017f57600080fd5b5061016061018e3660046114ed565b610449565b34801561019f57600080fd5b506101b36101ae36600461151b565b61046a565b604051901515815260200161016a565b3480156101cf57600080fd5b506101e36101de366004611538565b61048b565b005b3480156101f157600080fd5b506101e361020036600461151b565b610781565b34801561021157600080fd5b50610160600a5481565b34801561022757600080fd5b50610160610236366004611576565b6108a6565b34801561024757600080fd5b5061025b6102563660046115a2565b6108ec565b60408051948552602085019390935291830152606082015260800161016a565b6101606102893660046115d4565b610a53565b34801561029a57600080fd5b506101e36102a936600461151b565b610a69565b3480156102ba57600080fd5b5061016060335481565b3480156102d057600080fd5b506102e46102df3660046114ed565b610b83565b60405161016a919061161b565b3480156102fd57600080fd5b5061031161030c36600461162f565b610bad565b60405161016a9291906116e4565b34801561032b57600080fd5b506102e4610ce2565b34801561034057600080fd5b506101b361034f36600461151b565b610d08565b34801561036057600080fd5b506101e361036f36600461151b565b610d2a565b34801561038057600080fd5b506008546102e4906001600160a01b031681565b3480156103a057600080fd5b506101e36103af366004611538565b610e9e565b3480156103c057600080fd5b506101606103cf3660046114ed565b6111b7565b3480156103e057600080fd5b506102e46103ef3660046114ed565b6111c7565b34801561040057600080fd5b50600654610160565b34801561041557600080fd5b506009546102e4906001600160a01b031681565b34801561043557600080fd5b506101e36104443660046114ed565b6111d7565b6007818154811061045957600080fd5b600091825260209091200154905081565b6001600160a01b031660009081526002602052604090206001015460ff1690565b6008546001600160a01b031633146105635760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b1580156104e257600080fd5b505afa1580156104f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051a9190611720565b9050336001600160a01b0382161461056157600854604051630739600760e01b81526105589133916001600160a01b0390911690849060040161173d565b60405180910390fd5b505b6001600160a01b0382166000818152600160208181526040928390209182015492518515158152919360ff90931692917f6675ce8882cb71637de5903a193d218cc0544be9c0650cb83e0955f6aa2bf521910160405180910390a282151581151514156105d05750505050565b821561065e57604080518082018252600380548252600160208084018281526001600160a01b038a166000818152928490529582209451855551938201805460ff1916941515949094179093558154908101825591527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b031916909117905561077a565b6003805461066e90600190611760565b8154811061067e5761067e611785565b6000918252602090912001548254600380546001600160a01b039093169290919081106106ad576106ad611785565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081600001546001600060038560000154815481106106fb576106fb611785565b60009182526020808320909101546001600160a01b0316835282019290925260400190205560038054806107315761073161179b565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b03861682526001908190526040822091825501805460ff191690555b50505b5050565b6008546001600160a01b031633146108505760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b1580156107d857600080fd5b505afa1580156107ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108109190611720565b9050336001600160a01b0382161461084e57600854604051630739600760e01b81526105589133916001600160a01b0390911690849060040161173d565b505b600980546001600160a01b0319166001600160a01b0383161790556040517f8c1e6003ed33ca6748d4ad3dd4ecc949065c89dceb31fdf546a5289202763c6a9061089b90839061161b565b60405180910390a150565b6009546000906001600160a01b031633146108d6573360405163223e13c160e21b8152600401610558919061161b565b6108e5600d84434248876112ab565b9392505050565b6009546000908190819081906001600160a01b03163314610922573360405163223e13c160e21b8152600401610558919061161b565b85600a541415801561093357508515155b80156109405750600a5415155b1561096c57600a5460405163e2051feb60e01b8152600481019190915260248101879052604401610558565b600a859055600754935083156109aa576007805461098c90600190611760565b8154811061099c5761099c611785565b906000526020600020015492505b86156109db5760066109bd600189611760565b815481106109cd576109cd611785565b906000526020600020015491505b60408051602081018590529081018990526060810183905260800160408051601f198184030181529190528051602090910120600780546001810182556000919091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688018190559398929750909550919350915050565b6000610a618484843461143a565b949350505050565b6008546001600160a01b03163314610b385760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610ac057600080fd5b505afa158015610ad4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af89190611720565b9050336001600160a01b03821614610b3657600854604051630739600760e01b81526105589133916001600160a01b0390911690849060040161173d565b505b600880546001600160a01b0319166001600160a01b0383161790556040517fae1f5aa15f6ff844896347ceca2a3c24c8d3a27785efdeacd581a0a95172784a9061089b90839061161b565b60048181548110610b9357600080fd5b6000918252602090912001546001600160a01b0316905081565b60006060610bba3361046a565b610bd957336040516332ea82ab60e01b8152600401610558919061161b565b8215801590610bf057506001600160a01b0386163b155b15610c10578560405163b5cf5b8f60e01b8152600401610558919061161b565b600580546001600160a01b031981163317909155604080516020601f87018190048102820181019092528581526001600160a01b0390921691610c719189918991899089908190840183828082843760009201919091525061147e92505050565b600580546001600160a01b0319166001600160a01b038581169190911790915560405192955090935088169033907f2d9d115ef3e4a606d698913b1eae831a3cdfe20d9a83d48007b0526749c3d46690610cd0908a908a908a906117b1565b60405180910390a35094509492505050565b6005546000906001600160a01b0390811690811415610d0357600091505090565b919050565b6001600160a01b03166000908152600160208190526040909120015460ff1690565b600054610100900460ff16610d455760005460ff1615610d49565b303b155b610dac5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610558565b600054610100900460ff16158015610dce576000805461ffff19166101011790555b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610e5c5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b6064820152608401610558565b600580546001600160a01b036001600160a01b0319918216811790925560088054909116918416919091179055801561077d576000805461ff00191690555050565b6008546001600160a01b03163314610f6d5760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610ef557600080fd5b505afa158015610f09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2d9190611720565b9050336001600160a01b03821614610f6b57600854604051630739600760e01b81526105589133916001600160a01b0390911690849060040161173d565b505b6001600160a01b038281161415610f99578160405163077abed160e41b8152600401610558919061161b565b6001600160a01b038216600081815260026020908152604091829020600181015492518515158152909360ff90931692917f49477e7356dbcb654ab85d7534b50126772d938130d1350e23e2540370c8dffa910160405180910390a282151581151514156110075750505050565b821561109657604080518082018252600480548252600160208084018281526001600160a01b038a16600081815260029093529582209451855551938201805460ff1916941515949094179093558154908101825591527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b031916909117905561077a565b600480546110a690600190611760565b815481106110b6576110b6611785565b6000918252602090912001548254600480546001600160a01b039093169290919081106110e5576110e5611785565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816000015460026000600485600001548154811061113357611133611785565b60009182526020808320909101546001600160a01b0316835282019290925260400190205560048054806111695761116961179b565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b03861682526002905260408120908155600101805460ff1916905550505050565b6006818154811061045957600080fd5b60038181548110610b9357600080fd5b6008546001600160a01b031633146112a65760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b15801561122e57600080fd5b505afa158015611242573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112669190611720565b9050336001600160a01b038216146112a457600854604051630739600760e01b81526105589133916001600160a01b0390911690849060040161173d565b505b600a55565b600654604080516001600160f81b031960f88a901b166020808301919091526bffffffffffffffffffffffff1960608a901b1660218301526001600160c01b031960c089811b8216603585015288901b16603d830152604582018490526065820186905260858083018690528351808403909101815260a590920190925280519101206000919060008215611365576006611347600185611760565b8154811061135757611357611785565b906000526020600020015490505b6040805160208082018490528183018590528251808303840181526060830180855281519190920120600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f015533905260ff8c1660808201526001600160a01b038b1660a082015260c0810187905260e0810188905267ffffffffffffffff89166101008201529051829185917f5e3c1311ea442664e8b1611bfabef659120ea7a0a2cfc0667700bebc69cbffe1918190036101200190a3509098975050505050505050565b600061144533610d08565b611464573360405163b6c60ea360e01b8152600401610558919061161b565b60006114748686434248896112ab565b9695505050505050565b60006060846001600160a01b0316848460405161149b91906117e7565b60006040518083038185875af1925050503d80600081146114d8576040519150601f19603f3d011682016040523d82523d6000602084013e6114dd565b606091505b5090969095509350505050565b50565b6000602082840312156114ff57600080fd5b5035919050565b6001600160a01b03811681146114ea57600080fd5b60006020828403121561152d57600080fd5b81356108e581611506565b6000806040838503121561154b57600080fd5b823561155681611506565b91506020830135801515811461156b57600080fd5b809150509250929050565b6000806040838503121561158957600080fd5b823561159481611506565b946020939093013593505050565b600080600080608085870312156115b857600080fd5b5050823594602084013594506040840135936060013592509050565b6000806000606084860312156115e957600080fd5b833560ff811681146115fa57600080fd5b9250602084013561160a81611506565b929592945050506040919091013590565b6001600160a01b0391909116815260200190565b6000806000806060858703121561164557600080fd5b843561165081611506565b935060208501359250604085013567ffffffffffffffff8082111561167457600080fd5b818701915087601f83011261168857600080fd5b81358181111561169757600080fd5b8860208285010111156116a957600080fd5b95989497505060200194505050565b60005b838110156116d35781810151838201526020016116bb565b8381111561077a5750506000910152565b8215158152604060208201526000825180604084015261170b8160608501602087016116b8565b601f01601f1916919091016060019392505050565b60006020828403121561173257600080fd5b81516108e581611506565b6001600160a01b0393841681529183166020830152909116604082015260600190565b60008282101561178057634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b83815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b600082516117f98184602087016116b8565b919091019291505056fea2646970667358221220b9e1e465f48d7748514739046e6fe9d70df30f27fb86225b832963bc27b16bf264736f6c63430008090033",
703
+ "bytecode": "0x60a060405230608052600060335534801561001957600080fd5b50600580546001600160a01b03199081166001600160a01b03179091556008805490911633179055608051611a9261005c6000396000610f4b0152611a926000f3fe60806040526004361061018a5760003560e01c80639e5d4c49116100d6578063d5719dc21161007f578063eca067ad11610059578063eca067ad14610478578063ee35f3271461048d578063f81ff3b3146104ad57600080fd5b8063d5719dc214610438578063e76f5c8d14610458578063e77145f41461023f57600080fd5b8063c4d66de8116100b0578063c4d66de8146103d8578063cb23bcb5146103f8578063cee3d7281461041857600080fd5b80639e5d4c4914610358578063ab5d894314610386578063ae60bd131461039b57600080fd5b80637a88b10711610138578063919cc70611610112578063919cc706146102ea578063927dcfab1461030a578063945e11471461032057600080fd5b80637a88b1071461027757806386598a56146102975780638db5993b146102d757600080fd5b806347fb24c51161016957806347fb24c51461021f5780634f61f850146102415780635fca4a161461026157600080fd5b806284120c1461018f57806316bf5579146101b3578063413b35bd146101d3575b600080fd5b34801561019b57600080fd5b506007545b6040519081526020015b60405180910390f35b3480156101bf57600080fd5b506101a06101ce366004611782565b6104cd565b3480156101df57600080fd5b5061020f6101ee3660046117b0565b6001600160a01b031660009081526002602052604090206001015460ff1690565b60405190151581526020016101aa565b34801561022b57600080fd5b5061023f61023a3660046117d4565b6104ee565b005b34801561024d57600080fd5b5061023f61025c3660046117b0565b6107f4565b34801561026d57600080fd5b506101a0600a5481565b34801561028357600080fd5b506101a0610292366004611812565b610920565b3480156102a357600080fd5b506102b76102b236600461183e565b610981565b6040805194855260208501939093529183015260608201526080016101aa565b6101a06102e5366004611870565b610b1a565b3480156102f657600080fd5b5061023f6103053660046117b0565b610b30565b34801561031657600080fd5b506101a060335481565b34801561032c57600080fd5b5061034061033b366004611782565b610c55565b6040516001600160a01b0390911681526020016101aa565b34801561036457600080fd5b506103786103733660046118b7565b610c7f565b6040516101aa929190611964565b34801561039257600080fd5b50610340610e15565b3480156103a757600080fd5b5061020f6103b63660046117b0565b6001600160a01b03166000908152600160208190526040909120015460ff1690565b3480156103e457600080fd5b5061023f6103f33660046117b0565b610e58565b34801561040457600080fd5b50600854610340906001600160a01b031681565b34801561042457600080fd5b5061023f6104333660046117d4565b61107c565b34801561044457600080fd5b506101a0610453366004611782565b6113ea565b34801561046457600080fd5b50610340610473366004611782565b6113fa565b34801561048457600080fd5b506006546101a0565b34801561049957600080fd5b50600954610340906001600160a01b031681565b3480156104b957600080fd5b5061023f6104c8366004611782565b61140a565b600781815481106104dd57600080fd5b600091825260209091200154905081565b6008546001600160a01b031633146105bd5760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa15801561054a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061056e91906119a0565b9050336001600160a01b038216146105bb57600854604051630739600760e01b81523360048201526001600160a01b03918216602482015290821660448201526064015b60405180910390fd5b505b6001600160a01b0382166000818152600160208181526040928390209182015492518515158152919360ff90931692917f6675ce8882cb71637de5903a193d218cc0544be9c0650cb83e0955f6aa2bf521910160405180910390a2821515811515036106295750505050565b82156106c457604080518082018252600380548252600160208084018281526001600160a01b038a166000818152928490529582209451855551938201805460ff1916941515949094179093558154908101825591527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01805473ffffffffffffffffffffffffffffffffffffffff191690911790556107ed565b600380546106d4906001906119bd565b815481106106e4576106e46119de565b6000918252602090912001548254600380546001600160a01b03909316929091908110610713576107136119de565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508160000154600160006003856000015481548110610761576107616119de565b60009182526020808320909101546001600160a01b031683528201929092526040019020556003805480610797576107976119f4565b600082815260208082208301600019908101805473ffffffffffffffffffffffffffffffffffffffff191690559092019092556001600160a01b03861682526001908190526040822091825501805460ff191690555b50505b5050565b6008546001600160a01b031633146108be5760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610850573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087491906119a0565b9050336001600160a01b038216146108bc57600854604051630739600760e01b81523360048201526001600160a01b03918216602482015290821660448201526064016105b2565b505b6009805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527f8c1e6003ed33ca6748d4ad3dd4ecc949065c89dceb31fdf546a5289202763c6a906020015b60405180910390a150565b6009546000906001600160a01b03163314610969576040517f88f84f040000000000000000000000000000000000000000000000000000000081523360048201526024016105b2565b610978600d84434248876114d9565b90505b92915050565b6009546000908190819081906001600160a01b031633146109d0576040517f88f84f040000000000000000000000000000000000000000000000000000000081523360048201526024016105b2565b85600a54141580156109e157508515155b80156109ee5750600a5415155b15610a3357600a546040517fe2051feb0000000000000000000000000000000000000000000000000000000081526004810191909152602481018790526044016105b2565b600a85905560075493508315610a715760078054610a53906001906119bd565b81548110610a6357610a636119de565b906000526020600020015492505b8615610aa2576006610a846001896119bd565b81548110610a9457610a946119de565b906000526020600020015491505b60408051602081018590529081018990526060810183905260800160408051601f198184030181529190528051602090910120600780546001810182556000919091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688018190559398929750909550919350915050565b6000610b28848484346116ab565b949350505050565b6008546001600160a01b03163314610bfa5760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610b8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb091906119a0565b9050336001600160a01b03821614610bf857600854604051630739600760e01b81523360048201526001600160a01b03918216602482015290821660448201526064016105b2565b505b6008805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fae1f5aa15f6ff844896347ceca2a3c24c8d3a27785efdeacd581a0a95172784a90602001610915565b60048181548110610c6557600080fd5b6000918252602090912001546001600160a01b0316905081565b3360009081526002602052604081206001015460609060ff16610cd0576040517f32ea82ab0000000000000000000000000000000000000000000000000000000081523360048201526024016105b2565b8215801590610ce757506001600160a01b0386163b155b15610d29576040517fb5cf5b8f0000000000000000000000000000000000000000000000000000000081526001600160a01b03871660048201526024016105b2565b6005805473ffffffffffffffffffffffffffffffffffffffff1981163317909155604080516020601f87018190048102820181019092528581526001600160a01b0390921691610d979189918991899089908190840183828082843760009201919091525061171392505050565b6005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038581169190911790915560405192955090935088169033907f2d9d115ef3e4a606d698913b1eae831a3cdfe20d9a83d48007b0526749c3d46690610e03908a908a908a90611a0a565b60405180910390a35094509492505050565b6005546000906001600160a01b03167fffffffffffffffffffffffff00000000000000000000000000000000000000018101610e5357600091505090565b919050565b600054610100900460ff1615808015610e785750600054600160ff909116105b80610e925750303b158015610e92575060005460ff166001145b610f1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016105b2565b6000805460ff191660011790558015610f41576000805461ff0019166101001790555b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ff9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084016105b2565b600580546001600160a01b0373ffffffffffffffffffffffffffffffffffffffff1991821681179092556008805490911691841691909117905580156107f0576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6008546001600160a01b031633146111465760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa1580156110d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110fc91906119a0565b9050336001600160a01b0382161461114457600854604051630739600760e01b81523360048201526001600160a01b03918216602482015290821660448201526064016105b2565b505b7fffffffffffffffffffffffff00000000000000000000000000000000000000016001600160a01b038316016111b3576040517f77abed100000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024016105b2565b6001600160a01b038216600081815260026020908152604091829020600181015492518515158152909360ff90931692917f49477e7356dbcb654ab85d7534b50126772d938130d1350e23e2540370c8dffa910160405180910390a2821515811515036112205750505050565b82156112bc57604080518082018252600480548252600160208084018281526001600160a01b038a16600081815260029093529582209451855551938201805460ff1916941515949094179093558154908101825591527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01805473ffffffffffffffffffffffffffffffffffffffff191690911790556107ed565b600480546112cc906001906119bd565b815481106112dc576112dc6119de565b6000918252602090912001548254600480546001600160a01b0390931692909190811061130b5761130b6119de565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508160000154600260006004856000015481548110611359576113596119de565b60009182526020808320909101546001600160a01b03168352820192909252604001902055600480548061138f5761138f6119f4565b600082815260208082208301600019908101805473ffffffffffffffffffffffffffffffffffffffff191690559092019092556001600160a01b03861682526002905260408120908155600101805460ff1916905550505050565b600681815481106104dd57600080fd5b60038181548110610c6557600080fd5b6008546001600160a01b031633146114d45760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015611466573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061148a91906119a0565b9050336001600160a01b038216146114d257600854604051630739600760e01b81523360048201526001600160a01b03918216602482015290821660448201526064016105b2565b505b600a55565b600654604080517fff0000000000000000000000000000000000000000000000000000000000000060f88a901b166020808301919091527fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060608a901b1660218301527fffffffffffffffff00000000000000000000000000000000000000000000000060c089811b8216603585015288901b16603d830152604582018490526065820186905260858083018690528351808403909101815260a5909201909252805191012060009190600082156115d65760066115b86001856119bd565b815481106115c8576115c86119de565b906000526020600020015490505b6040805160208082018490528183018590528251808303840181526060830180855281519190920120600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f015533905260ff8c1660808201526001600160a01b038b1660a082015260c0810187905260e0810188905267ffffffffffffffff89166101008201529051829185917f5e3c1311ea442664e8b1611bfabef659120ea7a0a2cfc0667700bebc69cbffe1918190036101200190a3509098975050505050505050565b3360009081526001602081905260408220015460ff166116f9576040517fb6c60ea30000000000000000000000000000000000000000000000000000000081523360048201526024016105b2565b60006117098686434248896114d9565b9695505050505050565b60006060846001600160a01b031684846040516117309190611a40565b60006040518083038185875af1925050503d806000811461176d576040519150601f19603f3d011682016040523d82523d6000602084013e611772565b606091505b5090969095509350505050565b50565b60006020828403121561179457600080fd5b5035919050565b6001600160a01b038116811461177f57600080fd5b6000602082840312156117c257600080fd5b81356117cd8161179b565b9392505050565b600080604083850312156117e757600080fd5b82356117f28161179b565b91506020830135801515811461180757600080fd5b809150509250929050565b6000806040838503121561182557600080fd5b82356118308161179b565b946020939093013593505050565b6000806000806080858703121561185457600080fd5b5050823594602084013594506040840135936060013592509050565b60008060006060848603121561188557600080fd5b833560ff8116811461189657600080fd5b925060208401356118a68161179b565b929592945050506040919091013590565b600080600080606085870312156118cd57600080fd5b84356118d88161179b565b935060208501359250604085013567ffffffffffffffff808211156118fc57600080fd5b818701915087601f83011261191057600080fd5b81358181111561191f57600080fd5b88602082850101111561193157600080fd5b95989497505060200194505050565b60005b8381101561195b578181015183820152602001611943565b50506000910152565b8215158152604060208201526000825180604084015261198b816060850160208701611940565b601f01601f1916919091016060019392505050565b6000602082840312156119b257600080fd5b81516117cd8161179b565b8181038181111561097b57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b83815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b60008251611a52818460208701611940565b919091019291505056fea2646970667358221220786bd8c9574dcfb8366fe8e34bd83b380cfed4235ad30f929b45604229a4574564736f6c63430008110033",
704
+ "deployedBytecode": "0x60806040526004361061018a5760003560e01c80639e5d4c49116100d6578063d5719dc21161007f578063eca067ad11610059578063eca067ad14610478578063ee35f3271461048d578063f81ff3b3146104ad57600080fd5b8063d5719dc214610438578063e76f5c8d14610458578063e77145f41461023f57600080fd5b8063c4d66de8116100b0578063c4d66de8146103d8578063cb23bcb5146103f8578063cee3d7281461041857600080fd5b80639e5d4c4914610358578063ab5d894314610386578063ae60bd131461039b57600080fd5b80637a88b10711610138578063919cc70611610112578063919cc706146102ea578063927dcfab1461030a578063945e11471461032057600080fd5b80637a88b1071461027757806386598a56146102975780638db5993b146102d757600080fd5b806347fb24c51161016957806347fb24c51461021f5780634f61f850146102415780635fca4a161461026157600080fd5b806284120c1461018f57806316bf5579146101b3578063413b35bd146101d3575b600080fd5b34801561019b57600080fd5b506007545b6040519081526020015b60405180910390f35b3480156101bf57600080fd5b506101a06101ce366004611782565b6104cd565b3480156101df57600080fd5b5061020f6101ee3660046117b0565b6001600160a01b031660009081526002602052604090206001015460ff1690565b60405190151581526020016101aa565b34801561022b57600080fd5b5061023f61023a3660046117d4565b6104ee565b005b34801561024d57600080fd5b5061023f61025c3660046117b0565b6107f4565b34801561026d57600080fd5b506101a0600a5481565b34801561028357600080fd5b506101a0610292366004611812565b610920565b3480156102a357600080fd5b506102b76102b236600461183e565b610981565b6040805194855260208501939093529183015260608201526080016101aa565b6101a06102e5366004611870565b610b1a565b3480156102f657600080fd5b5061023f6103053660046117b0565b610b30565b34801561031657600080fd5b506101a060335481565b34801561032c57600080fd5b5061034061033b366004611782565b610c55565b6040516001600160a01b0390911681526020016101aa565b34801561036457600080fd5b506103786103733660046118b7565b610c7f565b6040516101aa929190611964565b34801561039257600080fd5b50610340610e15565b3480156103a757600080fd5b5061020f6103b63660046117b0565b6001600160a01b03166000908152600160208190526040909120015460ff1690565b3480156103e457600080fd5b5061023f6103f33660046117b0565b610e58565b34801561040457600080fd5b50600854610340906001600160a01b031681565b34801561042457600080fd5b5061023f6104333660046117d4565b61107c565b34801561044457600080fd5b506101a0610453366004611782565b6113ea565b34801561046457600080fd5b50610340610473366004611782565b6113fa565b34801561048457600080fd5b506006546101a0565b34801561049957600080fd5b50600954610340906001600160a01b031681565b3480156104b957600080fd5b5061023f6104c8366004611782565b61140a565b600781815481106104dd57600080fd5b600091825260209091200154905081565b6008546001600160a01b031633146105bd5760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa15801561054a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061056e91906119a0565b9050336001600160a01b038216146105bb57600854604051630739600760e01b81523360048201526001600160a01b03918216602482015290821660448201526064015b60405180910390fd5b505b6001600160a01b0382166000818152600160208181526040928390209182015492518515158152919360ff90931692917f6675ce8882cb71637de5903a193d218cc0544be9c0650cb83e0955f6aa2bf521910160405180910390a2821515811515036106295750505050565b82156106c457604080518082018252600380548252600160208084018281526001600160a01b038a166000818152928490529582209451855551938201805460ff1916941515949094179093558154908101825591527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01805473ffffffffffffffffffffffffffffffffffffffff191690911790556107ed565b600380546106d4906001906119bd565b815481106106e4576106e46119de565b6000918252602090912001548254600380546001600160a01b03909316929091908110610713576107136119de565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508160000154600160006003856000015481548110610761576107616119de565b60009182526020808320909101546001600160a01b031683528201929092526040019020556003805480610797576107976119f4565b600082815260208082208301600019908101805473ffffffffffffffffffffffffffffffffffffffff191690559092019092556001600160a01b03861682526001908190526040822091825501805460ff191690555b50505b5050565b6008546001600160a01b031633146108be5760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610850573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087491906119a0565b9050336001600160a01b038216146108bc57600854604051630739600760e01b81523360048201526001600160a01b03918216602482015290821660448201526064016105b2565b505b6009805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527f8c1e6003ed33ca6748d4ad3dd4ecc949065c89dceb31fdf546a5289202763c6a906020015b60405180910390a150565b6009546000906001600160a01b03163314610969576040517f88f84f040000000000000000000000000000000000000000000000000000000081523360048201526024016105b2565b610978600d84434248876114d9565b90505b92915050565b6009546000908190819081906001600160a01b031633146109d0576040517f88f84f040000000000000000000000000000000000000000000000000000000081523360048201526024016105b2565b85600a54141580156109e157508515155b80156109ee5750600a5415155b15610a3357600a546040517fe2051feb0000000000000000000000000000000000000000000000000000000081526004810191909152602481018790526044016105b2565b600a85905560075493508315610a715760078054610a53906001906119bd565b81548110610a6357610a636119de565b906000526020600020015492505b8615610aa2576006610a846001896119bd565b81548110610a9457610a946119de565b906000526020600020015491505b60408051602081018590529081018990526060810183905260800160408051601f198184030181529190528051602090910120600780546001810182556000919091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688018190559398929750909550919350915050565b6000610b28848484346116ab565b949350505050565b6008546001600160a01b03163314610bfa5760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610b8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb091906119a0565b9050336001600160a01b03821614610bf857600854604051630739600760e01b81523360048201526001600160a01b03918216602482015290821660448201526064016105b2565b505b6008805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fae1f5aa15f6ff844896347ceca2a3c24c8d3a27785efdeacd581a0a95172784a90602001610915565b60048181548110610c6557600080fd5b6000918252602090912001546001600160a01b0316905081565b3360009081526002602052604081206001015460609060ff16610cd0576040517f32ea82ab0000000000000000000000000000000000000000000000000000000081523360048201526024016105b2565b8215801590610ce757506001600160a01b0386163b155b15610d29576040517fb5cf5b8f0000000000000000000000000000000000000000000000000000000081526001600160a01b03871660048201526024016105b2565b6005805473ffffffffffffffffffffffffffffffffffffffff1981163317909155604080516020601f87018190048102820181019092528581526001600160a01b0390921691610d979189918991899089908190840183828082843760009201919091525061171392505050565b6005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038581169190911790915560405192955090935088169033907f2d9d115ef3e4a606d698913b1eae831a3cdfe20d9a83d48007b0526749c3d46690610e03908a908a908a90611a0a565b60405180910390a35094509492505050565b6005546000906001600160a01b03167fffffffffffffffffffffffff00000000000000000000000000000000000000018101610e5357600091505090565b919050565b600054610100900460ff1615808015610e785750600054600160ff909116105b80610e925750303b158015610e92575060005460ff166001145b610f1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016105b2565b6000805460ff191660011790558015610f41576000805461ff0019166101001790555b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ff9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084016105b2565b600580546001600160a01b0373ffffffffffffffffffffffffffffffffffffffff1991821681179092556008805490911691841691909117905580156107f0576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6008546001600160a01b031633146111465760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa1580156110d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110fc91906119a0565b9050336001600160a01b0382161461114457600854604051630739600760e01b81523360048201526001600160a01b03918216602482015290821660448201526064016105b2565b505b7fffffffffffffffffffffffff00000000000000000000000000000000000000016001600160a01b038316016111b3576040517f77abed100000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024016105b2565b6001600160a01b038216600081815260026020908152604091829020600181015492518515158152909360ff90931692917f49477e7356dbcb654ab85d7534b50126772d938130d1350e23e2540370c8dffa910160405180910390a2821515811515036112205750505050565b82156112bc57604080518082018252600480548252600160208084018281526001600160a01b038a16600081815260029093529582209451855551938201805460ff1916941515949094179093558154908101825591527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01805473ffffffffffffffffffffffffffffffffffffffff191690911790556107ed565b600480546112cc906001906119bd565b815481106112dc576112dc6119de565b6000918252602090912001548254600480546001600160a01b0390931692909190811061130b5761130b6119de565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508160000154600260006004856000015481548110611359576113596119de565b60009182526020808320909101546001600160a01b03168352820192909252604001902055600480548061138f5761138f6119f4565b600082815260208082208301600019908101805473ffffffffffffffffffffffffffffffffffffffff191690559092019092556001600160a01b03861682526002905260408120908155600101805460ff1916905550505050565b600681815481106104dd57600080fd5b60038181548110610c6557600080fd5b6008546001600160a01b031633146114d45760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015611466573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061148a91906119a0565b9050336001600160a01b038216146114d257600854604051630739600760e01b81523360048201526001600160a01b03918216602482015290821660448201526064016105b2565b505b600a55565b600654604080517fff0000000000000000000000000000000000000000000000000000000000000060f88a901b166020808301919091527fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060608a901b1660218301527fffffffffffffffff00000000000000000000000000000000000000000000000060c089811b8216603585015288901b16603d830152604582018490526065820186905260858083018690528351808403909101815260a5909201909252805191012060009190600082156115d65760066115b86001856119bd565b815481106115c8576115c86119de565b906000526020600020015490505b6040805160208082018490528183018590528251808303840181526060830180855281519190920120600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f015533905260ff8c1660808201526001600160a01b038b1660a082015260c0810187905260e0810188905267ffffffffffffffff89166101008201529051829185917f5e3c1311ea442664e8b1611bfabef659120ea7a0a2cfc0667700bebc69cbffe1918190036101200190a3509098975050505050505050565b3360009081526001602081905260408220015460ff166116f9576040517fb6c60ea30000000000000000000000000000000000000000000000000000000081523360048201526024016105b2565b60006117098686434248896114d9565b9695505050505050565b60006060846001600160a01b031684846040516117309190611a40565b60006040518083038185875af1925050503d806000811461176d576040519150601f19603f3d011682016040523d82523d6000602084013e611772565b606091505b5090969095509350505050565b50565b60006020828403121561179457600080fd5b5035919050565b6001600160a01b038116811461177f57600080fd5b6000602082840312156117c257600080fd5b81356117cd8161179b565b9392505050565b600080604083850312156117e757600080fd5b82356117f28161179b565b91506020830135801515811461180757600080fd5b809150509250929050565b6000806040838503121561182557600080fd5b82356118308161179b565b946020939093013593505050565b6000806000806080858703121561185457600080fd5b5050823594602084013594506040840135936060013592509050565b60008060006060848603121561188557600080fd5b833560ff8116811461189657600080fd5b925060208401356118a68161179b565b929592945050506040919091013590565b600080600080606085870312156118cd57600080fd5b84356118d88161179b565b935060208501359250604085013567ffffffffffffffff808211156118fc57600080fd5b818701915087601f83011261191057600080fd5b81358181111561191f57600080fd5b88602082850101111561193157600080fd5b95989497505060200194505050565b60005b8381101561195b578181015183820152602001611943565b50506000910152565b8215158152604060208201526000825180604084015261198b816060850160208701611940565b601f01601f1916919091016060019392505050565b6000602082840312156119b257600080fd5b81516117cd8161179b565b8181038181111561097b57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b83815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b60008251611a52818460208701611940565b919091019291505056fea2646970667358221220786bd8c9574dcfb8366fe8e34bd83b380cfed4235ad30f929b45604229a4574564736f6c63430008110033",
692
705
  "linkReferences": {},
693
706
  "deployedLinkReferences": {}
694
707
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/671b0778dc33f2c1b20cf41504c8e4d9.json"
3
+ "buildInfo": "../../../build-info/20d3c20b27a0078f8acb7ef1c538821c.json"
4
4
  }
@@ -8,8 +8,8 @@
8
8
  "type": "fallback"
9
9
  }
10
10
  ],
11
- "bytecode": "0x608060405234801561001057600080fd5b5061025b806100206000396000f3fe608060405234801561001057600080fd5b50600036606060008383600081811061002b5761002b6101c6565b919091013560f81c9150610044905083600181876101dc565b9094509250600061005860208286886101dc565b61006191610206565b905061007084602081886101dc565b9450945060008260ff16600214156100fc576000610091602082888a6101dc565b61009a91610206565b90506100a9866020818a6101dc565b96509650600087878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050825192935084929150506020830186f592505050610144565b600086868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060208301905084f09150505b6001600160a01b0381166101915760405162461bcd60e51b815260206004820152601060248201526f6661696c656420746f2063726561746560801b604482015260640160405180910390fd5b806001600160a01b0316803b806020016040519081016040528181526000908060200190933c80519650602001945050505050f35b634e487b7160e01b600052603260045260246000fd5b600080858511156101ec57600080fd5b838611156101f957600080fd5b5050820193919092039150565b8035602083101561021f57600019602084900360031b1b165b9291505056fea2646970667358221220bbb868e610a6b9b8a22ec5212ba310a66d4e088910a92addbddd9c2af4d7cd5c64736f6c63430008090033",
12
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600036606060008383600081811061002b5761002b6101c6565b919091013560f81c9150610044905083600181876101dc565b9094509250600061005860208286886101dc565b61006191610206565b905061007084602081886101dc565b9450945060008260ff16600214156100fc576000610091602082888a6101dc565b61009a91610206565b90506100a9866020818a6101dc565b96509650600087878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050825192935084929150506020830186f592505050610144565b600086868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060208301905084f09150505b6001600160a01b0381166101915760405162461bcd60e51b815260206004820152601060248201526f6661696c656420746f2063726561746560801b604482015260640160405180910390fd5b806001600160a01b0316803b806020016040519081016040528181526000908060200190933c80519650602001945050505050f35b634e487b7160e01b600052603260045260246000fd5b600080858511156101ec57600080fd5b838611156101f957600080fd5b5050820193919092039150565b8035602083101561021f57600019602084900360031b1b165b9291505056fea2646970667358221220bbb868e610a6b9b8a22ec5212ba310a66d4e088910a92addbddd9c2af4d7cd5c64736f6c63430008090033",
11
+ "bytecode": "0x608060405234801561001057600080fd5b506102d2806100206000396000f3fe608060405234801561001057600080fd5b50600036606060008383600081811061002b5761002b610206565b919091013560f81c915061004490508360018187610235565b909450925060006100586020828688610235565b6100619161025f565b90506100708460208188610235565b9450945060008260ff166002036100fb576000610090602082888a610235565b6100999161025f565b90506100a8866020818a610235565b96509650600087878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050825192935084929150506020830186f592505050610143565b600086868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060208301905084f09150505b73ffffffffffffffffffffffffffffffffffffffff81166101c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6661696c656420746f2063726561746500000000000000000000000000000000604482015260640160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16803b806020016040519081016040528181526000908060200190933c80519650602001945050505050f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000808585111561024557600080fd5b8386111561025257600080fd5b5050820193919092039150565b80356020831015610296577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b165b9291505056fea26469706673582212209431771ba2c9b8e2676999adcd0dff83847db2d5a6b3805a1b7d04ccc2f5231564736f6c63430008110033",
12
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600036606060008383600081811061002b5761002b610206565b919091013560f81c915061004490508360018187610235565b909450925060006100586020828688610235565b6100619161025f565b90506100708460208188610235565b9450945060008260ff166002036100fb576000610090602082888a610235565b6100999161025f565b90506100a8866020818a610235565b96509650600087878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050825192935084929150506020830186f592505050610143565b600086868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060208301905084f09150505b73ffffffffffffffffffffffffffffffffffffffff81166101c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6661696c656420746f2063726561746500000000000000000000000000000000604482015260640160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16803b806020016040519081016040528181526000908060200190933c80519650602001945050505050f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000808585111561024557600080fd5b8386111561025257600080fd5b5050820193919092039150565b80356020831015610296577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b165b9291505056fea26469706673582212209431771ba2c9b8e2676999adcd0dff83847db2d5a6b3805a1b7d04ccc2f5231564736f6c63430008110033",
13
13
  "linkReferences": {},
14
14
  "deployedLinkReferences": {}
15
15
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/a03890e583e63a2a23e9203499e07206.json"
3
+ "buildInfo": "../../../build-info/978e361bf8e54e1dce144c4f140df5e6.json"
4
4
  }
@@ -506,8 +506,8 @@
506
506
  "type": "function"
507
507
  }
508
508
  ],
509
- "bytecode": "0x608060405234801561000f575f80fd5b506108488061001d5f395ff3fe60806040526004361061017e575f3560e01c806398071112116100d4578063d294cb0f11610083578063d294cb0f1461039c578063d737d0c7146103c3578063ddf363d7146103d5578063e5c47e1d146103db578063e6334eea146103ed578063f6b4dfb4146103fe578063f7be3e8d14610410578063f96757d11461042f575f80fd5b806398071112146102cb5780639c16cfe8146102f7578063a520508f14610315578063a83ede1c14610333578063adb6183214610352578063cd84980e14610364578063cebcbba914610376575f80fd5b806357e871e71161013057806357e871e7146102385780636417b4d51461024a5780637877a797146102695780637c6aa4661461027b5780637d00629614610226578063860e61991461029a57806389995319146102ac575f80fd5b8063131260d0146101825780632233a918146101b457806323fc7ef3146101d257806328ed15d5146101f15780632dc26516146101f157806334eb2d6b14610205578063534ca05414610226575b5f80fd5b34801561018d575f80fd5b506101a161019c3660046105fa565b610441565b6040519081526020015b60405180910390f35b3480156101bf575f80fd5b506101a16101ce366004610623565b3f90565b3480156101dd575f80fd5b506101a16101ec36600461068e565b61045b565b3480156101fc575f80fd5b506101a161047c565b348015610210575f80fd5b5061022461021f3660046106cd565b610483565b005b348015610231575f80fd5b503a6101a1565b348015610243575f80fd5b50436101a1565b348015610255575f80fd5b506102246102643660046106ed565b61048a565b348015610274575f80fd5b50456101a1565b348015610286575f80fd5b506101a16102953660046106cd565b610588565b3480156102a5575f80fd5b503d6101a1565b3480156102b7575f80fd5b506101a16102c63660046106cd565b900a90565b3480156102d6575f80fd5b506102ea6102e5366004610623565b61059a565b6040516101ab9190610766565b348015610302575f80fd5b506101a16103113660046107b2565b5c90565b348015610320575f80fd5b506101a161032f366004610623565b3b90565b34801561033e575f80fd5b506101a161034d3660046105fa565b6105d5565b34801561035d575f80fd5b50426101a1565b34801561036f575f80fd5b50466101a1565b348015610381575f80fd5b50415b6040516001600160a01b0390911681526020016101ab565b3480156103a7575f80fd5b506101a16103b6366004610623565b6001600160a01b03163190565b3480156103ce575f80fd5b5033610384565b346101a1565b3480156103e6575f80fd5b50486101a1565b3480156103f8575f80fd5b50610224005b348015610409575f80fd5b5030610384565b34801561041b575f80fd5b506101a161042a3660046106cd565b6105ef565b34801561043a575f80fd5b5032610384565b5f8180610450576104506107c9565b838509949350505050565b5f828260405161046c9291906107dd565b6040518091039020905092915050565b5f5a905090565b80825d5050565b5f87878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525093945050505086810b90036104d757805160208201a061057e565b855f0b6001036104ee5784815160208301a161057e565b855f0b600203610506578385825160208401a261057e565b855f0b60030361051f57828486835160208501a361057e565b855f0b6004036105395781838587845160208601a461057e565b60405162461bcd60e51b8152602060048201526016602482015275696e76616c6964206e20666f7220656d6974206c6f6760501b604482015260640160405180910390fd5b5050505050505050565b5f61059382846107ec565b9392505050565b604080516127108082526127408201909252606091905f9082602082018180368337019050509050815f60208301863c923b83525090919050565b5f81806105e4576105e46107c9565b838508949350505050565b5f61059382846107ff565b5f805f6060848603121561060c575f80fd5b505081359360208301359350604090920135919050565b5f60208284031215610633575f80fd5b81356001600160a01b0381168114610593575f80fd5b5f8083601f840112610659575f80fd5b50813567ffffffffffffffff811115610670575f80fd5b602083019150836020828501011115610687575f80fd5b9250929050565b5f806020838503121561069f575f80fd5b823567ffffffffffffffff8111156106b5575f80fd5b6106c185828601610649565b90969095509350505050565b5f80604083850312156106de575f80fd5b50508035926020909101359150565b5f805f805f805f60c0888a031215610703575f80fd5b873567ffffffffffffffff811115610719575f80fd5b6107258a828b01610649565b90985096505060208801355f81900b811461073e575f80fd5b96999598509596604081013596506060810135956080820135955060a0909101359350915050565b5f602080835283518060208501525f5b8181101561079257858101830151858201604001528201610776565b505f604082860101526040601f19601f8301168501019250505092915050565b5f602082840312156107c2575f80fd5b5035919050565b634e487b7160e01b5f52601260045260245ffd5b818382375f9101908152919050565b5f826107fa576107fa6107c9565b500490565b5f8261080d5761080d6107c9565b50069056fea2646970667358221220b8a238aafe3fdbfea9be288ac225ff167466dcd9b857d846f81cea9c4088294064736f6c63430008180033",
510
- "deployedBytecode": "0x60806040526004361061017e575f3560e01c806398071112116100d4578063d294cb0f11610083578063d294cb0f1461039c578063d737d0c7146103c3578063ddf363d7146103d5578063e5c47e1d146103db578063e6334eea146103ed578063f6b4dfb4146103fe578063f7be3e8d14610410578063f96757d11461042f575f80fd5b806398071112146102cb5780639c16cfe8146102f7578063a520508f14610315578063a83ede1c14610333578063adb6183214610352578063cd84980e14610364578063cebcbba914610376575f80fd5b806357e871e71161013057806357e871e7146102385780636417b4d51461024a5780637877a797146102695780637c6aa4661461027b5780637d00629614610226578063860e61991461029a57806389995319146102ac575f80fd5b8063131260d0146101825780632233a918146101b457806323fc7ef3146101d257806328ed15d5146101f15780632dc26516146101f157806334eb2d6b14610205578063534ca05414610226575b5f80fd5b34801561018d575f80fd5b506101a161019c3660046105fa565b610441565b6040519081526020015b60405180910390f35b3480156101bf575f80fd5b506101a16101ce366004610623565b3f90565b3480156101dd575f80fd5b506101a16101ec36600461068e565b61045b565b3480156101fc575f80fd5b506101a161047c565b348015610210575f80fd5b5061022461021f3660046106cd565b610483565b005b348015610231575f80fd5b503a6101a1565b348015610243575f80fd5b50436101a1565b348015610255575f80fd5b506102246102643660046106ed565b61048a565b348015610274575f80fd5b50456101a1565b348015610286575f80fd5b506101a16102953660046106cd565b610588565b3480156102a5575f80fd5b503d6101a1565b3480156102b7575f80fd5b506101a16102c63660046106cd565b900a90565b3480156102d6575f80fd5b506102ea6102e5366004610623565b61059a565b6040516101ab9190610766565b348015610302575f80fd5b506101a16103113660046107b2565b5c90565b348015610320575f80fd5b506101a161032f366004610623565b3b90565b34801561033e575f80fd5b506101a161034d3660046105fa565b6105d5565b34801561035d575f80fd5b50426101a1565b34801561036f575f80fd5b50466101a1565b348015610381575f80fd5b50415b6040516001600160a01b0390911681526020016101ab565b3480156103a7575f80fd5b506101a16103b6366004610623565b6001600160a01b03163190565b3480156103ce575f80fd5b5033610384565b346101a1565b3480156103e6575f80fd5b50486101a1565b3480156103f8575f80fd5b50610224005b348015610409575f80fd5b5030610384565b34801561041b575f80fd5b506101a161042a3660046106cd565b6105ef565b34801561043a575f80fd5b5032610384565b5f8180610450576104506107c9565b838509949350505050565b5f828260405161046c9291906107dd565b6040518091039020905092915050565b5f5a905090565b80825d5050565b5f87878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525093945050505086810b90036104d757805160208201a061057e565b855f0b6001036104ee5784815160208301a161057e565b855f0b600203610506578385825160208401a261057e565b855f0b60030361051f57828486835160208501a361057e565b855f0b6004036105395781838587845160208601a461057e565b60405162461bcd60e51b8152602060048201526016602482015275696e76616c6964206e20666f7220656d6974206c6f6760501b604482015260640160405180910390fd5b5050505050505050565b5f61059382846107ec565b9392505050565b604080516127108082526127408201909252606091905f9082602082018180368337019050509050815f60208301863c923b83525090919050565b5f81806105e4576105e46107c9565b838508949350505050565b5f61059382846107ff565b5f805f6060848603121561060c575f80fd5b505081359360208301359350604090920135919050565b5f60208284031215610633575f80fd5b81356001600160a01b0381168114610593575f80fd5b5f8083601f840112610659575f80fd5b50813567ffffffffffffffff811115610670575f80fd5b602083019150836020828501011115610687575f80fd5b9250929050565b5f806020838503121561069f575f80fd5b823567ffffffffffffffff8111156106b5575f80fd5b6106c185828601610649565b90969095509350505050565b5f80604083850312156106de575f80fd5b50508035926020909101359150565b5f805f805f805f60c0888a031215610703575f80fd5b873567ffffffffffffffff811115610719575f80fd5b6107258a828b01610649565b90985096505060208801355f81900b811461073e575f80fd5b96999598509596604081013596506060810135956080820135955060a0909101359350915050565b5f602080835283518060208501525f5b8181101561079257858101830151858201604001528201610776565b505f604082860101526040601f19601f8301168501019250505092915050565b5f602082840312156107c2575f80fd5b5035919050565b634e487b7160e01b5f52601260045260245ffd5b818382375f9101908152919050565b5f826107fa576107fa6107c9565b500490565b5f8261080d5761080d6107c9565b50069056fea2646970667358221220b8a238aafe3fdbfea9be288ac225ff167466dcd9b857d846f81cea9c4088294064736f6c63430008180033",
509
+ "bytecode": "0x608060405234801561000f575f80fd5b506108488061001d5f395ff3fe60806040526004361061017e575f3560e01c806398071112116100d4578063d294cb0f11610083578063d294cb0f1461039c578063d737d0c7146103c3578063ddf363d7146103d5578063e5c47e1d146103db578063e6334eea146103ed578063f6b4dfb4146103fe578063f7be3e8d14610410578063f96757d11461042f575f80fd5b806398071112146102cb5780639c16cfe8146102f7578063a520508f14610315578063a83ede1c14610333578063adb6183214610352578063cd84980e14610364578063cebcbba914610376575f80fd5b806357e871e71161013057806357e871e7146102385780636417b4d51461024a5780637877a797146102695780637c6aa4661461027b5780637d00629614610226578063860e61991461029a57806389995319146102ac575f80fd5b8063131260d0146101825780632233a918146101b457806323fc7ef3146101d257806328ed15d5146101f15780632dc26516146101f157806334eb2d6b14610205578063534ca05414610226575b5f80fd5b34801561018d575f80fd5b506101a161019c3660046105fa565b610441565b6040519081526020015b60405180910390f35b3480156101bf575f80fd5b506101a16101ce366004610623565b3f90565b3480156101dd575f80fd5b506101a16101ec36600461068e565b61045b565b3480156101fc575f80fd5b506101a161047c565b348015610210575f80fd5b5061022461021f3660046106cd565b610483565b005b348015610231575f80fd5b503a6101a1565b348015610243575f80fd5b50436101a1565b348015610255575f80fd5b506102246102643660046106ed565b61048a565b348015610274575f80fd5b50456101a1565b348015610286575f80fd5b506101a16102953660046106cd565b610588565b3480156102a5575f80fd5b503d6101a1565b3480156102b7575f80fd5b506101a16102c63660046106cd565b900a90565b3480156102d6575f80fd5b506102ea6102e5366004610623565b61059a565b6040516101ab9190610766565b348015610302575f80fd5b506101a16103113660046107b2565b5c90565b348015610320575f80fd5b506101a161032f366004610623565b3b90565b34801561033e575f80fd5b506101a161034d3660046105fa565b6105d5565b34801561035d575f80fd5b50426101a1565b34801561036f575f80fd5b50466101a1565b348015610381575f80fd5b50415b6040516001600160a01b0390911681526020016101ab565b3480156103a7575f80fd5b506101a16103b6366004610623565b6001600160a01b03163190565b3480156103ce575f80fd5b5033610384565b346101a1565b3480156103e6575f80fd5b50486101a1565b3480156103f8575f80fd5b50610224005b348015610409575f80fd5b5030610384565b34801561041b575f80fd5b506101a161042a3660046106cd565b6105ef565b34801561043a575f80fd5b5032610384565b5f8180610450576104506107c9565b838509949350505050565b5f828260405161046c9291906107dd565b6040518091039020905092915050565b5f5a905090565b80825d5050565b5f87878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525093945050505086810b90036104d757805160208201a061057e565b855f0b6001036104ee5784815160208301a161057e565b855f0b600203610506578385825160208401a261057e565b855f0b60030361051f57828486835160208501a361057e565b855f0b6004036105395781838587845160208601a461057e565b60405162461bcd60e51b8152602060048201526016602482015275696e76616c6964206e20666f7220656d6974206c6f6760501b604482015260640160405180910390fd5b5050505050505050565b5f61059382846107ec565b9392505050565b604080516127108082526127408201909252606091905f9082602082018180368337019050509050815f60208301863c923b83525090919050565b5f81806105e4576105e46107c9565b838508949350505050565b5f61059382846107ff565b5f805f6060848603121561060c575f80fd5b505081359360208301359350604090920135919050565b5f60208284031215610633575f80fd5b81356001600160a01b0381168114610593575f80fd5b5f8083601f840112610659575f80fd5b50813567ffffffffffffffff811115610670575f80fd5b602083019150836020828501011115610687575f80fd5b9250929050565b5f806020838503121561069f575f80fd5b823567ffffffffffffffff8111156106b5575f80fd5b6106c185828601610649565b90969095509350505050565b5f80604083850312156106de575f80fd5b50508035926020909101359150565b5f805f805f805f60c0888a031215610703575f80fd5b873567ffffffffffffffff811115610719575f80fd5b6107258a828b01610649565b90985096505060208801355f81900b811461073e575f80fd5b96999598509596604081013596506060810135956080820135955060a0909101359350915050565b5f602080835283518060208501525f5b8181101561079257858101830151858201604001528201610776565b505f604082860101526040601f19601f8301168501019250505092915050565b5f602082840312156107c2575f80fd5b5035919050565b634e487b7160e01b5f52601260045260245ffd5b818382375f9101908152919050565b5f826107fa576107fa6107c9565b500490565b5f8261080d5761080d6107c9565b50069056fea2646970667358221220b82665ce76e0c9d76faef6a2899b8ef792948f56982119651414ba91ade9434864736f6c63430008180033",
510
+ "deployedBytecode": "0x60806040526004361061017e575f3560e01c806398071112116100d4578063d294cb0f11610083578063d294cb0f1461039c578063d737d0c7146103c3578063ddf363d7146103d5578063e5c47e1d146103db578063e6334eea146103ed578063f6b4dfb4146103fe578063f7be3e8d14610410578063f96757d11461042f575f80fd5b806398071112146102cb5780639c16cfe8146102f7578063a520508f14610315578063a83ede1c14610333578063adb6183214610352578063cd84980e14610364578063cebcbba914610376575f80fd5b806357e871e71161013057806357e871e7146102385780636417b4d51461024a5780637877a797146102695780637c6aa4661461027b5780637d00629614610226578063860e61991461029a57806389995319146102ac575f80fd5b8063131260d0146101825780632233a918146101b457806323fc7ef3146101d257806328ed15d5146101f15780632dc26516146101f157806334eb2d6b14610205578063534ca05414610226575b5f80fd5b34801561018d575f80fd5b506101a161019c3660046105fa565b610441565b6040519081526020015b60405180910390f35b3480156101bf575f80fd5b506101a16101ce366004610623565b3f90565b3480156101dd575f80fd5b506101a16101ec36600461068e565b61045b565b3480156101fc575f80fd5b506101a161047c565b348015610210575f80fd5b5061022461021f3660046106cd565b610483565b005b348015610231575f80fd5b503a6101a1565b348015610243575f80fd5b50436101a1565b348015610255575f80fd5b506102246102643660046106ed565b61048a565b348015610274575f80fd5b50456101a1565b348015610286575f80fd5b506101a16102953660046106cd565b610588565b3480156102a5575f80fd5b503d6101a1565b3480156102b7575f80fd5b506101a16102c63660046106cd565b900a90565b3480156102d6575f80fd5b506102ea6102e5366004610623565b61059a565b6040516101ab9190610766565b348015610302575f80fd5b506101a16103113660046107b2565b5c90565b348015610320575f80fd5b506101a161032f366004610623565b3b90565b34801561033e575f80fd5b506101a161034d3660046105fa565b6105d5565b34801561035d575f80fd5b50426101a1565b34801561036f575f80fd5b50466101a1565b348015610381575f80fd5b50415b6040516001600160a01b0390911681526020016101ab565b3480156103a7575f80fd5b506101a16103b6366004610623565b6001600160a01b03163190565b3480156103ce575f80fd5b5033610384565b346101a1565b3480156103e6575f80fd5b50486101a1565b3480156103f8575f80fd5b50610224005b348015610409575f80fd5b5030610384565b34801561041b575f80fd5b506101a161042a3660046106cd565b6105ef565b34801561043a575f80fd5b5032610384565b5f8180610450576104506107c9565b838509949350505050565b5f828260405161046c9291906107dd565b6040518091039020905092915050565b5f5a905090565b80825d5050565b5f87878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525093945050505086810b90036104d757805160208201a061057e565b855f0b6001036104ee5784815160208301a161057e565b855f0b600203610506578385825160208401a261057e565b855f0b60030361051f57828486835160208501a361057e565b855f0b6004036105395781838587845160208601a461057e565b60405162461bcd60e51b8152602060048201526016602482015275696e76616c6964206e20666f7220656d6974206c6f6760501b604482015260640160405180910390fd5b5050505050505050565b5f61059382846107ec565b9392505050565b604080516127108082526127408201909252606091905f9082602082018180368337019050509050815f60208301863c923b83525090919050565b5f81806105e4576105e46107c9565b838508949350505050565b5f61059382846107ff565b5f805f6060848603121561060c575f80fd5b505081359360208301359350604090920135919050565b5f60208284031215610633575f80fd5b81356001600160a01b0381168114610593575f80fd5b5f8083601f840112610659575f80fd5b50813567ffffffffffffffff811115610670575f80fd5b602083019150836020828501011115610687575f80fd5b9250929050565b5f806020838503121561069f575f80fd5b823567ffffffffffffffff8111156106b5575f80fd5b6106c185828601610649565b90969095509350505050565b5f80604083850312156106de575f80fd5b50508035926020909101359150565b5f805f805f805f60c0888a031215610703575f80fd5b873567ffffffffffffffff811115610719575f80fd5b6107258a828b01610649565b90985096505060208801355f81900b811461073e575f80fd5b96999598509596604081013596506060810135956080820135955060a0909101359350915050565b5f602080835283518060208501525f5b8181101561079257858101830151858201604001528201610776565b505f604082860101526040601f19601f8301168501019250505092915050565b5f602082840312156107c2575f80fd5b5035919050565b634e487b7160e01b5f52601260045260245ffd5b818382375f9101908152919050565b5f826107fa576107fa6107c9565b500490565b5f8261080d5761080d6107c9565b50069056fea2646970667358221220b82665ce76e0c9d76faef6a2899b8ef792948f56982119651414ba91ade9434864736f6c63430008180033",
511
511
  "linkReferences": {},
512
512
  "deployedLinkReferences": {}
513
513
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/671b0778dc33f2c1b20cf41504c8e4d9.json"
3
+ "buildInfo": "../../../build-info/20d3c20b27a0078f8acb7ef1c538821c.json"
4
4
  }
@@ -675,8 +675,8 @@
675
675
  "type": "function"
676
676
  }
677
677
  ],
678
- "bytecode": "0x60a060405234801561001057600080fd5b506201cccc608052608051610c9861003360003960006103900152610c986000f3fe6080604052600436106101605760003560e01c80638456cb59116100c1578063c474d2c51161007a578063c474d2c514610320578063e3de72a51461033e578063e6bd12cf14610259578063e78cea921461035e578063e8eb1dc31461037e578063ee35f327146103b2578063efeadb6d146103d257600080fd5b80638456cb59146101dd5780638a631aa6146102825780638b3240a01461029d578063a66b327d146102ca578063b75436bb146102e5578063babcc5391461030557600080fd5b80635075788b1161011e5780635075788b146101655780635c975abb1461021c5780635e9167581461023d578063679b6ded1461024b57806367ef3ab8146102595780636e6e8a6a1461024b57806370665f141461026757600080fd5b8062f72382146101655780631fe927cf1461019857806322bd5c1c146101b85780633f4ba83a146101dd578063439370b1146101f4578063485cc955146101fc575b600080fd5b34801561017157600080fd5b506101856101803660046106b9565b6103ed565b6040519081526020015b60405180910390f35b3480156101a457600080fd5b506101856101b3366004610735565b610410565b3480156101c457600080fd5b506101cd6103ed565b604051901515815260200161018f565b3480156101e957600080fd5b506101f26104a9565b005b6101856103ed565b34801561020857600080fd5b506101f2610217366004610776565b6104e3565b34801561022857600080fd5b506001546101cd90600160a01b900460ff1681565b6101856101803660046107af565b610185610180366004610818565b6101856101803660046108bc565b34801561027357600080fd5b5061018561018036600461092e565b34801561028e57600080fd5b5061018561018036600461097b565b3480156102a957600080fd5b506102b26103ed565b6040516001600160a01b03909116815260200161018f565b3480156102d657600080fd5b506101856101803660046109cf565b3480156102f157600080fd5b50610185610300366004610735565b61054e565b34801561031157600080fd5b506101cd6101803660046109f1565b34801561032c57600080fd5b506101f261033b3660046109f1565b50565b34801561034a57600080fd5b506101f2610359366004610b05565b6105aa565b34801561036a57600080fd5b506000546102b2906001600160a01b031681565b34801561038a57600080fd5b506101857f000000000000000000000000000000000000000000000000000000000000000081565b3480156103be57600080fd5b506001546102b2906001600160a01b031681565b3480156103de57600080fd5b506101f2610359366004610bc6565b600060405162461bcd60e51b815260040161040790610be1565b60405180910390fd5b600033321461044f5760405162461bcd60e51b815260206004820152600b60248201526a6f726967696e206f6e6c7960a81b6044820152606401610407565b60006104746003338686604051610467929190610c0a565b60405180910390206105c2565b60405190915081907fab532385be8f1005a4b6ba8fa20a2245facb346134ac739fe9a5198dc1580b9c90600090a29392505050565b60405162461bcd60e51b815260206004820152600f60248201526e1393d5081253541311535153951151608a1b6044820152606401610407565b6000546001600160a01b03161561052b5760405162461bcd60e51b815260206004820152600c60248201526b1053149150511657d253925560a21b6044820152606401610407565b50600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000806105676003338686604051610467929190610c0a565b9050807fff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60b858560405161059b929190610c1a565b60405180910390a29392505050565b60405162461bcd60e51b815260040161040790610be1565b60008054604051638db5993b60e01b815260ff861660048201526001600160a01b0385811660248301526044820185905290911690638db5993b9034906064016020604051808303818588803b15801561061b57600080fd5b505af115801561062f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906106549190610c49565b949350505050565b6001600160a01b038116811461033b57600080fd5b60008083601f84011261068357600080fd5b5081356001600160401b0381111561069a57600080fd5b6020830191508360208285010111156106b257600080fd5b9250929050565b600080600080600080600060c0888a0312156106d457600080fd5b87359650602088013595506040880135945060608801356106f48161065c565b93506080880135925060a08801356001600160401b0381111561071657600080fd5b6107228a828b01610671565b989b979a50959850939692959293505050565b6000806020838503121561074857600080fd5b82356001600160401b0381111561075e57600080fd5b61076a85828601610671565b90969095509350505050565b6000806040838503121561078957600080fd5b82356107948161065c565b915060208301356107a48161065c565b809150509250929050565b6000806000806000608086880312156107c757600080fd5b853594506020860135935060408601356107e08161065c565b925060608601356001600160401b038111156107fb57600080fd5b61080788828901610671565b969995985093965092949392505050565b60008060008060008060008060006101008a8c03121561083757600080fd5b89356108428161065c565b985060208a0135975060408a0135965060608a01356108608161065c565b955060808a01356108708161065c565b945060a08a0135935060c08a0135925060e08a01356001600160401b0381111561089957600080fd5b6108a58c828d01610671565b915080935050809150509295985092959850929598565b60008060008060008060a087890312156108d557600080fd5b86359550602087013594506040870135935060608701356108f58161065c565b925060808701356001600160401b0381111561091057600080fd5b61091c89828a01610671565b979a9699509497509295939492505050565b600080600080600060a0868803121561094657600080fd5b85359450602086013593506040860135925060608601359150608086013561096d8161065c565b809150509295509295909350565b60008060008060008060a0878903121561099457600080fd5b863595506020870135945060408701356109ad8161065c565b93506060870135925060808701356001600160401b0381111561091057600080fd5b600080604083850312156109e257600080fd5b50508035926020909101359150565b600060208284031215610a0357600080fd5b8135610a0e8161065c565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715610a5357610a53610a15565b604052919050565b60006001600160401b03821115610a7457610a74610a15565b5060051b60200190565b80358015158114610a8e57600080fd5b919050565b600082601f830112610aa457600080fd5b81356020610ab9610ab483610a5b565b610a2b565b82815260059290921b84018101918181019086841115610ad857600080fd5b8286015b84811015610afa57610aed81610a7e565b8352918301918301610adc565b509695505050505050565b60008060408385031215610b1857600080fd5b82356001600160401b0380821115610b2f57600080fd5b818501915085601f830112610b4357600080fd5b81356020610b53610ab483610a5b565b82815260059290921b84018101918181019089841115610b7257600080fd5b948201945b83861015610b99578535610b8a8161065c565b82529482019490820190610b77565b96505086013592505080821115610baf57600080fd5b50610bbc85828601610a93565b9150509250929050565b600060208284031215610bd857600080fd5b610a0e82610a7e565b6020808252600f908201526e1393d517d253541311535153951151608a1b604082015260600190565b8183823760009101908152919050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b600060208284031215610c5b57600080fd5b505191905056fea264697066735822122048d83c21592a9929be020346b62eb9aeb7b0fb950feb332c1cc82b9a09e15a9c64736f6c63430008090033",
679
- "deployedBytecode": "0x6080604052600436106101605760003560e01c80638456cb59116100c1578063c474d2c51161007a578063c474d2c514610320578063e3de72a51461033e578063e6bd12cf14610259578063e78cea921461035e578063e8eb1dc31461037e578063ee35f327146103b2578063efeadb6d146103d257600080fd5b80638456cb59146101dd5780638a631aa6146102825780638b3240a01461029d578063a66b327d146102ca578063b75436bb146102e5578063babcc5391461030557600080fd5b80635075788b1161011e5780635075788b146101655780635c975abb1461021c5780635e9167581461023d578063679b6ded1461024b57806367ef3ab8146102595780636e6e8a6a1461024b57806370665f141461026757600080fd5b8062f72382146101655780631fe927cf1461019857806322bd5c1c146101b85780633f4ba83a146101dd578063439370b1146101f4578063485cc955146101fc575b600080fd5b34801561017157600080fd5b506101856101803660046106b9565b6103ed565b6040519081526020015b60405180910390f35b3480156101a457600080fd5b506101856101b3366004610735565b610410565b3480156101c457600080fd5b506101cd6103ed565b604051901515815260200161018f565b3480156101e957600080fd5b506101f26104a9565b005b6101856103ed565b34801561020857600080fd5b506101f2610217366004610776565b6104e3565b34801561022857600080fd5b506001546101cd90600160a01b900460ff1681565b6101856101803660046107af565b610185610180366004610818565b6101856101803660046108bc565b34801561027357600080fd5b5061018561018036600461092e565b34801561028e57600080fd5b5061018561018036600461097b565b3480156102a957600080fd5b506102b26103ed565b6040516001600160a01b03909116815260200161018f565b3480156102d657600080fd5b506101856101803660046109cf565b3480156102f157600080fd5b50610185610300366004610735565b61054e565b34801561031157600080fd5b506101cd6101803660046109f1565b34801561032c57600080fd5b506101f261033b3660046109f1565b50565b34801561034a57600080fd5b506101f2610359366004610b05565b6105aa565b34801561036a57600080fd5b506000546102b2906001600160a01b031681565b34801561038a57600080fd5b506101857f000000000000000000000000000000000000000000000000000000000000000081565b3480156103be57600080fd5b506001546102b2906001600160a01b031681565b3480156103de57600080fd5b506101f2610359366004610bc6565b600060405162461bcd60e51b815260040161040790610be1565b60405180910390fd5b600033321461044f5760405162461bcd60e51b815260206004820152600b60248201526a6f726967696e206f6e6c7960a81b6044820152606401610407565b60006104746003338686604051610467929190610c0a565b60405180910390206105c2565b60405190915081907fab532385be8f1005a4b6ba8fa20a2245facb346134ac739fe9a5198dc1580b9c90600090a29392505050565b60405162461bcd60e51b815260206004820152600f60248201526e1393d5081253541311535153951151608a1b6044820152606401610407565b6000546001600160a01b03161561052b5760405162461bcd60e51b815260206004820152600c60248201526b1053149150511657d253925560a21b6044820152606401610407565b50600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000806105676003338686604051610467929190610c0a565b9050807fff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60b858560405161059b929190610c1a565b60405180910390a29392505050565b60405162461bcd60e51b815260040161040790610be1565b60008054604051638db5993b60e01b815260ff861660048201526001600160a01b0385811660248301526044820185905290911690638db5993b9034906064016020604051808303818588803b15801561061b57600080fd5b505af115801561062f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906106549190610c49565b949350505050565b6001600160a01b038116811461033b57600080fd5b60008083601f84011261068357600080fd5b5081356001600160401b0381111561069a57600080fd5b6020830191508360208285010111156106b257600080fd5b9250929050565b600080600080600080600060c0888a0312156106d457600080fd5b87359650602088013595506040880135945060608801356106f48161065c565b93506080880135925060a08801356001600160401b0381111561071657600080fd5b6107228a828b01610671565b989b979a50959850939692959293505050565b6000806020838503121561074857600080fd5b82356001600160401b0381111561075e57600080fd5b61076a85828601610671565b90969095509350505050565b6000806040838503121561078957600080fd5b82356107948161065c565b915060208301356107a48161065c565b809150509250929050565b6000806000806000608086880312156107c757600080fd5b853594506020860135935060408601356107e08161065c565b925060608601356001600160401b038111156107fb57600080fd5b61080788828901610671565b969995985093965092949392505050565b60008060008060008060008060006101008a8c03121561083757600080fd5b89356108428161065c565b985060208a0135975060408a0135965060608a01356108608161065c565b955060808a01356108708161065c565b945060a08a0135935060c08a0135925060e08a01356001600160401b0381111561089957600080fd5b6108a58c828d01610671565b915080935050809150509295985092959850929598565b60008060008060008060a087890312156108d557600080fd5b86359550602087013594506040870135935060608701356108f58161065c565b925060808701356001600160401b0381111561091057600080fd5b61091c89828a01610671565b979a9699509497509295939492505050565b600080600080600060a0868803121561094657600080fd5b85359450602086013593506040860135925060608601359150608086013561096d8161065c565b809150509295509295909350565b60008060008060008060a0878903121561099457600080fd5b863595506020870135945060408701356109ad8161065c565b93506060870135925060808701356001600160401b0381111561091057600080fd5b600080604083850312156109e257600080fd5b50508035926020909101359150565b600060208284031215610a0357600080fd5b8135610a0e8161065c565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715610a5357610a53610a15565b604052919050565b60006001600160401b03821115610a7457610a74610a15565b5060051b60200190565b80358015158114610a8e57600080fd5b919050565b600082601f830112610aa457600080fd5b81356020610ab9610ab483610a5b565b610a2b565b82815260059290921b84018101918181019086841115610ad857600080fd5b8286015b84811015610afa57610aed81610a7e565b8352918301918301610adc565b509695505050505050565b60008060408385031215610b1857600080fd5b82356001600160401b0380821115610b2f57600080fd5b818501915085601f830112610b4357600080fd5b81356020610b53610ab483610a5b565b82815260059290921b84018101918181019089841115610b7257600080fd5b948201945b83861015610b99578535610b8a8161065c565b82529482019490820190610b77565b96505086013592505080821115610baf57600080fd5b50610bbc85828601610a93565b9150509250929050565b600060208284031215610bd857600080fd5b610a0e82610a7e565b6020808252600f908201526e1393d517d253541311535153951151608a1b604082015260600190565b8183823760009101908152919050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b600060208284031215610c5b57600080fd5b505191905056fea264697066735822122048d83c21592a9929be020346b62eb9aeb7b0fb950feb332c1cc82b9a09e15a9c64736f6c63430008090033",
678
+ "bytecode": "0x60a060405234801561001057600080fd5b506201cccc608052608051610dee61003360003960006103fb0152610dee6000f3fe6080604052600436106101a05760003560e01c80638456cb59116100e1578063c474d2c51161008a578063e78cea9211610064578063e78cea92146103bc578063e8eb1dc3146103e9578063ee35f3271461041d578063efeadb6d1461044a57600080fd5b8063c474d2c51461037e578063e3de72a51461039c578063e6bd12cf146102aa57600080fd5b8063a66b327d116100bb578063a66b327d14610328578063b75436bb14610343578063babcc5391461036357600080fd5b80638456cb591461021d5780638a631aa6146102d35780638b3240a0146102ee57600080fd5b80635075788b1161014e578063679b6ded11610128578063679b6ded1461029c57806367ef3ab8146102aa5780636e6e8a6a1461029c57806370665f14146102b857600080fd5b80635075788b146101a55780635c975abb1461025c5780635e9167581461028e57600080fd5b80633f4ba83a1161017f5780633f4ba83a1461021d578063439370b114610234578063485cc9551461023c57600080fd5b8062f72382146101a55780631fe927cf146101d857806322bd5c1c146101f8575b600080fd5b3480156101b157600080fd5b506101c56101c0366004610816565b610465565b6040519081526020015b60405180910390f35b3480156101e457600080fd5b506101c56101f3366004610893565b6104b5565b34801561020457600080fd5b5061020d610465565b60405190151581526020016101cf565b34801561022957600080fd5b50610232610560565b005b6101c5610465565b34801561024857600080fd5b506102326102573660046108d5565b6105a8565b34801561026857600080fd5b5060015461020d9074010000000000000000000000000000000000000000900460ff1681565b6101c56101c036600461090e565b6101c56101c0366004610978565b6101c56101c0366004610a1d565b3480156102c457600080fd5b506101c56101c0366004610a90565b3480156102df57600080fd5b506101c56101c0366004610add565b3480156102fa57600080fd5b50610303610465565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101cf565b34801561033457600080fd5b506101c56101c0366004610b32565b34801561034f57600080fd5b506101c561035e366004610893565b610656565b34801561036f57600080fd5b5061020d6101c0366004610b54565b34801561038a57600080fd5b50610232610399366004610b54565b50565b3480156103a857600080fd5b506102326103b7366004610c83565b6106b2565b3480156103c857600080fd5b506000546103039073ffffffffffffffffffffffffffffffffffffffff1681565b3480156103f557600080fd5b506101c57f000000000000000000000000000000000000000000000000000000000000000081565b34801561042957600080fd5b506001546103039073ffffffffffffffffffffffffffffffffffffffff1681565b34801561045657600080fd5b506102326103b7366004610d45565b60405162461bcd60e51b815260206004820152600f60248201527f4e4f545f494d504c454d454e544544000000000000000000000000000000000060448201526000906064015b60405180910390fd5b60003332146105065760405162461bcd60e51b815260206004820152600b60248201527f6f726967696e206f6e6c7900000000000000000000000000000000000000000060448201526064016104ac565b600061052b600333868660405161051e929190610d60565b60405180910390206106fa565b60405190915081907fab532385be8f1005a4b6ba8fa20a2245facb346134ac739fe9a5198dc1580b9c90600090a29392505050565b60405162461bcd60e51b815260206004820152600f60248201527f4e4f5420494d504c454d454e544544000000000000000000000000000000000060448201526064016104ac565b60005473ffffffffffffffffffffffffffffffffffffffff161561060e5760405162461bcd60e51b815260206004820152600c60248201527f414c52454144595f494e4954000000000000000000000000000000000000000060448201526064016104ac565b50600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008061066f600333868660405161051e929190610d60565b9050807fff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60b85856040516106a3929190610d70565b60405180910390a29392505050565b60405162461bcd60e51b815260206004820152600f60248201527f4e4f545f494d504c454d454e544544000000000000000000000000000000000060448201526064016104ac565b600080546040517f8db5993b00000000000000000000000000000000000000000000000000000000815260ff8616600482015273ffffffffffffffffffffffffffffffffffffffff85811660248301526044820185905290911690638db5993b90349060640160206040518083038185885af115801561077e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906107a39190610d9f565b949350505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461039957600080fd5b60008083601f8401126107df57600080fd5b50813567ffffffffffffffff8111156107f757600080fd5b60208301915083602082850101111561080f57600080fd5b9250929050565b600080600080600080600060c0888a03121561083157600080fd5b8735965060208801359550604088013594506060880135610851816107ab565b93506080880135925060a088013567ffffffffffffffff81111561087457600080fd5b6108808a828b016107cd565b989b979a50959850939692959293505050565b600080602083850312156108a657600080fd5b823567ffffffffffffffff8111156108bd57600080fd5b6108c9858286016107cd565b90969095509350505050565b600080604083850312156108e857600080fd5b82356108f3816107ab565b91506020830135610903816107ab565b809150509250929050565b60008060008060006080868803121561092657600080fd5b8535945060208601359350604086013561093f816107ab565b9250606086013567ffffffffffffffff81111561095b57600080fd5b610967888289016107cd565b969995985093965092949392505050565b60008060008060008060008060006101008a8c03121561099757600080fd5b89356109a2816107ab565b985060208a0135975060408a0135965060608a01356109c0816107ab565b955060808a01356109d0816107ab565b945060a08a0135935060c08a0135925060e08a013567ffffffffffffffff8111156109fa57600080fd5b610a068c828d016107cd565b915080935050809150509295985092959850929598565b60008060008060008060a08789031215610a3657600080fd5b8635955060208701359450604087013593506060870135610a56816107ab565b9250608087013567ffffffffffffffff811115610a7257600080fd5b610a7e89828a016107cd565b979a9699509497509295939492505050565b600080600080600060a08688031215610aa857600080fd5b853594506020860135935060408601359250606086013591506080860135610acf816107ab565b809150509295509295909350565b60008060008060008060a08789031215610af657600080fd5b86359550602087013594506040870135610b0f816107ab565b935060608701359250608087013567ffffffffffffffff811115610a7257600080fd5b60008060408385031215610b4557600080fd5b50508035926020909101359150565b600060208284031215610b6657600080fd5b8135610b71816107ab565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610bd057610bd0610b78565b604052919050565b600067ffffffffffffffff821115610bf257610bf2610b78565b5060051b60200190565b80358015158114610c0c57600080fd5b919050565b600082601f830112610c2257600080fd5b81356020610c37610c3283610bd8565b610ba7565b82815260059290921b84018101918181019086841115610c5657600080fd5b8286015b84811015610c7857610c6b81610bfc565b8352918301918301610c5a565b509695505050505050565b60008060408385031215610c9657600080fd5b823567ffffffffffffffff80821115610cae57600080fd5b818501915085601f830112610cc257600080fd5b81356020610cd2610c3283610bd8565b82815260059290921b84018101918181019089841115610cf157600080fd5b948201945b83861015610d18578535610d09816107ab565b82529482019490820190610cf6565b96505086013592505080821115610d2e57600080fd5b50610d3b85828601610c11565b9150509250929050565b600060208284031215610d5757600080fd5b610b7182610bfc565b8183823760009101908152919050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b600060208284031215610db157600080fd5b505191905056fea2646970667358221220e59236b39b72fa4f85e8062efd24b3a04a647d04a6151107c47dea1015c48de764736f6c63430008110033",
679
+ "deployedBytecode": "0x6080604052600436106101a05760003560e01c80638456cb59116100e1578063c474d2c51161008a578063e78cea9211610064578063e78cea92146103bc578063e8eb1dc3146103e9578063ee35f3271461041d578063efeadb6d1461044a57600080fd5b8063c474d2c51461037e578063e3de72a51461039c578063e6bd12cf146102aa57600080fd5b8063a66b327d116100bb578063a66b327d14610328578063b75436bb14610343578063babcc5391461036357600080fd5b80638456cb591461021d5780638a631aa6146102d35780638b3240a0146102ee57600080fd5b80635075788b1161014e578063679b6ded11610128578063679b6ded1461029c57806367ef3ab8146102aa5780636e6e8a6a1461029c57806370665f14146102b857600080fd5b80635075788b146101a55780635c975abb1461025c5780635e9167581461028e57600080fd5b80633f4ba83a1161017f5780633f4ba83a1461021d578063439370b114610234578063485cc9551461023c57600080fd5b8062f72382146101a55780631fe927cf146101d857806322bd5c1c146101f8575b600080fd5b3480156101b157600080fd5b506101c56101c0366004610816565b610465565b6040519081526020015b60405180910390f35b3480156101e457600080fd5b506101c56101f3366004610893565b6104b5565b34801561020457600080fd5b5061020d610465565b60405190151581526020016101cf565b34801561022957600080fd5b50610232610560565b005b6101c5610465565b34801561024857600080fd5b506102326102573660046108d5565b6105a8565b34801561026857600080fd5b5060015461020d9074010000000000000000000000000000000000000000900460ff1681565b6101c56101c036600461090e565b6101c56101c0366004610978565b6101c56101c0366004610a1d565b3480156102c457600080fd5b506101c56101c0366004610a90565b3480156102df57600080fd5b506101c56101c0366004610add565b3480156102fa57600080fd5b50610303610465565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101cf565b34801561033457600080fd5b506101c56101c0366004610b32565b34801561034f57600080fd5b506101c561035e366004610893565b610656565b34801561036f57600080fd5b5061020d6101c0366004610b54565b34801561038a57600080fd5b50610232610399366004610b54565b50565b3480156103a857600080fd5b506102326103b7366004610c83565b6106b2565b3480156103c857600080fd5b506000546103039073ffffffffffffffffffffffffffffffffffffffff1681565b3480156103f557600080fd5b506101c57f000000000000000000000000000000000000000000000000000000000000000081565b34801561042957600080fd5b506001546103039073ffffffffffffffffffffffffffffffffffffffff1681565b34801561045657600080fd5b506102326103b7366004610d45565b60405162461bcd60e51b815260206004820152600f60248201527f4e4f545f494d504c454d454e544544000000000000000000000000000000000060448201526000906064015b60405180910390fd5b60003332146105065760405162461bcd60e51b815260206004820152600b60248201527f6f726967696e206f6e6c7900000000000000000000000000000000000000000060448201526064016104ac565b600061052b600333868660405161051e929190610d60565b60405180910390206106fa565b60405190915081907fab532385be8f1005a4b6ba8fa20a2245facb346134ac739fe9a5198dc1580b9c90600090a29392505050565b60405162461bcd60e51b815260206004820152600f60248201527f4e4f5420494d504c454d454e544544000000000000000000000000000000000060448201526064016104ac565b60005473ffffffffffffffffffffffffffffffffffffffff161561060e5760405162461bcd60e51b815260206004820152600c60248201527f414c52454144595f494e4954000000000000000000000000000000000000000060448201526064016104ac565b50600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008061066f600333868660405161051e929190610d60565b9050807fff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60b85856040516106a3929190610d70565b60405180910390a29392505050565b60405162461bcd60e51b815260206004820152600f60248201527f4e4f545f494d504c454d454e544544000000000000000000000000000000000060448201526064016104ac565b600080546040517f8db5993b00000000000000000000000000000000000000000000000000000000815260ff8616600482015273ffffffffffffffffffffffffffffffffffffffff85811660248301526044820185905290911690638db5993b90349060640160206040518083038185885af115801561077e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906107a39190610d9f565b949350505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461039957600080fd5b60008083601f8401126107df57600080fd5b50813567ffffffffffffffff8111156107f757600080fd5b60208301915083602082850101111561080f57600080fd5b9250929050565b600080600080600080600060c0888a03121561083157600080fd5b8735965060208801359550604088013594506060880135610851816107ab565b93506080880135925060a088013567ffffffffffffffff81111561087457600080fd5b6108808a828b016107cd565b989b979a50959850939692959293505050565b600080602083850312156108a657600080fd5b823567ffffffffffffffff8111156108bd57600080fd5b6108c9858286016107cd565b90969095509350505050565b600080604083850312156108e857600080fd5b82356108f3816107ab565b91506020830135610903816107ab565b809150509250929050565b60008060008060006080868803121561092657600080fd5b8535945060208601359350604086013561093f816107ab565b9250606086013567ffffffffffffffff81111561095b57600080fd5b610967888289016107cd565b969995985093965092949392505050565b60008060008060008060008060006101008a8c03121561099757600080fd5b89356109a2816107ab565b985060208a0135975060408a0135965060608a01356109c0816107ab565b955060808a01356109d0816107ab565b945060a08a0135935060c08a0135925060e08a013567ffffffffffffffff8111156109fa57600080fd5b610a068c828d016107cd565b915080935050809150509295985092959850929598565b60008060008060008060a08789031215610a3657600080fd5b8635955060208701359450604087013593506060870135610a56816107ab565b9250608087013567ffffffffffffffff811115610a7257600080fd5b610a7e89828a016107cd565b979a9699509497509295939492505050565b600080600080600060a08688031215610aa857600080fd5b853594506020860135935060408601359250606086013591506080860135610acf816107ab565b809150509295509295909350565b60008060008060008060a08789031215610af657600080fd5b86359550602087013594506040870135610b0f816107ab565b935060608701359250608087013567ffffffffffffffff811115610a7257600080fd5b60008060408385031215610b4557600080fd5b50508035926020909101359150565b600060208284031215610b6657600080fd5b8135610b71816107ab565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610bd057610bd0610b78565b604052919050565b600067ffffffffffffffff821115610bf257610bf2610b78565b5060051b60200190565b80358015158114610c0c57600080fd5b919050565b600082601f830112610c2257600080fd5b81356020610c37610c3283610bd8565b610ba7565b82815260059290921b84018101918181019086841115610c5657600080fd5b8286015b84811015610c7857610c6b81610bfc565b8352918301918301610c5a565b509695505050505050565b60008060408385031215610c9657600080fd5b823567ffffffffffffffff80821115610cae57600080fd5b818501915085601f830112610cc257600080fd5b81356020610cd2610c3283610bd8565b82815260059290921b84018101918181019089841115610cf157600080fd5b948201945b83861015610d18578535610d09816107ab565b82529482019490820190610cf6565b96505086013592505080821115610d2e57600080fd5b50610d3b85828601610c11565b9150509250929050565b600060208284031215610d5757600080fd5b610b7182610bfc565b8183823760009101908152919050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b600060208284031215610db157600080fd5b505191905056fea2646970667358221220e59236b39b72fa4f85e8062efd24b3a04a647d04a6151107c47dea1015c48de764736f6c63430008110033",
680
680
  "linkReferences": {},
681
681
  "deployedLinkReferences": {}
682
682
  }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/20d3c20b27a0078f8acb7ef1c538821c.json"
4
+ }
@@ -0,0 +1,227 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "MerkleTreeAccess",
4
+ "sourceName": "src/mocks/MerkleTreeAccess.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "uint256",
10
+ "name": "actualLength",
11
+ "type": "uint256"
12
+ },
13
+ {
14
+ "internalType": "uint256",
15
+ "name": "maxProofLength",
16
+ "type": "uint256"
17
+ }
18
+ ],
19
+ "name": "MerkleProofTooLong",
20
+ "type": "error"
21
+ },
22
+ {
23
+ "inputs": [
24
+ {
25
+ "internalType": "bytes32[]",
26
+ "name": "me",
27
+ "type": "bytes32[]"
28
+ },
29
+ {
30
+ "internalType": "uint256",
31
+ "name": "level",
32
+ "type": "uint256"
33
+ },
34
+ {
35
+ "internalType": "bytes32",
36
+ "name": "subtreeRoot",
37
+ "type": "bytes32"
38
+ }
39
+ ],
40
+ "name": "appendCompleteSubTree",
41
+ "outputs": [
42
+ {
43
+ "internalType": "bytes32[]",
44
+ "name": "",
45
+ "type": "bytes32[]"
46
+ }
47
+ ],
48
+ "stateMutability": "pure",
49
+ "type": "function"
50
+ },
51
+ {
52
+ "inputs": [
53
+ {
54
+ "internalType": "bytes32[]",
55
+ "name": "me",
56
+ "type": "bytes32[]"
57
+ },
58
+ {
59
+ "internalType": "bytes32",
60
+ "name": "leaf",
61
+ "type": "bytes32"
62
+ }
63
+ ],
64
+ "name": "appendLeaf",
65
+ "outputs": [
66
+ {
67
+ "internalType": "bytes32[]",
68
+ "name": "",
69
+ "type": "bytes32[]"
70
+ }
71
+ ],
72
+ "stateMutability": "pure",
73
+ "type": "function"
74
+ },
75
+ {
76
+ "inputs": [
77
+ {
78
+ "internalType": "uint256",
79
+ "name": "x",
80
+ "type": "uint256"
81
+ }
82
+ ],
83
+ "name": "leastSignificantBit",
84
+ "outputs": [
85
+ {
86
+ "internalType": "uint256",
87
+ "name": "",
88
+ "type": "uint256"
89
+ }
90
+ ],
91
+ "stateMutability": "pure",
92
+ "type": "function"
93
+ },
94
+ {
95
+ "inputs": [
96
+ {
97
+ "internalType": "uint256",
98
+ "name": "startSize",
99
+ "type": "uint256"
100
+ },
101
+ {
102
+ "internalType": "uint256",
103
+ "name": "endSize",
104
+ "type": "uint256"
105
+ }
106
+ ],
107
+ "name": "maximumAppendBetween",
108
+ "outputs": [
109
+ {
110
+ "internalType": "uint256",
111
+ "name": "",
112
+ "type": "uint256"
113
+ }
114
+ ],
115
+ "stateMutability": "pure",
116
+ "type": "function"
117
+ },
118
+ {
119
+ "inputs": [
120
+ {
121
+ "internalType": "uint256",
122
+ "name": "x",
123
+ "type": "uint256"
124
+ }
125
+ ],
126
+ "name": "mostSignificantBit",
127
+ "outputs": [
128
+ {
129
+ "internalType": "uint256",
130
+ "name": "",
131
+ "type": "uint256"
132
+ }
133
+ ],
134
+ "stateMutability": "pure",
135
+ "type": "function"
136
+ },
137
+ {
138
+ "inputs": [
139
+ {
140
+ "internalType": "bytes32[]",
141
+ "name": "me",
142
+ "type": "bytes32[]"
143
+ }
144
+ ],
145
+ "name": "root",
146
+ "outputs": [
147
+ {
148
+ "internalType": "bytes32",
149
+ "name": "",
150
+ "type": "bytes32"
151
+ }
152
+ ],
153
+ "stateMutability": "pure",
154
+ "type": "function"
155
+ },
156
+ {
157
+ "inputs": [
158
+ {
159
+ "internalType": "bytes32",
160
+ "name": "rootHash",
161
+ "type": "bytes32"
162
+ },
163
+ {
164
+ "internalType": "bytes32",
165
+ "name": "leaf",
166
+ "type": "bytes32"
167
+ },
168
+ {
169
+ "internalType": "uint256",
170
+ "name": "index",
171
+ "type": "uint256"
172
+ },
173
+ {
174
+ "internalType": "bytes32[]",
175
+ "name": "proof",
176
+ "type": "bytes32[]"
177
+ }
178
+ ],
179
+ "name": "verifyInclusionProof",
180
+ "outputs": [],
181
+ "stateMutability": "pure",
182
+ "type": "function"
183
+ },
184
+ {
185
+ "inputs": [
186
+ {
187
+ "internalType": "bytes32",
188
+ "name": "preRoot",
189
+ "type": "bytes32"
190
+ },
191
+ {
192
+ "internalType": "uint256",
193
+ "name": "preSize",
194
+ "type": "uint256"
195
+ },
196
+ {
197
+ "internalType": "bytes32",
198
+ "name": "postRoot",
199
+ "type": "bytes32"
200
+ },
201
+ {
202
+ "internalType": "uint256",
203
+ "name": "postSize",
204
+ "type": "uint256"
205
+ },
206
+ {
207
+ "internalType": "bytes32[]",
208
+ "name": "preExpansion",
209
+ "type": "bytes32[]"
210
+ },
211
+ {
212
+ "internalType": "bytes32[]",
213
+ "name": "proof",
214
+ "type": "bytes32[]"
215
+ }
216
+ ],
217
+ "name": "verifyPrefixProof",
218
+ "outputs": [],
219
+ "stateMutability": "pure",
220
+ "type": "function"
221
+ }
222
+ ],
223
+ "bytecode": "0x608060405234801561001057600080fd5b506116b8806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063c22c47a41161005b578063c22c47a4146100ff578063ca11325314610112578063d230d23f14610125578063e6bcbc651461013857600080fd5b80635fb9c3d41461008d57806367905a7e146100a25780636bd58993146100cb578063bc2f0640146100de575b600080fd5b6100a061009b3660046112de565b61014b565b005b6100b56100b0366004611367565b610161565b6040516100c291906113b5565b60405180910390f35b6100a06100d93660046113f9565b610178565b6100f16100ec366004611453565b61018a565b6040519081526020016100c2565b6100b561010d366004611475565b61019f565b6100f16101203660046114ba565b6101ab565b6100f16101333660046114f7565b6101b6565b6100f16101463660046114f7565b6101c1565b6101598686868686866101cc565b505050505050565b606061016e8484846104f4565b90505b9392505050565b61018484848484610a7e565b50505050565b60006101968383610b0b565b90505b92915050565b60606101968383610c00565b600061019982610c36565b600061019982610dd6565b600061019982610e3f565b600085116102215760405162461bcd60e51b815260206004820152601460248201527f5072652d73697a652063616e6e6f74206265203000000000000000000000000060448201526064015b60405180910390fd5b8561022b83610c36565b146102785760405162461bcd60e51b815260206004820152601b60248201527f50726520657870616e73696f6e20726f6f74206d69736d6174636800000000006044820152606401610218565b8461028283610f85565b146102f55760405162461bcd60e51b815260206004820152602160248201527f5072652073697a6520646f6573206e6f74206d6174636820657870616e73696f60448201527f6e000000000000000000000000000000000000000000000000000000000000006064820152608401610218565b8285106103445760405162461bcd60e51b815260206004820181905260248201527f5072652073697a65206e6f74206c657373207468616e20706f73742073697a656044820152606401610218565b60008590506000806103598560008751610fe0565b90505b8583101561041c5760006103708488610b0b565b9050845183106103c25760405162461bcd60e51b815260206004820152601260248201527f496e646578206f7574206f662072616e676500000000000000000000000000006044820152606401610218565b6103e682828786815181106103d9576103d9611510565b60200260200101516104f4565b91506001811b6103f6818661153c565b9450878511156104085761040861154f565b8361041281611565565b945050505061035c565b8661042682610c36565b146104995760405162461bcd60e51b815260206004820152602260248201527f506f737420657870616e73696f6e20726f6f74206e6f7420657175616c20706f60448201527f73740000000000000000000000000000000000000000000000000000000000006064820152608401610218565b835182146104e95760405162461bcd60e51b815260206004820152601660248201527f496e636f6d706c6574652070726f6f66207573616765000000000000000000006044820152606401610218565b505050505050505050565b6060604083106105465760405162461bcd60e51b815260206004820152600e60248201527f4c6576656c20746f6f20686967680000000000000000000000000000000000006044820152606401610218565b60008290036105975760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f7420617070656e6420656d707479207375627472656500000000006044820152606401610218565b6040845111156105e95760405162461bcd60e51b815260206004820152601a60248201527f4d65726b6c6520657870616e73696f6e20746f6f206c617267650000000000006044820152606401610218565b83516000036106685760006105ff84600161153c565b67ffffffffffffffff8111156106175761061761121a565b604051908082528060200260200182016040528015610640578160200160208202803683370190505b5090508281858151811061065657610656611510565b60209081029190910101529050610171565b835183106106de5760405162461bcd60e51b815260206004820152603560248201527f4c6576656c2067726561746572207468616e2068696768657374206c6576656c60448201527f206f662063757272656e7420657870616e73696f6e00000000000000000000006064820152608401610218565b8160006106ea86610f85565b905060006106f9866002611663565b610703908361153c565b9050600061071083610e3f565b61071983610e3f565b1161076757875167ffffffffffffffff8111156107385761073861121a565b604051908082528060200260200182016040528015610761578160200160208202803683370190505b506107b7565b875161077490600161153c565b67ffffffffffffffff81111561078c5761078c61121a565b6040519080825280602002602001820160405280156107b5578160200160208202803683370190505b505b905060408151111561080b5760405162461bcd60e51b815260206004820152601c60248201527f417070656e642063726561746573206f76657273697a652074726565000000006044820152606401610218565b60005b88518110156109c757878110156108b55788818151811061083157610831611510565b60200260200101516000801b146108b05760405162461bcd60e51b815260206004820152602260248201527f417070656e642061626f7665206c65617374207369676e69666963616e74206260448201527f69740000000000000000000000000000000000000000000000000000000000006064820152608401610218565b6109b5565b60008590036108fb578881815181106108d0576108d0611510565b60200260200101518282815181106108ea576108ea611510565b6020026020010181815250506109b5565b88818151811061090d5761090d611510565b60200260200101516000801b03610945578482828151811061093157610931611510565b6020908102919091010152600094506109b5565b6000801b82828151811061095b5761095b611510565b60200260200101818152505088818151811061097957610979611510565b60200260200101518560405160200161099c929190918252602082015260400190565b6040516020818303038152906040528051906020012094505b806109bf81611565565b91505061080e565b5083156109fb578381600183516109de919061166f565b815181106109ee576109ee611510565b6020026020010181815250505b8060018251610a0a919061166f565b81518110610a1a57610a1a611510565b60200260200101516000801b03610a735760405162461bcd60e51b815260206004820152600f60248201527f4c61737420656e747279207a65726f00000000000000000000000000000000006044820152606401610218565b979650505050505050565b6000610ab3828486604051602001610a9891815260200190565b6040516020818303038152906040528051906020012061115f565b9050808514610b045760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420696e636c7573696f6e2070726f6f660000000000000000006044820152606401610218565b5050505050565b6000818310610b5c5760405162461bcd60e51b815260206004820152601760248201527f5374617274206e6f74206c657373207468616e20656e640000000000000000006044820152606401610218565b6000610b69838518610e3f565b905060006001610b79838261153c565b6001901b610b87919061166f565b90508481168482168115610ba957610b9e82610dd6565b945050505050610199565b8015610bb857610b9e81610e3f565b60405162461bcd60e51b815260206004820152601b60248201527f426f7468207920616e64207a2063616e6e6f74206265207a65726f00000000006044820152606401610218565b606061019683600084604051602001610c1b91815260200190565b604051602081830303815290604052805190602001206104f4565b600080825111610c885760405162461bcd60e51b815260206004820152601660248201527f456d707479206d65726b6c6520657870616e73696f6e000000000000000000006044820152606401610218565b604082511115610cda5760405162461bcd60e51b815260206004820152601a60248201527f4d65726b6c6520657870616e73696f6e20746f6f206c617267650000000000006044820152606401610218565b6000805b8351811015610dcf576000848281518110610cfb57610cfb611510565b60200260200101519050826000801b03610d67578015610d625780925060018551610d26919061166f565b8214610d6257604051610d49908490600090602001918252602082015260400190565b6040516020818303038152906040528051906020012092505b610dbc565b8015610d86576040805160208101839052908101849052606001610d49565b604051610da3908490600090602001918252602082015260400190565b6040516020818303038152906040528051906020012092505b5080610dc781611565565b915050610cde565b5092915050565b6000808211610e275760405162461bcd60e51b815260206004820152601c60248201527f5a65726f20686173206e6f207369676e69666963616e742062697473000000006044820152606401610218565b60008280610e3660018261166f565b16189050610171815b600081600003610e915760405162461bcd60e51b815260206004820152601c60248201527f5a65726f20686173206e6f207369676e69666963616e742062697473000000006044820152606401610218565b7001000000000000000000000000000000008210610ebc57608091821c91610eb9908261153c565b90505b680100000000000000008210610edf57604091821c91610edc908261153c565b90505b6401000000008210610efe57602091821c91610efb908261153c565b90505b620100008210610f1b57601091821c91610f18908261153c565b90505b6101008210610f3757600891821c91610f34908261153c565b90505b60108210610f5257600491821c91610f4f908261153c565b90505b60048210610f6d57600291821c91610f6a908261153c565b90505b60028210610f805761019960018261153c565b919050565b600080805b8351811015610dcf57838181518110610fa557610fa5611510565b60200260200101516000801b14610fce57610fc1816002611663565b610fcb908361153c565b91505b80610fd881611565565b915050610f8a565b60608183106110315760405162461bcd60e51b815260206004820152601760248201527f5374617274206e6f74206c657373207468616e20656e640000000000000000006044820152606401610218565b83518211156110a85760405162461bcd60e51b815260206004820152602160248201527f456e64206e6f74206c657373206f7220657175616c207468616e206c656e677460448201527f68000000000000000000000000000000000000000000000000000000000000006064820152608401610218565b60006110b4848461166f565b67ffffffffffffffff8111156110cc576110cc61121a565b6040519080825280602002602001820160405280156110f5578160200160208202803683370190505b509050835b838110156111565785818151811061111457611114611510565b6020026020010151828683611129919061166f565b8151811061113957611139611510565b60209081029190910101528061114e81611565565b9150506110fa565b50949350505050565b82516000906101008111156111ab576040517ffdac331e000000000000000000000000000000000000000000000000000000008152600481018290526101006024820152604401610218565b8260005b828110156112105760008782815181106111cb576111cb611510565b60200260200101519050816001901b87166000036111f757826000528060205260406000209250611207565b8060005282602052604060002092505b506001016111af565b5095945050505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261124157600080fd5b8135602067ffffffffffffffff8083111561125e5761125e61121a565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811084821117156112a1576112a161121a565b6040529384528581018301938381019250878511156112bf57600080fd5b83870191505b84821015610a73578135835291830191908301906112c5565b60008060008060008060c087890312156112f757600080fd5b86359550602087013594506040870135935060608701359250608087013567ffffffffffffffff8082111561132b57600080fd5b6113378a838b01611230565b935060a089013591508082111561134d57600080fd5b5061135a89828a01611230565b9150509295509295509295565b60008060006060848603121561137c57600080fd5b833567ffffffffffffffff81111561139357600080fd5b61139f86828701611230565b9660208601359650604090950135949350505050565b6020808252825182820181905260009190848201906040850190845b818110156113ed578351835292840192918401916001016113d1565b50909695505050505050565b6000806000806080858703121561140f57600080fd5b843593506020850135925060408501359150606085013567ffffffffffffffff81111561143b57600080fd5b61144787828801611230565b91505092959194509250565b6000806040838503121561146657600080fd5b50508035926020909101359150565b6000806040838503121561148857600080fd5b823567ffffffffffffffff81111561149f57600080fd5b6114ab85828601611230565b95602094909401359450505050565b6000602082840312156114cc57600080fd5b813567ffffffffffffffff8111156114e357600080fd5b6114ef84828501611230565b949350505050565b60006020828403121561150957600080fd5b5035919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561019957610199611526565b634e487b7160e01b600052600160045260246000fd5b6000600019820361157857611578611526565b5060010190565b600181815b808511156115ba5781600019048211156115a0576115a0611526565b808516156115ad57918102915b93841c9390800290611584565b509250929050565b6000826115d157506001610199565b816115de57506000610199565b81600181146115f457600281146115fe5761161a565b6001915050610199565b60ff84111561160f5761160f611526565b50506001821b610199565b5060208310610133831016604e8410600b841016171561163d575081810a610199565b611647838361157f565b806000190482111561165b5761165b611526565b029392505050565b600061019683836115c2565b818103818111156101995761019961152656fea2646970667358221220b4aa3efa4e06032b90a32c1a4417cca3ae54fae064000b1131d708653d38e3e564736f6c63430008110033",
224
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c8063c22c47a41161005b578063c22c47a4146100ff578063ca11325314610112578063d230d23f14610125578063e6bcbc651461013857600080fd5b80635fb9c3d41461008d57806367905a7e146100a25780636bd58993146100cb578063bc2f0640146100de575b600080fd5b6100a061009b3660046112de565b61014b565b005b6100b56100b0366004611367565b610161565b6040516100c291906113b5565b60405180910390f35b6100a06100d93660046113f9565b610178565b6100f16100ec366004611453565b61018a565b6040519081526020016100c2565b6100b561010d366004611475565b61019f565b6100f16101203660046114ba565b6101ab565b6100f16101333660046114f7565b6101b6565b6100f16101463660046114f7565b6101c1565b6101598686868686866101cc565b505050505050565b606061016e8484846104f4565b90505b9392505050565b61018484848484610a7e565b50505050565b60006101968383610b0b565b90505b92915050565b60606101968383610c00565b600061019982610c36565b600061019982610dd6565b600061019982610e3f565b600085116102215760405162461bcd60e51b815260206004820152601460248201527f5072652d73697a652063616e6e6f74206265203000000000000000000000000060448201526064015b60405180910390fd5b8561022b83610c36565b146102785760405162461bcd60e51b815260206004820152601b60248201527f50726520657870616e73696f6e20726f6f74206d69736d6174636800000000006044820152606401610218565b8461028283610f85565b146102f55760405162461bcd60e51b815260206004820152602160248201527f5072652073697a6520646f6573206e6f74206d6174636820657870616e73696f60448201527f6e000000000000000000000000000000000000000000000000000000000000006064820152608401610218565b8285106103445760405162461bcd60e51b815260206004820181905260248201527f5072652073697a65206e6f74206c657373207468616e20706f73742073697a656044820152606401610218565b60008590506000806103598560008751610fe0565b90505b8583101561041c5760006103708488610b0b565b9050845183106103c25760405162461bcd60e51b815260206004820152601260248201527f496e646578206f7574206f662072616e676500000000000000000000000000006044820152606401610218565b6103e682828786815181106103d9576103d9611510565b60200260200101516104f4565b91506001811b6103f6818661153c565b9450878511156104085761040861154f565b8361041281611565565b945050505061035c565b8661042682610c36565b146104995760405162461bcd60e51b815260206004820152602260248201527f506f737420657870616e73696f6e20726f6f74206e6f7420657175616c20706f60448201527f73740000000000000000000000000000000000000000000000000000000000006064820152608401610218565b835182146104e95760405162461bcd60e51b815260206004820152601660248201527f496e636f6d706c6574652070726f6f66207573616765000000000000000000006044820152606401610218565b505050505050505050565b6060604083106105465760405162461bcd60e51b815260206004820152600e60248201527f4c6576656c20746f6f20686967680000000000000000000000000000000000006044820152606401610218565b60008290036105975760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f7420617070656e6420656d707479207375627472656500000000006044820152606401610218565b6040845111156105e95760405162461bcd60e51b815260206004820152601a60248201527f4d65726b6c6520657870616e73696f6e20746f6f206c617267650000000000006044820152606401610218565b83516000036106685760006105ff84600161153c565b67ffffffffffffffff8111156106175761061761121a565b604051908082528060200260200182016040528015610640578160200160208202803683370190505b5090508281858151811061065657610656611510565b60209081029190910101529050610171565b835183106106de5760405162461bcd60e51b815260206004820152603560248201527f4c6576656c2067726561746572207468616e2068696768657374206c6576656c60448201527f206f662063757272656e7420657870616e73696f6e00000000000000000000006064820152608401610218565b8160006106ea86610f85565b905060006106f9866002611663565b610703908361153c565b9050600061071083610e3f565b61071983610e3f565b1161076757875167ffffffffffffffff8111156107385761073861121a565b604051908082528060200260200182016040528015610761578160200160208202803683370190505b506107b7565b875161077490600161153c565b67ffffffffffffffff81111561078c5761078c61121a565b6040519080825280602002602001820160405280156107b5578160200160208202803683370190505b505b905060408151111561080b5760405162461bcd60e51b815260206004820152601c60248201527f417070656e642063726561746573206f76657273697a652074726565000000006044820152606401610218565b60005b88518110156109c757878110156108b55788818151811061083157610831611510565b60200260200101516000801b146108b05760405162461bcd60e51b815260206004820152602260248201527f417070656e642061626f7665206c65617374207369676e69666963616e74206260448201527f69740000000000000000000000000000000000000000000000000000000000006064820152608401610218565b6109b5565b60008590036108fb578881815181106108d0576108d0611510565b60200260200101518282815181106108ea576108ea611510565b6020026020010181815250506109b5565b88818151811061090d5761090d611510565b60200260200101516000801b03610945578482828151811061093157610931611510565b6020908102919091010152600094506109b5565b6000801b82828151811061095b5761095b611510565b60200260200101818152505088818151811061097957610979611510565b60200260200101518560405160200161099c929190918252602082015260400190565b6040516020818303038152906040528051906020012094505b806109bf81611565565b91505061080e565b5083156109fb578381600183516109de919061166f565b815181106109ee576109ee611510565b6020026020010181815250505b8060018251610a0a919061166f565b81518110610a1a57610a1a611510565b60200260200101516000801b03610a735760405162461bcd60e51b815260206004820152600f60248201527f4c61737420656e747279207a65726f00000000000000000000000000000000006044820152606401610218565b979650505050505050565b6000610ab3828486604051602001610a9891815260200190565b6040516020818303038152906040528051906020012061115f565b9050808514610b045760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420696e636c7573696f6e2070726f6f660000000000000000006044820152606401610218565b5050505050565b6000818310610b5c5760405162461bcd60e51b815260206004820152601760248201527f5374617274206e6f74206c657373207468616e20656e640000000000000000006044820152606401610218565b6000610b69838518610e3f565b905060006001610b79838261153c565b6001901b610b87919061166f565b90508481168482168115610ba957610b9e82610dd6565b945050505050610199565b8015610bb857610b9e81610e3f565b60405162461bcd60e51b815260206004820152601b60248201527f426f7468207920616e64207a2063616e6e6f74206265207a65726f00000000006044820152606401610218565b606061019683600084604051602001610c1b91815260200190565b604051602081830303815290604052805190602001206104f4565b600080825111610c885760405162461bcd60e51b815260206004820152601660248201527f456d707479206d65726b6c6520657870616e73696f6e000000000000000000006044820152606401610218565b604082511115610cda5760405162461bcd60e51b815260206004820152601a60248201527f4d65726b6c6520657870616e73696f6e20746f6f206c617267650000000000006044820152606401610218565b6000805b8351811015610dcf576000848281518110610cfb57610cfb611510565b60200260200101519050826000801b03610d67578015610d625780925060018551610d26919061166f565b8214610d6257604051610d49908490600090602001918252602082015260400190565b6040516020818303038152906040528051906020012092505b610dbc565b8015610d86576040805160208101839052908101849052606001610d49565b604051610da3908490600090602001918252602082015260400190565b6040516020818303038152906040528051906020012092505b5080610dc781611565565b915050610cde565b5092915050565b6000808211610e275760405162461bcd60e51b815260206004820152601c60248201527f5a65726f20686173206e6f207369676e69666963616e742062697473000000006044820152606401610218565b60008280610e3660018261166f565b16189050610171815b600081600003610e915760405162461bcd60e51b815260206004820152601c60248201527f5a65726f20686173206e6f207369676e69666963616e742062697473000000006044820152606401610218565b7001000000000000000000000000000000008210610ebc57608091821c91610eb9908261153c565b90505b680100000000000000008210610edf57604091821c91610edc908261153c565b90505b6401000000008210610efe57602091821c91610efb908261153c565b90505b620100008210610f1b57601091821c91610f18908261153c565b90505b6101008210610f3757600891821c91610f34908261153c565b90505b60108210610f5257600491821c91610f4f908261153c565b90505b60048210610f6d57600291821c91610f6a908261153c565b90505b60028210610f805761019960018261153c565b919050565b600080805b8351811015610dcf57838181518110610fa557610fa5611510565b60200260200101516000801b14610fce57610fc1816002611663565b610fcb908361153c565b91505b80610fd881611565565b915050610f8a565b60608183106110315760405162461bcd60e51b815260206004820152601760248201527f5374617274206e6f74206c657373207468616e20656e640000000000000000006044820152606401610218565b83518211156110a85760405162461bcd60e51b815260206004820152602160248201527f456e64206e6f74206c657373206f7220657175616c207468616e206c656e677460448201527f68000000000000000000000000000000000000000000000000000000000000006064820152608401610218565b60006110b4848461166f565b67ffffffffffffffff8111156110cc576110cc61121a565b6040519080825280602002602001820160405280156110f5578160200160208202803683370190505b509050835b838110156111565785818151811061111457611114611510565b6020026020010151828683611129919061166f565b8151811061113957611139611510565b60209081029190910101528061114e81611565565b9150506110fa565b50949350505050565b82516000906101008111156111ab576040517ffdac331e000000000000000000000000000000000000000000000000000000008152600481018290526101006024820152604401610218565b8260005b828110156112105760008782815181106111cb576111cb611510565b60200260200101519050816001901b87166000036111f757826000528060205260406000209250611207565b8060005282602052604060002092505b506001016111af565b5095945050505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261124157600080fd5b8135602067ffffffffffffffff8083111561125e5761125e61121a565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811084821117156112a1576112a161121a565b6040529384528581018301938381019250878511156112bf57600080fd5b83870191505b84821015610a73578135835291830191908301906112c5565b60008060008060008060c087890312156112f757600080fd5b86359550602087013594506040870135935060608701359250608087013567ffffffffffffffff8082111561132b57600080fd5b6113378a838b01611230565b935060a089013591508082111561134d57600080fd5b5061135a89828a01611230565b9150509295509295509295565b60008060006060848603121561137c57600080fd5b833567ffffffffffffffff81111561139357600080fd5b61139f86828701611230565b9660208601359650604090950135949350505050565b6020808252825182820181905260009190848201906040850190845b818110156113ed578351835292840192918401916001016113d1565b50909695505050505050565b6000806000806080858703121561140f57600080fd5b843593506020850135925060408501359150606085013567ffffffffffffffff81111561143b57600080fd5b61144787828801611230565b91505092959194509250565b6000806040838503121561146657600080fd5b50508035926020909101359150565b6000806040838503121561148857600080fd5b823567ffffffffffffffff81111561149f57600080fd5b6114ab85828601611230565b95602094909401359450505050565b6000602082840312156114cc57600080fd5b813567ffffffffffffffff8111156114e357600080fd5b6114ef84828501611230565b949350505050565b60006020828403121561150957600080fd5b5035919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561019957610199611526565b634e487b7160e01b600052600160045260246000fd5b6000600019820361157857611578611526565b5060010190565b600181815b808511156115ba5781600019048211156115a0576115a0611526565b808516156115ad57918102915b93841c9390800290611584565b509250929050565b6000826115d157506001610199565b816115de57506000610199565b81600181146115f457600281146115fe5761161a565b6001915050610199565b60ff84111561160f5761160f611526565b50506001821b610199565b5060208310610133831016604e8410600b841016171561163d575081810a610199565b611647838361157f565b806000190482111561165b5761165b611526565b029392505050565b600061019683836115c2565b818103818111156101995761019961152656fea2646970667358221220b4aa3efa4e06032b90a32c1a4417cca3ae54fae064000b1131d708653d38e3e564736f6c63430008110033",
225
+ "linkReferences": {},
226
+ "deployedLinkReferences": {}
227
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/20d3c20b27a0078f8acb7ef1c538821c.json"
4
+ }