@hyperlane-xyz/core 3.8.0 → 3.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (363) hide show
  1. package/buildArtifact.json +1 -1
  2. package/contracts/hooks/layer-zero/LayerZeroV1Hook.sol +118 -0
  3. package/contracts/hooks/layer-zero/LayerZeroV2Hook.sol +135 -0
  4. package/contracts/hooks/libs/AbstractMessageIdAuthHook.sol +4 -0
  5. package/contracts/interfaces/hooks/IPostDispatchHook.sol +2 -1
  6. package/contracts/isms/hook/AbstractMessageIdAuthorizedIsm.sol +1 -1
  7. package/contracts/isms/hook/layer-zero/LayerZeroV2Ism.sol +114 -0
  8. package/contracts/test/ERC20Test.sol +8 -0
  9. package/contracts/test/ERC4626/ERC4626Test.sol +13 -0
  10. package/contracts/test/TestLayerZeroTreasury.sol +15 -0
  11. package/contracts/token/HypERC20Collateral.sol +1 -1
  12. package/contracts/token/HypERC20CollateralVaultDeposit.sol +82 -0
  13. package/dist/@layerzerolabs/index.d.ts +5 -0
  14. package/dist/@layerzerolabs/index.d.ts.map +1 -0
  15. package/dist/@layerzerolabs/index.js +3 -0
  16. package/dist/@layerzerolabs/index.js.map +1 -0
  17. package/dist/@layerzerolabs/lz-evm-protocol-v2/contracts/index.d.ts +3 -0
  18. package/dist/@layerzerolabs/lz-evm-protocol-v2/contracts/index.d.ts.map +1 -0
  19. package/dist/@layerzerolabs/lz-evm-protocol-v2/contracts/index.js +3 -0
  20. package/dist/@layerzerolabs/lz-evm-protocol-v2/contracts/index.js.map +1 -0
  21. package/dist/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.d.ts +1648 -0
  22. package/dist/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.d.ts.map +1 -0
  23. package/dist/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.js +3 -0
  24. package/dist/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.js.map +1 -0
  25. package/dist/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.d.ts +694 -0
  26. package/dist/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.d.ts.map +1 -0
  27. package/dist/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.js +3 -0
  28. package/dist/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.js.map +1 -0
  29. package/dist/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.d.ts +331 -0
  30. package/dist/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.d.ts.map +1 -0
  31. package/dist/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.js +3 -0
  32. package/dist/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.js.map +1 -0
  33. package/dist/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.d.ts +220 -0
  34. package/dist/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.d.ts.map +1 -0
  35. package/dist/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.js +3 -0
  36. package/dist/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.js.map +1 -0
  37. package/dist/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.d.ts +83 -0
  38. package/dist/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.d.ts.map +1 -0
  39. package/dist/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.js +3 -0
  40. package/dist/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.js.map +1 -0
  41. package/dist/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/index.d.ts +6 -0
  42. package/dist/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/index.d.ts.map +1 -0
  43. package/dist/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/index.js +3 -0
  44. package/dist/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/index.js.map +1 -0
  45. package/dist/@layerzerolabs/lz-evm-protocol-v2/index.d.ts +3 -0
  46. package/dist/@layerzerolabs/lz-evm-protocol-v2/index.d.ts.map +1 -0
  47. package/dist/@layerzerolabs/lz-evm-protocol-v2/index.js +3 -0
  48. package/dist/@layerzerolabs/lz-evm-protocol-v2/index.js.map +1 -0
  49. package/dist/@layerzerolabs/lz-evm-v1-0.7/contracts/index.d.ts +3 -0
  50. package/dist/@layerzerolabs/lz-evm-v1-0.7/contracts/index.d.ts.map +1 -0
  51. package/dist/@layerzerolabs/lz-evm-v1-0.7/contracts/index.js +3 -0
  52. package/dist/@layerzerolabs/lz-evm-v1-0.7/contracts/index.js.map +1 -0
  53. package/dist/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroEndpoint.d.ts +536 -0
  54. package/dist/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroEndpoint.d.ts.map +1 -0
  55. package/dist/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroEndpoint.js +3 -0
  56. package/dist/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroEndpoint.js.map +1 -0
  57. package/dist/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUserApplicationConfig.d.ts +169 -0
  58. package/dist/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUserApplicationConfig.d.ts.map +1 -0
  59. package/dist/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUserApplicationConfig.js +3 -0
  60. package/dist/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUserApplicationConfig.js.map +1 -0
  61. package/dist/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/index.d.ts +3 -0
  62. package/dist/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/index.d.ts.map +1 -0
  63. package/dist/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/index.js +3 -0
  64. package/dist/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/index.js.map +1 -0
  65. package/dist/@layerzerolabs/lz-evm-v1-0.7/index.d.ts +3 -0
  66. package/dist/@layerzerolabs/lz-evm-v1-0.7/index.d.ts.map +1 -0
  67. package/dist/@layerzerolabs/lz-evm-v1-0.7/index.js +3 -0
  68. package/dist/@layerzerolabs/lz-evm-v1-0.7/index.js.map +1 -0
  69. package/dist/@openzeppelin/contracts/interfaces/IERC4626.d.ts +666 -0
  70. package/dist/@openzeppelin/contracts/interfaces/IERC4626.d.ts.map +1 -0
  71. package/dist/@openzeppelin/contracts/interfaces/IERC4626.js +3 -0
  72. package/dist/@openzeppelin/contracts/interfaces/IERC4626.js.map +1 -0
  73. package/dist/@openzeppelin/contracts/interfaces/index.d.ts +1 -0
  74. package/dist/@openzeppelin/contracts/interfaces/index.d.ts.map +1 -1
  75. package/dist/@openzeppelin/contracts/token/ERC20/extensions/ERC4626.d.ts +680 -0
  76. package/dist/@openzeppelin/contracts/token/ERC20/extensions/ERC4626.d.ts.map +1 -0
  77. package/dist/@openzeppelin/contracts/token/ERC20/extensions/ERC4626.js +3 -0
  78. package/dist/@openzeppelin/contracts/token/ERC20/extensions/ERC4626.js.map +1 -0
  79. package/dist/@openzeppelin/contracts/token/ERC20/extensions/index.d.ts +1 -0
  80. package/dist/@openzeppelin/contracts/token/ERC20/extensions/index.d.ts.map +1 -1
  81. package/dist/contracts/hooks/index.d.ts +2 -0
  82. package/dist/contracts/hooks/index.d.ts.map +1 -1
  83. package/dist/contracts/hooks/layer-zero/LayerZeroV1Hook.d.ts +412 -0
  84. package/dist/contracts/hooks/layer-zero/LayerZeroV1Hook.d.ts.map +1 -0
  85. package/dist/contracts/hooks/layer-zero/LayerZeroV1Hook.js +3 -0
  86. package/dist/contracts/hooks/layer-zero/LayerZeroV1Hook.js.map +1 -0
  87. package/dist/contracts/hooks/layer-zero/LayerZeroV2Hook.d.ts +469 -0
  88. package/dist/contracts/hooks/layer-zero/LayerZeroV2Hook.d.ts.map +1 -0
  89. package/dist/contracts/hooks/layer-zero/LayerZeroV2Hook.js +3 -0
  90. package/dist/contracts/hooks/layer-zero/LayerZeroV2Hook.js.map +1 -0
  91. package/dist/contracts/hooks/layer-zero/index.d.ts +3 -0
  92. package/dist/contracts/hooks/layer-zero/index.d.ts.map +1 -0
  93. package/dist/contracts/hooks/layer-zero/index.js +3 -0
  94. package/dist/contracts/hooks/layer-zero/index.js.map +1 -0
  95. package/dist/contracts/isms/hook/index.d.ts +2 -0
  96. package/dist/contracts/isms/hook/index.d.ts.map +1 -1
  97. package/dist/contracts/isms/hook/layer-zero/LayerZeroV2Ism.d.ts +280 -0
  98. package/dist/contracts/isms/hook/layer-zero/LayerZeroV2Ism.d.ts.map +1 -0
  99. package/dist/contracts/isms/hook/layer-zero/LayerZeroV2Ism.js +3 -0
  100. package/dist/contracts/isms/hook/layer-zero/LayerZeroV2Ism.js.map +1 -0
  101. package/dist/contracts/isms/hook/layer-zero/index.d.ts +2 -0
  102. package/dist/contracts/isms/hook/layer-zero/index.d.ts.map +1 -0
  103. package/dist/contracts/isms/hook/layer-zero/index.js +3 -0
  104. package/dist/contracts/isms/hook/layer-zero/index.js.map +1 -0
  105. package/dist/contracts/test/ERC20Test.d.ts +63 -1
  106. package/dist/contracts/test/ERC20Test.d.ts.map +1 -1
  107. package/dist/contracts/test/ERC4626/ERC4626Test.d.ts +680 -0
  108. package/dist/contracts/test/ERC4626/ERC4626Test.d.ts.map +1 -0
  109. package/dist/contracts/test/ERC4626/ERC4626Test.js +3 -0
  110. package/dist/contracts/test/ERC4626/ERC4626Test.js.map +1 -0
  111. package/dist/contracts/test/ERC4626/index.d.ts +2 -0
  112. package/dist/contracts/test/ERC4626/index.d.ts.map +1 -0
  113. package/dist/contracts/test/ERC4626/index.js +3 -0
  114. package/dist/contracts/test/ERC4626/index.js.map +1 -0
  115. package/dist/contracts/test/TestLayerZeroTreasury.sol/LayerZeroTreasuryMock.d.ts +190 -0
  116. package/dist/contracts/test/TestLayerZeroTreasury.sol/LayerZeroTreasuryMock.d.ts.map +1 -0
  117. package/dist/contracts/test/TestLayerZeroTreasury.sol/LayerZeroTreasuryMock.js +3 -0
  118. package/dist/contracts/test/TestLayerZeroTreasury.sol/LayerZeroTreasuryMock.js.map +1 -0
  119. package/dist/contracts/test/TestLayerZeroTreasury.sol/index.d.ts +2 -0
  120. package/dist/contracts/test/TestLayerZeroTreasury.sol/index.d.ts.map +1 -0
  121. package/dist/contracts/test/TestLayerZeroTreasury.sol/index.js +3 -0
  122. package/dist/contracts/test/TestLayerZeroTreasury.sol/index.js.map +1 -0
  123. package/dist/contracts/test/index.d.ts +4 -0
  124. package/dist/contracts/test/index.d.ts.map +1 -1
  125. package/dist/contracts/token/HypERC20CollateralVaultDeposit.d.ts +705 -0
  126. package/dist/contracts/token/HypERC20CollateralVaultDeposit.d.ts.map +1 -0
  127. package/dist/contracts/token/HypERC20CollateralVaultDeposit.js +3 -0
  128. package/dist/contracts/token/HypERC20CollateralVaultDeposit.js.map +1 -0
  129. package/dist/contracts/token/index.d.ts +1 -0
  130. package/dist/contracts/token/index.d.ts.map +1 -1
  131. package/dist/factories/@layerzerolabs/index.d.ts +3 -0
  132. package/dist/factories/@layerzerolabs/index.d.ts.map +1 -0
  133. package/dist/factories/@layerzerolabs/index.js +32 -0
  134. package/dist/factories/@layerzerolabs/index.js.map +1 -0
  135. package/dist/factories/@layerzerolabs/lz-evm-protocol-v2/contracts/index.d.ts +2 -0
  136. package/dist/factories/@layerzerolabs/lz-evm-protocol-v2/contracts/index.d.ts.map +1 -0
  137. package/dist/factories/@layerzerolabs/lz-evm-protocol-v2/contracts/index.js +31 -0
  138. package/dist/factories/@layerzerolabs/lz-evm-protocol-v2/contracts/index.js.map +1 -0
  139. package/dist/factories/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2__factory.d.ts +1438 -0
  140. package/dist/factories/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2__factory.d.ts.map +1 -0
  141. package/dist/factories/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2__factory.js +1853 -0
  142. package/dist/factories/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2__factory.js.map +1 -0
  143. package/dist/factories/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager__factory.d.ts +487 -0
  144. package/dist/factories/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager__factory.d.ts.map +1 -0
  145. package/dist/factories/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager__factory.js +638 -0
  146. package/dist/factories/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager__factory.js.map +1 -0
  147. package/dist/factories/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel__factory.d.ts +270 -0
  148. package/dist/factories/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel__factory.d.ts.map +1 -0
  149. package/dist/factories/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel__factory.js +353 -0
  150. package/dist/factories/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel__factory.js.map +1 -0
  151. package/dist/factories/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer__factory.d.ts +197 -0
  152. package/dist/factories/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer__factory.d.ts.map +1 -0
  153. package/dist/factories/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer__factory.js +255 -0
  154. package/dist/factories/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer__factory.js.map +1 -0
  155. package/dist/factories/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext__factory.d.ts +33 -0
  156. package/dist/factories/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext__factory.d.ts.map +1 -0
  157. package/dist/factories/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext__factory.js +51 -0
  158. package/dist/factories/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext__factory.js.map +1 -0
  159. package/dist/factories/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/index.d.ts +6 -0
  160. package/dist/factories/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/index.d.ts.map +1 -0
  161. package/dist/factories/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/index.js +17 -0
  162. package/dist/factories/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/index.js.map +1 -0
  163. package/dist/factories/@layerzerolabs/lz-evm-protocol-v2/index.d.ts +2 -0
  164. package/dist/factories/@layerzerolabs/lz-evm-protocol-v2/index.d.ts.map +1 -0
  165. package/dist/factories/@layerzerolabs/lz-evm-protocol-v2/index.js +31 -0
  166. package/dist/factories/@layerzerolabs/lz-evm-protocol-v2/index.js.map +1 -0
  167. package/dist/factories/@layerzerolabs/lz-evm-v1-0.7/contracts/index.d.ts +2 -0
  168. package/dist/factories/@layerzerolabs/lz-evm-v1-0.7/contracts/index.d.ts.map +1 -0
  169. package/dist/factories/@layerzerolabs/lz-evm-v1-0.7/contracts/index.js +31 -0
  170. package/dist/factories/@layerzerolabs/lz-evm-v1-0.7/contracts/index.js.map +1 -0
  171. package/dist/factories/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroEndpoint__factory.d.ts +343 -0
  172. package/dist/factories/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroEndpoint__factory.d.ts.map +1 -0
  173. package/dist/factories/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroEndpoint__factory.js +456 -0
  174. package/dist/factories/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroEndpoint__factory.js.map +1 -0
  175. package/dist/factories/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUserApplicationConfig__factory.d.ts +65 -0
  176. package/dist/factories/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUserApplicationConfig__factory.d.ts.map +1 -0
  177. package/dist/factories/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUserApplicationConfig__factory.js +92 -0
  178. package/dist/factories/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroUserApplicationConfig__factory.js.map +1 -0
  179. package/dist/factories/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/index.d.ts +3 -0
  180. package/dist/factories/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/index.d.ts.map +1 -0
  181. package/dist/factories/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/index.js +11 -0
  182. package/dist/factories/@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/index.js.map +1 -0
  183. package/dist/factories/@layerzerolabs/lz-evm-v1-0.7/index.d.ts +2 -0
  184. package/dist/factories/@layerzerolabs/lz-evm-v1-0.7/index.d.ts.map +1 -0
  185. package/dist/factories/@layerzerolabs/lz-evm-v1-0.7/index.js +31 -0
  186. package/dist/factories/@layerzerolabs/lz-evm-v1-0.7/index.js.map +1 -0
  187. package/dist/factories/@openzeppelin/contracts/interfaces/IERC4626__factory.d.ts +474 -0
  188. package/dist/factories/@openzeppelin/contracts/interfaces/IERC4626__factory.d.ts.map +1 -0
  189. package/dist/factories/@openzeppelin/contracts/interfaces/IERC4626__factory.js +632 -0
  190. package/dist/factories/@openzeppelin/contracts/interfaces/IERC4626__factory.js.map +1 -0
  191. package/dist/factories/@openzeppelin/contracts/interfaces/index.d.ts +1 -0
  192. package/dist/factories/@openzeppelin/contracts/interfaces/index.d.ts.map +1 -1
  193. package/dist/factories/@openzeppelin/contracts/interfaces/index.js +3 -1
  194. package/dist/factories/@openzeppelin/contracts/interfaces/index.js.map +1 -1
  195. package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC4626__factory.d.ts +510 -0
  196. package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC4626__factory.d.ts.map +1 -0
  197. package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC4626__factory.js +680 -0
  198. package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC4626__factory.js.map +1 -0
  199. package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/index.d.ts +1 -0
  200. package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/index.d.ts.map +1 -1
  201. package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/index.js +3 -1
  202. package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/index.js.map +1 -1
  203. package/dist/factories/contracts/Mailbox__factory.d.ts +1 -1
  204. package/dist/factories/contracts/Mailbox__factory.js +1 -1
  205. package/dist/factories/contracts/hooks/MerkleTreeHook__factory.d.ts +1 -1
  206. package/dist/factories/contracts/hooks/MerkleTreeHook__factory.js +1 -1
  207. package/dist/factories/contracts/hooks/OPStackHook__factory.d.ts +1 -1
  208. package/dist/factories/contracts/hooks/OPStackHook__factory.d.ts.map +1 -1
  209. package/dist/factories/contracts/hooks/OPStackHook__factory.js +1 -1
  210. package/dist/factories/contracts/hooks/OPStackHook__factory.js.map +1 -1
  211. package/dist/factories/contracts/hooks/PausableHook__factory.d.ts +1 -1
  212. package/dist/factories/contracts/hooks/PausableHook__factory.js +1 -1
  213. package/dist/factories/contracts/hooks/ProtocolFee__factory.d.ts +1 -1
  214. package/dist/factories/contracts/hooks/ProtocolFee__factory.js +1 -1
  215. package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.d.ts +1 -1
  216. package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.d.ts.map +1 -1
  217. package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.js +1 -1
  218. package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.js.map +1 -1
  219. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHookFactory__factory.d.ts +1 -1
  220. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHookFactory__factory.js +1 -1
  221. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHook__factory.d.ts +1 -1
  222. package/dist/factories/contracts/hooks/aggregation/StaticAggregationHook__factory.js +1 -1
  223. package/dist/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.d.ts +1 -1
  224. package/dist/factories/contracts/hooks/igp/InterchainGasPaymaster__factory.js +1 -1
  225. package/dist/factories/contracts/hooks/index.d.ts +1 -0
  226. package/dist/factories/contracts/hooks/index.d.ts.map +1 -1
  227. package/dist/factories/contracts/hooks/index.js +2 -1
  228. package/dist/factories/contracts/hooks/index.js.map +1 -1
  229. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV1Hook__factory.d.ts +289 -0
  230. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV1Hook__factory.d.ts.map +1 -0
  231. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV1Hook__factory.js +391 -0
  232. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV1Hook__factory.js.map +1 -0
  233. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV2Hook__factory.d.ts +288 -0
  234. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV2Hook__factory.d.ts.map +1 -0
  235. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV2Hook__factory.js +390 -0
  236. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV2Hook__factory.js.map +1 -0
  237. package/dist/factories/contracts/hooks/layer-zero/index.d.ts +3 -0
  238. package/dist/factories/contracts/hooks/layer-zero/index.d.ts.map +1 -0
  239. package/dist/factories/contracts/hooks/layer-zero/index.js +11 -0
  240. package/dist/factories/contracts/hooks/layer-zero/index.js.map +1 -0
  241. package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.d.ts +1 -1
  242. package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.js +1 -1
  243. package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.d.ts +1 -1
  244. package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.js +1 -1
  245. package/dist/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.d.ts +1 -1
  246. package/dist/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.js +1 -1
  247. package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.d.ts +1 -1
  248. package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.js +1 -1
  249. package/dist/factories/contracts/isms/hook/OPStackIsm__factory.d.ts +1 -1
  250. package/dist/factories/contracts/isms/hook/OPStackIsm__factory.js +1 -1
  251. package/dist/factories/contracts/isms/hook/index.d.ts +1 -0
  252. package/dist/factories/contracts/isms/hook/index.d.ts.map +1 -1
  253. package/dist/factories/contracts/isms/hook/index.js +25 -1
  254. package/dist/factories/contracts/isms/hook/index.js.map +1 -1
  255. package/dist/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.d.ts +181 -0
  256. package/dist/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.d.ts.map +1 -0
  257. package/dist/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.js +251 -0
  258. package/dist/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.js.map +1 -0
  259. package/dist/factories/contracts/isms/hook/layer-zero/index.d.ts +2 -0
  260. package/dist/factories/contracts/isms/hook/layer-zero/index.d.ts.map +1 -0
  261. package/dist/factories/contracts/isms/hook/layer-zero/index.js +9 -0
  262. package/dist/factories/contracts/isms/hook/layer-zero/index.js.map +1 -0
  263. package/dist/factories/contracts/isms/multisig/ValidatorAnnounce__factory.d.ts +1 -1
  264. package/dist/factories/contracts/isms/multisig/ValidatorAnnounce__factory.js +1 -1
  265. package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.d.ts +1 -1
  266. package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.js +1 -1
  267. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.d.ts +1 -1
  268. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.js +1 -1
  269. package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.d.ts +1 -1
  270. package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.js +1 -1
  271. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts +1 -1
  272. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js +1 -1
  273. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts +1 -1
  274. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js +1 -1
  275. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts +1 -1
  276. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js +1 -1
  277. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts +1 -1
  278. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js +1 -1
  279. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts +1 -1
  280. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js +1 -1
  281. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts +1 -1
  282. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js +1 -1
  283. package/dist/factories/contracts/mock/MockMailbox__factory.d.ts +1 -1
  284. package/dist/factories/contracts/mock/MockMailbox__factory.js +1 -1
  285. package/dist/factories/contracts/test/ERC20Test__factory.d.ts +25 -1
  286. package/dist/factories/contracts/test/ERC20Test__factory.d.ts.map +1 -1
  287. package/dist/factories/contracts/test/ERC20Test__factory.js +32 -1
  288. package/dist/factories/contracts/test/ERC20Test__factory.js.map +1 -1
  289. package/dist/factories/contracts/test/ERC4626/ERC4626Test__factory.d.ts +539 -0
  290. package/dist/factories/contracts/test/ERC4626/ERC4626Test__factory.d.ts.map +1 -0
  291. package/dist/factories/contracts/test/ERC4626/ERC4626Test__factory.js +724 -0
  292. package/dist/factories/contracts/test/ERC4626/ERC4626Test__factory.js.map +1 -0
  293. package/dist/factories/contracts/test/ERC4626/index.d.ts +2 -0
  294. package/dist/factories/contracts/test/ERC4626/index.d.ts.map +1 -0
  295. package/dist/factories/contracts/test/ERC4626/index.js +9 -0
  296. package/dist/factories/contracts/test/ERC4626/index.js.map +1 -0
  297. package/dist/factories/contracts/test/TestGasRouter__factory.d.ts +1 -1
  298. package/dist/factories/contracts/test/TestGasRouter__factory.js +1 -1
  299. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.d.ts +1 -1
  300. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.js +1 -1
  301. package/dist/factories/contracts/test/TestLayerZeroTreasury.sol/LayerZeroTreasuryMock__factory.d.ts +75 -0
  302. package/dist/factories/contracts/test/TestLayerZeroTreasury.sol/LayerZeroTreasuryMock__factory.d.ts.map +1 -0
  303. package/dist/factories/contracts/test/TestLayerZeroTreasury.sol/LayerZeroTreasuryMock__factory.js +109 -0
  304. package/dist/factories/contracts/test/TestLayerZeroTreasury.sol/LayerZeroTreasuryMock__factory.js.map +1 -0
  305. package/dist/factories/contracts/test/TestLayerZeroTreasury.sol/index.d.ts +2 -0
  306. package/dist/factories/contracts/test/TestLayerZeroTreasury.sol/index.d.ts.map +1 -0
  307. package/dist/factories/contracts/test/TestLayerZeroTreasury.sol/index.js +9 -0
  308. package/dist/factories/contracts/test/TestLayerZeroTreasury.sol/index.js.map +1 -0
  309. package/dist/factories/contracts/test/TestMailbox__factory.d.ts +1 -1
  310. package/dist/factories/contracts/test/TestMailbox__factory.js +1 -1
  311. package/dist/factories/contracts/test/TestMerkleTreeHook__factory.d.ts +1 -1
  312. package/dist/factories/contracts/test/TestMerkleTreeHook__factory.js +1 -1
  313. package/dist/factories/contracts/test/TestPostDispatchHook__factory.d.ts +1 -1
  314. package/dist/factories/contracts/test/TestPostDispatchHook__factory.js +1 -1
  315. package/dist/factories/contracts/test/TestQuerySender__factory.d.ts +1 -1
  316. package/dist/factories/contracts/test/TestQuerySender__factory.js +1 -1
  317. package/dist/factories/contracts/test/TestQuery__factory.d.ts +1 -1
  318. package/dist/factories/contracts/test/TestQuery__factory.js +1 -1
  319. package/dist/factories/contracts/test/TestRouter__factory.d.ts +1 -1
  320. package/dist/factories/contracts/test/TestRouter__factory.js +1 -1
  321. package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts +1 -1
  322. package/dist/factories/contracts/test/TestSendReceiver__factory.js +1 -1
  323. package/dist/factories/contracts/test/index.d.ts +2 -0
  324. package/dist/factories/contracts/test/index.d.ts.map +1 -1
  325. package/dist/factories/contracts/test/index.js +26 -1
  326. package/dist/factories/contracts/test/index.js.map +1 -1
  327. package/dist/factories/contracts/token/HypERC20CollateralVaultDeposit__factory.d.ts +423 -0
  328. package/dist/factories/contracts/token/HypERC20CollateralVaultDeposit__factory.d.ts.map +1 -0
  329. package/dist/factories/contracts/token/HypERC20CollateralVaultDeposit__factory.js +563 -0
  330. package/dist/factories/contracts/token/HypERC20CollateralVaultDeposit__factory.js.map +1 -0
  331. package/dist/factories/contracts/token/HypERC20Collateral__factory.d.ts +1 -1
  332. package/dist/factories/contracts/token/HypERC20Collateral__factory.js +1 -1
  333. package/dist/factories/contracts/token/HypERC20__factory.d.ts +1 -1
  334. package/dist/factories/contracts/token/HypERC20__factory.js +1 -1
  335. package/dist/factories/contracts/token/HypERC721Collateral__factory.d.ts +1 -1
  336. package/dist/factories/contracts/token/HypERC721Collateral__factory.js +1 -1
  337. package/dist/factories/contracts/token/HypERC721__factory.d.ts +1 -1
  338. package/dist/factories/contracts/token/HypERC721__factory.js +1 -1
  339. package/dist/factories/contracts/token/HypNative__factory.d.ts +1 -1
  340. package/dist/factories/contracts/token/HypNative__factory.js +1 -1
  341. package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.d.ts +1 -1
  342. package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.js +1 -1
  343. package/dist/factories/contracts/token/extensions/FastHypERC20__factory.d.ts +1 -1
  344. package/dist/factories/contracts/token/extensions/FastHypERC20__factory.js +1 -1
  345. package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.d.ts +1 -1
  346. package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.js +1 -1
  347. package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.d.ts +1 -1
  348. package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.js +1 -1
  349. package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.d.ts +1 -1
  350. package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.js +1 -1
  351. package/dist/factories/contracts/token/index.d.ts +1 -0
  352. package/dist/factories/contracts/token/index.d.ts.map +1 -1
  353. package/dist/factories/contracts/token/index.js +3 -1
  354. package/dist/factories/contracts/token/index.js.map +1 -1
  355. package/dist/factories/index.d.ts +1 -0
  356. package/dist/factories/index.d.ts.map +1 -1
  357. package/dist/factories/index.js +2 -1
  358. package/dist/factories/index.js.map +1 -1
  359. package/dist/index.d.ts +32 -0
  360. package/dist/index.d.ts.map +1 -1
  361. package/dist/index.js +34 -4
  362. package/dist/index.js.map +1 -1
  363. package/package.json +4 -2
