@layerzerolabs/lz-evm-messagelib-v2 2.0.2

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 (106) hide show
  1. package/artifacts/contracts/Executor.sol/Executor.json +1156 -0
  2. package/artifacts/contracts/ExecutorFeeLib.sol/ExecutorFeeLib.json +336 -0
  3. package/artifacts/contracts/MessageLibBase.sol/MessageLibBase.json +16 -0
  4. package/artifacts/contracts/PriceFeed.sol/PriceFeed.json +650 -0
  5. package/artifacts/contracts/ReceiveLibBaseE2.sol/ReceiveLibBaseE2.json +154 -0
  6. package/artifacts/contracts/SendLibBase.sol/SendLibBase.json +381 -0
  7. package/artifacts/contracts/SendLibBaseE2.sol/SendLibBaseE2.json +819 -0
  8. package/artifacts/contracts/Treasury.sol/Treasury.json +309 -0
  9. package/artifacts/contracts/Worker.sol/Worker.json +579 -0
  10. package/artifacts/contracts/interfaces/IExecutor.sol/IExecutor.json +429 -0
  11. package/artifacts/contracts/interfaces/IExecutorFeeLib.sol/IExecutorFeeLib.json +210 -0
  12. package/artifacts/contracts/interfaces/ILayerZeroExecutor.sol/ILayerZeroExecutor.json +79 -0
  13. package/artifacts/contracts/interfaces/ILayerZeroPriceFeed.sol/ILayerZeroPriceFeed.json +222 -0
  14. package/artifacts/contracts/interfaces/ILayerZeroTreasury.sol/ILayerZeroTreasury.json +79 -0
  15. package/artifacts/contracts/interfaces/IWorker.sol/IWorker.json +221 -0
  16. package/artifacts/contracts/libs/SafeCall.sol/SafeCall.json +10 -0
  17. package/artifacts/contracts/uln/LzExecutor.sol/LzExecutor.json +256 -0
  18. package/artifacts/contracts/uln/ReceiveUlnBase.sol/ReceiveUlnBase.json +472 -0
  19. package/artifacts/contracts/uln/SendUlnBase.sol/SendUlnBase.json +412 -0
  20. package/artifacts/contracts/uln/UlnBase.sol/UlnBase.json +387 -0
  21. package/artifacts/contracts/uln/dvn/DVN.sol/DVN.json +1370 -0
  22. package/artifacts/contracts/uln/dvn/DVNFeeLib.sol/DVNFeeLib.json +300 -0
  23. package/artifacts/contracts/uln/dvn/MultiSig.sol/MultiSig.json +164 -0
  24. package/artifacts/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapter.sol/CCIPDVNAdapter.json +742 -0
  25. package/artifacts/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapterFeeLib.sol/CCIPDVNAdapterFeeLib.json +50 -0
  26. package/artifacts/contracts/uln/dvn/adapters/DVNAdapterBase.sol/DVNAdapterBase.json +463 -0
  27. package/artifacts/contracts/uln/dvn/adapters/DVNAdapterFeeLibBase.sol/DVNAdapterFeeLibBase.json +50 -0
  28. package/artifacts/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapter.sol/AxelarDVNAdapter.json +804 -0
  29. package/artifacts/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapterFeeLib.sol/AxelarDVNAdapterFeeLib.json +50 -0
  30. package/artifacts/contracts/uln/interfaces/IDVN.sol/IDVN.json +370 -0
  31. package/artifacts/contracts/uln/interfaces/IDVNAdapterFeeLib.sol/IDVNAdapterFeeLib.json +50 -0
  32. package/artifacts/contracts/uln/interfaces/IDVNFeeLib.sol/IDVNFeeLib.json +178 -0
  33. package/artifacts/contracts/uln/interfaces/ILayerZeroDVN.sol/ILayerZeroDVN.json +96 -0
  34. package/artifacts/contracts/uln/interfaces/IReceiveUlnE2.sol/IReceiveUlnE2.json +76 -0
  35. package/artifacts/contracts/uln/libs/DVNOptions.sol/DVNOptions.json +27 -0
  36. package/artifacts/contracts/uln/libs/UlnOptions.sol/UlnOptions.json +54 -0
  37. package/artifacts/contracts/uln/uln301/AddressSizeConfig.sol/AddressSizeConfig.json +129 -0
  38. package/artifacts/contracts/uln/uln301/ReceiveLibBaseE1.sol/ILayerZeroReceiveLibrary.json +68 -0
  39. package/artifacts/contracts/uln/uln301/ReceiveLibBaseE1.sol/ReceiveLibBaseE1.json +416 -0
  40. package/artifacts/contracts/uln/uln301/ReceiveUln301.sol/ReceiveUln301.json +969 -0
  41. package/artifacts/contracts/uln/uln301/SendLibBaseE1.sol/SendLibBaseE1.json +804 -0
  42. package/artifacts/contracts/uln/uln301/SendUln301.sol/SendUln301.json +1278 -0
  43. package/artifacts/contracts/uln/uln301/TreasuryFeeHandler.sol/TreasuryFeeHandler.json +94 -0
  44. package/artifacts/contracts/uln/uln301/interfaces/IMessageLibE1.sol/IMessageLibE1.json +247 -0
  45. package/artifacts/contracts/uln/uln301/interfaces/INonceContract.sol/INonceContract.json +40 -0
  46. package/artifacts/contracts/uln/uln301/interfaces/ITreasuryFeeHandler.sol/ITreasuryFeeHandler.json +44 -0
  47. package/artifacts/contracts/uln/uln301/interfaces/IUltraLightNode301.sol/IUltraLightNode301.json +29 -0
  48. package/artifacts/contracts/uln/uln301/mocks/NonceContractMock.sol/NonceContractMock.json +93 -0
  49. package/artifacts/contracts/uln/uln302/ReceiveUln302.sol/ReceiveUln302.json +702 -0
  50. package/artifacts/contracts/uln/uln302/SendUln302.sol/SendUln302.json +1259 -0
  51. package/artifacts/contracts/upgradeable/WorkerUpgradeable.sol/WorkerUpgradeable.json +592 -0
  52. package/artifacts/contracts/upgradeable/proxy/ProxyAdmin.sol/ProxyAdmin.json +181 -0
  53. package/artifacts/contracts/upgradeable/proxy/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +160 -0
  54. package/contracts/Executor.sol +162 -0
  55. package/contracts/ExecutorFeeLib.sol +190 -0
  56. package/contracts/MessageLibBase.sol +21 -0
  57. package/contracts/PriceFeed.sol +257 -0
  58. package/contracts/ReceiveLibBaseE2.sol +54 -0
  59. package/contracts/SendLibBase.sol +258 -0
  60. package/contracts/SendLibBaseE2.sol +140 -0
  61. package/contracts/Treasury.sol +74 -0
  62. package/contracts/Worker.sol +167 -0
  63. package/contracts/interfaces/IExecutor.sol +44 -0
  64. package/contracts/interfaces/IExecutorFeeLib.sol +32 -0
  65. package/contracts/interfaces/ILayerZeroExecutor.sol +29 -0
  66. package/contracts/interfaces/ILayerZeroPriceFeed.sol +61 -0
  67. package/contracts/interfaces/ILayerZeroTreasury.sol +19 -0
  68. package/contracts/interfaces/IWorker.sol +29 -0
  69. package/contracts/libs/SafeCall.sol +123 -0
  70. package/contracts/uln/LzExecutor.sol +96 -0
  71. package/contracts/uln/ReceiveUlnBase.sol +118 -0
  72. package/contracts/uln/SendUlnBase.sol +129 -0
  73. package/contracts/uln/UlnBase.sol +195 -0
  74. package/contracts/uln/dvn/DVN.sol +349 -0
  75. package/contracts/uln/dvn/DVNFeeLib.sol +141 -0
  76. package/contracts/uln/dvn/MultiSig.sol +104 -0
  77. package/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapter.sol +152 -0
  78. package/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapterFeeLib.sol +7 -0
  79. package/contracts/uln/dvn/adapters/DVNAdapterBase.sol +162 -0
  80. package/contracts/uln/dvn/adapters/DVNAdapterFeeLibBase.sol +20 -0
  81. package/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapter.sol +156 -0
  82. package/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapterFeeLib.sol +7 -0
  83. package/contracts/uln/interfaces/IDVN.sol +25 -0
  84. package/contracts/uln/interfaces/IDVNAdapterFeeLib.sol +13 -0
  85. package/contracts/uln/interfaces/IDVNFeeLib.sol +30 -0
  86. package/contracts/uln/interfaces/ILayerZeroDVN.sol +34 -0
  87. package/contracts/uln/interfaces/IReceiveUlnE2.sol +18 -0
  88. package/contracts/uln/libs/DVNOptions.sol +181 -0
  89. package/contracts/uln/libs/UlnOptions.sol +176 -0
  90. package/contracts/uln/uln301/AddressSizeConfig.sol +22 -0
  91. package/contracts/uln/uln301/ReceiveLibBaseE1.sol +103 -0
  92. package/contracts/uln/uln301/ReceiveUln301.sol +120 -0
  93. package/contracts/uln/uln301/SendLibBaseE1.sol +194 -0
  94. package/contracts/uln/uln301/SendUln301.sol +99 -0
  95. package/contracts/uln/uln301/TreasuryFeeHandler.sol +41 -0
  96. package/contracts/uln/uln301/interfaces/IMessageLibE1.sol +22 -0
  97. package/contracts/uln/uln301/interfaces/INonceContract.sol +7 -0
  98. package/contracts/uln/uln301/interfaces/ITreasuryFeeHandler.sol +13 -0
  99. package/contracts/uln/uln301/interfaces/IUltraLightNode301.sol +7 -0
  100. package/contracts/uln/uln301/mocks/NonceContractMock.sol +23 -0
  101. package/contracts/uln/uln302/ReceiveUln302.sol +108 -0
  102. package/contracts/uln/uln302/SendUln302.sol +86 -0
  103. package/contracts/upgradeable/WorkerUpgradeable.sol +186 -0
  104. package/contracts/upgradeable/proxy/ProxyAdmin.sol +96 -0
  105. package/contracts/upgradeable/proxy/TransparentUpgradeableProxy.sol +131 -0
  106. package/package.json +51 -0
