@stargatefinance/stg-evm-sdk-v2 1.2.7 → 1.3.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 (159) hide show
  1. package/artifacts/src/StargateOFT.sol/StargateOFT.json +2 -2
  2. package/artifacts/src/StargateOFTAlt.sol/StargateOFTAlt.json +1584 -0
  3. package/artifacts/src/StargatePool.sol/StargatePool.json +2 -2
  4. package/artifacts/src/StargatePoolMigratable.sol/StargatePoolMigratable.json +2 -2
  5. package/artifacts/src/StargatePoolNative.sol/StargatePoolNative.json +2 -2
  6. package/artifacts/src/eurc/StargateOFTEURC.sol/StargateOFTEURC.json +2 -2
  7. package/artifacts/src/eurc/StargatePoolEURC.sol/StargatePoolEURC.json +2 -2
  8. package/artifacts/src/interfaces/tip20/ITIP20.sol/ITIP20.json +1065 -0
  9. package/artifacts/src/interfaces/tip20/ITIP20RolesAuth.sol/ITIP20RolesAuth.json +139 -0
  10. package/artifacts/src/messaging/CreditMessagingAlt.sol/CreditMessagingAlt.json +1142 -0
  11. package/artifacts/src/messaging/TokenMessaging.sol/TokenMessaging.json +2 -2
  12. package/artifacts/src/messaging/TokenMessagingAlt.sol/TokenMessagingAlt.json +1907 -0
  13. package/artifacts/src/mocks/tip20/TIP20.sol/TIP20.json +1253 -0
  14. package/artifacts/src/mocks/tip20/TIP403Registry.sol/TIP403Registry.json +335 -0
  15. package/artifacts/src/mocks/tip20/abstracts/TIP20RolesAuth.sol/TIP20RolesAuth.json +163 -0
  16. package/artifacts/src/mocks/tip20/interfaces/ITIP403Registry.sol/ITIP403Registry.json +335 -0
  17. package/artifacts/src/peripheral/Treasurer.sol/Treasurer.json +2 -2
  18. package/artifacts/src/tip20/StargateOFTTIP20.sol/StargateOFTTIP20.json +1595 -0
  19. package/artifacts/src/usdc/StargateOFTUSDC.sol/StargateOFTUSDC.json +2 -2
  20. package/artifacts/src/usdc/StargatePoolUSDC.sol/StargatePoolUSDC.json +2 -2
  21. package/deployments/horizen-mainnet/CreditMessaging.json +1501 -0
  22. package/deployments/horizen-mainnet/FeeLibV1USDC.json +611 -0
  23. package/deployments/horizen-mainnet/OFTWrapper.json +1506 -0
  24. package/deployments/horizen-mainnet/StargateOFTUSDC.json +1978 -0
  25. package/deployments/horizen-mainnet/TokenMessaging.json +2475 -0
  26. package/deployments/horizen-mainnet/Treasurer.json +450 -0
  27. package/deployments/moderato-testnet/CreditMessaging.json +1592 -0
  28. package/deployments/moderato-testnet/FeeLibV1EURC.json +625 -0
  29. package/deployments/moderato-testnet/FeeLibV1USDC.json +625 -0
  30. package/deployments/moderato-testnet/OFTWrapper.json +1520 -0
  31. package/deployments/moderato-testnet/StargateOFTEURC.json +2023 -0
  32. package/deployments/moderato-testnet/StargateOFTUSDC.json +2023 -0
  33. package/deployments/moderato-testnet/TokenMessaging.json +2484 -0
  34. package/deployments/moderato-testnet/Treasurer.json +464 -0
  35. package/deployments/tempo-mainnet/CreditMessaging.json +1592 -0
  36. package/deployments/tempo-mainnet/FeeLibV1EURC.json +625 -0
  37. package/deployments/tempo-mainnet/FeeLibV1USDC.json +625 -0
  38. package/deployments/tempo-mainnet/OFTWrapper.json +1520 -0
  39. package/deployments/tempo-mainnet/StargateOFTEURC.json +2036 -0
  40. package/deployments/tempo-mainnet/StargateOFTUSDC.json +2036 -0
  41. package/deployments/tempo-mainnet/TokenMessaging.json +2481 -0
  42. package/deployments/tempo-mainnet/Treasurer.json +464 -0
  43. package/dist/deployed/CreditMessaging.cjs +10 -0
  44. package/dist/deployed/CreditMessaging.cjs.map +1 -1
  45. package/dist/deployed/CreditMessaging.mjs +10 -0
  46. package/dist/deployed/CreditMessaging.mjs.map +1 -1
  47. package/dist/deployed/FeeLibV1EURC.cjs +9 -3
  48. package/dist/deployed/FeeLibV1EURC.cjs.map +1 -1
  49. package/dist/deployed/FeeLibV1EURC.mjs +9 -3
  50. package/dist/deployed/FeeLibV1EURC.mjs.map +1 -1
  51. package/dist/deployed/FeeLibV1USDC.cjs +9 -0
  52. package/dist/deployed/FeeLibV1USDC.cjs.map +1 -1
  53. package/dist/deployed/FeeLibV1USDC.mjs +9 -0
  54. package/dist/deployed/FeeLibV1USDC.mjs.map +1 -1
  55. package/dist/deployed/OFTWrapper.cjs +9 -0
  56. package/dist/deployed/OFTWrapper.cjs.map +1 -1
  57. package/dist/deployed/OFTWrapper.mjs +9 -0
  58. package/dist/deployed/OFTWrapper.mjs.map +1 -1
  59. package/dist/deployed/StargateOFTEURC.cjs +11 -3
  60. package/dist/deployed/StargateOFTEURC.cjs.map +1 -1
  61. package/dist/deployed/StargateOFTEURC.mjs +11 -3
  62. package/dist/deployed/StargateOFTEURC.mjs.map +1 -1
  63. package/dist/deployed/StargateOFTUSDC-gNoY8tx0.d.mts +4995 -0
  64. package/dist/deployed/StargateOFTUSDC-gNoY8tx0.d.ts +4995 -0
  65. package/dist/deployed/StargateOFTUSDC.cjs +11 -0
  66. package/dist/deployed/StargateOFTUSDC.cjs.map +1 -1
  67. package/dist/deployed/StargateOFTUSDC.d.mts +1 -0
  68. package/dist/deployed/StargateOFTUSDC.d.ts +1 -0
  69. package/dist/deployed/StargateOFTUSDC.mjs +11 -0
  70. package/dist/deployed/StargateOFTUSDC.mjs.map +1 -1
  71. package/dist/deployed/StargateOFTUSDT-n5r6jpXt.d.mts +2492 -0
  72. package/dist/deployed/StargateOFTUSDT-n5r6jpXt.d.ts +2492 -0
  73. package/dist/deployed/StargateOFTUSDT.d.mts +1 -0
  74. package/dist/deployed/StargateOFTUSDT.d.ts +1 -0
  75. package/dist/deployed/StargatePoolETH-lOsiDbJC.d.mts +1530 -0
  76. package/dist/deployed/StargatePoolETH-lOsiDbJC.d.ts +1530 -0
  77. package/dist/deployed/StargatePoolETH.d.mts +1 -0
  78. package/dist/deployed/StargatePoolETH.d.ts +1 -0
  79. package/dist/deployed/StargatePoolEURC-D7GGCfr7.d.mts +1582 -0
  80. package/dist/deployed/StargatePoolEURC-D7GGCfr7.d.ts +1582 -0
  81. package/dist/deployed/StargatePoolEURC.d.mts +1 -0
  82. package/dist/deployed/StargatePoolEURC.d.ts +1 -0
  83. package/dist/deployed/StargatePoolMETIS-CQrZSdA7.d.mts +1519 -0
  84. package/dist/deployed/StargatePoolMETIS-CQrZSdA7.d.ts +1519 -0
  85. package/dist/deployed/StargatePoolMETIS.d.mts +1 -0
  86. package/dist/deployed/StargatePoolMETIS.d.ts +1 -0
  87. package/dist/deployed/StargatePoolNative-BKokoo5S.d.mts +1568 -0
  88. package/dist/deployed/StargatePoolNative-BKokoo5S.d.ts +1568 -0
  89. package/dist/deployed/StargatePoolNative.d.mts +1 -0
  90. package/dist/deployed/StargatePoolNative.d.ts +1 -0
  91. package/dist/deployed/StargatePoolUSDC-gP7LrAIv.d.mts +1632 -0
  92. package/dist/deployed/StargatePoolUSDC-gP7LrAIv.d.ts +1632 -0
  93. package/dist/deployed/StargatePoolUSDC.d.mts +1 -0
  94. package/dist/deployed/StargatePoolUSDC.d.ts +1 -0
  95. package/dist/deployed/StargatePoolUSDT-DkOqtwrh.d.mts +1627 -0
  96. package/dist/deployed/StargatePoolUSDT-DkOqtwrh.d.ts +1627 -0
  97. package/dist/deployed/StargatePoolUSDT.d.mts +1 -0
  98. package/dist/deployed/StargatePoolUSDT.d.ts +1 -0
  99. package/dist/deployed/StargatePoolmETH-C_R3a4-e.d.mts +1519 -0
  100. package/dist/deployed/StargatePoolmETH-C_R3a4-e.d.ts +1519 -0
  101. package/dist/deployed/StargatePoolmETH.d.mts +1 -0
  102. package/dist/deployed/StargatePoolmETH.d.ts +1 -0
  103. package/dist/deployed/StargateStaking-BL9axih_.d.mts +459 -0
  104. package/dist/deployed/StargateStaking-BL9axih_.d.ts +459 -0
  105. package/dist/deployed/StargateStaking.d.mts +1 -0
  106. package/dist/deployed/StargateStaking.d.ts +1 -0
  107. package/dist/deployed/TokenMessaging-BfnD6v53.d.mts +3174 -0
  108. package/dist/deployed/TokenMessaging-BfnD6v53.d.ts +3174 -0
  109. package/dist/deployed/TokenMessaging.cjs +10 -0
  110. package/dist/deployed/TokenMessaging.cjs.map +1 -1
  111. package/dist/deployed/TokenMessaging.d.mts +1 -0
  112. package/dist/deployed/TokenMessaging.d.ts +1 -0
  113. package/dist/deployed/TokenMessaging.mjs +10 -0
  114. package/dist/deployed/TokenMessaging.mjs.map +1 -1
  115. package/dist/deployed/Treasurer-DlA2Gv8f.d.mts +450 -0
  116. package/dist/deployed/Treasurer-DlA2Gv8f.d.ts +450 -0
  117. package/dist/deployed/Treasurer.cjs +9 -0
  118. package/dist/deployed/Treasurer.cjs.map +1 -1
  119. package/dist/deployed/Treasurer.d.mts +1 -0
  120. package/dist/deployed/Treasurer.d.ts +1 -0
  121. package/dist/deployed/Treasurer.mjs +9 -0
  122. package/dist/deployed/Treasurer.mjs.map +1 -1
  123. package/dist/deployed/USDCImpl-DN89Rpdz.d.mts +1124 -0
  124. package/dist/deployed/USDCImpl-DN89Rpdz.d.ts +1124 -0
  125. package/dist/deployed/USDCImpl.d.mts +1 -0
  126. package/dist/deployed/USDCImpl.d.ts +1 -0
  127. package/dist/deployed/USDCProxy-BsrYumZv.d.mts +141 -0
  128. package/dist/deployed/USDCProxy-BsrYumZv.d.ts +141 -0
  129. package/dist/deployed/USDCProxy.d.mts +1 -0
  130. package/dist/deployed/USDCProxy.d.ts +1 -0
  131. package/dist/deployed/USDCSignatureLib-W2-GjRxG.d.mts +73 -0
  132. package/dist/deployed/USDCSignatureLib-W2-GjRxG.d.ts +73 -0
  133. package/dist/deployed/USDCSignatureLib.d.mts +1 -0
  134. package/dist/deployed/USDCSignatureLib.d.ts +1 -0
  135. package/dist/deployed/USDT-DVAQjDdu.d.mts +690 -0
  136. package/dist/deployed/USDT-DVAQjDdu.d.ts +690 -0
  137. package/dist/deployed/USDT.d.mts +1 -0
  138. package/dist/deployed/USDT.d.ts +1 -0
  139. package/dist/deployed/contracts-CwDH7mzf.d.mts +68 -0
  140. package/dist/deployed/contracts-Yg5JhOts.d.ts +68 -0
  141. package/dist/deployed/contracts.cjs +119 -47
  142. package/dist/deployed/contracts.cjs.map +1 -1
  143. package/dist/deployed/contracts.d.mts +31 -0
  144. package/dist/deployed/contracts.d.ts +31 -0
  145. package/dist/deployed/contracts.mjs +119 -47
  146. package/dist/deployed/contracts.mjs.map +1 -1
  147. package/dist/deployed/index.cjs +119 -47
  148. package/dist/deployed/index.cjs.map +1 -1
  149. package/dist/deployed/index.d.mts +36 -0
  150. package/dist/deployed/index.d.ts +36 -0
  151. package/dist/deployed/index.mjs +119 -47
  152. package/dist/deployed/index.mjs.map +1 -1
  153. package/dist/index.cjs +43 -2
  154. package/dist/index.cjs.map +1 -1
  155. package/dist/index.d.mts +49 -2
  156. package/dist/index.d.ts +49 -2
  157. package/dist/index.mjs +43 -2
  158. package/dist/index.mjs.map +1 -1
  159. package/package.json +2 -2
