@hyperlane-xyz/core 1.1.4 → 1.2.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 (178) hide show
  1. package/README.md +3 -3
  2. package/contracts/igps/InterchainGasPaymaster.sol +125 -29
  3. package/contracts/igps/gas-oracles/StorageGasOracle.sol +104 -0
  4. package/contracts/mock/MockHyperlaneEnvironment.sol +2 -2
  5. package/contracts/mock/MockMailbox.sol +4 -0
  6. package/contracts/test/LightTestRecipient.sol +3 -0
  7. package/contracts/test/TestInterchainGasPaymaster.sol +4 -5
  8. package/dist/@openzeppelin/contracts/token/ERC20/index.d.ts +0 -2
  9. package/dist/@openzeppelin/contracts/token/ERC20/index.d.ts.map +1 -1
  10. package/dist/@openzeppelin/contracts/token/ERC20/index.js +0 -1
  11. package/dist/@openzeppelin/contracts/token/ERC20/index.js.map +1 -1
  12. package/dist/contracts/igps/InterchainGasPaymaster.d.ts +116 -8
  13. package/dist/contracts/igps/InterchainGasPaymaster.d.ts.map +1 -1
  14. package/dist/contracts/igps/OverheadIgp.d.ts +15 -0
  15. package/dist/contracts/igps/OverheadIgp.d.ts.map +1 -1
  16. package/dist/contracts/igps/gas-oracles/StorageGasOracle.d.ts +205 -0
  17. package/dist/contracts/igps/gas-oracles/StorageGasOracle.d.ts.map +1 -0
  18. package/dist/contracts/igps/{GasOverheadIgp.js → gas-oracles/StorageGasOracle.js} +1 -1
  19. package/dist/contracts/igps/gas-oracles/StorageGasOracle.js.map +1 -0
  20. package/dist/contracts/igps/gas-oracles/index.d.ts +2 -0
  21. package/dist/contracts/igps/gas-oracles/index.d.ts.map +1 -0
  22. package/dist/contracts/igps/gas-oracles/index.js.map +1 -0
  23. package/dist/contracts/igps/index.d.ts +2 -0
  24. package/dist/contracts/igps/index.d.ts.map +1 -1
  25. package/dist/contracts/igps/index.js +1 -0
  26. package/dist/contracts/igps/index.js.map +1 -1
  27. package/dist/contracts/mock/MockMailbox.d.ts +9 -1
  28. package/dist/contracts/mock/MockMailbox.d.ts.map +1 -1
  29. package/dist/contracts/test/TestInterchainGasPaymaster.d.ts +116 -16
  30. package/dist/contracts/test/TestInterchainGasPaymaster.d.ts.map +1 -1
  31. package/dist/factories/@openzeppelin/contracts/token/ERC20/index.d.ts +0 -1
  32. package/dist/factories/@openzeppelin/contracts/token/ERC20/index.d.ts.map +1 -1
  33. package/dist/factories/@openzeppelin/contracts/token/ERC20/index.js +1 -25
  34. package/dist/factories/@openzeppelin/contracts/token/ERC20/index.js.map +1 -1
  35. package/dist/factories/contracts/igps/InterchainGasPaymaster__factory.d.ts +24 -4
  36. package/dist/factories/contracts/igps/InterchainGasPaymaster__factory.d.ts.map +1 -1
  37. package/dist/factories/contracts/igps/InterchainGasPaymaster__factory.js +145 -7
  38. package/dist/factories/contracts/igps/InterchainGasPaymaster__factory.js.map +1 -1
  39. package/dist/factories/contracts/igps/OverheadIgp__factory.d.ts +1 -1
  40. package/dist/factories/contracts/igps/OverheadIgp__factory.d.ts.map +1 -1
  41. package/dist/factories/contracts/igps/OverheadIgp__factory.js +26 -1
  42. package/dist/factories/contracts/igps/OverheadIgp__factory.js.map +1 -1
  43. package/dist/factories/contracts/igps/gas-oracles/StorageGasOracle__factory.d.ts +64 -0
  44. package/dist/factories/contracts/igps/gas-oracles/StorageGasOracle__factory.d.ts.map +1 -0
  45. package/dist/factories/contracts/igps/gas-oracles/StorageGasOracle__factory.js +226 -0
  46. package/dist/factories/contracts/igps/gas-oracles/StorageGasOracle__factory.js.map +1 -0
  47. package/dist/factories/contracts/igps/gas-oracles/index.d.ts +2 -0
  48. package/dist/factories/contracts/igps/gas-oracles/index.d.ts.map +1 -0
  49. package/dist/factories/contracts/igps/gas-oracles/index.js +9 -0
  50. package/dist/factories/contracts/igps/gas-oracles/index.js.map +1 -0
  51. package/dist/factories/contracts/igps/index.d.ts +1 -0
  52. package/dist/factories/contracts/igps/index.d.ts.map +1 -1
  53. package/dist/factories/contracts/igps/index.js +25 -1
  54. package/dist/factories/contracts/igps/index.js.map +1 -1
  55. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts +1 -1
  56. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js +1 -1
  57. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts +1 -1
  58. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js +1 -1
  59. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts +1 -1
  60. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js +1 -1
  61. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts +1 -1
  62. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js +1 -1
  63. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts +1 -1
  64. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js +1 -1
  65. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts +1 -1
  66. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts.map +1 -1
  67. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js +1 -1
  68. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js.map +1 -1
  69. package/dist/factories/contracts/mock/MockMailbox__factory.d.ts +1 -1
  70. package/dist/factories/contracts/mock/MockMailbox__factory.d.ts.map +1 -1
  71. package/dist/factories/contracts/mock/MockMailbox__factory.js +14 -1
  72. package/dist/factories/contracts/mock/MockMailbox__factory.js.map +1 -1
  73. package/dist/factories/contracts/test/LightTestRecipient__factory.d.ts +1 -1
  74. package/dist/factories/contracts/test/LightTestRecipient__factory.js +1 -1
  75. package/dist/factories/contracts/test/TestGasRouter__factory.d.ts +1 -1
  76. package/dist/factories/contracts/test/TestGasRouter__factory.js +1 -1
  77. package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.d.ts +1 -1
  78. package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.js +1 -1
  79. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.d.ts +31 -4
  80. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.d.ts.map +1 -1
  81. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.js +153 -10
  82. package/dist/factories/contracts/test/TestInterchainGasPaymaster__factory.js.map +1 -1
  83. package/dist/factories/contracts/test/TestQuerySender__factory.d.ts +1 -1
  84. package/dist/factories/contracts/test/TestQuerySender__factory.js +1 -1
  85. package/dist/factories/contracts/test/TestQuery__factory.d.ts +1 -1
  86. package/dist/factories/contracts/test/TestQuery__factory.js +1 -1
  87. package/dist/factories/contracts/test/TestRouter__factory.d.ts +1 -1
  88. package/dist/factories/contracts/test/TestRouter__factory.js +1 -1
  89. package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts +1 -1
  90. package/dist/factories/contracts/test/TestSendReceiver__factory.js +1 -1
  91. package/dist/factories/{@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit__factory.d.ts → interfaces/IGasOracle__factory.d.ts} +5 -5
  92. package/dist/factories/interfaces/IGasOracle__factory.d.ts.map +1 -0
  93. package/dist/factories/interfaces/IGasOracle__factory.js +42 -0
  94. package/dist/factories/interfaces/IGasOracle__factory.js.map +1 -0
  95. package/dist/factories/interfaces/IInterchainGasPaymaster__factory.d.ts +15 -2
  96. package/dist/factories/interfaces/IInterchainGasPaymaster__factory.d.ts.map +1 -1
  97. package/dist/factories/interfaces/IInterchainGasPaymaster__factory.js +25 -0
  98. package/dist/factories/interfaces/IInterchainGasPaymaster__factory.js.map +1 -1
  99. package/dist/factories/interfaces/index.d.ts +1 -0
  100. package/dist/factories/interfaces/index.d.ts.map +1 -1
  101. package/dist/factories/interfaces/index.js +3 -1
  102. package/dist/factories/interfaces/index.js.map +1 -1
  103. package/dist/index.d.ts +4 -2
  104. package/dist/index.d.ts.map +1 -1
  105. package/dist/index.js +6 -4
  106. package/dist/index.js.map +1 -1
  107. package/dist/interfaces/IGasOracle.d.ts +61 -0
  108. package/dist/interfaces/IGasOracle.d.ts.map +1 -0
  109. package/dist/{@openzeppelin/contracts/token/ERC20/extensions/index.js → interfaces/IGasOracle.js} +1 -1
  110. package/dist/interfaces/IGasOracle.js.map +1 -0
  111. package/dist/interfaces/IInterchainGasPaymaster.d.ts +20 -3
  112. package/dist/interfaces/IInterchainGasPaymaster.d.ts.map +1 -1
  113. package/dist/interfaces/index.d.ts +1 -0
  114. package/dist/interfaces/index.d.ts.map +1 -1
  115. package/interfaces/IGasOracle.sol +16 -0
  116. package/interfaces/IInterchainGasPaymaster.sol +12 -0
  117. package/package.json +2 -2
  118. package/dist/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.d.ts +0 -75
  119. package/dist/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.d.ts.map +0 -1
  120. package/dist/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.js +0 -4
  121. package/dist/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.js.map +0 -1
  122. package/dist/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.d.ts +0 -2
  123. package/dist/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.d.ts.map +0 -1
  124. package/dist/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.js.map +0 -1
  125. package/dist/@openzeppelin/contracts/token/ERC20/extensions/index.d.ts +0 -3
  126. package/dist/@openzeppelin/contracts/token/ERC20/extensions/index.d.ts.map +0 -1
  127. package/dist/@openzeppelin/contracts/token/ERC20/extensions/index.js.map +0 -1
  128. package/dist/contracts/InterchainGasPaymaster.d.ts +0 -162
  129. package/dist/contracts/InterchainGasPaymaster.d.ts.map +0 -1
  130. package/dist/contracts/InterchainGasPaymaster.js +0 -4
  131. package/dist/contracts/InterchainGasPaymaster.js.map +0 -1
  132. package/dist/contracts/igps/GasOverheadIgp.d.ts +0 -194
  133. package/dist/contracts/igps/GasOverheadIgp.d.ts.map +0 -1
  134. package/dist/contracts/igps/GasOverheadIgp.js.map +0 -1
  135. package/dist/contracts/middleware/liquidity-layer/interfaces/circle/ICircleBridge.d.ts +0 -78
  136. package/dist/contracts/middleware/liquidity-layer/interfaces/circle/ICircleBridge.d.ts.map +0 -1
  137. package/dist/contracts/middleware/liquidity-layer/interfaces/circle/ICircleBridge.js +0 -4
  138. package/dist/contracts/middleware/liquidity-layer/interfaces/circle/ICircleBridge.js.map +0 -1
  139. package/dist/contracts/mock/MockCircleBridge.d.ts +0 -86
  140. package/dist/contracts/mock/MockCircleBridge.d.ts.map +0 -1
  141. package/dist/contracts/mock/MockCircleBridge.js +0 -4
  142. package/dist/contracts/mock/MockCircleBridge.js.map +0 -1
  143. package/dist/contracts/mock/MockInterchainAccountRouter.d.ts +0 -422
  144. package/dist/contracts/mock/MockInterchainAccountRouter.d.ts.map +0 -1
  145. package/dist/contracts/mock/MockInterchainAccountRouter.js +0 -4
  146. package/dist/contracts/mock/MockInterchainAccountRouter.js.map +0 -1
  147. package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit__factory.d.ts.map +0 -1
  148. package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit__factory.js +0 -93
  149. package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit__factory.js.map +0 -1
  150. package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.d.ts +0 -2
  151. package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.d.ts.map +0 -1
  152. package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.js +0 -9
  153. package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.js.map +0 -1
  154. package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/index.d.ts +0 -2
  155. package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/index.d.ts.map +0 -1
  156. package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/index.js +0 -31
  157. package/dist/factories/@openzeppelin/contracts/token/ERC20/extensions/index.js.map +0 -1
  158. package/dist/factories/contracts/InterchainGasPaymaster__factory.d.ts +0 -62
  159. package/dist/factories/contracts/InterchainGasPaymaster__factory.d.ts.map +0 -1
  160. package/dist/factories/contracts/InterchainGasPaymaster__factory.js +0 -178
  161. package/dist/factories/contracts/InterchainGasPaymaster__factory.js.map +0 -1
  162. package/dist/factories/contracts/igps/GasOverheadIgp__factory.d.ts +0 -75
  163. package/dist/factories/contracts/igps/GasOverheadIgp__factory.d.ts.map +0 -1
  164. package/dist/factories/contracts/igps/GasOverheadIgp__factory.js +0 -263
  165. package/dist/factories/contracts/igps/GasOverheadIgp__factory.js.map +0 -1
  166. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/ICircleBridge__factory.d.ts +0 -36
  167. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/ICircleBridge__factory.d.ts.map +0 -1
  168. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/ICircleBridge__factory.js +0 -104
  169. package/dist/factories/contracts/middleware/liquidity-layer/interfaces/circle/ICircleBridge__factory.js.map +0 -1
  170. package/dist/factories/contracts/mock/MockCircleBridge__factory.d.ts +0 -59
  171. package/dist/factories/contracts/mock/MockCircleBridge__factory.d.ts.map +0 -1
  172. package/dist/factories/contracts/mock/MockCircleBridge__factory.js +0 -151
  173. package/dist/factories/contracts/mock/MockCircleBridge__factory.js.map +0 -1
  174. package/dist/factories/contracts/mock/MockInterchainAccountRouter__factory.d.ts +0 -69
  175. package/dist/factories/contracts/mock/MockInterchainAccountRouter__factory.d.ts.map +0 -1
  176. package/dist/factories/contracts/mock/MockInterchainAccountRouter__factory.js +0 -556
  177. package/dist/factories/contracts/mock/MockInterchainAccountRouter__factory.js.map +0 -1
  178. /package/dist/{@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol → contracts/igps/gas-oracles}/index.js +0 -0
