@layerzerolabs/lz-evm-sdk-v2 2.1.9 → 2.1.10

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 (121) hide show
  1. package/deployments/exocore-testnet/DVN.json +39 -39
  2. package/deployments/exocore-testnet/DVNFeeLib.json +5 -5
  3. package/deployments/exocore-testnet/DefaultProxyAdmin.json +4 -4
  4. package/deployments/exocore-testnet/EndpointV2.json +23 -23
  5. package/deployments/exocore-testnet/EndpointV2View.json +8 -8
  6. package/deployments/exocore-testnet/EndpointV2View_Implementation.json +2 -2
  7. package/deployments/exocore-testnet/EndpointV2View_Proxy.json +8 -8
  8. package/deployments/exocore-testnet/Executor.json +26 -26
  9. package/deployments/exocore-testnet/ExecutorFeeLib.json +5 -5
  10. package/deployments/exocore-testnet/ExecutorProxyAdmin.json +7 -7
  11. package/deployments/exocore-testnet/Executor_Implementation.json +17 -17
  12. package/deployments/exocore-testnet/Executor_Proxy.json +26 -26
  13. package/deployments/exocore-testnet/LzExecutor.json +10 -10
  14. package/deployments/exocore-testnet/LzExecutor_Implementation.json +6 -6
  15. package/deployments/exocore-testnet/LzExecutor_Proxy.json +10 -10
  16. package/deployments/exocore-testnet/PriceFeed.json +10 -10
  17. package/deployments/exocore-testnet/PriceFeedProxyAdmin.json +7 -7
  18. package/deployments/exocore-testnet/PriceFeed_Implementation.json +14 -14
  19. package/deployments/exocore-testnet/PriceFeed_Proxy.json +10 -10
  20. package/deployments/exocore-testnet/ReceiveUln301.json +36 -36
  21. package/deployments/exocore-testnet/ReceiveUln301View.json +15 -15
  22. package/deployments/exocore-testnet/ReceiveUln301View_Implementation.json +8 -8
  23. package/deployments/exocore-testnet/ReceiveUln301View_Proxy.json +14 -14
  24. package/deployments/exocore-testnet/ReceiveUln302.json +29 -29
  25. package/deployments/exocore-testnet/ReceiveUln302View.json +8 -8
  26. package/deployments/exocore-testnet/ReceiveUln302View_Implementation.json +7 -7
  27. package/deployments/exocore-testnet/ReceiveUln302View_Proxy.json +8 -8
  28. package/deployments/exocore-testnet/SendUln301.json +24 -24
  29. package/deployments/exocore-testnet/SendUln302.json +18 -18
  30. package/deployments/exocore-testnet/Treasury.json +5 -5
  31. package/deployments/exocore-testnet/TreasuryFeeHandler.json +3 -3
  32. package/deployments/mantle-mainnet/AxelarDVNAdapter.json +1578 -0
  33. package/deployments/mantle-mainnet/AxelarDVNAdapterFeeLib.json +813 -0
  34. package/deployments/mantle-mainnet/AxelarDVNAdapterFeeLib_Implementation.json +803 -0
  35. package/deployments/mantle-mainnet/AxelarDVNAdapterFeeLib_Proxy.json +245 -0
  36. package/deployments/mantle-mainnet/DVNFeeLibProxyAdmin.json +284 -0
  37. package/deployments/{avalanche-sandbox-local → mode-testnet}/DVN.json +81 -48
  38. package/deployments/{avalanche-sandbox-local → mode-testnet}/DVNFeeLib.json +16 -16
  39. package/deployments/{avalanche-sandbox-local → mode-testnet}/DefaultProxyAdmin.json +17 -17
  40. package/deployments/{bsc-sandbox-local → mode-testnet}/EndpointV2.json +114 -60
  41. package/deployments/{avalanche-sandbox-local → mode-testnet}/EndpointV2View.json +32 -32
  42. package/deployments/{avalanche-sandbox-local → mode-testnet}/EndpointV2View_Implementation.json +9 -9
  43. package/deployments/{avalanche-sandbox-local → mode-testnet}/EndpointV2View_Proxy.json +30 -30
  44. package/deployments/{bsc-sandbox-local → mode-testnet}/Executor.json +101 -118
  45. package/deployments/{bsc-sandbox-local → mode-testnet}/ExecutorFeeLib.json +17 -17
  46. package/deployments/{bsc-sandbox-local → mode-testnet}/ExecutorProxyAdmin.json +24 -24
  47. package/deployments/{bsc-sandbox-local → mode-testnet}/Executor_Implementation.json +9 -9
  48. package/deployments/{bsc-sandbox-local → mode-testnet}/Executor_Proxy.json +92 -107
  49. package/deployments/{bsc-sandbox-local → mode-testnet}/LzExecutor.json +40 -40
  50. package/deployments/{bsc-sandbox-local → mode-testnet}/LzExecutor_Implementation.json +9 -9
  51. package/deployments/{avalanche-sandbox-local/PriceFeed_Proxy.json → mode-testnet/LzExecutor_Proxy.json} +37 -37
  52. package/deployments/{bsc-sandbox-local → mode-testnet}/PriceFeed.json +39 -39
  53. package/deployments/{arbitrum-sandbox-local → mode-testnet}/PriceFeedProxyAdmin.json +24 -24
  54. package/deployments/{arbitrum-sandbox-local → mode-testnet}/PriceFeed_Implementation.json +9 -9
  55. package/deployments/{bsc-sandbox-local → mode-testnet}/PriceFeed_Proxy.json +37 -37
  56. package/deployments/{avalanche-sandbox-local → mode-testnet}/ReceiveUln301.json +18 -18
  57. package/deployments/{avalanche-sandbox-local → mode-testnet}/ReceiveUln301View.json +34 -34
  58. package/deployments/{avalanche-sandbox-local → mode-testnet}/ReceiveUln301View_Implementation.json +9 -9
  59. package/deployments/{avalanche-sandbox-local/ReceiveUln302View_Proxy.json → mode-testnet/ReceiveUln301View_Proxy.json} +31 -31
  60. package/deployments/{avalanche-sandbox-local → mode-testnet}/ReceiveUln302.json +17 -17
  61. package/deployments/{avalanche-sandbox-local → mode-testnet}/ReceiveUln302View.json +33 -33
  62. package/deployments/{bsc-sandbox-local → mode-testnet}/ReceiveUln302View_Implementation.json +9 -9
  63. package/deployments/{bsc-sandbox-local → mode-testnet}/ReceiveUln302View_Proxy.json +30 -30
  64. package/deployments/{avalanche-sandbox-local → mode-testnet}/SendUln301.json +20 -20
  65. package/deployments/{bsc-sandbox-local → mode-testnet}/SendUln302.json +17 -17
  66. package/deployments/{bsc-sandbox-local → mode-testnet}/Treasury.json +16 -16
  67. package/deployments/{avalanche-sandbox-local → mode-testnet}/TreasuryFeeHandler.json +10 -10
  68. package/package.json +9 -9
  69. package/deployments/arbitrum-sandbox-local/DVN.json +0 -1864
  70. package/deployments/arbitrum-sandbox-local/DVNDecompressor.json +0 -500
  71. package/deployments/arbitrum-sandbox-local/DVNFeeLib.json +0 -398
  72. package/deployments/arbitrum-sandbox-local/PriceFeed.json +0 -890
  73. package/deployments/arbitrum-sandbox-local/PriceFeed_Proxy.json +0 -244
  74. package/deployments/avalanche-sandbox-local/DVNDecompressor.json +0 -508
  75. package/deployments/avalanche-sandbox-local/EndpointV2.json +0 -2946
  76. package/deployments/avalanche-sandbox-local/Executor.json +0 -1549
  77. package/deployments/avalanche-sandbox-local/ExecutorDecompressor.json +0 -339
  78. package/deployments/avalanche-sandbox-local/ExecutorFeeLib.json +0 -423
  79. package/deployments/avalanche-sandbox-local/ExecutorProxyAdmin.json +0 -283
  80. package/deployments/avalanche-sandbox-local/Executor_Implementation.json +0 -1591
  81. package/deployments/avalanche-sandbox-local/Executor_Proxy.json +0 -380
  82. package/deployments/avalanche-sandbox-local/LzExecutor.json +0 -757
  83. package/deployments/avalanche-sandbox-local/LzExecutor_Implementation.json +0 -703
  84. package/deployments/avalanche-sandbox-local/LzExecutor_Proxy.json +0 -244
  85. package/deployments/avalanche-sandbox-local/NonceContractMock.json +0 -163
  86. package/deployments/avalanche-sandbox-local/PriceFeed.json +0 -890
  87. package/deployments/avalanche-sandbox-local/PriceFeedProxyAdmin.json +0 -283
  88. package/deployments/avalanche-sandbox-local/PriceFeed_Implementation.json +0 -912
  89. package/deployments/avalanche-sandbox-local/ReceiveUln301View_Proxy.json +0 -230
  90. package/deployments/avalanche-sandbox-local/ReceiveUln302View_Implementation.json +0 -384
  91. package/deployments/avalanche-sandbox-local/SendUln302.json +0 -1527
  92. package/deployments/avalanche-sandbox-local/SimpleMessageLib.json +0 -708
  93. package/deployments/avalanche-sandbox-local/Treasury.json +0 -412
  94. package/deployments/bsc-sandbox-local/DVN.json +0 -1896
  95. package/deployments/bsc-sandbox-local/DVNDecompressor.json +0 -508
  96. package/deployments/bsc-sandbox-local/DVNFeeLib.json +0 -398
  97. package/deployments/bsc-sandbox-local/DefaultProxyAdmin.json +0 -258
  98. package/deployments/bsc-sandbox-local/EndpointV2View.json +0 -435
  99. package/deployments/bsc-sandbox-local/EndpointV2View_Implementation.json +0 -313
  100. package/deployments/bsc-sandbox-local/EndpointV2View_Proxy.json +0 -230
  101. package/deployments/bsc-sandbox-local/ExecutorDecompressor.json +0 -339
  102. package/deployments/bsc-sandbox-local/LzExecutor_Proxy.json +0 -244
  103. package/deployments/bsc-sandbox-local/NonceContractMock.json +0 -163
  104. package/deployments/bsc-sandbox-local/PriceFeedProxyAdmin.json +0 -283
  105. package/deployments/bsc-sandbox-local/PriceFeed_Implementation.json +0 -912
  106. package/deployments/bsc-sandbox-local/ReceiveUln301.json +0 -1292
  107. package/deployments/bsc-sandbox-local/ReceiveUln301View.json +0 -354
  108. package/deployments/bsc-sandbox-local/ReceiveUln301View_Implementation.json +0 -231
  109. package/deployments/bsc-sandbox-local/ReceiveUln301View_Proxy.json +0 -230
  110. package/deployments/bsc-sandbox-local/ReceiveUln302.json +0 -1006
  111. package/deployments/bsc-sandbox-local/ReceiveUln302View.json +0 -478
  112. package/deployments/bsc-sandbox-local/SendUln301.json +0 -1569
  113. package/deployments/bsc-sandbox-local/SimpleMessageLib.json +0 -708
  114. package/deployments/bsc-sandbox-local/TreasuryFeeHandler.json +0 -125
  115. package/deployments/tron-sandbox-local/DVN.json +0 -1864
  116. package/deployments/tron-sandbox-local/DVNDecompressor.json +0 -500
  117. package/deployments/tron-sandbox-local/DVNFeeLib.json +0 -398
  118. package/deployments/tron-sandbox-local/PriceFeed.json +0 -890
  119. package/deployments/tron-sandbox-local/PriceFeedProxyAdmin.json +0 -283
  120. package/deployments/tron-sandbox-local/PriceFeed_Implementation.json +0 -912
  121. package/deployments/tron-sandbox-local/PriceFeed_Proxy.json +0 -244