@@ -0,0 +1,1584 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "StargateOFTAlt",
4
+ "sourceName": "src/StargateOFTAlt.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "_token",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "uint8",
15
+ "name": "_sharedDecimals",
16
+ "type": "uint8"
17
+ },
18
+ {
19
+ "internalType": "address",
20
+ "name": "_endpoint",
21
+ "type": "address"
22
+ },
23
+ {
24
+ "internalType": "address",
25
+ "name": "_owner",
26
+ "type": "address"
27
+ }
28
+ ],
29
+ "stateMutability": "nonpayable",
30
+ "type": "constructor"
31
+ },
32
+ {
33
+ "inputs": [],
34
+ "name": "InvalidLocalDecimals",
35
+ "type": "error"
36
+ },
37
+ {
38
+ "inputs": [],
39
+ "name": "Path_AlreadyHasCredit",
40
+ "type": "error"
41
+ },
42
+ {
43
+ "inputs": [],
44
+ "name": "Path_InsufficientCredit",
45
+ "type": "error"
46
+ },
47
+ {
48
+ "inputs": [],
49
+ "name": "Path_UnlimitedCredit",
50
+ "type": "error"
51
+ },
52
+ {
53
+ "inputs": [
54
+ {
55
+ "internalType": "uint256",
56
+ "name": "amountLD",
57
+ "type": "uint256"
58
+ },
59
+ {
60
+ "internalType": "uint256",
61
+ "name": "minAmountLD",
62
+ "type": "uint256"
63
+ }
64
+ ],
65
+ "name": "SlippageExceeded",
66
+ "type": "error"
67
+ },
68
+ {
69
+ "inputs": [],
70
+ "name": "Stargate_BusNotAllowedInAlt",
71
+ "type": "error"
72
+ },
73
+ {
74
+ "inputs": [],
75
+ "name": "Stargate_InsufficientFare",
76
+ "type": "error"
77
+ },
78
+ {
79
+ "inputs": [],
80
+ "name": "Stargate_InvalidAmount",
81
+ "type": "error"
82
+ },
83
+ {
84
+ "inputs": [],
85
+ "name": "Stargate_InvalidPath",
86
+ "type": "error"
87
+ },
88
+ {
89
+ "inputs": [],
90
+ "name": "Stargate_InvalidTokenDecimals",
91
+ "type": "error"
92
+ },
93
+ {
94
+ "inputs": [],
95
+ "name": "Stargate_LzTokenUnavailable",
96
+ "type": "error"
97
+ },
98
+ {
99
+ "inputs": [],
100
+ "name": "Stargate_NotAnAltEndpoint",
101
+ "type": "error"
102
+ },
103
+ {
104
+ "inputs": [],
105
+ "name": "Stargate_OnlyAltToken",
106
+ "type": "error"
107
+ },
108
+ {
109
+ "inputs": [],
110
+ "name": "Stargate_OutflowFailed",
111
+ "type": "error"
112
+ },
113
+ {
114
+ "inputs": [],
115
+ "name": "Stargate_Paused",
116
+ "type": "error"
117
+ },
118
+ {
119
+ "inputs": [],
120
+ "name": "Stargate_RecoverTokenUnsupported",
121
+ "type": "error"
122
+ },
123
+ {
124
+ "inputs": [],
125
+ "name": "Stargate_ReentrantCall",
126
+ "type": "error"
127
+ },
128
+ {
129
+ "inputs": [],
130
+ "name": "Stargate_SlippageTooHigh",
131
+ "type": "error"
132
+ },
133
+ {
134
+ "inputs": [],
135
+ "name": "Stargate_Unauthorized",
136
+ "type": "error"
137
+ },
138
+ {
139
+ "inputs": [],
140
+ "name": "Stargate_UnreceivedTokenNotFound",
141
+ "type": "error"
142
+ },
143
+ {
144
+ "inputs": [],
145
+ "name": "Transfer_ApproveFailed",
146
+ "type": "error"
147
+ },
148
+ {
149
+ "inputs": [],
150
+ "name": "Transfer_TransferFailed",
151
+ "type": "error"
152
+ },
153
+ {
154
+ "anonymous": false,
155
+ "inputs": [
156
+ {
157
+ "components": [
158
+ {
159
+ "internalType": "address",
160
+ "name": "feeLib",
161
+ "type": "address"
162
+ },
163
+ {
164
+ "internalType": "address",
165
+ "name": "planner",
166
+ "type": "address"
167
+ },
168
+ {
169
+ "internalType": "address",
170
+ "name": "treasurer",
171
+ "type": "address"
172
+ },
173
+ {
174
+ "internalType": "address",
175
+ "name": "tokenMessaging",
176
+ "type": "address"
177
+ },
178
+ {
179
+ "internalType": "address",
180
+ "name": "creditMessaging",
181
+ "type": "address"
182
+ },
183
+ {
184
+ "internalType": "address",
185
+ "name": "lzToken",
186
+ "type": "address"
187
+ }
188
+ ],
189
+ "indexed": false,
190
+ "internalType": "struct StargateBase.AddressConfig",
191
+ "name": "config",
192
+ "type": "tuple"
193
+ }
194
+ ],
195
+ "name": "AddressConfigSet",
196
+ "type": "event"
197
+ },
198
+ {
199
+ "anonymous": false,
200
+ "inputs": [
201
+ {
202
+ "indexed": false,
203
+ "internalType": "uint32",
204
+ "name": "srcEid",
205
+ "type": "uint32"
206
+ },
207
+ {
208
+ "components": [
209
+ {
210
+ "internalType": "uint32",
211
+ "name": "srcEid",
212
+ "type": "uint32"
213
+ },
214
+ {
215
+ "internalType": "uint64",
216
+ "name": "amount",
217
+ "type": "uint64"
218
+ }
219
+ ],
220
+ "indexed": false,
221
+ "internalType": "struct Credit[]",
222
+ "name": "credits",
223
+ "type": "tuple[]"
224
+ }
225
+ ],
226
+ "name": "CreditsReceived",
227
+ "type": "event"
228
+ },
229
+ {
230
+ "anonymous": false,
231
+ "inputs": [
232
+ {
233
+ "indexed": false,
234
+ "internalType": "uint32",
235
+ "name": "dstEid",
236
+ "type": "uint32"
237
+ },
238
+ {
239
+ "components": [
240
+ {
241
+ "internalType": "uint32",
242
+ "name": "srcEid",
243
+ "type": "uint32"
244
+ },
245
+ {
246
+ "internalType": "uint64",
247
+ "name": "amount",
248
+ "type": "uint64"
249
+ }
250
+ ],
251
+ "indexed": false,
252
+ "internalType": "struct Credit[]",
253
+ "name": "credits",
254
+ "type": "tuple[]"
255
+ }
256
+ ],
257
+ "name": "CreditsSent",
258
+ "type": "event"
259
+ },
260
+ {
261
+ "anonymous": false,
262
+ "inputs": [
263
+ {
264
+ "indexed": false,
265
+ "internalType": "uint32",
266
+ "name": "dstEid",
267
+ "type": "uint32"
268
+ },
269
+ {
270
+ "indexed": false,
271
+ "internalType": "bool",
272
+ "name": "oft",
273
+ "type": "bool"
274
+ }
275
+ ],
276
+ "name": "OFTPathSet",
277
+ "type": "event"
278
+ },
279
+ {
280
+ "anonymous": false,
281
+ "inputs": [
282
+ {
283
+ "indexed": true,
284
+ "internalType": "bytes32",
285
+ "name": "guid",
286
+ "type": "bytes32"
287
+ },
288
+ {
289
+ "indexed": false,
290
+ "internalType": "uint32",
291
+ "name": "srcEid",
292
+ "type": "uint32"
293
+ },
294
+ {
295
+ "indexed": true,
296
+ "internalType": "address",
297
+ "name": "toAddress",
298
+ "type": "address"
299
+ },
300
+ {
301
+ "indexed": false,
302
+ "internalType": "uint256",
303
+ "name": "amountReceivedLD",
304
+ "type": "uint256"
305
+ }
306
+ ],
307
+ "name": "OFTReceived",
308
+ "type": "event"
309
+ },
310
+ {
311
+ "anonymous": false,
312
+ "inputs": [
313
+ {
314
+ "indexed": true,
315
+ "internalType": "bytes32",
316
+ "name": "guid",
317
+ "type": "bytes32"
318
+ },
319
+ {
320
+ "indexed": false,
321
+ "internalType": "uint32",
322
+ "name": "dstEid",
323
+ "type": "uint32"
324
+ },
325
+ {
326
+ "indexed": true,
327
+ "internalType": "address",
328
+ "name": "fromAddress",
329
+ "type": "address"
330
+ },
331
+ {
332
+ "indexed": false,
333
+ "internalType": "uint256",
334
+ "name": "amountSentLD",
335
+ "type": "uint256"
336
+ },
337
+ {
338
+ "indexed": false,
339
+ "internalType": "uint256",
340
+ "name": "amountReceivedLD",
341
+ "type": "uint256"
342
+ }
343
+ ],
344
+ "name": "OFTSent",
345
+ "type": "event"
346
+ },
347
+ {
348
+ "anonymous": false,
349
+ "inputs": [
350
+ {
351
+ "indexed": true,
352
+ "internalType": "address",
353
+ "name": "previousOwner",
354
+ "type": "address"
355
+ },
356
+ {
357
+ "indexed": true,
358
+ "internalType": "address",
359
+ "name": "newOwner",
360
+ "type": "address"
361
+ }
362
+ ],
363
+ "name": "OwnershipTransferred",
364
+ "type": "event"
365
+ },
366
+ {
367
+ "anonymous": false,
368
+ "inputs": [
369
+ {
370
+ "indexed": false,
371
+ "internalType": "bool",
372
+ "name": "paused",
373
+ "type": "bool"
374
+ }
375
+ ],
376
+ "name": "PauseSet",
377
+ "type": "event"
378
+ },
379
+ {
380
+ "anonymous": false,
381
+ "inputs": [
382
+ {
383
+ "indexed": false,
384
+ "internalType": "uint256",
385
+ "name": "amount",
386
+ "type": "uint256"
387
+ }
388
+ ],
389
+ "name": "PlannerFeeWithdrawn",
390
+ "type": "event"
391
+ },
392
+ {
393
+ "anonymous": false,
394
+ "inputs": [
395
+ {
396
+ "indexed": false,
397
+ "internalType": "uint64",
398
+ "name": "amountSD",
399
+ "type": "uint64"
400
+ }
401
+ ],
402
+ "name": "TreasuryFeeAdded",
403
+ "type": "event"
404
+ },
405
+ {
406
+ "anonymous": false,
407
+ "inputs": [
408
+ {
409
+ "indexed": false,
410
+ "internalType": "address",
411
+ "name": "to",
412
+ "type": "address"
413
+ },
414
+ {
415
+ "indexed": false,
416
+ "internalType": "uint64",
417
+ "name": "amountSD",
418
+ "type": "uint64"
419
+ }
420
+ ],
421
+ "name": "TreasuryFeeWithdrawn",
422
+ "type": "event"
423
+ },
424
+ {
425
+ "anonymous": false,
426
+ "inputs": [
427
+ {
428
+ "indexed": false,
429
+ "internalType": "bytes32",
430
+ "name": "guid",
431
+ "type": "bytes32"
432
+ },
433
+ {
434
+ "indexed": false,
435
+ "internalType": "uint8",
436
+ "name": "index",
437
+ "type": "uint8"
438
+ },
439
+ {
440
+ "indexed": false,
441
+ "internalType": "uint32",
442
+ "name": "srcEid",
443
+ "type": "uint32"
444
+ },
445
+ {
446
+ "indexed": false,
447
+ "internalType": "address",
448
+ "name": "receiver",
449
+ "type": "address"
450
+ },
451
+ {
452
+ "indexed": false,
453
+ "internalType": "uint256",
454
+ "name": "amountLD",
455
+ "type": "uint256"
456
+ },
457
+ {
458
+ "indexed": false,
459
+ "internalType": "bytes",
460
+ "name": "composeMsg",
461
+ "type": "bytes"
462
+ }
463
+ ],
464
+ "name": "UnreceivedTokenCached",
465
+ "type": "event"
466
+ },
467
+ {
468
+ "inputs": [
469
+ {
470
+ "internalType": "uint256",
471
+ "name": "_amountLD",
472
+ "type": "uint256"
473
+ }
474
+ ],
475
+ "name": "addTreasuryFee",
476
+ "outputs": [],
477
+ "stateMutability": "payable",
478
+ "type": "function"
479
+ },
480
+ {
481
+ "inputs": [],
482
+ "name": "approvalRequired",
483
+ "outputs": [
484
+ {
485
+ "internalType": "bool",
486
+ "name": "",
487
+ "type": "bool"
488
+ }
489
+ ],
490
+ "stateMutability": "pure",
491
+ "type": "function"
492
+ },
493
+ {
494
+ "inputs": [],
495
+ "name": "endpoint",
496
+ "outputs": [
497
+ {
498
+ "internalType": "contract ILayerZeroEndpointV2",
499
+ "name": "",
500
+ "type": "address"
501
+ }
502
+ ],
503
+ "stateMutability": "view",
504
+ "type": "function"
505
+ },
506
+ {
507
+ "inputs": [],
508
+ "name": "feeToken",
509
+ "outputs": [
510
+ {
511
+ "internalType": "address",
512
+ "name": "",
513
+ "type": "address"
514
+ }
515
+ ],
516
+ "stateMutability": "view",
517
+ "type": "function"
518
+ },
519
+ {
520
+ "inputs": [],
521
+ "name": "getAddressConfig",
522
+ "outputs": [
523
+ {
524
+ "components": [
525
+ {
526
+ "internalType": "address",
527
+ "name": "feeLib",
528
+ "type": "address"
529
+ },
530
+ {
531
+ "internalType": "address",
532
+ "name": "planner",
533
+ "type": "address"
534
+ },
535
+ {
536
+ "internalType": "address",
537
+ "name": "treasurer",
538
+ "type": "address"
539
+ },
540
+ {
541
+ "internalType": "address",
542
+ "name": "tokenMessaging",
543
+ "type": "address"
544
+ },
545
+ {
546
+ "internalType": "address",
547
+ "name": "creditMessaging",
548
+ "type": "address"
549
+ },
550
+ {
551
+ "internalType": "address",
552
+ "name": "lzToken",
553
+ "type": "address"
554
+ }
555
+ ],
556
+ "internalType": "struct StargateBase.AddressConfig",
557
+ "name": "",
558
+ "type": "tuple"
559
+ }
560
+ ],
561
+ "stateMutability": "view",
562
+ "type": "function"
563
+ },
564
+ {
565
+ "inputs": [],
566
+ "name": "getTransferGasLimit",
567
+ "outputs": [
568
+ {
569
+ "internalType": "uint256",
570
+ "name": "",
571
+ "type": "uint256"
572
+ }
573
+ ],
574
+ "stateMutability": "view",
575
+ "type": "function"
576
+ },
577
+ {
578
+ "inputs": [],
579
+ "name": "localEid",
580
+ "outputs": [
581
+ {
582
+ "internalType": "uint32",
583
+ "name": "",
584
+ "type": "uint32"
585
+ }
586
+ ],
587
+ "stateMutability": "view",
588
+ "type": "function"
589
+ },
590
+ {
591
+ "inputs": [],
592
+ "name": "oftVersion",
593
+ "outputs": [
594
+ {
595
+ "internalType": "bytes4",
596
+ "name": "interfaceId",
597
+ "type": "bytes4"
598
+ },
599
+ {
600
+ "internalType": "uint64",
601
+ "name": "version",
602
+ "type": "uint64"
603
+ }
604
+ ],
605
+ "stateMutability": "pure",
606
+ "type": "function"
607
+ },
608
+ {
609
+ "inputs": [],
610
+ "name": "owner",
611
+ "outputs": [
612
+ {
613
+ "internalType": "address",
614
+ "name": "",
615
+ "type": "address"
616
+ }
617
+ ],
618
+ "stateMutability": "view",
619
+ "type": "function"
620
+ },
621
+ {
622
+ "inputs": [
623
+ {
624
+ "internalType": "uint32",
625
+ "name": "eid",
626
+ "type": "uint32"
627
+ }
628
+ ],
629
+ "name": "paths",
630
+ "outputs": [
631
+ {
632
+ "internalType": "uint64",
633
+ "name": "credit",
634
+ "type": "uint64"
635
+ }
636
+ ],
637
+ "stateMutability": "view",
638
+ "type": "function"
639
+ },
640
+ {
641
+ "inputs": [],
642
+ "name": "plannerFee",
643
+ "outputs": [
644
+ {
645
+ "internalType": "uint256",
646
+ "name": "available",
647
+ "type": "uint256"
648
+ }
649
+ ],
650
+ "stateMutability": "view",
651
+ "type": "function"
652
+ },
653
+ {
654
+ "inputs": [
655
+ {
656
+ "components": [
657
+ {
658
+ "internalType": "uint32",
659
+ "name": "dstEid",
660
+ "type": "uint32"
661
+ },
662
+ {
663
+ "internalType": "bytes32",
664
+ "name": "to",
665
+ "type": "bytes32"
666
+ },
667
+ {
668
+ "internalType": "uint256",
669
+ "name": "amountLD",
670
+ "type": "uint256"
671
+ },
672
+ {
673
+ "internalType": "uint256",
674
+ "name": "minAmountLD",
675
+ "type": "uint256"
676
+ },
677
+ {
678
+ "internalType": "bytes",
679
+ "name": "extraOptions",
680
+ "type": "bytes"
681
+ },
682
+ {
683
+ "internalType": "bytes",
684
+ "name": "composeMsg",
685
+ "type": "bytes"
686
+ },
687
+ {
688
+ "internalType": "bytes",
689
+ "name": "oftCmd",
690
+ "type": "bytes"
691
+ }
692
+ ],
693
+ "internalType": "struct SendParam",
694
+ "name": "_sendParam",
695
+ "type": "tuple"
696
+ }
697
+ ],
698
+ "name": "quoteOFT",
699
+ "outputs": [
700
+ {
701
+ "components": [
702
+ {
703
+ "internalType": "uint256",
704
+ "name": "minAmountLD",
705
+ "type": "uint256"
706
+ },
707
+ {
708
+ "internalType": "uint256",
709
+ "name": "maxAmountLD",
710
+ "type": "uint256"
711
+ }
712
+ ],
713
+ "internalType": "struct OFTLimit",
714
+ "name": "limit",
715
+ "type": "tuple"
716
+ },
717
+ {
718
+ "components": [
719
+ {
720
+ "internalType": "int256",
721
+ "name": "feeAmountLD",
722
+ "type": "int256"
723
+ },
724
+ {
725
+ "internalType": "string",
726
+ "name": "description",
727
+ "type": "string"
728
+ }
729
+ ],
730
+ "internalType": "struct OFTFeeDetail[]",
731
+ "name": "oftFeeDetails",
732
+ "type": "tuple[]"
733
+ },
734
+ {
735
+ "components": [
736
+ {
737
+ "internalType": "uint256",
738
+ "name": "amountSentLD",
739
+ "type": "uint256"
740
+ },
741
+ {
742
+ "internalType": "uint256",
743
+ "name": "amountReceivedLD",
744
+ "type": "uint256"
745
+ }
746
+ ],
747
+ "internalType": "struct OFTReceipt",
748
+ "name": "receipt",
749
+ "type": "tuple"
750
+ }
751
+ ],
752
+ "stateMutability": "view",
753
+ "type": "function"
754
+ },
755
+ {
756
+ "inputs": [
757
+ {
758
+ "components": [
759
+ {
760
+ "internalType": "uint32",
761
+ "name": "dstEid",
762
+ "type": "uint32"
763
+ },
764
+ {
765
+ "internalType": "bytes32",
766
+ "name": "to",
767
+ "type": "bytes32"
768
+ },
769
+ {
770
+ "internalType": "uint256",
771
+ "name": "amountLD",
772
+ "type": "uint256"
773
+ },
774
+ {
775
+ "internalType": "uint256",
776
+ "name": "minAmountLD",
777
+ "type": "uint256"
778
+ },
779
+ {
780
+ "internalType": "bytes",
781
+ "name": "extraOptions",
782
+ "type": "bytes"
783
+ },
784
+ {
785
+ "internalType": "bytes",
786
+ "name": "composeMsg",
787
+ "type": "bytes"
788
+ },
789
+ {
790
+ "internalType": "bytes",
791
+ "name": "oftCmd",
792
+ "type": "bytes"
793
+ }
794
+ ],
795
+ "internalType": "struct SendParam",
796
+ "name": "_sendParam",
797
+ "type": "tuple"
798
+ },
799
+ {
800
+ "internalType": "bool",
801
+ "name": "_payInLzToken",
802
+ "type": "bool"
803
+ }
804
+ ],
805
+ "name": "quoteSend",
806
+ "outputs": [
807
+ {
808
+ "components": [
809
+ {
810
+ "internalType": "uint256",
811
+ "name": "nativeFee",
812
+ "type": "uint256"
813
+ },
814
+ {
815
+ "internalType": "uint256",
816
+ "name": "lzTokenFee",
817
+ "type": "uint256"
818
+ }
819
+ ],
820
+ "internalType": "struct MessagingFee",
821
+ "name": "fee",
822
+ "type": "tuple"
823
+ }
824
+ ],
825
+ "stateMutability": "view",
826
+ "type": "function"
827
+ },
828
+ {
829
+ "inputs": [
830
+ {
831
+ "internalType": "uint32",
832
+ "name": "_srcEid",
833
+ "type": "uint32"
834
+ },
835
+ {
836
+ "components": [
837
+ {
838
+ "internalType": "uint32",
839
+ "name": "srcEid",
840
+ "type": "uint32"
841
+ },
842
+ {
843
+ "internalType": "uint64",
844
+ "name": "amount",
845
+ "type": "uint64"
846
+ }
847
+ ],
848
+ "internalType": "struct Credit[]",
849
+ "name": "_credits",
850
+ "type": "tuple[]"
851
+ }
852
+ ],
853
+ "name": "receiveCredits",
854
+ "outputs": [],
855
+ "stateMutability": "nonpayable",
856
+ "type": "function"
857
+ },
858
+ {
859
+ "inputs": [
860
+ {
861
+ "components": [
862
+ {
863
+ "internalType": "uint32",
864
+ "name": "srcEid",
865
+ "type": "uint32"
866
+ },
867
+ {
868
+ "internalType": "bytes32",
869
+ "name": "sender",
870
+ "type": "bytes32"
871
+ },
872
+ {
873
+ "internalType": "uint64",
874
+ "name": "nonce",
875
+ "type": "uint64"
876
+ }
877
+ ],
878
+ "internalType": "struct Origin",
879
+ "name": "_origin",
880
+ "type": "tuple"
881
+ },
882
+ {
883
+ "internalType": "bytes32",
884
+ "name": "_guid",
885
+ "type": "bytes32"
886
+ },
887
+ {
888
+ "internalType": "uint8",
889
+ "name": "_seatNumber",
890
+ "type": "uint8"
891
+ },
892
+ {
893
+ "internalType": "address",
894
+ "name": "_receiver",
895
+ "type": "address"
896
+ },
897
+ {
898
+ "internalType": "uint64",
899
+ "name": "_amountSD",
900
+ "type": "uint64"
901
+ }
902
+ ],
903
+ "name": "receiveTokenBus",
904
+ "outputs": [],
905
+ "stateMutability": "nonpayable",
906
+ "type": "function"
907
+ },
908
+ {
909
+ "inputs": [
910
+ {
911
+ "components": [
912
+ {
913
+ "internalType": "uint32",
914
+ "name": "srcEid",
915
+ "type": "uint32"
916
+ },
917
+ {
918
+ "internalType": "bytes32",
919
+ "name": "sender",
920
+ "type": "bytes32"
921
+ },
922
+ {
923
+ "internalType": "uint64",
924
+ "name": "nonce",
925
+ "type": "uint64"
926
+ }
927
+ ],
928
+ "internalType": "struct Origin",
929
+ "name": "_origin",
930
+ "type": "tuple"
931
+ },
932
+ {
933
+ "internalType": "bytes32",
934
+ "name": "_guid",
935
+ "type": "bytes32"
936
+ },
937
+ {
938
+ "internalType": "address",
939
+ "name": "_receiver",
940
+ "type": "address"
941
+ },
942
+ {
943
+ "internalType": "uint64",
944
+ "name": "_amountSD",
945
+ "type": "uint64"
946
+ },
947
+ {
948
+ "internalType": "bytes",
949
+ "name": "_composeMsg",
950
+ "type": "bytes"
951
+ }
952
+ ],
953
+ "name": "receiveTokenTaxi",
954
+ "outputs": [],
955
+ "stateMutability": "nonpayable",
956
+ "type": "function"
957
+ },
958
+ {
959
+ "inputs": [
960
+ {
961
+ "internalType": "address",
962
+ "name": "_token",
963
+ "type": "address"
964
+ },
965
+ {
966
+ "internalType": "address",
967
+ "name": "_to",
968
+ "type": "address"
969
+ },
970
+ {
971
+ "internalType": "uint256",
972
+ "name": "_amount",
973
+ "type": "uint256"
974
+ }
975
+ ],
976
+ "name": "recoverToken",
977
+ "outputs": [
978
+ {
979
+ "internalType": "uint256",
980
+ "name": "",
981
+ "type": "uint256"
982
+ }
983
+ ],
984
+ "stateMutability": "nonpayable",
985
+ "type": "function"
986
+ },
987
+ {
988
+ "inputs": [],
989
+ "name": "renounceOwnership",
990
+ "outputs": [],
991
+ "stateMutability": "nonpayable",
992
+ "type": "function"
993
+ },
994
+ {
995
+ "inputs": [
996
+ {
997
+ "internalType": "bytes32",
998
+ "name": "_guid",
999
+ "type": "bytes32"
1000
+ },
1001
+ {
1002
+ "internalType": "uint8",
1003
+ "name": "_index",
1004
+ "type": "uint8"
1005
+ },
1006
+ {
1007
+ "internalType": "uint32",
1008
+ "name": "_srcEid",
1009
+ "type": "uint32"
1010
+ },
1011
+ {
1012
+ "internalType": "address",
1013
+ "name": "_receiver",
1014
+ "type": "address"
1015
+ },
1016
+ {
1017
+ "internalType": "uint256",
1018
+ "name": "_amountLD",
1019
+ "type": "uint256"
1020
+ },
1021
+ {
1022
+ "internalType": "bytes",
1023
+ "name": "_composeMsg",
1024
+ "type": "bytes"
1025
+ }
1026
+ ],
1027
+ "name": "retryReceiveToken",
1028
+ "outputs": [],
1029
+ "stateMutability": "nonpayable",
1030
+ "type": "function"
1031
+ },
1032
+ {
1033
+ "inputs": [
1034
+ {
1035
+ "components": [
1036
+ {
1037
+ "internalType": "uint32",
1038
+ "name": "dstEid",
1039
+ "type": "uint32"
1040
+ },
1041
+ {
1042
+ "internalType": "bytes32",
1043
+ "name": "to",
1044
+ "type": "bytes32"
1045
+ },
1046
+ {
1047
+ "internalType": "uint256",
1048
+ "name": "amountLD",
1049
+ "type": "uint256"
1050
+ },
1051
+ {
1052
+ "internalType": "uint256",
1053
+ "name": "minAmountLD",
1054
+ "type": "uint256"
1055
+ },
1056
+ {
1057
+ "internalType": "bytes",
1058
+ "name": "extraOptions",
1059
+ "type": "bytes"
1060
+ },
1061
+ {
1062
+ "internalType": "bytes",
1063
+ "name": "composeMsg",
1064
+ "type": "bytes"
1065
+ },
1066
+ {
1067
+ "internalType": "bytes",
1068
+ "name": "oftCmd",
1069
+ "type": "bytes"
1070
+ }
1071
+ ],
1072
+ "internalType": "struct SendParam",
1073
+ "name": "_sendParam",
1074
+ "type": "tuple"
1075
+ },
1076
+ {
1077
+ "components": [
1078
+ {
1079
+ "internalType": "uint256",
1080
+ "name": "nativeFee",
1081
+ "type": "uint256"
1082
+ },
1083
+ {
1084
+ "internalType": "uint256",
1085
+ "name": "lzTokenFee",
1086
+ "type": "uint256"
1087
+ }
1088
+ ],
1089
+ "internalType": "struct MessagingFee",
1090
+ "name": "_fee",
1091
+ "type": "tuple"
1092
+ },
1093
+ {
1094
+ "internalType": "address",
1095
+ "name": "_refundAddress",
1096
+ "type": "address"
1097
+ }
1098
+ ],
1099
+ "name": "send",
1100
+ "outputs": [
1101
+ {
1102
+ "components": [
1103
+ {
1104
+ "internalType": "bytes32",
1105
+ "name": "guid",
1106
+ "type": "bytes32"
1107
+ },
1108
+ {
1109
+ "internalType": "uint64",
1110
+ "name": "nonce",
1111
+ "type": "uint64"
1112
+ },
1113
+ {
1114
+ "components": [
1115
+ {
1116
+ "internalType": "uint256",
1117
+ "name": "nativeFee",
1118
+ "type": "uint256"
1119
+ },
1120
+ {
1121
+ "internalType": "uint256",
1122
+ "name": "lzTokenFee",
1123
+ "type": "uint256"
1124
+ }
1125
+ ],
1126
+ "internalType": "struct MessagingFee",
1127
+ "name": "fee",
1128
+ "type": "tuple"
1129
+ }
1130
+ ],
1131
+ "internalType": "struct MessagingReceipt",
1132
+ "name": "msgReceipt",
1133
+ "type": "tuple"
1134
+ },
1135
+ {
1136
+ "components": [
1137
+ {
1138
+ "internalType": "uint256",
1139
+ "name": "amountSentLD",
1140
+ "type": "uint256"
1141
+ },
1142
+ {
1143
+ "internalType": "uint256",
1144
+ "name": "amountReceivedLD",
1145
+ "type": "uint256"
1146
+ }
1147
+ ],
1148
+ "internalType": "struct OFTReceipt",
1149
+ "name": "oftReceipt",
1150
+ "type": "tuple"
1151
+ }
1152
+ ],
1153
+ "stateMutability": "payable",
1154
+ "type": "function"
1155
+ },
1156
+ {
1157
+ "inputs": [
1158
+ {
1159
+ "internalType": "uint32",
1160
+ "name": "_dstEid",
1161
+ "type": "uint32"
1162
+ },
1163
+ {
1164
+ "components": [
1165
+ {
1166
+ "internalType": "uint32",
1167
+ "name": "srcEid",
1168
+ "type": "uint32"
1169
+ },
1170
+ {
1171
+ "internalType": "uint64",
1172
+ "name": "amount",
1173
+ "type": "uint64"
1174
+ },
1175
+ {
1176
+ "internalType": "uint64",
1177
+ "name": "minAmount",
1178
+ "type": "uint64"
1179
+ }
1180
+ ],
1181
+ "internalType": "struct TargetCredit[]",
1182
+ "name": "_credits",
1183
+ "type": "tuple[]"
1184
+ }
1185
+ ],
1186
+ "name": "sendCredits",
1187
+ "outputs": [
1188
+ {
1189
+ "components": [
1190
+ {
1191
+ "internalType": "uint32",
1192
+ "name": "srcEid",
1193
+ "type": "uint32"
1194
+ },
1195
+ {
1196
+ "internalType": "uint64",
1197
+ "name": "amount",
1198
+ "type": "uint64"
1199
+ }
1200
+ ],
1201
+ "internalType": "struct Credit[]",
1202
+ "name": "",
1203
+ "type": "tuple[]"
1204
+ }
1205
+ ],
1206
+ "stateMutability": "nonpayable",
1207
+ "type": "function"
1208
+ },
1209
+ {
1210
+ "inputs": [
1211
+ {
1212
+ "components": [
1213
+ {
1214
+ "internalType": "uint32",
1215
+ "name": "dstEid",
1216
+ "type": "uint32"
1217
+ },
1218
+ {
1219
+ "internalType": "bytes32",
1220
+ "name": "to",
1221
+ "type": "bytes32"
1222
+ },
1223
+ {
1224
+ "internalType": "uint256",
1225
+ "name": "amountLD",
1226
+ "type": "uint256"
1227
+ },
1228
+ {
1229
+ "internalType": "uint256",
1230
+ "name": "minAmountLD",
1231
+ "type": "uint256"
1232
+ },
1233
+ {
1234
+ "internalType": "bytes",
1235
+ "name": "extraOptions",
1236
+ "type": "bytes"
1237
+ },
1238
+ {
1239
+ "internalType": "bytes",
1240
+ "name": "composeMsg",
1241
+ "type": "bytes"
1242
+ },
1243
+ {
1244
+ "internalType": "bytes",
1245
+ "name": "oftCmd",
1246
+ "type": "bytes"
1247
+ }
1248
+ ],
1249
+ "internalType": "struct SendParam",
1250
+ "name": "_sendParam",
1251
+ "type": "tuple"
1252
+ },
1253
+ {
1254
+ "components": [
1255
+ {
1256
+ "internalType": "uint256",
1257
+ "name": "nativeFee",
1258
+ "type": "uint256"
1259
+ },
1260
+ {
1261
+ "internalType": "uint256",
1262
+ "name": "lzTokenFee",
1263
+ "type": "uint256"
1264
+ }
1265
+ ],
1266
+ "internalType": "struct MessagingFee",
1267
+ "name": "_fee",
1268
+ "type": "tuple"
1269
+ },
1270
+ {
1271
+ "internalType": "address",
1272
+ "name": "_refundAddress",
1273
+ "type": "address"
1274
+ }
1275
+ ],
1276
+ "name": "sendToken",
1277
+ "outputs": [
1278
+ {
1279
+ "components": [
1280
+ {
1281
+ "internalType": "bytes32",
1282
+ "name": "guid",
1283
+ "type": "bytes32"
1284
+ },
1285
+ {
1286
+ "internalType": "uint64",
1287
+ "name": "nonce",
1288
+ "type": "uint64"
1289
+ },
1290
+ {
1291
+ "components": [
1292
+ {
1293
+ "internalType": "uint256",
1294
+ "name": "nativeFee",
1295
+ "type": "uint256"
1296
+ },
1297
+ {
1298
+ "internalType": "uint256",
1299
+ "name": "lzTokenFee",
1300
+ "type": "uint256"
1301
+ }
1302
+ ],
1303
+ "internalType": "struct MessagingFee",
1304
+ "name": "fee",
1305
+ "type": "tuple"
1306
+ }
1307
+ ],
1308
+ "internalType": "struct MessagingReceipt",
1309
+ "name": "msgReceipt",
1310
+ "type": "tuple"
1311
+ },
1312
+ {
1313
+ "components": [
1314
+ {
1315
+ "internalType": "uint256",
1316
+ "name": "amountSentLD",
1317
+ "type": "uint256"
1318
+ },
1319
+ {
1320
+ "internalType": "uint256",
1321
+ "name": "amountReceivedLD",
1322
+ "type": "uint256"
1323
+ }
1324
+ ],
1325
+ "internalType": "struct OFTReceipt",
1326
+ "name": "oftReceipt",
1327
+ "type": "tuple"
1328
+ },
1329
+ {
1330
+ "components": [
1331
+ {
1332
+ "internalType": "uint72",
1333
+ "name": "ticketId",
1334
+ "type": "uint72"
1335
+ },
1336
+ {
1337
+ "internalType": "bytes",
1338
+ "name": "passengerBytes",
1339
+ "type": "bytes"
1340
+ }
1341
+ ],
1342
+ "internalType": "struct Ticket",
1343
+ "name": "ticket",
1344
+ "type": "tuple"
1345
+ }
1346
+ ],
1347
+ "stateMutability": "payable",
1348
+ "type": "function"
1349
+ },
1350
+ {
1351
+ "inputs": [
1352
+ {
1353
+ "components": [
1354
+ {
1355
+ "internalType": "address",
1356
+ "name": "feeLib",
1357
+ "type": "address"
1358
+ },
1359
+ {
1360
+ "internalType": "address",
1361
+ "name": "planner",
1362
+ "type": "address"
1363
+ },
1364
+ {
1365
+ "internalType": "address",
1366
+ "name": "treasurer",
1367
+ "type": "address"
1368
+ },
1369
+ {
1370
+ "internalType": "address",
1371
+ "name": "tokenMessaging",
1372
+ "type": "address"
1373
+ },
1374
+ {
1375
+ "internalType": "address",
1376
+ "name": "creditMessaging",
1377
+ "type": "address"
1378
+ },
1379
+ {
1380
+ "internalType": "address",
1381
+ "name": "lzToken",
1382
+ "type": "address"
1383
+ }
1384
+ ],
1385
+ "internalType": "struct StargateBase.AddressConfig",
1386
+ "name": "_config",
1387
+ "type": "tuple"
1388
+ }
1389
+ ],
1390
+ "name": "setAddressConfig",
1391
+ "outputs": [],
1392
+ "stateMutability": "nonpayable",
1393
+ "type": "function"
1394
+ },
1395
+ {
1396
+ "inputs": [
1397
+ {
1398
+ "internalType": "uint32",
1399
+ "name": "_dstEid",
1400
+ "type": "uint32"
1401
+ },
1402
+ {
1403
+ "internalType": "bool",
1404
+ "name": "_oft",
1405
+ "type": "bool"
1406
+ }
1407
+ ],
1408
+ "name": "setOFTPath",
1409
+ "outputs": [],
1410
+ "stateMutability": "nonpayable",
1411
+ "type": "function"
1412
+ },
1413
+ {
1414
+ "inputs": [
1415
+ {
1416
+ "internalType": "bool",
1417
+ "name": "_paused",
1418
+ "type": "bool"
1419
+ }
1420
+ ],
1421
+ "name": "setPause",
1422
+ "outputs": [],
1423
+ "stateMutability": "nonpayable",
1424
+ "type": "function"
1425
+ },
1426
+ {
1427
+ "inputs": [
1428
+ {
1429
+ "internalType": "uint256",
1430
+ "name": "_gasLimit",
1431
+ "type": "uint256"
1432
+ }
1433
+ ],
1434
+ "name": "setTransferGasLimit",
1435
+ "outputs": [],
1436
+ "stateMutability": "nonpayable",
1437
+ "type": "function"
1438
+ },
1439
+ {
1440
+ "inputs": [],
1441
+ "name": "sharedDecimals",
1442
+ "outputs": [
1443
+ {
1444
+ "internalType": "uint8",
1445
+ "name": "",
1446
+ "type": "uint8"
1447
+ }
1448
+ ],
1449
+ "stateMutability": "view",
1450
+ "type": "function"
1451
+ },
1452
+ {
1453
+ "inputs": [],
1454
+ "name": "stargateType",
1455
+ "outputs": [
1456
+ {
1457
+ "internalType": "enum StargateType",
1458
+ "name": "",
1459
+ "type": "uint8"
1460
+ }
1461
+ ],
1462
+ "stateMutability": "pure",
1463
+ "type": "function"
1464
+ },
1465
+ {
1466
+ "inputs": [],
1467
+ "name": "status",
1468
+ "outputs": [
1469
+ {
1470
+ "internalType": "uint8",
1471
+ "name": "",
1472
+ "type": "uint8"
1473
+ }
1474
+ ],
1475
+ "stateMutability": "view",
1476
+ "type": "function"
1477
+ },
1478
+ {
1479
+ "inputs": [],
1480
+ "name": "token",
1481
+ "outputs": [
1482
+ {
1483
+ "internalType": "address",
1484
+ "name": "",
1485
+ "type": "address"
1486
+ }
1487
+ ],
1488
+ "stateMutability": "view",
1489
+ "type": "function"
1490
+ },
1491
+ {
1492
+ "inputs": [
1493
+ {
1494
+ "internalType": "address",
1495
+ "name": "newOwner",
1496
+ "type": "address"
1497
+ }
1498
+ ],
1499
+ "name": "transferOwnership",
1500
+ "outputs": [],
1501
+ "stateMutability": "nonpayable",
1502
+ "type": "function"
1503
+ },
1504
+ {
1505
+ "inputs": [
1506
+ {
1507
+ "internalType": "address",
1508
+ "name": "_newOwner",
1509
+ "type": "address"
1510
+ }
1511
+ ],
1512
+ "name": "transferTokenOwnership",
1513
+ "outputs": [],
1514
+ "stateMutability": "nonpayable",
1515
+ "type": "function"
1516
+ },
1517
+ {
1518
+ "inputs": [],
1519
+ "name": "treasuryFee",
1520
+ "outputs": [
1521
+ {
1522
+ "internalType": "uint64",
1523
+ "name": "",
1524
+ "type": "uint64"
1525
+ }
1526
+ ],
1527
+ "stateMutability": "view",
1528
+ "type": "function"
1529
+ },
1530
+ {
1531
+ "inputs": [
1532
+ {
1533
+ "internalType": "bytes32",
1534
+ "name": "guid",
1535
+ "type": "bytes32"
1536
+ },
1537
+ {
1538
+ "internalType": "uint8",
1539
+ "name": "index",
1540
+ "type": "uint8"
1541
+ }
1542
+ ],
1543
+ "name": "unreceivedTokens",
1544
+ "outputs": [
1545
+ {
1546
+ "internalType": "bytes32",
1547
+ "name": "hash",
1548
+ "type": "bytes32"
1549
+ }
1550
+ ],
1551
+ "stateMutability": "view",
1552
+ "type": "function"
1553
+ },
1554
+ {
1555
+ "inputs": [],
1556
+ "name": "withdrawPlannerFee",
1557
+ "outputs": [],
1558
+ "stateMutability": "nonpayable",
1559
+ "type": "function"
1560
+ },
1561
+ {
1562
+ "inputs": [
1563
+ {
1564
+ "internalType": "address",
1565
+ "name": "_to",
1566
+ "type": "address"
1567
+ },
1568
+ {
1569
+ "internalType": "uint64",
1570
+ "name": "_amountSD",
1571
+ "type": "uint64"
1572
+ }
1573
+ ],
1574
+ "name": "withdrawTreasuryFee",
1575
+ "outputs": [],
1576
+ "stateMutability": "nonpayable",
1577
+ "type": "function"
1578
+ }
1579
+ ],
1580
+ "bytecode": "0x6101406040526108fc6001556002805460ff60a01b1916600160a01b1790553480156200002b57600080fd5b5060405162004eb738038062004eb78339810160408190526200004e91620002c8565b8383838383846001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000092573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000b8919062000325565b848484620000c63362000249565b6001600160a01b03851660805260ff8084169085161015620000fb57604051632e4b554360e01b815260040160405180910390fd5b62000107838562000360565b6200011490600a6200047f565b60c05260ff831660a0526001600160a01b03821660e08190526040805163416ecebf60e01b8152905163416ecebf916004808201926020929091908290030181865afa15801562000169573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018f919062000490565b63ffffffff1661010052620001a48162000249565b505050505050505050816001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002129190620004b8565b6001600160a01b03166101208190526200023f5760405163832ac1e960e01b815260040160405180910390fd5b50505050620004d6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114620002b157600080fd5b919050565b805160ff81168114620002b157600080fd5b60008060008060808587031215620002df57600080fd5b620002ea8562000299565b9350620002fa60208601620002b6565b92506200030a6040860162000299565b91506200031a6060860162000299565b905092959194509250565b6000602082840312156200033857600080fd5b6200034382620002b6565b9392505050565b634e487b7160e01b600052601160045260246000fd5b60ff82811682821603908111156200037c576200037c6200034a565b92915050565b600181815b80851115620003c3578160001904821115620003a757620003a76200034a565b80851615620003b557918102915b93841c939080029062000387565b509250929050565b600082620003dc575060016200037c565b81620003eb575060006200037c565b81600181146200040457600281146200040f576200042f565b60019150506200037c565b60ff8411156200042357620004236200034a565b50506001821b6200037c565b5060208310610133831016604e8410600b841016171562000454575081810a6200037c565b62000460838362000382565b80600019048211156200047757620004776200034a565b029392505050565b60006200034360ff841683620003cb565b600060208284031215620004a357600080fd5b815163ffffffff811681146200034357600080fd5b600060208284031215620004cb57600080fd5b620003438262000299565b60805160a05160c05160e05161010051610120516148fe620005b9600039600081816105ec0152612e6f015260008181610635015261177c0152600081816105a0015281816111c30152818161203a01528181612e910152613609015260008181610b9201528181610bfd01528181610df401528181610f4e01528181610feb01528181611015015281816110ed015281816118e6015281816122f60152818161242c01528181612456015281816126b40152612a340152600061067e0152600081816108ab0152818161138c015281816128e40152612a0c01526148fe6000f3fe60806040526004361061024f5760003560e01c80637260753711610138578063b0d7ca5d116100b0578063cbef2aa91161007f578063d621ad3f11610064578063d621ad3f14610841578063f2fde38b14610879578063fc0c546a1461089957600080fd5b8063cbef2aa9146107e5578063cc32d1761461080757600080fd5b8063b0d7ca5d1461076f578063bedb86fb14610784578063c7c7f5b3146107a4578063c859c483146107c557600080fd5b80638da5cb5b116101075780639f68b964116100ec5780639f68b96414610713578063a7229fd91461072f578063a88835d71461074f57600080fd5b80638da5cb5b146106d55780639561b12f146106f357600080fd5b80637260753714610623578063857749b01461066c57806388543f0e146106a05780638c70830b146106b557600080fd5b806338da6b8e116101cb578063461bb0b91161019a5780635e280f111161017f5780635e280f111461058e578063647846a5146105da578063715018a61461060e57600080fd5b8063461bb0b9146105515780635114bf091461057157600080fd5b806338da6b8e146104945780633b6f743b146104e45780633faa12c514610511578063434def551461053157600080fd5b8063200d2ed21161022257806321e6b53d1161020757806321e6b53d1461036b5780632bc5114c1461038b578063341a46481461048157600080fd5b8063200d2ed214610316578063203bd15f1461034957600080fd5b80630141e41b146102545780630d35b4151461028a578063156a0d0f146102b957806316909bca146102fa575b600080fd5b34801561026057600080fd5b5061027461026f366004613820565b6108cd565b60405161028191906138fd565b60405180910390f35b34801561029657600080fd5b506102aa6102a5366004613928565b610b52565b604051610281939291906139ad565b3480156102c557600080fd5b50604080517f02e49c2c0000000000000000000000000000000000000000000000000000000081526000602082015201610281565b34801561030657600080fd5b5060016040516102819190613a64565b34801561032257600080fd5b5060025461033790600160a01b900460ff1681565b60405160ff9091168152602001610281565b34801561035557600080fd5b50610369610364366004613b2d565b61104d565b005b34801561037757600080fd5b50610369610386366004613baf565b61134c565b34801561039757600080fd5b506104206040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152506040805160c0810182526002546001600160a01b03908116825260055481166020830152600754811692820192909252600654821660608201526003548216608082015260045490911660a082015290565b6040516102819190600060c0820190506001600160a01b038084511683528060208501511660208401528060408501511660408401528060608501511660608401528060808501511660808401528060a08501511660a08401525092915050565b61036961048f366004613bca565b6113eb565b3480156104a057600080fd5b506104cb6104af366004613be3565b60086020526000908152604090205467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610281565b3480156104f057600080fd5b506105046104ff366004613c0c565b6114c5565b6040516102819190613c5e565b34801561051d57600080fd5b5061036961052c366004613c75565b611772565b34801561053d57600080fd5b5061036961054c366004613cb2565b611846565b34801561055d57600080fd5b5061036961056c366004613d15565b611ab4565b34801561057d57600080fd5b50475b604051908152602001610281565b34801561059a57600080fd5b506105c27f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610281565b3480156105e657600080fd5b506105c27f000000000000000000000000000000000000000000000000000000000000000081565b34801561061a57600080fd5b50610369611c62565b34801561062f57600080fd5b506106577f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610281565b34801561067857600080fd5b506103377f000000000000000000000000000000000000000000000000000000000000000081565b3480156106ac57600080fd5b50600154610580565b3480156106c157600080fd5b506103696106d0366004613bca565b611c76565b3480156106e157600080fd5b506000546001600160a01b03166105c2565b3480156106ff57600080fd5b5061036961070e366004613d27565b611c83565b34801561071f57600080fd5b5060405160018152602001610281565b34801561073b57600080fd5b5061058061074a366004613d9a565b611de9565b34801561075b57600080fd5b5061036961076a366004613dd6565b611ee7565b34801561077b57600080fd5b50610369612113565b34801561079057600080fd5b5061036961079f366004613e5f565b61217c565b6107b76107b2366004613e7c565b612237565b604051610281929190613f1a565b3480156107d157600080fd5b506103696107e0366004613f3e565b61226b565b6107f86107f3366004613e7c565b612366565b60405161028193929190613f6a565b34801561081357600080fd5b506002546104cb907501000000000000000000000000000000000000000000900467ffffffffffffffff1681565b34801561084d57600080fd5b5061058061085c366004613fc5565b600960209081526000928352604080842090915290825290205481565b34801561088557600080fd5b50610369610894366004613baf565b61254c565b3480156108a557600080fd5b506105c27f000000000000000000000000000000000000000000000000000000000000000081565b600254606090600160a01b900460ff1660011461094557600254600119600160a01b90910460ff1601610913576040516376a9ad7360e01b815260040160405180910390fd5b6040517fdb22c33c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002805460ff60a01b1916740200000000000000000000000000000000000000001790556003546001600160a01b031633811461099557604051635bd25eff60e01b815260040160405180910390fd5b60008367ffffffffffffffff8111156109b0576109b0613ff1565b6040519080825280602002602001820160405280156109f557816020015b60408051808201909152600080825260208201528152602001906001900390816109ce5790505b5090506000805b85811015610af75736878783818110610a1757610a17614020565b90506060020190506000610a81826020016020810190610a37919061404f565b610a47606085016040860161404f565b60086000610a586020880188613be3565b63ffffffff1663ffffffff1681526020019081526020016000206125f89092919063ffffffff16565b905067ffffffffffffffff811615610aed576040805180820190915280610aab6020850185613be3565b63ffffffff16815267ffffffffffffffff83166020909101528585610acf8161409b565b965081518110610ae157610ae1614020565b60200260200101819052505b50506001016109fc565b508082527fce105e156370093e6600169f7c01277f740d45fbcf95435227ce6f43ad0c3abd8783604051610b2c9291906140d3565b60405180910390a1509150506002805460ff60a01b1916600160a01b1790559392505050565b60408051808201909152600080825260208201526060610b85604051806040016040528060008152602001600081525090565b60408051808201909152807f00000000000000000000000000000000000000000000000000000000000000008152602001610c2060086000886000016020810190610bd09190613be3565b63ffffffff16815260208101919091526040016000205467ffffffffffffffff1667ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b81525092506000610c4d8460200151866040013511610c435785604001356126ad565b84602001516126ad565b90506000610c7c610c616020880188613be3565b83610c77610c7260c08b018b6140f2565b6126ed565b612730565b600254604080517f81993cd000000000000000000000000000000000000000000000000000000000815283516001600160a01b039081166004830152602085015163ffffffff1660248301529184015167ffffffffffffffff9081166044830152606085015116606482015260808401511515608482015260a0840151151560a48201529293506000929116906381993cd09060c401602060405180830381865afa158015610d2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d539190614157565b90508267ffffffffffffffff168167ffffffffffffffff1614610fd05760408051600180825281830190925290816020015b604080518082019091526000815260606020820152815260200190600190039081610d855790505094508267ffffffffffffffff168167ffffffffffffffff161015610ea7576040518060400160405280610e1c610e178487610de89190614174565b67ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b6127ba565b610e46907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff614195565b81526020016040518060400160405280600c81526020017f70726f746f636f6c20666565000000000000000000000000000000000000000081525081525085600081518110610e9757610e97614020565b6020026020010181905250610fd0565b8267ffffffffffffffff168167ffffffffffffffff161115610fd0576000610ecf8483614174565b9091039050600067ffffffffffffffff84811690831603610f30576040805160008082526020820190925290610f28565b604080518082019091526000815260606020820152815260200190600190039081610f005790505b509550610fce565b6040518060400160405280610f71610e178467ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b81526020016040518060400160405280600681526020017f726577617264000000000000000000000000000000000000000000000000000081525081525086600081518110610fc257610fc2614020565b60200260200101819052505b505b604051806040016040528061100e8567ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b81526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff8416029052959794965050505050565b600254600160a01b900460ff1660011461109057600254600119600160a01b90910460ff1601610913576040516376a9ad7360e01b815260040160405180910390fd5b6002805460ff60a01b1916740200000000000000000000000000000000000000001790556006546001600160a01b03163381146110e057604051635bd25eff60e01b815260040160405180910390fd5b67ffffffffffffffff84167f00000000000000000000000000000000000000000000000000000000000000000282158015906060906111795761117661112c60608c0160408d0161404f565b61113960208d018d613be3565b8589898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061287092505050565b90505b600061118589856128a2565b9050801561128e578215611232576040517f7cb590120000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906111ff908c908e9060009088906004016141e1565b600060405180830381600087803b15801561121957600080fd5b505af115801561122d573d6000803e3d6000fd5b505050505b6001600160a01b0389168a7fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c61126b60208f018f613be3565b6040805163ffffffff9092168252602082018990520160405180910390a361132c565b61129b60208c018c613be3565b8985846040516020016112b19493929190614213565b60408051601f19818403018152918152815160209283012060008d8152600984528281208180528452918220557e7c17198cd078035dc663f9a0961f84cb6265411d0b4c793f96d432f6af4b55918c919061130e908f018f613be3565b8c888760405161132396959493929190614291565b60405180910390a15b50506002805460ff60a01b1916600160a01b179055505050505050505050565b611354612949565b6040517ff2fde38b0000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063f2fde38b90602401600060405180830381600087803b1580156113d057600080fd5b505af11580156113e4573d6000803e3d6000fd5b5050505050565b6007546001600160a01b031633811461141757604051635bd25eff60e01b815260040160405180910390fd5b611420826129bd565b600061142c33846129f5565b905080600260158282829054906101000a900467ffffffffffffffff1661145391906142e0565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507fa064a2faa279f4d67c85c8fc69d4ebb7de2739a9e6dd864dfdd1b9e066d4bfd0816040516114b8919067ffffffffffffffff91909116815260200190565b60405180910390a1505050565b604080518082019091526000808252602082015260006114e884604001356126ad565b90508067ffffffffffffffff1660000361152e576040517f3442dd9500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611540610c7260c08701876140f2565b905080156116ae576006546040805160c081019091523381526001600160a01b0390911690633292cf029060208082019061157d908a018a613be3565b63ffffffff1681526020898101359082015267ffffffffffffffff861660408201526060016115af60a08a018a6140f2565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506020016115f660808a018a6140f2565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509152506040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815261166791908890600401614370565b6040805180830381865afa158015611683573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a7919061441e565b925061176a565b6000806116be60808801886140f2565b60065492109250506001600160a01b03166375d2208c6116e16020890189613be3565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815263ffffffff91909116600482015283151560248201526044016040805180830381865afa158015611742573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611766919061441e565b9350505b505092915050565b61177a612949565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff168263ffffffff16036117df576040517fada8342400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff8083166000908152600860205260409020611801918390612adb16565b6040805163ffffffff8416815282151560208201527faf6b8dd4c5a827e03f548d06181b36aaba61e22436ff1cfa9bc409d576366a6091015b60405180910390a15050565b600254600160a01b900460ff1660011461188957600254600119600160a01b90910460ff1601610913576040516376a9ad7360e01b815260040160405180910390fd5b6002805460ff60a01b1916740200000000000000000000000000000000000000001790556006546001600160a01b03163381146118d957604051635bd25eff60e01b815260040160405180910390fd5b67ffffffffffffffff82167f000000000000000000000000000000000000000000000000000000000000000002600061191285836128a2565b90508015611976576001600160a01b038516877fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c61195360208c018c613be3565b6040805163ffffffff9092168252602082018790520160405180910390a3611a97565b6119836020890189613be3565b60405160e09190911b7fffffffff00000000000000000000000000000000000000000000000000000000166020820152606086901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660248201526038810183905260580160408051601f19818403018152918152815160209283012060008a81526009845282812060ff8b168252845291909120557e7c17198cd078035dc663f9a0961f84cb6265411d0b4c793f96d432f6af4b559088908890611a4b908c018c613be3565b6040805193845260ff909216602084015263ffffffff16908201526001600160a01b03871660608201526080810184905260c060a0820181905260009082015260e00160405180910390a15b50506002805460ff60a01b1916600160a01b179055505050505050565b611abc612949565b611ac96020820182613baf565b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055611b066040820160208301613baf565b6005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055611b436060820160408301613baf565b6007805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055611b806080820160608301613baf565b6006805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055611bbd60a0820160808301613baf565b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055611bfa60c0820160a08301613baf565b6004805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040517f9774229668135b546675daf425e41c0848f60aa32d0951881245f4f528cc33f090611c5790839061443a565b60405180910390a150565b611c6a612949565b611c746000612ba5565b565b611c7e612949565b600155565b600254600160a01b900460ff16600114611cc657600254600119600160a01b90910460ff1601610913576040516376a9ad7360e01b815260040160405180910390fd5b6002805460ff60a01b1916740200000000000000000000000000000000000000001790556003546001600160a01b0316338114611d1657604051635bd25eff60e01b815260040160405180910390fd5b60005b82811015611d945736848483818110611d3457611d34614020565b9050604002019050611d8b816020016020810190611d52919061404f565b60086000611d636020860186613be3565b63ffffffff1663ffffffff168152602001908152602001600020612c0290919063ffffffff16565b50600101611d19565b507f10c5f2b007767d266c6c75c86ae9ed0c74e6320b30bda231af7396a990e7263c848484604051611dc8939291906144b9565b60405180910390a150506002805460ff60a01b1916600160a01b1790555050565b600254600090600160a01b900460ff16600114611e2f57600254600119600160a01b90910460ff1601610913576040516376a9ad7360e01b815260040160405180910390fd5b6002805460ff60a01b1916740200000000000000000000000000000000000000001790556007546001600160a01b0316338114611e7f57604051635bd25eff60e01b815260040160405180910390fd5b6001600160a01b038516611ebf576040517f809fc44b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611ecc8585856000612c9c565b50506002805460ff60a01b1916600160a01b17905592915050565b600254600160a01b900460ff16600114611f2a57600254600119600160a01b90910460ff1601610913576040516376a9ad7360e01b815260040160405180910390fd5b6002805460ff60a01b191674020000000000000000000000000000000000000000179055604051611f67908690869086908690869060200161452c565b60408051601f19818403018152918152815160209283012060008a81526009845282812060ff8b16825290935291205414611fce576040517faba8b6ef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600087815260096020908152604080832060ff8a168452909152812055611ff58484612ce4565b612004612001846126ad565b50565b80156120ab576040517f7cb590120000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906120789087908b906000908890889060040161459e565b600060405180830381600087803b15801561209257600080fd5b505af11580156120a6573d6000803e3d6000fd5b505050505b6040805163ffffffff87168152602081018590526001600160a01b0386169189917fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c910160405180910390a350506002805460ff60a01b1916600160a01b1790555050505050565b6005546001600160a01b031633811461213f57604051635bd25eff60e01b815260040160405180910390fd5b4761214c33826000612d29565b6040518181527f19e23b96a5e0d494b59baca97d1fe386cf8e80a978dfd8845d25f1a9d5c7e1839060200161183a565b6005546001600160a01b03163381146121a857604051635bd25eff60e01b815260040160405180910390fd5b600254600119600160a01b90910460ff16016121d7576040516376a9ad7360e01b815260040160405180910390fd5b816121e35760016121e6565b60035b6002805460ff92909216600160a01b0260ff60a01b1990921691909117905560405182151581527f878ac8a2ca79520471f8f3c8494fa802c03ce3bf034252aad7f22318984fdbdb9060200161183a565b61223f6137bf565b604080518082019091526000808252602082015261225e858585612366565b5090969095509350505050565b6007546001600160a01b031633811461229757604051635bd25eff60e01b815260040160405180910390fd5b81600260158282829054906101000a900467ffffffffffffffff166122bc9190614174565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555061231e836123198467ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b612ce4565b604080516001600160a01b038516815267ffffffffffffffff841660208201527fa46907b6b80b882da80d6e36cc905dde57fafff0a5442c8898526fe952d1e65391016114b8565b61236e6137bf565b6040805180820190915260008082526020820152604080518082019091526000815260606020820152600254600160a01b900460ff166001146123da57600254600119600160a01b90910460ff1601610913576040516376a9ad7360e01b815260040160405180910390fd5b6002805460ff60a01b1916740200000000000000000000000000000000000000001790556000808061240b89612d6a565b925092509250604051806040016040528061244f8467ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b81526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff8416029052945060006124a0612499368b90038b018b6145ef565b8751612e08565b905083156124bb576124b48a82848b612e5b565b96506124cd565b6124c78a82848b61303e565b90975094505b865133907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a6124ff60208e018e613be3565b89516020808c01516040805163ffffffff90951685529184019290925282015260600160405180910390a350506002805460ff60a01b1916600160a01b1790555092969195509350915050565b612554612949565b6001600160a01b0381166125ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61200181612ba5565b825460009067ffffffffffffffff1667fffffffffffffffe198101612649576040517f5a5cc94600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8067ffffffffffffffff168367ffffffffffffffff1610156126a55782810367ffffffffffffffff808216908616116126825784612684565b805b865467ffffffffffffffff191681840367ffffffffffffffff161787559250505b509392505050565b60006126e77f000000000000000000000000000000000000000000000000000000000000000083816126e1576126e1614621565b0461323a565b92915050565b60008115612727576040517f5d2d4a5b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50600192915050565b6040805160c08082018352600080835260208084018290528385018290526060808501839052608080860184905260a09586018490528651948501875233855263ffffffff8a1685840181905267ffffffffffffffff8a8116878a0152928601859052845260089092529490912054841690931492810192909252821515908201525b9392505050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82111561286c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e206160448201527f6e20696e7432353600000000000000000000000000000000000000000000000060648201526084016125e6565b5090565b6060848484846040516020016128899493929190614650565b6040516020818303038152906040529050949350505050565b6040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152602482018390526000917f0000000000000000000000000000000000000000000000000000000000000000909116906340c10f1990604401600060405180830381600087803b15801561292a57600080fd5b505af192505050801561293b575060015b156126e75750600192915050565b6000546001600160a01b03163314611c74576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016125e6565b3415612001576040517f3442dd9500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612a00826126ad565b90506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166379cc6790847f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff8516026040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015612abd57600080fd5b505af1158015612ad1573d6000803e3d6000fd5b5050505092915050565b815467ffffffffffffffff168115612b4d5767ffffffffffffffff811615612b2f576040517fca2bc39800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825467ffffffffffffffff191667ffffffffffffffff178355505050565b67ffffffffffffffff81811614612b90576040517fca2bc39800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825467ffffffffffffffff191683555b505050565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b815467ffffffffffffffff1667fffffffffffffffe198101612c2357505050565b612c2d82826142e0565b905067fffffffffffffffe1967ffffffffffffffff821601612c7b576040517f5a5cc94600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825467ffffffffffffffff191667ffffffffffffffff919091161790915550565b612ca8848484846132d4565b612cde576040517f7c75c3d200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b6000612cf083836128a2565b905080612ba0576040517f06a6167e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612d34838383613309565b612ba0576040517f7c75c3d200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008080612d7e610c7260c08601866140f2565b9250612d8e3385604001356129f5565b91506000612da9612da26020870187613be3565b8486612730565b9050612dc181612dbc87606001356126ad565b613330565b9150612e008260086000612dd860208a018a613be3565b63ffffffff1663ffffffff16815260200190815260200160002061352590919063ffffffff16565b509193909250565b60408051808201909152600080825260208201523415612e54576040517febf2eaea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5090919050565b612e636137bf565b835115612eba57612eba7f0000000000000000000000000000000000000000000000000000000000000000337f000000000000000000000000000000000000000000000000000000000000000087600001516135b3565b602084015115612ed157612ed184602001516135bf565b6006546040805160c081019091523381526001600160a01b039091169063ff6fb30090602080820190612f06908a018a613be3565b63ffffffff1681526020898101359082015267ffffffffffffffff87166040820152606001612f3860a08a018a6140f2565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250602001612f7f60808a018a6140f2565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509152506040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b168152612ff29190889087906004016146ce565b6080604051808303816000875af1158015613011573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613035919061477e565b95945050505050565b6130466137bf565b604080518082019091526000815260606020820152602085015115613097576040517fb5e0bf8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006546040805160a081019091523381526001600160a01b03909116906385afd453906020808201906130cc908b018b613be3565b63ffffffff16815260208a8101359082015267ffffffffffffffff88166040820152606001600061310060808c018c6140f2565b9190911190915250604080517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815282516001600160a01b03166004820152602083015163ffffffff166024820152908201516044820152606082015167ffffffffffffffff1660648201526080909101511515608482015260a4016000604051808303816000875af11580156131a1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131c9919081019061479a565b60408201515187519294509092509080821461322f57818111156131fd578181036131f686826000613309565b505061322f565b6040517fa028531600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505094509492505050565b600067ffffffffffffffff82111561286c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201527f342062697473000000000000000000000000000000000000000000000000000060648201526084016125e6565b60006001600160a01b0385166132f6576132ef848484613309565b9050613301565b613035858585613632565b949350505050565b60008082613317575a61331b565b6001545b9050600080600080878986f195945050505050565b600254604080517f43d9564d00000000000000000000000000000000000000000000000000000000815284516001600160a01b039081166004830152602086015163ffffffff1660248301529185015167ffffffffffffffff9081166044830152606086015116606482015260808501511515608482015260a0850151151560a482015260009291909116906343d9564d9060c4016020604051808303816000875af11580156133e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134089190614157565b604084015190915067ffffffffffffffff808216908316101561348f5761342f8282614174565b600280546015906134649084907501000000000000000000000000000000000000000000900467ffffffffffffffff166142e0565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506134bd565b8067ffffffffffffffff168267ffffffffffffffff1611156134bd5760006134b78284614174565b90920391505b8267ffffffffffffffff168267ffffffffffffffff1610806134e7575067ffffffffffffffff8216155b1561351e576040517fa1e8654500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5092915050565b815467ffffffffffffffff1667fffffffffffffffe19810161354657505050565b8167ffffffffffffffff168167ffffffffffffffff161015613594576040517f2b4d0ad500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825467ffffffffffffffff191691900367ffffffffffffffff16179055565b612ca8848484846136de565b6004546001600160a01b031680613602576040517fb5e0bf8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61362e81337f0000000000000000000000000000000000000000000000000000000000000000856135b3565b5050565b6040516001600160a01b0383166024820152604481018290526000906133019085907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152613732565b6040516001600160a01b03808516602483015283166044820152606481018290526000906130359086907f23b872dd000000000000000000000000000000000000000000000000000000009060840161367a565b6000806000846001600160a01b03168460405161374f919061488f565b6000604051808303816000865af19150503d806000811461378c576040519150601f19603f3d011682016040523d82523d6000602084013e613791565b606091505b5091509150816137a2576000613035565b8051158061303557508080602001905181019061303591906148ab565b604051806060016040528060008019168152602001600067ffffffffffffffff168152602001613802604051806040016040528060008152602001600081525090565b905290565b803563ffffffff8116811461381b57600080fd5b919050565b60008060006040848603121561383557600080fd5b61383e84613807565b9250602084013567ffffffffffffffff8082111561385b57600080fd5b818601915086601f83011261386f57600080fd5b81358181111561387e57600080fd5b87602060608302850101111561389357600080fd5b6020830194508093505050509250925092565b60008151808452602080850194506020840160005b838110156138f2578151805163ffffffff16885283015167ffffffffffffffff1683880152604090960195908201906001016138bb565b509495945050505050565b6020815260006127b360208301846138a6565b600060e0828403121561392257600080fd5b50919050565b60006020828403121561393a57600080fd5b813567ffffffffffffffff81111561395157600080fd5b61330184828501613910565b60005b83811015613978578181015183820152602001613960565b50506000910152565b6000815180845261399981602086016020860161395d565b601f01601f19169290920160200192915050565b8351815260208085015190820152600060a08201604060a0604085015281865180845260c08601915060c08160051b8701019350602080890160005b83811015613a46578887037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff40018552815180518852830151838801879052613a3387890182613981565b97505093820193908201906001016139e9565b50508751606088015250505060208501516080850152509050613301565b6020810160028310613a9f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b60006060828403121561392257600080fd5b80356001600160a01b038116811461381b57600080fd5b67ffffffffffffffff8116811461200157600080fd5b60008083601f840112613af657600080fd5b50813567ffffffffffffffff811115613b0e57600080fd5b602083019150836020828501011115613b2657600080fd5b9250929050565b60008060008060008060e08789031215613b4657600080fd5b613b508888613aa5565b955060608701359450613b6560808801613ab7565b935060a0870135613b7581613ace565b925060c087013567ffffffffffffffff811115613b9157600080fd5b613b9d89828a01613ae4565b979a9699509497509295939492505050565b600060208284031215613bc157600080fd5b6127b382613ab7565b600060208284031215613bdc57600080fd5b5035919050565b600060208284031215613bf557600080fd5b6127b382613807565b801515811461200157600080fd5b60008060408385031215613c1f57600080fd5b823567ffffffffffffffff811115613c3657600080fd5b613c4285828601613910565b9250506020830135613c5381613bfe565b809150509250929050565b8151815260208083015190820152604081016126e7565b60008060408385031215613c8857600080fd5b613c9183613807565b91506020830135613c5381613bfe565b803560ff8116811461381b57600080fd5b600080600080600060e08688031215613cca57600080fd5b613cd48787613aa5565b945060608601359350613ce960808701613ca1565b9250613cf760a08701613ab7565b915060c0860135613d0781613ace565b809150509295509295909350565b600060c0828403121561392257600080fd5b600080600060408486031215613d3c57600080fd5b613d4584613807565b9250602084013567ffffffffffffffff80821115613d6257600080fd5b818601915086601f830112613d7657600080fd5b813581811115613d8557600080fd5b8760208260061b850101111561389357600080fd5b600080600060608486031215613daf57600080fd5b613db884613ab7565b9250613dc660208501613ab7565b9150604084013590509250925092565b600080600080600080600060c0888a031215613df157600080fd5b87359650613e0160208901613ca1565b9550613e0f60408901613807565b9450613e1d60608901613ab7565b93506080880135925060a088013567ffffffffffffffff811115613e4057600080fd5b613e4c8a828b01613ae4565b989b979a50959850939692959293505050565b600060208284031215613e7157600080fd5b81356127b381613bfe565b60008060008385036080811215613e9257600080fd5b843567ffffffffffffffff811115613ea957600080fd5b613eb587828801613910565b9450506040601f1982011215613eca57600080fd5b50602084019150613edd60608501613ab7565b90509250925092565b8051825267ffffffffffffffff60208201511660208301526040810151612ba0604084018280518252602090810151910152565b60c08101613f288285613ee6565b82516080830152602083015160a08301526127b3565b60008060408385031215613f5157600080fd5b613f5a83613ab7565b91506020830135613c5381613ace565b613f748185613ee6565b82516080820152602083015160a082015260e060c082015268ffffffffffffffffff82511660e0820152600060208301516040610100840152613fbb610120840182613981565b9695505050505050565b60008060408385031215613fd857600080fd5b82359150613fe860208401613ca1565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561406157600080fd5b81356127b381613ace565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036140cc576140cc61406c565b5060010190565b63ffffffff8316815260406020820152600061330160408301846138a6565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261412757600080fd5b83018035915067ffffffffffffffff82111561414257600080fd5b602001915036819003821315613b2657600080fd5b60006020828403121561416957600080fd5b81516127b381613ace565b67ffffffffffffffff82811682821603908082111561351e5761351e61406c565b808202600082127f8000000000000000000000000000000000000000000000000000000000000000841416156141cd576141cd61406c565b81810583148215176126e7576126e761406c565b6001600160a01b038516815283602082015261ffff83166040820152608060608201526000613fbb6080830184613981565b7fffffffff000000000000000000000000000000000000000000000000000000008560e01b1681527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008460601b1660048201528260188201526000825161428181603885016020870161395d565b9190910160380195945050505050565b86815260ff8616602082015263ffffffff851660408201526001600160a01b038416606082015282608082015260c060a082015260006142d460c0830184613981565b98975050505050505050565b67ffffffffffffffff81811683821601908082111561351e5761351e61406c565b6001600160a01b03815116825263ffffffff60208201511660208301526040810151604083015267ffffffffffffffff60608201511660608301526000608082015160c0608085015261435760c0850182613981565b905060a083015184820360a08601526130358282613981565b6040815260006143836040830185614301565b905082151560208301529392505050565b6040805190810167ffffffffffffffff811182821017156143b7576143b7613ff1565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156143e6576143e6613ff1565b604052919050565b60006040828403121561440057600080fd5b614408614394565b9050815181526020820151602082015292915050565b60006040828403121561443057600080fd5b6127b383836143ee565b60c081016001600160a01b038061445085613ab7565b1683528061446060208601613ab7565b1660208401528061447360408601613ab7565b1660408401528061448660608601613ab7565b1660608401528061449960808601613ab7565b166080840152806144ac60a08601613ab7565b1660a08401525092915050565b63ffffffff848116825260406020808401829052838201859052600092869160608601855b8881101561451e57836144f086613807565b1682528285013561450081613ace565b67ffffffffffffffff168284015293850193908501906001016144de565b509998505050505050505050565b7fffffffff000000000000000000000000000000000000000000000000000000008660e01b1681527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008560601b1660048201528360188201528183603883013760009101603801908152949350505050565b6001600160a01b038616815284602082015261ffff8416604082015260806060820152816080820152818360a0830137600081830160a090810191909152601f909201601f19160101949350505050565b60006040828403121561460157600080fd5b614609614394565b82358152602083013560208201528091505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7fffffffffffffffff0000000000000000000000000000000000000000000000008560c01b1681527fffffffff000000000000000000000000000000000000000000000000000000008460e01b16600882015282600c820152600082516146be81602c85016020870161395d565b91909101602c0195945050505050565b6080815260006146e16080830186614301565b90506146fa602083018580518252602090810151910152565b6001600160a01b0383166060830152949350505050565b60006080828403121561472357600080fd5b6040516060810181811067ffffffffffffffff8211171561474657614746613ff1565b806040525080915082518152602083015161476081613ace565b602082015261477284604085016143ee565b60408201525092915050565b60006080828403121561479057600080fd5b6127b38383614711565b60008060a083850312156147ad57600080fd5b6147b78484614711565b9150608083015167ffffffffffffffff808211156147d457600080fd5b90840190604082870312156147e857600080fd5b6147f0614394565b825168ffffffffffffffffff8116811461480957600080fd5b81526020838101518381111561481e57600080fd5b80850194505087601f85011261483357600080fd5b83518381111561484557614845613ff1565b61485782601f19601f840116016143bd565b9350808452888282870101111561486d57600080fd5b61487c8183860184880161395d565b5081019190915292959294509192505050565b600082516148a181846020870161395d565b9190910192915050565b6000602082840312156148bd57600080fd5b81516127b381613bfe56fea2646970667358221220604370bab5c6f23c436bc1cfc0ef7e030924aef9dda95add92a70e504cde735664736f6c63430008160033",
1581
+ "deployedBytecode": "0x60806040526004361061024f5760003560e01c80637260753711610138578063b0d7ca5d116100b0578063cbef2aa91161007f578063d621ad3f11610064578063d621ad3f14610841578063f2fde38b14610879578063fc0c546a1461089957600080fd5b8063cbef2aa9146107e5578063cc32d1761461080757600080fd5b8063b0d7ca5d1461076f578063bedb86fb14610784578063c7c7f5b3146107a4578063c859c483146107c557600080fd5b80638da5cb5b116101075780639f68b964116100ec5780639f68b96414610713578063a7229fd91461072f578063a88835d71461074f57600080fd5b80638da5cb5b146106d55780639561b12f146106f357600080fd5b80637260753714610623578063857749b01461066c57806388543f0e146106a05780638c70830b146106b557600080fd5b806338da6b8e116101cb578063461bb0b91161019a5780635e280f111161017f5780635e280f111461058e578063647846a5146105da578063715018a61461060e57600080fd5b8063461bb0b9146105515780635114bf091461057157600080fd5b806338da6b8e146104945780633b6f743b146104e45780633faa12c514610511578063434def551461053157600080fd5b8063200d2ed21161022257806321e6b53d1161020757806321e6b53d1461036b5780632bc5114c1461038b578063341a46481461048157600080fd5b8063200d2ed214610316578063203bd15f1461034957600080fd5b80630141e41b146102545780630d35b4151461028a578063156a0d0f146102b957806316909bca146102fa575b600080fd5b34801561026057600080fd5b5061027461026f366004613820565b6108cd565b60405161028191906138fd565b60405180910390f35b34801561029657600080fd5b506102aa6102a5366004613928565b610b52565b604051610281939291906139ad565b3480156102c557600080fd5b50604080517f02e49c2c0000000000000000000000000000000000000000000000000000000081526000602082015201610281565b34801561030657600080fd5b5060016040516102819190613a64565b34801561032257600080fd5b5060025461033790600160a01b900460ff1681565b60405160ff9091168152602001610281565b34801561035557600080fd5b50610369610364366004613b2d565b61104d565b005b34801561037757600080fd5b50610369610386366004613baf565b61134c565b34801561039757600080fd5b506104206040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152506040805160c0810182526002546001600160a01b03908116825260055481166020830152600754811692820192909252600654821660608201526003548216608082015260045490911660a082015290565b6040516102819190600060c0820190506001600160a01b038084511683528060208501511660208401528060408501511660408401528060608501511660608401528060808501511660808401528060a08501511660a08401525092915050565b61036961048f366004613bca565b6113eb565b3480156104a057600080fd5b506104cb6104af366004613be3565b60086020526000908152604090205467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610281565b3480156104f057600080fd5b506105046104ff366004613c0c565b6114c5565b6040516102819190613c5e565b34801561051d57600080fd5b5061036961052c366004613c75565b611772565b34801561053d57600080fd5b5061036961054c366004613cb2565b611846565b34801561055d57600080fd5b5061036961056c366004613d15565b611ab4565b34801561057d57600080fd5b50475b604051908152602001610281565b34801561059a57600080fd5b506105c27f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610281565b3480156105e657600080fd5b506105c27f000000000000000000000000000000000000000000000000000000000000000081565b34801561061a57600080fd5b50610369611c62565b34801561062f57600080fd5b506106577f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610281565b34801561067857600080fd5b506103377f000000000000000000000000000000000000000000000000000000000000000081565b3480156106ac57600080fd5b50600154610580565b3480156106c157600080fd5b506103696106d0366004613bca565b611c76565b3480156106e157600080fd5b506000546001600160a01b03166105c2565b3480156106ff57600080fd5b5061036961070e366004613d27565b611c83565b34801561071f57600080fd5b5060405160018152602001610281565b34801561073b57600080fd5b5061058061074a366004613d9a565b611de9565b34801561075b57600080fd5b5061036961076a366004613dd6565b611ee7565b34801561077b57600080fd5b50610369612113565b34801561079057600080fd5b5061036961079f366004613e5f565b61217c565b6107b76107b2366004613e7c565b612237565b604051610281929190613f1a565b3480156107d157600080fd5b506103696107e0366004613f3e565b61226b565b6107f86107f3366004613e7c565b612366565b60405161028193929190613f6a565b34801561081357600080fd5b506002546104cb907501000000000000000000000000000000000000000000900467ffffffffffffffff1681565b34801561084d57600080fd5b5061058061085c366004613fc5565b600960209081526000928352604080842090915290825290205481565b34801561088557600080fd5b50610369610894366004613baf565b61254c565b3480156108a557600080fd5b506105c27f000000000000000000000000000000000000000000000000000000000000000081565b600254606090600160a01b900460ff1660011461094557600254600119600160a01b90910460ff1601610913576040516376a9ad7360e01b815260040160405180910390fd5b6040517fdb22c33c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002805460ff60a01b1916740200000000000000000000000000000000000000001790556003546001600160a01b031633811461099557604051635bd25eff60e01b815260040160405180910390fd5b60008367ffffffffffffffff8111156109b0576109b0613ff1565b6040519080825280602002602001820160405280156109f557816020015b60408051808201909152600080825260208201528152602001906001900390816109ce5790505b5090506000805b85811015610af75736878783818110610a1757610a17614020565b90506060020190506000610a81826020016020810190610a37919061404f565b610a47606085016040860161404f565b60086000610a586020880188613be3565b63ffffffff1663ffffffff1681526020019081526020016000206125f89092919063ffffffff16565b905067ffffffffffffffff811615610aed576040805180820190915280610aab6020850185613be3565b63ffffffff16815267ffffffffffffffff83166020909101528585610acf8161409b565b965081518110610ae157610ae1614020565b60200260200101819052505b50506001016109fc565b508082527fce105e156370093e6600169f7c01277f740d45fbcf95435227ce6f43ad0c3abd8783604051610b2c9291906140d3565b60405180910390a1509150506002805460ff60a01b1916600160a01b1790559392505050565b60408051808201909152600080825260208201526060610b85604051806040016040528060008152602001600081525090565b60408051808201909152807f00000000000000000000000000000000000000000000000000000000000000008152602001610c2060086000886000016020810190610bd09190613be3565b63ffffffff16815260208101919091526040016000205467ffffffffffffffff1667ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b81525092506000610c4d8460200151866040013511610c435785604001356126ad565b84602001516126ad565b90506000610c7c610c616020880188613be3565b83610c77610c7260c08b018b6140f2565b6126ed565b612730565b600254604080517f81993cd000000000000000000000000000000000000000000000000000000000815283516001600160a01b039081166004830152602085015163ffffffff1660248301529184015167ffffffffffffffff9081166044830152606085015116606482015260808401511515608482015260a0840151151560a48201529293506000929116906381993cd09060c401602060405180830381865afa158015610d2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d539190614157565b90508267ffffffffffffffff168167ffffffffffffffff1614610fd05760408051600180825281830190925290816020015b604080518082019091526000815260606020820152815260200190600190039081610d855790505094508267ffffffffffffffff168167ffffffffffffffff161015610ea7576040518060400160405280610e1c610e178487610de89190614174565b67ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b6127ba565b610e46907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff614195565b81526020016040518060400160405280600c81526020017f70726f746f636f6c20666565000000000000000000000000000000000000000081525081525085600081518110610e9757610e97614020565b6020026020010181905250610fd0565b8267ffffffffffffffff168167ffffffffffffffff161115610fd0576000610ecf8483614174565b9091039050600067ffffffffffffffff84811690831603610f30576040805160008082526020820190925290610f28565b604080518082019091526000815260606020820152815260200190600190039081610f005790505b509550610fce565b6040518060400160405280610f71610e178467ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b81526020016040518060400160405280600681526020017f726577617264000000000000000000000000000000000000000000000000000081525081525086600081518110610fc257610fc2614020565b60200260200101819052505b505b604051806040016040528061100e8567ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b81526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff8416029052959794965050505050565b600254600160a01b900460ff1660011461109057600254600119600160a01b90910460ff1601610913576040516376a9ad7360e01b815260040160405180910390fd5b6002805460ff60a01b1916740200000000000000000000000000000000000000001790556006546001600160a01b03163381146110e057604051635bd25eff60e01b815260040160405180910390fd5b67ffffffffffffffff84167f00000000000000000000000000000000000000000000000000000000000000000282158015906060906111795761117661112c60608c0160408d0161404f565b61113960208d018d613be3565b8589898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061287092505050565b90505b600061118589856128a2565b9050801561128e578215611232576040517f7cb590120000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906111ff908c908e9060009088906004016141e1565b600060405180830381600087803b15801561121957600080fd5b505af115801561122d573d6000803e3d6000fd5b505050505b6001600160a01b0389168a7fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c61126b60208f018f613be3565b6040805163ffffffff9092168252602082018990520160405180910390a361132c565b61129b60208c018c613be3565b8985846040516020016112b19493929190614213565b60408051601f19818403018152918152815160209283012060008d8152600984528281208180528452918220557e7c17198cd078035dc663f9a0961f84cb6265411d0b4c793f96d432f6af4b55918c919061130e908f018f613be3565b8c888760405161132396959493929190614291565b60405180910390a15b50506002805460ff60a01b1916600160a01b179055505050505050505050565b611354612949565b6040517ff2fde38b0000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063f2fde38b90602401600060405180830381600087803b1580156113d057600080fd5b505af11580156113e4573d6000803e3d6000fd5b5050505050565b6007546001600160a01b031633811461141757604051635bd25eff60e01b815260040160405180910390fd5b611420826129bd565b600061142c33846129f5565b905080600260158282829054906101000a900467ffffffffffffffff1661145391906142e0565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507fa064a2faa279f4d67c85c8fc69d4ebb7de2739a9e6dd864dfdd1b9e066d4bfd0816040516114b8919067ffffffffffffffff91909116815260200190565b60405180910390a1505050565b604080518082019091526000808252602082015260006114e884604001356126ad565b90508067ffffffffffffffff1660000361152e576040517f3442dd9500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611540610c7260c08701876140f2565b905080156116ae576006546040805160c081019091523381526001600160a01b0390911690633292cf029060208082019061157d908a018a613be3565b63ffffffff1681526020898101359082015267ffffffffffffffff861660408201526060016115af60a08a018a6140f2565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506020016115f660808a018a6140f2565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509152506040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815261166791908890600401614370565b6040805180830381865afa158015611683573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a7919061441e565b925061176a565b6000806116be60808801886140f2565b60065492109250506001600160a01b03166375d2208c6116e16020890189613be3565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815263ffffffff91909116600482015283151560248201526044016040805180830381865afa158015611742573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611766919061441e565b9350505b505092915050565b61177a612949565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff168263ffffffff16036117df576040517fada8342400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff8083166000908152600860205260409020611801918390612adb16565b6040805163ffffffff8416815282151560208201527faf6b8dd4c5a827e03f548d06181b36aaba61e22436ff1cfa9bc409d576366a6091015b60405180910390a15050565b600254600160a01b900460ff1660011461188957600254600119600160a01b90910460ff1601610913576040516376a9ad7360e01b815260040160405180910390fd5b6002805460ff60a01b1916740200000000000000000000000000000000000000001790556006546001600160a01b03163381146118d957604051635bd25eff60e01b815260040160405180910390fd5b67ffffffffffffffff82167f000000000000000000000000000000000000000000000000000000000000000002600061191285836128a2565b90508015611976576001600160a01b038516877fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c61195360208c018c613be3565b6040805163ffffffff9092168252602082018790520160405180910390a3611a97565b6119836020890189613be3565b60405160e09190911b7fffffffff00000000000000000000000000000000000000000000000000000000166020820152606086901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660248201526038810183905260580160408051601f19818403018152918152815160209283012060008a81526009845282812060ff8b168252845291909120557e7c17198cd078035dc663f9a0961f84cb6265411d0b4c793f96d432f6af4b559088908890611a4b908c018c613be3565b6040805193845260ff909216602084015263ffffffff16908201526001600160a01b03871660608201526080810184905260c060a0820181905260009082015260e00160405180910390a15b50506002805460ff60a01b1916600160a01b179055505050505050565b611abc612949565b611ac96020820182613baf565b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055611b066040820160208301613baf565b6005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055611b436060820160408301613baf565b6007805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055611b806080820160608301613baf565b6006805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055611bbd60a0820160808301613baf565b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055611bfa60c0820160a08301613baf565b6004805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040517f9774229668135b546675daf425e41c0848f60aa32d0951881245f4f528cc33f090611c5790839061443a565b60405180910390a150565b611c6a612949565b611c746000612ba5565b565b611c7e612949565b600155565b600254600160a01b900460ff16600114611cc657600254600119600160a01b90910460ff1601610913576040516376a9ad7360e01b815260040160405180910390fd5b6002805460ff60a01b1916740200000000000000000000000000000000000000001790556003546001600160a01b0316338114611d1657604051635bd25eff60e01b815260040160405180910390fd5b60005b82811015611d945736848483818110611d3457611d34614020565b9050604002019050611d8b816020016020810190611d52919061404f565b60086000611d636020860186613be3565b63ffffffff1663ffffffff168152602001908152602001600020612c0290919063ffffffff16565b50600101611d19565b507f10c5f2b007767d266c6c75c86ae9ed0c74e6320b30bda231af7396a990e7263c848484604051611dc8939291906144b9565b60405180910390a150506002805460ff60a01b1916600160a01b1790555050565b600254600090600160a01b900460ff16600114611e2f57600254600119600160a01b90910460ff1601610913576040516376a9ad7360e01b815260040160405180910390fd5b6002805460ff60a01b1916740200000000000000000000000000000000000000001790556007546001600160a01b0316338114611e7f57604051635bd25eff60e01b815260040160405180910390fd5b6001600160a01b038516611ebf576040517f809fc44b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611ecc8585856000612c9c565b50506002805460ff60a01b1916600160a01b17905592915050565b600254600160a01b900460ff16600114611f2a57600254600119600160a01b90910460ff1601610913576040516376a9ad7360e01b815260040160405180910390fd5b6002805460ff60a01b191674020000000000000000000000000000000000000000179055604051611f67908690869086908690869060200161452c565b60408051601f19818403018152918152815160209283012060008a81526009845282812060ff8b16825290935291205414611fce576040517faba8b6ef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600087815260096020908152604080832060ff8a168452909152812055611ff58484612ce4565b612004612001846126ad565b50565b80156120ab576040517f7cb590120000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906120789087908b906000908890889060040161459e565b600060405180830381600087803b15801561209257600080fd5b505af11580156120a6573d6000803e3d6000fd5b505050505b6040805163ffffffff87168152602081018590526001600160a01b0386169189917fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c910160405180910390a350506002805460ff60a01b1916600160a01b1790555050505050565b6005546001600160a01b031633811461213f57604051635bd25eff60e01b815260040160405180910390fd5b4761214c33826000612d29565b6040518181527f19e23b96a5e0d494b59baca97d1fe386cf8e80a978dfd8845d25f1a9d5c7e1839060200161183a565b6005546001600160a01b03163381146121a857604051635bd25eff60e01b815260040160405180910390fd5b600254600119600160a01b90910460ff16016121d7576040516376a9ad7360e01b815260040160405180910390fd5b816121e35760016121e6565b60035b6002805460ff92909216600160a01b0260ff60a01b1990921691909117905560405182151581527f878ac8a2ca79520471f8f3c8494fa802c03ce3bf034252aad7f22318984fdbdb9060200161183a565b61223f6137bf565b604080518082019091526000808252602082015261225e858585612366565b5090969095509350505050565b6007546001600160a01b031633811461229757604051635bd25eff60e01b815260040160405180910390fd5b81600260158282829054906101000a900467ffffffffffffffff166122bc9190614174565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555061231e836123198467ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b612ce4565b604080516001600160a01b038516815267ffffffffffffffff841660208201527fa46907b6b80b882da80d6e36cc905dde57fafff0a5442c8898526fe952d1e65391016114b8565b61236e6137bf565b6040805180820190915260008082526020820152604080518082019091526000815260606020820152600254600160a01b900460ff166001146123da57600254600119600160a01b90910460ff1601610913576040516376a9ad7360e01b815260040160405180910390fd5b6002805460ff60a01b1916740200000000000000000000000000000000000000001790556000808061240b89612d6a565b925092509250604051806040016040528061244f8467ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b81526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff8416029052945060006124a0612499368b90038b018b6145ef565b8751612e08565b905083156124bb576124b48a82848b612e5b565b96506124cd565b6124c78a82848b61303e565b90975094505b865133907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a6124ff60208e018e613be3565b89516020808c01516040805163ffffffff90951685529184019290925282015260600160405180910390a350506002805460ff60a01b1916600160a01b1790555092969195509350915050565b612554612949565b6001600160a01b0381166125ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61200181612ba5565b825460009067ffffffffffffffff1667fffffffffffffffe198101612649576040517f5a5cc94600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8067ffffffffffffffff168367ffffffffffffffff1610156126a55782810367ffffffffffffffff808216908616116126825784612684565b805b865467ffffffffffffffff191681840367ffffffffffffffff161787559250505b509392505050565b60006126e77f000000000000000000000000000000000000000000000000000000000000000083816126e1576126e1614621565b0461323a565b92915050565b60008115612727576040517f5d2d4a5b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50600192915050565b6040805160c08082018352600080835260208084018290528385018290526060808501839052608080860184905260a09586018490528651948501875233855263ffffffff8a1685840181905267ffffffffffffffff8a8116878a0152928601859052845260089092529490912054841690931492810192909252821515908201525b9392505050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82111561286c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e206160448201527f6e20696e7432353600000000000000000000000000000000000000000000000060648201526084016125e6565b5090565b6060848484846040516020016128899493929190614650565b6040516020818303038152906040529050949350505050565b6040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152602482018390526000917f0000000000000000000000000000000000000000000000000000000000000000909116906340c10f1990604401600060405180830381600087803b15801561292a57600080fd5b505af192505050801561293b575060015b156126e75750600192915050565b6000546001600160a01b03163314611c74576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016125e6565b3415612001576040517f3442dd9500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612a00826126ad565b90506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166379cc6790847f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff8516026040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015612abd57600080fd5b505af1158015612ad1573d6000803e3d6000fd5b5050505092915050565b815467ffffffffffffffff168115612b4d5767ffffffffffffffff811615612b2f576040517fca2bc39800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825467ffffffffffffffff191667ffffffffffffffff178355505050565b67ffffffffffffffff81811614612b90576040517fca2bc39800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825467ffffffffffffffff191683555b505050565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b815467ffffffffffffffff1667fffffffffffffffe198101612c2357505050565b612c2d82826142e0565b905067fffffffffffffffe1967ffffffffffffffff821601612c7b576040517f5a5cc94600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825467ffffffffffffffff191667ffffffffffffffff919091161790915550565b612ca8848484846132d4565b612cde576040517f7c75c3d200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b6000612cf083836128a2565b905080612ba0576040517f06a6167e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612d34838383613309565b612ba0576040517f7c75c3d200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008080612d7e610c7260c08601866140f2565b9250612d8e3385604001356129f5565b91506000612da9612da26020870187613be3565b8486612730565b9050612dc181612dbc87606001356126ad565b613330565b9150612e008260086000612dd860208a018a613be3565b63ffffffff1663ffffffff16815260200190815260200160002061352590919063ffffffff16565b509193909250565b60408051808201909152600080825260208201523415612e54576040517febf2eaea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5090919050565b612e636137bf565b835115612eba57612eba7f0000000000000000000000000000000000000000000000000000000000000000337f000000000000000000000000000000000000000000000000000000000000000087600001516135b3565b602084015115612ed157612ed184602001516135bf565b6006546040805160c081019091523381526001600160a01b039091169063ff6fb30090602080820190612f06908a018a613be3565b63ffffffff1681526020898101359082015267ffffffffffffffff87166040820152606001612f3860a08a018a6140f2565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250602001612f7f60808a018a6140f2565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509152506040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b168152612ff29190889087906004016146ce565b6080604051808303816000875af1158015613011573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613035919061477e565b95945050505050565b6130466137bf565b604080518082019091526000815260606020820152602085015115613097576040517fb5e0bf8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006546040805160a081019091523381526001600160a01b03909116906385afd453906020808201906130cc908b018b613be3565b63ffffffff16815260208a8101359082015267ffffffffffffffff88166040820152606001600061310060808c018c6140f2565b9190911190915250604080517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815282516001600160a01b03166004820152602083015163ffffffff166024820152908201516044820152606082015167ffffffffffffffff1660648201526080909101511515608482015260a4016000604051808303816000875af11580156131a1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131c9919081019061479a565b60408201515187519294509092509080821461322f57818111156131fd578181036131f686826000613309565b505061322f565b6040517fa028531600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505094509492505050565b600067ffffffffffffffff82111561286c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201527f342062697473000000000000000000000000000000000000000000000000000060648201526084016125e6565b60006001600160a01b0385166132f6576132ef848484613309565b9050613301565b613035858585613632565b949350505050565b60008082613317575a61331b565b6001545b9050600080600080878986f195945050505050565b600254604080517f43d9564d00000000000000000000000000000000000000000000000000000000815284516001600160a01b039081166004830152602086015163ffffffff1660248301529185015167ffffffffffffffff9081166044830152606086015116606482015260808501511515608482015260a0850151151560a482015260009291909116906343d9564d9060c4016020604051808303816000875af11580156133e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134089190614157565b604084015190915067ffffffffffffffff808216908316101561348f5761342f8282614174565b600280546015906134649084907501000000000000000000000000000000000000000000900467ffffffffffffffff166142e0565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506134bd565b8067ffffffffffffffff168267ffffffffffffffff1611156134bd5760006134b78284614174565b90920391505b8267ffffffffffffffff168267ffffffffffffffff1610806134e7575067ffffffffffffffff8216155b1561351e576040517fa1e8654500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5092915050565b815467ffffffffffffffff1667fffffffffffffffe19810161354657505050565b8167ffffffffffffffff168167ffffffffffffffff161015613594576040517f2b4d0ad500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825467ffffffffffffffff191691900367ffffffffffffffff16179055565b612ca8848484846136de565b6004546001600160a01b031680613602576040517fb5e0bf8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61362e81337f0000000000000000000000000000000000000000000000000000000000000000856135b3565b5050565b6040516001600160a01b0383166024820152604481018290526000906133019085907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152613732565b6040516001600160a01b03808516602483015283166044820152606481018290526000906130359086907f23b872dd000000000000000000000000000000000000000000000000000000009060840161367a565b6000806000846001600160a01b03168460405161374f919061488f565b6000604051808303816000865af19150503d806000811461378c576040519150601f19603f3d011682016040523d82523d6000602084013e613791565b606091505b5091509150816137a2576000613035565b8051158061303557508080602001905181019061303591906148ab565b604051806060016040528060008019168152602001600067ffffffffffffffff168152602001613802604051806040016040528060008152602001600081525090565b905290565b803563ffffffff8116811461381b57600080fd5b919050565b60008060006040848603121561383557600080fd5b61383e84613807565b9250602084013567ffffffffffffffff8082111561385b57600080fd5b818601915086601f83011261386f57600080fd5b81358181111561387e57600080fd5b87602060608302850101111561389357600080fd5b6020830194508093505050509250925092565b60008151808452602080850194506020840160005b838110156138f2578151805163ffffffff16885283015167ffffffffffffffff1683880152604090960195908201906001016138bb565b509495945050505050565b6020815260006127b360208301846138a6565b600060e0828403121561392257600080fd5b50919050565b60006020828403121561393a57600080fd5b813567ffffffffffffffff81111561395157600080fd5b61330184828501613910565b60005b83811015613978578181015183820152602001613960565b50506000910152565b6000815180845261399981602086016020860161395d565b601f01601f19169290920160200192915050565b8351815260208085015190820152600060a08201604060a0604085015281865180845260c08601915060c08160051b8701019350602080890160005b83811015613a46578887037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff40018552815180518852830151838801879052613a3387890182613981565b97505093820193908201906001016139e9565b50508751606088015250505060208501516080850152509050613301565b6020810160028310613a9f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b60006060828403121561392257600080fd5b80356001600160a01b038116811461381b57600080fd5b67ffffffffffffffff8116811461200157600080fd5b60008083601f840112613af657600080fd5b50813567ffffffffffffffff811115613b0e57600080fd5b602083019150836020828501011115613b2657600080fd5b9250929050565b60008060008060008060e08789031215613b4657600080fd5b613b508888613aa5565b955060608701359450613b6560808801613ab7565b935060a0870135613b7581613ace565b925060c087013567ffffffffffffffff811115613b9157600080fd5b613b9d89828a01613ae4565b979a9699509497509295939492505050565b600060208284031215613bc157600080fd5b6127b382613ab7565b600060208284031215613bdc57600080fd5b5035919050565b600060208284031215613bf557600080fd5b6127b382613807565b801515811461200157600080fd5b60008060408385031215613c1f57600080fd5b823567ffffffffffffffff811115613c3657600080fd5b613c4285828601613910565b9250506020830135613c5381613bfe565b809150509250929050565b8151815260208083015190820152604081016126e7565b60008060408385031215613c8857600080fd5b613c9183613807565b91506020830135613c5381613bfe565b803560ff8116811461381b57600080fd5b600080600080600060e08688031215613cca57600080fd5b613cd48787613aa5565b945060608601359350613ce960808701613ca1565b9250613cf760a08701613ab7565b915060c0860135613d0781613ace565b809150509295509295909350565b600060c0828403121561392257600080fd5b600080600060408486031215613d3c57600080fd5b613d4584613807565b9250602084013567ffffffffffffffff80821115613d6257600080fd5b818601915086601f830112613d7657600080fd5b813581811115613d8557600080fd5b8760208260061b850101111561389357600080fd5b600080600060608486031215613daf57600080fd5b613db884613ab7565b9250613dc660208501613ab7565b9150604084013590509250925092565b600080600080600080600060c0888a031215613df157600080fd5b87359650613e0160208901613ca1565b9550613e0f60408901613807565b9450613e1d60608901613ab7565b93506080880135925060a088013567ffffffffffffffff811115613e4057600080fd5b613e4c8a828b01613ae4565b989b979a50959850939692959293505050565b600060208284031215613e7157600080fd5b81356127b381613bfe565b60008060008385036080811215613e9257600080fd5b843567ffffffffffffffff811115613ea957600080fd5b613eb587828801613910565b9450506040601f1982011215613eca57600080fd5b50602084019150613edd60608501613ab7565b90509250925092565b8051825267ffffffffffffffff60208201511660208301526040810151612ba0604084018280518252602090810151910152565b60c08101613f288285613ee6565b82516080830152602083015160a08301526127b3565b60008060408385031215613f5157600080fd5b613f5a83613ab7565b91506020830135613c5381613ace565b613f748185613ee6565b82516080820152602083015160a082015260e060c082015268ffffffffffffffffff82511660e0820152600060208301516040610100840152613fbb610120840182613981565b9695505050505050565b60008060408385031215613fd857600080fd5b82359150613fe860208401613ca1565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561406157600080fd5b81356127b381613ace565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036140cc576140cc61406c565b5060010190565b63ffffffff8316815260406020820152600061330160408301846138a6565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261412757600080fd5b83018035915067ffffffffffffffff82111561414257600080fd5b602001915036819003821315613b2657600080fd5b60006020828403121561416957600080fd5b81516127b381613ace565b67ffffffffffffffff82811682821603908082111561351e5761351e61406c565b808202600082127f8000000000000000000000000000000000000000000000000000000000000000841416156141cd576141cd61406c565b81810583148215176126e7576126e761406c565b6001600160a01b038516815283602082015261ffff83166040820152608060608201526000613fbb6080830184613981565b7fffffffff000000000000000000000000000000000000000000000000000000008560e01b1681527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008460601b1660048201528260188201526000825161428181603885016020870161395d565b9190910160380195945050505050565b86815260ff8616602082015263ffffffff851660408201526001600160a01b038416606082015282608082015260c060a082015260006142d460c0830184613981565b98975050505050505050565b67ffffffffffffffff81811683821601908082111561351e5761351e61406c565b6001600160a01b03815116825263ffffffff60208201511660208301526040810151604083015267ffffffffffffffff60608201511660608301526000608082015160c0608085015261435760c0850182613981565b905060a083015184820360a08601526130358282613981565b6040815260006143836040830185614301565b905082151560208301529392505050565b6040805190810167ffffffffffffffff811182821017156143b7576143b7613ff1565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156143e6576143e6613ff1565b604052919050565b60006040828403121561440057600080fd5b614408614394565b9050815181526020820151602082015292915050565b60006040828403121561443057600080fd5b6127b383836143ee565b60c081016001600160a01b038061445085613ab7565b1683528061446060208601613ab7565b1660208401528061447360408601613ab7565b1660408401528061448660608601613ab7565b1660608401528061449960808601613ab7565b166080840152806144ac60a08601613ab7565b1660a08401525092915050565b63ffffffff848116825260406020808401829052838201859052600092869160608601855b8881101561451e57836144f086613807565b1682528285013561450081613ace565b67ffffffffffffffff168284015293850193908501906001016144de565b509998505050505050505050565b7fffffffff000000000000000000000000000000000000000000000000000000008660e01b1681527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008560601b1660048201528360188201528183603883013760009101603801908152949350505050565b6001600160a01b038616815284602082015261ffff8416604082015260806060820152816080820152818360a0830137600081830160a090810191909152601f909201601f19160101949350505050565b60006040828403121561460157600080fd5b614609614394565b82358152602083013560208201528091505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7fffffffffffffffff0000000000000000000000000000000000000000000000008560c01b1681527fffffffff000000000000000000000000000000000000000000000000000000008460e01b16600882015282600c820152600082516146be81602c85016020870161395d565b91909101602c0195945050505050565b6080815260006146e16080830186614301565b90506146fa602083018580518252602090810151910152565b6001600160a01b0383166060830152949350505050565b60006080828403121561472357600080fd5b6040516060810181811067ffffffffffffffff8211171561474657614746613ff1565b806040525080915082518152602083015161476081613ace565b602082015261477284604085016143ee565b60408201525092915050565b60006080828403121561479057600080fd5b6127b38383614711565b60008060a083850312156147ad57600080fd5b6147b78484614711565b9150608083015167ffffffffffffffff808211156147d457600080fd5b90840190604082870312156147e857600080fd5b6147f0614394565b825168ffffffffffffffffff8116811461480957600080fd5b81526020838101518381111561481e57600080fd5b80850194505087601f85011261483357600080fd5b83518381111561484557614845613ff1565b61485782601f19601f840116016143bd565b9350808452888282870101111561486d57600080fd5b61487c8183860184880161395d565b5081019190915292959294509192505050565b600082516148a181846020870161395d565b9190910192915050565b6000602082840312156148bd57600080fd5b81516127b381613bfe56fea2646970667358221220604370bab5c6f23c436bc1cfc0ef7e030924aef9dda95add92a70e504cde735664736f6c63430008160033",
1582
+ "linkReferences": {},
1583
+ "deployedLinkReferences": {}
1584
+ }