@@ -0,0 +1,226 @@
1
+ "use strict";
2
+ /* Autogenerated file. Do not edit manually. */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.StorageGasOracle__factory = void 0;
5
+ const ethers_1 = require("ethers");
6
+ const _abi = [
7
+ {
8
+ anonymous: false,
9
+ inputs: [
10
+ {
11
+ indexed: true,
12
+ internalType: "address",
13
+ name: "previousOwner",
14
+ type: "address",
15
+ },
16
+ {
17
+ indexed: true,
18
+ internalType: "address",
19
+ name: "newOwner",
20
+ type: "address",
21
+ },
22
+ ],
23
+ name: "OwnershipTransferred",
24
+ type: "event",
25
+ },
26
+ {
27
+ anonymous: false,
28
+ inputs: [
29
+ {
30
+ indexed: true,
31
+ internalType: "uint32",
32
+ name: "remoteDomain",
33
+ type: "uint32",
34
+ },
35
+ {
36
+ indexed: false,
37
+ internalType: "uint128",
38
+ name: "tokenExchangeRate",
39
+ type: "uint128",
40
+ },
41
+ {
42
+ indexed: false,
43
+ internalType: "uint128",
44
+ name: "gasPrice",
45
+ type: "uint128",
46
+ },
47
+ ],
48
+ name: "RemoteGasDataSet",
49
+ type: "event",
50
+ },
51
+ {
52
+ inputs: [
53
+ {
54
+ internalType: "uint32",
55
+ name: "_destinationDomain",
56
+ type: "uint32",
57
+ },
58
+ ],
59
+ name: "getExchangeRateAndGasPrice",
60
+ outputs: [
61
+ {
62
+ internalType: "uint128",
63
+ name: "tokenExchangeRate",
64
+ type: "uint128",
65
+ },
66
+ {
67
+ internalType: "uint128",
68
+ name: "gasPrice",
69
+ type: "uint128",
70
+ },
71
+ ],
72
+ stateMutability: "view",
73
+ type: "function",
74
+ },
75
+ {
76
+ inputs: [],
77
+ name: "owner",
78
+ outputs: [
79
+ {
80
+ internalType: "address",
81
+ name: "",
82
+ type: "address",
83
+ },
84
+ ],
85
+ stateMutability: "view",
86
+ type: "function",
87
+ },
88
+ {
89
+ inputs: [
90
+ {
91
+ internalType: "uint32",
92
+ name: "",
93
+ type: "uint32",
94
+ },
95
+ ],
96
+ name: "remoteGasData",
97
+ outputs: [
98
+ {
99
+ internalType: "uint128",
100
+ name: "tokenExchangeRate",
101
+ type: "uint128",
102
+ },
103
+ {
104
+ internalType: "uint128",
105
+ name: "gasPrice",
106
+ type: "uint128",
107
+ },
108
+ ],
109
+ stateMutability: "view",
110
+ type: "function",
111
+ },
112
+ {
113
+ inputs: [],
114
+ name: "renounceOwnership",
115
+ outputs: [],
116
+ stateMutability: "nonpayable",
117
+ type: "function",
118
+ },
119
+ {
120
+ inputs: [
121
+ {
122
+ components: [
123
+ {
124
+ internalType: "uint32",
125
+ name: "remoteDomain",
126
+ type: "uint32",
127
+ },
128
+ {
129
+ internalType: "uint128",
130
+ name: "tokenExchangeRate",
131
+ type: "uint128",
132
+ },
133
+ {
134
+ internalType: "uint128",
135
+ name: "gasPrice",
136
+ type: "uint128",
137
+ },
138
+ ],
139
+ internalType: "struct StorageGasOracle.RemoteGasDataConfig",
140
+ name: "_config",
141
+ type: "tuple",
142
+ },
143
+ ],
144
+ name: "setRemoteGasData",
145
+ outputs: [],
146
+ stateMutability: "nonpayable",
147
+ type: "function",
148
+ },
149
+ {
150
+ inputs: [
151
+ {
152
+ components: [
153
+ {
154
+ internalType: "uint32",
155
+ name: "remoteDomain",
156
+ type: "uint32",
157
+ },
158
+ {
159
+ internalType: "uint128",
160
+ name: "tokenExchangeRate",
161
+ type: "uint128",
162
+ },
163
+ {
164
+ internalType: "uint128",
165
+ name: "gasPrice",
166
+ type: "uint128",
167
+ },
168
+ ],
169
+ internalType: "struct StorageGasOracle.RemoteGasDataConfig[]",
170
+ name: "_configs",
171
+ type: "tuple[]",
172
+ },
173
+ ],
174
+ name: "setRemoteGasDataConfigs",
175
+ outputs: [],
176
+ stateMutability: "nonpayable",
177
+ type: "function",
178
+ },
179
+ {
180
+ inputs: [
181
+ {
182
+ internalType: "address",
183
+ name: "newOwner",
184
+ type: "address",
185
+ },
186
+ ],
187
+ name: "transferOwnership",
188
+ outputs: [],
189
+ stateMutability: "nonpayable",
190
+ type: "function",
191
+ },
192
+ ];
193
+ const _bytecode = "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61070d8061007e6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b14610133578063b08e56d01461015b578063f2fde38b146101a5578063f3a1495f146101b857600080fd5b806360fcef7c14610082578063698faffc14610116578063715018a61461012b575b600080fd5b6100e8610090366004610527565b63ffffffff166000908152600160209081526040918290208251808401909352546fffffffffffffffffffffffffffffffff808216808552700100000000000000000000000000000000909204169290910182905291565b604080516fffffffffffffffffffffffffffffffff9384168152929091166020830152015b60405180910390f35b610129610124366004610554565b6101cb565b005b610129610217565b60005460405173ffffffffffffffffffffffffffffffffffffffff909116815260200161010d565b6100e8610169366004610527565b6001602052600090815260409020546fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041682565b6101296101b33660046105c9565b61022b565b6101296101c63660046105ff565b6102e7565b6101d36102f8565b8060005b81811015610211576101ff8484838181106101f4576101f4610617565b905060600201610379565b8061020981610646565b9150506101d7565b50505050565b61021f6102f8565b61022960006104b2565b565b6102336102f8565b73ffffffffffffffffffffffffffffffffffffffff81166102db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102e4816104b2565b50565b6102ef6102f8565b6102e481610379565b60005473ffffffffffffffffffffffffffffffffffffffff163314610229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d2565b604051806040016040528082602001602081019061039791906106a5565b6fffffffffffffffffffffffffffffffff1681526020016103be60608401604085016106a5565b6fffffffffffffffffffffffffffffffff169052600160006103e36020850185610527565b63ffffffff1681526020808201929092526040016000208251928201516fffffffffffffffffffffffffffffffff9081167001000000000000000000000000000000000293169290921790915561043c90820182610527565b63ffffffff167fb48c1cb713397fc0c0649596c221270fec0b3de3f85ccf6a734411a2fe57a69461047360408401602085016106a5565b61048360608501604086016106a5565b604080516fffffffffffffffffffffffffffffffff93841681529290911660208301520160405180910390a250565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561053957600080fd5b813563ffffffff8116811461054d57600080fd5b9392505050565b6000806020838503121561056757600080fd5b823567ffffffffffffffff8082111561057f57600080fd5b818501915085601f83011261059357600080fd5b8135818111156105a257600080fd5b8660206060830285010111156105b757600080fd5b60209290920196919550909350505050565b6000602082840312156105db57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461054d57600080fd5b60006060828403121561061157600080fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361069e577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5060010190565b6000602082840312156106b757600080fd5b81356fffffffffffffffffffffffffffffffff8116811461054d57600080fdfea2646970667358221220a75e956769d8ed5c59f685d459b97e074fdbe7b42aedef401cf141e09fc2557f64736f6c63430008110033";
194
+ const isSuperArgs = (xs) => xs.length > 1;
195
+ class StorageGasOracle__factory extends ethers_1.ContractFactory {
196
+ constructor(...args) {
197
+ if (isSuperArgs(args)) {
198
+ super(...args);
199
+ }
200
+ else {
201
+ super(_abi, _bytecode, args[0]);
202
+ }
203
+ }
204
+ deploy(overrides) {
205
+ return super.deploy(overrides || {});
206
+ }
207
+ getDeployTransaction(overrides) {
208
+ return super.getDeployTransaction(overrides || {});
209
+ }
210
+ attach(address) {
211
+ return super.attach(address);
212
+ }
213
+ connect(signer) {
214
+ return super.connect(signer);
215
+ }
216
+ static createInterface() {
217
+ return new ethers_1.utils.Interface(_abi);
218
+ }
219
+ static connect(address, signerOrProvider) {
220
+ return new ethers_1.Contract(address, _abi, signerOrProvider);
221
+ }
222
+ }
223
+ exports.StorageGasOracle__factory = StorageGasOracle__factory;
224
+ StorageGasOracle__factory.bytecode = _bytecode;
225
+ StorageGasOracle__factory.abi = _abi;
226
+ //# sourceMappingURL=StorageGasOracle__factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StorageGasOracle__factory.js","sourceRoot":"","sources":["../../../../../types/factories/contracts/igps/gas-oracles/StorageGasOracle__factory.ts"],"names":[],"mappings":";AAAA,+CAA+C;;;AAU/C,mCAA6E;AAE7E,MAAM,IAAI,GAAG;IACX;QACE,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE;YACN;gBACE,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,sBAAsB;QAC5B,IAAI,EAAE,OAAO;KACd;IACD;QACE,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE;YACN;gBACE,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,QAAQ;aACf;YACD;gBACE,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,mBAAmB;gBACzB,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,OAAO;KACd;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,oBAAoB;gBAC1B,IAAI,EAAE,QAAQ;aACf;SACF;QACD,IAAI,EAAE,4BAA4B;QAClC,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,mBAAmB;gBACzB,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,OAAO;QACb,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,QAAQ;aACf;SACF;QACD,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,mBAAmB;gBACzB,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,UAAU,EAAE;oBACV;wBACE,YAAY,EAAE,QAAQ;wBACtB,IAAI,EAAE,cAAc;wBACpB,IAAI,EAAE,QAAQ;qBACf;oBACD;wBACE,YAAY,EAAE,SAAS;wBACvB,IAAI,EAAE,mBAAmB;wBACzB,IAAI,EAAE,SAAS;qBAChB;oBACD;wBACE,YAAY,EAAE,SAAS;wBACvB,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,SAAS;qBAChB;iBACF;gBACD,YAAY,EAAE,6CAA6C;gBAC3D,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,OAAO;aACd;SACF;QACD,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,UAAU,EAAE;oBACV;wBACE,YAAY,EAAE,QAAQ;wBACtB,IAAI,EAAE,cAAc;wBACpB,IAAI,EAAE,QAAQ;qBACf;oBACD;wBACE,YAAY,EAAE,SAAS;wBACvB,IAAI,EAAE,mBAAmB;wBACzB,IAAI,EAAE,SAAS;qBAChB;oBACD;wBACE,YAAY,EAAE,SAAS;wBACvB,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,SAAS;qBAChB;iBACF;gBACD,YAAY,EAAE,+CAA+C;gBAC7D,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,yBAAyB;QAC/B,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;CACF,CAAC;AAEF,MAAM,SAAS,GACb,0xHAA0xH,CAAC;AAM7xH,MAAM,WAAW,GAAG,CAClB,EAAqC,EACgB,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAExE,MAAa,yBAA0B,SAAQ,wBAAe;IAC5D,YAAY,GAAG,IAAuC;QACpD,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE;YACrB,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;SAChB;aAAM;YACL,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SACjC;IACH,CAAC;IAEQ,MAAM,CACb,SAA2D;QAE3D,OAAO,KAAK,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAA8B,CAAC;IACpE,CAAC;IACQ,oBAAoB,CAC3B,SAA2D;QAE3D,OAAO,KAAK,CAAC,oBAAoB,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;IACQ,MAAM,CAAC,OAAe;QAC7B,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAqB,CAAC;IACnD,CAAC;IACQ,OAAO,CAAC,MAAc;QAC7B,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAA8B,CAAC;IAC5D,CAAC;IAID,MAAM,CAAC,eAAe;QACpB,OAAO,IAAI,cAAK,CAAC,SAAS,CAAC,IAAI,CAA8B,CAAC;IAChE,CAAC;IACD,MAAM,CAAC,OAAO,CACZ,OAAe,EACf,gBAAmC;QAEnC,OAAO,IAAI,iBAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,gBAAgB,CAAqB,CAAC;IAC3E,CAAC;;AApCH,8DAqCC;AAXiB,kCAAQ,GAAG,SAAS,CAAC;AACrB,6BAAG,GAAG,IAAI,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { StorageGasOracle__factory } from "./StorageGasOracle__factory";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../types/factories/contracts/igps/gas-oracles/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StorageGasOracle__factory = void 0;
4
+ /* Autogenerated file. Do not edit manually. */
5
+ /* tslint:disable */
6
+ /* eslint-disable */
7
+ var StorageGasOracle__factory_1 = require("./StorageGasOracle__factory");
8
+ Object.defineProperty(exports, "StorageGasOracle__factory", { enumerable: true, get: function () { return StorageGasOracle__factory_1.StorageGasOracle__factory; } });
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../types/factories/contracts/igps/gas-oracles/index.ts"],"names":[],"mappings":";;;AAAA,+CAA+C;AAC/C,oBAAoB;AACpB,oBAAoB;AACpB,yEAAwE;AAA/D,sIAAA,yBAAyB,OAAA"}
@@ -1,3 +1,4 @@
1
+ export * as gasOracles from "./gas-oracles";
1
2
  export { InterchainGasPaymaster__factory } from "./InterchainGasPaymaster__factory";