@@ -0,0 +1,804 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "AxelarDVNAdapter",
4
+ "sourceName": "contracts/uln/dvn/adapters/axelar/AxelarDVNAdapter.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "_sendLib",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "_receiveLib",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "address[]",
20
+ "name": "_admins",
21
+ "type": "address[]"
22
+ },
23
+ {
24
+ "internalType": "address",
25
+ "name": "_gateway",
26
+ "type": "address"
27
+ },
28
+ {
29
+ "internalType": "address",
30
+ "name": "_gasReceiver",
31
+ "type": "address"
32
+ }
33
+ ],
34
+ "stateMutability": "nonpayable",
35
+ "type": "constructor"
36
+ },
37
+ {
38
+ "inputs": [],
39
+ "name": "InvalidAddress",
40
+ "type": "error"
41
+ },
42
+ {
43
+ "inputs": [],
44
+ "name": "InvalidPayloadSize",
45
+ "type": "error"
46
+ },
47
+ {
48
+ "inputs": [],
49
+ "name": "NotApprovedByGateway",
50
+ "type": "error"
51
+ },
52
+ {
53
+ "inputs": [],
54
+ "name": "OnlySendLib",
55
+ "type": "error"
56
+ },
57
+ {
58
+ "inputs": [],
59
+ "name": "ToAddressIsZero",
60
+ "type": "error"
61
+ },
62
+ {
63
+ "inputs": [
64
+ {
65
+ "internalType": "address",
66
+ "name": "_to",
67
+ "type": "address"
68
+ },
69
+ {
70
+ "internalType": "uint256",
71
+ "name": "_value",
72
+ "type": "uint256"
73
+ }
74
+ ],
75
+ "name": "TransferNativeFailed",
76
+ "type": "error"
77
+ },
78
+ {
79
+ "inputs": [],
80
+ "name": "Unauthorized",
81
+ "type": "error"
82
+ },
83
+ {
84
+ "inputs": [],
85
+ "name": "VersionMismatch",
86
+ "type": "error"
87
+ },
88
+ {
89
+ "anonymous": false,
90
+ "inputs": [
91
+ {
92
+ "indexed": true,
93
+ "internalType": "address",
94
+ "name": "admin",
95
+ "type": "address"
96
+ },
97
+ {
98
+ "indexed": false,
99
+ "internalType": "bool",
100
+ "name": "isAdmin",
101
+ "type": "bool"
102
+ }
103
+ ],
104
+ "name": "AdminSet",
105
+ "type": "event"
106
+ },
107
+ {
108
+ "anonymous": false,
109
+ "inputs": [
110
+ {
111
+ "indexed": false,
112
+ "internalType": "uint16",
113
+ "name": "multiplierBps",
114
+ "type": "uint16"
115
+ }
116
+ ],
117
+ "name": "DefaultMultiplierSet",
118
+ "type": "event"
119
+ },
120
+ {
121
+ "anonymous": false,
122
+ "inputs": [
123
+ {
124
+ "components": [
125
+ {
126
+ "internalType": "uint32",
127
+ "name": "dstEid",
128
+ "type": "uint32"
129
+ },
130
+ {
131
+ "internalType": "uint16",
132
+ "name": "multiplierBps",
133
+ "type": "uint16"
134
+ },
135
+ {
136
+ "internalType": "uint256",
137
+ "name": "nativeGasFee",
138
+ "type": "uint256"
139
+ },
140
+ {
141
+ "internalType": "string",
142
+ "name": "peer",
143
+ "type": "string"
144
+ },
145
+ {
146
+ "internalType": "string",
147
+ "name": "chainName",
148
+ "type": "string"
149
+ }
150
+ ],
151
+ "indexed": false,
152
+ "internalType": "struct AxelarDVNAdapter.DstConfigParam[]",
153
+ "name": "params",
154
+ "type": "tuple[]"
155
+ }
156
+ ],
157
+ "name": "DstConfigSet",
158
+ "type": "event"
159
+ },
160
+ {
161
+ "anonymous": false,
162
+ "inputs": [
163
+ {
164
+ "components": [
165
+ {
166
+ "internalType": "uint32",
167
+ "name": "dstEid",
168
+ "type": "uint32"
169
+ },
170
+ {
171
+ "internalType": "uint256",
172
+ "name": "nativeGasFee",
173
+ "type": "uint256"
174
+ }
175
+ ],
176
+ "indexed": false,
177
+ "internalType": "struct AxelarDVNAdapter.DstFeeParam[]",
178
+ "name": "params",
179
+ "type": "tuple[]"
180
+ }
181
+ ],
182
+ "name": "DstFeeSet",
183
+ "type": "event"
184
+ },
185
+ {
186
+ "anonymous": false,
187
+ "inputs": [
188
+ {
189
+ "components": [
190
+ {
191
+ "internalType": "uint32",
192
+ "name": "dstEid",
193
+ "type": "uint32"
194
+ },
195
+ {
196
+ "internalType": "uint16",
197
+ "name": "multiplierBps",
198
+ "type": "uint16"
199
+ }
200
+ ],
201
+ "indexed": false,
202
+ "internalType": "struct DVNAdapterBase.DstMultiplierParam[]",
203
+ "name": "params",
204
+ "type": "tuple[]"
205
+ }
206
+ ],
207
+ "name": "DstMultiplierSet",
208
+ "type": "event"
209
+ },
210
+ {
211
+ "anonymous": false,
212
+ "inputs": [
213
+ {
214
+ "indexed": true,
215
+ "internalType": "address",
216
+ "name": "feeLib",
217
+ "type": "address"
218
+ }
219
+ ],
220
+ "name": "FeeLibSet",
221
+ "type": "event"
222
+ },
223
+ {
224
+ "anonymous": false,
225
+ "inputs": [
226
+ {
227
+ "indexed": true,
228
+ "internalType": "address",
229
+ "name": "to",
230
+ "type": "address"
231
+ },
232
+ {
233
+ "indexed": false,
234
+ "internalType": "uint256",
235
+ "name": "amount",
236
+ "type": "uint256"
237
+ }
238
+ ],
239
+ "name": "FeeWithdrawn",
240
+ "type": "event"
241
+ },
242
+ {
243
+ "anonymous": false,
244
+ "inputs": [
245
+ {
246
+ "indexed": true,
247
+ "internalType": "address",
248
+ "name": "previousOwner",
249
+ "type": "address"
250
+ },
251
+ {
252
+ "indexed": true,
253
+ "internalType": "address",
254
+ "name": "newOwner",
255
+ "type": "address"
256
+ }
257
+ ],
258
+ "name": "OwnershipTransferred",
259
+ "type": "event"
260
+ },
261
+ {
262
+ "anonymous": false,
263
+ "inputs": [
264
+ {
265
+ "indexed": true,
266
+ "internalType": "address",
267
+ "name": "to",
268
+ "type": "address"
269
+ },
270
+ {
271
+ "indexed": false,
272
+ "internalType": "address",
273
+ "name": "token",
274
+ "type": "address"
275
+ },
276
+ {
277
+ "indexed": false,
278
+ "internalType": "uint256",
279
+ "name": "amount",
280
+ "type": "uint256"
281
+ }
282
+ ],
283
+ "name": "TokenWithdrawn",
284
+ "type": "event"
285
+ },
286
+ {
287
+ "inputs": [
288
+ {
289
+ "internalType": "address",
290
+ "name": "admin",
291
+ "type": "address"
292
+ }
293
+ ],
294
+ "name": "admins",
295
+ "outputs": [
296
+ {
297
+ "internalType": "bool",
298
+ "name": "",
299
+ "type": "bool"
300
+ }
301
+ ],
302
+ "stateMutability": "view",
303
+ "type": "function"
304
+ },
305
+ {
306
+ "inputs": [
307
+ {
308
+ "components": [
309
+ {
310
+ "internalType": "uint32",
311
+ "name": "dstEid",
312
+ "type": "uint32"
313
+ },
314
+ {
315
+ "internalType": "bytes",
316
+ "name": "packetHeader",
317
+ "type": "bytes"
318
+ },
319
+ {
320
+ "internalType": "bytes32",
321
+ "name": "payloadHash",
322
+ "type": "bytes32"
323
+ },
324
+ {
325
+ "internalType": "uint64",
326
+ "name": "confirmations",
327
+ "type": "uint64"
328
+ },
329
+ {
330
+ "internalType": "address",
331
+ "name": "sender",
332
+ "type": "address"
333
+ }
334
+ ],
335
+ "internalType": "struct ILayerZeroDVN.AssignJobParam",
336
+ "name": "_param",
337
+ "type": "tuple"
338
+ },
339
+ {
340
+ "internalType": "bytes",
341
+ "name": "",
342
+ "type": "bytes"
343
+ }
344
+ ],
345
+ "name": "assignJob",
346
+ "outputs": [
347
+ {
348
+ "internalType": "uint256",
349
+ "name": "fee",
350
+ "type": "uint256"
351
+ }
352
+ ],
353
+ "stateMutability": "payable",
354
+ "type": "function"
355
+ },
356
+ {
357
+ "inputs": [
358
+ {
359
+ "internalType": "string",
360
+ "name": "axelarChain",
361
+ "type": "string"
362
+ }
363
+ ],
364
+ "name": "axelarChainToEid",
365
+ "outputs": [
366
+ {
367
+ "internalType": "uint32",
368
+ "name": "eid",
369
+ "type": "uint32"
370
+ }
371
+ ],
372
+ "stateMutability": "view",
373
+ "type": "function"
374
+ },
375
+ {
376
+ "inputs": [],
377
+ "name": "defaultMultiplierBps",
378
+ "outputs": [
379
+ {
380
+ "internalType": "uint16",
381
+ "name": "",
382
+ "type": "uint16"
383
+ }
384
+ ],
385
+ "stateMutability": "view",
386
+ "type": "function"
387
+ },
388
+ {
389
+ "inputs": [
390
+ {
391
+ "internalType": "uint32",
392
+ "name": "dstEid",
393
+ "type": "uint32"
394
+ }
395
+ ],
396
+ "name": "dstConfig",
397
+ "outputs": [
398
+ {
399
+ "internalType": "uint256",
400
+ "name": "nativeGasFee",
401
+ "type": "uint256"
402
+ },
403
+ {
404
+ "internalType": "uint16",
405
+ "name": "multiplierBps",
406
+ "type": "uint16"
407
+ },
408
+ {
409
+ "internalType": "string",
410
+ "name": "peer",
411
+ "type": "string"
412
+ },
413
+ {
414
+ "internalType": "string",
415
+ "name": "chainName",
416
+ "type": "string"
417
+ }
418
+ ],
419
+ "stateMutability": "view",
420
+ "type": "function"
421
+ },
422
+ {
423
+ "inputs": [
424
+ {
425
+ "internalType": "bytes32",
426
+ "name": "commandId",
427
+ "type": "bytes32"
428
+ },
429
+ {
430
+ "internalType": "string",
431
+ "name": "sourceChain",
432
+ "type": "string"
433
+ },
434
+ {
435
+ "internalType": "string",
436
+ "name": "sourceAddress",
437
+ "type": "string"
438
+ },
439
+ {
440
+ "internalType": "bytes",
441
+ "name": "payload",
442
+ "type": "bytes"
443
+ }
444
+ ],
445
+ "name": "execute",
446
+ "outputs": [],
447
+ "stateMutability": "nonpayable",
448
+ "type": "function"
449
+ },
450
+ {
451
+ "inputs": [
452
+ {
453
+ "internalType": "bytes32",
454
+ "name": "commandId",
455
+ "type": "bytes32"
456
+ },
457
+ {
458
+ "internalType": "string",
459
+ "name": "sourceChain",
460
+ "type": "string"
461
+ },
462
+ {
463
+ "internalType": "string",
464
+ "name": "sourceAddress",
465
+ "type": "string"
466
+ },
467
+ {
468
+ "internalType": "bytes",
469
+ "name": "payload",
470
+ "type": "bytes"
471
+ },
472
+ {
473
+ "internalType": "string",
474
+ "name": "tokenSymbol",
475
+ "type": "string"
476
+ },
477
+ {
478
+ "internalType": "uint256",
479
+ "name": "amount",
480
+ "type": "uint256"
481
+ }
482
+ ],
483
+ "name": "executeWithToken",
484
+ "outputs": [],
485
+ "stateMutability": "nonpayable",
486
+ "type": "function"
487
+ },
488
+ {
489
+ "inputs": [],
490
+ "name": "feeLib",
491
+ "outputs": [
492
+ {
493
+ "internalType": "contract IDVNAdapterFeeLib",
494
+ "name": "",
495
+ "type": "address"
496
+ }
497
+ ],
498
+ "stateMutability": "view",
499
+ "type": "function"
500
+ },
501
+ {
502
+ "inputs": [],
503
+ "name": "gasService",
504
+ "outputs": [
505
+ {
506
+ "internalType": "contract IAxelarGasService",
507
+ "name": "",
508
+ "type": "address"
509
+ }
510
+ ],
511
+ "stateMutability": "view",
512
+ "type": "function"
513
+ },
514
+ {
515
+ "inputs": [],
516
+ "name": "gateway",
517
+ "outputs": [
518
+ {
519
+ "internalType": "contract IAxelarGateway",
520
+ "name": "",
521
+ "type": "address"
522
+ }
523
+ ],
524
+ "stateMutability": "view",
525
+ "type": "function"
526
+ },
527
+ {
528
+ "inputs": [
529
+ {
530
+ "internalType": "uint32",
531
+ "name": "_dstEid",
532
+ "type": "uint32"
533
+ },
534
+ {
535
+ "internalType": "uint64",
536
+ "name": "",
537
+ "type": "uint64"
538
+ },
539
+ {
540
+ "internalType": "address",
541
+ "name": "_sender",
542
+ "type": "address"
543
+ },
544
+ {
545
+ "internalType": "bytes",
546
+ "name": "",
547
+ "type": "bytes"
548
+ }
549
+ ],
550
+ "name": "getFee",
551
+ "outputs": [
552
+ {
553
+ "internalType": "uint256",
554
+ "name": "fee",
555
+ "type": "uint256"
556
+ }
557
+ ],
558
+ "stateMutability": "view",
559
+ "type": "function"
560
+ },
561
+ {
562
+ "inputs": [],
563
+ "name": "owner",
564
+ "outputs": [
565
+ {
566
+ "internalType": "address",
567
+ "name": "",
568
+ "type": "address"
569
+ }
570
+ ],
571
+ "stateMutability": "view",
572
+ "type": "function"
573
+ },
574
+ {
575
+ "inputs": [],
576
+ "name": "receiveLib",
577
+ "outputs": [
578
+ {
579
+ "internalType": "contract IReceiveUlnE2",
580
+ "name": "",
581
+ "type": "address"
582
+ }
583
+ ],
584
+ "stateMutability": "view",
585
+ "type": "function"
586
+ },
587
+ {
588
+ "inputs": [],
589
+ "name": "renounceOwnership",
590
+ "outputs": [],
591
+ "stateMutability": "nonpayable",
592
+ "type": "function"
593
+ },
594
+ {
595
+ "inputs": [],
596
+ "name": "sendLib",
597
+ "outputs": [
598
+ {
599
+ "internalType": "contract ISendLib",
600
+ "name": "",
601
+ "type": "address"
602
+ }
603
+ ],
604
+ "stateMutability": "view",
605
+ "type": "function"
606
+ },
607
+ {
608
+ "inputs": [
609
+ {
610
+ "internalType": "address",
611
+ "name": "_admin",
612
+ "type": "address"
613
+ },
614
+ {
615
+ "internalType": "bool",
616
+ "name": "_isAdmin",
617
+ "type": "bool"
618
+ }
619
+ ],
620
+ "name": "setAdmin",
621
+ "outputs": [],
622
+ "stateMutability": "nonpayable",
623
+ "type": "function"
624
+ },
625
+ {
626
+ "inputs": [
627
+ {
628
+ "internalType": "uint16",
629
+ "name": "_defaultMultiplierBps",
630
+ "type": "uint16"
631
+ }
632
+ ],
633
+ "name": "setDefaultMultiplier",
634
+ "outputs": [],
635
+ "stateMutability": "nonpayable",
636
+ "type": "function"
637
+ },
638
+ {
639
+ "inputs": [
640
+ {
641
+ "components": [
642
+ {
643
+ "internalType": "uint32",
644
+ "name": "dstEid",
645
+ "type": "uint32"
646
+ },
647
+ {
648
+ "internalType": "uint16",
649
+ "name": "multiplierBps",
650
+ "type": "uint16"
651
+ },
652
+ {
653
+ "internalType": "uint256",
654
+ "name": "nativeGasFee",
655
+ "type": "uint256"
656
+ },
657
+ {
658
+ "internalType": "string",
659
+ "name": "peer",
660
+ "type": "string"
661
+ },
662
+ {
663
+ "internalType": "string",
664
+ "name": "chainName",
665
+ "type": "string"
666
+ }
667
+ ],
668
+ "internalType": "struct AxelarDVNAdapter.DstConfigParam[]",
669
+ "name": "_params",
670
+ "type": "tuple[]"
671
+ }
672
+ ],
673
+ "name": "setDstConfig",
674
+ "outputs": [],
675
+ "stateMutability": "nonpayable",
676
+ "type": "function"
677
+ },
678
+ {
679
+ "inputs": [
680
+ {
681
+ "components": [
682
+ {
683
+ "internalType": "uint32",
684
+ "name": "dstEid",
685
+ "type": "uint32"
686
+ },
687
+ {
688
+ "internalType": "uint16",
689
+ "name": "multiplierBps",
690
+ "type": "uint16"
691
+ }
692
+ ],
693
+ "internalType": "struct DVNAdapterBase.DstMultiplierParam[]",
694
+ "name": "_params",
695
+ "type": "tuple[]"
696
+ }
697
+ ],
698
+ "name": "setDstMultiplier",
699
+ "outputs": [],
700
+ "stateMutability": "nonpayable",
701
+ "type": "function"
702
+ },
703
+ {
704
+ "inputs": [
705
+ {
706
+ "components": [
707
+ {
708
+ "internalType": "uint32",
709
+ "name": "dstEid",
710
+ "type": "uint32"
711
+ },
712
+ {
713
+ "internalType": "uint256",
714
+ "name": "nativeGasFee",
715
+ "type": "uint256"
716
+ }
717
+ ],
718
+ "internalType": "struct AxelarDVNAdapter.DstFeeParam[]",
719
+ "name": "_params",
720
+ "type": "tuple[]"
721
+ }
722
+ ],
723
+ "name": "setDstNativeGasFee",
724
+ "outputs": [],
725
+ "stateMutability": "nonpayable",
726
+ "type": "function"
727
+ },
728
+ {
729
+ "inputs": [
730
+ {
731
+ "internalType": "address",
732
+ "name": "_feeLib",
733
+ "type": "address"
734
+ }
735
+ ],
736
+ "name": "setFeeLib",
737
+ "outputs": [],
738
+ "stateMutability": "nonpayable",
739
+ "type": "function"
740
+ },
741
+ {
742
+ "inputs": [
743
+ {
744
+ "internalType": "address",
745
+ "name": "newOwner",
746
+ "type": "address"
747
+ }
748
+ ],
749
+ "name": "transferOwnership",
750
+ "outputs": [],
751
+ "stateMutability": "nonpayable",
752
+ "type": "function"
753
+ },
754
+ {
755
+ "inputs": [
756
+ {
757
+ "internalType": "address",
758
+ "name": "_to",
759
+ "type": "address"
760
+ },
761
+ {
762
+ "internalType": "uint256",
763
+ "name": "_amount",
764
+ "type": "uint256"
765
+ }
766
+ ],
767
+ "name": "withdrawFee",
768
+ "outputs": [],
769
+ "stateMutability": "nonpayable",
770
+ "type": "function"
771
+ },
772
+ {
773
+ "inputs": [
774
+ {
775
+ "internalType": "address",
776
+ "name": "_token",
777
+ "type": "address"
778
+ },
779
+ {
780
+ "internalType": "address",
781
+ "name": "_to",
782
+ "type": "address"
783
+ },
784
+ {
785
+ "internalType": "uint256",
786
+ "name": "_amount",
787
+ "type": "uint256"
788
+ }
789
+ ],
790
+ "name": "withdrawToken",
791
+ "outputs": [],
792
+ "stateMutability": "nonpayable",
793
+ "type": "function"
794
+ },
795
+ {
796
+ "stateMutability": "payable",
797
+ "type": "receive"
798
+ }
799
+ ],
800
+ "bytecode": "0x6101006040526001805461ffff60a01b191661027160a41b1790553480156200002757600080fd5b506040516200381f3803806200381f8339810160408190526200004a9162000352565b848484846001600160a01b038116620000765760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b03166080526200008d33620002cf565b6000806000856001600160a01b03166354fd4d506040518163ffffffff1660e01b8152600401606060405180830381865afa158015620000d1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000f7919062000484565b9250925092506000806000876001600160a01b03166354fd4d506040518163ffffffff1660e01b8152600401606060405180830381865afa15801562000141573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000167919062000484565b925092509250826001600160401b0316866001600160401b03161415806200019557508160ff168560ff1614155b80620001a757508060ff168460ff1614155b15620001c65760405163714f551360e01b815260040160405180910390fd5b6001600160a01b03808a1660a052881660c05260005b8751811015620002ac576001600260008a8481518110620002015762000201620004db565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff021916908315150217905550878181518110620002555762000255620004db565b60200260200101516001600160a01b03167fe68d2c359a771606c400cf8b87000cf5864010363d6a736e98f5047b7bbe18e960016040516200029b911515815260200190565b60405180910390a2600101620001dc565b5050506001600160a01b0390971660e05250620004f19950505050505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200033757600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600080600080600060a086880312156200036b57600080fd5b62000376866200031f565b94506020620003878188016200031f565b60408801519095506001600160401b0380821115620003a557600080fd5b818901915089601f830112620003ba57600080fd5b815181811115620003cf57620003cf6200033c565b8060051b604051601f19603f83011681018181108582111715620003f757620003f76200033c565b60405291825284820192508381018501918c8311156200041657600080fd5b938501935b828510156200043f576200042f856200031f565b845293850193928501926200041b565b80985050505050505062000456606087016200031f565b915062000466608087016200031f565b90509295509295909350565b805160ff811681146200033757600080fd5b6000806000606084860312156200049a57600080fd5b83516001600160401b0381168114620004b257600080fd5b9250620004c26020850162000472565b9150620004d26040850162000472565b90509250925092565b634e487b7160e01b600052603260045260246000fd5b60805160a05160c05160e0516132c36200055c600039600081816103f3015261125c01526000818161052b0152611d610152600081816104ca0152818161101301526119d901526000818161021901528181610a7101528181610d65015261130701526132c36000f3fe60806040526004361061018e5760003560e01c80636a22d8cc116100d6578063a0706d901161007f578063ed94602411610059578063ed9460241461054d578063f2fde38b1461056d578063fd9be5221461058d57600080fd5b8063a0706d90146104b8578063bb37d00c146104ec578063bd3ed5ff1461051957600080fd5b80638da5cb5b116100b05780638da5cb5b1461044a57806395d376d7146104755780639e9449651461048857600080fd5b80636a22d8cc146103e1578063715018a61461041557806381d981af1461042a57600080fd5b806320ac2ece11610138578063429b62e511610112578063429b62e51461036157806349160658146103a15780634b0bddd2146103c157600080fd5b806320ac2ece146102c05780632eb17a9a146102e057806330bb3aac1461033357600080fd5b806311ab10991161016957806311ab1099146102605780631a058efe146102805780631a98b2e0146102a057600080fd5b8062bf2e801461019a57806301e33667146101e5578063116191b61461020757600080fd5b3661019557005b600080fd5b3480156101a657600080fd5b506001546101cd9074010000000000000000000000000000000000000000900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b3480156101f157600080fd5b5061020561020036600461241f565b6105ad565b005b34801561021357600080fd5b5061023b7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101dc565b34801561026c57600080fd5b5061020561027b3660046124a7565b610659565b34801561028c57600080fd5b5061020561029b3660046124e9565b61073f565b3480156102ac57600080fd5b506102056102bb3660046125a0565b610a1a565b3480156102cc57600080fd5b506102056102db36600461267a565b610b3c565b3480156102ec57600080fd5b5061031e6102fb3660046126cb565b805160208183018101805160048252928201919093012091525463ffffffff1681565b60405163ffffffff90911681526020016101dc565b34801561033f57600080fd5b5061035361034e3660046127ae565b610bf4565b6040519081526020016101dc565b34801561036d57600080fd5b5061039161037c36600461267a565b60026020526000908152604090205460ff1681565b60405190151581526020016101dc565b3480156103ad57600080fd5b506102056103bc366004612830565b610d0e565b3480156103cd57600080fd5b506102056103dc3660046128e2565b610e35565b3480156103ed57600080fd5b5061023b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561042157600080fd5b50610205610ec8565b34801561043657600080fd5b506102056104453660046124a7565b610edc565b34801561045657600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff1661023b565b610353610483366004612919565b610ff9565b34801561049457600080fd5b506104a86104a336600461298a565b6114b0565b6040516101dc9493929190612a13565b3480156104c457600080fd5b5061023b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104f857600080fd5b5060015461023b9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561052557600080fd5b5061023b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561055957600080fd5b50610205610568366004612a5a565b6115ee565b34801561057957600080fd5b5061020561058836600461267a565b6116b8565b34801561059957600080fd5b506102056105a8366004612a75565b611774565b3360009081526002602052604090205460ff166105f6576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106018383836117cb565b6040805173ffffffffffffffffffffffffffffffffffffffff8581168252602082018490528416917f8210728e7c071f615b840ee026032693858fbcd5e5359e67e438c890f59e5620910160405180910390a2505050565b3360009081526002602052604090205460ff166106a2576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b8181101561070157368383838181106106c0576106c0612a9f565b60400291909101915050602081018035906003906000906106e1908561298a565b63ffffffff168152602081019190915260400160002055506001016106a5565b507fb57a660331a8e55de5763e1af768e8d5a46feeabc201394c94ac4cde36319f1a8282604051610733929190612ace565b60405180910390a15050565b3360009081526002602052604090205460ff16610788576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b818110156109e857368383838181106107a6576107a6612a9f565b90506020028101906107b89190612b22565b90506004600360006107cd602085018561298a565b63ffffffff1663ffffffff1681526020019081526020016000206003016040516107f79190612bb3565b9081526040516020918190038201902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001690556108399082018261298a565b60046108486080840184612c47565b604051610856929190612cac565b908152604080516020928190038301812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff9590951694909417909355608083018152830180358352818301916108b791908501612a5a565b61ffff1681526020016108cd6060840184612c47565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506020016109146080840184612c47565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525093909452506003925061095c9050602085018561298a565b63ffffffff168152602080820192909252604090810160002083518155918301516001830180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff90921691909117905582015160028201906109c39082612d04565b50606082015160038201906109d89082612d04565b50506001909201915061078b9050565b507f950ccced17e999da9a8f2583cd16235977dbb7ee83fd38b2967cb8585fa6d1928282604051610733929190612ecb565b60008585604051610a2c929190612cac565b6040519081900381207f1876eed9000000000000000000000000000000000000000000000000000000008252915073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690631876eed990610ab6908e908e908e908e908e9089908d908d908d90600401612fe7565b6020604051808303816000875af1158015610ad5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af99190613046565b610b2f576040517f500c44b400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050505050505050565b3360009081526002602052604090205460ff16610b85576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f47f3fc2afa14fc8d55a57ed53e2a26b8e63d5f95adb4869b2da2bffdd38c63d290600090a250565b63ffffffff85166000908152600360205260409020805460015490919073ffffffffffffffffffffffffffffffffffffffff1615610d045760018054908201546040517f212cf54f00000000000000000000000000000000000000000000000000000000815263ffffffff8a16600482015273ffffffffffffffffffffffffffffffffffffffff888116602483015261ffff7401000000000000000000000000000000000000000085048116604484015290921660648201526084810185905291169063212cf54f9060a401602060405180830381865afa158015610cdd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d019190613063565b91505b5095945050505050565b60008282604051610d20929190612cac565b6040519081900381207f5f6970c3000000000000000000000000000000000000000000000000000000008252915073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690635f6970c390610da4908b908b908b908b908b90899060040161307c565b6020604051808303816000875af1158015610dc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de79190613046565b610e1d576040517f500c44b400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e2b878787878787611800565b5050505050505050565b610e3d611853565b73ffffffffffffffffffffffffffffffffffffffff821660008181526002602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527fe68d2c359a771606c400cf8b87000cf5864010363d6a736e98f5047b7bbe18e991015b60405180910390a25050565b610ed0611853565b610eda60006118d4565b565b3360009081526002602052604090205460ff16610f25576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b81811015610fc75736838383818110610f4357610f43612a9f565b9050604002019050806020016020810190610f5e9190612a5a565b60036000610f6f602085018561298a565b63ffffffff1681526020810191909152604001600020600190810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff9390931692909217909155919091019050610f28565b507f69abe4111cf43d39e68d4c540ca52a855f900939e08d7f27a07a068ea5c0605582826040516107339291906130bd565b60003373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461106a576040517f3885d60300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060038161107c602088018861298a565b63ffffffff1663ffffffff16815260200190815260200160002090508060000154915060008160030180546110b090612b60565b80601f01602080910402602001604051908101604052809291908181526020018280546110dc90612b60565b80156111295780601f106110fe57610100808354040283529160200191611129565b820191906000526020600020905b81548152906001019060200180831161110c57829003601f168201915b50505050509050600082600201805461114190612b60565b80601f016020809104026020016040519081016040528092919081815260200182805461116d90612b60565b80156111ba5780601f1061118f576101008083540402835291602001916111ba565b820191906000526020600020905b81548152906001019060200180831161119d57829003601f168201915b5050505050905060006112148880602001906111d69190612c47565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060408a0135611949565b905061121f85611976565b6040517f0c93e3bb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690630c93e3bb90879061129b903090889088908890849060040161310f565b6000604051808303818588803b1580156112b457600080fd5b505af11580156112c8573d6000803e3d6000fd5b50506040517f1c92115f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169350631c92115f9250611343915086908690869060040161317b565b600060405180830381600087803b15801561135d57600080fd5b505af1158015611371573d6000803e3d6000fd5b505060015473ffffffffffffffffffffffffffffffffffffffff161591506114a590505760015473ffffffffffffffffffffffffffffffffffffffff1663212cf54f6113c060208b018b61298a565b6113d060a08c0160808d0161267a565b600180549089015460405160e086901b7fffffffff0000000000000000000000000000000000000000000000000000000016815263ffffffff909416600485015273ffffffffffffffffffffffffffffffffffffffff909216602484015274010000000000000000000000000000000000000000900461ffff90811660448401521660648201526084810188905260a401602060405180830381865afa15801561147e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a29190613063565b94505b505050509392505050565b600360205260009081526040902080546001820154600283018054929361ffff909216926114dd90612b60565b80601f016020809104026020016040519081016040528092919081815260200182805461150990612b60565b80156115565780601f1061152b57610100808354040283529160200191611556565b820191906000526020600020905b81548152906001019060200180831161153957829003601f168201915b50505050509080600301805461156b90612b60565b80601f016020809104026020016040519081016040528092919081815260200182805461159790612b60565b80156115e45780601f106115b9576101008083540402835291602001916115e4565b820191906000526020600020905b8154815290600101906020018083116115c757829003601f168201915b5050505050905084565b3360009081526002602052604090205460ff16611637576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180547fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000061ffff8416908102919091179091556040519081527f5cd03093b446ef387fae919d09687fb7200930dc43240f391a08f7f3a8243e619060200160405180910390a150565b6116c0611853565b73ffffffffffffffffffffffffffffffffffffffff8116611768576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b611771816118d4565b50565b3360009081526002602052604090205460ff166117bd576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6117c7828261198d565b5050565b73ffffffffffffffffffffffffffffffffffffffff83166117f5576117f08282611a7d565b505050565b6117f0838383611b83565b61180c86868686611bf1565b61184b82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611d1392505050565b505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610eda576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161175f565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6060828260405160200161195e9291906131be565b60405160208183030381529060405290505b92915050565b47818110156117c7576117c73061198d838561320f565b6040517ffd9be52200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063fd9be52290604401600060405180830381600087803b158015611a1d57600080fd5b505af1158015611a31573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff167f78473f3f373f7673597f4f0fa5873cb4d375fea6d4339ad6b56dbd411513cb3f82604051610ebc91815260200190565b73ffffffffffffffffffffffffffffffffffffffff8216611aca576040517f32fa6a1d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114611b24576040519150601f19603f3d011682016040523d82523d6000602084013e611b29565b606091505b50509050806117f0576040517f2c024f9200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024810183905260440161175f565b73ffffffffffffffffffffffffffffffffffffffff8216611bd0576040517f32fa6a1d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6117f073ffffffffffffffffffffffffffffffffffffffff84168383611dd9565b600060048585604051611c05929190612cac565b90815260408051602092819003830190205463ffffffff1660008181526003909352908220600201805491935090611c3c90612b60565b80601f0160208091040260200160405190810160405280929190818152602001828054611c6890612b60565b8015611cb55780601f10611c8a57610100808354040283529160200191611cb5565b820191906000526020600020905b815481529060010190602001808311611c9857829003601f168201915b5050505050905080805190602001208484604051611cd4929190612cac565b60405180910390201461184b576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080611d1f83611e66565b6040517f0223536e000000000000000000000000000000000000000000000000000000008152919350915073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690630223536e90611da2908590859067ffffffffffffffff90600401613222565b600060405180830381600087803b158015611dbc57600080fd5b505af1158015611dd0573d6000803e3d6000fd5b50505050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526117f0908490611ede565b60606000611e7660206051613255565b835114611eaf576040517ffbdf795400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611ebd84826051611fed565b9250611eca605182613255565b9050611ed68482612167565b915050915091565b6000611f40826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166121e79092919063ffffffff16565b9050805160001480611f61575080806020019051810190611f619190613046565b6117f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161175f565b606081611ffb81601f613255565b1015612063576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015260640161175f565b61206d8284613255565b845110156120d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e6473000000000000000000000000000000604482015260640161175f565b6060821580156120f6576040519150600082526020820160405261215e565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561212f578051835260209283019201612117565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b6000612174826020613255565b835110156121de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f746f427974657333325f6f75744f66426f756e64730000000000000000000000604482015260640161175f565b50016020015190565b60606121f684846000856121fe565b949350505050565b606082471015612290576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161175f565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516122b99190613268565b60006040518083038185875af1925050503d80600081146122f6576040519150601f19603f3d011682016040523d82523d6000602084013e6122fb565b606091505b509150915061230c87838387612317565b979650505050505050565b606083156123ad5782516000036123a65773ffffffffffffffffffffffffffffffffffffffff85163b6123a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161175f565b50816121f6565b6121f683838151156123c25781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175f919061327a565b803573ffffffffffffffffffffffffffffffffffffffff8116811461241a57600080fd5b919050565b60008060006060848603121561243457600080fd5b61243d846123f6565b925061244b602085016123f6565b9150604084013590509250925092565b60008083601f84011261246d57600080fd5b50813567ffffffffffffffff81111561248557600080fd5b6020830191508360208260061b85010111156124a057600080fd5b9250929050565b600080602083850312156124ba57600080fd5b823567ffffffffffffffff8111156124d157600080fd5b6124dd8582860161245b565b90969095509350505050565b600080602083850312156124fc57600080fd5b823567ffffffffffffffff8082111561251457600080fd5b818501915085601f83011261252857600080fd5b81358181111561253757600080fd5b8660208260051b850101111561254c57600080fd5b60209290920196919550909350505050565b60008083601f84011261257057600080fd5b50813567ffffffffffffffff81111561258857600080fd5b6020830191508360208285010111156124a057600080fd5b60008060008060008060008060008060c08b8d0312156125bf57600080fd5b8a35995060208b013567ffffffffffffffff808211156125de57600080fd5b6125ea8e838f0161255e565b909b50995060408d013591508082111561260357600080fd5b61260f8e838f0161255e565b909950975060608d013591508082111561262857600080fd5b6126348e838f0161255e565b909750955060808d013591508082111561264d57600080fd5b5061265a8d828e0161255e565b9150809450508092505060a08b013590509295989b9194979a5092959850565b60006020828403121561268c57600080fd5b612695826123f6565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156126dd57600080fd5b813567ffffffffffffffff808211156126f557600080fd5b818401915084601f83011261270957600080fd5b81358181111561271b5761271b61269c565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156127615761276161269c565b8160405282815287602084870101111561277a57600080fd5b826020860160208301376000928101602001929092525095945050505050565b803563ffffffff8116811461241a57600080fd5b6000806000806000608086880312156127c657600080fd5b6127cf8661279a565b9450602086013567ffffffffffffffff80821682146127ed57600080fd5b8195506127fc604089016123f6565b9450606088013591508082111561281257600080fd5b5061281f8882890161255e565b969995985093965092949392505050565b60008060008060008060006080888a03121561284b57600080fd5b87359650602088013567ffffffffffffffff8082111561286a57600080fd5b6128768b838c0161255e565b909850965060408a013591508082111561288f57600080fd5b61289b8b838c0161255e565b909650945060608a01359150808211156128b457600080fd5b506128c18a828b0161255e565b989b979a50959850939692959293505050565b801515811461177157600080fd5b600080604083850312156128f557600080fd5b6128fe836123f6565b9150602083013561290e816128d4565b809150509250929050565b60008060006040848603121561292e57600080fd5b833567ffffffffffffffff8082111561294657600080fd5b9085019060a0828803121561295a57600080fd5b9093506020850135908082111561297057600080fd5b5061297d8682870161255e565b9497909650939450505050565b60006020828403121561299c57600080fd5b6126958261279a565b60005b838110156129c05781810151838201526020016129a8565b50506000910152565b600081518084526129e18160208601602086016129a5565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b84815261ffff84166020820152608060408201526000612a3660808301856129c9565b8281036060840152610d0181856129c9565b803561ffff8116811461241a57600080fd5b600060208284031215612a6c57600080fd5b61269582612a48565b60008060408385031215612a8857600080fd5b612a91836123f6565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020808252818101839052600090604080840186845b87811015612b155763ffffffff612afa8361279a565b16835281850135858401529183019190830190600101612ae4565b5090979650505050505050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61833603018112612b5657600080fd5b9190910192915050565b600181811c90821680612b7457607f821691505b602082108103612bad577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b6000808354612bc181612b60565b60018281168015612bd95760018114612c0c57612c3b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0084168752821515830287019450612c3b565b8760005260208060002060005b85811015612c325781548a820152908401908201612c19565b50505082870194505b50929695505050505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612c7c57600080fd5b83018035915067ffffffffffffffff821115612c9757600080fd5b6020019150368190038213156124a057600080fd5b8183823760009101908152919050565b601f8211156117f0576000816000526020600020601f850160051c81016020861015612ce55750805b601f850160051c820191505b8181101561184b57828155600101612cf1565b815167ffffffffffffffff811115612d1e57612d1e61269c565b612d3281612d2c8454612b60565b84612cbc565b602080601f831160018114612d855760008415612d4f5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561184b565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015612dd257888601518255948401946001909101908401612db3565b5085821015612e0e57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612e5357600080fd5b830160208101925035905067ffffffffffffffff811115612e7357600080fd5b8036038213156124a057600080fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60208082528181018390526000906040808401600586901b850182018785805b89811015612fd8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc089850301855282357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618c3603018112612f4b578283fd5b8b0160a063ffffffff612f5d8361279a565b16865261ffff612f6e8a8401612a48565b168987015287820135888701526060612f8981840184612e1e565b83838a0152612f9b848a018284612e82565b93505050506080612fae81840184612e1e565b935087830382890152612fc2838583612e82565b988b019897505050938801935050600101612eeb565b50919998505050505050505050565b89815260c06020820152600061300160c083018a8c612e82565b828103604084015261301481898b612e82565b9050866060840152828103608084015261302f818688612e82565b9150508260a08301529a9950505050505050505050565b60006020828403121561305857600080fd5b8151612695816128d4565b60006020828403121561307557600080fd5b5051919050565b868152608060208201526000613096608083018789612e82565b82810360408401526130a9818688612e82565b915050826060830152979650505050505050565b6020808252818101839052600090604080840186845b87811015612b155763ffffffff6130e98361279a565b16835261ffff6130fa868401612a48565b168386015291830191908301906001016130d3565b600073ffffffffffffffffffffffffffffffffffffffff808816835260a0602084015261313f60a08401886129c9565b838103604085015261315181886129c9565b9050838103606085015261316581876129c9565b9250508084166080840152509695505050505050565b60608152600061318e60608301866129c9565b82810360208401526131a081866129c9565b905082810360408401526131b481856129c9565b9695505050505050565b600083516131d08184602088016129a5565b9190910191825250602001919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115611970576119706131e0565b60608152600061323560608301866129c9565b905083602083015267ffffffffffffffff83166040830152949350505050565b80820180821115611970576119706131e0565b60008251612b568184602087016129a5565b60208152600061269560208301846129c956fea2646970667358221220115a74480c0ef78fc308442eb743b886cc55e37de6246e241d811634702f60d864736f6c63430008160033",
801
+ "deployedBytecode": "0x60806040526004361061018e5760003560e01c80636a22d8cc116100d6578063a0706d901161007f578063ed94602411610059578063ed9460241461054d578063f2fde38b1461056d578063fd9be5221461058d57600080fd5b8063a0706d90146104b8578063bb37d00c146104ec578063bd3ed5ff1461051957600080fd5b80638da5cb5b116100b05780638da5cb5b1461044a57806395d376d7146104755780639e9449651461048857600080fd5b80636a22d8cc146103e1578063715018a61461041557806381d981af1461042a57600080fd5b806320ac2ece11610138578063429b62e511610112578063429b62e51461036157806349160658146103a15780634b0bddd2146103c157600080fd5b806320ac2ece146102c05780632eb17a9a146102e057806330bb3aac1461033357600080fd5b806311ab10991161016957806311ab1099146102605780631a058efe146102805780631a98b2e0146102a057600080fd5b8062bf2e801461019a57806301e33667146101e5578063116191b61461020757600080fd5b3661019557005b600080fd5b3480156101a657600080fd5b506001546101cd9074010000000000000000000000000000000000000000900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b3480156101f157600080fd5b5061020561020036600461241f565b6105ad565b005b34801561021357600080fd5b5061023b7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101dc565b34801561026c57600080fd5b5061020561027b3660046124a7565b610659565b34801561028c57600080fd5b5061020561029b3660046124e9565b61073f565b3480156102ac57600080fd5b506102056102bb3660046125a0565b610a1a565b3480156102cc57600080fd5b506102056102db36600461267a565b610b3c565b3480156102ec57600080fd5b5061031e6102fb3660046126cb565b805160208183018101805160048252928201919093012091525463ffffffff1681565b60405163ffffffff90911681526020016101dc565b34801561033f57600080fd5b5061035361034e3660046127ae565b610bf4565b6040519081526020016101dc565b34801561036d57600080fd5b5061039161037c36600461267a565b60026020526000908152604090205460ff1681565b60405190151581526020016101dc565b3480156103ad57600080fd5b506102056103bc366004612830565b610d0e565b3480156103cd57600080fd5b506102056103dc3660046128e2565b610e35565b3480156103ed57600080fd5b5061023b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561042157600080fd5b50610205610ec8565b34801561043657600080fd5b506102056104453660046124a7565b610edc565b34801561045657600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff1661023b565b610353610483366004612919565b610ff9565b34801561049457600080fd5b506104a86104a336600461298a565b6114b0565b6040516101dc9493929190612a13565b3480156104c457600080fd5b5061023b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104f857600080fd5b5060015461023b9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561052557600080fd5b5061023b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561055957600080fd5b50610205610568366004612a5a565b6115ee565b34801561057957600080fd5b5061020561058836600461267a565b6116b8565b34801561059957600080fd5b506102056105a8366004612a75565b611774565b3360009081526002602052604090205460ff166105f6576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106018383836117cb565b6040805173ffffffffffffffffffffffffffffffffffffffff8581168252602082018490528416917f8210728e7c071f615b840ee026032693858fbcd5e5359e67e438c890f59e5620910160405180910390a2505050565b3360009081526002602052604090205460ff166106a2576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b8181101561070157368383838181106106c0576106c0612a9f565b60400291909101915050602081018035906003906000906106e1908561298a565b63ffffffff168152602081019190915260400160002055506001016106a5565b507fb57a660331a8e55de5763e1af768e8d5a46feeabc201394c94ac4cde36319f1a8282604051610733929190612ace565b60405180910390a15050565b3360009081526002602052604090205460ff16610788576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b818110156109e857368383838181106107a6576107a6612a9f565b90506020028101906107b89190612b22565b90506004600360006107cd602085018561298a565b63ffffffff1663ffffffff1681526020019081526020016000206003016040516107f79190612bb3565b9081526040516020918190038201902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001690556108399082018261298a565b60046108486080840184612c47565b604051610856929190612cac565b908152604080516020928190038301812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff9590951694909417909355608083018152830180358352818301916108b791908501612a5a565b61ffff1681526020016108cd6060840184612c47565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506020016109146080840184612c47565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525093909452506003925061095c9050602085018561298a565b63ffffffff168152602080820192909252604090810160002083518155918301516001830180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff90921691909117905582015160028201906109c39082612d04565b50606082015160038201906109d89082612d04565b50506001909201915061078b9050565b507f950ccced17e999da9a8f2583cd16235977dbb7ee83fd38b2967cb8585fa6d1928282604051610733929190612ecb565b60008585604051610a2c929190612cac565b6040519081900381207f1876eed9000000000000000000000000000000000000000000000000000000008252915073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690631876eed990610ab6908e908e908e908e908e9089908d908d908d90600401612fe7565b6020604051808303816000875af1158015610ad5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af99190613046565b610b2f576040517f500c44b400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050505050505050565b3360009081526002602052604090205460ff16610b85576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f47f3fc2afa14fc8d55a57ed53e2a26b8e63d5f95adb4869b2da2bffdd38c63d290600090a250565b63ffffffff85166000908152600360205260409020805460015490919073ffffffffffffffffffffffffffffffffffffffff1615610d045760018054908201546040517f212cf54f00000000000000000000000000000000000000000000000000000000815263ffffffff8a16600482015273ffffffffffffffffffffffffffffffffffffffff888116602483015261ffff7401000000000000000000000000000000000000000085048116604484015290921660648201526084810185905291169063212cf54f9060a401602060405180830381865afa158015610cdd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d019190613063565b91505b5095945050505050565b60008282604051610d20929190612cac565b6040519081900381207f5f6970c3000000000000000000000000000000000000000000000000000000008252915073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690635f6970c390610da4908b908b908b908b908b90899060040161307c565b6020604051808303816000875af1158015610dc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de79190613046565b610e1d576040517f500c44b400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e2b878787878787611800565b5050505050505050565b610e3d611853565b73ffffffffffffffffffffffffffffffffffffffff821660008181526002602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527fe68d2c359a771606c400cf8b87000cf5864010363d6a736e98f5047b7bbe18e991015b60405180910390a25050565b610ed0611853565b610eda60006118d4565b565b3360009081526002602052604090205460ff16610f25576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b81811015610fc75736838383818110610f4357610f43612a9f565b9050604002019050806020016020810190610f5e9190612a5a565b60036000610f6f602085018561298a565b63ffffffff1681526020810191909152604001600020600190810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff9390931692909217909155919091019050610f28565b507f69abe4111cf43d39e68d4c540ca52a855f900939e08d7f27a07a068ea5c0605582826040516107339291906130bd565b60003373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461106a576040517f3885d60300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060038161107c602088018861298a565b63ffffffff1663ffffffff16815260200190815260200160002090508060000154915060008160030180546110b090612b60565b80601f01602080910402602001604051908101604052809291908181526020018280546110dc90612b60565b80156111295780601f106110fe57610100808354040283529160200191611129565b820191906000526020600020905b81548152906001019060200180831161110c57829003601f168201915b50505050509050600082600201805461114190612b60565b80601f016020809104026020016040519081016040528092919081815260200182805461116d90612b60565b80156111ba5780601f1061118f576101008083540402835291602001916111ba565b820191906000526020600020905b81548152906001019060200180831161119d57829003601f168201915b5050505050905060006112148880602001906111d69190612c47565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060408a0135611949565b905061121f85611976565b6040517f0c93e3bb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690630c93e3bb90879061129b903090889088908890849060040161310f565b6000604051808303818588803b1580156112b457600080fd5b505af11580156112c8573d6000803e3d6000fd5b50506040517f1c92115f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169350631c92115f9250611343915086908690869060040161317b565b600060405180830381600087803b15801561135d57600080fd5b505af1158015611371573d6000803e3d6000fd5b505060015473ffffffffffffffffffffffffffffffffffffffff161591506114a590505760015473ffffffffffffffffffffffffffffffffffffffff1663212cf54f6113c060208b018b61298a565b6113d060a08c0160808d0161267a565b600180549089015460405160e086901b7fffffffff0000000000000000000000000000000000000000000000000000000016815263ffffffff909416600485015273ffffffffffffffffffffffffffffffffffffffff909216602484015274010000000000000000000000000000000000000000900461ffff90811660448401521660648201526084810188905260a401602060405180830381865afa15801561147e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a29190613063565b94505b505050509392505050565b600360205260009081526040902080546001820154600283018054929361ffff909216926114dd90612b60565b80601f016020809104026020016040519081016040528092919081815260200182805461150990612b60565b80156115565780601f1061152b57610100808354040283529160200191611556565b820191906000526020600020905b81548152906001019060200180831161153957829003601f168201915b50505050509080600301805461156b90612b60565b80601f016020809104026020016040519081016040528092919081815260200182805461159790612b60565b80156115e45780601f106115b9576101008083540402835291602001916115e4565b820191906000526020600020905b8154815290600101906020018083116115c757829003601f168201915b5050505050905084565b3360009081526002602052604090205460ff16611637576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180547fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000061ffff8416908102919091179091556040519081527f5cd03093b446ef387fae919d09687fb7200930dc43240f391a08f7f3a8243e619060200160405180910390a150565b6116c0611853565b73ffffffffffffffffffffffffffffffffffffffff8116611768576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b611771816118d4565b50565b3360009081526002602052604090205460ff166117bd576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6117c7828261198d565b5050565b73ffffffffffffffffffffffffffffffffffffffff83166117f5576117f08282611a7d565b505050565b6117f0838383611b83565b61180c86868686611bf1565b61184b82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611d1392505050565b505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610eda576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161175f565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6060828260405160200161195e9291906131be565b60405160208183030381529060405290505b92915050565b47818110156117c7576117c73061198d838561320f565b6040517ffd9be52200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063fd9be52290604401600060405180830381600087803b158015611a1d57600080fd5b505af1158015611a31573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff167f78473f3f373f7673597f4f0fa5873cb4d375fea6d4339ad6b56dbd411513cb3f82604051610ebc91815260200190565b73ffffffffffffffffffffffffffffffffffffffff8216611aca576040517f32fa6a1d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114611b24576040519150601f19603f3d011682016040523d82523d6000602084013e611b29565b606091505b50509050806117f0576040517f2c024f9200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024810183905260440161175f565b73ffffffffffffffffffffffffffffffffffffffff8216611bd0576040517f32fa6a1d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6117f073ffffffffffffffffffffffffffffffffffffffff84168383611dd9565b600060048585604051611c05929190612cac565b90815260408051602092819003830190205463ffffffff1660008181526003909352908220600201805491935090611c3c90612b60565b80601f0160208091040260200160405190810160405280929190818152602001828054611c6890612b60565b8015611cb55780601f10611c8a57610100808354040283529160200191611cb5565b820191906000526020600020905b815481529060010190602001808311611c9857829003601f168201915b5050505050905080805190602001208484604051611cd4929190612cac565b60405180910390201461184b576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080611d1f83611e66565b6040517f0223536e000000000000000000000000000000000000000000000000000000008152919350915073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690630223536e90611da2908590859067ffffffffffffffff90600401613222565b600060405180830381600087803b158015611dbc57600080fd5b505af1158015611dd0573d6000803e3d6000fd5b50505050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526117f0908490611ede565b60606000611e7660206051613255565b835114611eaf576040517ffbdf795400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611ebd84826051611fed565b9250611eca605182613255565b9050611ed68482612167565b915050915091565b6000611f40826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166121e79092919063ffffffff16565b9050805160001480611f61575080806020019051810190611f619190613046565b6117f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161175f565b606081611ffb81601f613255565b1015612063576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015260640161175f565b61206d8284613255565b845110156120d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e6473000000000000000000000000000000604482015260640161175f565b6060821580156120f6576040519150600082526020820160405261215e565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561212f578051835260209283019201612117565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b6000612174826020613255565b835110156121de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f746f427974657333325f6f75744f66426f756e64730000000000000000000000604482015260640161175f565b50016020015190565b60606121f684846000856121fe565b949350505050565b606082471015612290576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161175f565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516122b99190613268565b60006040518083038185875af1925050503d80600081146122f6576040519150601f19603f3d011682016040523d82523d6000602084013e6122fb565b606091505b509150915061230c87838387612317565b979650505050505050565b606083156123ad5782516000036123a65773ffffffffffffffffffffffffffffffffffffffff85163b6123a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161175f565b50816121f6565b6121f683838151156123c25781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175f919061327a565b803573ffffffffffffffffffffffffffffffffffffffff8116811461241a57600080fd5b919050565b60008060006060848603121561243457600080fd5b61243d846123f6565b925061244b602085016123f6565b9150604084013590509250925092565b60008083601f84011261246d57600080fd5b50813567ffffffffffffffff81111561248557600080fd5b6020830191508360208260061b85010111156124a057600080fd5b9250929050565b600080602083850312156124ba57600080fd5b823567ffffffffffffffff8111156124d157600080fd5b6124dd8582860161245b565b90969095509350505050565b600080602083850312156124fc57600080fd5b823567ffffffffffffffff8082111561251457600080fd5b818501915085601f83011261252857600080fd5b81358181111561253757600080fd5b8660208260051b850101111561254c57600080fd5b60209290920196919550909350505050565b60008083601f84011261257057600080fd5b50813567ffffffffffffffff81111561258857600080fd5b6020830191508360208285010111156124a057600080fd5b60008060008060008060008060008060c08b8d0312156125bf57600080fd5b8a35995060208b013567ffffffffffffffff808211156125de57600080fd5b6125ea8e838f0161255e565b909b50995060408d013591508082111561260357600080fd5b61260f8e838f0161255e565b909950975060608d013591508082111561262857600080fd5b6126348e838f0161255e565b909750955060808d013591508082111561264d57600080fd5b5061265a8d828e0161255e565b9150809450508092505060a08b013590509295989b9194979a5092959850565b60006020828403121561268c57600080fd5b612695826123f6565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156126dd57600080fd5b813567ffffffffffffffff808211156126f557600080fd5b818401915084601f83011261270957600080fd5b81358181111561271b5761271b61269c565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156127615761276161269c565b8160405282815287602084870101111561277a57600080fd5b826020860160208301376000928101602001929092525095945050505050565b803563ffffffff8116811461241a57600080fd5b6000806000806000608086880312156127c657600080fd5b6127cf8661279a565b9450602086013567ffffffffffffffff80821682146127ed57600080fd5b8195506127fc604089016123f6565b9450606088013591508082111561281257600080fd5b5061281f8882890161255e565b969995985093965092949392505050565b60008060008060008060006080888a03121561284b57600080fd5b87359650602088013567ffffffffffffffff8082111561286a57600080fd5b6128768b838c0161255e565b909850965060408a013591508082111561288f57600080fd5b61289b8b838c0161255e565b909650945060608a01359150808211156128b457600080fd5b506128c18a828b0161255e565b989b979a50959850939692959293505050565b801515811461177157600080fd5b600080604083850312156128f557600080fd5b6128fe836123f6565b9150602083013561290e816128d4565b809150509250929050565b60008060006040848603121561292e57600080fd5b833567ffffffffffffffff8082111561294657600080fd5b9085019060a0828803121561295a57600080fd5b9093506020850135908082111561297057600080fd5b5061297d8682870161255e565b9497909650939450505050565b60006020828403121561299c57600080fd5b6126958261279a565b60005b838110156129c05781810151838201526020016129a8565b50506000910152565b600081518084526129e18160208601602086016129a5565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b84815261ffff84166020820152608060408201526000612a3660808301856129c9565b8281036060840152610d0181856129c9565b803561ffff8116811461241a57600080fd5b600060208284031215612a6c57600080fd5b61269582612a48565b60008060408385031215612a8857600080fd5b612a91836123f6565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020808252818101839052600090604080840186845b87811015612b155763ffffffff612afa8361279a565b16835281850135858401529183019190830190600101612ae4565b5090979650505050505050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61833603018112612b5657600080fd5b9190910192915050565b600181811c90821680612b7457607f821691505b602082108103612bad577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b6000808354612bc181612b60565b60018281168015612bd95760018114612c0c57612c3b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0084168752821515830287019450612c3b565b8760005260208060002060005b85811015612c325781548a820152908401908201612c19565b50505082870194505b50929695505050505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612c7c57600080fd5b83018035915067ffffffffffffffff821115612c9757600080fd5b6020019150368190038213156124a057600080fd5b8183823760009101908152919050565b601f8211156117f0576000816000526020600020601f850160051c81016020861015612ce55750805b601f850160051c820191505b8181101561184b57828155600101612cf1565b815167ffffffffffffffff811115612d1e57612d1e61269c565b612d3281612d2c8454612b60565b84612cbc565b602080601f831160018114612d855760008415612d4f5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561184b565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015612dd257888601518255948401946001909101908401612db3565b5085821015612e0e57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612e5357600080fd5b830160208101925035905067ffffffffffffffff811115612e7357600080fd5b8036038213156124a057600080fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60208082528181018390526000906040808401600586901b850182018785805b89811015612fd8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc089850301855282357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618c3603018112612f4b578283fd5b8b0160a063ffffffff612f5d8361279a565b16865261ffff612f6e8a8401612a48565b168987015287820135888701526060612f8981840184612e1e565b83838a0152612f9b848a018284612e82565b93505050506080612fae81840184612e1e565b935087830382890152612fc2838583612e82565b988b019897505050938801935050600101612eeb565b50919998505050505050505050565b89815260c06020820152600061300160c083018a8c612e82565b828103604084015261301481898b612e82565b9050866060840152828103608084015261302f818688612e82565b9150508260a08301529a9950505050505050505050565b60006020828403121561305857600080fd5b8151612695816128d4565b60006020828403121561307557600080fd5b5051919050565b868152608060208201526000613096608083018789612e82565b82810360408401526130a9818688612e82565b915050826060830152979650505050505050565b6020808252818101839052600090604080840186845b87811015612b155763ffffffff6130e98361279a565b16835261ffff6130fa868401612a48565b168386015291830191908301906001016130d3565b600073ffffffffffffffffffffffffffffffffffffffff808816835260a0602084015261313f60a08401886129c9565b838103604085015261315181886129c9565b9050838103606085015261316581876129c9565b9250508084166080840152509695505050505050565b60608152600061318e60608301866129c9565b82810360208401526131a081866129c9565b905082810360408401526131b481856129c9565b9695505050505050565b600083516131d08184602088016129a5565b9190910191825250602001919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115611970576119706131e0565b60608152600061323560608301866129c9565b905083602083015267ffffffffffffffff83166040830152949350505050565b80820180821115611970576119706131e0565b60008251612b568184602087016129a5565b60208152600061269560208301846129c956fea2646970667358221220115a74480c0ef78fc308442eb743b886cc55e37de6246e241d811634702f60d864736f6c63430008160033",
802
+ "linkReferences": {},
803
+ "deployedLinkReferences": {}
804
+ }