@@ -494,7 +494,7 @@ const _abi = [
494
494
  type: "function",
495
495
  },
496
496
  ];
497
- const _bytecode = "0x60e06040523480156200001157600080fd5b5060405162002377380380620023778339810160408190526200003491620001a4565b80808080806001600160a01b0381163b620000955760405162461bcd60e51b815260206004820152601e60248201527f4d61696c626f78436c69656e743a20696e76616c6964206d61696c626f780000604482015260640160405180910390fd5b6001600160a01b03821660808190526040805163234d8e3d60e21b81529051638d3638f4916004808201926020929091908290030181865afa158015620000e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001069190620001dc565b63ffffffff1660a0526200011a3362000135565b5050506001600160a01b0390931660c052506200020b915050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80516001600160a01b03811681146200019f57600080fd5b919050565b60008060408385031215620001b857600080fd5b620001c38362000187565b9150620001d36020840162000187565b90509250929050565b600060208284031215620001ef57600080fd5b815163ffffffff811681146200020457600080fd5b9392505050565b60805160a05160c05161210b6200026c600039600081816103e70152818161095701528181610a25015281816112b901526113650152600061037301526000818161045b015281816107c90152818161144c015261162b015261210b6000f3fe60806040526004361061018b5760003560e01c806381b4e8b4116100d6578063d5438eae1161007f578063efae508a11610059578063efae508a146104ca578063f2ed8c53146104ea578063f2fde38b1461050a57600080fd5b8063d5438eae14610449578063de523cf31461047d578063e9198bf9146104aa57600080fd5b8063996c6cc3116100b0578063996c6cc3146103d5578063b1bd643614610409578063b49c53a71461042957600080fd5b806381b4e8b41461034e5780638d3638f4146103615780638da5cb5b146103aa57600080fd5b80636352211e1161013857806371a15b381161011257806371a15b38146102d4578063775313a1146102f45780637f5a7c7b1461032157600080fd5b80636352211e1461025a57806370a082311461029f578063715018a6146102bf57600080fd5b8063440df4f411610169578063440df4f41461020557806349d462ef1461022757806356d5d4751461024757600080fd5b80630e72cc06146101905780632ead72f6146101b25780633dfd3873146101e5575b600080fd5b34801561019c57600080fd5b506101b06101ab366004611a47565b61052a565b005b3480156101be57600080fd5b506101d26101cd366004611a7d565b610645565b6040519081526020015b60405180910390f35b3480156101f157600080fd5b506101b0610200366004611a47565b610664565b34801561021157600080fd5b5061021a61077a565b6040516101dc9190611a98565b34801561023357600080fd5b506101b0610242366004611ae2565b61078b565b6101b0610255366004611b0c565b6107b1565b34801561026657600080fd5b5061027a610275366004611b93565b610925565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101dc565b3480156102ab57600080fd5b506101d26102ba366004611a47565b6109dd565b3480156102cb57600080fd5b506101b0610a92565b3480156102e057600080fd5b506101b06102ef366004611bf1565b610aa6565b34801561030057600080fd5b506101d261030f366004611a7d565b60ca6020526000908152604090205481565b34801561032d57600080fd5b5060655461027a9073ffffffffffffffffffffffffffffffffffffffff1681565b6101d261035c366004611c33565b610b01565b34801561036d57600080fd5b506103957f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016101dc565b3480156103b657600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff1661027a565b3480156103e157600080fd5b5061027a7f000000000000000000000000000000000000000000000000000000000000000081565b34801561041557600080fd5b506101b0610424366004611c66565b610b0f565b34801561043557600080fd5b506101b0610444366004611ae2565b610b99565b34801561045557600080fd5b5061027a7f000000000000000000000000000000000000000000000000000000000000000081565b34801561048957600080fd5b5060665461027a9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156104b657600080fd5b506101b06104c5366004611cdb565b610bab565b3480156104d657600080fd5b506101b06104e5366004611a7d565b610c8a565b3480156104f657600080fd5b506101d2610505366004611a7d565b610c9e565b34801561051657600080fd5b506101b0610525366004611a47565b610cb9565b8073ffffffffffffffffffffffffffffffffffffffff81163b151580610564575073ffffffffffffffffffffffffffffffffffffffff8116155b6105f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6105fd610d6d565b50606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008061065c609763ffffffff80861690610dee16565b949350505050565b8073ffffffffffffffffffffffffffffffffffffffff81163b15158061069e575073ffffffffffffffffffffffffffffffffffffffff8116155b61072a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084016105ec565b610732610d6d565b50606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60606107866097610e07565b905090565b610793610d6d565b63ffffffff91909116600090815260ca6020526040902055565b5050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610876576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d61696c626f78436c69656e743a2073656e646572206e6f74206d61696c626f60448201527f780000000000000000000000000000000000000000000000000000000000000060648201526084016105ec565b600061088185610ec2565b9050838114610912576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f456e726f6c6c656420726f7574657220646f6573206e6f74206d61746368207360448201527f656e64657200000000000000000000000000000000000000000000000000000060648201526084016105ec565b61091e85858585610f28565b5050505050565b6040517f6352211e000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690636352211e90602401602060405180830381865afa1580156109b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d79190611d47565b92915050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015610a6e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d79190611d64565b610a9a610d6d565b610aa46000610fb2565b565b610aae610d6d565b8060005b81811015610afb57610ae9848483818110610acf57610acf611d7d565b9050602002016020810190610ae49190611a7d565b611029565b610af4600182611ddb565b9050610ab2565b50505050565b600061065c8484843461107e565b610b17610d6d565b60005b81811015610b9457610b82838383818110610b3757610b37611d7d565b610b4d9260206040909202019081019150611a7d565b848484818110610b5f57610b5f611d7d565b9050604002016020013563ffffffff909116600090815260ca6020526040902055565b610b8d600182611ddb565b9050610b1a565b505050565b610ba1610d6d565b6107ad82826110ed565b610bb3610d6d565b828114610c1c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064016105ec565b8260005b81811015610c8257610c70868683818110610c3d57610c3d611d7d565b9050602002016020810190610c529190611a7d565b858584818110610c6457610c64611d7d565b905060200201356110ed565b610c7b600182611ddb565b9050610c20565b505050505050565b610c92610d6d565b610c9b81611029565b50565b60006109d78260405180602001604052806000815250611103565b610cc1610d6d565b73ffffffffffffffffffffffffffffffffffffffff8116610d64576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016105ec565b610c9b81610fb2565b60335473ffffffffffffffffffffffffffffffffffffffff163314610aa4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105ec565b600080610dfb848461111c565b915091505b9250929050565b60606000610e1483611156565b9050805167ffffffffffffffff811115610e3057610e30611dee565b604051908082528060200260200182016040528015610e59578160200160208202803683370190505b50915060005b8151811015610ebb57818181518110610e7a57610e7a611d7d565b6020026020010151838281518110610e9457610e94611d7d565b63ffffffff9092166020928302919091019091015280610eb381611e1d565b915050610e5f565b5050919050565b60008080610eda609763ffffffff80871690610dee16565b9150915081610ee8856111f1565b90610f20576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ec9190611ec3565b509392505050565b6000610f348383611228565b90506000610f428484611247565b9050366000610f518686611257565b91509150610f67610f5f8590565b848484611267565b838863ffffffff167fba20947a325f450d232530e5f5fce293e7963499d5309a07cee84a269f2f15a685604051610fa091815260200190565b60405180910390a35050505050505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b61103d609763ffffffff8084169061131b16565b611046826111f1565b906107ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ec9190611ec3565b60008061108a84611327565b90506110a1868461109c8888866113eb565b61141a565b9150848663ffffffff167fd229aacb94204188fe8042965fa6b269c62dc5818b21238779ab64bdd17efeec866040516110dc91815260200190565b60405180910390a350949350505050565b6107ad609763ffffffff80851690849061143d16565b60008061110f84610ec2565b905061065c848285611448565b600081815260028301602052604081205481908061114b5761113e8585611529565b925060009150610e009050565b600192509050610e00565b6060600061116383611535565b90508067ffffffffffffffff81111561117e5761117e611dee565b6040519080825280602002602001820160405280156111a7578160200160208202803683370190505b50915060005b81811015610ebb576111bf8482611540565b60001c8382815181106111d4576111d4611d7d565b6020908102919091010152806111e981611e1d565b9150506111ad565b60606112028263ffffffff1661154c565b6040516020016112129190611ed6565b6040516020818303038152906040529050919050565b60006112376020828486611f1b565b61124091611f45565b9392505050565b6000611237604060208486611f1b565b366000610dfb8360408187611f1b565b6040517f42842e0e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8581166024830152604482018590527f000000000000000000000000000000000000000000000000000000000000000016906342842e0e90606401600060405180830381600087803b1580156112fd57600080fd5b505af1158015611311573d6000803e3d6000fd5b5050505050505050565b6000611240838361160a565b6040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018290526060907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906323b872dd90606401600060405180830381600087803b1580156113be57600080fd5b505af11580156113d2573d6000803e3d6000fd5b5050604080516020810190915260008152949350505050565b606083838360405160200161140293929190611f81565b60405160208183030381529060405290509392505050565b60008061142685610ec2565b905061143485828686611627565b95945050505050565b610afb83838361170b565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166381d2ea9585858561149289611728565b6065546040517fffffffff0000000000000000000000000000000000000000000000000000000060e088901b1681526114e8959493929173ffffffffffffffffffffffffffffffffffffffff1690600401611fae565b602060405180830381865afa158015611505573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065c9190611d64565b6000611240838361174a565b60006109d782611762565b6000611240838361176c565b6060600061155983611796565b600101905060008167ffffffffffffffff81111561157957611579611dee565b6040519080825280601f01601f1916602001820160405280156115a3576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85049450846115ad57509392505050565b600081815260028301602052604081208190556112408383611878565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166310b83dc0848787866116728b611728565b6065546040517fffffffff0000000000000000000000000000000000000000000000000000000060e089901b1681526116c8959493929173ffffffffffffffffffffffffffffffffffffffff1690600401611fae565b60206040518083038185885af11580156116e6573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906114349190611d64565b6000828152600284016020526040812082905561065c8484611884565b63ffffffff8116600090815260ca60205260409020546060906109d790611890565b60008181526001830160205260408120541515611240565b60006109d7825490565b600082600001828154811061178357611783611d7d565b9060005260206000200154905092915050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106117df577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef8100000000831061180b576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061182957662386f26fc10000830492506010015b6305f5e1008310611841576305f5e100830492506008015b612710831061185557612710830492506004015b60648310611867576064830492506002015b600a83106109d75760010192915050565b600061124083836118ae565b600061124083836119a1565b60606109d760008333604051806020016040528060008152506119f0565b600081815260018301602052604081205480156119975760006118d260018361200e565b85549091506000906118e69060019061200e565b905081811461194b57600086600001828154811061190657611906611d7d565b906000526020600020015490508087600001848154811061192957611929611d7d565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061195c5761195c612021565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506109d7565b60009150506109d7565b60008181526001830160205260408120546119e8575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556109d7565b5060006109d7565b6060600185858585604051602001611a0c959493929190612050565b6040516020818303038152906040529050949350505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610c9b57600080fd5b600060208284031215611a5957600080fd5b813561124081611a25565b803563ffffffff81168114611a7857600080fd5b919050565b600060208284031215611a8f57600080fd5b61124082611a64565b6020808252825182820181905260009190848201906040850190845b81811015611ad657835163ffffffff1683529284019291840191600101611ab4565b50909695505050505050565b60008060408385031215611af557600080fd5b611afe83611a64565b946020939093013593505050565b60008060008060608587031215611b2257600080fd5b611b2b85611a64565b935060208501359250604085013567ffffffffffffffff80821115611b4f57600080fd5b818701915087601f830112611b6357600080fd5b813581811115611b7257600080fd5b886020828501011115611b8457600080fd5b95989497505060200194505050565b600060208284031215611ba557600080fd5b5035919050565b60008083601f840112611bbe57600080fd5b50813567ffffffffffffffff811115611bd657600080fd5b6020830191508360208260051b8501011115610e0057600080fd5b60008060208385031215611c0457600080fd5b823567ffffffffffffffff811115611c1b57600080fd5b611c2785828601611bac565b90969095509350505050565b600080600060608486031215611c4857600080fd5b611c5184611a64565b95602085013595506040909401359392505050565b60008060208385031215611c7957600080fd5b823567ffffffffffffffff80821115611c9157600080fd5b818501915085601f830112611ca557600080fd5b813581811115611cb457600080fd5b8660208260061b8501011115611cc957600080fd5b60209290920196919550909350505050565b60008060008060408587031215611cf157600080fd5b843567ffffffffffffffff80821115611d0957600080fd5b611d1588838901611bac565b90965094506020870135915080821115611d2e57600080fd5b50611d3b87828801611bac565b95989497509550505050565b600060208284031215611d5957600080fd5b815161124081611a25565b600060208284031215611d7657600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156109d7576109d7611dac565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611e4e57611e4e611dac565b5060010190565b60005b83811015611e70578181015183820152602001611e58565b50506000910152565b60008151808452611e91816020860160208601611e55565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006112406020830184611e79565b7f4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e3a2000815260008251611f0e81601f850160208701611e55565b91909101601f0192915050565b60008085851115611f2b57600080fd5b83861115611f3857600080fd5b5050820193919092039150565b803560208310156109d7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b83815282602082015260008251611f9f816040850160208701611e55565b91909101604001949350505050565b63ffffffff8616815284602082015260a060408201526000611fd360a0830186611e79565b8281036060840152611fe58186611e79565b91505073ffffffffffffffffffffffffffffffffffffffff831660808301529695505050505050565b818103818111156109d7576109d7611dac565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7fffff0000000000000000000000000000000000000000000000000000000000008660f01b1681528460028201528360228201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008360601b166042820152600082516120c4816056850160208701611e55565b91909101605601969550505050505056fea2646970667358221220e498549f1d7afbe1acfe1a7812b942a982a40cd6d4d242719600ba22d14db75b64736f6c63430008130033";
497
+ const _bytecode = "0x60e06040523480156200001157600080fd5b5060405162002377380380620023778339810160408190526200003491620001a4565b80808080806001600160a01b0381163b620000955760405162461bcd60e51b815260206004820152601e60248201527f4d61696c626f78436c69656e743a20696e76616c6964206d61696c626f780000604482015260640160405180910390fd5b6001600160a01b03821660808190526040805163234d8e3d60e21b81529051638d3638f4916004808201926020929091908290030181865afa158015620000e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001069190620001dc565b63ffffffff1660a0526200011a3362000135565b5050506001600160a01b0390931660c052506200020b915050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80516001600160a01b03811681146200019f57600080fd5b919050565b60008060408385031215620001b857600080fd5b620001c38362000187565b9150620001d36020840162000187565b90509250929050565b600060208284031215620001ef57600080fd5b815163ffffffff811681146200020457600080fd5b9392505050565b60805160a05160c05161210b6200026c600039600081816103e70152818161095701528181610a25015281816112b901526113650152600061037301526000818161045b015281816107c90152818161144c015261162b015261210b6000f3fe60806040526004361061018b5760003560e01c806381b4e8b4116100d6578063d5438eae1161007f578063efae508a11610059578063efae508a146104ca578063f2ed8c53146104ea578063f2fde38b1461050a57600080fd5b8063d5438eae14610449578063de523cf31461047d578063e9198bf9146104aa57600080fd5b8063996c6cc3116100b0578063996c6cc3146103d5578063b1bd643614610409578063b49c53a71461042957600080fd5b806381b4e8b41461034e5780638d3638f4146103615780638da5cb5b146103aa57600080fd5b80636352211e1161013857806371a15b381161011257806371a15b38146102d4578063775313a1146102f45780637f5a7c7b1461032157600080fd5b80636352211e1461025a57806370a082311461029f578063715018a6146102bf57600080fd5b8063440df4f411610169578063440df4f41461020557806349d462ef1461022757806356d5d4751461024757600080fd5b80630e72cc06146101905780632ead72f6146101b25780633dfd3873146101e5575b600080fd5b34801561019c57600080fd5b506101b06101ab366004611a47565b61052a565b005b3480156101be57600080fd5b506101d26101cd366004611a7d565b610645565b6040519081526020015b60405180910390f35b3480156101f157600080fd5b506101b0610200366004611a47565b610664565b34801561021157600080fd5b5061021a61077a565b6040516101dc9190611a98565b34801561023357600080fd5b506101b0610242366004611ae2565b61078b565b6101b0610255366004611b0c565b6107b1565b34801561026657600080fd5b5061027a610275366004611b93565b610925565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101dc565b3480156102ab57600080fd5b506101d26102ba366004611a47565b6109dd565b3480156102cb57600080fd5b506101b0610a92565b3480156102e057600080fd5b506101b06102ef366004611bf1565b610aa6565b34801561030057600080fd5b506101d261030f366004611a7d565b60ca6020526000908152604090205481565b34801561032d57600080fd5b5060655461027a9073ffffffffffffffffffffffffffffffffffffffff1681565b6101d261035c366004611c33565b610b01565b34801561036d57600080fd5b506103957f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016101dc565b3480156103b657600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff1661027a565b3480156103e157600080fd5b5061027a7f000000000000000000000000000000000000000000000000000000000000000081565b34801561041557600080fd5b506101b0610424366004611c66565b610b0f565b34801561043557600080fd5b506101b0610444366004611ae2565b610b99565b34801561045557600080fd5b5061027a7f000000000000000000000000000000000000000000000000000000000000000081565b34801561048957600080fd5b5060665461027a9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156104b657600080fd5b506101b06104c5366004611cdb565b610bab565b3480156104d657600080fd5b506101b06104e5366004611a7d565b610c8a565b3480156104f657600080fd5b506101d2610505366004611a7d565b610c9e565b34801561051657600080fd5b506101b0610525366004611a47565b610cb9565b8073ffffffffffffffffffffffffffffffffffffffff81163b151580610564575073ffffffffffffffffffffffffffffffffffffffff8116155b6105f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6105fd610d6d565b50606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008061065c609763ffffffff80861690610dee16565b949350505050565b8073ffffffffffffffffffffffffffffffffffffffff81163b15158061069e575073ffffffffffffffffffffffffffffffffffffffff8116155b61072a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084016105ec565b610732610d6d565b50606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60606107866097610e07565b905090565b610793610d6d565b63ffffffff91909116600090815260ca6020526040902055565b5050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610876576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d61696c626f78436c69656e743a2073656e646572206e6f74206d61696c626f60448201527f780000000000000000000000000000000000000000000000000000000000000060648201526084016105ec565b600061088185610ec2565b9050838114610912576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f456e726f6c6c656420726f7574657220646f6573206e6f74206d61746368207360448201527f656e64657200000000000000000000000000000000000000000000000000000060648201526084016105ec565b61091e85858585610f28565b5050505050565b6040517f6352211e000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690636352211e90602401602060405180830381865afa1580156109b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d79190611d47565b92915050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015610a6e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d79190611d64565b610a9a610d6d565b610aa46000610fb2565b565b610aae610d6d565b8060005b81811015610afb57610ae9848483818110610acf57610acf611d7d565b9050602002016020810190610ae49190611a7d565b611029565b610af4600182611ddb565b9050610ab2565b50505050565b600061065c8484843461107e565b610b17610d6d565b60005b81811015610b9457610b82838383818110610b3757610b37611d7d565b610b4d9260206040909202019081019150611a7d565b848484818110610b5f57610b5f611d7d565b9050604002016020013563ffffffff909116600090815260ca6020526040902055565b610b8d600182611ddb565b9050610b1a565b505050565b610ba1610d6d565b6107ad82826110ed565b610bb3610d6d565b828114610c1c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064016105ec565b8260005b81811015610c8257610c70868683818110610c3d57610c3d611d7d565b9050602002016020810190610c529190611a7d565b858584818110610c6457610c64611d7d565b905060200201356110ed565b610c7b600182611ddb565b9050610c20565b505050505050565b610c92610d6d565b610c9b81611029565b50565b60006109d78260405180602001604052806000815250611103565b610cc1610d6d565b73ffffffffffffffffffffffffffffffffffffffff8116610d64576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016105ec565b610c9b81610fb2565b60335473ffffffffffffffffffffffffffffffffffffffff163314610aa4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105ec565b600080610dfb848461111c565b915091505b9250929050565b60606000610e1483611156565b9050805167ffffffffffffffff811115610e3057610e30611dee565b604051908082528060200260200182016040528015610e59578160200160208202803683370190505b50915060005b8151811015610ebb57818181518110610e7a57610e7a611d7d565b6020026020010151838281518110610e9457610e94611d7d565b63ffffffff9092166020928302919091019091015280610eb381611e1d565b915050610e5f565b5050919050565b60008080610eda609763ffffffff80871690610dee16565b9150915081610ee8856111f1565b90610f20576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ec9190611ec3565b509392505050565b6000610f348383611228565b90506000610f428484611247565b9050366000610f518686611257565b91509150610f67610f5f8590565b848484611267565b838863ffffffff167fba20947a325f450d232530e5f5fce293e7963499d5309a07cee84a269f2f15a685604051610fa091815260200190565b60405180910390a35050505050505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b61103d609763ffffffff8084169061131b16565b611046826111f1565b906107ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ec9190611ec3565b60008061108a84611327565b90506110a1868461109c8888866113eb565b61141a565b9150848663ffffffff167fd229aacb94204188fe8042965fa6b269c62dc5818b21238779ab64bdd17efeec866040516110dc91815260200190565b60405180910390a350949350505050565b6107ad609763ffffffff80851690849061143d16565b60008061110f84610ec2565b905061065c848285611448565b600081815260028301602052604081205481908061114b5761113e8585611529565b925060009150610e009050565b600192509050610e00565b6060600061116383611535565b90508067ffffffffffffffff81111561117e5761117e611dee565b6040519080825280602002602001820160405280156111a7578160200160208202803683370190505b50915060005b81811015610ebb576111bf8482611540565b60001c8382815181106111d4576111d4611d7d565b6020908102919091010152806111e981611e1d565b9150506111ad565b60606112028263ffffffff1661154c565b6040516020016112129190611ed6565b6040516020818303038152906040529050919050565b60006112376020828486611f1b565b61124091611f45565b9392505050565b6000611237604060208486611f1b565b366000610dfb8360408187611f1b565b6040517f42842e0e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8581166024830152604482018590527f000000000000000000000000000000000000000000000000000000000000000016906342842e0e90606401600060405180830381600087803b1580156112fd57600080fd5b505af1158015611311573d6000803e3d6000fd5b5050505050505050565b6000611240838361160a565b6040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018290526060907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906323b872dd90606401600060405180830381600087803b1580156113be57600080fd5b505af11580156113d2573d6000803e3d6000fd5b5050604080516020810190915260008152949350505050565b606083838360405160200161140293929190611f81565b60405160208183030381529060405290509392505050565b60008061142685610ec2565b905061143485828686611627565b95945050505050565b610afb83838361170b565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166381d2ea9585858561149289611728565b6065546040517fffffffff0000000000000000000000000000000000000000000000000000000060e088901b1681526114e8959493929173ffffffffffffffffffffffffffffffffffffffff1690600401611fae565b602060405180830381865afa158015611505573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065c9190611d64565b6000611240838361174a565b60006109d782611762565b6000611240838361176c565b6060600061155983611796565b600101905060008167ffffffffffffffff81111561157957611579611dee565b6040519080825280601f01601f1916602001820160405280156115a3576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85049450846115ad57509392505050565b600081815260028301602052604081208190556112408383611878565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166310b83dc0848787866116728b611728565b6065546040517fffffffff0000000000000000000000000000000000000000000000000000000060e089901b1681526116c8959493929173ffffffffffffffffffffffffffffffffffffffff1690600401611fae565b60206040518083038185885af11580156116e6573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906114349190611d64565b6000828152600284016020526040812082905561065c8484611884565b63ffffffff8116600090815260ca60205260409020546060906109d790611890565b60008181526001830160205260408120541515611240565b60006109d7825490565b600082600001828154811061178357611783611d7d565b9060005260206000200154905092915050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106117df577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef8100000000831061180b576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061182957662386f26fc10000830492506010015b6305f5e1008310611841576305f5e100830492506008015b612710831061185557612710830492506004015b60648310611867576064830492506002015b600a83106109d75760010192915050565b600061124083836118ae565b600061124083836119a1565b60606109d760008333604051806020016040528060008152506119f0565b600081815260018301602052604081205480156119975760006118d260018361200e565b85549091506000906118e69060019061200e565b905081811461194b57600086600001828154811061190657611906611d7d565b906000526020600020015490508087600001848154811061192957611929611d7d565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061195c5761195c612021565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506109d7565b60009150506109d7565b60008181526001830160205260408120546119e8575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556109d7565b5060006109d7565b6060600185858585604051602001611a0c959493929190612050565b6040516020818303038152906040529050949350505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610c9b57600080fd5b600060208284031215611a5957600080fd5b813561124081611a25565b803563ffffffff81168114611a7857600080fd5b919050565b600060208284031215611a8f57600080fd5b61124082611a64565b6020808252825182820181905260009190848201906040850190845b81811015611ad657835163ffffffff1683529284019291840191600101611ab4565b50909695505050505050565b60008060408385031215611af557600080fd5b611afe83611a64565b946020939093013593505050565b60008060008060608587031215611b2257600080fd5b611b2b85611a64565b935060208501359250604085013567ffffffffffffffff80821115611b4f57600080fd5b818701915087601f830112611b6357600080fd5b813581811115611b7257600080fd5b886020828501011115611b8457600080fd5b95989497505060200194505050565b600060208284031215611ba557600080fd5b5035919050565b60008083601f840112611bbe57600080fd5b50813567ffffffffffffffff811115611bd657600080fd5b6020830191508360208260051b8501011115610e0057600080fd5b60008060208385031215611c0457600080fd5b823567ffffffffffffffff811115611c1b57600080fd5b611c2785828601611bac565b90969095509350505050565b600080600060608486031215611c4857600080fd5b611c5184611a64565b95602085013595506040909401359392505050565b60008060208385031215611c7957600080fd5b823567ffffffffffffffff80821115611c9157600080fd5b818501915085601f830112611ca557600080fd5b813581811115611cb457600080fd5b8660208260061b8501011115611cc957600080fd5b60209290920196919550909350505050565b60008060008060408587031215611cf157600080fd5b843567ffffffffffffffff80821115611d0957600080fd5b611d1588838901611bac565b90965094506020870135915080821115611d2e57600080fd5b50611d3b87828801611bac565b95989497509550505050565b600060208284031215611d5957600080fd5b815161124081611a25565b600060208284031215611d7657600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156109d7576109d7611dac565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611e4e57611e4e611dac565b5060010190565b60005b83811015611e70578181015183820152602001611e58565b50506000910152565b60008151808452611e91816020860160208601611e55565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006112406020830184611e79565b7f4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e3a2000815260008251611f0e81601f850160208701611e55565b91909101601f0192915050565b60008085851115611f2b57600080fd5b83861115611f3857600080fd5b5050820193919092039150565b803560208310156109d7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b83815282602082015260008251611f9f816040850160208701611e55565b91909101604001949350505050565b63ffffffff8616815284602082015260a060408201526000611fd360a0830186611e79565b8281036060840152611fe58186611e79565b91505073ffffffffffffffffffffffffffffffffffffffff831660808301529695505050505050565b818103818111156109d7576109d7611dac565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7fffff0000000000000000000000000000000000000000000000000000000000008660f01b1681528460028201528360228201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008360601b166042820152600082516120c4816056850160208701611e55565b91909101605601969550505050505056fea26469706673582212203419f4af91ba02a3ec635f152cc1a731e518fbba1391d5f12298511bbc554b0764736f6c63430008130033";
498
498
  const isSuperArgs = (xs) => xs.length > 1;