2
3
  export { OverheadIgp__factory } from "./OverheadIgp__factory";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../types/factories/contracts/igps/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../types/factories/contracts/igps/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,UAAU,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -1,9 +1,33 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OverheadIgp__factory = exports.InterchainGasPaymaster__factory = void 0;
26
+ exports.OverheadIgp__factory = exports.InterchainGasPaymaster__factory = exports.gasOracles = void 0;
4
27
  /* Autogenerated file. Do not edit manually. */
5
28
  /* tslint:disable */
6
29
  /* eslint-disable */
30
+ exports.gasOracles = __importStar(require("./gas-oracles"));
7
31
  var InterchainGasPaymaster__factory_1 = require("./InterchainGasPaymaster__factory");
8
32
  Object.defineProperty(exports, "InterchainGasPaymaster__factory", { enumerable: true, get: function () { return InterchainGasPaymaster__factory_1.InterchainGasPaymaster__factory; } });
9
33
  var OverheadIgp__factory_1 = require("./OverheadIgp__factory");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../types/factories/contracts/igps/index.ts"],"names":[],"mappings":";;;AAAA,+CAA+C;AAC/C,oBAAoB;AACpB,oBAAoB;AACpB,qFAAoF;AAA3E,kJAAA,+BAA+B,OAAA;AACxC,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../types/factories/contracts/igps/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA+C;AAC/C,oBAAoB;AACpB,oBAAoB;AACpB,4DAA4C;AAC5C,qFAAoF;AAA3E,kJAAA,+BAA+B,OAAA;AACxC,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA"}
@@ -12,7 +12,7 @@ export declare class InterchainAccountRouter__factory extends ContractFactory {
12
12
  }): TransactionRequest;
13
13
  attach(address: string): InterchainAccountRouter;
14
14
  connect(signer: Signer): InterchainAccountRouter__factory;