@@ -1,1864 +0,0 @@
1
- {
2
- "address": "0x10Aeafac83d48E2f9ac4bAAf94311c45fACe1404",
3
- "abi": [
4
- {
5
- "inputs": [
6
- {
7
- "internalType": "uint32",
8
- "name": "_vid",
9
- "type": "uint32"
10
- },
11
- {
12
- "internalType": "address[]",
13
- "name": "_messageLibs",
14
- "type": "address[]"
15
- },
16
- {
17
- "internalType": "address",
18
- "name": "_priceFeed",
19
- "type": "address"
20
- },
21
- {
22
- "internalType": "address[]",
23
- "name": "_signers",
24
- "type": "address[]"
25
- },
26
- {
27
- "internalType": "uint64",
28
- "name": "_quorum",
29
- "type": "uint64"
30
- },
31
- {
32
- "internalType": "address[]",
33
- "name": "_admins",
34
- "type": "address[]"
35
- }
36
- ],
37
- "stateMutability": "nonpayable",
38
- "type": "constructor"
39
- },
40
- {
41
- "inputs": [
42
- {
43
- "internalType": "bytes32",
44
- "name": "executableHash",
45
- "type": "bytes32"
46
- }
47
- ],
48
- "name": "DVN_DuplicatedHash",
49
- "type": "error"
50
- },
51
- {
52
- "inputs": [],
53
- "name": "DVN_InstructionExpired",
54
- "type": "error"
55
- },
56
- {
57
- "inputs": [
58
- {
59
- "internalType": "bytes32",
60
- "name": "role",
61
- "type": "bytes32"
62
- }
63
- ],
64
- "name": "DVN_InvalidRole",
65
- "type": "error"
66
- },
67
- {
68
- "inputs": [],
69
- "name": "DVN_InvalidSignatures",
70
- "type": "error"
71
- },
72
- {
73
- "inputs": [
74
- {
75
- "internalType": "address",
76
- "name": "target",
77
- "type": "address"
78
- }
79
- ],
80
- "name": "DVN_InvalidTarget",
81
- "type": "error"
82
- },
83
- {
84
- "inputs": [
85
- {
86
- "internalType": "uint32",
87
- "name": "vid",
88
- "type": "uint32"
89
- }
90
- ],
91
- "name": "DVN_InvalidVid",
92
- "type": "error"
93
- },
94
- {
95
- "inputs": [],
96
- "name": "DVN_OnlySelf",
97
- "type": "error"
98
- },
99
- {
100
- "inputs": [],
101
- "name": "MultiSig_OnlySigner",
102
- "type": "error"
103
- },
104
- {
105
- "inputs": [],
106
- "name": "MultiSig_QuorumIsZero",
107
- "type": "error"
108
- },
109
- {
110
- "inputs": [
111
- {
112
- "internalType": "uint64",
113
- "name": "signersSize",
114
- "type": "uint64"
115
- },
116
- {
117
- "internalType": "uint64",
118
- "name": "quorum",
119
- "type": "uint64"
120
- }
121
- ],
122
- "name": "MultiSig_SignersSizeIsLessThanQuorum",
123
- "type": "error"
124
- },
125
- {
126
- "inputs": [
127
- {
128
- "internalType": "address",
129
- "name": "signer",
130
- "type": "address"
131
- },
132
- {
133
- "internalType": "bool",
134
- "name": "active",
135
- "type": "bool"
136
- }
137
- ],
138
- "name": "MultiSig_StateAlreadySet",
139
- "type": "error"
140
- },
141
- {
142
- "inputs": [],
143
- "name": "MultiSig_UnorderedSigners",
144
- "type": "error"
145
- },
146
- {
147
- "inputs": [
148
- {
149
- "internalType": "address",
150
- "name": "_to",
151
- "type": "address"
152
- },
153
- {
154
- "internalType": "uint256",
155
- "name": "_value",
156
- "type": "uint256"
157
- }
158
- ],
159
- "name": "Transfer_NativeFailed",
160
- "type": "error"
161
- },
162
- {
163
- "inputs": [],
164
- "name": "Transfer_ToAddressIsZero",
165
- "type": "error"
166
- },
167
- {
168
- "inputs": [],
169
- "name": "Worker_NotAllowed",
170
- "type": "error"
171
- },
172
- {
173
- "inputs": [],
174
- "name": "Worker_OnlyMessageLib",
175
- "type": "error"
176
- },
177
- {
178
- "inputs": [],
179
- "name": "Worker_RoleRenouncingDisabled",
180
- "type": "error"
181
- },
182
- {
183
- "anonymous": false,
184
- "inputs": [
185
- {
186
- "indexed": false,
187
- "internalType": "uint256",
188
- "name": "_index",
189
- "type": "uint256"
190
- },
191
- {
192
- "indexed": false,
193
- "internalType": "bytes",
194
- "name": "_data",
195
- "type": "bytes"
196
- }
197
- ],
198
- "name": "ExecuteFailed",
199
- "type": "event"
200
- },
201
- {
202
- "anonymous": false,
203
- "inputs": [
204
- {
205
- "components": [
206
- {
207
- "internalType": "uint32",
208
- "name": "vid",
209
- "type": "uint32"
210
- },
211
- {
212
- "internalType": "address",
213
- "name": "target",
214
- "type": "address"
215
- },
216
- {
217
- "internalType": "bytes",
218
- "name": "callData",
219
- "type": "bytes"
220
- },
221
- {
222
- "internalType": "uint256",
223
- "name": "expiration",
224
- "type": "uint256"
225
- },
226
- {
227
- "internalType": "bytes",
228
- "name": "signatures",
229
- "type": "bytes"
230
- }
231
- ],
232
- "indexed": false,
233
- "internalType": "struct ExecuteParam",
234
- "name": "param",
235
- "type": "tuple"
236
- },
237
- {
238
- "indexed": false,
239
- "internalType": "bytes32",
240
- "name": "_hash",
241
- "type": "bytes32"
242
- }
243
- ],
244
- "name": "HashAlreadyUsed",
245
- "type": "event"
246
- },
247
- {
248
- "anonymous": false,
249
- "inputs": [
250
- {
251
- "indexed": false,
252
- "internalType": "address",
253
- "name": "account",
254
- "type": "address"
255
- }
256
- ],
257
- "name": "Paused",
258
- "type": "event"
259
- },
260
- {
261
- "anonymous": false,
262
- "inputs": [
263
- {
264
- "indexed": true,
265
- "internalType": "bytes32",
266
- "name": "role",
267
- "type": "bytes32"
268
- },
269
- {
270
- "indexed": true,
271
- "internalType": "bytes32",
272
- "name": "previousAdminRole",
273
- "type": "bytes32"
274
- },
275
- {
276
- "indexed": true,
277
- "internalType": "bytes32",
278
- "name": "newAdminRole",
279
- "type": "bytes32"
280
- }
281
- ],
282
- "name": "RoleAdminChanged",
283
- "type": "event"
284
- },
285
- {
286
- "anonymous": false,
287
- "inputs": [
288
- {
289
- "indexed": true,
290
- "internalType": "bytes32",
291
- "name": "role",
292
- "type": "bytes32"
293
- },
294
- {
295
- "indexed": true,
296
- "internalType": "address",
297
- "name": "account",
298
- "type": "address"
299
- },
300
- {
301
- "indexed": true,
302
- "internalType": "address",
303
- "name": "sender",
304
- "type": "address"
305
- }
306
- ],
307
- "name": "RoleGranted",
308
- "type": "event"
309
- },
310
- {
311
- "anonymous": false,
312
- "inputs": [
313
- {
314
- "indexed": true,
315
- "internalType": "bytes32",
316
- "name": "role",
317
- "type": "bytes32"
318
- },
319
- {
320
- "indexed": true,
321
- "internalType": "address",
322
- "name": "account",
323
- "type": "address"
324
- },
325
- {
326
- "indexed": true,
327
- "internalType": "address",
328
- "name": "sender",
329
- "type": "address"
330
- }
331
- ],
332
- "name": "RoleRevoked",
333
- "type": "event"
334
- },
335
- {
336
- "anonymous": false,
337
- "inputs": [
338
- {
339
- "indexed": false,
340
- "internalType": "uint16",
341
- "name": "multiplierBps",
342
- "type": "uint16"
343
- }
344
- ],
345
- "name": "SetDefaultMultiplierBps",
346
- "type": "event"
347
- },
348
- {
349
- "anonymous": false,
350
- "inputs": [
351
- {
352
- "components": [
353
- {
354
- "internalType": "uint32",
355
- "name": "dstEid",
356
- "type": "uint32"
357
- },
358
- {
359
- "internalType": "uint64",
360
- "name": "gas",
361
- "type": "uint64"
362
- },
363
- {
364
- "internalType": "uint16",
365
- "name": "multiplierBps",
366
- "type": "uint16"
367
- },
368
- {
369
- "internalType": "uint128",
370
- "name": "floorMarginUSD",
371
- "type": "uint128"
372
- }
373
- ],
374
- "indexed": false,
375
- "internalType": "struct IDVN.DstConfigParam[]",
376
- "name": "params",
377
- "type": "tuple[]"
378
- }
379
- ],
380
- "name": "SetDstConfig",
381
- "type": "event"
382
- },
383
- {
384
- "anonymous": false,
385
- "inputs": [
386
- {
387
- "indexed": false,
388
- "internalType": "address",
389
- "name": "priceFeed",
390
- "type": "address"
391
- }
392
- ],
393
- "name": "SetPriceFeed",
394
- "type": "event"
395
- },
396
- {
397
- "anonymous": false,
398
- "inputs": [
399
- {
400
- "indexed": false,
401
- "internalType": "uint32",
402
- "name": "dstEid",
403
- "type": "uint32"
404
- },
405
- {
406
- "indexed": false,
407
- "internalType": "uint8[]",
408
- "name": "optionTypes",
409
- "type": "uint8[]"
410
- }
411
- ],
412
- "name": "SetSupportedOptionTypes",
413
- "type": "event"
414
- },
415
- {
416
- "anonymous": false,
417
- "inputs": [
418
- {
419
- "indexed": false,
420
- "internalType": "address",
421
- "name": "workerLib",
422
- "type": "address"
423
- }
424
- ],
425
- "name": "SetWorkerLib",
426
- "type": "event"
427
- },
428
- {
429
- "anonymous": false,
430
- "inputs": [
431
- {
432
- "indexed": false,
433
- "internalType": "address",
434
- "name": "account",
435
- "type": "address"
436
- }
437
- ],
438
- "name": "Unpaused",
439
- "type": "event"
440
- },
441
- {
442
- "anonymous": false,
443
- "inputs": [
444
- {
445
- "indexed": false,
446
- "internalType": "uint64",
447
- "name": "_quorum",
448
- "type": "uint64"
449
- }
450
- ],
451
- "name": "UpdateQuorum",
452
- "type": "event"
453
- },
454
- {
455
- "anonymous": false,
456
- "inputs": [
457
- {
458
- "indexed": false,
459
- "internalType": "address",
460
- "name": "_signer",
461
- "type": "address"
462
- },
463
- {
464
- "indexed": false,
465
- "internalType": "bool",
466
- "name": "_active",
467
- "type": "bool"
468
- }
469
- ],
470
- "name": "UpdateSigner",
471
- "type": "event"
472
- },
473
- {
474
- "anonymous": false,
475
- "inputs": [
476
- {
477
- "indexed": false,
478
- "internalType": "uint256",
479
- "name": "fee",
480
- "type": "uint256"
481
- }
482
- ],
483
- "name": "VerifierFeePaid",
484
- "type": "event"
485
- },
486
- {
487
- "anonymous": false,
488
- "inputs": [
489
- {
490
- "indexed": false,
491
- "internalType": "uint256",
492
- "name": "idx",
493
- "type": "uint256"
494
- }
495
- ],
496
- "name": "VerifySignaturesFailed",
497
- "type": "event"
498
- },
499
- {
500
- "anonymous": false,
501
- "inputs": [
502
- {
503
- "indexed": false,
504
- "internalType": "address",
505
- "name": "lib",
506
- "type": "address"
507
- },
508
- {
509
- "indexed": false,
510
- "internalType": "address",
511
- "name": "to",
512
- "type": "address"
513
- },
514
- {
515
- "indexed": false,
516
- "internalType": "uint256",
517
- "name": "amount",
518
- "type": "uint256"
519
- }
520
- ],
521
- "name": "Withdraw",
522
- "type": "event"
523
- },
524
- {
525
- "inputs": [],
526
- "name": "DEFAULT_ADMIN_ROLE",
527
- "outputs": [
528
- {
529
- "internalType": "bytes32",
530
- "name": "",
531
- "type": "bytes32"
532
- }
533
- ],
534
- "stateMutability": "view",
535
- "type": "function"
536
- },
537
- {
538
- "inputs": [],
539
- "name": "allowlistSize",
540
- "outputs": [
541
- {
542
- "internalType": "uint64",
543
- "name": "",
544
- "type": "uint64"
545
- }
546
- ],
547
- "stateMutability": "view",
548
- "type": "function"
549
- },
550
- {
551
- "inputs": [
552
- {
553
- "components": [
554
- {
555
- "internalType": "uint32",
556
- "name": "dstEid",
557
- "type": "uint32"
558
- },
559
- {
560
- "internalType": "bytes",
561
- "name": "packetHeader",
562
- "type": "bytes"
563
- },
564
- {
565
- "internalType": "bytes32",
566
- "name": "payloadHash",
567
- "type": "bytes32"
568
- },
569
- {
570
- "internalType": "uint64",
571
- "name": "confirmations",
572
- "type": "uint64"
573
- },
574
- {
575
- "internalType": "address",
576
- "name": "sender",
577
- "type": "address"
578
- }
579
- ],
580
- "internalType": "struct ILayerZeroDVN.AssignJobParam",
581
- "name": "_param",
582
- "type": "tuple"
583
- },
584
- {
585
- "internalType": "bytes",
586
- "name": "_options",
587
- "type": "bytes"
588
- }
589
- ],
590
- "name": "assignJob",
591
- "outputs": [
592
- {
593
- "internalType": "uint256",
594
- "name": "totalFee",
595
- "type": "uint256"
596
- }
597
- ],
598
- "stateMutability": "payable",
599
- "type": "function"
600
- },
601
- {
602
- "inputs": [
603
- {
604
- "internalType": "uint16",
605
- "name": "_dstEid",
606
- "type": "uint16"
607
- },
608
- {
609
- "internalType": "uint16",
610
- "name": "",
611
- "type": "uint16"
612
- },
613
- {
614
- "internalType": "uint64",
615
- "name": "_confirmations",
616
- "type": "uint64"
617
- },
618
- {
619
- "internalType": "address",
620
- "name": "_sender",
621
- "type": "address"
622
- }
623
- ],
624
- "name": "assignJob",
625
- "outputs": [
626
- {
627
- "internalType": "uint256",
628
- "name": "totalFee",
629
- "type": "uint256"
630
- }
631
- ],
632
- "stateMutability": "nonpayable",
633
- "type": "function"
634
- },
635
- {
636
- "inputs": [],
637
- "name": "defaultMultiplierBps",
638
- "outputs": [
639
- {
640
- "internalType": "uint16",
641
- "name": "",
642
- "type": "uint16"
643
- }
644
- ],
645
- "stateMutability": "view",
646
- "type": "function"
647
- },
648
- {
649
- "inputs": [
650
- {
651
- "internalType": "uint32",
652
- "name": "dstEid",
653
- "type": "uint32"
654
- }
655
- ],
656
- "name": "dstConfig",
657
- "outputs": [
658
- {
659
- "internalType": "uint64",
660
- "name": "gas",
661
- "type": "uint64"
662
- },
663
- {
664
- "internalType": "uint16",
665
- "name": "multiplierBps",
666
- "type": "uint16"
667
- },
668
- {
669
- "internalType": "uint128",
670
- "name": "floorMarginUSD",
671
- "type": "uint128"
672
- }
673
- ],
674
- "stateMutability": "view",
675
- "type": "function"
676
- },
677
- {
678
- "inputs": [
679
- {
680
- "components": [
681
- {
682
- "internalType": "uint32",
683
- "name": "vid",
684
- "type": "uint32"
685
- },
686
- {
687
- "internalType": "address",
688
- "name": "target",
689
- "type": "address"
690
- },
691
- {
692
- "internalType": "bytes",
693
- "name": "callData",
694
- "type": "bytes"
695
- },
696
- {
697
- "internalType": "uint256",
698
- "name": "expiration",
699
- "type": "uint256"
700
- },
701
- {
702
- "internalType": "bytes",
703
- "name": "signatures",
704
- "type": "bytes"
705
- }
706
- ],
707
- "internalType": "struct ExecuteParam[]",
708
- "name": "_params",
709
- "type": "tuple[]"
710
- }
711
- ],
712
- "name": "execute",
713
- "outputs": [],
714
- "stateMutability": "nonpayable",
715
- "type": "function"
716
- },
717
- {
718
- "inputs": [
719
- {
720
- "internalType": "uint32",
721
- "name": "_dstEid",
722
- "type": "uint32"
723
- },
724
- {
725
- "internalType": "uint64",
726
- "name": "_confirmations",
727
- "type": "uint64"
728
- },
729
- {
730
- "internalType": "address",
731
- "name": "_sender",
732
- "type": "address"
733
- },
734
- {
735
- "internalType": "bytes",
736
- "name": "_options",
737
- "type": "bytes"
738
- }
739
- ],
740
- "name": "getFee",
741
- "outputs": [
742
- {
743
- "internalType": "uint256",
744
- "name": "fee",
745
- "type": "uint256"
746
- }
747
- ],
748
- "stateMutability": "view",
749
- "type": "function"
750
- },
751
- {
752
- "inputs": [
753
- {
754
- "internalType": "uint16",
755
- "name": "_dstEid",
756
- "type": "uint16"
757
- },
758
- {
759
- "internalType": "uint16",
760
- "name": "",
761
- "type": "uint16"
762
- },
763
- {
764
- "internalType": "uint64",
765
- "name": "_confirmations",
766
- "type": "uint64"
767
- },
768
- {
769
- "internalType": "address",
770
- "name": "_sender",
771
- "type": "address"
772
- }
773
- ],
774
- "name": "getFee",
775
- "outputs": [
776
- {
777
- "internalType": "uint256",
778
- "name": "fee",
779
- "type": "uint256"
780
- }
781
- ],
782
- "stateMutability": "view",
783
- "type": "function"
784
- },
785
- {
786
- "inputs": [
787
- {
788
- "internalType": "bytes32",
789
- "name": "role",
790
- "type": "bytes32"
791
- }
792
- ],
793
- "name": "getRoleAdmin",
794
- "outputs": [
795
- {
796
- "internalType": "bytes32",
797
- "name": "",
798
- "type": "bytes32"
799
- }
800
- ],
801
- "stateMutability": "view",
802
- "type": "function"
803
- },
804
- {
805
- "inputs": [
806
- {
807
- "internalType": "uint32",
808
- "name": "_eid",
809
- "type": "uint32"
810
- }
811
- ],
812
- "name": "getSupportedOptionTypes",
813
- "outputs": [
814
- {
815
- "internalType": "uint8[]",
816
- "name": "",
817
- "type": "uint8[]"
818
- }
819
- ],
820
- "stateMutability": "view",
821
- "type": "function"
822
- },
823
- {
824
- "inputs": [
825
- {
826
- "internalType": "bytes32",
827
- "name": "_role",
828
- "type": "bytes32"
829
- },
830
- {
831
- "internalType": "address",
832
- "name": "_account",
833
- "type": "address"
834
- }
835
- ],
836
- "name": "grantRole",
837
- "outputs": [],
838
- "stateMutability": "nonpayable",
839
- "type": "function"
840
- },
841
- {
842
- "inputs": [
843
- {
844
- "internalType": "address",
845
- "name": "_sender",
846
- "type": "address"
847
- }
848
- ],
849
- "name": "hasAcl",
850
- "outputs": [
851
- {
852
- "internalType": "bool",
853
- "name": "",
854
- "type": "bool"
855
- }
856
- ],
857
- "stateMutability": "view",
858
- "type": "function"
859
- },
860
- {
861
- "inputs": [
862
- {
863
- "internalType": "bytes32",
864
- "name": "role",
865
- "type": "bytes32"
866
- },
867
- {
868
- "internalType": "address",
869
- "name": "account",
870
- "type": "address"
871
- }
872
- ],
873
- "name": "hasRole",
874
- "outputs": [
875
- {
876
- "internalType": "bool",
877
- "name": "",
878
- "type": "bool"
879
- }
880
- ],
881
- "stateMutability": "view",
882
- "type": "function"
883
- },
884
- {
885
- "inputs": [
886
- {
887
- "internalType": "uint32",
888
- "name": "_vid",
889
- "type": "uint32"
890
- },
891
- {
892
- "internalType": "address",
893
- "name": "_target",
894
- "type": "address"
895
- },
896
- {
897
- "internalType": "bytes",
898
- "name": "_callData",
899
- "type": "bytes"
900
- },
901
- {
902
- "internalType": "uint256",
903
- "name": "_expiration",
904
- "type": "uint256"
905
- }
906
- ],
907
- "name": "hashCallData",
908
- "outputs": [
909
- {
910
- "internalType": "bytes32",
911
- "name": "",
912
- "type": "bytes32"
913
- }
914
- ],
915
- "stateMutability": "pure",
916
- "type": "function"
917
- },
918
- {
919
- "inputs": [],
920
- "name": "paused",
921
- "outputs": [
922
- {
923
- "internalType": "bool",
924
- "name": "",
925
- "type": "bool"
926
- }
927
- ],
928
- "stateMutability": "view",
929
- "type": "function"
930
- },
931
- {
932
- "inputs": [],
933
- "name": "priceFeed",
934
- "outputs": [
935
- {
936
- "internalType": "address",
937
- "name": "",
938
- "type": "address"
939
- }
940
- ],
941
- "stateMutability": "view",
942
- "type": "function"
943
- },
944
- {
945
- "inputs": [],
946
- "name": "quorum",
947
- "outputs": [
948
- {
949
- "internalType": "uint64",
950
- "name": "",
951
- "type": "uint64"
952
- }
953
- ],
954
- "stateMutability": "view",
955
- "type": "function"
956
- },
957
- {
958
- "inputs": [
959
- {
960
- "components": [
961
- {
962
- "internalType": "uint32",
963
- "name": "vid",
964
- "type": "uint32"
965
- },
966
- {
967
- "internalType": "address",
968
- "name": "target",
969
- "type": "address"
970
- },
971
- {
972
- "internalType": "bytes",
973
- "name": "callData",
974
- "type": "bytes"
975
- },
976
- {
977
- "internalType": "uint256",
978
- "name": "expiration",
979
- "type": "uint256"
980
- },
981
- {
982
- "internalType": "bytes",
983
- "name": "signatures",
984
- "type": "bytes"
985
- }
986
- ],
987
- "internalType": "struct ExecuteParam",
988
- "name": "_param",
989
- "type": "tuple"
990
- }
991
- ],
992
- "name": "quorumChangeAdmin",
993
- "outputs": [],
994
- "stateMutability": "nonpayable",
995
- "type": "function"
996
- },
997
- {
998
- "inputs": [
999
- {
1000
- "internalType": "bytes32",
1001
- "name": "",
1002
- "type": "bytes32"
1003
- },
1004
- {
1005
- "internalType": "address",
1006
- "name": "",
1007
- "type": "address"
1008
- }
1009
- ],
1010
- "name": "renounceRole",
1011
- "outputs": [],
1012
- "stateMutability": "pure",
1013
- "type": "function"
1014
- },
1015
- {
1016
- "inputs": [
1017
- {
1018
- "internalType": "bytes32",
1019
- "name": "_role",
1020
- "type": "bytes32"
1021
- },
1022
- {
1023
- "internalType": "address",
1024
- "name": "_account",
1025
- "type": "address"
1026
- }
1027
- ],
1028
- "name": "revokeRole",
1029
- "outputs": [],
1030
- "stateMutability": "nonpayable",
1031
- "type": "function"
1032
- },
1033
- {
1034
- "inputs": [
1035
- {
1036
- "internalType": "uint16",
1037
- "name": "_multiplierBps",
1038
- "type": "uint16"
1039
- }
1040
- ],
1041
- "name": "setDefaultMultiplierBps",
1042
- "outputs": [],
1043
- "stateMutability": "nonpayable",
1044
- "type": "function"
1045
- },
1046
- {
1047
- "inputs": [
1048
- {
1049
- "components": [
1050
- {
1051
- "internalType": "uint32",
1052
- "name": "dstEid",
1053
- "type": "uint32"
1054
- },
1055
- {
1056
- "internalType": "uint64",
1057
- "name": "gas",
1058
- "type": "uint64"
1059
- },
1060
- {
1061
- "internalType": "uint16",
1062
- "name": "multiplierBps",
1063
- "type": "uint16"
1064
- },
1065
- {
1066
- "internalType": "uint128",
1067
- "name": "floorMarginUSD",
1068
- "type": "uint128"
1069
- }
1070
- ],
1071
- "internalType": "struct IDVN.DstConfigParam[]",
1072
- "name": "_params",
1073
- "type": "tuple[]"
1074
- }
1075
- ],
1076
- "name": "setDstConfig",
1077
- "outputs": [],
1078
- "stateMutability": "nonpayable",
1079
- "type": "function"
1080
- },
1081
- {
1082
- "inputs": [
1083
- {
1084
- "internalType": "bool",
1085
- "name": "_paused",
1086
- "type": "bool"
1087
- }
1088
- ],
1089
- "name": "setPaused",
1090
- "outputs": [],
1091
- "stateMutability": "nonpayable",
1092
- "type": "function"
1093
- },
1094
- {
1095
- "inputs": [
1096
- {
1097
- "internalType": "address",
1098
- "name": "_priceFeed",
1099
- "type": "address"
1100
- }
1101
- ],
1102
- "name": "setPriceFeed",
1103
- "outputs": [],
1104
- "stateMutability": "nonpayable",
1105
- "type": "function"
1106
- },
1107
- {
1108
- "inputs": [
1109
- {
1110
- "internalType": "uint64",
1111
- "name": "_quorum",
1112
- "type": "uint64"
1113
- }
1114
- ],
1115
- "name": "setQuorum",
1116
- "outputs": [],
1117
- "stateMutability": "nonpayable",
1118
- "type": "function"
1119
- },
1120
- {
1121
- "inputs": [
1122
- {
1123
- "internalType": "address",
1124
- "name": "_signer",
1125
- "type": "address"
1126
- },
1127
- {
1128
- "internalType": "bool",
1129
- "name": "_active",
1130
- "type": "bool"
1131
- }
1132
- ],
1133
- "name": "setSigner",
1134
- "outputs": [],
1135
- "stateMutability": "nonpayable",
1136
- "type": "function"
1137
- },
1138
- {
1139
- "inputs": [
1140
- {
1141
- "internalType": "uint32",
1142
- "name": "_eid",
1143
- "type": "uint32"
1144
- },
1145
- {
1146
- "internalType": "uint8[]",
1147
- "name": "_optionTypes",
1148
- "type": "uint8[]"
1149
- }
1150
- ],
1151
- "name": "setSupportedOptionTypes",
1152
- "outputs": [],
1153
- "stateMutability": "nonpayable",
1154
- "type": "function"
1155
- },
1156
- {
1157
- "inputs": [
1158
- {
1159
- "internalType": "address",
1160
- "name": "_workerFeeLib",
1161
- "type": "address"
1162
- }
1163
- ],
1164
- "name": "setWorkerFeeLib",
1165
- "outputs": [],
1166
- "stateMutability": "nonpayable",
1167
- "type": "function"
1168
- },
1169
- {
1170
- "inputs": [],
1171
- "name": "signerSize",
1172
- "outputs": [
1173
- {
1174
- "internalType": "uint64",
1175
- "name": "",
1176
- "type": "uint64"
1177
- }
1178
- ],
1179
- "stateMutability": "view",
1180
- "type": "function"
1181
- },
1182
- {
1183
- "inputs": [
1184
- {
1185
- "internalType": "address",
1186
- "name": "signer",
1187
- "type": "address"
1188
- }
1189
- ],
1190
- "name": "signers",
1191
- "outputs": [
1192
- {
1193
- "internalType": "bool",
1194
- "name": "active",
1195
- "type": "bool"
1196
- }
1197
- ],
1198
- "stateMutability": "view",
1199
- "type": "function"
1200
- },
1201
- {
1202
- "inputs": [
1203
- {
1204
- "internalType": "bytes4",
1205
- "name": "interfaceId",
1206
- "type": "bytes4"
1207
- }
1208
- ],
1209
- "name": "supportsInterface",
1210
- "outputs": [
1211
- {
1212
- "internalType": "bool",
1213
- "name": "",
1214
- "type": "bool"
1215
- }
1216
- ],
1217
- "stateMutability": "view",
1218
- "type": "function"
1219
- },
1220
- {
1221
- "inputs": [
1222
- {
1223
- "internalType": "bytes32",
1224
- "name": "executableHash",
1225
- "type": "bytes32"
1226
- }
1227
- ],
1228
- "name": "usedHashes",
1229
- "outputs": [
1230
- {
1231
- "internalType": "bool",
1232
- "name": "used",
1233
- "type": "bool"
1234
- }
1235
- ],
1236
- "stateMutability": "view",
1237
- "type": "function"
1238
- },
1239
- {
1240
- "inputs": [
1241
- {
1242
- "internalType": "bytes32",
1243
- "name": "_hash",
1244
- "type": "bytes32"
1245
- },
1246
- {
1247
- "internalType": "bytes",
1248
- "name": "_signatures",
1249
- "type": "bytes"
1250
- }
1251
- ],
1252
- "name": "verifySignatures",
1253
- "outputs": [
1254
- {
1255
- "internalType": "bool",
1256
- "name": "",
1257
- "type": "bool"
1258
- },
1259
- {
1260
- "internalType": "enum MultiSig.Errors",
1261
- "name": "",
1262
- "type": "uint8"
1263
- }
1264
- ],
1265
- "stateMutability": "view",
1266
- "type": "function"
1267
- },
1268
- {
1269
- "inputs": [],
1270
- "name": "vid",
1271
- "outputs": [
1272
- {
1273
- "internalType": "uint32",
1274
- "name": "",
1275
- "type": "uint32"
1276
- }
1277
- ],
1278
- "stateMutability": "view",
1279
- "type": "function"
1280
- },
1281
- {
1282
- "inputs": [
1283
- {
1284
- "internalType": "address",
1285
- "name": "_lib",
1286
- "type": "address"
1287
- },
1288
- {
1289
- "internalType": "address",
1290
- "name": "_to",
1291
- "type": "address"
1292
- },
1293
- {
1294
- "internalType": "uint256",
1295
- "name": "_amount",
1296
- "type": "uint256"
1297
- }
1298
- ],
1299
- "name": "withdrawFee",
1300
- "outputs": [],
1301
- "stateMutability": "nonpayable",
1302
- "type": "function"
1303
- },
1304
- {
1305
- "inputs": [
1306
- {
1307
- "internalType": "address",
1308
- "name": "_lib",
1309
- "type": "address"
1310
- },
1311
- {
1312
- "internalType": "address payable",
1313
- "name": "_to",
1314
- "type": "address"
1315
- },
1316
- {
1317
- "internalType": "uint256",
1318
- "name": "_amount",
1319
- "type": "uint256"
1320
- }
1321
- ],
1322
- "name": "withdrawFeeFromUlnV2",
1323
- "outputs": [],
1324
- "stateMutability": "nonpayable",
1325
- "type": "function"
1326
- },
1327
- {
1328
- "inputs": [
1329
- {
1330
- "internalType": "address",
1331
- "name": "_token",
1332
- "type": "address"
1333
- },
1334
- {
1335
- "internalType": "address",
1336
- "name": "_to",
1337
- "type": "address"
1338
- },
1339
- {
1340
- "internalType": "uint256",
1341
- "name": "_amount",
1342
- "type": "uint256"
1343
- }
1344
- ],
1345
- "name": "withdrawToken",
1346
- "outputs": [],
1347
- "stateMutability": "nonpayable",
1348
- "type": "function"
1349
- },
1350
- {
1351
- "inputs": [],
1352
- "name": "workerFeeLib",
1353
- "outputs": [
1354
- {
1355
- "internalType": "address",
1356
- "name": "",
1357
- "type": "address"
1358
- }
1359
- ],
1360
- "stateMutability": "view",
1361
- "type": "function"
1362
- }
1363
- ],
1364
- "transactionHash": "0x2d23f8db078749c10af6556f61cd4a27824310cd0f3883cd113ec9b19c040a55",
1365
- "receipt": {
1366
- "to": null,
1367
- "from": "0xBcd4042DE499D14e55001CcbB24a551F3b954096",
1368
- "contractAddress": "0x10Aeafac83d48E2f9ac4bAAf94311c45fACe1404",
1369
- "transactionIndex": 0,
1370
- "gasUsed": "4098897",
1371
- "logsBloom": "0x00001004000000000000000000000000000000000000000000800000000000000000000000000000000000020000000000000000000000000000000000000080000000000000000000800000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000810000000000000000000000000000000000000000000004000000000080000000000000000000020000000000000000000000000000000400000000000000000001000000000000000000000000000000002010000000000000000000000000100000000000040000000000090000000000000000080000000000000000000000000000000000000",
1372
- "blockHash": "0xf011e8194f7ef6ca5d214c8ed9e5d9497cd220e24ba874d5b447a723364f6d7e",
1373
- "transactionHash": "0x2d23f8db078749c10af6556f61cd4a27824310cd0f3883cd113ec9b19c040a55",
1374
- "logs": [
1375
- {
1376
- "transactionIndex": 0,
1377
- "blockNumber": 92,
1378
- "transactionHash": "0x2d23f8db078749c10af6556f61cd4a27824310cd0f3883cd113ec9b19c040a55",
1379
- "address": "0x10Aeafac83d48E2f9ac4bAAf94311c45fACe1404",
1380
- "topics": [
1381
- "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d",
1382
- "0x724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de",
1383
- "0x00000000000000000000000073eccd6288e117caca738bdad4fec51312166c1a",
1384
- "0x000000000000000000000000bcd4042de499d14e55001ccbb24a551f3b954096"
1385
- ],
1386
- "data": "0x",
1387
- "logIndex": 0,
1388
- "blockHash": "0xf011e8194f7ef6ca5d214c8ed9e5d9497cd220e24ba874d5b447a723364f6d7e"
1389
- },
1390
- {
1391
- "transactionIndex": 0,
1392
- "blockNumber": 92,
1393
- "transactionHash": "0x2d23f8db078749c10af6556f61cd4a27824310cd0f3883cd113ec9b19c040a55",
1394
- "address": "0x10Aeafac83d48E2f9ac4bAAf94311c45fACe1404",
1395
- "topics": [
1396
- "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d",
1397
- "0xa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775",
1398
- "0x0000000000000000000000000e9971c0005d91336c1441b8f03c1c4fe5fb4584",
1399
- "0x000000000000000000000000bcd4042de499d14e55001ccbb24a551f3b954096"
1400
- ],
1401
- "data": "0x",
1402
- "logIndex": 1,
1403
- "blockHash": "0xf011e8194f7ef6ca5d214c8ed9e5d9497cd220e24ba874d5b447a723364f6d7e"
1404
- }
1405
- ],
1406
- "blockNumber": 92,
1407
- "cumulativeGasUsed": "4098897",
1408
- "status": 1,
1409
- "byzantium": true
1410
- },
1411
- "args": [
1412
- 20231,
1413
- [
1414
- "0x73eccD6288e117cAcA738BDAD4FEC51312166C1A"
1415
- ],
1416
- "0x8cDbD76bB6Cf0293e07deEEEd460cf579873aF44",
1417
- [
1418
- "0x9c79357189d6aF261691ECF48de9A6bbF30438Fc",
1419
- "0xC4c81D5C1851702d27d602aA8ff830A7689F17cc"
1420
- ],
1421
- 1,
1422
- [
1423
- "0x0e9971c0005D91336c1441b8F03c1C4fe5FB4584"
1424
- ]
1425
- ],
1426
- "numDeployments": 1,
1427
- "solcInputHash": "a02895da4e26717c8c5ac06356be07de",
1428
- "bytecode": "0x60a06040523480156200001157600080fd5b5060405162004c4938038062004c498339810160408190526200003491620004c4565b6001805460ff61ffff60e81b01191661017760ed1b179055600280546001600160a01b0319166001600160a01b03861617905582828686612ee060008660005b8551811015620000d557620000cc7f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de878381518110620000b857620000b862000597565b60200260200101516200027b60201b60201c565b60010162000074565b5060005b815181101562000126576200011d7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775838381518110620000b857620000b862000597565b600101620000d9565b505050505050806001600160401b03166000036200015757604051635f86e17760e01b815260040160405180910390fd5b806001600160401b0316825110156200019d5781516040516378e2c15760e11b81526001600160401b039182166004820152908216602482015260440160405180910390fd5b6000805b83518110156200022f576000848281518110620001c257620001c262000597565b60200260200101519050826001600160a01b0316816001600160a01b031611620001ff576040516305fa937f60e11b815260040160405180910390fd5b6001600160a01b0381166000908152600460205260409020805460ff1916600190811790915590925001620001a1565b50509051600580546001600160401b0393841668010000000000000000026001600160801b0319909116939092169290921717905550505063ffffffff90921660805250620005ea9050565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca82148015620002cc57506000828152602081815260408083206001600160a01b038516845290915290205460ff16155b15620003195760018054601590620002f490600160a81b90046001600160401b0316620005ad565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b62000325828262000329565b5050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000325576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620003853390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b0381168114620003f757600080fd5b919050565b600082601f8301126200040e57600080fd5b815160206001600160401b03808311156200042d576200042d620003c9565b8260051b604051601f19603f83011681018181108482111715620004555762000455620003c9565b60405293845260208187018101949081019250878511156200047657600080fd5b6020870191505b84821015620004a1576200049182620003df565b835291830191908301906200047d565b979650505050505050565b80516001600160401b0381168114620003f757600080fd5b60008060008060008060c08789031215620004de57600080fd5b865163ffffffff81168114620004f357600080fd5b60208801519096506001600160401b03808211156200051157600080fd5b6200051f8a838b01620003fc565b96506200052f60408a01620003df565b955060608901519150808211156200054657600080fd5b620005548a838b01620003fc565b94506200056460808a01620004ac565b935060a08901519150808211156200057b57600080fd5b506200058a89828a01620003fc565b9150509295509295509295565b634e487b7160e01b600052603260045260246000fd5b60006001600160401b038281166002600160401b03198101620005e057634e487b7160e01b600052601160045260246000fd5b6001019392505050565b608051614635620006146000396000818161085501528181611708015261229801526146356000f3fe60806040526004361061029f5760003560e01c80638585c9451161016e578063c7a823e0116100cb578063d547741f1161007f578063f010cb2311610064578063f010cb2314610906578063f3b4ebd014610926578063fd62e7501461094657600080fd5b8063d547741f146108c6578063dafe0ccc146108e657600080fd5b8063cd88b903116100b0578063cd88b90314610823578063cf34c76814610843578063d2ae21041461088c57600080fd5b8063c7a823e0146107d5578063c7b2370b1461080357600080fd5b8063aef18bf711610122578063c358de0a11610107578063c358de0a14610763578063c416aa5114610783578063c5e193cd146107b557600080fd5b8063aef18bf714610713578063b143044b1461074357600080fd5b806395d376d71161015357806395d376d7146106465780639e94496514610659578063a217fddf146106fe57600080fd5b80638585c945146105d557806391d14854146105f557600080fd5b80632f2ff15d1161021c5780635553fb8e116101d0578063724e78da116101b5578063724e78da14610533578063736c0d5b14610553578063741bef1a1461058357600080fd5b80635553fb8e146104fb5780635c975abb1461051b57600080fd5b806331cb61051161020157806331cb61051461049b57806336568abe146104bb57806352d3b871146104db57600080fd5b80632f2ff15d1461045b57806330bb3aac1461047b57600080fd5b806316c38b3c11610273578063248a9ca311610258578063248a9ca3146103d057806326e67a371461040e5780632de113761461043b57600080fd5b806316c38b3c1461036a5780631703a0181461038a57600080fd5b8062bf2e80146102a457806301e33667146102f857806301ffc9a71461031a5780631095b6d71461034a575b600080fd5b3480156102b057600080fd5b506001546102e0907d010000000000000000000000000000000000000000000000000000000000900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b34801561030457600080fd5b50610318610313366004613732565b610967565b005b34801561032657600080fd5b5061033a610335366004613773565b6109a2565b60405190151581526020016102ef565b34801561035657600080fd5b50610318610365366004613732565b610a3b565b34801561037657600080fd5b506103186103853660046137c3565b610bcb565b34801561039657600080fd5b506005546103b79068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016102ef565b3480156103dc57600080fd5b506104006103eb3660046137e0565b60009081526020819052604090206001015490565b6040519081526020016102ef565b34801561041a57600080fd5b5061042e61042936600461380d565b610bf0565b6040516102ef9190613828565b34801561044757600080fd5b5061033a61045636600461386f565b610c77565b34801561046757600080fd5b5061031861047636600461388c565b610d5c565b34801561048757600080fd5b50610400610496366004613916565b610eb0565b3480156104a757600080fd5b506103186104b636600461398e565b611027565b3480156104c757600080fd5b506103186104d636600461388c565b61106a565b3480156104e757600080fd5b506103186104f63660046139bc565b61109c565b34801561050757600080fd5b50610400610516366004613a43565b611268565b34801561052757600080fd5b5060015460ff1661033a565b34801561053f57600080fd5b5061031861054e36600461386f565b6113df565b34801561055f57600080fd5b5061033a61056e36600461386f565b60046020526000908152604090205460ff1681565b34801561058f57600080fd5b506002546105b09073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102ef565b3480156105e157600080fd5b506103186105f0366004613a99565b611484565b34801561060157600080fd5b5061033a61061036600461388c565b60009182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b610400610654366004613acc565b6114c9565b34801561066557600080fd5b506106c361067436600461380d565b60066020526000908152604090205467ffffffffffffffff81169068010000000000000000810461ffff16906a010000000000000000000090046fffffffffffffffffffffffffffffffff1683565b6040805167ffffffffffffffff909416845261ffff90921660208401526fffffffffffffffffffffffffffffffff16908201526060016102ef565b34801561070a57600080fd5b50610400600081565b34801561071f57600080fd5b5061033a61072e3660046137e0565b60076020526000908152604090205460ff1681565b34801561074f57600080fd5b5061031861075e366004613b7a565b6116a5565b34801561076f57600080fd5b5061031861077e366004613bbc565b6119b5565b34801561078f57600080fd5b506001546105b090610100900473ffffffffffffffffffffffffffffffffffffffff1681565b3480156107c157600080fd5b506104006107d0366004613a43565b611a63565b3480156107e157600080fd5b506107f56107f0366004613bd7565b611c41565b6040516102ef929190613c45565b34801561080f57600080fd5b5061031861081e36600461386f565b611e51565b34801561082f57600080fd5b5061031861083e366004613c92565b611ef5565b34801561084f57600080fd5b506108777f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016102ef565b34801561089857600080fd5b506001546103b7907501000000000000000000000000000000000000000000900467ffffffffffffffff1681565b3480156108d257600080fd5b506103186108e136600461388c565b611f46565b3480156108f257600080fd5b50610318610901366004613732565b61205b565b34801561091257600080fd5b50610400610921366004613cd8565b612191565b34801561093257600080fd5b50610318610941366004613d43565b6121cd565b34801561095257600080fd5b506005546103b79067ffffffffffffffff1681565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561099181612442565b61099c84848461244c565b50505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b000000000000000000000000000000000000000000000000000000001480610a3557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610a6581612442565b73ffffffffffffffffffffffffffffffffffffffff841660009081527f9b50f4667d2d24216ccbf0dce3a90c0f620fa4d895e7b069d80ff6247fd25620602052604090205460ff16610ae3576040517f5ee08b9700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517ffd9be52200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301526024820184905285169063fd9be52290604401600060405180830381600087803b158015610b5357600080fd5b505af1158015610b67573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff8089168252871660208201529081018590527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb925060600190505b60405180910390a150505050565b6000610bd681612442565b8115610be857610be461247c565b5050565b610be46124fb565b63ffffffff8116600090815260036020908152604091829020805483518184028101840190945280845260609392830182828015610c6b57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610c3c5790505b50505050509050919050565b73ffffffffffffffffffffffffffffffffffffffff811660009081527f93c430521711328044ae92d0f1f1286cf040bc4a382f1642bd89984e86630553602052604081205460ff1615610ccc57506000919050565b6001547501000000000000000000000000000000000000000000900467ffffffffffffffff161580610d42575073ffffffffffffffffffffffffffffffffffffffff821660009081527f4ac82e3087b7dedf7f532cbc6915c722df8c1e31f1388c318a617b52760eaf8b602052604090205460ff165b15610d4f57506001919050565b506000919050565b919050565b817f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca811480610daa57507f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e481145b80610dd457507f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de81145b15610e1757303314610e12576040517ffaba723a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ea1565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758103610e6757610e127fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775612442565b6040517f94fdc372000000000000000000000000000000000000000000000000000000008152600481018290526024015b60405180910390fd5b610eab8383612552565b505050565b600083610ebc81610c77565b610ef2576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160c08101825260025473ffffffffffffffffffffffffffffffffffffffff908116825263ffffffff8a16602080840182905267ffffffffffffffff808c16858701528a8416606086015260055468010000000000000000900416608085015260015461ffff7d01000000000000000000000000000000000000000000000000000000000082041660a0860152600092835260069091529084902093517f7bfa20a9000000000000000000000000000000000000000000000000000000008152929361010090910490911691637bfa20a991610fda918591908a908a90600401613dc1565b602060405180830381865afa158015610ff7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101b9190613e8e565b98975050505050505050565b303314611060576040517ffaba723a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610be48282612618565b6040517fdec9f03100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756110c681612442565b60005b8281101561122957368484838181106110e4576110e4613ea7565b9050608002019050604051806060016040528082602001602081019061110a9190613a99565b67ffffffffffffffff1681526020016111296060840160408501613bbc565b61ffff1681526020016111426080840160608501613ef6565b6fffffffffffffffffffffffffffffffff16905260066000611167602085018561380d565b63ffffffff1681526020808201929092526040908101600020835181549385015194909201516fffffffffffffffffffffffffffffffff166a0100000000000000000000027fffffffffffff00000000000000000000000000000000ffffffffffffffffffff61ffff90951668010000000000000000027fffffffffffffffffffffffffffffffffffffffffffff0000000000000000000090941667ffffffffffffffff909316929092179290921792909216919091179055506001016110c9565b507f7dd21e42791b013d1929e86f0c59085e4fca24251f0f1aa81917b3b1611766e0838360405161125b929190613f11565b60405180910390a1505050565b60008161127481610c77565b6112aa576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160c08101825260025473ffffffffffffffffffffffffffffffffffffffff908116825261ffff808a16602080850182905267ffffffffffffffff808b168688015289851660608701526005546801000000000000000090041660808601526001547d010000000000000000000000000000000000000000000000000000000000810490931660a08601526000918252600681528582208651918201875291815294517f7bfa20a9000000000000000000000000000000000000000000000000000000008152939461010090920490921692637bfa20a99261139392869260040161401d565b602060405180830381865afa1580156113b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113d49190613e8e565b979650505050505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561140981612442565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d906020015b60405180910390a15050565b3033146114bd576040517ffaba723a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6114c681612818565b50565b60007f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de6114f581612442565b61150560a086016080870161386f565b61150e81610c77565b611544576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160c0810190915260025473ffffffffffffffffffffffffffffffffffffffff16815260009060208082019061157f908a018a61380d565b63ffffffff16815260200161159a60808a0160608b01613a99565b67ffffffffffffffff1681526020016115b960a08a0160808b0161386f565b73ffffffffffffffffffffffffffffffffffffffff908116825260055468010000000000000000900467ffffffffffffffff166020808401919091526001547d010000000000000000000000000000000000000000000000000000000000810461ffff16604090940193909352929350610100909104169063df2b057e90839060069060009061164b908d018d61380d565b63ffffffff1663ffffffff16815260200190815260200160002089896040518563ffffffff1660e01b81526004016116869493929190613dc1565b6020604051808303816000875af11580156113b0573d6000803e3d6000fd5b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756116cf81612442565b60005b8281101561099c57368484838181106116ed576116ed613ea7565b90506020028101906116ff91906140f3565b905063ffffffff7f000000000000000000000000000000000000000000000000000000000000000016611735602083018361380d565b63ffffffff161461174657506119ad565b4281606001351161175757506119ad565b6000611790611769602084018461380d565b611779604085016020860161386f565b6117866040860186614131565b8660600135612191565b905060006117a5826107f06080860186614131565b509050806117e8576040518481527fd6d90193101048cc1b6edcdc2348f5acf7a4a4a97d3e7b668b74cb7602ab3ebc9060200160405180910390a15050506119ad565b60006118086117fa6040860186614131565b61180391614196565b612930565b905080156118a15760008381526007602052604090205460ff1615611869577f9bb9bddbdf537a2104255307230b323d7982f4512ee8e5bd15df62ddca50ab978484604051611858929190614242565b60405180910390a1505050506119ad565b600083815260076020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555b6000806118b4604087016020880161386f565b73ffffffffffffffffffffffffffffffffffffffff166118d76040880188614131565b6040516118e5929190614308565b6000604051808303816000865af19150503d8060008114611922576040519150601f19603f3d011682016040523d82523d6000602084013e611927565b606091505b5091509150816119a657821561196c57600085815260076020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b7fdc8cdd96296241bbefda4a8e18ad2e0985a8da6495b34d409cfc4c886ee3b0cf878260405161199d929190614318565b60405180910390a15b5050505050505b6001016116d2565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756119df81612442565b600180547fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167d01000000000000000000000000000000000000000000000000000000000061ffff8516908102919091179091556040519081527f7af0ac740036ffb1c97b03697859d729e80a44ae5030543d64971c313565ab4d90602001611478565b60007f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de611a8f81612442565b82611a9981610c77565b611acf576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160c08101825260025473ffffffffffffffffffffffffffffffffffffffff908116825261ffff808b16602080850182905267ffffffffffffffff808c16868801528a851660608701526005546801000000000000000090041660808601526001547d010000000000000000000000000000000000000000000000000000000000810490931660a08601526000918252600681528582208651918201875291815294517fdf2b057e00000000000000000000000000000000000000000000000000000000815293946101009092049092169263df2b057e92611bb892869260040161401d565b6020604051808303816000875af1158015611bd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bfb9190613e8e565b93507f87e46b0a6199bc734632187269a103c05714ee0adae5b28f30723955724f37ef84604051611c2e91815260200190565b60405180910390a1505050949350505050565b6005546000908190611c6a9068010000000000000000900467ffffffffffffffff166041614360565b8314611c7c5750600090506001611e49565b6000611cd5866040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b90506000805b60055468010000000000000000900467ffffffffffffffff16811015611e3d573660008888611d0b856041614360565b90611d17866001614377565b611d22906041614360565b92611d2f9392919061438a565b91509150600080611d768785858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506129cb92505050565b90925090506000816004811115611d8f57611d8f613c16565b14611da857600060019850985050505050505050611e49565b8573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1611611def57600060029850985050505050505050611e49565b73ffffffffffffffffffffffffffffffffffffffff821660009081526004602052604090205460ff16611e3057600060039850985050505050505050611e49565b5093505050600101611cdb565b50600160009350935050505b935093915050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775611e7b81612442565b600180547fffffffffffffffffffffff0000000000000000000000000000000000000000ff1661010073ffffffffffffffffffffffffffffffffffffffff8516908102919091179091556040519081527f1399be28223800f8669b3ba5f8721d9fc16fc4e8d0bbf98378791c8c5a3015e090602001611478565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775611f1f81612442565b63ffffffff84166000908152600360205260409020611f3f908484613652565b5050505050565b817f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca811480611f9457507f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e481145b80611fbe57507f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de81145b1561200157303314611ffc576040517ffaba723a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612051565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758103610e6757611ffc7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775612442565b610eab8383612a10565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561208581612442565b73ffffffffffffffffffffffffffffffffffffffff841660009081527f9b50f4667d2d24216ccbf0dce3a90c0f620fa4d895e7b069d80ff6247fd25620602052604090205460ff16612103576040517f5ee08b9700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f07b18bde00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018490528516906307b18bde90604401600060405180830381600087803b15801561217357600080fd5b505af1158015612187573d6000803e3d6000fd5b5050505050505050565b600085858386866040516020016121ac9594939291906143b4565b60405160208183030381529060405280519060200120905095945050505050565b4281606001351161220a576040517f0bbaf26300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3061221b604083016020840161386f565b73ffffffffffffffffffffffffffffffffffffffff161461229157612246604082016020830161386f565b6040517f1ce0bfcd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401610e98565b63ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166122c5602083018361380d565b63ffffffff1614612318576122dd602082018261380d565b6040517f2697e1c200000000000000000000000000000000000000000000000000000000815263ffffffff9091166004820152602401610e98565b600061232a611769602084018461380d565b9050600061233f826107f06080860186614131565b50905080612379576040517f15ecadee00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526007602052604090205460ff16156123c5576040517f9d6a45a600000000000000000000000000000000000000000000000000000000815260048101839052602401610e98565b6000828152600760205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610eab907fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217759061243090860186614131565b81019061243d919061386f565b612552565b6114c68133612ad5565b73ffffffffffffffffffffffffffffffffffffffff831661247157610eab8282612b8d565b610eab838383612c93565b612484612d01565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b612503612d70565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa336124d1565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca821480156125af575060008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16155b1561260e57600180546015906125e7907501000000000000000000000000000000000000000000900467ffffffffffffffff16614426565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b610be48282612ddc565b73ffffffffffffffffffffffffffffffffffffffff821660009081526004602052604090205481151560ff90911615150361269f576040517f58c8d2a000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201528115156024820152604401610e98565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260046020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016831515179055816127115760055461270c9060019067ffffffffffffffff1661444d565b612729565b6005546127299067ffffffffffffffff166001614475565b60055490915067ffffffffffffffff680100000000000000009091048116908216811115612797576040517ff1c582ae00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff808416600483015282166024820152604401610e98565b600580547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff84161790556040805173ffffffffffffffffffffffffffffffffffffffff8616815284151560208201527f863d338cad74814b108a06288ad5e0e80d56495e0332238b1d2cdcfa0ca8e5ce9101610bbd565b8067ffffffffffffffff1660000361285c576040517f5f86e17700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60055467ffffffffffffffff9081169082168110156128bb576040517ff1c582ae00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff808316600483015283166024820152604401610e98565b600580547fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff166801000000000000000067ffffffffffffffff8516908102919091179091556040519081527fb600f3cf7f38a4b49bb0c75f722ef69f7e3e39ef3bb4aa8207fd86e724a2324990602001611478565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0223536e0000000000000000000000000000000000000000000000000000000014801590610a3557507fffffffff0000000000000000000000000000000000000000000000000000000082167f704316e500000000000000000000000000000000000000000000000000000000141592915050565b6000808251604103612a015760208301516040840151606085015160001a6129f587828585612ecc565b94509450505050612a09565b506000905060025b9250929050565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca82148015612a6c575060008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff165b15612acb5760018054601590612aa4907501000000000000000000000000000000000000000000900467ffffffffffffffff16614496565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b610be48282612fbb565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610be457612b1381613072565b612b1e836020613091565b604051602001612b2f9291906144d8565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a0000000000000000000000000000000000000000000000000000000008252610e9891600401614559565b73ffffffffffffffffffffffffffffffffffffffff8216612bda576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114612c34576040519150601f19603f3d011682016040523d82523d6000602084013e612c39565b606091505b5050905080610eab576040517f465bc83400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101839052604401610e98565b73ffffffffffffffffffffffffffffffffffffffff8216612ce0576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610eab73ffffffffffffffffffffffffffffffffffffffff841683836132db565b60015460ff1615612d6e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610e98565b565b60015460ff16612d6e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610e98565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610be45760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055612e6e3390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115612f035750600090506003612fb2565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612f57573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116612fab57600060019250925050612fb2565b9150600090505b94509492505050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1615610be45760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6060610a3573ffffffffffffffffffffffffffffffffffffffff831660145b606060006130a0836002614360565b6130ab906002614377565b67ffffffffffffffff8111156130c3576130c361456c565b6040519080825280601f01601f1916602001820160405280156130ed576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061312457613124613ea7565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061318757613187613ea7565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006131c3846002614360565b6131ce906001614377565b90505b600181111561326b577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061320f5761320f613ea7565b1a60f81b82828151811061322557613225613ea7565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c936132648161459b565b90506131d1565b5083156132d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610e98565b9392505050565b6040805173ffffffffffffffffffffffffffffffffffffffff848116602483015260448083018590528351808403909101815260649092018352602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656490840152610eab928692916000916133a6918516908490613453565b90508051600014806133c75750808060200190518101906133c791906145d0565b610eab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610e98565b6060613462848460008561346a565b949350505050565b6060824710156134fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610e98565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161352591906145ed565b60006040518083038185875af1925050503d8060008114613562576040519150601f19603f3d011682016040523d82523d6000602084013e613567565b606091505b50915091506113d487838387606083156136095782516000036136025773ffffffffffffffffffffffffffffffffffffffff85163b613602576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610e98565b5081613462565b613462838381511561361e5781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e989190614559565b82805482825590600052602060002090601f016020900481019282156136eb5791602002820160005b838211156136bc57833560ff1683826101000a81548160ff021916908360ff160217905550926020019260010160208160000104928301926001030261367b565b80156136e95782816101000a81549060ff02191690556001016020816000010492830192600103026136bc565b505b506136f79291506136fb565b5090565b5b808211156136f757600081556001016136fc565b73ffffffffffffffffffffffffffffffffffffffff811681146114c657600080fd5b60008060006060848603121561374757600080fd5b833561375281613710565b9250602084013561376281613710565b929592945050506040919091013590565b60006020828403121561378557600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146132d457600080fd5b80151581146114c657600080fd5b6000602082840312156137d557600080fd5b81356132d4816137b5565b6000602082840312156137f257600080fd5b5035919050565b803563ffffffff81168114610d5757600080fd5b60006020828403121561381f57600080fd5b6132d4826137f9565b6020808252825182820181905260009190848201906040850190845b8181101561386357835160ff1683529284019291840191600101613844565b50909695505050505050565b60006020828403121561388157600080fd5b81356132d481613710565b6000806040838503121561389f57600080fd5b8235915060208301356138b181613710565b809150509250929050565b803567ffffffffffffffff81168114610d5757600080fd5b60008083601f8401126138e657600080fd5b50813567ffffffffffffffff8111156138fe57600080fd5b602083019150836020828501011115612a0957600080fd5b60008060008060006080868803121561392e57600080fd5b613937866137f9565b9450613945602087016138bc565b9350604086013561395581613710565b9250606086013567ffffffffffffffff81111561397157600080fd5b61397d888289016138d4565b969995985093965092949392505050565b600080604083850312156139a157600080fd5b82356139ac81613710565b915060208301356138b1816137b5565b600080602083850312156139cf57600080fd5b823567ffffffffffffffff808211156139e757600080fd5b818501915085601f8301126139fb57600080fd5b813581811115613a0a57600080fd5b8660208260071b8501011115613a1f57600080fd5b60209290920196919550909350505050565b803561ffff81168114610d5757600080fd5b60008060008060808587031215613a5957600080fd5b613a6285613a31565b9350613a7060208601613a31565b9250613a7e604086016138bc565b91506060850135613a8e81613710565b939692955090935050565b600060208284031215613aab57600080fd5b6132d4826138bc565b600060a08284031215613ac657600080fd5b50919050565b600080600060408486031215613ae157600080fd5b833567ffffffffffffffff80821115613af957600080fd5b613b0587838801613ab4565b94506020860135915080821115613b1b57600080fd5b50613b28868287016138d4565b9497909650939450505050565b60008083601f840112613b4757600080fd5b50813567ffffffffffffffff811115613b5f57600080fd5b6020830191508360208260051b8501011115612a0957600080fd5b60008060208385031215613b8d57600080fd5b823567ffffffffffffffff811115613ba457600080fd5b613bb085828601613b35565b90969095509350505050565b600060208284031215613bce57600080fd5b6132d482613a31565b600080600060408486031215613bec57600080fd5b83359250602084013567ffffffffffffffff811115613c0a57600080fd5b613b28868287016138d4565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b82151581526040810160048310613c85577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8260208301529392505050565b600080600060408486031215613ca757600080fd5b613cb0846137f9565b9250602084013567ffffffffffffffff811115613ccc57600080fd5b613b2886828701613b35565b600080600080600060808688031215613cf057600080fd5b613cf9866137f9565b94506020860135613d0981613710565b9350604086013567ffffffffffffffff811115613d2557600080fd5b613d31888289016138d4565b96999598509660600135949350505050565b600060208284031215613d5557600080fd5b813567ffffffffffffffff811115613d6c57600080fd5b61346284828501613ab4565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6000610140613e39838873ffffffffffffffffffffffffffffffffffffffff80825116835263ffffffff6020830151166020840152604082015167ffffffffffffffff808216604086015282606085015116606086015280608085015116608086015250505061ffff60a08201511660a08301525050565b613e7a60c08401875467ffffffffffffffff81168252604081811c61ffff16602084015260509190911c6fffffffffffffffffffffffffffffffff16910152565b806101208401526113d48184018587613d78565b600060208284031215613ea057600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b80356fffffffffffffffffffffffffffffffff81168114610d5757600080fd5b600060208284031215613f0857600080fd5b6132d482613ed6565b6020808252818101839052600090604080840186845b87811015613fa25763ffffffff613f3d836137f9565b16835267ffffffffffffffff613f548684016138bc565b168584015261ffff613f67858401613a31565b168484015260606fffffffffffffffffffffffffffffffff613f8a828501613ed6565b16908401526080928301929190910190600101613f27565b5090979650505050505050565b60005b83811015613fca578181015183820152602001613fb2565b50506000910152565b60008151808452613feb816020860160208601613faf565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6000610140614095838773ffffffffffffffffffffffffffffffffffffffff80825116835263ffffffff6020830151166020840152604082015167ffffffffffffffff808216604086015282606085015116606086015280608085015116608086015250505061ffff60a08201511660a08301525050565b6140d660c08401865467ffffffffffffffff81168252604081811c61ffff16602084015260509190911c6fffffffffffffffffffffffffffffffff16910152565b806101208401526140e981840185613fd3565b9695505050505050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6183360301811261412757600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261416657600080fd5b83018035915067ffffffffffffffff82111561418157600080fd5b602001915036819003821315612a0957600080fd5b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156141d65780818660040360031b1b83161692505b505092915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261421357600080fd5b830160208101925035905067ffffffffffffffff81111561423357600080fd5b803603821315612a0957600080fd5b6040815263ffffffff614254846137f9565b1660408201526000602084013561426a81613710565b73ffffffffffffffffffffffffffffffffffffffff16606083015261429260408501856141de565b60a060808501526142a760e085018284613d78565b915050606085013560a08401526142c160808601866141de565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08584030160c08601526142f6838284613d78565b93505050508260208301529392505050565b8183823760009101908152919050565b8281526040602082015260006134626040830184613fd3565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082028115828204841417610a3557610a35614331565b80820180821115610a3557610a35614331565b6000808585111561439a57600080fd5b838611156143a757600080fd5b5050820193919092039150565b7fffffffff000000000000000000000000000000000000000000000000000000008660e01b1681527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008560601b1660048201528360188201528183603883013760009101603801908152949350505050565b600067ffffffffffffffff80831681810361444357614443614331565b6001019392505050565b67ffffffffffffffff82811682821603908082111561446e5761446e614331565b5092915050565b67ffffffffffffffff81811683821601908082111561446e5761446e614331565b600067ffffffffffffffff8216806144b0576144b0614331565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351614510816017850160208801613faf565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000601791840191820152835161454d816028840160208801613faf565b01602801949350505050565b6020815260006132d46020830184613fd3565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000816145aa576145aa614331565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b6000602082840312156145e257600080fd5b81516132d4816137b5565b60008251614127818460208701613faf56fea2646970667358221220b69fbeb30e38ef1b4b202031c8b88e5d5b004563c7ff42713ed413ed4f4901a664736f6c63430008160033",
1429
- "deployedBytecode": "0x60806040526004361061029f5760003560e01c80638585c9451161016e578063c7a823e0116100cb578063d547741f1161007f578063f010cb2311610064578063f010cb2314610906578063f3b4ebd014610926578063fd62e7501461094657600080fd5b8063d547741f146108c6578063dafe0ccc146108e657600080fd5b8063cd88b903116100b0578063cd88b90314610823578063cf34c76814610843578063d2ae21041461088c57600080fd5b8063c7a823e0146107d5578063c7b2370b1461080357600080fd5b8063aef18bf711610122578063c358de0a11610107578063c358de0a14610763578063c416aa5114610783578063c5e193cd146107b557600080fd5b8063aef18bf714610713578063b143044b1461074357600080fd5b806395d376d71161015357806395d376d7146106465780639e94496514610659578063a217fddf146106fe57600080fd5b80638585c945146105d557806391d14854146105f557600080fd5b80632f2ff15d1161021c5780635553fb8e116101d0578063724e78da116101b5578063724e78da14610533578063736c0d5b14610553578063741bef1a1461058357600080fd5b80635553fb8e146104fb5780635c975abb1461051b57600080fd5b806331cb61051161020157806331cb61051461049b57806336568abe146104bb57806352d3b871146104db57600080fd5b80632f2ff15d1461045b57806330bb3aac1461047b57600080fd5b806316c38b3c11610273578063248a9ca311610258578063248a9ca3146103d057806326e67a371461040e5780632de113761461043b57600080fd5b806316c38b3c1461036a5780631703a0181461038a57600080fd5b8062bf2e80146102a457806301e33667146102f857806301ffc9a71461031a5780631095b6d71461034a575b600080fd5b3480156102b057600080fd5b506001546102e0907d010000000000000000000000000000000000000000000000000000000000900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b34801561030457600080fd5b50610318610313366004613732565b610967565b005b34801561032657600080fd5b5061033a610335366004613773565b6109a2565b60405190151581526020016102ef565b34801561035657600080fd5b50610318610365366004613732565b610a3b565b34801561037657600080fd5b506103186103853660046137c3565b610bcb565b34801561039657600080fd5b506005546103b79068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016102ef565b3480156103dc57600080fd5b506104006103eb3660046137e0565b60009081526020819052604090206001015490565b6040519081526020016102ef565b34801561041a57600080fd5b5061042e61042936600461380d565b610bf0565b6040516102ef9190613828565b34801561044757600080fd5b5061033a61045636600461386f565b610c77565b34801561046757600080fd5b5061031861047636600461388c565b610d5c565b34801561048757600080fd5b50610400610496366004613916565b610eb0565b3480156104a757600080fd5b506103186104b636600461398e565b611027565b3480156104c757600080fd5b506103186104d636600461388c565b61106a565b3480156104e757600080fd5b506103186104f63660046139bc565b61109c565b34801561050757600080fd5b50610400610516366004613a43565b611268565b34801561052757600080fd5b5060015460ff1661033a565b34801561053f57600080fd5b5061031861054e36600461386f565b6113df565b34801561055f57600080fd5b5061033a61056e36600461386f565b60046020526000908152604090205460ff1681565b34801561058f57600080fd5b506002546105b09073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102ef565b3480156105e157600080fd5b506103186105f0366004613a99565b611484565b34801561060157600080fd5b5061033a61061036600461388c565b60009182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b610400610654366004613acc565b6114c9565b34801561066557600080fd5b506106c361067436600461380d565b60066020526000908152604090205467ffffffffffffffff81169068010000000000000000810461ffff16906a010000000000000000000090046fffffffffffffffffffffffffffffffff1683565b6040805167ffffffffffffffff909416845261ffff90921660208401526fffffffffffffffffffffffffffffffff16908201526060016102ef565b34801561070a57600080fd5b50610400600081565b34801561071f57600080fd5b5061033a61072e3660046137e0565b60076020526000908152604090205460ff1681565b34801561074f57600080fd5b5061031861075e366004613b7a565b6116a5565b34801561076f57600080fd5b5061031861077e366004613bbc565b6119b5565b34801561078f57600080fd5b506001546105b090610100900473ffffffffffffffffffffffffffffffffffffffff1681565b3480156107c157600080fd5b506104006107d0366004613a43565b611a63565b3480156107e157600080fd5b506107f56107f0366004613bd7565b611c41565b6040516102ef929190613c45565b34801561080f57600080fd5b5061031861081e36600461386f565b611e51565b34801561082f57600080fd5b5061031861083e366004613c92565b611ef5565b34801561084f57600080fd5b506108777f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016102ef565b34801561089857600080fd5b506001546103b7907501000000000000000000000000000000000000000000900467ffffffffffffffff1681565b3480156108d257600080fd5b506103186108e136600461388c565b611f46565b3480156108f257600080fd5b50610318610901366004613732565b61205b565b34801561091257600080fd5b50610400610921366004613cd8565b612191565b34801561093257600080fd5b50610318610941366004613d43565b6121cd565b34801561095257600080fd5b506005546103b79067ffffffffffffffff1681565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561099181612442565b61099c84848461244c565b50505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b000000000000000000000000000000000000000000000000000000001480610a3557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610a6581612442565b73ffffffffffffffffffffffffffffffffffffffff841660009081527f9b50f4667d2d24216ccbf0dce3a90c0f620fa4d895e7b069d80ff6247fd25620602052604090205460ff16610ae3576040517f5ee08b9700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517ffd9be52200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301526024820184905285169063fd9be52290604401600060405180830381600087803b158015610b5357600080fd5b505af1158015610b67573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff8089168252871660208201529081018590527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb925060600190505b60405180910390a150505050565b6000610bd681612442565b8115610be857610be461247c565b5050565b610be46124fb565b63ffffffff8116600090815260036020908152604091829020805483518184028101840190945280845260609392830182828015610c6b57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610c3c5790505b50505050509050919050565b73ffffffffffffffffffffffffffffffffffffffff811660009081527f93c430521711328044ae92d0f1f1286cf040bc4a382f1642bd89984e86630553602052604081205460ff1615610ccc57506000919050565b6001547501000000000000000000000000000000000000000000900467ffffffffffffffff161580610d42575073ffffffffffffffffffffffffffffffffffffffff821660009081527f4ac82e3087b7dedf7f532cbc6915c722df8c1e31f1388c318a617b52760eaf8b602052604090205460ff165b15610d4f57506001919050565b506000919050565b919050565b817f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca811480610daa57507f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e481145b80610dd457507f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de81145b15610e1757303314610e12576040517ffaba723a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ea1565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758103610e6757610e127fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775612442565b6040517f94fdc372000000000000000000000000000000000000000000000000000000008152600481018290526024015b60405180910390fd5b610eab8383612552565b505050565b600083610ebc81610c77565b610ef2576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160c08101825260025473ffffffffffffffffffffffffffffffffffffffff908116825263ffffffff8a16602080840182905267ffffffffffffffff808c16858701528a8416606086015260055468010000000000000000900416608085015260015461ffff7d01000000000000000000000000000000000000000000000000000000000082041660a0860152600092835260069091529084902093517f7bfa20a9000000000000000000000000000000000000000000000000000000008152929361010090910490911691637bfa20a991610fda918591908a908a90600401613dc1565b602060405180830381865afa158015610ff7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101b9190613e8e565b98975050505050505050565b303314611060576040517ffaba723a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610be48282612618565b6040517fdec9f03100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756110c681612442565b60005b8281101561122957368484838181106110e4576110e4613ea7565b9050608002019050604051806060016040528082602001602081019061110a9190613a99565b67ffffffffffffffff1681526020016111296060840160408501613bbc565b61ffff1681526020016111426080840160608501613ef6565b6fffffffffffffffffffffffffffffffff16905260066000611167602085018561380d565b63ffffffff1681526020808201929092526040908101600020835181549385015194909201516fffffffffffffffffffffffffffffffff166a0100000000000000000000027fffffffffffff00000000000000000000000000000000ffffffffffffffffffff61ffff90951668010000000000000000027fffffffffffffffffffffffffffffffffffffffffffff0000000000000000000090941667ffffffffffffffff909316929092179290921792909216919091179055506001016110c9565b507f7dd21e42791b013d1929e86f0c59085e4fca24251f0f1aa81917b3b1611766e0838360405161125b929190613f11565b60405180910390a1505050565b60008161127481610c77565b6112aa576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160c08101825260025473ffffffffffffffffffffffffffffffffffffffff908116825261ffff808a16602080850182905267ffffffffffffffff808b168688015289851660608701526005546801000000000000000090041660808601526001547d010000000000000000000000000000000000000000000000000000000000810490931660a08601526000918252600681528582208651918201875291815294517f7bfa20a9000000000000000000000000000000000000000000000000000000008152939461010090920490921692637bfa20a99261139392869260040161401d565b602060405180830381865afa1580156113b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113d49190613e8e565b979650505050505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561140981612442565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d906020015b60405180910390a15050565b3033146114bd576040517ffaba723a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6114c681612818565b50565b60007f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de6114f581612442565b61150560a086016080870161386f565b61150e81610c77565b611544576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160c0810190915260025473ffffffffffffffffffffffffffffffffffffffff16815260009060208082019061157f908a018a61380d565b63ffffffff16815260200161159a60808a0160608b01613a99565b67ffffffffffffffff1681526020016115b960a08a0160808b0161386f565b73ffffffffffffffffffffffffffffffffffffffff908116825260055468010000000000000000900467ffffffffffffffff166020808401919091526001547d010000000000000000000000000000000000000000000000000000000000810461ffff16604090940193909352929350610100909104169063df2b057e90839060069060009061164b908d018d61380d565b63ffffffff1663ffffffff16815260200190815260200160002089896040518563ffffffff1660e01b81526004016116869493929190613dc1565b6020604051808303816000875af11580156113b0573d6000803e3d6000fd5b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756116cf81612442565b60005b8281101561099c57368484838181106116ed576116ed613ea7565b90506020028101906116ff91906140f3565b905063ffffffff7f000000000000000000000000000000000000000000000000000000000000000016611735602083018361380d565b63ffffffff161461174657506119ad565b4281606001351161175757506119ad565b6000611790611769602084018461380d565b611779604085016020860161386f565b6117866040860186614131565b8660600135612191565b905060006117a5826107f06080860186614131565b509050806117e8576040518481527fd6d90193101048cc1b6edcdc2348f5acf7a4a4a97d3e7b668b74cb7602ab3ebc9060200160405180910390a15050506119ad565b60006118086117fa6040860186614131565b61180391614196565b612930565b905080156118a15760008381526007602052604090205460ff1615611869577f9bb9bddbdf537a2104255307230b323d7982f4512ee8e5bd15df62ddca50ab978484604051611858929190614242565b60405180910390a1505050506119ad565b600083815260076020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555b6000806118b4604087016020880161386f565b73ffffffffffffffffffffffffffffffffffffffff166118d76040880188614131565b6040516118e5929190614308565b6000604051808303816000865af19150503d8060008114611922576040519150601f19603f3d011682016040523d82523d6000602084013e611927565b606091505b5091509150816119a657821561196c57600085815260076020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b7fdc8cdd96296241bbefda4a8e18ad2e0985a8da6495b34d409cfc4c886ee3b0cf878260405161199d929190614318565b60405180910390a15b5050505050505b6001016116d2565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756119df81612442565b600180547fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167d01000000000000000000000000000000000000000000000000000000000061ffff8516908102919091179091556040519081527f7af0ac740036ffb1c97b03697859d729e80a44ae5030543d64971c313565ab4d90602001611478565b60007f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de611a8f81612442565b82611a9981610c77565b611acf576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160c08101825260025473ffffffffffffffffffffffffffffffffffffffff908116825261ffff808b16602080850182905267ffffffffffffffff808c16868801528a851660608701526005546801000000000000000090041660808601526001547d010000000000000000000000000000000000000000000000000000000000810490931660a08601526000918252600681528582208651918201875291815294517fdf2b057e00000000000000000000000000000000000000000000000000000000815293946101009092049092169263df2b057e92611bb892869260040161401d565b6020604051808303816000875af1158015611bd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bfb9190613e8e565b93507f87e46b0a6199bc734632187269a103c05714ee0adae5b28f30723955724f37ef84604051611c2e91815260200190565b60405180910390a1505050949350505050565b6005546000908190611c6a9068010000000000000000900467ffffffffffffffff166041614360565b8314611c7c5750600090506001611e49565b6000611cd5866040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b90506000805b60055468010000000000000000900467ffffffffffffffff16811015611e3d573660008888611d0b856041614360565b90611d17866001614377565b611d22906041614360565b92611d2f9392919061438a565b91509150600080611d768785858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506129cb92505050565b90925090506000816004811115611d8f57611d8f613c16565b14611da857600060019850985050505050505050611e49565b8573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1611611def57600060029850985050505050505050611e49565b73ffffffffffffffffffffffffffffffffffffffff821660009081526004602052604090205460ff16611e3057600060039850985050505050505050611e49565b5093505050600101611cdb565b50600160009350935050505b935093915050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775611e7b81612442565b600180547fffffffffffffffffffffff0000000000000000000000000000000000000000ff1661010073ffffffffffffffffffffffffffffffffffffffff8516908102919091179091556040519081527f1399be28223800f8669b3ba5f8721d9fc16fc4e8d0bbf98378791c8c5a3015e090602001611478565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775611f1f81612442565b63ffffffff84166000908152600360205260409020611f3f908484613652565b5050505050565b817f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca811480611f9457507f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e481145b80611fbe57507f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de81145b1561200157303314611ffc576040517ffaba723a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612051565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758103610e6757611ffc7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775612442565b610eab8383612a10565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561208581612442565b73ffffffffffffffffffffffffffffffffffffffff841660009081527f9b50f4667d2d24216ccbf0dce3a90c0f620fa4d895e7b069d80ff6247fd25620602052604090205460ff16612103576040517f5ee08b9700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f07b18bde00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018490528516906307b18bde90604401600060405180830381600087803b15801561217357600080fd5b505af1158015612187573d6000803e3d6000fd5b5050505050505050565b600085858386866040516020016121ac9594939291906143b4565b60405160208183030381529060405280519060200120905095945050505050565b4281606001351161220a576040517f0bbaf26300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3061221b604083016020840161386f565b73ffffffffffffffffffffffffffffffffffffffff161461229157612246604082016020830161386f565b6040517f1ce0bfcd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401610e98565b63ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166122c5602083018361380d565b63ffffffff1614612318576122dd602082018261380d565b6040517f2697e1c200000000000000000000000000000000000000000000000000000000815263ffffffff9091166004820152602401610e98565b600061232a611769602084018461380d565b9050600061233f826107f06080860186614131565b50905080612379576040517f15ecadee00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526007602052604090205460ff16156123c5576040517f9d6a45a600000000000000000000000000000000000000000000000000000000815260048101839052602401610e98565b6000828152600760205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610eab907fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217759061243090860186614131565b81019061243d919061386f565b612552565b6114c68133612ad5565b73ffffffffffffffffffffffffffffffffffffffff831661247157610eab8282612b8d565b610eab838383612c93565b612484612d01565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b612503612d70565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa336124d1565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca821480156125af575060008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16155b1561260e57600180546015906125e7907501000000000000000000000000000000000000000000900467ffffffffffffffff16614426565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b610be48282612ddc565b73ffffffffffffffffffffffffffffffffffffffff821660009081526004602052604090205481151560ff90911615150361269f576040517f58c8d2a000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831660048201528115156024820152604401610e98565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260046020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016831515179055816127115760055461270c9060019067ffffffffffffffff1661444d565b612729565b6005546127299067ffffffffffffffff166001614475565b60055490915067ffffffffffffffff680100000000000000009091048116908216811115612797576040517ff1c582ae00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff808416600483015282166024820152604401610e98565b600580547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff84161790556040805173ffffffffffffffffffffffffffffffffffffffff8616815284151560208201527f863d338cad74814b108a06288ad5e0e80d56495e0332238b1d2cdcfa0ca8e5ce9101610bbd565b8067ffffffffffffffff1660000361285c576040517f5f86e17700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60055467ffffffffffffffff9081169082168110156128bb576040517ff1c582ae00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff808316600483015283166024820152604401610e98565b600580547fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff166801000000000000000067ffffffffffffffff8516908102919091179091556040519081527fb600f3cf7f38a4b49bb0c75f722ef69f7e3e39ef3bb4aa8207fd86e724a2324990602001611478565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0223536e0000000000000000000000000000000000000000000000000000000014801590610a3557507fffffffff0000000000000000000000000000000000000000000000000000000082167f704316e500000000000000000000000000000000000000000000000000000000141592915050565b6000808251604103612a015760208301516040840151606085015160001a6129f587828585612ecc565b94509450505050612a09565b506000905060025b9250929050565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca82148015612a6c575060008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff165b15612acb5760018054601590612aa4907501000000000000000000000000000000000000000000900467ffffffffffffffff16614496565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b610be48282612fbb565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610be457612b1381613072565b612b1e836020613091565b604051602001612b2f9291906144d8565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a0000000000000000000000000000000000000000000000000000000008252610e9891600401614559565b73ffffffffffffffffffffffffffffffffffffffff8216612bda576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114612c34576040519150601f19603f3d011682016040523d82523d6000602084013e612c39565b606091505b5050905080610eab576040517f465bc83400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101839052604401610e98565b73ffffffffffffffffffffffffffffffffffffffff8216612ce0576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610eab73ffffffffffffffffffffffffffffffffffffffff841683836132db565b60015460ff1615612d6e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610e98565b565b60015460ff16612d6e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610e98565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610be45760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055612e6e3390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115612f035750600090506003612fb2565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612f57573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116612fab57600060019250925050612fb2565b9150600090505b94509492505050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1615610be45760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6060610a3573ffffffffffffffffffffffffffffffffffffffff831660145b606060006130a0836002614360565b6130ab906002614377565b67ffffffffffffffff8111156130c3576130c361456c565b6040519080825280601f01601f1916602001820160405280156130ed576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061312457613124613ea7565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061318757613187613ea7565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006131c3846002614360565b6131ce906001614377565b90505b600181111561326b577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061320f5761320f613ea7565b1a60f81b82828151811061322557613225613ea7565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c936132648161459b565b90506131d1565b5083156132d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610e98565b9392505050565b6040805173ffffffffffffffffffffffffffffffffffffffff848116602483015260448083018590528351808403909101815260649092018352602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656490840152610eab928692916000916133a6918516908490613453565b90508051600014806133c75750808060200190518101906133c791906145d0565b610eab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610e98565b6060613462848460008561346a565b949350505050565b6060824710156134fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610e98565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161352591906145ed565b60006040518083038185875af1925050503d8060008114613562576040519150601f19603f3d011682016040523d82523d6000602084013e613567565b606091505b50915091506113d487838387606083156136095782516000036136025773ffffffffffffffffffffffffffffffffffffffff85163b613602576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610e98565b5081613462565b613462838381511561361e5781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e989190614559565b82805482825590600052602060002090601f016020900481019282156136eb5791602002820160005b838211156136bc57833560ff1683826101000a81548160ff021916908360ff160217905550926020019260010160208160000104928301926001030261367b565b80156136e95782816101000a81549060ff02191690556001016020816000010492830192600103026136bc565b505b506136f79291506136fb565b5090565b5b808211156136f757600081556001016136fc565b73ffffffffffffffffffffffffffffffffffffffff811681146114c657600080fd5b60008060006060848603121561374757600080fd5b833561375281613710565b9250602084013561376281613710565b929592945050506040919091013590565b60006020828403121561378557600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146132d457600080fd5b80151581146114c657600080fd5b6000602082840312156137d557600080fd5b81356132d4816137b5565b6000602082840312156137f257600080fd5b5035919050565b803563ffffffff81168114610d5757600080fd5b60006020828403121561381f57600080fd5b6132d4826137f9565b6020808252825182820181905260009190848201906040850190845b8181101561386357835160ff1683529284019291840191600101613844565b50909695505050505050565b60006020828403121561388157600080fd5b81356132d481613710565b6000806040838503121561389f57600080fd5b8235915060208301356138b181613710565b809150509250929050565b803567ffffffffffffffff81168114610d5757600080fd5b60008083601f8401126138e657600080fd5b50813567ffffffffffffffff8111156138fe57600080fd5b602083019150836020828501011115612a0957600080fd5b60008060008060006080868803121561392e57600080fd5b613937866137f9565b9450613945602087016138bc565b9350604086013561395581613710565b9250606086013567ffffffffffffffff81111561397157600080fd5b61397d888289016138d4565b969995985093965092949392505050565b600080604083850312156139a157600080fd5b82356139ac81613710565b915060208301356138b1816137b5565b600080602083850312156139cf57600080fd5b823567ffffffffffffffff808211156139e757600080fd5b818501915085601f8301126139fb57600080fd5b813581811115613a0a57600080fd5b8660208260071b8501011115613a1f57600080fd5b60209290920196919550909350505050565b803561ffff81168114610d5757600080fd5b60008060008060808587031215613a5957600080fd5b613a6285613a31565b9350613a7060208601613a31565b9250613a7e604086016138bc565b91506060850135613a8e81613710565b939692955090935050565b600060208284031215613aab57600080fd5b6132d4826138bc565b600060a08284031215613ac657600080fd5b50919050565b600080600060408486031215613ae157600080fd5b833567ffffffffffffffff80821115613af957600080fd5b613b0587838801613ab4565b94506020860135915080821115613b1b57600080fd5b50613b28868287016138d4565b9497909650939450505050565b60008083601f840112613b4757600080fd5b50813567ffffffffffffffff811115613b5f57600080fd5b6020830191508360208260051b8501011115612a0957600080fd5b60008060208385031215613b8d57600080fd5b823567ffffffffffffffff811115613ba457600080fd5b613bb085828601613b35565b90969095509350505050565b600060208284031215613bce57600080fd5b6132d482613a31565b600080600060408486031215613bec57600080fd5b83359250602084013567ffffffffffffffff811115613c0a57600080fd5b613b28868287016138d4565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b82151581526040810160048310613c85577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8260208301529392505050565b600080600060408486031215613ca757600080fd5b613cb0846137f9565b9250602084013567ffffffffffffffff811115613ccc57600080fd5b613b2886828701613b35565b600080600080600060808688031215613cf057600080fd5b613cf9866137f9565b94506020860135613d0981613710565b9350604086013567ffffffffffffffff811115613d2557600080fd5b613d31888289016138d4565b96999598509660600135949350505050565b600060208284031215613d5557600080fd5b813567ffffffffffffffff811115613d6c57600080fd5b61346284828501613ab4565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6000610140613e39838873ffffffffffffffffffffffffffffffffffffffff80825116835263ffffffff6020830151166020840152604082015167ffffffffffffffff808216604086015282606085015116606086015280608085015116608086015250505061ffff60a08201511660a08301525050565b613e7a60c08401875467ffffffffffffffff81168252604081811c61ffff16602084015260509190911c6fffffffffffffffffffffffffffffffff16910152565b806101208401526113d48184018587613d78565b600060208284031215613ea057600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b80356fffffffffffffffffffffffffffffffff81168114610d5757600080fd5b600060208284031215613f0857600080fd5b6132d482613ed6565b6020808252818101839052600090604080840186845b87811015613fa25763ffffffff613f3d836137f9565b16835267ffffffffffffffff613f548684016138bc565b168584015261ffff613f67858401613a31565b168484015260606fffffffffffffffffffffffffffffffff613f8a828501613ed6565b16908401526080928301929190910190600101613f27565b5090979650505050505050565b60005b83811015613fca578181015183820152602001613fb2565b50506000910152565b60008151808452613feb816020860160208601613faf565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6000610140614095838773ffffffffffffffffffffffffffffffffffffffff80825116835263ffffffff6020830151166020840152604082015167ffffffffffffffff808216604086015282606085015116606086015280608085015116608086015250505061ffff60a08201511660a08301525050565b6140d660c08401865467ffffffffffffffff81168252604081811c61ffff16602084015260509190911c6fffffffffffffffffffffffffffffffff16910152565b806101208401526140e981840185613fd3565b9695505050505050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6183360301811261412757600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261416657600080fd5b83018035915067ffffffffffffffff82111561418157600080fd5b602001915036819003821315612a0957600080fd5b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156141d65780818660040360031b1b83161692505b505092915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261421357600080fd5b830160208101925035905067ffffffffffffffff81111561423357600080fd5b803603821315612a0957600080fd5b6040815263ffffffff614254846137f9565b1660408201526000602084013561426a81613710565b73ffffffffffffffffffffffffffffffffffffffff16606083015261429260408501856141de565b60a060808501526142a760e085018284613d78565b915050606085013560a08401526142c160808601866141de565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08584030160c08601526142f6838284613d78565b93505050508260208301529392505050565b8183823760009101908152919050565b8281526040602082015260006134626040830184613fd3565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082028115828204841417610a3557610a35614331565b80820180821115610a3557610a35614331565b6000808585111561439a57600080fd5b838611156143a757600080fd5b5050820193919092039150565b7fffffffff000000000000000000000000000000000000000000000000000000008660e01b1681527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008560601b1660048201528360188201528183603883013760009101603801908152949350505050565b600067ffffffffffffffff80831681810361444357614443614331565b6001019392505050565b67ffffffffffffffff82811682821603908082111561446e5761446e614331565b5092915050565b67ffffffffffffffff81811683821601908082111561446e5761446e614331565b600067ffffffffffffffff8216806144b0576144b0614331565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351614510816017850160208801613faf565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000601791840191820152835161454d816028840160208801613faf565b01602801949350505050565b6020815260006132d46020830184613fd3565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000816145aa576145aa614331565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b6000602082840312156145e257600080fd5b81516132d4816137b5565b60008251614127818460208701613faf56fea2646970667358221220b69fbeb30e38ef1b4b202031c8b88e5d5b004563c7ff42713ed413ed4f4901a664736f6c63430008160033",
1430
- "devdoc": {
1431
- "events": {
1432
- "Paused(address)": {
1433
- "details": "Emitted when the pause is triggered by `account`."
1434
- },
1435
- "RoleAdminChanged(bytes32,bytes32,bytes32)": {
1436
- "details": "Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._"
1437
- },
1438
- "RoleGranted(bytes32,address,address)": {
1439
- "details": "Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}."
1440
- },
1441
- "RoleRevoked(bytes32,address,address)": {
1442
- "details": "Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)"
1443
- },
1444
- "Unpaused(address)": {
1445
- "details": "Emitted when the pause is lifted by `account`."
1446
- }
1447
- },
1448
- "kind": "dev",
1449
- "methods": {
1450
- "assignJob((uint32,bytes,bytes32,uint64,address),bytes)": {
1451
- "details": "for ULN301, ULN302 and more to assign jobdvn network can reject job from _sender by adding/removing them from allowlist/denylist",
1452
- "params": {
1453
- "_options": "dvn options",
1454
- "_param": "assign job param"
1455
- }
1456
- },
1457
- "assignJob(uint16,uint16,uint64,address)": {
1458
- "details": "to support ULNv2dvn network can reject job from _sender by adding/removing them from allowlist/denylist",
1459
- "params": {
1460
- "": "//_outboundProofType outbound proof type",
1461
- "_confirmations": "block confirmations",
1462
- "_dstEid": "destination EndpointId",
1463
- "_sender": "message sender address"
1464
- }
1465
- },
1466
- "constructor": {
1467
- "details": "DVN doesn't have a roleAdmin (address(0x0))Supports all of ULNv2, ULN301, ULN302 and more",
1468
- "params": {
1469
- "_admins": "array of admin addresses that are granted the ADMIN_ROLE",
1470
- "_messageLibs": "array of message lib addresses that are granted the MESSAGE_LIB_ROLE",
1471
- "_priceFeed": "price feed address",
1472
- "_quorum": "quorum for multisig",
1473
- "_signers": "array of signer addresses for multisig",
1474
- "_vid": "unique identifier for this DVN instance"
1475
- }
1476
- },
1477
- "execute((uint32,address,bytes,uint256,bytes)[])": {
1478
- "details": "takes a list of instructions and executes them in orderif any of the instructions fail, it will emit an error event and continue to execute the rest of the instructions",
1479
- "params": {
1480
- "_params": "array of ExecuteParam, includes target, callData, expiration, signatures"
1481
- }
1482
- },
1483
- "getFee(uint16,uint16,uint64,address)": {
1484
- "details": "to support ULNv2getFee can revert if _sender doesn't pass ACL",
1485
- "params": {
1486
- "": "//_outboundProofType outbound proof type",
1487
- "_confirmations": "block confirmations",
1488
- "_dstEid": "destination EndpointId",
1489
- "_sender": "message sender address"
1490
- }
1491
- },
1492
- "getFee(uint32,uint64,address,bytes)": {
1493
- "details": "getFee can revert if _sender doesn't pass ACL",
1494
- "params": {
1495
- "_confirmations": "block confirmations",
1496
- "_dstEid": "destination EndpointId",
1497
- "_options": "dvn options",
1498
- "_sender": "message sender address"
1499
- },
1500
- "returns": {
1501
- "fee": "fee in native amount"
1502
- }
1503
- },
1504
- "getRoleAdmin(bytes32)": {
1505
- "details": "Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."
1506
- },
1507
- "grantRole(bytes32,address)": {
1508
- "details": "overrides AccessControl to allow self/admin to grant role'function sig 0x2f2ff15d",
1509
- "params": {
1510
- "_account": "account to grant role to",
1511
- "_role": "role to grant"
1512
- }
1513
- },
1514
- "hasAcl(address)": {
1515
- "details": "Access control list using allowlist and denylist1) if one address is in the denylist -> deny2) else if address in the allowlist OR allowlist is empty (allows everyone)-> allow3) else deny",
1516
- "params": {
1517
- "_sender": "address to check"
1518
- }
1519
- },
1520
- "hasRole(bytes32,address)": {
1521
- "details": "Returns `true` if `account` has been granted `role`."
1522
- },
1523
- "hashCallData(uint32,address,bytes,uint256)": {
1524
- "params": {
1525
- "_callData": "call data",
1526
- "_expiration": "expiration timestamp",
1527
- "_target": "target address"
1528
- },
1529
- "returns": {
1530
- "_0": "hash of above"
1531
- }
1532
- },
1533
- "paused()": {
1534
- "details": "Returns true if the contract is paused, and false otherwise."
1535
- },
1536
- "quorumChangeAdmin((uint32,address,bytes,uint256,bytes))": {
1537
- "details": "calldata in the case is abi.encode new admin address"
1538
- },
1539
- "renounceRole(bytes32,address)": {
1540
- "details": "overrides AccessControl to disable renouncing of roles"
1541
- },
1542
- "revokeRole(bytes32,address)": {
1543
- "details": "overrides AccessControl to allow self/admin to revoke rolefunction sig 0xd547741f",
1544
- "params": {
1545
- "_account": "account to revoke role from",
1546
- "_role": "role to revoke"
1547
- }
1548
- },
1549
- "setDefaultMultiplierBps(uint16)": {
1550
- "params": {
1551
- "_multiplierBps": "default multiplier for worker fee"
1552
- }
1553
- },
1554
- "setDstConfig((uint32,uint64,uint16,uint128)[])": {
1555
- "params": {
1556
- "_params": "array of DstConfigParam"
1557
- }
1558
- },
1559
- "setPaused(bool)": {
1560
- "details": "flag to pause execution of workers (if used with whenNotPaused modifier)",
1561
- "params": {
1562
- "_paused": "true to pause, false to unpause"
1563
- }
1564
- },
1565
- "setPriceFeed(address)": {
1566
- "params": {
1567
- "_priceFeed": "price feed address"
1568
- }
1569
- },
1570
- "setQuorum(uint64)": {
1571
- "details": "set quorum for multisigfunction sig 0x8585c945",
1572
- "params": {
1573
- "_quorum": "to set"
1574
- }
1575
- },
1576
- "setSigner(address,bool)": {
1577
- "details": "set signers for multisigfunction sig 0x31cb6105",
1578
- "params": {
1579
- "_active": "true to add, false to remove",
1580
- "_signer": "signer address"
1581
- }
1582
- },
1583
- "setWorkerFeeLib(address)": {
1584
- "params": {
1585
- "_workerFeeLib": "worker fee lib address"
1586
- }
1587
- },
1588
- "supportsInterface(bytes4)": {
1589
- "details": "See {IERC165-supportsInterface}."
1590
- },
1591
- "withdrawFee(address,address,uint256)": {
1592
- "details": "supports withdrawing fee from ULN301, ULN302 and more",
1593
- "params": {
1594
- "_amount": "amount to withdraw",
1595
- "_lib": "message lib address",
1596
- "_to": "address to withdraw fee to"
1597
- }
1598
- },
1599
- "withdrawFeeFromUlnV2(address,address,uint256)": {
1600
- "details": "to support ULNv2the withdrawFee function for ULN30X is built in the Worker contract",
1601
- "params": {
1602
- "_amount": "amount to withdraw",
1603
- "_lib": "message lib address",
1604
- "_to": "address to withdraw to"
1605
- }
1606
- },
1607
- "withdrawToken(address,address,uint256)": {
1608
- "details": "supports withdrawing token from the contract",
1609
- "params": {
1610
- "_amount": "amount to withdraw",
1611
- "_to": "address to withdraw token to",
1612
- "_token": "token address"
1613
- }
1614
- }
1615
- },
1616
- "version": 1
1617
- },
1618
- "userdoc": {
1619
- "kind": "user",
1620
- "methods": {
1621
- "quorumChangeAdmin((uint32,address,bytes,uint256,bytes))": {
1622
- "notice": "function for quorum to change admin without going through execute function"
1623
- }
1624
- },
1625
- "version": 1
1626
- },
1627
- "storageLayout": {
1628
- "storage": [
1629
- {
1630
- "astId": 7425,
1631
- "contract": "contracts/uln/dvn/DVN.sol:DVN",
1632
- "label": "_roles",
1633
- "offset": 0,
1634
- "slot": "0",
1635
- "type": "t_mapping(t_bytes32,t_struct(RoleData)7420_storage)"
1636
- },
1637
- {
1638
- "astId": 8354,
1639
- "contract": "contracts/uln/dvn/DVN.sol:DVN",
1640
- "label": "_paused",
1641
- "offset": 0,
1642
- "slot": "1",
1643
- "type": "t_bool"
1644
- },
1645
- {
1646
- "astId": 15827,
1647
- "contract": "contracts/uln/dvn/DVN.sol:DVN",
1648
- "label": "workerFeeLib",
1649
- "offset": 1,
1650
- "slot": "1",
1651
- "type": "t_address"
1652
- },
1653
- {
1654
- "astId": 15829,
1655
- "contract": "contracts/uln/dvn/DVN.sol:DVN",
1656
- "label": "allowlistSize",
1657
- "offset": 21,
1658
- "slot": "1",
1659
- "type": "t_uint64"
1660
- },
1661
- {
1662
- "astId": 15831,
1663
- "contract": "contracts/uln/dvn/DVN.sol:DVN",
1664
- "label": "defaultMultiplierBps",
1665
- "offset": 29,
1666
- "slot": "1",
1667
- "type": "t_uint16"
1668
- },
1669
- {
1670
- "astId": 15833,
1671
- "contract": "contracts/uln/dvn/DVN.sol:DVN",
1672
- "label": "priceFeed",
1673
- "offset": 0,
1674
- "slot": "2",
1675
- "type": "t_address"
1676
- },
1677
- {
1678
- "astId": 15838,
1679
- "contract": "contracts/uln/dvn/DVN.sol:DVN",
1680
- "label": "supportedOptionTypes",
1681
- "offset": 0,
1682
- "slot": "3",
1683
- "type": "t_mapping(t_uint32,t_array(t_uint8)dyn_storage)"
1684
- },
1685
- {
1686
- "astId": 21544,
1687
- "contract": "contracts/uln/dvn/DVN.sol:DVN",
1688
- "label": "signers",
1689
- "offset": 0,
1690
- "slot": "4",
1691
- "type": "t_mapping(t_address,t_bool)"
1692
- },
1693
- {
1694
- "astId": 21546,
1695
- "contract": "contracts/uln/dvn/DVN.sol:DVN",
1696
- "label": "signerSize",
1697
- "offset": 0,
1698
- "slot": "5",
1699
- "type": "t_uint64"
1700
- },
1701
- {
1702
- "astId": 21548,
1703
- "contract": "contracts/uln/dvn/DVN.sol:DVN",
1704
- "label": "quorum",
1705
- "offset": 8,
1706
- "slot": "5",
1707
- "type": "t_uint64"
1708
- },
1709
- {
1710
- "astId": 20411,
1711
- "contract": "contracts/uln/dvn/DVN.sol:DVN",
1712
- "label": "dstConfig",
1713
- "offset": 0,
1714
- "slot": "6",
1715
- "type": "t_mapping(t_uint32,t_struct(DstConfig)24475_storage)"
1716
- },
1717
- {
1718
- "astId": 20415,
1719
- "contract": "contracts/uln/dvn/DVN.sol:DVN",
1720
- "label": "usedHashes",
1721
- "offset": 0,
1722
- "slot": "7",
1723
- "type": "t_mapping(t_bytes32,t_bool)"
1724
- }
1725
- ],
1726
- "types": {
1727
- "t_address": {
1728
- "encoding": "inplace",
1729
- "label": "address",
1730
- "numberOfBytes": "20"
1731
- },
1732
- "t_array(t_uint8)dyn_storage": {
1733
- "base": "t_uint8",
1734
- "encoding": "dynamic_array",
1735
- "label": "uint8[]",
1736
- "numberOfBytes": "32"
1737
- },
1738
- "t_bool": {
1739
- "encoding": "inplace",
1740
- "label": "bool",
1741
- "numberOfBytes": "1"
1742
- },
1743
- "t_bytes32": {
1744
- "encoding": "inplace",
1745
- "label": "bytes32",
1746
- "numberOfBytes": "32"
1747
- },
1748
- "t_mapping(t_address,t_bool)": {
1749
- "encoding": "mapping",
1750
- "key": "t_address",
1751
- "label": "mapping(address => bool)",
1752
- "numberOfBytes": "32",
1753
- "value": "t_bool"
1754
- },
1755
- "t_mapping(t_bytes32,t_bool)": {
1756
- "encoding": "mapping",
1757
- "key": "t_bytes32",
1758
- "label": "mapping(bytes32 => bool)",
1759
- "numberOfBytes": "32",
1760
- "value": "t_bool"
1761
- },
1762
- "t_mapping(t_bytes32,t_struct(RoleData)7420_storage)": {
1763
- "encoding": "mapping",
1764
- "key": "t_bytes32",
1765
- "label": "mapping(bytes32 => struct AccessControl.RoleData)",
1766
- "numberOfBytes": "32",
1767
- "value": "t_struct(RoleData)7420_storage"
1768
- },
1769
- "t_mapping(t_uint32,t_array(t_uint8)dyn_storage)": {
1770
- "encoding": "mapping",
1771
- "key": "t_uint32",
1772
- "label": "mapping(uint32 => uint8[])",
1773
- "numberOfBytes": "32",
1774
- "value": "t_array(t_uint8)dyn_storage"
1775
- },
1776
- "t_mapping(t_uint32,t_struct(DstConfig)24475_storage)": {
1777
- "encoding": "mapping",
1778
- "key": "t_uint32",
1779
- "label": "mapping(uint32 => struct IDVN.DstConfig)",
1780
- "numberOfBytes": "32",
1781
- "value": "t_struct(DstConfig)24475_storage"
1782
- },
1783
- "t_struct(DstConfig)24475_storage": {
1784
- "encoding": "inplace",
1785
- "label": "struct IDVN.DstConfig",
1786
- "members": [
1787
- {
1788
- "astId": 24470,
1789
- "contract": "contracts/uln/dvn/DVN.sol:DVN",
1790
- "label": "gas",
1791
- "offset": 0,
1792
- "slot": "0",
1793
- "type": "t_uint64"
1794
- },
1795
- {
1796
- "astId": 24472,
1797
- "contract": "contracts/uln/dvn/DVN.sol:DVN",
1798
- "label": "multiplierBps",
1799
- "offset": 8,
1800
- "slot": "0",
1801
- "type": "t_uint16"
1802
- },
1803
- {
1804
- "astId": 24474,
1805
- "contract": "contracts/uln/dvn/DVN.sol:DVN",
1806
- "label": "floorMarginUSD",
1807
- "offset": 10,
1808
- "slot": "0",
1809
- "type": "t_uint128"
1810
- }
1811
- ],
1812
- "numberOfBytes": "32"
1813
- },
1814
- "t_struct(RoleData)7420_storage": {
1815
- "encoding": "inplace",
1816
- "label": "struct AccessControl.RoleData",
1817
- "members": [
1818
- {
1819
- "astId": 7417,
1820
- "contract": "contracts/uln/dvn/DVN.sol:DVN",
1821
- "label": "members",
1822
- "offset": 0,
1823
- "slot": "0",
1824
- "type": "t_mapping(t_address,t_bool)"
1825
- },
1826
- {
1827
- "astId": 7419,
1828
- "contract": "contracts/uln/dvn/DVN.sol:DVN",
1829
- "label": "adminRole",
1830
- "offset": 0,
1831
- "slot": "1",
1832
- "type": "t_bytes32"
1833
- }
1834
- ],
1835
- "numberOfBytes": "64"
1836
- },
1837
- "t_uint128": {
1838
- "encoding": "inplace",
1839
- "label": "uint128",
1840
- "numberOfBytes": "16"
1841
- },
1842
- "t_uint16": {
1843
- "encoding": "inplace",
1844
- "label": "uint16",
1845
- "numberOfBytes": "2"
1846
- },
1847
- "t_uint32": {
1848
- "encoding": "inplace",
1849
- "label": "uint32",
1850
- "numberOfBytes": "4"
1851
- },
1852
- "t_uint64": {
1853
- "encoding": "inplace",
1854
- "label": "uint64",
1855
- "numberOfBytes": "8"
1856
- },
1857
- "t_uint8": {
1858
- "encoding": "inplace",
1859
- "label": "uint8",
1860
- "numberOfBytes": "1"
1861
- }
1862
- }
1863
- }
1864
- }