499
499
  class HypERC721Collateral__factory extends ethers_1.ContractFactory {
500
500
  constructor(...args) {
@@ -13,7 +13,7 @@ export declare class HypERC721__factory extends ContractFactory {
13
13
  }): TransactionRequest;
14
14
  attach(address: string): HypERC721;
15
15
  connect(signer: Signer): HypERC721__factory;
16
- static readonly bytecode = "0x60c06040523480156200001157600080fd5b50604051620044b2380380620044b2833981016040819052620000349162000178565b80808080806001600160a01b0381163b620000955760405162461bcd60e51b815260206004820152601e60248201527f4d61696c626f78436c69656e743a20696e76616c6964206d61696c626f780000604482015260640160405180910390fd5b6001600160a01b03821660808190526040805163234d8e3d60e21b81529051638d3638f4916004808201926020929091908290030181865afa158015620000e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001069190620001aa565b63ffffffff1660a0526200011a3362000126565b505050505050620001d2565b60c980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000602082840312156200018b57600080fd5b81516001600160a01b0381168114620001a357600080fd5b9392505050565b600060208284031215620001bd57600080fd5b815163ffffffff81168114620001a357600080fd5b60805160a0516142a56200020d60003960006105910152600081816106ba01528181610f9801528181612d1f015261319901526142a56000f3fe6080604052600436106102855760003560e01c8063775313a111610153578063b88d4fde116100cb578063e985e9c51161007f578063efae508a11610064578063efae508a1461079f578063f2ed8c53146107bf578063f2fde38b146107df57600080fd5b8063e985e9c514610729578063eedfca5f1461077f57600080fd5b8063d5438eae116100b0578063d5438eae146106a8578063de523cf3146106dc578063e9198bf91461070957600080fd5b8063b88d4fde14610668578063c87b56dd1461068857600080fd5b80638da5cb5b11610122578063a22cb46511610107578063a22cb46514610608578063b1bd643614610628578063b49c53a71461064857600080fd5b80638da5cb5b146105c857806395d89b41146105f357600080fd5b8063775313a1146105115780637f5a7c7b1461053f57806381b4e8b41461056c5780638d3638f41461057f57600080fd5b80633dfd38731161020157806356d5d475116101b557806370a082311161019a57806370a08231146104bc578063715018a6146104dc57806371a15b38146104f157600080fd5b806356d5d475146104895780636352211e1461049c57600080fd5b8063440df4f4116101e6578063440df4f41461042757806349d462ef146104495780634f6ccce71461046957600080fd5b80633dfd3873146103e757806342842e0e1461040757600080fd5b80630e72cc061161025857806323b872dd1161023d57806323b872dd146103875780632ead72f6146103a75780632f745c59146103c757600080fd5b80630e72cc061461034857806318160ddd1461036857600080fd5b806301ffc9a71461028a57806306fdde03146102bf578063081812fc146102e1578063095ea7b314610326575b600080fd5b34801561029657600080fd5b506102aa6102a5366004613713565b6107ff565b60405190151581526020015b60405180910390f35b3480156102cb57600080fd5b506102d461085b565b6040516102b6919061379e565b3480156102ed57600080fd5b506103016102fc3660046137b1565b6108ed565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102b6565b34801561033257600080fd5b506103466103413660046137f3565b610921565b005b34801561035457600080fd5b5061034661036336600461381d565b610ab2565b34801561037457600080fd5b506099545b6040519081526020016102b6565b34801561039357600080fd5b506103466103a2366004613838565b610bc8565b3480156103b357600080fd5b506103796103c2366004613888565b610c69565b3480156103d357600080fd5b506103796103e23660046137f3565b610c89565b3480156103f357600080fd5b5061034661040236600461381d565b610d58565b34801561041357600080fd5b50610346610422366004613838565b610e6e565b34801561043357600080fd5b5061043c610e89565b6040516102b691906138a3565b34801561045557600080fd5b506103466104643660046138ed565b610e9b565b34801561047557600080fd5b506103796104843660046137b1565b610ec2565b610346610497366004613909565b610f80565b3480156104a857600080fd5b506103016104b73660046137b1565b6110f4565b3480156104c857600080fd5b506103796104d736600461381d565b611180565b3480156104e857600080fd5b5061034661118b565b3480156104fd57600080fd5b5061034661050c3660046139d5565b61119f565b34801561051d57600080fd5b5061037961052c366004613888565b6101606020526000908152604090205481565b34801561054b57600080fd5b5060fb546103019073ffffffffffffffffffffffffffffffffffffffff1681565b61037961057a366004613a17565b6111fa565b34801561058b57600080fd5b506105b37f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016102b6565b3480156105d457600080fd5b5060c95473ffffffffffffffffffffffffffffffffffffffff16610301565b3480156105ff57600080fd5b506102d4611208565b34801561061457600080fd5b50610346610623366004613a4a565b611217565b34801561063457600080fd5b50610346610643366004613a86565b611222565b34801561065457600080fd5b506103466106633660046138ed565b6112a8565b34801561067457600080fd5b50610346610683366004613bbe565b6112ba565b34801561069457600080fd5b506102d46106a33660046137b1565b61135c565b3480156106b457600080fd5b506103017f000000000000000000000000000000000000000000000000000000000000000081565b3480156106e857600080fd5b5060fc546103019073ffffffffffffffffffffffffffffffffffffffff1681565b34801561071557600080fd5b50610346610724366004613c3a565b6113d0565b34801561073557600080fd5b506102aa610744366004613ca6565b73ffffffffffffffffffffffffffffffffffffffff9182166000908152606a6020908152604080832093909416825291909152205460ff1690565b34801561078b57600080fd5b5061034661079a366004613cf9565b6114af565b3480156107ab57600080fd5b506103466107ba366004613888565b611678565b3480156107cb57600080fd5b506103796107da366004613888565b61168c565b3480156107eb57600080fd5b506103466107fa36600461381d565b6116a7565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f780e9d6300000000000000000000000000000000000000000000000000000000148061085557506108558261175b565b92915050565b60606065805461086a90613d66565b80601f016020809104026020016040519081016040528092919081815260200182805461089690613d66565b80156108e35780601f106108b8576101008083540402835291602001916108e3565b820191906000526020600020905b8154815290600101906020018083116108c657829003601f168201915b5050505050905090565b60006108f88261183e565b5060009081526069602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b600061092c826110f4565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff82161480610a175750610a178133610744565b610aa3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c00000060648201526084016109e5565b610aad83836118c9565b505050565b8073ffffffffffffffffffffffffffffffffffffffff81163b151580610aec575073ffffffffffffffffffffffffffffffffffffffff8116155b610b78576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084016109e5565b610b80611969565b5060fc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610bd233826119ea565b610c5e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f7665640000000000000000000000000000000000000060648201526084016109e5565b610aad838383611aa9565b600080610c8161012d63ffffffff80861690611db116565b949350505050565b6000610c9483611dca565b8210610d22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201527f74206f6620626f756e647300000000000000000000000000000000000000000060648201526084016109e5565b5073ffffffffffffffffffffffffffffffffffffffff919091166000908152609760209081526040808320938352929052205490565b8073ffffffffffffffffffffffffffffffffffffffff81163b151580610d92575073ffffffffffffffffffffffffffffffffffffffff8116155b610e1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084016109e5565b610e26611969565b5060fb80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610aad838383604051806020016040528060008152506112ba565b6060610e9661012d611e98565b905090565b610ea3611969565b63ffffffff9190911660009081526101606020526040902055565b5050565b6000610ecd60995490565b8210610f5b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201527f7574206f6620626f756e6473000000000000000000000000000000000000000060648201526084016109e5565b60998281548110610f6e57610f6e613db9565b90600052602060002001549050919050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614611045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d61696c626f78436c69656e743a2073656e646572206e6f74206d61696c626f60448201527f780000000000000000000000000000000000000000000000000000000000000060648201526084016109e5565b600061105085611f53565b90508381146110e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f456e726f6c6c656420726f7574657220646f6573206e6f74206d61746368207360448201527f656e64657200000000000000000000000000000000000000000000000000000060648201526084016109e5565b6110ed85858585611fba565b5050505050565b60008181526067602052604081205473ffffffffffffffffffffffffffffffffffffffff1680610855576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e204944000000000000000060448201526064016109e5565b600061085582611dca565b611193611969565b61119d6000612044565b565b6111a7611969565b8060005b818110156111f4576111e28484838181106111c8576111c8613db9565b90506020020160208101906111dd9190613888565b6120bb565b6111ed600182613e17565b90506111ab565b50505050565b6000610c8184848434612111565b60606066805461086a90613d66565b610ebe338383612180565b61122a611969565b60005b81811015610aad5761129683838381811061124a5761124a613db9565b6112609260206040909202019081019150613888565b84848481811061127257611272613db9565b9050604002016020013563ffffffff90911660009081526101606020526040902055565b6112a1600182613e17565b905061122d565b6112b0611969565b610ebe82826122ad565b6112c433836119ea565b611350576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f7665640000000000000000000000000000000000000060648201526084016109e5565b6111f4848484846122c4565b60606113678261183e565b600061137e60408051602081019091526000815290565b9050600081511161139e57604051806020016040528060008152506113c9565b806113a884612367565b6040516020016113b9929190613e2a565b6040516020818303038152906040525b9392505050565b6113d8611969565b828114611441576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064016109e5565b8260005b818110156114a75761149586868381811061146257611462613db9565b90506020020160208101906114779190613888565b85858481811061148957611489613db9565b905060200201356122ad565b6114a0600182613e17565b9050611445565b505050505050565b600054610100900460ff16158080156114cf5750600054600160ff909116105b806114e95750303b1580156114e9575060005460ff166001145b611575576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016109e5565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156115d357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b336115dd81612044565b6115e78484612425565b60005b8581101561160e576115fc82826124c6565b8061160681613e59565b9150506115ea565b505080156111f457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b611680611969565b611689816120bb565b50565b600061085582604051806020016040528060008152506124e0565b6116af611969565b73ffffffffffffffffffffffffffffffffffffffff8116611752576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016109e5565b61168981612044565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd0000000000000000000000000000000000000000000000000000000014806117ee57507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061085557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610855565b60008181526067602052604090205473ffffffffffffffffffffffffffffffffffffffff16611689576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e204944000000000000000060448201526064016109e5565b600081815260696020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091558190611923826110f4565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60c95473ffffffffffffffffffffffffffffffffffffffff16331461119d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109e5565b6000806119f6836110f4565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611a64575073ffffffffffffffffffffffffffffffffffffffff8082166000908152606a602090815260408083209388168352929052205460ff165b80610c8157508373ffffffffffffffffffffffffffffffffffffffff16611a8a846108ed565b73ffffffffffffffffffffffffffffffffffffffff1614949350505050565b8273ffffffffffffffffffffffffffffffffffffffff16611ac9826110f4565b73ffffffffffffffffffffffffffffffffffffffff1614611b6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e657200000000000000000000000000000000000000000000000000000060648201526084016109e5565b73ffffffffffffffffffffffffffffffffffffffff8216611c0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016109e5565b611c1b83838360016124f9565b8273ffffffffffffffffffffffffffffffffffffffff16611c3b826110f4565b73ffffffffffffffffffffffffffffffffffffffff1614611cde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e657200000000000000000000000000000000000000000000000000000060648201526084016109e5565b600081815260696020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915573ffffffffffffffffffffffffffffffffffffffff8781168086526068855283862080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01905590871680865283862080546001019055868652606790945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600080611dbe8484612696565b915091505b9250929050565b600073ffffffffffffffffffffffffffffffffffffffff8216611e6f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e6572000000000000000000000000000000000000000000000060648201526084016109e5565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526068602052604090205490565b60606000611ea5836126d0565b9050805167ffffffffffffffff811115611ec157611ec1613afb565b604051908082528060200260200182016040528015611eea578160200160208202803683370190505b50915060005b8151811015611f4c57818181518110611f0b57611f0b613db9565b6020026020010151838281518110611f2557611f25613db9565b63ffffffff9092166020928302919091019091015280611f4481613e59565b915050611ef0565b5050919050565b60008080611f6c61012d63ffffffff80871690611db116565b9150915081611f7a8561276b565b90611fb2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e5919061379e565b509392505050565b6000611fc683836127a2565b90506000611fd484846127ba565b9050366000611fe386866127ca565b91509150611ff9611ff18590565b8484846127da565b838863ffffffff167fba20947a325f450d232530e5f5fce293e7963499d5309a07cee84a269f2f15a68560405161203291815260200190565b60405180910390a35050505050505050565b60c9805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6120d061012d63ffffffff808416906127e416565b6120d98261276b565b90610ebe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e5919061379e565b60008061211d846127f0565b9050612134868461212f888886612896565b6128c5565b9150848663ffffffff167fd229aacb94204188fe8042965fa6b269c62dc5818b21238779ab64bdd17efeec8660405161216f91815260200190565b60405180910390a350949350505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612215576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016109e5565b73ffffffffffffffffffffffffffffffffffffffff8381166000818152606a602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610ebe61012d63ffffffff8085169084906128e816565b6122cf848484611aa9565b6122db848484846128f3565b6111f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e746572000000000000000000000000000060648201526084016109e5565b6060600061237483612ae6565b600101905060008167ffffffffffffffff81111561239457612394613afb565b6040519080825280601f01601f1916602001820160405280156123be576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85049450846123c857509392505050565b600054610100900460ff166124bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109e5565b610ebe8282612bc8565b610ebe828260405180602001604052806000815250612c78565b6000806124ec84611f53565b9050610c81848285612d1b565b600181111561258a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e736563757469766520747260448201527f616e7366657273206e6f7420737570706f72746564000000000000000000000060648201526084016109e5565b8173ffffffffffffffffffffffffffffffffffffffff85166125f3576125ee81609980546000838152609a60205260408120829055600182018355919091527f72a152ddfb8e864297c917af52ea6c1c68aead0fee1a62673fcc7e0c94979d000155565b612630565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614612630576126308582612dfc565b73ffffffffffffffffffffffffffffffffffffffff84166126595761265481612eb3565b6110ed565b8473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146110ed576110ed8482612f62565b60008181526002830160205260408120548190806126c5576126b88585612fb3565b925060009150611dc39050565b600192509050611dc3565b606060006126dd83612fbf565b90508067ffffffffffffffff8111156126f8576126f8613afb565b604051908082528060200260200182016040528015612721578160200160208202803683370190505b50915060005b81811015611f4c576127398482612fca565b60001c83828151811061274e5761274e613db9565b60209081029190910101528061276381613e59565b915050612727565b606061277c8263ffffffff16612fd6565b60405160200161278c9190613e91565b6040516020818303038152906040529050919050565b60006127b16020828486613ed6565b6113c991613f00565b60006127b1604060208486613ed6565b366000611dbe8360408187613ed6565b6111f484846124c6565b60006113c98383613092565b6060336127fc836110f4565b73ffffffffffffffffffffffffffffffffffffffff1614612879576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f216f776e6572000000000000000000000000000000000000000000000000000060448201526064016109e5565b612882826130af565b505060408051602081019091526000815290565b60608383836040516020016128ad93929190613f3c565b60405160208183030381529060405290509392505050565b6000806128d185611f53565b90506128df85828686613195565b95945050505050565b6111f4838383613279565b600073ffffffffffffffffffffffffffffffffffffffff84163b15612adb576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063150b7a029061296a903390899088908890600401613f69565b6020604051808303816000875af19250505080156129c3575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526129c091810190613fb2565b60015b612a90573d8080156129f1576040519150601f19603f3d011682016040523d82523d6000602084013e6129f6565b606091505b508051600003612a88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e746572000000000000000000000000000060648201526084016109e5565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050610c81565b506001949350505050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612b2f577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310612b5b576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310612b7957662386f26fc10000830492506010015b6305f5e1008310612b91576305f5e100830492506008015b6127108310612ba557612710830492506004015b60648310612bb7576064830492506002015b600a83106108555760010192915050565b600054610100900460ff16612c5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109e5565b6065612c6b8382614015565b506066610aad8282614015565b612c828383613296565b612c8f60008484846128f3565b610aad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e746572000000000000000000000000000060648201526084016109e5565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166381d2ea95858585612d65896134c9565b60fb546040517fffffffff0000000000000000000000000000000000000000000000000000000060e088901b168152612dbb959493929173ffffffffffffffffffffffffffffffffffffffff169060040161412f565b602060405180830381865afa158015612dd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c81919061418f565b60006001612e0984611dca565b612e1391906141a8565b600083815260986020526040902054909150808214612e735773ffffffffffffffffffffffffffffffffffffffff841660009081526097602090815260408083208584528252808320548484528184208190558352609890915290208190555b50600091825260986020908152604080842084905573ffffffffffffffffffffffffffffffffffffffff9094168352609781528383209183525290812055565b609954600090612ec5906001906141a8565b6000838152609a602052604081205460998054939450909284908110612eed57612eed613db9565b906000526020600020015490508060998381548110612f0e57612f0e613db9565b6000918252602080832090910192909255828152609a90915260408082208490558582528120556099805480612f4657612f466141bb565b6001900381819060005260206000200160009055905550505050565b6000612f6d83611dca565b73ffffffffffffffffffffffffffffffffffffffff9093166000908152609760209081526040808320868452825280832085905593825260989052919091209190915550565b60006113c983836134ec565b600061085582613504565b60006113c9838361350e565b60606000612fe383612ae6565b600101905060008167ffffffffffffffff81111561300357613003613afb565b6040519080825280601f01601f19166020018201604052801561302d576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a850494508415611fb257613037565b600081815260028301602052604081208190556113c98383613538565b60006130ba826110f4565b90506130ca8160008460016124f9565b6130d3826110f4565b600083815260696020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915573ffffffffffffffffffffffffffffffffffffffff85168085526068845282852080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190558785526067909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166310b83dc0848787866131e08b6134c9565b60fb546040517fffffffff0000000000000000000000000000000000000000000000000000000060e089901b168152613236959493929173ffffffffffffffffffffffffffffffffffffffff169060040161412f565b60206040518083038185885af1158015613254573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906128df919061418f565b60008281526002840160205260408120829055610c818484613544565b73ffffffffffffffffffffffffffffffffffffffff8216613313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016109e5565b60008181526067602052604090205473ffffffffffffffffffffffffffffffffffffffff161561339f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016109e5565b6133ad6000838360016124f9565b60008181526067602052604090205473ffffffffffffffffffffffffffffffffffffffff1615613439576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016109e5565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260686020908152604080832080546001019055848352606790915280822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b63ffffffff81166000908152610160602052604090205460609061085590613550565b600081815260018301602052604081205415156113c9565b6000610855825490565b600082600001828154811061352557613525613db9565b9060005260206000200154905092915050565b60006113c9838361356e565b60006113c98383613661565b606061085560008333604051806020016040528060008152506136b0565b600081815260018301602052604081205480156136575760006135926001836141a8565b85549091506000906135a6906001906141a8565b905081811461360b5760008660000182815481106135c6576135c6613db9565b90600052602060002001549050808760000184815481106135e9576135e9613db9565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061361c5761361c6141bb565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610855565b6000915050610855565b60008181526001830160205260408120546136a857508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610855565b506000610855565b60606001858585856040516020016136cc9594939291906141ea565b6040516020818303038152906040529050949350505050565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461168957600080fd5b60006020828403121561372557600080fd5b81356113c9816136e5565b60005b8381101561374b578181015183820152602001613733565b50506000910152565b6000815180845261376c816020860160208601613730565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006113c96020830184613754565b6000602082840312156137c357600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff811681146137ee57600080fd5b919050565b6000806040838503121561380657600080fd5b61380f836137ca565b946020939093013593505050565b60006020828403121561382f57600080fd5b6113c9826137ca565b60008060006060848603121561384d57600080fd5b613856846137ca565b9250613864602085016137ca565b9150604084013590509250925092565b803563ffffffff811681146137ee57600080fd5b60006020828403121561389a57600080fd5b6113c982613874565b6020808252825182820181905260009190848201906040850190845b818110156138e157835163ffffffff16835292840192918401916001016138bf565b50909695505050505050565b6000806040838503121561390057600080fd5b61380f83613874565b6000806000806060858703121561391f57600080fd5b61392885613874565b935060208501359250604085013567ffffffffffffffff8082111561394c57600080fd5b818701915087601f83011261396057600080fd5b81358181111561396f57600080fd5b88602082850101111561398157600080fd5b95989497505060200194505050565b60008083601f8401126139a257600080fd5b50813567ffffffffffffffff8111156139ba57600080fd5b6020830191508360208260051b8501011115611dc357600080fd5b600080602083850312156139e857600080fd5b823567ffffffffffffffff8111156139ff57600080fd5b613a0b85828601613990565b90969095509350505050565b600080600060608486031215613a2c57600080fd5b613a3584613874565b95602085013595506040909401359392505050565b60008060408385031215613a5d57600080fd5b613a66836137ca565b915060208301358015158114613a7b57600080fd5b809150509250929050565b60008060208385031215613a9957600080fd5b823567ffffffffffffffff80821115613ab157600080fd5b818501915085601f830112613ac557600080fd5b813581811115613ad457600080fd5b8660208260061b8501011115613ae957600080fd5b60209290920196919550909350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600067ffffffffffffffff80841115613b4557613b45613afb565b604051601f85017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715613b8b57613b8b613afb565b81604052809350858152868686011115613ba457600080fd5b858560208301376000602087830101525050509392505050565b60008060008060808587031215613bd457600080fd5b613bdd856137ca565b9350613beb602086016137ca565b925060408501359150606085013567ffffffffffffffff811115613c0e57600080fd5b8501601f81018713613c1f57600080fd5b613c2e87823560208401613b2a565b91505092959194509250565b60008060008060408587031215613c5057600080fd5b843567ffffffffffffffff80821115613c6857600080fd5b613c7488838901613990565b90965094506020870135915080821115613c8d57600080fd5b50613c9a87828801613990565b95989497509550505050565b60008060408385031215613cb957600080fd5b613cc2836137ca565b9150613cd0602084016137ca565b90509250929050565b600082601f830112613cea57600080fd5b6113c983833560208501613b2a565b600080600060608486031215613d0e57600080fd5b83359250602084013567ffffffffffffffff80821115613d2d57600080fd5b613d3987838801613cd9565b93506040860135915080821115613d4f57600080fd5b50613d5c86828701613cd9565b9150509250925092565b600181811c90821680613d7a57607f821691505b602082108103613db3577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561085557610855613de8565b60008351613e3c818460208801613730565b835190830190613e50818360208801613730565b01949350505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613e8a57613e8a613de8565b5060010190565b7f4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e3a2000815260008251613ec981601f850160208701613730565b91909101601f0192915050565b60008085851115613ee657600080fd5b83861115613ef357600080fd5b5050820193919092039150565b80356020831015610855577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b83815282602082015260008251613f5a816040850160208701613730565b91909101604001949350505050565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152613fa86080830184613754565b9695505050505050565b600060208284031215613fc457600080fd5b81516113c9816136e5565b601f821115610aad57600081815260208120601f850160051c81016020861015613ff65750805b601f850160051c820191505b818110156114a757828155600101614002565b815167ffffffffffffffff81111561402f5761402f613afb565b6140438161403d8454613d66565b84613fcf565b602080601f83116001811461409657600084156140605750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556114a7565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156140e3578886015182559484019460019091019084016140c4565b508582101561411f57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b63ffffffff8616815284602082015260a06040820152600061415460a0830186613754565b82810360608401526141668186613754565b91505073ffffffffffffffffffffffffffffffffffffffff831660808301529695505050505050565b6000602082840312156141a157600080fd5b5051919050565b8181038181111561085557610855613de8565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7fffff0000000000000000000000000000000000000000000000000000000000008660f01b1681528460028201528360228201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008360601b1660428201526000825161425e816056850160208701613730565b91909101605601969550505050505056fea2646970667358221220458e9087f13eff62c6433bcb311d149a56232e501dd9164f161185d028e3b4f564736f6c63430008130033";
16
+ static readonly bytecode = "0x60c06040523480156200001157600080fd5b50604051620044b2380380620044b2833981016040819052620000349162000178565b80808080806001600160a01b0381163b620000955760405162461bcd60e51b815260206004820152601e60248201527f4d61696c626f78436c69656e743a20696e76616c6964206d61696c626f780000604482015260640160405180910390fd5b6001600160a01b03821660808190526040805163234d8e3d60e21b81529051638d3638f4916004808201926020929091908290030181865afa158015620000e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001069190620001aa565b63ffffffff1660a0526200011a3362000126565b505050505050620001d2565b60c980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000602082840312156200018b57600080fd5b81516001600160a01b0381168114620001a357600080fd5b9392505050565b600060208284031215620001bd57600080fd5b815163ffffffff81168114620001a357600080fd5b60805160a0516142a56200020d60003960006105910152600081816106ba01528181610f9801528181612d1f015261319901526142a56000f3fe6080604052600436106102855760003560e01c8063775313a111610153578063b88d4fde116100cb578063e985e9c51161007f578063efae508a11610064578063efae508a1461079f578063f2ed8c53146107bf578063f2fde38b146107df57600080fd5b8063e985e9c514610729578063eedfca5f1461077f57600080fd5b8063d5438eae116100b0578063d5438eae146106a8578063de523cf3146106dc578063e9198bf91461070957600080fd5b8063b88d4fde14610668578063c87b56dd1461068857600080fd5b80638da5cb5b11610122578063a22cb46511610107578063a22cb46514610608578063b1bd643614610628578063b49c53a71461064857600080fd5b80638da5cb5b146105c857806395d89b41146105f357600080fd5b8063775313a1146105115780637f5a7c7b1461053f57806381b4e8b41461056c5780638d3638f41461057f57600080fd5b80633dfd38731161020157806356d5d475116101b557806370a082311161019a57806370a08231146104bc578063715018a6146104dc57806371a15b38146104f157600080fd5b806356d5d475146104895780636352211e1461049c57600080fd5b8063440df4f4116101e6578063440df4f41461042757806349d462ef146104495780634f6ccce71461046957600080fd5b80633dfd3873146103e757806342842e0e1461040757600080fd5b80630e72cc061161025857806323b872dd1161023d57806323b872dd146103875780632ead72f6146103a75780632f745c59146103c757600080fd5b80630e72cc061461034857806318160ddd1461036857600080fd5b806301ffc9a71461028a57806306fdde03146102bf578063081812fc146102e1578063095ea7b314610326575b600080fd5b34801561029657600080fd5b506102aa6102a5366004613713565b6107ff565b60405190151581526020015b60405180910390f35b3480156102cb57600080fd5b506102d461085b565b6040516102b6919061379e565b3480156102ed57600080fd5b506103016102fc3660046137b1565b6108ed565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102b6565b34801561033257600080fd5b506103466103413660046137f3565b610921565b005b34801561035457600080fd5b5061034661036336600461381d565b610ab2565b34801561037457600080fd5b506099545b6040519081526020016102b6565b34801561039357600080fd5b506103466103a2366004613838565b610bc8565b3480156103b357600080fd5b506103796103c2366004613888565b610c69565b3480156103d357600080fd5b506103796103e23660046137f3565b610c89565b3480156103f357600080fd5b5061034661040236600461381d565b610d58565b34801561041357600080fd5b50610346610422366004613838565b610e6e565b34801561043357600080fd5b5061043c610e89565b6040516102b691906138a3565b34801561045557600080fd5b506103466104643660046138ed565b610e9b565b34801561047557600080fd5b506103796104843660046137b1565b610ec2565b610346610497366004613909565b610f80565b3480156104a857600080fd5b506103016104b73660046137b1565b6110f4565b3480156104c857600080fd5b506103796104d736600461381d565b611180565b3480156104e857600080fd5b5061034661118b565b3480156104fd57600080fd5b5061034661050c3660046139d5565b61119f565b34801561051d57600080fd5b5061037961052c366004613888565b6101606020526000908152604090205481565b34801561054b57600080fd5b5060fb546103019073ffffffffffffffffffffffffffffffffffffffff1681565b61037961057a366004613a17565b6111fa565b34801561058b57600080fd5b506105b37f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016102b6565b3480156105d457600080fd5b5060c95473ffffffffffffffffffffffffffffffffffffffff16610301565b3480156105ff57600080fd5b506102d4611208565b34801561061457600080fd5b50610346610623366004613a4a565b611217565b34801561063457600080fd5b50610346610643366004613a86565b611222565b34801561065457600080fd5b506103466106633660046138ed565b6112a8565b34801561067457600080fd5b50610346610683366004613bbe565b6112ba565b34801561069457600080fd5b506102d46106a33660046137b1565b61135c565b3480156106b457600080fd5b506103017f000000000000000000000000000000000000000000000000000000000000000081565b3480156106e857600080fd5b5060fc546103019073ffffffffffffffffffffffffffffffffffffffff1681565b34801561071557600080fd5b50610346610724366004613c3a565b6113d0565b34801561073557600080fd5b506102aa610744366004613ca6565b73ffffffffffffffffffffffffffffffffffffffff9182166000908152606a6020908152604080832093909416825291909152205460ff1690565b34801561078b57600080fd5b5061034661079a366004613cf9565b6114af565b3480156107ab57600080fd5b506103466107ba366004613888565b611678565b3480156107cb57600080fd5b506103796107da366004613888565b61168c565b3480156107eb57600080fd5b506103466107fa36600461381d565b6116a7565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f780e9d6300000000000000000000000000000000000000000000000000000000148061085557506108558261175b565b92915050565b60606065805461086a90613d66565b80601f016020809104026020016040519081016040528092919081815260200182805461089690613d66565b80156108e35780601f106108b8576101008083540402835291602001916108e3565b820191906000526020600020905b8154815290600101906020018083116108c657829003601f168201915b5050505050905090565b60006108f88261183e565b5060009081526069602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b600061092c826110f4565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff82161480610a175750610a178133610744565b610aa3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c00000060648201526084016109e5565b610aad83836118c9565b505050565b8073ffffffffffffffffffffffffffffffffffffffff81163b151580610aec575073ffffffffffffffffffffffffffffffffffffffff8116155b610b78576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084016109e5565b610b80611969565b5060fc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610bd233826119ea565b610c5e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f7665640000000000000000000000000000000000000060648201526084016109e5565b610aad838383611aa9565b600080610c8161012d63ffffffff80861690611db116565b949350505050565b6000610c9483611dca565b8210610d22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201527f74206f6620626f756e647300000000000000000000000000000000000000000060648201526084016109e5565b5073ffffffffffffffffffffffffffffffffffffffff919091166000908152609760209081526040808320938352929052205490565b8073ffffffffffffffffffffffffffffffffffffffff81163b151580610d92575073ffffffffffffffffffffffffffffffffffffffff8116155b610e1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084016109e5565b610e26611969565b5060fb80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610aad838383604051806020016040528060008152506112ba565b6060610e9661012d611e98565b905090565b610ea3611969565b63ffffffff9190911660009081526101606020526040902055565b5050565b6000610ecd60995490565b8210610f5b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201527f7574206f6620626f756e6473000000000000000000000000000000000000000060648201526084016109e5565b60998281548110610f6e57610f6e613db9565b90600052602060002001549050919050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614611045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d61696c626f78436c69656e743a2073656e646572206e6f74206d61696c626f60448201527f780000000000000000000000000000000000000000000000000000000000000060648201526084016109e5565b600061105085611f53565b90508381146110e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f456e726f6c6c656420726f7574657220646f6573206e6f74206d61746368207360448201527f656e64657200000000000000000000000000000000000000000000000000000060648201526084016109e5565b6110ed85858585611fba565b5050505050565b60008181526067602052604081205473ffffffffffffffffffffffffffffffffffffffff1680610855576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e204944000000000000000060448201526064016109e5565b600061085582611dca565b611193611969565b61119d6000612044565b565b6111a7611969565b8060005b818110156111f4576111e28484838181106111c8576111c8613db9565b90506020020160208101906111dd9190613888565b6120bb565b6111ed600182613e17565b90506111ab565b50505050565b6000610c8184848434612111565b60606066805461086a90613d66565b610ebe338383612180565b61122a611969565b60005b81811015610aad5761129683838381811061124a5761124a613db9565b6112609260206040909202019081019150613888565b84848481811061127257611272613db9565b9050604002016020013563ffffffff90911660009081526101606020526040902055565b6112a1600182613e17565b905061122d565b6112b0611969565b610ebe82826122ad565b6112c433836119ea565b611350576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f7665640000000000000000000000000000000000000060648201526084016109e5565b6111f4848484846122c4565b60606113678261183e565b600061137e60408051602081019091526000815290565b9050600081511161139e57604051806020016040528060008152506113c9565b806113a884612367565b6040516020016113b9929190613e2a565b6040516020818303038152906040525b9392505050565b6113d8611969565b828114611441576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064016109e5565b8260005b818110156114a75761149586868381811061146257611462613db9565b90506020020160208101906114779190613888565b85858481811061148957611489613db9565b905060200201356122ad565b6114a0600182613e17565b9050611445565b505050505050565b600054610100900460ff16158080156114cf5750600054600160ff909116105b806114e95750303b1580156114e9575060005460ff166001145b611575576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016109e5565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156115d357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b336115dd81612044565b6115e78484612425565b60005b8581101561160e576115fc82826124c6565b8061160681613e59565b9150506115ea565b505080156111f457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b611680611969565b611689816120bb565b50565b600061085582604051806020016040528060008152506124e0565b6116af611969565b73ffffffffffffffffffffffffffffffffffffffff8116611752576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016109e5565b61168981612044565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd0000000000000000000000000000000000000000000000000000000014806117ee57507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061085557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610855565b60008181526067602052604090205473ffffffffffffffffffffffffffffffffffffffff16611689576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e204944000000000000000060448201526064016109e5565b600081815260696020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091558190611923826110f4565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60c95473ffffffffffffffffffffffffffffffffffffffff16331461119d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109e5565b6000806119f6836110f4565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611a64575073ffffffffffffffffffffffffffffffffffffffff8082166000908152606a602090815260408083209388168352929052205460ff165b80610c8157508373ffffffffffffffffffffffffffffffffffffffff16611a8a846108ed565b73ffffffffffffffffffffffffffffffffffffffff1614949350505050565b8273ffffffffffffffffffffffffffffffffffffffff16611ac9826110f4565b73ffffffffffffffffffffffffffffffffffffffff1614611b6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e657200000000000000000000000000000000000000000000000000000060648201526084016109e5565b73ffffffffffffffffffffffffffffffffffffffff8216611c0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016109e5565b611c1b83838360016124f9565b8273ffffffffffffffffffffffffffffffffffffffff16611c3b826110f4565b73ffffffffffffffffffffffffffffffffffffffff1614611cde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e657200000000000000000000000000000000000000000000000000000060648201526084016109e5565b600081815260696020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915573ffffffffffffffffffffffffffffffffffffffff8781168086526068855283862080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01905590871680865283862080546001019055868652606790945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600080611dbe8484612696565b915091505b9250929050565b600073ffffffffffffffffffffffffffffffffffffffff8216611e6f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e6572000000000000000000000000000000000000000000000060648201526084016109e5565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526068602052604090205490565b60606000611ea5836126d0565b9050805167ffffffffffffffff811115611ec157611ec1613afb565b604051908082528060200260200182016040528015611eea578160200160208202803683370190505b50915060005b8151811015611f4c57818181518110611f0b57611f0b613db9565b6020026020010151838281518110611f2557611f25613db9565b63ffffffff9092166020928302919091019091015280611f4481613e59565b915050611ef0565b5050919050565b60008080611f6c61012d63ffffffff80871690611db116565b9150915081611f7a8561276b565b90611fb2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e5919061379e565b509392505050565b6000611fc683836127a2565b90506000611fd484846127ba565b9050366000611fe386866127ca565b91509150611ff9611ff18590565b8484846127da565b838863ffffffff167fba20947a325f450d232530e5f5fce293e7963499d5309a07cee84a269f2f15a68560405161203291815260200190565b60405180910390a35050505050505050565b60c9805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6120d061012d63ffffffff808416906127e416565b6120d98261276b565b90610ebe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e5919061379e565b60008061211d846127f0565b9050612134868461212f888886612896565b6128c5565b9150848663ffffffff167fd229aacb94204188fe8042965fa6b269c62dc5818b21238779ab64bdd17efeec8660405161216f91815260200190565b60405180910390a350949350505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612215576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016109e5565b73ffffffffffffffffffffffffffffffffffffffff8381166000818152606a602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610ebe61012d63ffffffff8085169084906128e816565b6122cf848484611aa9565b6122db848484846128f3565b6111f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e746572000000000000000000000000000060648201526084016109e5565b6060600061237483612ae6565b600101905060008167ffffffffffffffff81111561239457612394613afb565b6040519080825280601f01601f1916602001820160405280156123be576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85049450846123c857509392505050565b600054610100900460ff166124bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109e5565b610ebe8282612bc8565b610ebe828260405180602001604052806000815250612c78565b6000806124ec84611f53565b9050610c81848285612d1b565b600181111561258a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e736563757469766520747260448201527f616e7366657273206e6f7420737570706f72746564000000000000000000000060648201526084016109e5565b8173ffffffffffffffffffffffffffffffffffffffff85166125f3576125ee81609980546000838152609a60205260408120829055600182018355919091527f72a152ddfb8e864297c917af52ea6c1c68aead0fee1a62673fcc7e0c94979d000155565b612630565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614612630576126308582612dfc565b73ffffffffffffffffffffffffffffffffffffffff84166126595761265481612eb3565b6110ed565b8473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146110ed576110ed8482612f62565b60008181526002830160205260408120548190806126c5576126b88585612fb3565b925060009150611dc39050565b600192509050611dc3565b606060006126dd83612fbf565b90508067ffffffffffffffff8111156126f8576126f8613afb565b604051908082528060200260200182016040528015612721578160200160208202803683370190505b50915060005b81811015611f4c576127398482612fca565b60001c83828151811061274e5761274e613db9565b60209081029190910101528061276381613e59565b915050612727565b606061277c8263ffffffff16612fd6565b60405160200161278c9190613e91565b6040516020818303038152906040529050919050565b60006127b16020828486613ed6565b6113c991613f00565b60006127b1604060208486613ed6565b366000611dbe8360408187613ed6565b6111f484846124c6565b60006113c98383613092565b6060336127fc836110f4565b73ffffffffffffffffffffffffffffffffffffffff1614612879576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f216f776e6572000000000000000000000000000000000000000000000000000060448201526064016109e5565b612882826130af565b505060408051602081019091526000815290565b60608383836040516020016128ad93929190613f3c565b60405160208183030381529060405290509392505050565b6000806128d185611f53565b90506128df85828686613195565b95945050505050565b6111f4838383613279565b600073ffffffffffffffffffffffffffffffffffffffff84163b15612adb576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063150b7a029061296a903390899088908890600401613f69565b6020604051808303816000875af19250505080156129c3575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526129c091810190613fb2565b60015b612a90573d8080156129f1576040519150601f19603f3d011682016040523d82523d6000602084013e6129f6565b606091505b508051600003612a88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e746572000000000000000000000000000060648201526084016109e5565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050610c81565b506001949350505050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612b2f577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310612b5b576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310612b7957662386f26fc10000830492506010015b6305f5e1008310612b91576305f5e100830492506008015b6127108310612ba557612710830492506004015b60648310612bb7576064830492506002015b600a83106108555760010192915050565b600054610100900460ff16612c5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109e5565b6065612c6b8382614015565b506066610aad8282614015565b612c828383613296565b612c8f60008484846128f3565b610aad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e746572000000000000000000000000000060648201526084016109e5565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166381d2ea95858585612d65896134c9565b60fb546040517fffffffff0000000000000000000000000000000000000000000000000000000060e088901b168152612dbb959493929173ffffffffffffffffffffffffffffffffffffffff169060040161412f565b602060405180830381865afa158015612dd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c81919061418f565b60006001612e0984611dca565b612e1391906141a8565b600083815260986020526040902054909150808214612e735773ffffffffffffffffffffffffffffffffffffffff841660009081526097602090815260408083208584528252808320548484528184208190558352609890915290208190555b50600091825260986020908152604080842084905573ffffffffffffffffffffffffffffffffffffffff9094168352609781528383209183525290812055565b609954600090612ec5906001906141a8565b6000838152609a602052604081205460998054939450909284908110612eed57612eed613db9565b906000526020600020015490508060998381548110612f0e57612f0e613db9565b6000918252602080832090910192909255828152609a90915260408082208490558582528120556099805480612f4657612f466141bb565b6001900381819060005260206000200160009055905550505050565b6000612f6d83611dca565b73ffffffffffffffffffffffffffffffffffffffff9093166000908152609760209081526040808320868452825280832085905593825260989052919091209190915550565b60006113c983836134ec565b600061085582613504565b60006113c9838361350e565b60606000612fe383612ae6565b600101905060008167ffffffffffffffff81111561300357613003613afb565b6040519080825280601f01601f19166020018201604052801561302d576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a850494508415611fb257613037565b600081815260028301602052604081208190556113c98383613538565b60006130ba826110f4565b90506130ca8160008460016124f9565b6130d3826110f4565b600083815260696020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915573ffffffffffffffffffffffffffffffffffffffff85168085526068845282852080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190558785526067909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166310b83dc0848787866131e08b6134c9565b60fb546040517fffffffff0000000000000000000000000000000000000000000000000000000060e089901b168152613236959493929173ffffffffffffffffffffffffffffffffffffffff169060040161412f565b60206040518083038185885af1158015613254573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906128df919061418f565b60008281526002840160205260408120829055610c818484613544565b73ffffffffffffffffffffffffffffffffffffffff8216613313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016109e5565b60008181526067602052604090205473ffffffffffffffffffffffffffffffffffffffff161561339f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016109e5565b6133ad6000838360016124f9565b60008181526067602052604090205473ffffffffffffffffffffffffffffffffffffffff1615613439576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016109e5565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260686020908152604080832080546001019055848352606790915280822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b63ffffffff81166000908152610160602052604090205460609061085590613550565b600081815260018301602052604081205415156113c9565b6000610855825490565b600082600001828154811061352557613525613db9565b9060005260206000200154905092915050565b60006113c9838361356e565b60006113c98383613661565b606061085560008333604051806020016040528060008152506136b0565b600081815260018301602052604081205480156136575760006135926001836141a8565b85549091506000906135a6906001906141a8565b905081811461360b5760008660000182815481106135c6576135c6613db9565b90600052602060002001549050808760000184815481106135e9576135e9613db9565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061361c5761361c6141bb565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610855565b6000915050610855565b60008181526001830160205260408120546136a857508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610855565b506000610855565b60606001858585856040516020016136cc9594939291906141ea565b6040516020818303038152906040529050949350505050565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461168957600080fd5b60006020828403121561372557600080fd5b81356113c9816136e5565b60005b8381101561374b578181015183820152602001613733565b50506000910152565b6000815180845261376c816020860160208601613730565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006113c96020830184613754565b6000602082840312156137c357600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff811681146137ee57600080fd5b919050565b6000806040838503121561380657600080fd5b61380f836137ca565b946020939093013593505050565b60006020828403121561382f57600080fd5b6113c9826137ca565b60008060006060848603121561384d57600080fd5b613856846137ca565b9250613864602085016137ca565b9150604084013590509250925092565b803563ffffffff811681146137ee57600080fd5b60006020828403121561389a57600080fd5b6113c982613874565b6020808252825182820181905260009190848201906040850190845b818110156138e157835163ffffffff16835292840192918401916001016138bf565b50909695505050505050565b6000806040838503121561390057600080fd5b61380f83613874565b6000806000806060858703121561391f57600080fd5b61392885613874565b935060208501359250604085013567ffffffffffffffff8082111561394c57600080fd5b818701915087601f83011261396057600080fd5b81358181111561396f57600080fd5b88602082850101111561398157600080fd5b95989497505060200194505050565b60008083601f8401126139a257600080fd5b50813567ffffffffffffffff8111156139ba57600080fd5b6020830191508360208260051b8501011115611dc357600080fd5b600080602083850312156139e857600080fd5b823567ffffffffffffffff8111156139ff57600080fd5b613a0b85828601613990565b90969095509350505050565b600080600060608486031215613a2c57600080fd5b613a3584613874565b95602085013595506040909401359392505050565b60008060408385031215613a5d57600080fd5b613a66836137ca565b915060208301358015158114613a7b57600080fd5b809150509250929050565b60008060208385031215613a9957600080fd5b823567ffffffffffffffff80821115613ab157600080fd5b818501915085601f830112613ac557600080fd5b813581811115613ad457600080fd5b8660208260061b8501011115613ae957600080fd5b60209290920196919550909350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600067ffffffffffffffff80841115613b4557613b45613afb565b604051601f85017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715613b8b57613b8b613afb565b81604052809350858152868686011115613ba457600080fd5b858560208301376000602087830101525050509392505050565b60008060008060808587031215613bd457600080fd5b613bdd856137ca565b9350613beb602086016137ca565b925060408501359150606085013567ffffffffffffffff811115613c0e57600080fd5b8501601f81018713613c1f57600080fd5b613c2e87823560208401613b2a565b91505092959194509250565b60008060008060408587031215613c5057600080fd5b843567ffffffffffffffff80821115613c6857600080fd5b613c7488838901613990565b90965094506020870135915080821115613c8d57600080fd5b50613c9a87828801613990565b95989497509550505050565b60008060408385031215613cb957600080fd5b613cc2836137ca565b9150613cd0602084016137ca565b90509250929050565b600082601f830112613cea57600080fd5b6113c983833560208501613b2a565b600080600060608486031215613d0e57600080fd5b83359250602084013567ffffffffffffffff80821115613d2d57600080fd5b613d3987838801613cd9565b93506040860135915080821115613d4f57600080fd5b50613d5c86828701613cd9565b9150509250925092565b600181811c90821680613d7a57607f821691505b602082108103613db3577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561085557610855613de8565b60008351613e3c818460208801613730565b835190830190613e50818360208801613730565b01949350505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613e8a57613e8a613de8565b5060010190565b7f4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e3a2000815260008251613ec981601f850160208701613730565b91909101601f0192915050565b60008085851115613ee657600080fd5b83861115613ef357600080fd5b5050820193919092039150565b80356020831015610855577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b83815282602082015260008251613f5a816040850160208701613730565b91909101604001949350505050565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152613fa86080830184613754565b9695505050505050565b600060208284031215613fc457600080fd5b81516113c9816136e5565b601f821115610aad57600081815260208120601f850160051c81016020861015613ff65750805b601f850160051c820191505b818110156114a757828155600101614002565b815167ffffffffffffffff81111561402f5761402f613afb565b6140438161403d8454613d66565b84613fcf565b602080601f83116001811461409657600084156140605750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556114a7565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156140e3578886015182559484019460019091019084016140c4565b508582101561411f57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b63ffffffff8616815284602082015260a06040820152600061415460a0830186613754565b82810360608401526141668186613754565b91505073ffffffffffffffffffffffffffffffffffffffff831660808301529695505050505050565b6000602082840312156141a157600080fd5b5051919050565b8181038181111561085557610855613de8565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7fffff0000000000000000000000000000000000000000000000000000000000008660f01b1681528460028201528360228201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008360601b1660428201526000825161425e816056850160208701613730565b91909101605601969550505050505056fea264697066735822122054f26d5a448c97c64979770d29d1f9280ad8658874fba0ad31d79865a32a453e64736f6c63430008130033";
17
17
  static readonly abi: readonly [{
18
18
  readonly inputs: readonly [{
19
19
  readonly internalType: "address";
@@ -847,7 +847,7 @@ const _abi = [
847
847
  type: "function",
848
848
  },
849
849
  ];
850
- const _bytecode = "0x60c06040523480156200001157600080fd5b50604051620044b2380380620044b2833981016040819052620000349162000178565b80808080806001600160a01b0381163b620000955760405162461bcd60e51b815260206004820152601e60248201527f4d61696c626f78436c69656e743a20696e76616c6964206d61696c626f780000604482015260640160405180910390fd5b6001600160a01b03821660808190526040805163234d8e3d60e21b81529051638d3638f4916004808201926020929091908290030181865afa158015620000e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001069190620001aa565b63ffffffff1660a0526200011a3362000126565b505050505050620001d2565b60c980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000602082840312156200018b57600080fd5b81516001600160a01b0381168114620001a357600080fd5b9392505050565b600060208284031215620001bd57600080fd5b815163ffffffff81168114620001a357600080fd5b60805160a0516142a56200020d60003960006105910152600081816106ba01528181610f9801528181612d1f015261319901526142a56000f3fe6080604052600436106102855760003560e01c8063775313a111610153578063b88d4fde116100cb578063e985e9c51161007f578063efae508a11610064578063efae508a1461079f578063f2ed8c53146107bf578063f2fde38b146107df57600080fd5b8063e985e9c514610729578063eedfca5f1461077f57600080fd5b8063d5438eae116100b0578063d5438eae146106a8578063de523cf3146106dc578063e9198bf91461070957600080fd5b8063b88d4fde14610668578063c87b56dd1461068857600080fd5b80638da5cb5b11610122578063a22cb46511610107578063a22cb46514610608578063b1bd643614610628578063b49c53a71461064857600080fd5b80638da5cb5b146105c857806395d89b41146105f357600080fd5b8063775313a1146105115780637f5a7c7b1461053f57806381b4e8b41461056c5780638d3638f41461057f57600080fd5b80633dfd38731161020157806356d5d475116101b557806370a082311161019a57806370a08231146104bc578063715018a6146104dc57806371a15b38146104f157600080fd5b806356d5d475146104895780636352211e1461049c57600080fd5b8063440df4f4116101e6578063440df4f41461042757806349d462ef146104495780634f6ccce71461046957600080fd5b80633dfd3873146103e757806342842e0e1461040757600080fd5b80630e72cc061161025857806323b872dd1161023d57806323b872dd146103875780632ead72f6146103a75780632f745c59146103c757600080fd5b80630e72cc061461034857806318160ddd1461036857600080fd5b806301ffc9a71461028a57806306fdde03146102bf578063081812fc146102e1578063095ea7b314610326575b600080fd5b34801561029657600080fd5b506102aa6102a5366004613713565b6107ff565b60405190151581526020015b60405180910390f35b3480156102cb57600080fd5b506102d461085b565b6040516102b6919061379e565b3480156102ed57600080fd5b506103016102fc3660046137b1565b6108ed565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102b6565b34801561033257600080fd5b506103466103413660046137f3565b610921565b005b34801561035457600080fd5b5061034661036336600461381d565b610ab2565b34801561037457600080fd5b506099545b6040519081526020016102b6565b34801561039357600080fd5b506103466103a2366004613838565b610bc8565b3480156103b357600080fd5b506103796103c2366004613888565b610c69565b3480156103d357600080fd5b506103796103e23660046137f3565b610c89565b3480156103f357600080fd5b5061034661040236600461381d565b610d58565b34801561041357600080fd5b50610346610422366004613838565b610e6e565b34801561043357600080fd5b5061043c610e89565b6040516102b691906138a3565b34801561045557600080fd5b506103466104643660046138ed565b610e9b565b34801561047557600080fd5b506103796104843660046137b1565b610ec2565b610346610497366004613909565b610f80565b3480156104a857600080fd5b506103016104b73660046137b1565b6110f4565b3480156104c857600080fd5b506103796104d736600461381d565b611180565b3480156104e857600080fd5b5061034661118b565b3480156104fd57600080fd5b5061034661050c3660046139d5565b61119f565b34801561051d57600080fd5b5061037961052c366004613888565b6101606020526000908152604090205481565b34801561054b57600080fd5b5060fb546103019073ffffffffffffffffffffffffffffffffffffffff1681565b61037961057a366004613a17565b6111fa565b34801561058b57600080fd5b506105b37f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016102b6565b3480156105d457600080fd5b5060c95473ffffffffffffffffffffffffffffffffffffffff16610301565b3480156105ff57600080fd5b506102d4611208565b34801561061457600080fd5b50610346610623366004613a4a565b611217565b34801561063457600080fd5b50610346610643366004613a86565b611222565b34801561065457600080fd5b506103466106633660046138ed565b6112a8565b34801561067457600080fd5b50610346610683366004613bbe565b6112ba565b34801561069457600080fd5b506102d46106a33660046137b1565b61135c565b3480156106b457600080fd5b506103017f000000000000000000000000000000000000000000000000000000000000000081565b3480156106e857600080fd5b5060fc546103019073ffffffffffffffffffffffffffffffffffffffff1681565b34801561071557600080fd5b50610346610724366004613c3a565b6113d0565b34801561073557600080fd5b506102aa610744366004613ca6565b73ffffffffffffffffffffffffffffffffffffffff9182166000908152606a6020908152604080832093909416825291909152205460ff1690565b34801561078b57600080fd5b5061034661079a366004613cf9565b6114af565b3480156107ab57600080fd5b506103466107ba366004613888565b611678565b3480156107cb57600080fd5b506103796107da366004613888565b61168c565b3480156107eb57600080fd5b506103466107fa36600461381d565b6116a7565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f780e9d6300000000000000000000000000000000000000000000000000000000148061085557506108558261175b565b92915050565b60606065805461086a90613d66565b80601f016020809104026020016040519081016040528092919081815260200182805461089690613d66565b80156108e35780601f106108b8576101008083540402835291602001916108e3565b820191906000526020600020905b8154815290600101906020018083116108c657829003601f168201915b5050505050905090565b60006108f88261183e565b5060009081526069602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b600061092c826110f4565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff82161480610a175750610a178133610744565b610aa3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c00000060648201526084016109e5565b610aad83836118c9565b505050565b8073ffffffffffffffffffffffffffffffffffffffff81163b151580610aec575073ffffffffffffffffffffffffffffffffffffffff8116155b610b78576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084016109e5565b610b80611969565b5060fc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610bd233826119ea565b610c5e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f7665640000000000000000000000000000000000000060648201526084016109e5565b610aad838383611aa9565b600080610c8161012d63ffffffff80861690611db116565b949350505050565b6000610c9483611dca565b8210610d22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201527f74206f6620626f756e647300000000000000000000000000000000000000000060648201526084016109e5565b5073ffffffffffffffffffffffffffffffffffffffff919091166000908152609760209081526040808320938352929052205490565b8073ffffffffffffffffffffffffffffffffffffffff81163b151580610d92575073ffffffffffffffffffffffffffffffffffffffff8116155b610e1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084016109e5565b610e26611969565b5060fb80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610aad838383604051806020016040528060008152506112ba565b6060610e9661012d611e98565b905090565b610ea3611969565b63ffffffff9190911660009081526101606020526040902055565b5050565b6000610ecd60995490565b8210610f5b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201527f7574206f6620626f756e6473000000000000000000000000000000000000000060648201526084016109e5565b60998281548110610f6e57610f6e613db9565b90600052602060002001549050919050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614611045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d61696c626f78436c69656e743a2073656e646572206e6f74206d61696c626f60448201527f780000000000000000000000000000000000000000000000000000000000000060648201526084016109e5565b600061105085611f53565b90508381146110e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f456e726f6c6c656420726f7574657220646f6573206e6f74206d61746368207360448201527f656e64657200000000000000000000000000000000000000000000000000000060648201526084016109e5565b6110ed85858585611fba565b5050505050565b60008181526067602052604081205473ffffffffffffffffffffffffffffffffffffffff1680610855576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e204944000000000000000060448201526064016109e5565b600061085582611dca565b611193611969565b61119d6000612044565b565b6111a7611969565b8060005b818110156111f4576111e28484838181106111c8576111c8613db9565b90506020020160208101906111dd9190613888565b6120bb565b6111ed600182613e17565b90506111ab565b50505050565b6000610c8184848434612111565b60606066805461086a90613d66565b610ebe338383612180565b61122a611969565b60005b81811015610aad5761129683838381811061124a5761124a613db9565b6112609260206040909202019081019150613888565b84848481811061127257611272613db9565b9050604002016020013563ffffffff90911660009081526101606020526040902055565b6112a1600182613e17565b905061122d565b6112b0611969565b610ebe82826122ad565b6112c433836119ea565b611350576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f7665640000000000000000000000000000000000000060648201526084016109e5565b6111f4848484846122c4565b60606113678261183e565b600061137e60408051602081019091526000815290565b9050600081511161139e57604051806020016040528060008152506113c9565b806113a884612367565b6040516020016113b9929190613e2a565b6040516020818303038152906040525b9392505050565b6113d8611969565b828114611441576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064016109e5565b8260005b818110156114a75761149586868381811061146257611462613db9565b90506020020160208101906114779190613888565b85858481811061148957611489613db9565b905060200201356122ad565b6114a0600182613e17565b9050611445565b505050505050565b600054610100900460ff16158080156114cf5750600054600160ff909116105b806114e95750303b1580156114e9575060005460ff166001145b611575576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016109e5565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156115d357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b336115dd81612044565b6115e78484612425565b60005b8581101561160e576115fc82826124c6565b8061160681613e59565b9150506115ea565b505080156111f457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b611680611969565b611689816120bb565b50565b600061085582604051806020016040528060008152506124e0565b6116af611969565b73ffffffffffffffffffffffffffffffffffffffff8116611752576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016109e5565b61168981612044565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd0000000000000000000000000000000000000000000000000000000014806117ee57507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061085557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610855565b60008181526067602052604090205473ffffffffffffffffffffffffffffffffffffffff16611689576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e204944000000000000000060448201526064016109e5565b600081815260696020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091558190611923826110f4565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60c95473ffffffffffffffffffffffffffffffffffffffff16331461119d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109e5565b6000806119f6836110f4565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611a64575073ffffffffffffffffffffffffffffffffffffffff8082166000908152606a602090815260408083209388168352929052205460ff165b80610c8157508373ffffffffffffffffffffffffffffffffffffffff16611a8a846108ed565b73ffffffffffffffffffffffffffffffffffffffff1614949350505050565b8273ffffffffffffffffffffffffffffffffffffffff16611ac9826110f4565b73ffffffffffffffffffffffffffffffffffffffff1614611b6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e657200000000000000000000000000000000000000000000000000000060648201526084016109e5565b73ffffffffffffffffffffffffffffffffffffffff8216611c0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016109e5565b611c1b83838360016124f9565b8273ffffffffffffffffffffffffffffffffffffffff16611c3b826110f4565b73ffffffffffffffffffffffffffffffffffffffff1614611cde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e657200000000000000000000000000000000000000000000000000000060648201526084016109e5565b600081815260696020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915573ffffffffffffffffffffffffffffffffffffffff8781168086526068855283862080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01905590871680865283862080546001019055868652606790945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600080611dbe8484612696565b915091505b9250929050565b600073ffffffffffffffffffffffffffffffffffffffff8216611e6f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e6572000000000000000000000000000000000000000000000060648201526084016109e5565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526068602052604090205490565b60606000611ea5836126d0565b9050805167ffffffffffffffff811115611ec157611ec1613afb565b604051908082528060200260200182016040528015611eea578160200160208202803683370190505b50915060005b8151811015611f4c57818181518110611f0b57611f0b613db9565b6020026020010151838281518110611f2557611f25613db9565b63ffffffff9092166020928302919091019091015280611f4481613e59565b915050611ef0565b5050919050565b60008080611f6c61012d63ffffffff80871690611db116565b9150915081611f7a8561276b565b90611fb2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e5919061379e565b509392505050565b6000611fc683836127a2565b90506000611fd484846127ba565b9050366000611fe386866127ca565b91509150611ff9611ff18590565b8484846127da565b838863ffffffff167fba20947a325f450d232530e5f5fce293e7963499d5309a07cee84a269f2f15a68560405161203291815260200190565b60405180910390a35050505050505050565b60c9805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6120d061012d63ffffffff808416906127e416565b6120d98261276b565b90610ebe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e5919061379e565b60008061211d846127f0565b9050612134868461212f888886612896565b6128c5565b9150848663ffffffff167fd229aacb94204188fe8042965fa6b269c62dc5818b21238779ab64bdd17efeec8660405161216f91815260200190565b60405180910390a350949350505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612215576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016109e5565b73ffffffffffffffffffffffffffffffffffffffff8381166000818152606a602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610ebe61012d63ffffffff8085169084906128e816565b6122cf848484611aa9565b6122db848484846128f3565b6111f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e746572000000000000000000000000000060648201526084016109e5565b6060600061237483612ae6565b600101905060008167ffffffffffffffff81111561239457612394613afb565b6040519080825280601f01601f1916602001820160405280156123be576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85049450846123c857509392505050565b600054610100900460ff166124bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109e5565b610ebe8282612bc8565b610ebe828260405180602001604052806000815250612c78565b6000806124ec84611f53565b9050610c81848285612d1b565b600181111561258a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e736563757469766520747260448201527f616e7366657273206e6f7420737570706f72746564000000000000000000000060648201526084016109e5565b8173ffffffffffffffffffffffffffffffffffffffff85166125f3576125ee81609980546000838152609a60205260408120829055600182018355919091527f72a152ddfb8e864297c917af52ea6c1c68aead0fee1a62673fcc7e0c94979d000155565b612630565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614612630576126308582612dfc565b73ffffffffffffffffffffffffffffffffffffffff84166126595761265481612eb3565b6110ed565b8473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146110ed576110ed8482612f62565b60008181526002830160205260408120548190806126c5576126b88585612fb3565b925060009150611dc39050565b600192509050611dc3565b606060006126dd83612fbf565b90508067ffffffffffffffff8111156126f8576126f8613afb565b604051908082528060200260200182016040528015612721578160200160208202803683370190505b50915060005b81811015611f4c576127398482612fca565b60001c83828151811061274e5761274e613db9565b60209081029190910101528061276381613e59565b915050612727565b606061277c8263ffffffff16612fd6565b60405160200161278c9190613e91565b6040516020818303038152906040529050919050565b60006127b16020828486613ed6565b6113c991613f00565b60006127b1604060208486613ed6565b366000611dbe8360408187613ed6565b6111f484846124c6565b60006113c98383613092565b6060336127fc836110f4565b73ffffffffffffffffffffffffffffffffffffffff1614612879576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f216f776e6572000000000000000000000000000000000000000000000000000060448201526064016109e5565b612882826130af565b505060408051602081019091526000815290565b60608383836040516020016128ad93929190613f3c565b60405160208183030381529060405290509392505050565b6000806128d185611f53565b90506128df85828686613195565b95945050505050565b6111f4838383613279565b600073ffffffffffffffffffffffffffffffffffffffff84163b15612adb576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063150b7a029061296a903390899088908890600401613f69565b6020604051808303816000875af19250505080156129c3575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526129c091810190613fb2565b60015b612a90573d8080156129f1576040519150601f19603f3d011682016040523d82523d6000602084013e6129f6565b606091505b508051600003612a88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e746572000000000000000000000000000060648201526084016109e5565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050610c81565b506001949350505050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612b2f577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310612b5b576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310612b7957662386f26fc10000830492506010015b6305f5e1008310612b91576305f5e100830492506008015b6127108310612ba557612710830492506004015b60648310612bb7576064830492506002015b600a83106108555760010192915050565b600054610100900460ff16612c5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109e5565b6065612c6b8382614015565b506066610aad8282614015565b612c828383613296565b612c8f60008484846128f3565b610aad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e746572000000000000000000000000000060648201526084016109e5565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166381d2ea95858585612d65896134c9565b60fb546040517fffffffff0000000000000000000000000000000000000000000000000000000060e088901b168152612dbb959493929173ffffffffffffffffffffffffffffffffffffffff169060040161412f565b602060405180830381865afa158015612dd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c81919061418f565b60006001612e0984611dca565b612e1391906141a8565b600083815260986020526040902054909150808214612e735773ffffffffffffffffffffffffffffffffffffffff841660009081526097602090815260408083208584528252808320548484528184208190558352609890915290208190555b50600091825260986020908152604080842084905573ffffffffffffffffffffffffffffffffffffffff9094168352609781528383209183525290812055565b609954600090612ec5906001906141a8565b6000838152609a602052604081205460998054939450909284908110612eed57612eed613db9565b906000526020600020015490508060998381548110612f0e57612f0e613db9565b6000918252602080832090910192909255828152609a90915260408082208490558582528120556099805480612f4657612f466141bb565b6001900381819060005260206000200160009055905550505050565b6000612f6d83611dca565b73ffffffffffffffffffffffffffffffffffffffff9093166000908152609760209081526040808320868452825280832085905593825260989052919091209190915550565b60006113c983836134ec565b600061085582613504565b60006113c9838361350e565b60606000612fe383612ae6565b600101905060008167ffffffffffffffff81111561300357613003613afb565b6040519080825280601f01601f19166020018201604052801561302d576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a850494508415611fb257613037565b600081815260028301602052604081208190556113c98383613538565b60006130ba826110f4565b90506130ca8160008460016124f9565b6130d3826110f4565b600083815260696020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915573ffffffffffffffffffffffffffffffffffffffff85168085526068845282852080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190558785526067909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166310b83dc0848787866131e08b6134c9565b60fb546040517fffffffff0000000000000000000000000000000000000000000000000000000060e089901b168152613236959493929173ffffffffffffffffffffffffffffffffffffffff169060040161412f565b60206040518083038185885af1158015613254573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906128df919061418f565b60008281526002840160205260408120829055610c818484613544565b73ffffffffffffffffffffffffffffffffffffffff8216613313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016109e5565b60008181526067602052604090205473ffffffffffffffffffffffffffffffffffffffff161561339f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016109e5565b6133ad6000838360016124f9565b60008181526067602052604090205473ffffffffffffffffffffffffffffffffffffffff1615613439576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016109e5565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260686020908152604080832080546001019055848352606790915280822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b63ffffffff81166000908152610160602052604090205460609061085590613550565b600081815260018301602052604081205415156113c9565b6000610855825490565b600082600001828154811061352557613525613db9565b9060005260206000200154905092915050565b60006113c9838361356e565b60006113c98383613661565b606061085560008333604051806020016040528060008152506136b0565b600081815260018301602052604081205480156136575760006135926001836141a8565b85549091506000906135a6906001906141a8565b905081811461360b5760008660000182815481106135c6576135c6613db9565b90600052602060002001549050808760000184815481106135e9576135e9613db9565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061361c5761361c6141bb565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610855565b6000915050610855565b60008181526001830160205260408120546136a857508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610855565b506000610855565b60606001858585856040516020016136cc9594939291906141ea565b6040516020818303038152906040529050949350505050565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461168957600080fd5b60006020828403121561372557600080fd5b81356113c9816136e5565b60005b8381101561374b578181015183820152602001613733565b50506000910152565b6000815180845261376c816020860160208601613730565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006113c96020830184613754565b6000602082840312156137c357600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff811681146137ee57600080fd5b919050565b6000806040838503121561380657600080fd5b61380f836137ca565b946020939093013593505050565b60006020828403121561382f57600080fd5b6113c9826137ca565b60008060006060848603121561384d57600080fd5b613856846137ca565b9250613864602085016137ca565b9150604084013590509250925092565b803563ffffffff811681146137ee57600080fd5b60006020828403121561389a57600080fd5b6113c982613874565b6020808252825182820181905260009190848201906040850190845b818110156138e157835163ffffffff16835292840192918401916001016138bf565b50909695505050505050565b6000806040838503121561390057600080fd5b61380f83613874565b6000806000806060858703121561391f57600080fd5b61392885613874565b935060208501359250604085013567ffffffffffffffff8082111561394c57600080fd5b818701915087601f83011261396057600080fd5b81358181111561396f57600080fd5b88602082850101111561398157600080fd5b95989497505060200194505050565b60008083601f8401126139a257600080fd5b50813567ffffffffffffffff8111156139ba57600080fd5b6020830191508360208260051b8501011115611dc357600080fd5b600080602083850312156139e857600080fd5b823567ffffffffffffffff8111156139ff57600080fd5b613a0b85828601613990565b90969095509350505050565b600080600060608486031215613a2c57600080fd5b613a3584613874565b95602085013595506040909401359392505050565b60008060408385031215613a5d57600080fd5b613a66836137ca565b915060208301358015158114613a7b57600080fd5b809150509250929050565b60008060208385031215613a9957600080fd5b823567ffffffffffffffff80821115613ab157600080fd5b818501915085601f830112613ac557600080fd5b813581811115613ad457600080fd5b8660208260061b8501011115613ae957600080fd5b60209290920196919550909350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600067ffffffffffffffff80841115613b4557613b45613afb565b604051601f85017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715613b8b57613b8b613afb565b81604052809350858152868686011115613ba457600080fd5b858560208301376000602087830101525050509392505050565b60008060008060808587031215613bd457600080fd5b613bdd856137ca565b9350613beb602086016137ca565b925060408501359150606085013567ffffffffffffffff811115613c0e57600080fd5b8501601f81018713613c1f57600080fd5b613c2e87823560208401613b2a565b91505092959194509250565b60008060008060408587031215613c5057600080fd5b843567ffffffffffffffff80821115613c6857600080fd5b613c7488838901613990565b90965094506020870135915080821115613c8d57600080fd5b50613c9a87828801613990565b95989497509550505050565b60008060408385031215613cb957600080fd5b613cc2836137ca565b9150613cd0602084016137ca565b90509250929050565b600082601f830112613cea57600080fd5b6113c983833560208501613b2a565b600080600060608486031215613d0e57600080fd5b83359250602084013567ffffffffffffffff80821115613d2d57600080fd5b613d3987838801613cd9565b93506040860135915080821115613d4f57600080fd5b50613d5c86828701613cd9565b9150509250925092565b600181811c90821680613d7a57607f821691505b602082108103613db3577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561085557610855613de8565b60008351613e3c818460208801613730565b835190830190613e50818360208801613730565b01949350505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613e8a57613e8a613de8565b5060010190565b7f4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e3a2000815260008251613ec981601f850160208701613730565b91909101601f0192915050565b60008085851115613ee657600080fd5b83861115613ef357600080fd5b5050820193919092039150565b80356020831015610855577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b83815282602082015260008251613f5a816040850160208701613730565b91909101604001949350505050565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152613fa86080830184613754565b9695505050505050565b600060208284031215613fc457600080fd5b81516113c9816136e5565b601f821115610aad57600081815260208120601f850160051c81016020861015613ff65750805b601f850160051c820191505b818110156114a757828155600101614002565b815167ffffffffffffffff81111561402f5761402f613afb565b6140438161403d8454613d66565b84613fcf565b602080601f83116001811461409657600084156140605750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556114a7565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156140e3578886015182559484019460019091019084016140c4565b508582101561411f57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b63ffffffff8616815284602082015260a06040820152600061415460a0830186613754565b82810360608401526141668186613754565b91505073ffffffffffffffffffffffffffffffffffffffff831660808301529695505050505050565b6000602082840312156141a157600080fd5b5051919050565b8181038181111561085557610855613de8565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7fffff0000000000000000000000000000000000000000000000000000000000008660f01b1681528460028201528360228201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008360601b1660428201526000825161425e816056850160208701613730565b91909101605601969550505050505056fea2646970667358221220458e9087f13eff62c6433bcb311d149a56232e501dd9164f161185d028e3b4f564736f6c63430008130033";
850
+ const _bytecode = "0x60c06040523480156200001157600080fd5b50604051620044b2380380620044b2833981016040819052620000349162000178565b80808080806001600160a01b0381163b620000955760405162461bcd60e51b815260206004820152601e60248201527f4d61696c626f78436c69656e743a20696e76616c6964206d61696c626f780000604482015260640160405180910390fd5b6001600160a01b03821660808190526040805163234d8e3d60e21b81529051638d3638f4916004808201926020929091908290030181865afa158015620000e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001069190620001aa565b63ffffffff1660a0526200011a3362000126565b505050505050620001d2565b60c980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000602082840312156200018b57600080fd5b81516001600160a01b0381168114620001a357600080fd5b9392505050565b600060208284031215620001bd57600080fd5b815163ffffffff81168114620001a357600080fd5b60805160a0516142a56200020d60003960006105910152600081816106ba01528181610f9801528181612d1f015261319901526142a56000f3fe6080604052600436106102855760003560e01c8063775313a111610153578063b88d4fde116100cb578063e985e9c51161007f578063efae508a11610064578063efae508a1461079f578063f2ed8c53146107bf578063f2fde38b146107df57600080fd5b8063e985e9c514610729578063eedfca5f1461077f57600080fd5b8063d5438eae116100b0578063d5438eae146106a8578063de523cf3146106dc578063e9198bf91461070957600080fd5b8063b88d4fde14610668578063c87b56dd1461068857600080fd5b80638da5cb5b11610122578063a22cb46511610107578063a22cb46514610608578063b1bd643614610628578063b49c53a71461064857600080fd5b80638da5cb5b146105c857806395d89b41146105f357600080fd5b8063775313a1146105115780637f5a7c7b1461053f57806381b4e8b41461056c5780638d3638f41461057f57600080fd5b80633dfd38731161020157806356d5d475116101b557806370a082311161019a57806370a08231146104bc578063715018a6146104dc57806371a15b38146104f157600080fd5b806356d5d475146104895780636352211e1461049c57600080fd5b8063440df4f4116101e6578063440df4f41461042757806349d462ef146104495780634f6ccce71461046957600080fd5b80633dfd3873146103e757806342842e0e1461040757600080fd5b80630e72cc061161025857806323b872dd1161023d57806323b872dd146103875780632ead72f6146103a75780632f745c59146103c757600080fd5b80630e72cc061461034857806318160ddd1461036857600080fd5b806301ffc9a71461028a57806306fdde03146102bf578063081812fc146102e1578063095ea7b314610326575b600080fd5b34801561029657600080fd5b506102aa6102a5366004613713565b6107ff565b60405190151581526020015b60405180910390f35b3480156102cb57600080fd5b506102d461085b565b6040516102b6919061379e565b3480156102ed57600080fd5b506103016102fc3660046137b1565b6108ed565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102b6565b34801561033257600080fd5b506103466103413660046137f3565b610921565b005b34801561035457600080fd5b5061034661036336600461381d565b610ab2565b34801561037457600080fd5b506099545b6040519081526020016102b6565b34801561039357600080fd5b506103466103a2366004613838565b610bc8565b3480156103b357600080fd5b506103796103c2366004613888565b610c69565b3480156103d357600080fd5b506103796103e23660046137f3565b610c89565b3480156103f357600080fd5b5061034661040236600461381d565b610d58565b34801561041357600080fd5b50610346610422366004613838565b610e6e565b34801561043357600080fd5b5061043c610e89565b6040516102b691906138a3565b34801561045557600080fd5b506103466104643660046138ed565b610e9b565b34801561047557600080fd5b506103796104843660046137b1565b610ec2565b610346610497366004613909565b610f80565b3480156104a857600080fd5b506103016104b73660046137b1565b6110f4565b3480156104c857600080fd5b506103796104d736600461381d565b611180565b3480156104e857600080fd5b5061034661118b565b3480156104fd57600080fd5b5061034661050c3660046139d5565b61119f565b34801561051d57600080fd5b5061037961052c366004613888565b6101606020526000908152604090205481565b34801561054b57600080fd5b5060fb546103019073ffffffffffffffffffffffffffffffffffffffff1681565b61037961057a366004613a17565b6111fa565b34801561058b57600080fd5b506105b37f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016102b6565b3480156105d457600080fd5b5060c95473ffffffffffffffffffffffffffffffffffffffff16610301565b3480156105ff57600080fd5b506102d4611208565b34801561061457600080fd5b50610346610623366004613a4a565b611217565b34801561063457600080fd5b50610346610643366004613a86565b611222565b34801561065457600080fd5b506103466106633660046138ed565b6112a8565b34801561067457600080fd5b50610346610683366004613bbe565b6112ba565b34801561069457600080fd5b506102d46106a33660046137b1565b61135c565b3480156106b457600080fd5b506103017f000000000000000000000000000000000000000000000000000000000000000081565b3480156106e857600080fd5b5060fc546103019073ffffffffffffffffffffffffffffffffffffffff1681565b34801561071557600080fd5b50610346610724366004613c3a565b6113d0565b34801561073557600080fd5b506102aa610744366004613ca6565b73ffffffffffffffffffffffffffffffffffffffff9182166000908152606a6020908152604080832093909416825291909152205460ff1690565b34801561078b57600080fd5b5061034661079a366004613cf9565b6114af565b3480156107ab57600080fd5b506103466107ba366004613888565b611678565b3480156107cb57600080fd5b506103796107da366004613888565b61168c565b3480156107eb57600080fd5b506103466107fa36600461381d565b6116a7565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f780e9d6300000000000000000000000000000000000000000000000000000000148061085557506108558261175b565b92915050565b60606065805461086a90613d66565b80601f016020809104026020016040519081016040528092919081815260200182805461089690613d66565b80156108e35780601f106108b8576101008083540402835291602001916108e3565b820191906000526020600020905b8154815290600101906020018083116108c657829003601f168201915b5050505050905090565b60006108f88261183e565b5060009081526069602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b600061092c826110f4565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff82161480610a175750610a178133610744565b610aa3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c00000060648201526084016109e5565b610aad83836118c9565b505050565b8073ffffffffffffffffffffffffffffffffffffffff81163b151580610aec575073ffffffffffffffffffffffffffffffffffffffff8116155b610b78576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084016109e5565b610b80611969565b5060fc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610bd233826119ea565b610c5e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f7665640000000000000000000000000000000000000060648201526084016109e5565b610aad838383611aa9565b600080610c8161012d63ffffffff80861690611db116565b949350505050565b6000610c9483611dca565b8210610d22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201527f74206f6620626f756e647300000000000000000000000000000000000000000060648201526084016109e5565b5073ffffffffffffffffffffffffffffffffffffffff919091166000908152609760209081526040808320938352929052205490565b8073ffffffffffffffffffffffffffffffffffffffff81163b151580610d92575073ffffffffffffffffffffffffffffffffffffffff8116155b610e1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084016109e5565b610e26611969565b5060fb80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610aad838383604051806020016040528060008152506112ba565b6060610e9661012d611e98565b905090565b610ea3611969565b63ffffffff9190911660009081526101606020526040902055565b5050565b6000610ecd60995490565b8210610f5b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201527f7574206f6620626f756e6473000000000000000000000000000000000000000060648201526084016109e5565b60998281548110610f6e57610f6e613db9565b90600052602060002001549050919050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614611045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d61696c626f78436c69656e743a2073656e646572206e6f74206d61696c626f60448201527f780000000000000000000000000000000000000000000000000000000000000060648201526084016109e5565b600061105085611f53565b90508381146110e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f456e726f6c6c656420726f7574657220646f6573206e6f74206d61746368207360448201527f656e64657200000000000000000000000000000000000000000000000000000060648201526084016109e5565b6110ed85858585611fba565b5050505050565b60008181526067602052604081205473ffffffffffffffffffffffffffffffffffffffff1680610855576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e204944000000000000000060448201526064016109e5565b600061085582611dca565b611193611969565b61119d6000612044565b565b6111a7611969565b8060005b818110156111f4576111e28484838181106111c8576111c8613db9565b90506020020160208101906111dd9190613888565b6120bb565b6111ed600182613e17565b90506111ab565b50505050565b6000610c8184848434612111565b60606066805461086a90613d66565b610ebe338383612180565b61122a611969565b60005b81811015610aad5761129683838381811061124a5761124a613db9565b6112609260206040909202019081019150613888565b84848481811061127257611272613db9565b9050604002016020013563ffffffff90911660009081526101606020526040902055565b6112a1600182613e17565b905061122d565b6112b0611969565b610ebe82826122ad565b6112c433836119ea565b611350576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f7665640000000000000000000000000000000000000060648201526084016109e5565b6111f4848484846122c4565b60606113678261183e565b600061137e60408051602081019091526000815290565b9050600081511161139e57604051806020016040528060008152506113c9565b806113a884612367565b6040516020016113b9929190613e2a565b6040516020818303038152906040525b9392505050565b6113d8611969565b828114611441576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064016109e5565b8260005b818110156114a75761149586868381811061146257611462613db9565b90506020020160208101906114779190613888565b85858481811061148957611489613db9565b905060200201356122ad565b6114a0600182613e17565b9050611445565b505050505050565b600054610100900460ff16158080156114cf5750600054600160ff909116105b806114e95750303b1580156114e9575060005460ff166001145b611575576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016109e5565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156115d357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b336115dd81612044565b6115e78484612425565b60005b8581101561160e576115fc82826124c6565b8061160681613e59565b9150506115ea565b505080156111f457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b611680611969565b611689816120bb565b50565b600061085582604051806020016040528060008152506124e0565b6116af611969565b73ffffffffffffffffffffffffffffffffffffffff8116611752576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016109e5565b61168981612044565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd0000000000000000000000000000000000000000000000000000000014806117ee57507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061085557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610855565b60008181526067602052604090205473ffffffffffffffffffffffffffffffffffffffff16611689576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e204944000000000000000060448201526064016109e5565b600081815260696020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091558190611923826110f4565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60c95473ffffffffffffffffffffffffffffffffffffffff16331461119d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109e5565b6000806119f6836110f4565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611a64575073ffffffffffffffffffffffffffffffffffffffff8082166000908152606a602090815260408083209388168352929052205460ff165b80610c8157508373ffffffffffffffffffffffffffffffffffffffff16611a8a846108ed565b73ffffffffffffffffffffffffffffffffffffffff1614949350505050565b8273ffffffffffffffffffffffffffffffffffffffff16611ac9826110f4565b73ffffffffffffffffffffffffffffffffffffffff1614611b6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e657200000000000000000000000000000000000000000000000000000060648201526084016109e5565b73ffffffffffffffffffffffffffffffffffffffff8216611c0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016109e5565b611c1b83838360016124f9565b8273ffffffffffffffffffffffffffffffffffffffff16611c3b826110f4565b73ffffffffffffffffffffffffffffffffffffffff1614611cde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e657200000000000000000000000000000000000000000000000000000060648201526084016109e5565b600081815260696020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915573ffffffffffffffffffffffffffffffffffffffff8781168086526068855283862080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01905590871680865283862080546001019055868652606790945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600080611dbe8484612696565b915091505b9250929050565b600073ffffffffffffffffffffffffffffffffffffffff8216611e6f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e6572000000000000000000000000000000000000000000000060648201526084016109e5565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526068602052604090205490565b60606000611ea5836126d0565b9050805167ffffffffffffffff811115611ec157611ec1613afb565b604051908082528060200260200182016040528015611eea578160200160208202803683370190505b50915060005b8151811015611f4c57818181518110611f0b57611f0b613db9565b6020026020010151838281518110611f2557611f25613db9565b63ffffffff9092166020928302919091019091015280611f4481613e59565b915050611ef0565b5050919050565b60008080611f6c61012d63ffffffff80871690611db116565b9150915081611f7a8561276b565b90611fb2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e5919061379e565b509392505050565b6000611fc683836127a2565b90506000611fd484846127ba565b9050366000611fe386866127ca565b91509150611ff9611ff18590565b8484846127da565b838863ffffffff167fba20947a325f450d232530e5f5fce293e7963499d5309a07cee84a269f2f15a68560405161203291815260200190565b60405180910390a35050505050505050565b60c9805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6120d061012d63ffffffff808416906127e416565b6120d98261276b565b90610ebe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e5919061379e565b60008061211d846127f0565b9050612134868461212f888886612896565b6128c5565b9150848663ffffffff167fd229aacb94204188fe8042965fa6b269c62dc5818b21238779ab64bdd17efeec8660405161216f91815260200190565b60405180910390a350949350505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612215576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016109e5565b73ffffffffffffffffffffffffffffffffffffffff8381166000818152606a602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610ebe61012d63ffffffff8085169084906128e816565b6122cf848484611aa9565b6122db848484846128f3565b6111f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e746572000000000000000000000000000060648201526084016109e5565b6060600061237483612ae6565b600101905060008167ffffffffffffffff81111561239457612394613afb565b6040519080825280601f01601f1916602001820160405280156123be576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85049450846123c857509392505050565b600054610100900460ff166124bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109e5565b610ebe8282612bc8565b610ebe828260405180602001604052806000815250612c78565b6000806124ec84611f53565b9050610c81848285612d1b565b600181111561258a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e736563757469766520747260448201527f616e7366657273206e6f7420737570706f72746564000000000000000000000060648201526084016109e5565b8173ffffffffffffffffffffffffffffffffffffffff85166125f3576125ee81609980546000838152609a60205260408120829055600182018355919091527f72a152ddfb8e864297c917af52ea6c1c68aead0fee1a62673fcc7e0c94979d000155565b612630565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614612630576126308582612dfc565b73ffffffffffffffffffffffffffffffffffffffff84166126595761265481612eb3565b6110ed565b8473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146110ed576110ed8482612f62565b60008181526002830160205260408120548190806126c5576126b88585612fb3565b925060009150611dc39050565b600192509050611dc3565b606060006126dd83612fbf565b90508067ffffffffffffffff8111156126f8576126f8613afb565b604051908082528060200260200182016040528015612721578160200160208202803683370190505b50915060005b81811015611f4c576127398482612fca565b60001c83828151811061274e5761274e613db9565b60209081029190910101528061276381613e59565b915050612727565b606061277c8263ffffffff16612fd6565b60405160200161278c9190613e91565b6040516020818303038152906040529050919050565b60006127b16020828486613ed6565b6113c991613f00565b60006127b1604060208486613ed6565b366000611dbe8360408187613ed6565b6111f484846124c6565b60006113c98383613092565b6060336127fc836110f4565b73ffffffffffffffffffffffffffffffffffffffff1614612879576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f216f776e6572000000000000000000000000000000000000000000000000000060448201526064016109e5565b612882826130af565b505060408051602081019091526000815290565b60608383836040516020016128ad93929190613f3c565b60405160208183030381529060405290509392505050565b6000806128d185611f53565b90506128df85828686613195565b95945050505050565b6111f4838383613279565b600073ffffffffffffffffffffffffffffffffffffffff84163b15612adb576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063150b7a029061296a903390899088908890600401613f69565b6020604051808303816000875af19250505080156129c3575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526129c091810190613fb2565b60015b612a90573d8080156129f1576040519150601f19603f3d011682016040523d82523d6000602084013e6129f6565b606091505b508051600003612a88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e746572000000000000000000000000000060648201526084016109e5565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050610c81565b506001949350505050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612b2f577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310612b5b576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310612b7957662386f26fc10000830492506010015b6305f5e1008310612b91576305f5e100830492506008015b6127108310612ba557612710830492506004015b60648310612bb7576064830492506002015b600a83106108555760010192915050565b600054610100900460ff16612c5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109e5565b6065612c6b8382614015565b506066610aad8282614015565b612c828383613296565b612c8f60008484846128f3565b610aad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e746572000000000000000000000000000060648201526084016109e5565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166381d2ea95858585612d65896134c9565b60fb546040517fffffffff0000000000000000000000000000000000000000000000000000000060e088901b168152612dbb959493929173ffffffffffffffffffffffffffffffffffffffff169060040161412f565b602060405180830381865afa158015612dd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c81919061418f565b60006001612e0984611dca565b612e1391906141a8565b600083815260986020526040902054909150808214612e735773ffffffffffffffffffffffffffffffffffffffff841660009081526097602090815260408083208584528252808320548484528184208190558352609890915290208190555b50600091825260986020908152604080842084905573ffffffffffffffffffffffffffffffffffffffff9094168352609781528383209183525290812055565b609954600090612ec5906001906141a8565b6000838152609a602052604081205460998054939450909284908110612eed57612eed613db9565b906000526020600020015490508060998381548110612f0e57612f0e613db9565b6000918252602080832090910192909255828152609a90915260408082208490558582528120556099805480612f4657612f466141bb565b6001900381819060005260206000200160009055905550505050565b6000612f6d83611dca565b73ffffffffffffffffffffffffffffffffffffffff9093166000908152609760209081526040808320868452825280832085905593825260989052919091209190915550565b60006113c983836134ec565b600061085582613504565b60006113c9838361350e565b60606000612fe383612ae6565b600101905060008167ffffffffffffffff81111561300357613003613afb565b6040519080825280601f01601f19166020018201604052801561302d576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a850494508415611fb257613037565b600081815260028301602052604081208190556113c98383613538565b60006130ba826110f4565b90506130ca8160008460016124f9565b6130d3826110f4565b600083815260696020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915573ffffffffffffffffffffffffffffffffffffffff85168085526068845282852080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190558785526067909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166310b83dc0848787866131e08b6134c9565b60fb546040517fffffffff0000000000000000000000000000000000000000000000000000000060e089901b168152613236959493929173ffffffffffffffffffffffffffffffffffffffff169060040161412f565b60206040518083038185885af1158015613254573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906128df919061418f565b60008281526002840160205260408120829055610c818484613544565b73ffffffffffffffffffffffffffffffffffffffff8216613313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016109e5565b60008181526067602052604090205473ffffffffffffffffffffffffffffffffffffffff161561339f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016109e5565b6133ad6000838360016124f9565b60008181526067602052604090205473ffffffffffffffffffffffffffffffffffffffff1615613439576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016109e5565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260686020908152604080832080546001019055848352606790915280822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b63ffffffff81166000908152610160602052604090205460609061085590613550565b600081815260018301602052604081205415156113c9565b6000610855825490565b600082600001828154811061352557613525613db9565b9060005260206000200154905092915050565b60006113c9838361356e565b60006113c98383613661565b606061085560008333604051806020016040528060008152506136b0565b600081815260018301602052604081205480156136575760006135926001836141a8565b85549091506000906135a6906001906141a8565b905081811461360b5760008660000182815481106135c6576135c6613db9565b90600052602060002001549050808760000184815481106135e9576135e9613db9565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061361c5761361c6141bb565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610855565b6000915050610855565b60008181526001830160205260408120546136a857508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610855565b506000610855565b60606001858585856040516020016136cc9594939291906141ea565b6040516020818303038152906040529050949350505050565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461168957600080fd5b60006020828403121561372557600080fd5b81356113c9816136e5565b60005b8381101561374b578181015183820152602001613733565b50506000910152565b6000815180845261376c816020860160208601613730565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006113c96020830184613754565b6000602082840312156137c357600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff811681146137ee57600080fd5b919050565b6000806040838503121561380657600080fd5b61380f836137ca565b946020939093013593505050565b60006020828403121561382f57600080fd5b6113c9826137ca565b60008060006060848603121561384d57600080fd5b613856846137ca565b9250613864602085016137ca565b9150604084013590509250925092565b803563ffffffff811681146137ee57600080fd5b60006020828403121561389a57600080fd5b6113c982613874565b6020808252825182820181905260009190848201906040850190845b818110156138e157835163ffffffff16835292840192918401916001016138bf565b50909695505050505050565b6000806040838503121561390057600080fd5b61380f83613874565b6000806000806060858703121561391f57600080fd5b61392885613874565b935060208501359250604085013567ffffffffffffffff8082111561394c57600080fd5b818701915087601f83011261396057600080fd5b81358181111561396f57600080fd5b88602082850101111561398157600080fd5b95989497505060200194505050565b60008083601f8401126139a257600080fd5b50813567ffffffffffffffff8111156139ba57600080fd5b6020830191508360208260051b8501011115611dc357600080fd5b600080602083850312156139e857600080fd5b823567ffffffffffffffff8111156139ff57600080fd5b613a0b85828601613990565b90969095509350505050565b600080600060608486031215613a2c57600080fd5b613a3584613874565b95602085013595506040909401359392505050565b60008060408385031215613a5d57600080fd5b613a66836137ca565b915060208301358015158114613a7b57600080fd5b809150509250929050565b60008060208385031215613a9957600080fd5b823567ffffffffffffffff80821115613ab157600080fd5b818501915085601f830112613ac557600080fd5b813581811115613ad457600080fd5b8660208260061b8501011115613ae957600080fd5b60209290920196919550909350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600067ffffffffffffffff80841115613b4557613b45613afb565b604051601f85017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715613b8b57613b8b613afb565b81604052809350858152868686011115613ba457600080fd5b858560208301376000602087830101525050509392505050565b60008060008060808587031215613bd457600080fd5b613bdd856137ca565b9350613beb602086016137ca565b925060408501359150606085013567ffffffffffffffff811115613c0e57600080fd5b8501601f81018713613c1f57600080fd5b613c2e87823560208401613b2a565b91505092959194509250565b60008060008060408587031215613c5057600080fd5b843567ffffffffffffffff80821115613c6857600080fd5b613c7488838901613990565b90965094506020870135915080821115613c8d57600080fd5b50613c9a87828801613990565b95989497509550505050565b60008060408385031215613cb957600080fd5b613cc2836137ca565b9150613cd0602084016137ca565b90509250929050565b600082601f830112613cea57600080fd5b6113c983833560208501613b2a565b600080600060608486031215613d0e57600080fd5b83359250602084013567ffffffffffffffff80821115613d2d57600080fd5b613d3987838801613cd9565b93506040860135915080821115613d4f57600080fd5b50613d5c86828701613cd9565b9150509250925092565b600181811c90821680613d7a57607f821691505b602082108103613db3577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561085557610855613de8565b60008351613e3c818460208801613730565b835190830190613e50818360208801613730565b01949350505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613e8a57613e8a613de8565b5060010190565b7f4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e3a2000815260008251613ec981601f850160208701613730565b91909101601f0192915050565b60008085851115613ee657600080fd5b83861115613ef357600080fd5b5050820193919092039150565b80356020831015610855577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b83815282602082015260008251613f5a816040850160208701613730565b91909101604001949350505050565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152613fa86080830184613754565b9695505050505050565b600060208284031215613fc457600080fd5b81516113c9816136e5565b601f821115610aad57600081815260208120601f850160051c81016020861015613ff65750805b601f850160051c820191505b818110156114a757828155600101614002565b815167ffffffffffffffff81111561402f5761402f613afb565b6140438161403d8454613d66565b84613fcf565b602080601f83116001811461409657600084156140605750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556114a7565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156140e3578886015182559484019460019091019084016140c4565b508582101561411f57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b63ffffffff8616815284602082015260a06040820152600061415460a0830186613754565b82810360608401526141668186613754565b91505073ffffffffffffffffffffffffffffffffffffffff831660808301529695505050505050565b6000602082840312156141a157600080fd5b5051919050565b8181038181111561085557610855613de8565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7fffff0000000000000000000000000000000000000000000000000000000000008660f01b1681528460028201528360228201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008360601b1660428201526000825161425e816056850160208701613730565b91909101605601969550505050505056fea264697066735822122054f26d5a448c97c64979770d29d1f9280ad8658874fba0ad31d79865a32a453e64736f6c63430008130033";
851
851
  const isSuperArgs = (xs) => xs.length > 1;
852
852
  class HypERC721__factory extends ethers_1.ContractFactory {
853
853
  constructor(...args) {
@@ -13,7 +13,7 @@ export declare class HypNative__factory extends ContractFactory {
13
13
  }): TransactionRequest;
14
14
  attach(address: string): HypNative;
15
15
  connect(signer: Signer): HypNative__factory;
16
- static readonly bytecode = "0x60c06040523480156200001157600080fd5b50604051620021cd380380620021cd833981016040819052620000349162000178565b80808080806001600160a01b0381163b620000955760405162461bcd60e51b815260206004820152601e60248201527f4d61696c626f78436c69656e743a20696e76616c6964206d61696c626f780000604482015260640160405180910390fd5b6001600160a01b03821660808190526040805163234d8e3d60e21b81529051638d3638f4916004808201926020929091908290030181865afa158015620000e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001069190620001aa565b63ffffffff1660a0526200011a3362000126565b505050505050620001d2565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000602082840312156200018b57600080fd5b81516001600160a01b0381168114620001a357600080fd5b9392505050565b600060208284031215620001bd57600080fd5b815163ffffffff81168114620001a357600080fd5b60805160a051611fc06200020d6000396000610392015260008181610446015281816107b4015281816111e6015261151f0152611fc06000f3fe6080604052600436106101795760003560e01c806381b4e8b4116100cb578063d5438eae1161007f578063efae508a11610059578063efae508a146104b5578063f2ed8c53146104d5578063f2fde38b146104f557600080fd5b8063d5438eae14610434578063de523cf314610468578063e9198bf91461049557600080fd5b80638da5cb5b116100b05780638da5cb5b146103c9578063b1bd6436146103f4578063b49c53a71461041457600080fd5b806381b4e8b41461036d5780638d3638f41461038057600080fd5b806356d5d4751161012d57806371a15b381161010757806371a15b38146102ce578063775313a1146102ee5780637f5a7c7b1461031b57600080fd5b806356d5d4751461027157806370a0823114610284578063715018a6146102b957600080fd5b80633dfd38731161015e5780633dfd38731461020f578063440df4f41461022f57806349d462ef1461025157600080fd5b80630e72cc06146101ba5780632ead72f6146101dc57600080fd5b366101b55760405134815233907f5d8bc849764969eb1bcc6d0a2f55999d0167c1ccec240a4f39cf664ca9c4148e9060200160405180910390a2005b600080fd5b3480156101c657600080fd5b506101da6101d5366004611919565b610515565b005b3480156101e857600080fd5b506101fc6101f7366004611968565b610630565b6040519081526020015b60405180910390f35b34801561021b57600080fd5b506101da61022a366004611919565b61064f565b34801561023b57600080fd5b50610244610765565b6040516102069190611983565b34801561025d57600080fd5b506101da61026c3660046119cd565b610776565b6101da61027f3660046119f7565b61079c565b34801561029057600080fd5b506101fc61029f366004611919565b73ffffffffffffffffffffffffffffffffffffffff163190565b3480156102c557600080fd5b506101da610910565b3480156102da57600080fd5b506101da6102e9366004611ac3565b610924565b3480156102fa57600080fd5b506101fc610309366004611968565b60ca6020526000908152604090205481565b34801561032757600080fd5b506065546103489073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610206565b6101fc61037b366004611b05565b61097f565b34801561038c57600080fd5b506103b47f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610206565b3480156103d557600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610348565b34801561040057600080fd5b506101da61040f366004611b38565b610a0e565b34801561042057600080fd5b506101da61042f3660046119cd565b610a98565b34801561044057600080fd5b506103487f000000000000000000000000000000000000000000000000000000000000000081565b34801561047457600080fd5b506066546103489073ffffffffffffffffffffffffffffffffffffffff1681565b3480156104a157600080fd5b506101da6104b0366004611bad565b610aaa565b3480156104c157600080fd5b506101da6104d0366004611968565b610b89565b3480156104e157600080fd5b506101fc6104f0366004611968565b610b9d565b34801561050157600080fd5b506101da610510366004611919565b610bbe565b8073ffffffffffffffffffffffffffffffffffffffff81163b15158061054f575073ffffffffffffffffffffffffffffffffffffffff8116155b6105e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6105e8610c72565b50606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600080610647609763ffffffff80861690610cf316565b949350505050565b8073ffffffffffffffffffffffffffffffffffffffff81163b151580610689575073ffffffffffffffffffffffffffffffffffffffff8116155b610715576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084016105d7565b61071d610c72565b50606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60606107716097610d0c565b905090565b61077e610c72565b63ffffffff91909116600090815260ca6020526040902055565b5050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610861576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d61696c626f78436c69656e743a2073656e646572206e6f74206d61696c626f60448201527f780000000000000000000000000000000000000000000000000000000000000060648201526084016105d7565b600061086c85610dc7565b90508381146108fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f456e726f6c6c656420726f7574657220646f6573206e6f74206d61746368207360448201527f656e64657200000000000000000000000000000000000000000000000000000060648201526084016105d7565b61090985858585610e2d565b5050505050565b610918610c72565b6109226000610eb7565b565b61092c610c72565b8060005b818110156109795761096784848381811061094d5761094d611c19565b90506020020160208101906109629190611968565b610f2e565b610972600182611c77565b9050610930565b50505050565b6000813410156109eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4e61746976653a20616d6f756e742065786365656473206d73672e76616c756560448201526064016105d7565b60006109f78334611c8a565b9050610a0585858584610f83565b95945050505050565b610a16610c72565b60005b81811015610a9357610a81838383818110610a3657610a36611c19565b610a4c9260206040909202019081019150611968565b848484818110610a5e57610a5e611c19565b9050604002016020013563ffffffff909116600090815260ca6020526040902055565b610a8c600182611c77565b9050610a19565b505050565b610aa0610c72565b6107988282610ffe565b610ab2610c72565b828114610b1b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064016105d7565b8260005b81811015610b8157610b6f868683818110610b3c57610b3c611c19565b9050602002016020810190610b519190611968565b858584818110610b6357610b63611c19565b90506020020135610ffe565b610b7a600182611c77565b9050610b1f565b505050505050565b610b91610c72565b610b9a81610f2e565b50565b6000610bb88260405180602001604052806000815250611014565b92915050565b610bc6610c72565b73ffffffffffffffffffffffffffffffffffffffff8116610c69576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016105d7565b610b9a81610eb7565b60335473ffffffffffffffffffffffffffffffffffffffff163314610922576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105d7565b600080610d00848461102d565b915091505b9250929050565b60606000610d1983611067565b9050805167ffffffffffffffff811115610d3557610d35611c9d565b604051908082528060200260200182016040528015610d5e578160200160208202803683370190505b50915060005b8151811015610dc057818181518110610d7f57610d7f611c19565b6020026020010151838281518110610d9957610d99611c19565b63ffffffff9092166020928302919091019091015280610db881611ccc565b915050610d64565b5050919050565b60008080610ddf609763ffffffff80871690610cf316565b9150915081610ded85611102565b90610e25576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d79190611d72565b509392505050565b6000610e398383611139565b90506000610e478484611158565b9050366000610e568686611168565b91509150610e6c610e648590565b848484611178565b838863ffffffff167fba20947a325f450d232530e5f5fce293e7963499d5309a07cee84a269f2f15a685604051610ea591815260200190565b60405180910390a35050505050505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610f42609763ffffffff8084169061118216565b610f4b82611102565b90610798576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d79190611d72565b600080610f9b60408051602081019091526000815290565b9050610fb28684610fad88888661118e565b6111bd565b9150848663ffffffff167fd229aacb94204188fe8042965fa6b269c62dc5818b21238779ab64bdd17efeec86604051610fed91815260200190565b60405180910390a350949350505050565b610798609763ffffffff8085169084906111d716565b60008061102084610dc7565b90506106478482856111e2565b600081815260028301602052604081205481908061105c5761104f85856112c3565b925060009150610d059050565b600192509050610d05565b60606000611074836112cf565b90508067ffffffffffffffff81111561108f5761108f611c9d565b6040519080825280602002602001820160405280156110b8578160200160208202803683370190505b50915060005b81811015610dc0576110d084826112da565b60001c8382815181106110e5576110e5611c19565b6020908102919091010152806110fa81611ccc565b9150506110be565b60606111138263ffffffff166112e6565b6040516020016111239190611d85565b6040516020818303038152906040529050919050565b60006111486020828486611dca565b61115191611df4565b9392505050565b6000611148604060208486611dca565b366000610d008360408187611dca565b61097984846113a4565b600061115183836114fe565b60608383836040516020016111a593929190611e30565b60405160208183030381529060405290509392505050565b6000806111c985610dc7565b9050610a058582868661151b565b6109798383836115ff565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166381d2ea9585858561122c8961161c565b6065546040517fffffffff0000000000000000000000000000000000000000000000000000000060e088901b168152611282959493929173ffffffffffffffffffffffffffffffffffffffff1690600401611e5d565b602060405180830381865afa15801561129f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106479190611ebd565b6000611151838361163e565b6000610bb882611656565b60006111518383611660565b606060006112f38361168a565b600101905060008167ffffffffffffffff81111561131357611313611c9d565b6040519080825280601f01601f19166020018201604052801561133d576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a850494508461134757509392505050565b8047101561140e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016105d7565b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114611468576040519150601f19603f3d011682016040523d82523d6000602084013e61146d565b606091505b5050905080610a93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016105d7565b60008181526002830160205260408120819055611151838361176c565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166310b83dc0848787866115668b61161c565b6065546040517fffffffff0000000000000000000000000000000000000000000000000000000060e089901b1681526115bc959493929173ffffffffffffffffffffffffffffffffffffffff1690600401611e5d565b60206040518083038185885af11580156115da573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a059190611ebd565b600082815260028401602052604081208290556106478484611778565b63ffffffff8116600090815260ca6020526040902054606090610bb890611784565b60008181526001830160205260408120541515611151565b6000610bb8825490565b600082600001828154811061167757611677611c19565b9060005260206000200154905092915050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106116d3577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106116ff576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061171d57662386f26fc10000830492506010015b6305f5e1008310611735576305f5e100830492506008015b612710831061174957612710830492506004015b6064831061175b576064830492506002015b600a8310610bb85760010192915050565b600061115183836117a2565b60006111518383611895565b6060610bb860008333604051806020016040528060008152506118e4565b6000818152600183016020526040812054801561188b5760006117c6600183611c8a565b85549091506000906117da90600190611c8a565b905081811461183f5760008660000182815481106117fa576117fa611c19565b906000526020600020015490508087600001848154811061181d5761181d611c19565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061185057611850611ed6565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610bb8565b6000915050610bb8565b60008181526001830160205260408120546118dc57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610bb8565b506000610bb8565b6060600185858585604051602001611900959493929190611f05565b6040516020818303038152906040529050949350505050565b60006020828403121561192b57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461115157600080fd5b803563ffffffff8116811461196357600080fd5b919050565b60006020828403121561197a57600080fd5b6111518261194f565b6020808252825182820181905260009190848201906040850190845b818110156119c157835163ffffffff168352928401929184019160010161199f565b50909695505050505050565b600080604083850312156119e057600080fd5b6119e98361194f565b946020939093013593505050565b60008060008060608587031215611a0d57600080fd5b611a168561194f565b935060208501359250604085013567ffffffffffffffff80821115611a3a57600080fd5b818701915087601f830112611a4e57600080fd5b813581811115611a5d57600080fd5b886020828501011115611a6f57600080fd5b95989497505060200194505050565b60008083601f840112611a9057600080fd5b50813567ffffffffffffffff811115611aa857600080fd5b6020830191508360208260051b8501011115610d0557600080fd5b60008060208385031215611ad657600080fd5b823567ffffffffffffffff811115611aed57600080fd5b611af985828601611a7e565b90969095509350505050565b600080600060608486031215611b1a57600080fd5b611b238461194f565b95602085013595506040909401359392505050565b60008060208385031215611b4b57600080fd5b823567ffffffffffffffff80821115611b6357600080fd5b818501915085601f830112611b7757600080fd5b813581811115611b8657600080fd5b8660208260061b8501011115611b9b57600080fd5b60209290920196919550909350505050565b60008060008060408587031215611bc357600080fd5b843567ffffffffffffffff80821115611bdb57600080fd5b611be788838901611a7e565b90965094506020870135915080821115611c0057600080fd5b50611c0d87828801611a7e565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610bb857610bb8611c48565b81810381811115610bb857610bb8611c48565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611cfd57611cfd611c48565b5060010190565b60005b83811015611d1f578181015183820152602001611d07565b50506000910152565b60008151808452611d40816020860160208601611d04565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006111516020830184611d28565b7f4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e3a2000815260008251611dbd81601f850160208701611d04565b91909101601f0192915050565b60008085851115611dda57600080fd5b83861115611de757600080fd5b5050820193919092039150565b80356020831015610bb8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b83815282602082015260008251611e4e816040850160208701611d04565b91909101604001949350505050565b63ffffffff8616815284602082015260a060408201526000611e8260a0830186611d28565b8281036060840152611e948186611d28565b91505073ffffffffffffffffffffffffffffffffffffffff831660808301529695505050505050565b600060208284031215611ecf57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7fffff0000000000000000000000000000000000000000000000000000000000008660f01b1681528460028201528360228201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008360601b16604282015260008251611f79816056850160208701611d04565b91909101605601969550505050505056fea2646970667358221220f6235eba42cd965ec8797320b70fa3f71041a56ca31e8577e21f58323505f76e64736f6c63430008130033";
16
+ static readonly bytecode = "0x60c06040523480156200001157600080fd5b50604051620021cd380380620021cd833981016040819052620000349162000178565b80808080806001600160a01b0381163b620000955760405162461bcd60e51b815260206004820152601e60248201527f4d61696c626f78436c69656e743a20696e76616c6964206d61696c626f780000604482015260640160405180910390fd5b6001600160a01b03821660808190526040805163234d8e3d60e21b81529051638d3638f4916004808201926020929091908290030181865afa158015620000e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001069190620001aa565b63ffffffff1660a0526200011a3362000126565b505050505050620001d2565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000602082840312156200018b57600080fd5b81516001600160a01b0381168114620001a357600080fd5b9392505050565b600060208284031215620001bd57600080fd5b815163ffffffff81168114620001a357600080fd5b60805160a051611fc06200020d6000396000610392015260008181610446015281816107b4015281816111e6015261151f0152611fc06000f3fe6080604052600436106101795760003560e01c806381b4e8b4116100cb578063d5438eae1161007f578063efae508a11610059578063efae508a146104b5578063f2ed8c53146104d5578063f2fde38b146104f557600080fd5b8063d5438eae14610434578063de523cf314610468578063e9198bf91461049557600080fd5b80638da5cb5b116100b05780638da5cb5b146103c9578063b1bd6436146103f4578063b49c53a71461041457600080fd5b806381b4e8b41461036d5780638d3638f41461038057600080fd5b806356d5d4751161012d57806371a15b381161010757806371a15b38146102ce578063775313a1146102ee5780637f5a7c7b1461031b57600080fd5b806356d5d4751461027157806370a0823114610284578063715018a6146102b957600080fd5b80633dfd38731161015e5780633dfd38731461020f578063440df4f41461022f57806349d462ef1461025157600080fd5b80630e72cc06146101ba5780632ead72f6146101dc57600080fd5b366101b55760405134815233907f5d8bc849764969eb1bcc6d0a2f55999d0167c1ccec240a4f39cf664ca9c4148e9060200160405180910390a2005b600080fd5b3480156101c657600080fd5b506101da6101d5366004611919565b610515565b005b3480156101e857600080fd5b506101fc6101f7366004611968565b610630565b6040519081526020015b60405180910390f35b34801561021b57600080fd5b506101da61022a366004611919565b61064f565b34801561023b57600080fd5b50610244610765565b6040516102069190611983565b34801561025d57600080fd5b506101da61026c3660046119cd565b610776565b6101da61027f3660046119f7565b61079c565b34801561029057600080fd5b506101fc61029f366004611919565b73ffffffffffffffffffffffffffffffffffffffff163190565b3480156102c557600080fd5b506101da610910565b3480156102da57600080fd5b506101da6102e9366004611ac3565b610924565b3480156102fa57600080fd5b506101fc610309366004611968565b60ca6020526000908152604090205481565b34801561032757600080fd5b506065546103489073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610206565b6101fc61037b366004611b05565b61097f565b34801561038c57600080fd5b506103b47f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610206565b3480156103d557600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610348565b34801561040057600080fd5b506101da61040f366004611b38565b610a0e565b34801561042057600080fd5b506101da61042f3660046119cd565b610a98565b34801561044057600080fd5b506103487f000000000000000000000000000000000000000000000000000000000000000081565b34801561047457600080fd5b506066546103489073ffffffffffffffffffffffffffffffffffffffff1681565b3480156104a157600080fd5b506101da6104b0366004611bad565b610aaa565b3480156104c157600080fd5b506101da6104d0366004611968565b610b89565b3480156104e157600080fd5b506101fc6104f0366004611968565b610b9d565b34801561050157600080fd5b506101da610510366004611919565b610bbe565b8073ffffffffffffffffffffffffffffffffffffffff81163b15158061054f575073ffffffffffffffffffffffffffffffffffffffff8116155b6105e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6105e8610c72565b50606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600080610647609763ffffffff80861690610cf316565b949350505050565b8073ffffffffffffffffffffffffffffffffffffffff81163b151580610689575073ffffffffffffffffffffffffffffffffffffffff8116155b610715576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084016105d7565b61071d610c72565b50606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60606107716097610d0c565b905090565b61077e610c72565b63ffffffff91909116600090815260ca6020526040902055565b5050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610861576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d61696c626f78436c69656e743a2073656e646572206e6f74206d61696c626f60448201527f780000000000000000000000000000000000000000000000000000000000000060648201526084016105d7565b600061086c85610dc7565b90508381146108fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f456e726f6c6c656420726f7574657220646f6573206e6f74206d61746368207360448201527f656e64657200000000000000000000000000000000000000000000000000000060648201526084016105d7565b61090985858585610e2d565b5050505050565b610918610c72565b6109226000610eb7565b565b61092c610c72565b8060005b818110156109795761096784848381811061094d5761094d611c19565b90506020020160208101906109629190611968565b610f2e565b610972600182611c77565b9050610930565b50505050565b6000813410156109eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4e61746976653a20616d6f756e742065786365656473206d73672e76616c756560448201526064016105d7565b60006109f78334611c8a565b9050610a0585858584610f83565b95945050505050565b610a16610c72565b60005b81811015610a9357610a81838383818110610a3657610a36611c19565b610a4c9260206040909202019081019150611968565b848484818110610a5e57610a5e611c19565b9050604002016020013563ffffffff909116600090815260ca6020526040902055565b610a8c600182611c77565b9050610a19565b505050565b610aa0610c72565b6107988282610ffe565b610ab2610c72565b828114610b1b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064016105d7565b8260005b81811015610b8157610b6f868683818110610b3c57610b3c611c19565b9050602002016020810190610b519190611968565b858584818110610b6357610b63611c19565b90506020020135610ffe565b610b7a600182611c77565b9050610b1f565b505050505050565b610b91610c72565b610b9a81610f2e565b50565b6000610bb88260405180602001604052806000815250611014565b92915050565b610bc6610c72565b73ffffffffffffffffffffffffffffffffffffffff8116610c69576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016105d7565b610b9a81610eb7565b60335473ffffffffffffffffffffffffffffffffffffffff163314610922576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105d7565b600080610d00848461102d565b915091505b9250929050565b60606000610d1983611067565b9050805167ffffffffffffffff811115610d3557610d35611c9d565b604051908082528060200260200182016040528015610d5e578160200160208202803683370190505b50915060005b8151811015610dc057818181518110610d7f57610d7f611c19565b6020026020010151838281518110610d9957610d99611c19565b63ffffffff9092166020928302919091019091015280610db881611ccc565b915050610d64565b5050919050565b60008080610ddf609763ffffffff80871690610cf316565b9150915081610ded85611102565b90610e25576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d79190611d72565b509392505050565b6000610e398383611139565b90506000610e478484611158565b9050366000610e568686611168565b91509150610e6c610e648590565b848484611178565b838863ffffffff167fba20947a325f450d232530e5f5fce293e7963499d5309a07cee84a269f2f15a685604051610ea591815260200190565b60405180910390a35050505050505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610f42609763ffffffff8084169061118216565b610f4b82611102565b90610798576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d79190611d72565b600080610f9b60408051602081019091526000815290565b9050610fb28684610fad88888661118e565b6111bd565b9150848663ffffffff167fd229aacb94204188fe8042965fa6b269c62dc5818b21238779ab64bdd17efeec86604051610fed91815260200190565b60405180910390a350949350505050565b610798609763ffffffff8085169084906111d716565b60008061102084610dc7565b90506106478482856111e2565b600081815260028301602052604081205481908061105c5761104f85856112c3565b925060009150610d059050565b600192509050610d05565b60606000611074836112cf565b90508067ffffffffffffffff81111561108f5761108f611c9d565b6040519080825280602002602001820160405280156110b8578160200160208202803683370190505b50915060005b81811015610dc0576110d084826112da565b60001c8382815181106110e5576110e5611c19565b6020908102919091010152806110fa81611ccc565b9150506110be565b60606111138263ffffffff166112e6565b6040516020016111239190611d85565b6040516020818303038152906040529050919050565b60006111486020828486611dca565b61115191611df4565b9392505050565b6000611148604060208486611dca565b366000610d008360408187611dca565b61097984846113a4565b600061115183836114fe565b60608383836040516020016111a593929190611e30565b60405160208183030381529060405290509392505050565b6000806111c985610dc7565b9050610a058582868661151b565b6109798383836115ff565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166381d2ea9585858561122c8961161c565b6065546040517fffffffff0000000000000000000000000000000000000000000000000000000060e088901b168152611282959493929173ffffffffffffffffffffffffffffffffffffffff1690600401611e5d565b602060405180830381865afa15801561129f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106479190611ebd565b6000611151838361163e565b6000610bb882611656565b60006111518383611660565b606060006112f38361168a565b600101905060008167ffffffffffffffff81111561131357611313611c9d565b6040519080825280601f01601f19166020018201604052801561133d576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a850494508461134757509392505050565b8047101561140e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016105d7565b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114611468576040519150601f19603f3d011682016040523d82523d6000602084013e61146d565b606091505b5050905080610a93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016105d7565b60008181526002830160205260408120819055611151838361176c565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166310b83dc0848787866115668b61161c565b6065546040517fffffffff0000000000000000000000000000000000000000000000000000000060e089901b1681526115bc959493929173ffffffffffffffffffffffffffffffffffffffff1690600401611e5d565b60206040518083038185885af11580156115da573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a059190611ebd565b600082815260028401602052604081208290556106478484611778565b63ffffffff8116600090815260ca6020526040902054606090610bb890611784565b60008181526001830160205260408120541515611151565b6000610bb8825490565b600082600001828154811061167757611677611c19565b9060005260206000200154905092915050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106116d3577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106116ff576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061171d57662386f26fc10000830492506010015b6305f5e1008310611735576305f5e100830492506008015b612710831061174957612710830492506004015b6064831061175b576064830492506002015b600a8310610bb85760010192915050565b600061115183836117a2565b60006111518383611895565b6060610bb860008333604051806020016040528060008152506118e4565b6000818152600183016020526040812054801561188b5760006117c6600183611c8a565b85549091506000906117da90600190611c8a565b905081811461183f5760008660000182815481106117fa576117fa611c19565b906000526020600020015490508087600001848154811061181d5761181d611c19565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061185057611850611ed6565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610bb8565b6000915050610bb8565b60008181526001830160205260408120546118dc57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610bb8565b506000610bb8565b6060600185858585604051602001611900959493929190611f05565b6040516020818303038152906040529050949350505050565b60006020828403121561192b57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461115157600080fd5b803563ffffffff8116811461196357600080fd5b919050565b60006020828403121561197a57600080fd5b6111518261194f565b6020808252825182820181905260009190848201906040850190845b818110156119c157835163ffffffff168352928401929184019160010161199f565b50909695505050505050565b600080604083850312156119e057600080fd5b6119e98361194f565b946020939093013593505050565b60008060008060608587031215611a0d57600080fd5b611a168561194f565b935060208501359250604085013567ffffffffffffffff80821115611a3a57600080fd5b818701915087601f830112611a4e57600080fd5b813581811115611a5d57600080fd5b886020828501011115611a6f57600080fd5b95989497505060200194505050565b60008083601f840112611a9057600080fd5b50813567ffffffffffffffff811115611aa857600080fd5b6020830191508360208260051b8501011115610d0557600080fd5b60008060208385031215611ad657600080fd5b823567ffffffffffffffff811115611aed57600080fd5b611af985828601611a7e565b90969095509350505050565b600080600060608486031215611b1a57600080fd5b611b238461194f565b95602085013595506040909401359392505050565b60008060208385031215611b4b57600080fd5b823567ffffffffffffffff80821115611b6357600080fd5b818501915085601f830112611b7757600080fd5b813581811115611b8657600080fd5b8660208260061b8501011115611b9b57600080fd5b60209290920196919550909350505050565b60008060008060408587031215611bc357600080fd5b843567ffffffffffffffff80821115611bdb57600080fd5b611be788838901611a7e565b90965094506020870135915080821115611c0057600080fd5b50611c0d87828801611a7e565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610bb857610bb8611c48565b81810381811115610bb857610bb8611c48565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611cfd57611cfd611c48565b5060010190565b60005b83811015611d1f578181015183820152602001611d07565b50506000910152565b60008151808452611d40816020860160208601611d04565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006111516020830184611d28565b7f4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e3a2000815260008251611dbd81601f850160208701611d04565b91909101601f0192915050565b60008085851115611dda57600080fd5b83861115611de757600080fd5b5050820193919092039150565b80356020831015610bb8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b83815282602082015260008251611e4e816040850160208701611d04565b91909101604001949350505050565b63ffffffff8616815284602082015260a060408201526000611e8260a0830186611d28565b8281036060840152611e948186611d28565b91505073ffffffffffffffffffffffffffffffffffffffff831660808301529695505050505050565b600060208284031215611ecf57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7fffff0000000000000000000000000000000000000000000000000000000000008660f01b1681528460028201528360228201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008360601b16604282015260008251611f79816056850160208701611d04565b91909101605601969550505050505056fea26469706673582212205fbddcb6f1fb9bbd8543014e4a47664cf176af4aeea5d447e95c877c3c089e2d64736f6c63430008130033";
17
17
  static readonly abi: readonly [{
18
18
  readonly inputs: readonly [{
19
19
  readonly internalType: "address";