15
- static readonly bytecode = "0x60c06040523480156200001157600080fd5b506040516200002090620000f2565b604051809103906000f0801580156200003d573d6000803e3d6000fd5b506001600160a01b03166080816001600160a01b0316815250506000620000716080516200008360201b62000af81760201c565b805160209091012060a0525062000100565b6040517f3d602d80600a3d3981f3363d3d373d3d3d363d730000000000000000000000006020820152606082811b6001600160601b03191660348301526e5af43d82803e903d91602b57fd5bf360881b6048830152906057016040516020818303038152906040529050919050565b610cbd806200226883390190565b60805160a051612142620001266000396000610ef50152600061063101526121426000f3fe608060405234801561001057600080fd5b506004361061016c5760003560e01c8063c1576692116100cd578063f1bd6f0a11610081578063f3c61d6b11610066578063f3c61d6b14610317578063f6aa16401461032a578063f8c8765e1461033d57600080fd5b8063f1bd6f0a146102f1578063f2fde38b1461030457600080fd5b8063d5438eae116100b2578063d5438eae1461029e578063de523cf3146102be578063e9198bf9146102de57600080fd5b8063c157669214610278578063c27aa6f01461028b57600080fd5b8063715018a611610124578063af27c32111610109578063af27c3211461023f578063b49c53a714610252578063bcd55df21461026557600080fd5b8063715018a6146102195780638da5cb5b1461022157600080fd5b806339bb4ad91161015557806339bb4ad9146101ac578063440df4f4146101f157806356d5d4751461020657600080fd5b80630e72cc06146101715780632ead72f614610186575b600080fd5b61018461017f36600461167b565b610350565b005b6101996101943660046116aa565b610364565b6040519081526020015b60405180910390f35b6066546101cc9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a3565b6101f96103a6565b6040516101a391906116c5565b61018461021436600461170f565b610461565b610184610559565b60335473ffffffffffffffffffffffffffffffffffffffff166101cc565b6101cc61024d366004611796565b61056d565b6101846102603660046117c9565b610596565b6101cc6102733660046117c9565b6105ac565b61019961028636600461183f565b610760565b6101cc6102993660046117c9565b610776565b6065546101cc9073ffffffffffffffffffffffffffffffffffffffff1681565b6067546101cc9073ffffffffffffffffffffffffffffffffffffffff1681565b6101846102ec366004611892565b61078a565b6101846102ff36600461167b565b610867565b61018461031236600461167b565b610878565b61018461032536600461167b565b61092c565b6101cc610338366004611796565b61093d565b61018461034b3660046118fe565b61095f565b610358610b8d565b61036181610c0e565b50565b600061037a609863ffffffff80851690610d1c16565b1561039957610393609863ffffffff80851690610d2816565b92915050565b506000919050565b919050565b609880546060919060009067ffffffffffffffff8111156103c9576103c9611952565b6040519080825280602002602001820160405280156103f2578160200160208202803683370190505b50905060005b825481101561045a5782818154811061041357610413611981565b906000526020600020015460001c82828151811061043357610433611981565b63ffffffff9092166020928302919091019091015280610452816119df565b9150506103f8565b5092915050565b60655473ffffffffffffffffffffffffffffffffffffffff1633146104e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f216d61696c626f7800000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b83836104f38282610d34565b6040518060800160405280604381526020016120ca6043913990610544576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104de9190611a7b565b5061055186868686610d48565b505050505050565b610561610b8d565b61056b6000610dd5565b565b600061058f8373ffffffffffffffffffffffffffffffffffffffff84166105ac565b9392505050565b61059e610b8d565b6105a88282610e4c565b5050565b6000806105b98484610e99565b905060006105c682610eed565b905073ffffffffffffffffffffffffffffffffffffffff81163b61075857604080517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000060208201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060601b1660348201527f5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000604882015281516037818303018152605790910190915261069d60008483610f19565b6040805187815273ffffffffffffffffffffffffffffffffffffffff8316602082015291935063ffffffff8816917fde1295e6ee7fa8af4d952ebc0104c855dfdf2ad9e1d0bcc7d61d50892ef275c5910160405180910390a28173ffffffffffffffffffffffffffffffffffffffff16638129fc1c6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561073e57600080fd5b505af1158015610752573d6000803e3d6000fd5b50505050505b949350505050565b600061075884610771858533611078565b6110aa565b600061058f6107858484610e99565b610eed565b610792610b8d565b8281146107fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064016104de565b60005b838110156108605761084e85858381811061081b5761081b611981565b905060200201602081019061083091906116aa565b84848481811061084257610842611981565b90506020020135610e4c565b610859600182611a8e565b90506107fe565b5050505050565b61086f610b8d565b61036181611154565b610880610b8d565b73ffffffffffffffffffffffffffffffffffffffff8116610923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104de565b61036181610dd5565b610934610b8d565b61036181611243565b600061058f8373ffffffffffffffffffffffffffffffffffffffff8416610776565b600054610100900460ff161580801561097f5750600054600160ff909116105b806109995750303b158015610999575060005460ff166001145b610a25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016104de565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610a8357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610a8f85858585611332565b801561086057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6040517f3d602d80600a3d3981f3363d3d373d3d3d363d730000000000000000000000006020820152606082811b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660348301527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006048830152906057016040516020818303038152906040529050919050565b60335473ffffffffffffffffffffffffffffffffffffffff16331461056b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104de565b73ffffffffffffffffffffffffffffffffffffffff81161580610c47575073ffffffffffffffffffffffffffffffffffffffff81163b15155b610cad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016104de565b606780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517ffec811ed4e60aebdaf7a79cad8a97196bf56e35362f039705598226d30c9d24890600090a250565b600061058f83836113f3565b600061058f83836113ff565b600081610d4084610364565b149392505050565b6000610d58856102738585611489565b90508073ffffffffffffffffffffffffffffffffffffffff16638290459d610d8085856114a1565b6040518263ffffffff1660e01b8152600401610d9c9190611aa1565b600060405180830381600087803b158015610db657600080fd5b505af1158015610dca573d6000803e3d6000fd5b505050505050505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610e62609863ffffffff8085169084906114e216565b604051819063ffffffff8416907f97fd51fef1f80c854cbd0150c248e8b2ac4ecdc97cc05e742b5f61c9f4dc645890600090a35050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1660208201526024810182905260009060440160405160208183030381529060405261058f90611b44565b6000610393827f00000000000000000000000000000000000000000000000000000000000000006114ed565b600083471015610f85576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e636500000060448201526064016104de565b8151600003610ff0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f60448201526064016104de565b8282516020840186f5905073ffffffffffffffffffffffffffffffffffffffff811661058f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f790000000000000060448201526064016104de565b606081600085856040516020016110929493929190611bf2565b60405160208183030381529060405290509392505050565b6000806110b6846114fa565b6065546040517ffa31de0100000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff169063fa31de019061111190879085908890600401611d79565b6020604051808303816000875af1158015611130573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107589190611d9e565b8073ffffffffffffffffffffffffffffffffffffffff81163b6111d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016104de565b606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517fb87f5a0bface22cde699143559fb99f990ae54eea236995fc54178af91af859f90600090a25050565b8073ffffffffffffffffffffffffffffffffffffffff81163b6112c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016104de565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517f7a61e573722ff8b205c8962b59d37e7d30573f368965597a844a94872204ebd790600090a25050565b600054610100900460ff166113c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016104de565b6113d284611243565b6113db83611154565b6113e482610c0e565b6113ed81610dd5565b50505050565b600061058f8383611565565b600081815260028301602052604081205480151580611423575061142384846113f3565b61058f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579000060448201526064016104de565b60006114986020828486611db7565b61058f91611de1565b606060006114af848461157d565b60038111156114c0576114c0611b86565b146114cd576114cd611e1d565b6114d982840184611ec4565b95945050505050565b6113ed8383836115b7565b600061058f8383306115d4565b600061150582610364565b90506000801b8114156040518060800160405280604381526020016120ca604391399061155f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104de9190611a7b565b50919050565b6000818152600183016020526040812054151561058f565b6000828261158d600160406120b6565b81811061159c5761159c611981565b919091013560f81c9050600381111561058f5761058f611b86565b6000828152600284016020526040812082905561075884846115fe565b6000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b600081815260018301602052604081205461058f9084908490849061164f57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610393565b506000610393565b803573ffffffffffffffffffffffffffffffffffffffff811681146103a157600080fd5b60006020828403121561168d57600080fd5b61058f82611657565b803563ffffffff811681146103a157600080fd5b6000602082840312156116bc57600080fd5b61058f82611696565b6020808252825182820181905260009190848201906040850190845b8181101561170357835163ffffffff16835292840192918401916001016116e1565b50909695505050505050565b6000806000806060858703121561172557600080fd5b61172e85611696565b935060208501359250604085013567ffffffffffffffff8082111561175257600080fd5b818701915087601f83011261176657600080fd5b81358181111561177557600080fd5b88602082850101111561178757600080fd5b95989497505060200194505050565b600080604083850312156117a957600080fd5b6117b283611696565b91506117c060208401611657565b90509250929050565b600080604083850312156117dc57600080fd5b6117e583611696565b946020939093013593505050565b60008083601f84011261180557600080fd5b50813567ffffffffffffffff81111561181d57600080fd5b6020830191508360208260051b850101111561183857600080fd5b9250929050565b60008060006040848603121561185457600080fd5b61185d84611696565b9250602084013567ffffffffffffffff81111561187957600080fd5b611885868287016117f3565b9497909650939450505050565b600080600080604085870312156118a857600080fd5b843567ffffffffffffffff808211156118c057600080fd5b6118cc888389016117f3565b909650945060208701359150808211156118e557600080fd5b506118f2878288016117f3565b95989497509550505050565b6000806000806080858703121561191457600080fd5b61191d85611657565b935061192b60208601611657565b925061193960408601611657565b915061194760608601611657565b905092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611a1057611a106119b0565b5060010190565b6000815180845260005b81811015611a3d57602081850181015186830182015201611a21565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b60208152600061058f6020830184611a17565b80820180821115610393576103936119b0565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b83811015611b36578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001855281518051845287015187840187905280518785015287015160608401879052611b236080850182611a17565b9588019593505090860190600101611ac8565b509098975050505050505050565b8051602080830151919081101561155f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60209190910360031b1b16919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112611be957600080fd5b90910192915050565b60006060808301878452602060048810611c35577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b87818601526040838187015282878452608093508387019050838860051b8801018960005b8a811015611d67577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808a8403018452611c93828d611bb5565b80358452611ca387820182611bb5565b90508587850152803586850152868101357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1823603018112611ce457600080fd5b01868101903567ffffffffffffffff811115611cff57600080fd5b803603821315611d0e57600080fd5b868a860152808986015260a0818382880137600086830182015295880195601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909401909301925090850190600101611c5a565b50909c9b505050505050505050505050565b63ffffffff841681528260208201526060604082015260006114d96060830184611a17565b600060208284031215611db057600080fd5b5051919050565b60008085851115611dc757600080fd5b83861115611dd457600080fd5b5050820193919092039150565b80356020831015610393577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b6040805190810167ffffffffffffffff81118282101715611e6f57611e6f611952565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611ebc57611ebc611952565b604052919050565b600080600060608486031215611ed957600080fd5b833592506004602085013510611eee57600080fd5b6020840135915067ffffffffffffffff8060408601351115611f0f57600080fd5b6040850135850186601f820112611f2557600080fd5b8181351115611f3657611f36611952565b611f466020823560051b01611e75565b81358082526020808301929160051b840101891015611f6457600080fd5b602083015b6020843560051b8501018110156120a7578481351115611f8857600080fd5b803584017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0604081838e03011215611fbf57600080fd5b611fc7611e4c565b602083013581528760408401351115611fdf57600080fd5b604083013583019250604082848f03011215611ffa57600080fd5b612002611e4c565b60208401358152886040850135111561201a57600080fd5b6040840135840193508d603f85011261203257600080fd5b60208401358981111561204757612047611952565b612058602085601f84011601611e75565b93508084528e604082870101111561206f57600080fd5b806040860160208601376000602082860101525082602082015280602083015250808652505050602083019250602081019050611f69565b50809450505050509250925092565b81810381811115610393576103936119b056fe4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e2e2044696420796f7520737065636966792074686520726967687420646f6d61696e2049443fa264697066735822122075bbed0720f336d8068d6939e4aa081a26783b15980c9af1851e91b1428326f764736f6c63430008110033608060405234801561001057600080fd5b5061001a3361001f565b610071565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610c3d806100806000396000f3fe60806040526004361061005e5760003560e01c80638290459d116100435780638290459d146100965780638da5cb5b146100b6578063f2fde38b146100ef57600080fd5b8063715018a61461006a5780638129fc1c1461008157600080fd5b3661006557005b600080fd5b34801561007657600080fd5b5061007f61010f565b005b34801561008d57600080fd5b5061007f610123565b3480156100a257600080fd5b5061007f6100b136600461085b565b6102ba565b3480156100c257600080fd5b506033546040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156100fb57600080fd5b5061007f61010a3660046108d0565b6102d8565b61011761038c565b610121600061040d565b565b600054610100900460ff16158080156101435750600054600160ff909116105b8061015d5750303b15801561015d575060005460ff166001145b6101ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561024c57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610254610484565b80156102b757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b6102c261038c565b6102d46102cf82846109b4565b610523565b5050565b6102e061038c565b73ffffffffffffffffffffffffffffffffffffffff8116610383576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016101e5565b6102b78161040d565b60335473ffffffffffffffffffffffffffffffffffffffff163314610121576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101e5565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff1661051b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016101e5565b610121610564565b80516000905b8082101561055f5761055383838151811061054657610546610b1e565b6020026020010151610604565b50816001019150610529565b505050565b600054610100900460ff166105fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016101e5565b6101213361040d565b6060610625610616836020015161062b565b60208085015101518451610635565b92915050565b8051600090610625565b606061065b848484604051806060016040528060298152602001610bdf60299139610663565b949350505050565b6060824710156106f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016101e5565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161071e9190610b71565b60006040518083038185875af1925050503d806000811461075b576040519150601f19603f3d011682016040523d82523d6000602084013e610760565b606091505b50915091506107718783838761077c565b979650505050505050565b6060831561081257825160000361080b5773ffffffffffffffffffffffffffffffffffffffff85163b61080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016101e5565b508161065b565b61065b83838151156108275781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101e59190610b8d565b6000806020838503121561086e57600080fd5b823567ffffffffffffffff8082111561088657600080fd5b818501915085601f83011261089a57600080fd5b8135818111156108a957600080fd5b8660208260051b85010111156108be57600080fd5b60209290920196919550909350505050565b6000602082840312156108e257600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461090657600080fd5b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561095f5761095f61090d565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156109ac576109ac61090d565b604052919050565b600067ffffffffffffffff808411156109cf576109cf61090d565b8360051b60206109e0818301610965565b8681529185019181810190368411156109f857600080fd5b865b84811015610b1257803586811115610a125760008081fd5b8801604036829003811315610a275760008081fd5b610a2f61093c565b823581528683013589811115610a455760008081fd5b808401935050818336031215610a5b5760008081fd5b610a6361093c565b9150823582528683013589811115610a7b5760008081fd5b9290920191601f3681850112610a915760008081fd5b83358a811115610aa357610aa361090d565b610ad2897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08484011601610965565b91508082523689828701011115610ae95760008081fd5b808986018a840137600090820189015282880152808701919091528452509183019183016109fa565b50979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60005b83811015610b68578181015183820152602001610b50565b50506000910152565b60008251610b83818460208701610b4d565b9190910192915050565b6020815260008251806020840152610bac816040850160208701610b4d565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a2646970667358221220aa530cbace6cfdc7d21257e2ba6a6267e973362818fa8cbfda86cd3e0e50637764736f6c63430008110033";
15
+ static readonly bytecode = "0x60c06040523480156200001157600080fd5b506040516200002090620000f2565b604051809103906000f0801580156200003d573d6000803e3d6000fd5b506001600160a01b03166080816001600160a01b0316815250506000620000716080516200008360201b62000af81760201c565b805160209091012060a0525062000100565b6040517f3d602d80600a3d3981f3363d3d373d3d3d363d730000000000000000000000006020820152606082811b6001600160601b03191660348301526e5af43d82803e903d91602b57fd5bf360881b6048830152906057016040516020818303038152906040529050919050565b610cbd806200226883390190565b60805160a051612142620001266000396000610ef50152600061063101526121426000f3fe608060405234801561001057600080fd5b506004361061016c5760003560e01c8063c1576692116100cd578063f1bd6f0a11610081578063f3c61d6b11610066578063f3c61d6b14610317578063f6aa16401461032a578063f8c8765e1461033d57600080fd5b8063f1bd6f0a146102f1578063f2fde38b1461030457600080fd5b8063d5438eae116100b2578063d5438eae1461029e578063de523cf3146102be578063e9198bf9146102de57600080fd5b8063c157669214610278578063c27aa6f01461028b57600080fd5b8063715018a611610124578063af27c32111610109578063af27c3211461023f578063b49c53a714610252578063bcd55df21461026557600080fd5b8063715018a6146102195780638da5cb5b1461022157600080fd5b806339bb4ad91161015557806339bb4ad9146101ac578063440df4f4146101f157806356d5d4751461020657600080fd5b80630e72cc06146101715780632ead72f614610186575b600080fd5b61018461017f36600461167b565b610350565b005b6101996101943660046116aa565b610364565b6040519081526020015b60405180910390f35b6066546101cc9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a3565b6101f96103a6565b6040516101a391906116c5565b61018461021436600461170f565b610461565b610184610559565b60335473ffffffffffffffffffffffffffffffffffffffff166101cc565b6101cc61024d366004611796565b61056d565b6101846102603660046117c9565b610596565b6101cc6102733660046117c9565b6105ac565b61019961028636600461183f565b610760565b6101cc6102993660046117c9565b610776565b6065546101cc9073ffffffffffffffffffffffffffffffffffffffff1681565b6067546101cc9073ffffffffffffffffffffffffffffffffffffffff1681565b6101846102ec366004611892565b61078a565b6101846102ff36600461167b565b610867565b61018461031236600461167b565b610878565b61018461032536600461167b565b61092c565b6101cc610338366004611796565b61093d565b61018461034b3660046118fe565b61095f565b610358610b8d565b61036181610c0e565b50565b600061037a609863ffffffff80851690610d1c16565b1561039957610393609863ffffffff80851690610d2816565b92915050565b506000919050565b919050565b609880546060919060009067ffffffffffffffff8111156103c9576103c9611952565b6040519080825280602002602001820160405280156103f2578160200160208202803683370190505b50905060005b825481101561045a5782818154811061041357610413611981565b906000526020600020015460001c82828151811061043357610433611981565b63ffffffff9092166020928302919091019091015280610452816119df565b9150506103f8565b5092915050565b60655473ffffffffffffffffffffffffffffffffffffffff1633146104e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f216d61696c626f7800000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b83836104f38282610d34565b6040518060800160405280604381526020016120ca6043913990610544576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104de9190611a7b565b5061055186868686610d48565b505050505050565b610561610b8d565b61056b6000610dd5565b565b600061058f8373ffffffffffffffffffffffffffffffffffffffff84166105ac565b9392505050565b61059e610b8d565b6105a88282610e4c565b5050565b6000806105b98484610e99565b905060006105c682610eed565b905073ffffffffffffffffffffffffffffffffffffffff81163b61075857604080517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000060208201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060601b1660348201527f5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000604882015281516037818303018152605790910190915261069d60008483610f19565b6040805187815273ffffffffffffffffffffffffffffffffffffffff8316602082015291935063ffffffff8816917fde1295e6ee7fa8af4d952ebc0104c855dfdf2ad9e1d0bcc7d61d50892ef275c5910160405180910390a28173ffffffffffffffffffffffffffffffffffffffff16638129fc1c6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561073e57600080fd5b505af1158015610752573d6000803e3d6000fd5b50505050505b949350505050565b600061075884610771858533611078565b6110aa565b600061058f6107858484610e99565b610eed565b610792610b8d565b8281146107fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064016104de565b60005b838110156108605761084e85858381811061081b5761081b611981565b905060200201602081019061083091906116aa565b84848481811061084257610842611981565b90506020020135610e4c565b610859600182611a8e565b90506107fe565b5050505050565b61086f610b8d565b61036181611154565b610880610b8d565b73ffffffffffffffffffffffffffffffffffffffff8116610923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104de565b61036181610dd5565b610934610b8d565b61036181611243565b600061058f8373ffffffffffffffffffffffffffffffffffffffff8416610776565b600054610100900460ff161580801561097f5750600054600160ff909116105b806109995750303b158015610999575060005460ff166001145b610a25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016104de565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610a8357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610a8f85858585611332565b801561086057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6040517f3d602d80600a3d3981f3363d3d373d3d3d363d730000000000000000000000006020820152606082811b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660348301527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006048830152906057016040516020818303038152906040529050919050565b60335473ffffffffffffffffffffffffffffffffffffffff16331461056b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104de565b73ffffffffffffffffffffffffffffffffffffffff81161580610c47575073ffffffffffffffffffffffffffffffffffffffff81163b15155b610cad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016104de565b606780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517ffec811ed4e60aebdaf7a79cad8a97196bf56e35362f039705598226d30c9d24890600090a250565b600061058f83836113f3565b600061058f83836113ff565b600081610d4084610364565b149392505050565b6000610d58856102738585611489565b90508073ffffffffffffffffffffffffffffffffffffffff16638290459d610d8085856114a1565b6040518263ffffffff1660e01b8152600401610d9c9190611aa1565b600060405180830381600087803b158015610db657600080fd5b505af1158015610dca573d6000803e3d6000fd5b505050505050505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610e62609863ffffffff8085169084906114e216565b604051819063ffffffff8416907f97fd51fef1f80c854cbd0150c248e8b2ac4ecdc97cc05e742b5f61c9f4dc645890600090a35050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1660208201526024810182905260009060440160405160208183030381529060405261058f90611b44565b6000610393827f00000000000000000000000000000000000000000000000000000000000000006114ed565b600083471015610f85576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e636500000060448201526064016104de565b8151600003610ff0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f60448201526064016104de565b8282516020840186f5905073ffffffffffffffffffffffffffffffffffffffff811661058f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f790000000000000060448201526064016104de565b606081600085856040516020016110929493929190611bf2565b60405160208183030381529060405290509392505050565b6000806110b6846114fa565b6065546040517ffa31de0100000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff169063fa31de019061111190879085908890600401611d79565b6020604051808303816000875af1158015611130573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107589190611d9e565b8073ffffffffffffffffffffffffffffffffffffffff81163b6111d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016104de565b606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517fb87f5a0bface22cde699143559fb99f990ae54eea236995fc54178af91af859f90600090a25050565b8073ffffffffffffffffffffffffffffffffffffffff81163b6112c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016104de565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517f7a61e573722ff8b205c8962b59d37e7d30573f368965597a844a94872204ebd790600090a25050565b600054610100900460ff166113c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016104de565b6113d284611243565b6113db83611154565b6113e482610c0e565b6113ed81610dd5565b50505050565b600061058f8383611565565b600081815260028301602052604081205480151580611423575061142384846113f3565b61058f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579000060448201526064016104de565b60006114986020828486611db7565b61058f91611de1565b606060006114af848461157d565b60038111156114c0576114c0611b86565b146114cd576114cd611e1d565b6114d982840184611ec4565b95945050505050565b6113ed8383836115b7565b600061058f8383306115d4565b600061150582610364565b90506000801b8114156040518060800160405280604381526020016120ca604391399061155f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104de9190611a7b565b50919050565b6000818152600183016020526040812054151561058f565b6000828261158d600160406120b6565b81811061159c5761159c611981565b919091013560f81c9050600381111561058f5761058f611b86565b6000828152600284016020526040812082905561075884846115fe565b6000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b600081815260018301602052604081205461058f9084908490849061164f57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610393565b506000610393565b803573ffffffffffffffffffffffffffffffffffffffff811681146103a157600080fd5b60006020828403121561168d57600080fd5b61058f82611657565b803563ffffffff811681146103a157600080fd5b6000602082840312156116bc57600080fd5b61058f82611696565b6020808252825182820181905260009190848201906040850190845b8181101561170357835163ffffffff16835292840192918401916001016116e1565b50909695505050505050565b6000806000806060858703121561172557600080fd5b61172e85611696565b935060208501359250604085013567ffffffffffffffff8082111561175257600080fd5b818701915087601f83011261176657600080fd5b81358181111561177557600080fd5b88602082850101111561178757600080fd5b95989497505060200194505050565b600080604083850312156117a957600080fd5b6117b283611696565b91506117c060208401611657565b90509250929050565b600080604083850312156117dc57600080fd5b6117e583611696565b946020939093013593505050565b60008083601f84011261180557600080fd5b50813567ffffffffffffffff81111561181d57600080fd5b6020830191508360208260051b850101111561183857600080fd5b9250929050565b60008060006040848603121561185457600080fd5b61185d84611696565b9250602084013567ffffffffffffffff81111561187957600080fd5b611885868287016117f3565b9497909650939450505050565b600080600080604085870312156118a857600080fd5b843567ffffffffffffffff808211156118c057600080fd5b6118cc888389016117f3565b909650945060208701359150808211156118e557600080fd5b506118f2878288016117f3565b95989497509550505050565b6000806000806080858703121561191457600080fd5b61191d85611657565b935061192b60208601611657565b925061193960408601611657565b915061194760608601611657565b905092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611a1057611a106119b0565b5060010190565b6000815180845260005b81811015611a3d57602081850181015186830182015201611a21565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b60208152600061058f6020830184611a17565b80820180821115610393576103936119b0565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b83811015611b36578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001855281518051845287015187840187905280518785015287015160608401879052611b236080850182611a17565b9588019593505090860190600101611ac8565b509098975050505050505050565b8051602080830151919081101561155f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60209190910360031b1b16919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112611be957600080fd5b90910192915050565b60006060808301878452602060048810611c35577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b87818601526040838187015282878452608093508387019050838860051b8801018960005b8a811015611d67577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808a8403018452611c93828d611bb5565b80358452611ca387820182611bb5565b90508587850152803586850152868101357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1823603018112611ce457600080fd5b01868101903567ffffffffffffffff811115611cff57600080fd5b803603821315611d0e57600080fd5b868a860152808986015260a0818382880137600086830182015295880195601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909401909301925090850190600101611c5a565b50909c9b505050505050505050505050565b63ffffffff841681528260208201526060604082015260006114d96060830184611a17565b600060208284031215611db057600080fd5b5051919050565b60008085851115611dc757600080fd5b83861115611dd457600080fd5b5050820193919092039150565b80356020831015610393577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b6040805190810167ffffffffffffffff81118282101715611e6f57611e6f611952565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611ebc57611ebc611952565b604052919050565b600080600060608486031215611ed957600080fd5b833592506004602085013510611eee57600080fd5b6020840135915067ffffffffffffffff8060408601351115611f0f57600080fd5b6040850135850186601f820112611f2557600080fd5b8181351115611f3657611f36611952565b611f466020823560051b01611e75565b81358082526020808301929160051b840101891015611f6457600080fd5b602083015b6020843560051b8501018110156120a7578481351115611f8857600080fd5b803584017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0604081838e03011215611fbf57600080fd5b611fc7611e4c565b602083013581528760408401351115611fdf57600080fd5b604083013583019250604082848f03011215611ffa57600080fd5b612002611e4c565b60208401358152886040850135111561201a57600080fd5b6040840135840193508d603f85011261203257600080fd5b60208401358981111561204757612047611952565b612058602085601f84011601611e75565b93508084528e604082870101111561206f57600080fd5b806040860160208601376000602082860101525082602082015280602083015250808652505050602083019250602081019050611f69565b50809450505050509250925092565b81810381811115610393576103936119b056fe4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e2e2044696420796f7520737065636966792074686520726967687420646f6d61696e2049443fa2646970667358221220810eda07d684ce7f448d64815e84e18e5584fc4e8da2098616650279adc265e164736f6c63430008110033608060405234801561001057600080fd5b5061001a3361001f565b610071565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610c3d806100806000396000f3fe60806040526004361061005e5760003560e01c80638290459d116100435780638290459d146100965780638da5cb5b146100b6578063f2fde38b146100ef57600080fd5b8063715018a61461006a5780638129fc1c1461008157600080fd5b3661006557005b600080fd5b34801561007657600080fd5b5061007f61010f565b005b34801561008d57600080fd5b5061007f610123565b3480156100a257600080fd5b5061007f6100b136600461085b565b6102ba565b3480156100c257600080fd5b506033546040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156100fb57600080fd5b5061007f61010a3660046108d0565b6102d8565b61011761038c565b610121600061040d565b565b600054610100900460ff16158080156101435750600054600160ff909116105b8061015d5750303b15801561015d575060005460ff166001145b6101ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561024c57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610254610484565b80156102b757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b6102c261038c565b6102d46102cf82846109b4565b610523565b5050565b6102e061038c565b73ffffffffffffffffffffffffffffffffffffffff8116610383576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016101e5565b6102b78161040d565b60335473ffffffffffffffffffffffffffffffffffffffff163314610121576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101e5565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff1661051b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016101e5565b610121610564565b80516000905b8082101561055f5761055383838151811061054657610546610b1e565b6020026020010151610604565b50816001019150610529565b505050565b600054610100900460ff166105fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016101e5565b6101213361040d565b6060610625610616836020015161062b565b60208085015101518451610635565b92915050565b8051600090610625565b606061065b848484604051806060016040528060298152602001610bdf60299139610663565b949350505050565b6060824710156106f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016101e5565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161071e9190610b71565b60006040518083038185875af1925050503d806000811461075b576040519150601f19603f3d011682016040523d82523d6000602084013e610760565b606091505b50915091506107718783838761077c565b979650505050505050565b6060831561081257825160000361080b5773ffffffffffffffffffffffffffffffffffffffff85163b61080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016101e5565b508161065b565b61065b83838151156108275781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101e59190610b8d565b6000806020838503121561086e57600080fd5b823567ffffffffffffffff8082111561088657600080fd5b818501915085601f83011261089a57600080fd5b8135818111156108a957600080fd5b8660208260051b85010111156108be57600080fd5b60209290920196919550909350505050565b6000602082840312156108e257600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461090657600080fd5b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561095f5761095f61090d565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156109ac576109ac61090d565b604052919050565b600067ffffffffffffffff808411156109cf576109cf61090d565b8360051b60206109e0818301610965565b8681529185019181810190368411156109f857600080fd5b865b84811015610b1257803586811115610a125760008081fd5b8801604036829003811315610a275760008081fd5b610a2f61093c565b823581528683013589811115610a455760008081fd5b808401935050818336031215610a5b5760008081fd5b610a6361093c565b9150823582528683013589811115610a7b5760008081fd5b9290920191601f3681850112610a915760008081fd5b83358a811115610aa357610aa361090d565b610ad2897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08484011601610965565b91508082523689828701011115610ae95760008081fd5b808986018a840137600090820189015282880152808701919091528452509183019183016109fa565b50979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60005b83811015610b68578181015183820152602001610b50565b50506000910152565b60008251610b83818460208701610b4d565b9190910192915050565b6020815260008251806020840152610bac816040850160208701610b4d565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a2646970667358221220aa530cbace6cfdc7d21257e2ba6a6267e973362818fa8cbfda86cd3e0e50637764736f6c63430008110033";
16
16
  static readonly abi: ({
17
17
  inputs: never[];
18
18
  stateMutability: string;
@@ -499,7 +499,7 @@ const _abi = [
499
499
  type: "function",
500
500
  },
501
501
  ];
502
- const _bytecode = "0x60c06040523480156200001157600080fd5b506040516200002090620000f2565b604051809103906000f0801580156200003d573d6000803e3d6000fd5b506001600160a01b03166080816001600160a01b0316815250506000620000716080516200008360201b62000af81760201c565b805160209091012060a0525062000100565b6040517f3d602d80600a3d3981f3363d3d373d3d3d363d730000000000000000000000006020820152606082811b6001600160601b03191660348301526e5af43d82803e903d91602b57fd5bf360881b6048830152906057016040516020818303038152906040529050919050565b610cbd806200226883390190565b60805160a051612142620001266000396000610ef50152600061063101526121426000f3fe608060405234801561001057600080fd5b506004361061016c5760003560e01c8063c1576692116100cd578063f1bd6f0a11610081578063f3c61d6b11610066578063f3c61d6b14610317578063f6aa16401461032a578063f8c8765e1461033d57600080fd5b8063f1bd6f0a146102f1578063f2fde38b1461030457600080fd5b8063d5438eae116100b2578063d5438eae1461029e578063de523cf3146102be578063e9198bf9146102de57600080fd5b8063c157669214610278578063c27aa6f01461028b57600080fd5b8063715018a611610124578063af27c32111610109578063af27c3211461023f578063b49c53a714610252578063bcd55df21461026557600080fd5b8063715018a6146102195780638da5cb5b1461022157600080fd5b806339bb4ad91161015557806339bb4ad9146101ac578063440df4f4146101f157806356d5d4751461020657600080fd5b80630e72cc06146101715780632ead72f614610186575b600080fd5b61018461017f36600461167b565b610350565b005b6101996101943660046116aa565b610364565b6040519081526020015b60405180910390f35b6066546101cc9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a3565b6101f96103a6565b6040516101a391906116c5565b61018461021436600461170f565b610461565b610184610559565b60335473ffffffffffffffffffffffffffffffffffffffff166101cc565b6101cc61024d366004611796565b61056d565b6101846102603660046117c9565b610596565b6101cc6102733660046117c9565b6105ac565b61019961028636600461183f565b610760565b6101cc6102993660046117c9565b610776565b6065546101cc9073ffffffffffffffffffffffffffffffffffffffff1681565b6067546101cc9073ffffffffffffffffffffffffffffffffffffffff1681565b6101846102ec366004611892565b61078a565b6101846102ff36600461167b565b610867565b61018461031236600461167b565b610878565b61018461032536600461167b565b61092c565b6101cc610338366004611796565b61093d565b61018461034b3660046118fe565b61095f565b610358610b8d565b61036181610c0e565b50565b600061037a609863ffffffff80851690610d1c16565b1561039957610393609863ffffffff80851690610d2816565b92915050565b506000919050565b919050565b609880546060919060009067ffffffffffffffff8111156103c9576103c9611952565b6040519080825280602002602001820160405280156103f2578160200160208202803683370190505b50905060005b825481101561045a5782818154811061041357610413611981565b906000526020600020015460001c82828151811061043357610433611981565b63ffffffff9092166020928302919091019091015280610452816119df565b9150506103f8565b5092915050565b60655473ffffffffffffffffffffffffffffffffffffffff1633146104e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f216d61696c626f7800000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b83836104f38282610d34565b6040518060800160405280604381526020016120ca6043913990610544576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104de9190611a7b565b5061055186868686610d48565b505050505050565b610561610b8d565b61056b6000610dd5565b565b600061058f8373ffffffffffffffffffffffffffffffffffffffff84166105ac565b9392505050565b61059e610b8d565b6105a88282610e4c565b5050565b6000806105b98484610e99565b905060006105c682610eed565b905073ffffffffffffffffffffffffffffffffffffffff81163b61075857604080517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000060208201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060601b1660348201527f5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000604882015281516037818303018152605790910190915261069d60008483610f19565b6040805187815273ffffffffffffffffffffffffffffffffffffffff8316602082015291935063ffffffff8816917fde1295e6ee7fa8af4d952ebc0104c855dfdf2ad9e1d0bcc7d61d50892ef275c5910160405180910390a28173ffffffffffffffffffffffffffffffffffffffff16638129fc1c6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561073e57600080fd5b505af1158015610752573d6000803e3d6000fd5b50505050505b949350505050565b600061075884610771858533611078565b6110aa565b600061058f6107858484610e99565b610eed565b610792610b8d565b8281146107fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064016104de565b60005b838110156108605761084e85858381811061081b5761081b611981565b905060200201602081019061083091906116aa565b84848481811061084257610842611981565b90506020020135610e4c565b610859600182611a8e565b90506107fe565b5050505050565b61086f610b8d565b61036181611154565b610880610b8d565b73ffffffffffffffffffffffffffffffffffffffff8116610923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104de565b61036181610dd5565b610934610b8d565b61036181611243565b600061058f8373ffffffffffffffffffffffffffffffffffffffff8416610776565b600054610100900460ff161580801561097f5750600054600160ff909116105b806109995750303b158015610999575060005460ff166001145b610a25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016104de565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610a8357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610a8f85858585611332565b801561086057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6040517f3d602d80600a3d3981f3363d3d373d3d3d363d730000000000000000000000006020820152606082811b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660348301527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006048830152906057016040516020818303038152906040529050919050565b60335473ffffffffffffffffffffffffffffffffffffffff16331461056b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104de565b73ffffffffffffffffffffffffffffffffffffffff81161580610c47575073ffffffffffffffffffffffffffffffffffffffff81163b15155b610cad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016104de565b606780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517ffec811ed4e60aebdaf7a79cad8a97196bf56e35362f039705598226d30c9d24890600090a250565b600061058f83836113f3565b600061058f83836113ff565b600081610d4084610364565b149392505050565b6000610d58856102738585611489565b90508073ffffffffffffffffffffffffffffffffffffffff16638290459d610d8085856114a1565b6040518263ffffffff1660e01b8152600401610d9c9190611aa1565b600060405180830381600087803b158015610db657600080fd5b505af1158015610dca573d6000803e3d6000fd5b505050505050505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610e62609863ffffffff8085169084906114e216565b604051819063ffffffff8416907f97fd51fef1f80c854cbd0150c248e8b2ac4ecdc97cc05e742b5f61c9f4dc645890600090a35050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1660208201526024810182905260009060440160405160208183030381529060405261058f90611b44565b6000610393827f00000000000000000000000000000000000000000000000000000000000000006114ed565b600083471015610f85576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e636500000060448201526064016104de565b8151600003610ff0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f60448201526064016104de565b8282516020840186f5905073ffffffffffffffffffffffffffffffffffffffff811661058f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f790000000000000060448201526064016104de565b606081600085856040516020016110929493929190611bf2565b60405160208183030381529060405290509392505050565b6000806110b6846114fa565b6065546040517ffa31de0100000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff169063fa31de019061111190879085908890600401611d79565b6020604051808303816000875af1158015611130573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107589190611d9e565b8073ffffffffffffffffffffffffffffffffffffffff81163b6111d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016104de565b606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517fb87f5a0bface22cde699143559fb99f990ae54eea236995fc54178af91af859f90600090a25050565b8073ffffffffffffffffffffffffffffffffffffffff81163b6112c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016104de565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517f7a61e573722ff8b205c8962b59d37e7d30573f368965597a844a94872204ebd790600090a25050565b600054610100900460ff166113c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016104de565b6113d284611243565b6113db83611154565b6113e482610c0e565b6113ed81610dd5565b50505050565b600061058f8383611565565b600081815260028301602052604081205480151580611423575061142384846113f3565b61058f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579000060448201526064016104de565b60006114986020828486611db7565b61058f91611de1565b606060006114af848461157d565b60038111156114c0576114c0611b86565b146114cd576114cd611e1d565b6114d982840184611ec4565b95945050505050565b6113ed8383836115b7565b600061058f8383306115d4565b600061150582610364565b90506000801b8114156040518060800160405280604381526020016120ca604391399061155f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104de9190611a7b565b50919050565b6000818152600183016020526040812054151561058f565b6000828261158d600160406120b6565b81811061159c5761159c611981565b919091013560f81c9050600381111561058f5761058f611b86565b6000828152600284016020526040812082905561075884846115fe565b6000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b600081815260018301602052604081205461058f9084908490849061164f57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610393565b506000610393565b803573ffffffffffffffffffffffffffffffffffffffff811681146103a157600080fd5b60006020828403121561168d57600080fd5b61058f82611657565b803563ffffffff811681146103a157600080fd5b6000602082840312156116bc57600080fd5b61058f82611696565b6020808252825182820181905260009190848201906040850190845b8181101561170357835163ffffffff16835292840192918401916001016116e1565b50909695505050505050565b6000806000806060858703121561172557600080fd5b61172e85611696565b935060208501359250604085013567ffffffffffffffff8082111561175257600080fd5b818701915087601f83011261176657600080fd5b81358181111561177557600080fd5b88602082850101111561178757600080fd5b95989497505060200194505050565b600080604083850312156117a957600080fd5b6117b283611696565b91506117c060208401611657565b90509250929050565b600080604083850312156117dc57600080fd5b6117e583611696565b946020939093013593505050565b60008083601f84011261180557600080fd5b50813567ffffffffffffffff81111561181d57600080fd5b6020830191508360208260051b850101111561183857600080fd5b9250929050565b60008060006040848603121561185457600080fd5b61185d84611696565b9250602084013567ffffffffffffffff81111561187957600080fd5b611885868287016117f3565b9497909650939450505050565b600080600080604085870312156118a857600080fd5b843567ffffffffffffffff808211156118c057600080fd5b6118cc888389016117f3565b909650945060208701359150808211156118e557600080fd5b506118f2878288016117f3565b95989497509550505050565b6000806000806080858703121561191457600080fd5b61191d85611657565b935061192b60208601611657565b925061193960408601611657565b915061194760608601611657565b905092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611a1057611a106119b0565b5060010190565b6000815180845260005b81811015611a3d57602081850181015186830182015201611a21565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b60208152600061058f6020830184611a17565b80820180821115610393576103936119b0565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b83811015611b36578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001855281518051845287015187840187905280518785015287015160608401879052611b236080850182611a17565b9588019593505090860190600101611ac8565b509098975050505050505050565b8051602080830151919081101561155f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60209190910360031b1b16919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112611be957600080fd5b90910192915050565b60006060808301878452602060048810611c35577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b87818601526040838187015282878452608093508387019050838860051b8801018960005b8a811015611d67577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808a8403018452611c93828d611bb5565b80358452611ca387820182611bb5565b90508587850152803586850152868101357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1823603018112611ce457600080fd5b01868101903567ffffffffffffffff811115611cff57600080fd5b803603821315611d0e57600080fd5b868a860152808986015260a0818382880137600086830182015295880195601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909401909301925090850190600101611c5a565b50909c9b505050505050505050505050565b63ffffffff841681528260208201526060604082015260006114d96060830184611a17565b600060208284031215611db057600080fd5b5051919050565b60008085851115611dc757600080fd5b83861115611dd457600080fd5b5050820193919092039150565b80356020831015610393577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b6040805190810167ffffffffffffffff81118282101715611e6f57611e6f611952565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611ebc57611ebc611952565b604052919050565b600080600060608486031215611ed957600080fd5b833592506004602085013510611eee57600080fd5b6020840135915067ffffffffffffffff8060408601351115611f0f57600080fd5b6040850135850186601f820112611f2557600080fd5b8181351115611f3657611f36611952565b611f466020823560051b01611e75565b81358082526020808301929160051b840101891015611f6457600080fd5b602083015b6020843560051b8501018110156120a7578481351115611f8857600080fd5b803584017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0604081838e03011215611fbf57600080fd5b611fc7611e4c565b602083013581528760408401351115611fdf57600080fd5b604083013583019250604082848f03011215611ffa57600080fd5b612002611e4c565b60208401358152886040850135111561201a57600080fd5b6040840135840193508d603f85011261203257600080fd5b60208401358981111561204757612047611952565b612058602085601f84011601611e75565b93508084528e604082870101111561206f57600080fd5b806040860160208601376000602082860101525082602082015280602083015250808652505050602083019250602081019050611f69565b50809450505050509250925092565b81810381811115610393576103936119b056fe4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e2e2044696420796f7520737065636966792074686520726967687420646f6d61696e2049443fa264697066735822122075bbed0720f336d8068d6939e4aa081a26783b15980c9af1851e91b1428326f764736f6c63430008110033608060405234801561001057600080fd5b5061001a3361001f565b610071565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610c3d806100806000396000f3fe60806040526004361061005e5760003560e01c80638290459d116100435780638290459d146100965780638da5cb5b146100b6578063f2fde38b146100ef57600080fd5b8063715018a61461006a5780638129fc1c1461008157600080fd5b3661006557005b600080fd5b34801561007657600080fd5b5061007f61010f565b005b34801561008d57600080fd5b5061007f610123565b3480156100a257600080fd5b5061007f6100b136600461085b565b6102ba565b3480156100c257600080fd5b506033546040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156100fb57600080fd5b5061007f61010a3660046108d0565b6102d8565b61011761038c565b610121600061040d565b565b600054610100900460ff16158080156101435750600054600160ff909116105b8061015d5750303b15801561015d575060005460ff166001145b6101ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561024c57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610254610484565b80156102b757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b6102c261038c565b6102d46102cf82846109b4565b610523565b5050565b6102e061038c565b73ffffffffffffffffffffffffffffffffffffffff8116610383576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016101e5565b6102b78161040d565b60335473ffffffffffffffffffffffffffffffffffffffff163314610121576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101e5565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff1661051b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016101e5565b610121610564565b80516000905b8082101561055f5761055383838151811061054657610546610b1e565b6020026020010151610604565b50816001019150610529565b505050565b600054610100900460ff166105fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016101e5565b6101213361040d565b6060610625610616836020015161062b565b60208085015101518451610635565b92915050565b8051600090610625565b606061065b848484604051806060016040528060298152602001610bdf60299139610663565b949350505050565b6060824710156106f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016101e5565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161071e9190610b71565b60006040518083038185875af1925050503d806000811461075b576040519150601f19603f3d011682016040523d82523d6000602084013e610760565b606091505b50915091506107718783838761077c565b979650505050505050565b6060831561081257825160000361080b5773ffffffffffffffffffffffffffffffffffffffff85163b61080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016101e5565b508161065b565b61065b83838151156108275781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101e59190610b8d565b6000806020838503121561086e57600080fd5b823567ffffffffffffffff8082111561088657600080fd5b818501915085601f83011261089a57600080fd5b8135818111156108a957600080fd5b8660208260051b85010111156108be57600080fd5b60209290920196919550909350505050565b6000602082840312156108e257600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461090657600080fd5b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561095f5761095f61090d565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156109ac576109ac61090d565b604052919050565b600067ffffffffffffffff808411156109cf576109cf61090d565b8360051b60206109e0818301610965565b8681529185019181810190368411156109f857600080fd5b865b84811015610b1257803586811115610a125760008081fd5b8801604036829003811315610a275760008081fd5b610a2f61093c565b823581528683013589811115610a455760008081fd5b808401935050818336031215610a5b5760008081fd5b610a6361093c565b9150823582528683013589811115610a7b5760008081fd5b9290920191601f3681850112610a915760008081fd5b83358a811115610aa357610aa361090d565b610ad2897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08484011601610965565b91508082523689828701011115610ae95760008081fd5b808986018a840137600090820189015282880152808701919091528452509183019183016109fa565b50979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60005b83811015610b68578181015183820152602001610b50565b50506000910152565b60008251610b83818460208701610b4d565b9190910192915050565b6020815260008251806020840152610bac816040850160208701610b4d565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a2646970667358221220aa530cbace6cfdc7d21257e2ba6a6267e973362818fa8cbfda86cd3e0e50637764736f6c63430008110033";
502
+ const _bytecode = "0x60c06040523480156200001157600080fd5b506040516200002090620000f2565b604051809103906000f0801580156200003d573d6000803e3d6000fd5b506001600160a01b03166080816001600160a01b0316815250506000620000716080516200008360201b62000af81760201c565b805160209091012060a0525062000100565b6040517f3d602d80600a3d3981f3363d3d373d3d3d363d730000000000000000000000006020820152606082811b6001600160601b03191660348301526e5af43d82803e903d91602b57fd5bf360881b6048830152906057016040516020818303038152906040529050919050565b610cbd806200226883390190565b60805160a051612142620001266000396000610ef50152600061063101526121426000f3fe608060405234801561001057600080fd5b506004361061016c5760003560e01c8063c1576692116100cd578063f1bd6f0a11610081578063f3c61d6b11610066578063f3c61d6b14610317578063f6aa16401461032a578063f8c8765e1461033d57600080fd5b8063f1bd6f0a146102f1578063f2fde38b1461030457600080fd5b8063d5438eae116100b2578063d5438eae1461029e578063de523cf3146102be578063e9198bf9146102de57600080fd5b8063c157669214610278578063c27aa6f01461028b57600080fd5b8063715018a611610124578063af27c32111610109578063af27c3211461023f578063b49c53a714610252578063bcd55df21461026557600080fd5b8063715018a6146102195780638da5cb5b1461022157600080fd5b806339bb4ad91161015557806339bb4ad9146101ac578063440df4f4146101f157806356d5d4751461020657600080fd5b80630e72cc06146101715780632ead72f614610186575b600080fd5b61018461017f36600461167b565b610350565b005b6101996101943660046116aa565b610364565b6040519081526020015b60405180910390f35b6066546101cc9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a3565b6101f96103a6565b6040516101a391906116c5565b61018461021436600461170f565b610461565b610184610559565b60335473ffffffffffffffffffffffffffffffffffffffff166101cc565b6101cc61024d366004611796565b61056d565b6101846102603660046117c9565b610596565b6101cc6102733660046117c9565b6105ac565b61019961028636600461183f565b610760565b6101cc6102993660046117c9565b610776565b6065546101cc9073ffffffffffffffffffffffffffffffffffffffff1681565b6067546101cc9073ffffffffffffffffffffffffffffffffffffffff1681565b6101846102ec366004611892565b61078a565b6101846102ff36600461167b565b610867565b61018461031236600461167b565b610878565b61018461032536600461167b565b61092c565b6101cc610338366004611796565b61093d565b61018461034b3660046118fe565b61095f565b610358610b8d565b61036181610c0e565b50565b600061037a609863ffffffff80851690610d1c16565b1561039957610393609863ffffffff80851690610d2816565b92915050565b506000919050565b919050565b609880546060919060009067ffffffffffffffff8111156103c9576103c9611952565b6040519080825280602002602001820160405280156103f2578160200160208202803683370190505b50905060005b825481101561045a5782818154811061041357610413611981565b906000526020600020015460001c82828151811061043357610433611981565b63ffffffff9092166020928302919091019091015280610452816119df565b9150506103f8565b5092915050565b60655473ffffffffffffffffffffffffffffffffffffffff1633146104e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f216d61696c626f7800000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b83836104f38282610d34565b6040518060800160405280604381526020016120ca6043913990610544576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104de9190611a7b565b5061055186868686610d48565b505050505050565b610561610b8d565b61056b6000610dd5565b565b600061058f8373ffffffffffffffffffffffffffffffffffffffff84166105ac565b9392505050565b61059e610b8d565b6105a88282610e4c565b5050565b6000806105b98484610e99565b905060006105c682610eed565b905073ffffffffffffffffffffffffffffffffffffffff81163b61075857604080517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000060208201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060601b1660348201527f5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000604882015281516037818303018152605790910190915261069d60008483610f19565b6040805187815273ffffffffffffffffffffffffffffffffffffffff8316602082015291935063ffffffff8816917fde1295e6ee7fa8af4d952ebc0104c855dfdf2ad9e1d0bcc7d61d50892ef275c5910160405180910390a28173ffffffffffffffffffffffffffffffffffffffff16638129fc1c6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561073e57600080fd5b505af1158015610752573d6000803e3d6000fd5b50505050505b949350505050565b600061075884610771858533611078565b6110aa565b600061058f6107858484610e99565b610eed565b610792610b8d565b8281146107fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064016104de565b60005b838110156108605761084e85858381811061081b5761081b611981565b905060200201602081019061083091906116aa565b84848481811061084257610842611981565b90506020020135610e4c565b610859600182611a8e565b90506107fe565b5050505050565b61086f610b8d565b61036181611154565b610880610b8d565b73ffffffffffffffffffffffffffffffffffffffff8116610923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104de565b61036181610dd5565b610934610b8d565b61036181611243565b600061058f8373ffffffffffffffffffffffffffffffffffffffff8416610776565b600054610100900460ff161580801561097f5750600054600160ff909116105b806109995750303b158015610999575060005460ff166001145b610a25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016104de565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610a8357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610a8f85858585611332565b801561086057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6040517f3d602d80600a3d3981f3363d3d373d3d3d363d730000000000000000000000006020820152606082811b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660348301527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006048830152906057016040516020818303038152906040529050919050565b60335473ffffffffffffffffffffffffffffffffffffffff16331461056b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104de565b73ffffffffffffffffffffffffffffffffffffffff81161580610c47575073ffffffffffffffffffffffffffffffffffffffff81163b15155b610cad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016104de565b606780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517ffec811ed4e60aebdaf7a79cad8a97196bf56e35362f039705598226d30c9d24890600090a250565b600061058f83836113f3565b600061058f83836113ff565b600081610d4084610364565b149392505050565b6000610d58856102738585611489565b90508073ffffffffffffffffffffffffffffffffffffffff16638290459d610d8085856114a1565b6040518263ffffffff1660e01b8152600401610d9c9190611aa1565b600060405180830381600087803b158015610db657600080fd5b505af1158015610dca573d6000803e3d6000fd5b505050505050505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610e62609863ffffffff8085169084906114e216565b604051819063ffffffff8416907f97fd51fef1f80c854cbd0150c248e8b2ac4ecdc97cc05e742b5f61c9f4dc645890600090a35050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1660208201526024810182905260009060440160405160208183030381529060405261058f90611b44565b6000610393827f00000000000000000000000000000000000000000000000000000000000000006114ed565b600083471015610f85576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e636500000060448201526064016104de565b8151600003610ff0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f60448201526064016104de565b8282516020840186f5905073ffffffffffffffffffffffffffffffffffffffff811661058f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f790000000000000060448201526064016104de565b606081600085856040516020016110929493929190611bf2565b60405160208183030381529060405290509392505050565b6000806110b6846114fa565b6065546040517ffa31de0100000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff169063fa31de019061111190879085908890600401611d79565b6020604051808303816000875af1158015611130573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107589190611d9e565b8073ffffffffffffffffffffffffffffffffffffffff81163b6111d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016104de565b606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517fb87f5a0bface22cde699143559fb99f990ae54eea236995fc54178af91af859f90600090a25050565b8073ffffffffffffffffffffffffffffffffffffffff81163b6112c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016104de565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517f7a61e573722ff8b205c8962b59d37e7d30573f368965597a844a94872204ebd790600090a25050565b600054610100900460ff166113c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016104de565b6113d284611243565b6113db83611154565b6113e482610c0e565b6113ed81610dd5565b50505050565b600061058f8383611565565b600081815260028301602052604081205480151580611423575061142384846113f3565b61058f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579000060448201526064016104de565b60006114986020828486611db7565b61058f91611de1565b606060006114af848461157d565b60038111156114c0576114c0611b86565b146114cd576114cd611e1d565b6114d982840184611ec4565b95945050505050565b6113ed8383836115b7565b600061058f8383306115d4565b600061150582610364565b90506000801b8114156040518060800160405280604381526020016120ca604391399061155f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104de9190611a7b565b50919050565b6000818152600183016020526040812054151561058f565b6000828261158d600160406120b6565b81811061159c5761159c611981565b919091013560f81c9050600381111561058f5761058f611b86565b6000828152600284016020526040812082905561075884846115fe565b6000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b600081815260018301602052604081205461058f9084908490849061164f57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610393565b506000610393565b803573ffffffffffffffffffffffffffffffffffffffff811681146103a157600080fd5b60006020828403121561168d57600080fd5b61058f82611657565b803563ffffffff811681146103a157600080fd5b6000602082840312156116bc57600080fd5b61058f82611696565b6020808252825182820181905260009190848201906040850190845b8181101561170357835163ffffffff16835292840192918401916001016116e1565b50909695505050505050565b6000806000806060858703121561172557600080fd5b61172e85611696565b935060208501359250604085013567ffffffffffffffff8082111561175257600080fd5b818701915087601f83011261176657600080fd5b81358181111561177557600080fd5b88602082850101111561178757600080fd5b95989497505060200194505050565b600080604083850312156117a957600080fd5b6117b283611696565b91506117c060208401611657565b90509250929050565b600080604083850312156117dc57600080fd5b6117e583611696565b946020939093013593505050565b60008083601f84011261180557600080fd5b50813567ffffffffffffffff81111561181d57600080fd5b6020830191508360208260051b850101111561183857600080fd5b9250929050565b60008060006040848603121561185457600080fd5b61185d84611696565b9250602084013567ffffffffffffffff81111561187957600080fd5b611885868287016117f3565b9497909650939450505050565b600080600080604085870312156118a857600080fd5b843567ffffffffffffffff808211156118c057600080fd5b6118cc888389016117f3565b909650945060208701359150808211156118e557600080fd5b506118f2878288016117f3565b95989497509550505050565b6000806000806080858703121561191457600080fd5b61191d85611657565b935061192b60208601611657565b925061193960408601611657565b915061194760608601611657565b905092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611a1057611a106119b0565b5060010190565b6000815180845260005b81811015611a3d57602081850181015186830182015201611a21565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b60208152600061058f6020830184611a17565b80820180821115610393576103936119b0565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b83811015611b36578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001855281518051845287015187840187905280518785015287015160608401879052611b236080850182611a17565b9588019593505090860190600101611ac8565b509098975050505050505050565b8051602080830151919081101561155f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60209190910360031b1b16919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112611be957600080fd5b90910192915050565b60006060808301878452602060048810611c35577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b87818601526040838187015282878452608093508387019050838860051b8801018960005b8a811015611d67577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808a8403018452611c93828d611bb5565b80358452611ca387820182611bb5565b90508587850152803586850152868101357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1823603018112611ce457600080fd5b01868101903567ffffffffffffffff811115611cff57600080fd5b803603821315611d0e57600080fd5b868a860152808986015260a0818382880137600086830182015295880195601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909401909301925090850190600101611c5a565b50909c9b505050505050505050505050565b63ffffffff841681528260208201526060604082015260006114d96060830184611a17565b600060208284031215611db057600080fd5b5051919050565b60008085851115611dc757600080fd5b83861115611dd457600080fd5b5050820193919092039150565b80356020831015610393577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b6040805190810167ffffffffffffffff81118282101715611e6f57611e6f611952565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611ebc57611ebc611952565b604052919050565b600080600060608486031215611ed957600080fd5b833592506004602085013510611eee57600080fd5b6020840135915067ffffffffffffffff8060408601351115611f0f57600080fd5b6040850135850186601f820112611f2557600080fd5b8181351115611f3657611f36611952565b611f466020823560051b01611e75565b81358082526020808301929160051b840101891015611f6457600080fd5b602083015b6020843560051b8501018110156120a7578481351115611f8857600080fd5b803584017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0604081838e03011215611fbf57600080fd5b611fc7611e4c565b602083013581528760408401351115611fdf57600080fd5b604083013583019250604082848f03011215611ffa57600080fd5b612002611e4c565b60208401358152886040850135111561201a57600080fd5b6040840135840193508d603f85011261203257600080fd5b60208401358981111561204757612047611952565b612058602085601f84011601611e75565b93508084528e604082870101111561206f57600080fd5b806040860160208601376000602082860101525082602082015280602083015250808652505050602083019250602081019050611f69565b50809450505050509250925092565b81810381811115610393576103936119b056fe4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e2e2044696420796f7520737065636966792074686520726967687420646f6d61696e2049443fa2646970667358221220810eda07d684ce7f448d64815e84e18e5584fc4e8da2098616650279adc265e164736f6c63430008110033608060405234801561001057600080fd5b5061001a3361001f565b610071565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610c3d806100806000396000f3fe60806040526004361061005e5760003560e01c80638290459d116100435780638290459d146100965780638da5cb5b146100b6578063f2fde38b146100ef57600080fd5b8063715018a61461006a5780638129fc1c1461008157600080fd5b3661006557005b600080fd5b34801561007657600080fd5b5061007f61010f565b005b34801561008d57600080fd5b5061007f610123565b3480156100a257600080fd5b5061007f6100b136600461085b565b6102ba565b3480156100c257600080fd5b506033546040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156100fb57600080fd5b5061007f61010a3660046108d0565b6102d8565b61011761038c565b610121600061040d565b565b600054610100900460ff16158080156101435750600054600160ff909116105b8061015d5750303b15801561015d575060005460ff166001145b6101ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561024c57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610254610484565b80156102b757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b6102c261038c565b6102d46102cf82846109b4565b610523565b5050565b6102e061038c565b73ffffffffffffffffffffffffffffffffffffffff8116610383576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016101e5565b6102b78161040d565b60335473ffffffffffffffffffffffffffffffffffffffff163314610121576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101e5565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff1661051b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016101e5565b610121610564565b80516000905b8082101561055f5761055383838151811061054657610546610b1e565b6020026020010151610604565b50816001019150610529565b505050565b600054610100900460ff166105fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016101e5565b6101213361040d565b6060610625610616836020015161062b565b60208085015101518451610635565b92915050565b8051600090610625565b606061065b848484604051806060016040528060298152602001610bdf60299139610663565b949350505050565b6060824710156106f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016101e5565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161071e9190610b71565b60006040518083038185875af1925050503d806000811461075b576040519150601f19603f3d011682016040523d82523d6000602084013e610760565b606091505b50915091506107718783838761077c565b979650505050505050565b6060831561081257825160000361080b5773ffffffffffffffffffffffffffffffffffffffff85163b61080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016101e5565b508161065b565b61065b83838151156108275781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101e59190610b8d565b6000806020838503121561086e57600080fd5b823567ffffffffffffffff8082111561088657600080fd5b818501915085601f83011261089a57600080fd5b8135818111156108a957600080fd5b8660208260051b85010111156108be57600080fd5b60209290920196919550909350505050565b6000602082840312156108e257600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461090657600080fd5b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561095f5761095f61090d565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156109ac576109ac61090d565b604052919050565b600067ffffffffffffffff808411156109cf576109cf61090d565b8360051b60206109e0818301610965565b8681529185019181810190368411156109f857600080fd5b865b84811015610b1257803586811115610a125760008081fd5b8801604036829003811315610a275760008081fd5b610a2f61093c565b823581528683013589811115610a455760008081fd5b808401935050818336031215610a5b5760008081fd5b610a6361093c565b9150823582528683013589811115610a7b5760008081fd5b9290920191601f3681850112610a915760008081fd5b83358a811115610aa357610aa361090d565b610ad2897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08484011601610965565b91508082523689828701011115610ae95760008081fd5b808986018a840137600090820189015282880152808701919091528452509183019183016109fa565b50979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60005b83811015610b68578181015183820152602001610b50565b50506000910152565b60008251610b83818460208701610b4d565b9190910192915050565b6020815260008251806020840152610bac816040850160208701610b4d565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a2646970667358221220aa530cbace6cfdc7d21257e2ba6a6267e973362818fa8cbfda86cd3e0e50637764736f6c63430008110033";
503
503
  const isSuperArgs = (xs) => xs.length > 1;
504
504
  class InterchainAccountRouter__factory extends ethers_1.ContractFactory {
505
505
  constructor(...args) {