@pendle/core-v2 6.0.0 → 6.1.0-cross-chain-pt

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 (44) hide show
  1. package/build/artifacts/contracts/cross-chain/FixedPricePTAMM.sol/FixedPricePTAMM.dbg.json +4 -0
  2. package/build/artifacts/contracts/cross-chain/FixedPricePTAMM.sol/FixedPricePTAMM.json +466 -0
  3. package/build/artifacts/contracts/cross-chain/factory/hub/PendlePTOFTAdapterFactory.sol/PendlePTOFTAdapterFactory.dbg.json +4 -0
  4. package/build/artifacts/contracts/cross-chain/factory/hub/PendlePTOFTAdapterFactory.sol/PendlePTOFTAdapterFactory.json +191 -0
  5. package/build/artifacts/contracts/cross-chain/oftImpl/hub/OFTAdapterImpl.sol/OFTAdapterImpl.dbg.json +4 -0
  6. package/build/artifacts/contracts/cross-chain/oftImpl/hub/OFTAdapterImpl.sol/OFTAdapterImpl.json +1265 -0
  7. package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol/BasePendleBridgedPrincipalToken.dbg.json +4 -0
  8. package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol/BasePendleBridgedPrincipalToken.json +1527 -0
  9. package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol/PendleBridgedPrincipalToken_18Decimals.dbg.json +4 -0
  10. package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol/PendleBridgedPrincipalToken_18Decimals.json +1558 -0
  11. package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol/PendleBridgedPrincipalToken_6Decimals.dbg.json +4 -0
  12. package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol/PendleBridgedPrincipalToken_6Decimals.json +1558 -0
  13. package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol/PendleBridgedPrincipalToken_8Decimals.dbg.json +4 -0
  14. package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol/PendleBridgedPrincipalToken_8Decimals.json +1558 -0
  15. package/build/artifacts/contracts/interfaces/IPBridgedPrincipalToken.sol/IPBridgedPrincipalToken.dbg.json +4 -0
  16. package/build/artifacts/contracts/interfaces/IPBridgedPrincipalToken.sol/IPBridgedPrincipalToken.json +928 -0
  17. package/build/artifacts/contracts/interfaces/IPChainlinkOracleEssential.sol/IPChainlinkOracleEssential.dbg.json +4 -0
  18. package/build/artifacts/contracts/interfaces/IPChainlinkOracleEssential.sol/IPChainlinkOracleEssential.json +57 -0
  19. package/build/artifacts/contracts/interfaces/IPFixedPricePTAMM.sol/IPFixedPricePTAMM.dbg.json +4 -0
  20. package/build/artifacts/contracts/interfaces/IPFixedPricePTAMM.sol/IPFixedPricePTAMM.json +302 -0
  21. package/build/artifacts/contracts/interfaces/IPFixedPricePTAMM.sol/IPFixedPricePTAMMSwapCallback.dbg.json +4 -0
  22. package/build/artifacts/contracts/interfaces/IPFixedPricePTAMM.sol/IPFixedPricePTAMMSwapCallback.json +34 -0
  23. package/build/artifacts/contracts/interfaces/IPPTOFTAdapterFactory.sol/IPPTOFTAdapterFactory.dbg.json +4 -0
  24. package/build/artifacts/contracts/interfaces/IPPTOFTAdapterFactory.sol/IPPTOFTAdapterFactory.json +81 -0
  25. package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracle.sol/PTExpiry.dbg.json +1 -1
  26. package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracle.sol/PendleSparkLinearDiscountOracle.dbg.json +1 -1
  27. package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracle.sol/PendleSparkLinearDiscountOracle.json +2 -2
  28. package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracleFactory.sol/PendleSparkLinearDiscountOracleFactory.dbg.json +1 -1
  29. package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracleFactory.sol/PendleSparkLinearDiscountOracleFactory.json +2 -2
  30. package/contracts/cross-chain/FixedPricePTAMM.sol +121 -0
  31. package/contracts/cross-chain/factory/hub/PendlePTOFTAdapterFactory.sol +33 -0
  32. package/contracts/cross-chain/oftImpl/hub/OFTAdapterImpl.sol +12 -0
  33. package/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol +61 -0
  34. package/contracts/interfaces/IPBridgedPrincipalToken.sol +11 -0
  35. package/contracts/interfaces/IPChainlinkOracleEssential.sol +11 -0
  36. package/contracts/interfaces/IPFixedPricePTAMM.sol +54 -0
  37. package/contracts/interfaces/IPPTOFTAdapterFactory.sol +12 -0
  38. package/contracts/oracles/internal/PendleSparkLinearDiscountOracle.sol +3 -1
  39. package/deployments/1-core.json +2 -1
  40. package/package.json +4 -1
  41. package/typechain-types/factories/PendleSparkLinearDiscountOracleFactory__factory.ts +1 -1
  42. package/typechain-types/factories/PendleSparkLinearDiscountOracle__factory.ts +1 -1
  43. package/typechain-types/hardhat.d.ts +108 -0
  44. package/typechain-types/index.ts +24 -0
@@ -0,0 +1,1265 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "OFTAdapterImpl",
4
+ "sourceName": "contracts/cross-chain/oftImpl/hub/OFTAdapterImpl.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "_token",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "_endpoint",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "address",
20
+ "name": "_delegate",
21
+ "type": "address"
22
+ }
23
+ ],
24
+ "stateMutability": "nonpayable",
25
+ "type": "constructor"
26
+ },
27
+ {
28
+ "inputs": [],
29
+ "name": "InvalidDelegate",
30
+ "type": "error"
31
+ },
32
+ {
33
+ "inputs": [],
34
+ "name": "InvalidEndpointCall",
35
+ "type": "error"
36
+ },
37
+ {
38
+ "inputs": [],
39
+ "name": "InvalidLocalDecimals",
40
+ "type": "error"
41
+ },
42
+ {
43
+ "inputs": [
44
+ {
45
+ "internalType": "bytes",
46
+ "name": "options",
47
+ "type": "bytes"
48
+ }
49
+ ],
50
+ "name": "InvalidOptions",
51
+ "type": "error"
52
+ },
53
+ {
54
+ "inputs": [],
55
+ "name": "LzTokenUnavailable",
56
+ "type": "error"
57
+ },
58
+ {
59
+ "inputs": [
60
+ {
61
+ "internalType": "uint32",
62
+ "name": "eid",
63
+ "type": "uint32"
64
+ }
65
+ ],
66
+ "name": "NoPeer",
67
+ "type": "error"
68
+ },
69
+ {
70
+ "inputs": [
71
+ {
72
+ "internalType": "uint256",
73
+ "name": "msgValue",
74
+ "type": "uint256"
75
+ }
76
+ ],
77
+ "name": "NotEnoughNative",
78
+ "type": "error"
79
+ },
80
+ {
81
+ "inputs": [
82
+ {
83
+ "internalType": "address",
84
+ "name": "addr",
85
+ "type": "address"
86
+ }
87
+ ],
88
+ "name": "OnlyEndpoint",
89
+ "type": "error"
90
+ },
91
+ {
92
+ "inputs": [
93
+ {
94
+ "internalType": "uint32",
95
+ "name": "eid",
96
+ "type": "uint32"
97
+ },
98
+ {
99
+ "internalType": "bytes32",
100
+ "name": "sender",
101
+ "type": "bytes32"
102
+ }
103
+ ],
104
+ "name": "OnlyPeer",
105
+ "type": "error"
106
+ },
107
+ {
108
+ "inputs": [],
109
+ "name": "OnlySelf",
110
+ "type": "error"
111
+ },
112
+ {
113
+ "inputs": [
114
+ {
115
+ "internalType": "bytes",
116
+ "name": "result",
117
+ "type": "bytes"
118
+ }
119
+ ],
120
+ "name": "SimulationResult",
121
+ "type": "error"
122
+ },
123
+ {
124
+ "inputs": [
125
+ {
126
+ "internalType": "uint256",
127
+ "name": "amountLD",
128
+ "type": "uint256"
129
+ },
130
+ {
131
+ "internalType": "uint256",
132
+ "name": "minAmountLD",
133
+ "type": "uint256"
134
+ }
135
+ ],
136
+ "name": "SlippageExceeded",
137
+ "type": "error"
138
+ },
139
+ {
140
+ "anonymous": false,
141
+ "inputs": [
142
+ {
143
+ "components": [
144
+ {
145
+ "internalType": "uint32",
146
+ "name": "eid",
147
+ "type": "uint32"
148
+ },
149
+ {
150
+ "internalType": "uint16",
151
+ "name": "msgType",
152
+ "type": "uint16"
153
+ },
154
+ {
155
+ "internalType": "bytes",
156
+ "name": "options",
157
+ "type": "bytes"
158
+ }
159
+ ],
160
+ "indexed": false,
161
+ "internalType": "struct EnforcedOptionParam[]",
162
+ "name": "_enforcedOptions",
163
+ "type": "tuple[]"
164
+ }
165
+ ],
166
+ "name": "EnforcedOptionSet",
167
+ "type": "event"
168
+ },
169
+ {
170
+ "anonymous": false,
171
+ "inputs": [
172
+ {
173
+ "indexed": false,
174
+ "internalType": "address",
175
+ "name": "inspector",
176
+ "type": "address"
177
+ }
178
+ ],
179
+ "name": "MsgInspectorSet",
180
+ "type": "event"
181
+ },
182
+ {
183
+ "anonymous": false,
184
+ "inputs": [
185
+ {
186
+ "indexed": true,
187
+ "internalType": "bytes32",
188
+ "name": "guid",
189
+ "type": "bytes32"
190
+ },
191
+ {
192
+ "indexed": false,
193
+ "internalType": "uint32",
194
+ "name": "srcEid",
195
+ "type": "uint32"
196
+ },
197
+ {
198
+ "indexed": true,
199
+ "internalType": "address",
200
+ "name": "toAddress",
201
+ "type": "address"
202
+ },
203
+ {
204
+ "indexed": false,
205
+ "internalType": "uint256",
206
+ "name": "amountReceivedLD",
207
+ "type": "uint256"
208
+ }
209
+ ],
210
+ "name": "OFTReceived",
211
+ "type": "event"
212
+ },
213
+ {
214
+ "anonymous": false,
215
+ "inputs": [
216
+ {
217
+ "indexed": true,
218
+ "internalType": "bytes32",
219
+ "name": "guid",
220
+ "type": "bytes32"
221
+ },
222
+ {
223
+ "indexed": false,
224
+ "internalType": "uint32",
225
+ "name": "dstEid",
226
+ "type": "uint32"
227
+ },
228
+ {
229
+ "indexed": true,
230
+ "internalType": "address",
231
+ "name": "fromAddress",
232
+ "type": "address"
233
+ },
234
+ {
235
+ "indexed": false,
236
+ "internalType": "uint256",
237
+ "name": "amountSentLD",
238
+ "type": "uint256"
239
+ },
240
+ {
241
+ "indexed": false,
242
+ "internalType": "uint256",
243
+ "name": "amountReceivedLD",
244
+ "type": "uint256"
245
+ }
246
+ ],
247
+ "name": "OFTSent",
248
+ "type": "event"
249
+ },
250
+ {
251
+ "anonymous": false,
252
+ "inputs": [
253
+ {
254
+ "indexed": true,
255
+ "internalType": "address",
256
+ "name": "previousOwner",
257
+ "type": "address"
258
+ },
259
+ {
260
+ "indexed": true,
261
+ "internalType": "address",
262
+ "name": "newOwner",
263
+ "type": "address"
264
+ }
265
+ ],
266
+ "name": "OwnershipTransferred",
267
+ "type": "event"
268
+ },
269
+ {
270
+ "anonymous": false,
271
+ "inputs": [
272
+ {
273
+ "indexed": false,
274
+ "internalType": "uint32",
275
+ "name": "eid",
276
+ "type": "uint32"
277
+ },
278
+ {
279
+ "indexed": false,
280
+ "internalType": "bytes32",
281
+ "name": "peer",
282
+ "type": "bytes32"
283
+ }
284
+ ],
285
+ "name": "PeerSet",
286
+ "type": "event"
287
+ },
288
+ {
289
+ "anonymous": false,
290
+ "inputs": [
291
+ {
292
+ "indexed": false,
293
+ "internalType": "address",
294
+ "name": "preCrimeAddress",
295
+ "type": "address"
296
+ }
297
+ ],
298
+ "name": "PreCrimeSet",
299
+ "type": "event"
300
+ },
301
+ {
302
+ "inputs": [],
303
+ "name": "SEND",
304
+ "outputs": [
305
+ {
306
+ "internalType": "uint16",
307
+ "name": "",
308
+ "type": "uint16"
309
+ }
310
+ ],
311
+ "stateMutability": "view",
312
+ "type": "function"
313
+ },
314
+ {
315
+ "inputs": [],
316
+ "name": "SEND_AND_CALL",
317
+ "outputs": [
318
+ {
319
+ "internalType": "uint16",
320
+ "name": "",
321
+ "type": "uint16"
322
+ }
323
+ ],
324
+ "stateMutability": "view",
325
+ "type": "function"
326
+ },
327
+ {
328
+ "inputs": [
329
+ {
330
+ "components": [
331
+ {
332
+ "internalType": "uint32",
333
+ "name": "srcEid",
334
+ "type": "uint32"
335
+ },
336
+ {
337
+ "internalType": "bytes32",
338
+ "name": "sender",
339
+ "type": "bytes32"
340
+ },
341
+ {
342
+ "internalType": "uint64",
343
+ "name": "nonce",
344
+ "type": "uint64"
345
+ }
346
+ ],
347
+ "internalType": "struct Origin",
348
+ "name": "origin",
349
+ "type": "tuple"
350
+ }
351
+ ],
352
+ "name": "allowInitializePath",
353
+ "outputs": [
354
+ {
355
+ "internalType": "bool",
356
+ "name": "",
357
+ "type": "bool"
358
+ }
359
+ ],
360
+ "stateMutability": "view",
361
+ "type": "function"
362
+ },
363
+ {
364
+ "inputs": [],
365
+ "name": "approvalRequired",
366
+ "outputs": [
367
+ {
368
+ "internalType": "bool",
369
+ "name": "",
370
+ "type": "bool"
371
+ }
372
+ ],
373
+ "stateMutability": "pure",
374
+ "type": "function"
375
+ },
376
+ {
377
+ "inputs": [
378
+ {
379
+ "internalType": "uint32",
380
+ "name": "_eid",
381
+ "type": "uint32"
382
+ },
383
+ {
384
+ "internalType": "uint16",
385
+ "name": "_msgType",
386
+ "type": "uint16"
387
+ },
388
+ {
389
+ "internalType": "bytes",
390
+ "name": "_extraOptions",
391
+ "type": "bytes"
392
+ }
393
+ ],
394
+ "name": "combineOptions",
395
+ "outputs": [
396
+ {
397
+ "internalType": "bytes",
398
+ "name": "",
399
+ "type": "bytes"
400
+ }
401
+ ],
402
+ "stateMutability": "view",
403
+ "type": "function"
404
+ },
405
+ {
406
+ "inputs": [],
407
+ "name": "decimalConversionRate",
408
+ "outputs": [
409
+ {
410
+ "internalType": "uint256",
411
+ "name": "",
412
+ "type": "uint256"
413
+ }
414
+ ],
415
+ "stateMutability": "view",
416
+ "type": "function"
417
+ },
418
+ {
419
+ "inputs": [],
420
+ "name": "endpoint",
421
+ "outputs": [
422
+ {
423
+ "internalType": "contract ILayerZeroEndpointV2",
424
+ "name": "",
425
+ "type": "address"
426
+ }
427
+ ],
428
+ "stateMutability": "view",
429
+ "type": "function"
430
+ },
431
+ {
432
+ "inputs": [
433
+ {
434
+ "internalType": "uint32",
435
+ "name": "eid",
436
+ "type": "uint32"
437
+ },
438
+ {
439
+ "internalType": "uint16",
440
+ "name": "msgType",
441
+ "type": "uint16"
442
+ }
443
+ ],
444
+ "name": "enforcedOptions",
445
+ "outputs": [
446
+ {
447
+ "internalType": "bytes",
448
+ "name": "enforcedOption",
449
+ "type": "bytes"
450
+ }
451
+ ],
452
+ "stateMutability": "view",
453
+ "type": "function"
454
+ },
455
+ {
456
+ "inputs": [
457
+ {
458
+ "components": [
459
+ {
460
+ "internalType": "uint32",
461
+ "name": "srcEid",
462
+ "type": "uint32"
463
+ },
464
+ {
465
+ "internalType": "bytes32",
466
+ "name": "sender",
467
+ "type": "bytes32"
468
+ },
469
+ {
470
+ "internalType": "uint64",
471
+ "name": "nonce",
472
+ "type": "uint64"
473
+ }
474
+ ],
475
+ "internalType": "struct Origin",
476
+ "name": "",
477
+ "type": "tuple"
478
+ },
479
+ {
480
+ "internalType": "bytes",
481
+ "name": "",
482
+ "type": "bytes"
483
+ },
484
+ {
485
+ "internalType": "address",
486
+ "name": "_sender",
487
+ "type": "address"
488
+ }
489
+ ],
490
+ "name": "isComposeMsgSender",
491
+ "outputs": [
492
+ {
493
+ "internalType": "bool",
494
+ "name": "",
495
+ "type": "bool"
496
+ }
497
+ ],
498
+ "stateMutability": "view",
499
+ "type": "function"
500
+ },
501
+ {
502
+ "inputs": [
503
+ {
504
+ "internalType": "uint32",
505
+ "name": "_eid",
506
+ "type": "uint32"
507
+ },
508
+ {
509
+ "internalType": "bytes32",
510
+ "name": "_peer",
511
+ "type": "bytes32"
512
+ }
513
+ ],
514
+ "name": "isPeer",
515
+ "outputs": [
516
+ {
517
+ "internalType": "bool",
518
+ "name": "",
519
+ "type": "bool"
520
+ }
521
+ ],
522
+ "stateMutability": "view",
523
+ "type": "function"
524
+ },
525
+ {
526
+ "inputs": [
527
+ {
528
+ "components": [
529
+ {
530
+ "internalType": "uint32",
531
+ "name": "srcEid",
532
+ "type": "uint32"
533
+ },
534
+ {
535
+ "internalType": "bytes32",
536
+ "name": "sender",
537
+ "type": "bytes32"
538
+ },
539
+ {
540
+ "internalType": "uint64",
541
+ "name": "nonce",
542
+ "type": "uint64"
543
+ }
544
+ ],
545
+ "internalType": "struct Origin",
546
+ "name": "_origin",
547
+ "type": "tuple"
548
+ },
549
+ {
550
+ "internalType": "bytes32",
551
+ "name": "_guid",
552
+ "type": "bytes32"
553
+ },
554
+ {
555
+ "internalType": "bytes",
556
+ "name": "_message",
557
+ "type": "bytes"
558
+ },
559
+ {
560
+ "internalType": "address",
561
+ "name": "_executor",
562
+ "type": "address"
563
+ },
564
+ {
565
+ "internalType": "bytes",
566
+ "name": "_extraData",
567
+ "type": "bytes"
568
+ }
569
+ ],
570
+ "name": "lzReceive",
571
+ "outputs": [],
572
+ "stateMutability": "payable",
573
+ "type": "function"
574
+ },
575
+ {
576
+ "inputs": [
577
+ {
578
+ "components": [
579
+ {
580
+ "components": [
581
+ {
582
+ "internalType": "uint32",
583
+ "name": "srcEid",
584
+ "type": "uint32"
585
+ },
586
+ {
587
+ "internalType": "bytes32",
588
+ "name": "sender",
589
+ "type": "bytes32"
590
+ },
591
+ {
592
+ "internalType": "uint64",
593
+ "name": "nonce",
594
+ "type": "uint64"
595
+ }
596
+ ],
597
+ "internalType": "struct Origin",
598
+ "name": "origin",
599
+ "type": "tuple"
600
+ },
601
+ {
602
+ "internalType": "uint32",
603
+ "name": "dstEid",
604
+ "type": "uint32"
605
+ },
606
+ {
607
+ "internalType": "address",
608
+ "name": "receiver",
609
+ "type": "address"
610
+ },
611
+ {
612
+ "internalType": "bytes32",
613
+ "name": "guid",
614
+ "type": "bytes32"
615
+ },
616
+ {
617
+ "internalType": "uint256",
618
+ "name": "value",
619
+ "type": "uint256"
620
+ },
621
+ {
622
+ "internalType": "address",
623
+ "name": "executor",
624
+ "type": "address"
625
+ },
626
+ {
627
+ "internalType": "bytes",
628
+ "name": "message",
629
+ "type": "bytes"
630
+ },
631
+ {
632
+ "internalType": "bytes",
633
+ "name": "extraData",
634
+ "type": "bytes"
635
+ }
636
+ ],
637
+ "internalType": "struct InboundPacket[]",
638
+ "name": "_packets",
639
+ "type": "tuple[]"
640
+ }
641
+ ],
642
+ "name": "lzReceiveAndRevert",
643
+ "outputs": [],
644
+ "stateMutability": "payable",
645
+ "type": "function"
646
+ },
647
+ {
648
+ "inputs": [
649
+ {
650
+ "components": [
651
+ {
652
+ "internalType": "uint32",
653
+ "name": "srcEid",
654
+ "type": "uint32"
655
+ },
656
+ {
657
+ "internalType": "bytes32",
658
+ "name": "sender",
659
+ "type": "bytes32"
660
+ },
661
+ {
662
+ "internalType": "uint64",
663
+ "name": "nonce",
664
+ "type": "uint64"
665
+ }
666
+ ],
667
+ "internalType": "struct Origin",
668
+ "name": "_origin",
669
+ "type": "tuple"
670
+ },
671
+ {
672
+ "internalType": "bytes32",
673
+ "name": "_guid",
674
+ "type": "bytes32"
675
+ },
676
+ {
677
+ "internalType": "bytes",
678
+ "name": "_message",
679
+ "type": "bytes"
680
+ },
681
+ {
682
+ "internalType": "address",
683
+ "name": "_executor",
684
+ "type": "address"
685
+ },
686
+ {
687
+ "internalType": "bytes",
688
+ "name": "_extraData",
689
+ "type": "bytes"
690
+ }
691
+ ],
692
+ "name": "lzReceiveSimulate",
693
+ "outputs": [],
694
+ "stateMutability": "payable",
695
+ "type": "function"
696
+ },
697
+ {
698
+ "inputs": [],
699
+ "name": "msgInspector",
700
+ "outputs": [
701
+ {
702
+ "internalType": "address",
703
+ "name": "",
704
+ "type": "address"
705
+ }
706
+ ],
707
+ "stateMutability": "view",
708
+ "type": "function"
709
+ },
710
+ {
711
+ "inputs": [
712
+ {
713
+ "internalType": "uint32",
714
+ "name": "",
715
+ "type": "uint32"
716
+ },
717
+ {
718
+ "internalType": "bytes32",
719
+ "name": "",
720
+ "type": "bytes32"
721
+ }
722
+ ],
723
+ "name": "nextNonce",
724
+ "outputs": [
725
+ {
726
+ "internalType": "uint64",
727
+ "name": "nonce",
728
+ "type": "uint64"
729
+ }
730
+ ],
731
+ "stateMutability": "view",
732
+ "type": "function"
733
+ },
734
+ {
735
+ "inputs": [],
736
+ "name": "oApp",
737
+ "outputs": [
738
+ {
739
+ "internalType": "address",
740
+ "name": "",
741
+ "type": "address"
742
+ }
743
+ ],
744
+ "stateMutability": "view",
745
+ "type": "function"
746
+ },
747
+ {
748
+ "inputs": [],
749
+ "name": "oAppVersion",
750
+ "outputs": [
751
+ {
752
+ "internalType": "uint64",
753
+ "name": "senderVersion",
754
+ "type": "uint64"
755
+ },
756
+ {
757
+ "internalType": "uint64",
758
+ "name": "receiverVersion",
759
+ "type": "uint64"
760
+ }
761
+ ],
762
+ "stateMutability": "pure",
763
+ "type": "function"
764
+ },
765
+ {
766
+ "inputs": [],
767
+ "name": "oftVersion",
768
+ "outputs": [
769
+ {
770
+ "internalType": "bytes4",
771
+ "name": "interfaceId",
772
+ "type": "bytes4"
773
+ },
774
+ {
775
+ "internalType": "uint64",
776
+ "name": "version",
777
+ "type": "uint64"
778
+ }
779
+ ],
780
+ "stateMutability": "pure",
781
+ "type": "function"
782
+ },
783
+ {
784
+ "inputs": [],
785
+ "name": "owner",
786
+ "outputs": [
787
+ {
788
+ "internalType": "address",
789
+ "name": "",
790
+ "type": "address"
791
+ }
792
+ ],
793
+ "stateMutability": "view",
794
+ "type": "function"
795
+ },
796
+ {
797
+ "inputs": [
798
+ {
799
+ "internalType": "uint32",
800
+ "name": "eid",
801
+ "type": "uint32"
802
+ }
803
+ ],
804
+ "name": "peers",
805
+ "outputs": [
806
+ {
807
+ "internalType": "bytes32",
808
+ "name": "peer",
809
+ "type": "bytes32"
810
+ }
811
+ ],
812
+ "stateMutability": "view",
813
+ "type": "function"
814
+ },
815
+ {
816
+ "inputs": [],
817
+ "name": "preCrime",
818
+ "outputs": [
819
+ {
820
+ "internalType": "address",
821
+ "name": "",
822
+ "type": "address"
823
+ }
824
+ ],
825
+ "stateMutability": "view",
826
+ "type": "function"
827
+ },
828
+ {
829
+ "inputs": [
830
+ {
831
+ "components": [
832
+ {
833
+ "internalType": "uint32",
834
+ "name": "dstEid",
835
+ "type": "uint32"
836
+ },
837
+ {
838
+ "internalType": "bytes32",
839
+ "name": "to",
840
+ "type": "bytes32"
841
+ },
842
+ {
843
+ "internalType": "uint256",
844
+ "name": "amountLD",
845
+ "type": "uint256"
846
+ },
847
+ {
848
+ "internalType": "uint256",
849
+ "name": "minAmountLD",
850
+ "type": "uint256"
851
+ },
852
+ {
853
+ "internalType": "bytes",
854
+ "name": "extraOptions",
855
+ "type": "bytes"
856
+ },
857
+ {
858
+ "internalType": "bytes",
859
+ "name": "composeMsg",
860
+ "type": "bytes"
861
+ },
862
+ {
863
+ "internalType": "bytes",
864
+ "name": "oftCmd",
865
+ "type": "bytes"
866
+ }
867
+ ],
868
+ "internalType": "struct SendParam",
869
+ "name": "_sendParam",
870
+ "type": "tuple"
871
+ }
872
+ ],
873
+ "name": "quoteOFT",
874
+ "outputs": [
875
+ {
876
+ "components": [
877
+ {
878
+ "internalType": "uint256",
879
+ "name": "minAmountLD",
880
+ "type": "uint256"
881
+ },
882
+ {
883
+ "internalType": "uint256",
884
+ "name": "maxAmountLD",
885
+ "type": "uint256"
886
+ }
887
+ ],
888
+ "internalType": "struct OFTLimit",
889
+ "name": "oftLimit",
890
+ "type": "tuple"
891
+ },
892
+ {
893
+ "components": [
894
+ {
895
+ "internalType": "int256",
896
+ "name": "feeAmountLD",
897
+ "type": "int256"
898
+ },
899
+ {
900
+ "internalType": "string",
901
+ "name": "description",
902
+ "type": "string"
903
+ }
904
+ ],
905
+ "internalType": "struct OFTFeeDetail[]",
906
+ "name": "oftFeeDetails",
907
+ "type": "tuple[]"
908
+ },
909
+ {
910
+ "components": [
911
+ {
912
+ "internalType": "uint256",
913
+ "name": "amountSentLD",
914
+ "type": "uint256"
915
+ },
916
+ {
917
+ "internalType": "uint256",
918
+ "name": "amountReceivedLD",
919
+ "type": "uint256"
920
+ }
921
+ ],
922
+ "internalType": "struct OFTReceipt",
923
+ "name": "oftReceipt",
924
+ "type": "tuple"
925
+ }
926
+ ],
927
+ "stateMutability": "view",
928
+ "type": "function"
929
+ },
930
+ {
931
+ "inputs": [
932
+ {
933
+ "components": [
934
+ {
935
+ "internalType": "uint32",
936
+ "name": "dstEid",
937
+ "type": "uint32"
938
+ },
939
+ {
940
+ "internalType": "bytes32",
941
+ "name": "to",
942
+ "type": "bytes32"
943
+ },
944
+ {
945
+ "internalType": "uint256",
946
+ "name": "amountLD",
947
+ "type": "uint256"
948
+ },
949
+ {
950
+ "internalType": "uint256",
951
+ "name": "minAmountLD",
952
+ "type": "uint256"
953
+ },
954
+ {
955
+ "internalType": "bytes",
956
+ "name": "extraOptions",
957
+ "type": "bytes"
958
+ },
959
+ {
960
+ "internalType": "bytes",
961
+ "name": "composeMsg",
962
+ "type": "bytes"
963
+ },
964
+ {
965
+ "internalType": "bytes",
966
+ "name": "oftCmd",
967
+ "type": "bytes"
968
+ }
969
+ ],
970
+ "internalType": "struct SendParam",
971
+ "name": "_sendParam",
972
+ "type": "tuple"
973
+ },
974
+ {
975
+ "internalType": "bool",
976
+ "name": "_payInLzToken",
977
+ "type": "bool"
978
+ }
979
+ ],
980
+ "name": "quoteSend",
981
+ "outputs": [
982
+ {
983
+ "components": [
984
+ {
985
+ "internalType": "uint256",
986
+ "name": "nativeFee",
987
+ "type": "uint256"
988
+ },
989
+ {
990
+ "internalType": "uint256",
991
+ "name": "lzTokenFee",
992
+ "type": "uint256"
993
+ }
994
+ ],
995
+ "internalType": "struct MessagingFee",
996
+ "name": "msgFee",
997
+ "type": "tuple"
998
+ }
999
+ ],
1000
+ "stateMutability": "view",
1001
+ "type": "function"
1002
+ },
1003
+ {
1004
+ "inputs": [],
1005
+ "name": "renounceOwnership",
1006
+ "outputs": [],
1007
+ "stateMutability": "nonpayable",
1008
+ "type": "function"
1009
+ },
1010
+ {
1011
+ "inputs": [
1012
+ {
1013
+ "components": [
1014
+ {
1015
+ "internalType": "uint32",
1016
+ "name": "dstEid",
1017
+ "type": "uint32"
1018
+ },
1019
+ {
1020
+ "internalType": "bytes32",
1021
+ "name": "to",
1022
+ "type": "bytes32"
1023
+ },
1024
+ {
1025
+ "internalType": "uint256",
1026
+ "name": "amountLD",
1027
+ "type": "uint256"
1028
+ },
1029
+ {
1030
+ "internalType": "uint256",
1031
+ "name": "minAmountLD",
1032
+ "type": "uint256"
1033
+ },
1034
+ {
1035
+ "internalType": "bytes",
1036
+ "name": "extraOptions",
1037
+ "type": "bytes"
1038
+ },
1039
+ {
1040
+ "internalType": "bytes",
1041
+ "name": "composeMsg",
1042
+ "type": "bytes"
1043
+ },
1044
+ {
1045
+ "internalType": "bytes",
1046
+ "name": "oftCmd",
1047
+ "type": "bytes"
1048
+ }
1049
+ ],
1050
+ "internalType": "struct SendParam",
1051
+ "name": "_sendParam",
1052
+ "type": "tuple"
1053
+ },
1054
+ {
1055
+ "components": [
1056
+ {
1057
+ "internalType": "uint256",
1058
+ "name": "nativeFee",
1059
+ "type": "uint256"
1060
+ },
1061
+ {
1062
+ "internalType": "uint256",
1063
+ "name": "lzTokenFee",
1064
+ "type": "uint256"
1065
+ }
1066
+ ],
1067
+ "internalType": "struct MessagingFee",
1068
+ "name": "_fee",
1069
+ "type": "tuple"
1070
+ },
1071
+ {
1072
+ "internalType": "address",
1073
+ "name": "_refundAddress",
1074
+ "type": "address"
1075
+ }
1076
+ ],
1077
+ "name": "send",
1078
+ "outputs": [
1079
+ {
1080
+ "components": [
1081
+ {
1082
+ "internalType": "bytes32",
1083
+ "name": "guid",
1084
+ "type": "bytes32"
1085
+ },
1086
+ {
1087
+ "internalType": "uint64",
1088
+ "name": "nonce",
1089
+ "type": "uint64"
1090
+ },
1091
+ {
1092
+ "components": [
1093
+ {
1094
+ "internalType": "uint256",
1095
+ "name": "nativeFee",
1096
+ "type": "uint256"
1097
+ },
1098
+ {
1099
+ "internalType": "uint256",
1100
+ "name": "lzTokenFee",
1101
+ "type": "uint256"
1102
+ }
1103
+ ],
1104
+ "internalType": "struct MessagingFee",
1105
+ "name": "fee",
1106
+ "type": "tuple"
1107
+ }
1108
+ ],
1109
+ "internalType": "struct MessagingReceipt",
1110
+ "name": "msgReceipt",
1111
+ "type": "tuple"
1112
+ },
1113
+ {
1114
+ "components": [
1115
+ {
1116
+ "internalType": "uint256",
1117
+ "name": "amountSentLD",
1118
+ "type": "uint256"
1119
+ },
1120
+ {
1121
+ "internalType": "uint256",
1122
+ "name": "amountReceivedLD",
1123
+ "type": "uint256"
1124
+ }
1125
+ ],
1126
+ "internalType": "struct OFTReceipt",
1127
+ "name": "oftReceipt",
1128
+ "type": "tuple"
1129
+ }
1130
+ ],
1131
+ "stateMutability": "payable",
1132
+ "type": "function"
1133
+ },
1134
+ {
1135
+ "inputs": [
1136
+ {
1137
+ "internalType": "address",
1138
+ "name": "_delegate",
1139
+ "type": "address"
1140
+ }
1141
+ ],
1142
+ "name": "setDelegate",
1143
+ "outputs": [],
1144
+ "stateMutability": "nonpayable",
1145
+ "type": "function"
1146
+ },
1147
+ {
1148
+ "inputs": [
1149
+ {
1150
+ "components": [
1151
+ {
1152
+ "internalType": "uint32",
1153
+ "name": "eid",
1154
+ "type": "uint32"
1155
+ },
1156
+ {
1157
+ "internalType": "uint16",
1158
+ "name": "msgType",
1159
+ "type": "uint16"
1160
+ },
1161
+ {
1162
+ "internalType": "bytes",
1163
+ "name": "options",
1164
+ "type": "bytes"
1165
+ }
1166
+ ],
1167
+ "internalType": "struct EnforcedOptionParam[]",
1168
+ "name": "_enforcedOptions",
1169
+ "type": "tuple[]"
1170
+ }
1171
+ ],
1172
+ "name": "setEnforcedOptions",
1173
+ "outputs": [],
1174
+ "stateMutability": "nonpayable",
1175
+ "type": "function"
1176
+ },
1177
+ {
1178
+ "inputs": [
1179
+ {
1180
+ "internalType": "address",
1181
+ "name": "_msgInspector",
1182
+ "type": "address"
1183
+ }
1184
+ ],
1185
+ "name": "setMsgInspector",
1186
+ "outputs": [],
1187
+ "stateMutability": "nonpayable",
1188
+ "type": "function"
1189
+ },
1190
+ {
1191
+ "inputs": [
1192
+ {
1193
+ "internalType": "uint32",
1194
+ "name": "_eid",
1195
+ "type": "uint32"
1196
+ },
1197
+ {
1198
+ "internalType": "bytes32",
1199
+ "name": "_peer",
1200
+ "type": "bytes32"
1201
+ }
1202
+ ],
1203
+ "name": "setPeer",
1204
+ "outputs": [],
1205
+ "stateMutability": "nonpayable",
1206
+ "type": "function"
1207
+ },
1208
+ {
1209
+ "inputs": [
1210
+ {
1211
+ "internalType": "address",
1212
+ "name": "_preCrime",
1213
+ "type": "address"
1214
+ }
1215
+ ],
1216
+ "name": "setPreCrime",
1217
+ "outputs": [],
1218
+ "stateMutability": "nonpayable",
1219
+ "type": "function"
1220
+ },
1221
+ {
1222
+ "inputs": [],
1223
+ "name": "sharedDecimals",
1224
+ "outputs": [
1225
+ {
1226
+ "internalType": "uint8",
1227
+ "name": "",
1228
+ "type": "uint8"
1229
+ }
1230
+ ],
1231
+ "stateMutability": "view",
1232
+ "type": "function"
1233
+ },
1234
+ {
1235
+ "inputs": [],
1236
+ "name": "token",
1237
+ "outputs": [
1238
+ {
1239
+ "internalType": "address",
1240
+ "name": "",
1241
+ "type": "address"
1242
+ }
1243
+ ],
1244
+ "stateMutability": "view",
1245
+ "type": "function"
1246
+ },
1247
+ {
1248
+ "inputs": [
1249
+ {
1250
+ "internalType": "address",
1251
+ "name": "newOwner",
1252
+ "type": "address"
1253
+ }
1254
+ ],
1255
+ "name": "transferOwnership",
1256
+ "outputs": [],
1257
+ "stateMutability": "nonpayable",
1258
+ "type": "function"
1259
+ }
1260
+ ],
1261
+ "bytecode": "0x60e06040523480156200001157600080fd5b50604051620030b1380380620030b1833981016040819052620000349162000223565b828282826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000076573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009c91906200026d565b828281818181620000ad33620001b1565b6001600160a01b038083166080528116620000db57604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e190602401600060405180830381600087803b1580156200012357600080fd5b505af115801562000138573d6000803e3d6000fd5b5050505050505050620001506200020160201b60201c565b60ff168360ff16101562000177576040516301e9714b60e41b815260040160405180910390fd5b62000184600684620002af565b6200019190600a620003ce565b60a0525050506001600160a01b0390921660c05250620003df9350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600690565b80516001600160a01b03811681146200021e57600080fd5b919050565b6000806000606084860312156200023957600080fd5b620002448462000206565b9250620002546020850162000206565b9150620002646040850162000206565b90509250925092565b6000602082840312156200028057600080fd5b815160ff811681146200029257600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b60ff8281168282160390811115620002cb57620002cb62000299565b92915050565b600181815b8085111562000312578160001904821115620002f657620002f662000299565b808516156200030457918102915b93841c9390800290620002d6565b509250929050565b6000826200032b57506001620002cb565b816200033a57506000620002cb565b81600181146200035357600281146200035e576200037e565b6001915050620002cb565b60ff84111562000372576200037262000299565b50506001821b620002cb565b5060208310610133831016604e8410600b8410161715620003a3575081810a620002cb565b620003af8383620002d1565b8060001904821115620003c657620003c662000299565b029392505050565b60006200029260ff8416836200031a565b60805160a05160c051612c4e62000463600039600081816105ce015281816116db015261184d015260008181610447015281816116220152818161169e015261178e0152600081816103520152818161079001528181610d8c01528181611034015281816112e1015281816118b101528181611a5b0152611b140152612c4e6000f3fe60806040526004361061017e5760003560e01c80630d35b41514610183578063111ecdad146101bb57806313137d65146101e8578063134d4f25146101fd578063156a0d0f1461022557806317442b701461024c5780631f5e13341461026e5780633400288b146102835780633b6f743b146102a357806352ae2879146102d05780635535d461146102e35780635a0dfe4d146103105780635e280f11146103405780636fc1b31e14610374578063715018a6146103945780637d25a05e146103a957806382413eac146103e4578063857749b0146104045780638da5cb5b14610420578063963efcaa146104355780639f68b96414610477578063b731ea0a1461048b578063b98bd070146104ab578063bb0b6a53146104cb578063bc70b354146104f8578063bd815db014610518578063c7c7f5b31461052b578063ca5eb5e11461054c578063d045a0dc1461056c578063d42438851461057f578063f2fde38b1461059f578063fc0c546a146105bf578063ff7bd03d146105f2575b600080fd5b34801561018f57600080fd5b506101a361019e366004611d77565b610612565b6040516101b293929190611e0a565b60405180910390f35b3480156101c757600080fd5b506004546101db906001600160a01b031681565b6040516101b29190611e98565b6101fb6101f6366004611f1b565b61078e565b005b34801561020957600080fd5b50610212600281565b60405161ffff90911681526020016101b2565b34801561023157600080fd5b506040805162b9270b60e21b815260016020820152016101b2565b34801561025857600080fd5b50604080516001815260026020820152016101b2565b34801561027a57600080fd5b50610212600181565b34801561028f57600080fd5b506101fb61029e366004611fd3565b610846565b3480156102af57600080fd5b506102c36102be36600461200b565b61085c565b6040516101b2919061205c565b3480156102dc57600080fd5b50306101db565b3480156102ef57600080fd5b506103036102fe36600461207c565b6108b9565b6040516101b291906120af565b34801561031c57600080fd5b5061033061032b366004611fd3565b61095e565b60405190151581526020016101b2565b34801561034c57600080fd5b506101db7f000000000000000000000000000000000000000000000000000000000000000081565b34801561038057600080fd5b506101fb61038f3660046120c2565b61097a565b3480156103a057600080fd5b506101fb6109d8565b3480156103b557600080fd5b506103cc6103c4366004611fd3565b600092915050565b6040516001600160401b0390911681526020016101b2565b3480156103f057600080fd5b506103306103ff3660046120df565b6109ec565b34801561041057600080fd5b50604051600681526020016101b2565b34801561042c57600080fd5b506101db610a01565b34801561044157600080fd5b506104697f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016101b2565b34801561048357600080fd5b506001610330565b34801561049757600080fd5b506002546101db906001600160a01b031681565b3480156104b757600080fd5b506101fb6104c6366004612189565b610a10565b3480156104d757600080fd5b506104696104e63660046121ca565b60016020526000908152604090205481565b34801561050457600080fd5b506103036105133660046121e5565b610a2a565b6101fb610526366004612189565b610bd2565b61053e610539366004612245565b610d45565b6040516101b29291906122b2565b34801561055857600080fd5b506101fb6105673660046120c2565b610d6d565b6101fb61057a366004611f1b565b610df6565b34801561058b57600080fd5b506101fb61059a3660046120c2565b610e25565b3480156105ab57600080fd5b506101fb6105ba3660046120c2565b610e78565b3480156105cb57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006101db565b3480156105fe57600080fd5b5061033061060d3660046122ee565b610ef1565b60408051808201909152600080825260208201526060610630611d21565b600080306001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610671573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610695919061230a565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f69190612327565b6040805180820182528481526020808201849052825160008082529181019093529097509192509061074b565b6040805180820190915260008152606060208201528152602001906001900390816107235790505b509350600080610770604089013560608a013561076b60208c018c6121ca565b610f27565b60408051808201909152918252602082015296989597505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146107e257336040516391ac5e4f60e01b81526004016107d99190611e98565b60405180910390fd5b602087018035906107fc906107f7908a6121ca565b610f63565b1461082e5761080e60208801886121ca565b876020013560405163309afaf360e21b81526004016107d9929190612356565b61083d87878787878787610f9f565b50505050505050565b61084e6110ff565b610858828261115e565b5050565b610864611d21565b60006108806040850135606086013561076b60208801886121ca565b91505060008061089086846111b4565b90925090506108ad6108a560208801886121ca565b8383886112d7565b93505050505b92915050565b6003602090815260009283526040808420909152908252902080546108dd9061236c565b80601f01602080910402602001604051908101604052809291908181526020018280546109099061236c565b80156109565780601f1061092b57610100808354040283529160200191610956565b820191906000526020600020905b81548152906001019060200180831161093957829003601f168201915b505050505081565b63ffffffff919091166000908152600160205260409020541490565b6109826110ff565b600480546001600160a01b0319166001600160a01b0383161790556040517ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906109cd908390611e98565b60405180910390a150565b6109e06110ff565b6109ea60006113ac565b565b6001600160a01b03811630145b949350505050565b6000546001600160a01b031690565b610a186110ff565b610858610a258284612441565b6113fc565b63ffffffff8416600090815260036020908152604080832061ffff87168452909152812080546060929190610a5e9061236c565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8a9061236c565b8015610ad75780601f10610aac57610100808354040283529160200191610ad7565b820191906000526020600020905b815481529060010190602001808311610aba57829003601f168201915b505050505090508051600003610b275783838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509294506109f99350505050565b6000839003610b375790506109f9565b60028310610bb557610b7e84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061150392505050565b80610b8c8460028188612556565b604051602001610b9e93929190612580565b6040516020818303038152906040529150506109f9565b8383604051639a6d49cd60e01b81526004016107d99291906125d1565b60005b81811015610cc45736838383818110610bf057610bf06125e5565b9050602002810190610c0291906125fb565b9050610c1e610c1460208301836121ca565b602083013561095e565b610c285750610cbc565b3063d045a0dc60c08301358360a0810135610c4761010083018361261c565b610c58610100890160e08a016120c2565b610c666101208a018a61261c565b6040518963ffffffff1660e01b8152600401610c889796959493929190612677565b6000604051808303818588803b158015610ca157600080fd5b505af1158015610cb5573d6000803e3d6000fd5b5050505050505b600101610bd5565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa158015610d03573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d2b91908101906126fd565b604051638351eea760e01b81526004016107d991906120af565b610d4d611d3b565b610d55611d21565b610d6085858561152f565b915091505b935093915050565b610d756110ff565b60405163ca5eb5e160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190610dc1908490600401611e98565b600060405180830381600087803b158015610ddb57600080fd5b505af1158015610def573d6000803e3d6000fd5b5050505050565b333014610e165760405163029a949d60e31b815260040160405180910390fd5b61083d8787878787878761082e565b610e2d6110ff565b600280546001600160a01b0319166001600160a01b0383161790556040517fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c2427760906109cd908390611e98565b610e806110ff565b6001600160a01b038116610ee55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107d9565b610eee816113ac565b50565b6000602082018035906001908390610f0990866121ca565b63ffffffff1681526020810191909152604001600020541492915050565b600080610f338561161e565b915081905083811015610d65576040516371c4efed60e01b815260048101829052602481018590526044016107d9565b63ffffffff8116600090815260016020526040812054806108b35760405163f6ff4fb760e01b815263ffffffff841660048201526024016107d9565b6000610fb1610fae8787611655565b90565b90506000610fdd82610fcb610fc68a8a611674565b611697565b610fd860208d018d6121ca565b6116cc565b905060288611156110a457600061101a610ffd60608c0160408d0161276a565b61100a60208d018d6121ca565b846110158c8c61170a565b611755565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906110709086908d906000908790600401612787565b600060405180830381600087803b15801561108a57600080fd5b505af115801561109e573d6000803e3d6000fd5b50505050505b6001600160a01b038216887fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c6110dd60208d018d6121ca565b846040516110ec929190612356565b60405180910390a3505050505050505050565b33611108610a01565b6001600160a01b0316146109ea5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107d9565b63ffffffff821660009081526001602052604090819020829055517f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b906111a89084908490612356565b60405180910390a15050565b606080600061121185602001356111ca86611787565b6111d760a089018961261c565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506117b392505050565b9093509050600081611224576001611227565b60025b905061124761123960208801886121ca565b8261051360808a018a61261c565b6004549093506001600160a01b031680156112cd5760405163043a78eb60e01b81526001600160a01b0382169063043a78eb9061128a90889088906004016127c2565b602060405180830381865afa1580156112a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112cb91906127e7565b505b5050509250929050565b6112df611d21565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff16815260200161132e89610f63565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611363929190612804565b6040805180830381865afa15801561137f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a391906128ad565b95945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60005b81518110156114d35761142e82828151811061141d5761141d6125e5565b602002602001015160400151611503565b818181518110611440576114406125e5565b60200260200101516040015160036000848481518110611462576114626125e5565b60200260200101516000015163ffffffff1663ffffffff168152602001908152602001600020600084848151811061149c5761149c6125e5565b60200260200101516020015161ffff1661ffff16815260200190815260200160002090816114ca9190612919565b506001016113ff565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b674816040516109cd91906129d8565b600281015161ffff81166003146108585781604051639a6d49cd60e01b81526004016107d991906120af565b611537611d3b565b61153f611d21565b60008061156233604089013560608a013561155d60208c018c6121ca565b61182d565b9150915060008061157389846111b4565b909250905061159f61158860208b018b6121ca565b8383611599368d90038d018d612a63565b8b61187e565b60408051808201909152858152602080820186905282519298509096503391907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a906115ed908d018d6121ca565b6040805163ffffffff909216825260208201899052810187905260600160405180910390a350505050935093915050565b60007f000000000000000000000000000000000000000000000000000000000000000061164b8184612a95565b6108b39190612ab7565b60006116646020828486612556565b61166d91612adc565b9392505050565b6000611684602860208486612556565b61168d91612afa565b60c01c9392505050565b60006108b37f00000000000000000000000000000000000000000000000000000000000000006001600160401b038416612ab7565b60006117026001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168585611989565b509092915050565b60606117198260288186612556565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929695505050505050565b60608484848460405160200161176e9493929190612b2a565b6040516020818303038152906040529050949350505050565b60006108b37f000000000000000000000000000000000000000000000000000000000000000083612a95565b80516060901515806117fc5784846040516020016117e892919091825260c01b6001600160c01b031916602082015260280190565b604051602081830303815290604052611823565b848433856040516020016118139493929190612b7c565b6040516020818303038152906040525b9150935093915050565b60008061183b858585610f27565b90925090506118756001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168730856119f1565b94509492505050565b611886611d3b565b60006118958460000151611a2f565b6020850151909150156118af576118af8460200151611a57565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff1681526020016118ff8c610f63565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b815260040161193b929190612804565b60806040518083038185885af1158015611959573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061197e9190612bbc565b979650505050505050565b6040516001600160a01b0383166024820152604481018290526119ec90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611b39565b505050565b6040516001600160a01b0380851660248301528316604482015260648101829052611a299085906323b872dd60e01b906084016119b5565b50505050565b6000813414611a53576040516304fb820960e51b81523460048201526024016107d9565b5090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ab7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611adb919061230a565b90506001600160a01b038116611b04576040516329b99a9560e11b815260040160405180910390fd5b6108586001600160a01b038216337f0000000000000000000000000000000000000000000000000000000000000000856119f1565b6000611b8e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611c0e9092919063ffffffff16565b9050805160001480611baf575080806020019051810190611baf91906127e7565b6119ec5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016107d9565b60606109f9848460008585600080866001600160a01b03168587604051611c359190612c06565b60006040518083038185875af1925050503d8060008114611c72576040519150601f19603f3d011682016040523d82523d6000602084013e611c77565b606091505b509150915061197e8783838760608315611cf2578251600003611ceb576001600160a01b0385163b611ceb5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016107d9565b50816109f9565b6109f98383815115611d075781518083602001fd5b8060405162461bcd60e51b81526004016107d991906120af565b604051806040016040528060008152602001600081525090565b6040805160608101825260008082526020820152908101611d5a611d21565b905290565b600060e08284031215611d7157600080fd5b50919050565b600060208284031215611d8957600080fd5b81356001600160401b03811115611d9f57600080fd5b6109f984828501611d5f565b80518252602090810151910152565b60005b83811015611dd5578181015183820152602001611dbd565b50506000910152565b60008151808452611df6816020860160208601611dba565b601f01601f19169290920160200192915050565b600060a08201611e1a8387611dab565b604060a0604085015281865180845260c08601915060c08160051b8701019350602080890160005b83811015611e815788870360bf19018552815180518852830151838801879052611e6e87890182611dde565b9750509382019390820190600101611e42565b505050505050809150506109f96060830184611dab565b6001600160a01b0391909116815260200190565b600060608284031215611d7157600080fd5b60008083601f840112611ed057600080fd5b5081356001600160401b03811115611ee757600080fd5b602083019150836020828501011115611eff57600080fd5b9250929050565b6001600160a01b0381168114610eee57600080fd5b600080600080600080600060e0888a031215611f3657600080fd5b611f408989611eac565b96506060880135955060808801356001600160401b0380821115611f6357600080fd5b611f6f8b838c01611ebe565b909750955060a08a01359150611f8482611f06565b90935060c08901359080821115611f9a57600080fd5b50611fa78a828b01611ebe565b989b979a50959850939692959293505050565b803563ffffffff81168114611fce57600080fd5b919050565b60008060408385031215611fe657600080fd5b611fef83611fba565b946020939093013593505050565b8015158114610eee57600080fd5b6000806040838503121561201e57600080fd5b82356001600160401b0381111561203457600080fd5b61204085828601611d5f565b925050602083013561205181611ffd565b809150509250929050565b604081016108b38284611dab565b803561ffff81168114611fce57600080fd5b6000806040838503121561208f57600080fd5b61209883611fba565b91506120a66020840161206a565b90509250929050565b60208152600061166d6020830184611dde565b6000602082840312156120d457600080fd5b813561166d81611f06565b60008060008060a085870312156120f557600080fd5b6120ff8686611eac565b935060608501356001600160401b0381111561211a57600080fd5b61212687828801611ebe565b909450925050608085013561213a81611f06565b939692955090935050565b60008083601f84011261215757600080fd5b5081356001600160401b0381111561216e57600080fd5b6020830191508360208260051b8501011115611eff57600080fd5b6000806020838503121561219c57600080fd5b82356001600160401b038111156121b257600080fd5b6121be85828601612145565b90969095509350505050565b6000602082840312156121dc57600080fd5b61166d82611fba565b600080600080606085870312156121fb57600080fd5b61220485611fba565b93506122126020860161206a565b925060408501356001600160401b0381111561222d57600080fd5b61223987828801611ebe565b95989497509550505050565b6000806000838503608081121561225b57600080fd5b84356001600160401b0381111561227157600080fd5b61227d87828801611d5f565b9450506040601f198201121561229257600080fd5b5060208401915060608401356122a781611f06565b809150509250925092565b825181526020808401516001600160401b03169082015260408084015160c08301916122e090840182611dab565b5061166d6080830184611dab565b60006060828403121561230057600080fd5b61166d8383611eac565b60006020828403121561231c57600080fd5b815161166d81611f06565b60006020828403121561233957600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b63ffffffff929092168252602082015260400190565b600181811c9082168061238057607f821691505b602082108103611d7157634e487b7160e01b600052602260045260246000fd5b604051606081016001600160401b03811182821017156123c2576123c2612340565b60405290565b604080519081016001600160401b03811182821017156123c2576123c2612340565b604051601f8201601f191681016001600160401b038111828210171561241257612412612340565b604052919050565b60006001600160401b0382111561243357612433612340565b50601f01601f191660200190565b60006001600160401b038084111561245b5761245b612340565b8360051b602061246c8183016123ea565b86815291850191818101903684111561248457600080fd5b865b8481101561254a5780358681111561249e5760008081fd5b880160603682900312156124b25760008081fd5b6124ba6123a0565b6124c382611fba565b81526124d086830161206a565b86820152604080830135898111156124e85760008081fd5b929092019136601f8401126124fd5760008081fd5b823561251061250b8261241a565b6123ea565b81815236898387010111156125255760008081fd5b818986018a830137600091810189019190915290820152845250918301918301612486565b50979650505050505050565b6000808585111561256657600080fd5b8386111561257357600080fd5b5050820193919092039150565b60008451612592818460208901611dba565b8201838582376000930192835250909392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6020815260006109f96020830184866125a8565b634e487b7160e01b600052603260045260246000fd5b6000823561013e1983360301811261261257600080fd5b9190910192915050565b6000808335601e1984360301811261263357600080fd5b8301803591506001600160401b0382111561264d57600080fd5b602001915036819003821315611eff57600080fd5b6001600160401b0381168114610eee57600080fd5b63ffffffff61268589611fba565b16815260208801356020820152600060408901356126a281612662565b6001600160401b031660408301526060820188905260e0608083018190526126cd90830187896125a8565b6001600160a01b03861660a084015282810360c08401526126ef8185876125a8565b9a9950505050505050505050565b60006020828403121561270f57600080fd5b81516001600160401b0381111561272557600080fd5b8201601f8101841361273657600080fd5b805161274461250b8261241a565b81815285602083850101111561275957600080fd5b6113a3826020830160208601611dba565b60006020828403121561277c57600080fd5b813561166d81612662565b60018060a01b038516815283602082015261ffff831660408201526080606082015260006127b86080830184611dde565b9695505050505050565b6040815260006127d56040830185611dde565b82810360208401526113a38185611dde565b6000602082840312156127f957600080fd5b815161166d81611ffd565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a0608084015261283a60e0840182611dde565b90506060850151603f198483030160a08501526128578282611dde565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b60006040828403121561288f57600080fd5b6128976123c8565b9050815181526020820151602082015292915050565b6000604082840312156128bf57600080fd5b61166d838361287d565b601f8211156119ec576000816000526020600020601f850160051c810160208610156128f25750805b601f850160051c820191505b81811015612911578281556001016128fe565b505050505050565b81516001600160401b0381111561293257612932612340565b61294681612940845461236c565b846128c9565b602080601f83116001811461297b57600084156129635750858301515b600019600386901b1c1916600185901b178555612911565b600085815260208120601f198616915b828110156129aa5788860151825594840194600190910190840161298b565b50858210156129c85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015612a5557888303603f190185528151805163ffffffff1684528781015161ffff16888501528601516060878501819052612a4181860183611dde565b968901969450505090860190600101612a01565b509098975050505050505050565b600060408284031215612a7557600080fd5b612a7d6123c8565b82358152602083013560208201528091505092915050565b600082612ab257634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176108b357634e487b7160e01b600052601160045260246000fd5b803560208310156108b357600019602084900360031b1b1692915050565b6001600160c01b03198135818116916008851015612b225780818660080360031b1b83161692505b505092915050565b60c085901b6001600160c01b031916815260e084901b6001600160e01b0319166008820152600c81018390528151600090612b6c81602c850160208701611dba565b91909101602c0195945050505050565b84815260018060c01b03198460c01b16602082015282602882015260008251612bac816048850160208701611dba565b9190910160480195945050505050565b600060808284031215612bce57600080fd5b612bd66123a0565b825181526020830151612be881612662565b6020820152612bfa846040850161287d565b60408201529392505050565b60008251612612818460208701611dba56fea264697066735822122077b209a3d35ca0afc6930ffea5ce398ff954b030179b0a7154449738ba7f236164736f6c63430008170033",
1262
+ "deployedBytecode": "0x60806040526004361061017e5760003560e01c80630d35b41514610183578063111ecdad146101bb57806313137d65146101e8578063134d4f25146101fd578063156a0d0f1461022557806317442b701461024c5780631f5e13341461026e5780633400288b146102835780633b6f743b146102a357806352ae2879146102d05780635535d461146102e35780635a0dfe4d146103105780635e280f11146103405780636fc1b31e14610374578063715018a6146103945780637d25a05e146103a957806382413eac146103e4578063857749b0146104045780638da5cb5b14610420578063963efcaa146104355780639f68b96414610477578063b731ea0a1461048b578063b98bd070146104ab578063bb0b6a53146104cb578063bc70b354146104f8578063bd815db014610518578063c7c7f5b31461052b578063ca5eb5e11461054c578063d045a0dc1461056c578063d42438851461057f578063f2fde38b1461059f578063fc0c546a146105bf578063ff7bd03d146105f2575b600080fd5b34801561018f57600080fd5b506101a361019e366004611d77565b610612565b6040516101b293929190611e0a565b60405180910390f35b3480156101c757600080fd5b506004546101db906001600160a01b031681565b6040516101b29190611e98565b6101fb6101f6366004611f1b565b61078e565b005b34801561020957600080fd5b50610212600281565b60405161ffff90911681526020016101b2565b34801561023157600080fd5b506040805162b9270b60e21b815260016020820152016101b2565b34801561025857600080fd5b50604080516001815260026020820152016101b2565b34801561027a57600080fd5b50610212600181565b34801561028f57600080fd5b506101fb61029e366004611fd3565b610846565b3480156102af57600080fd5b506102c36102be36600461200b565b61085c565b6040516101b2919061205c565b3480156102dc57600080fd5b50306101db565b3480156102ef57600080fd5b506103036102fe36600461207c565b6108b9565b6040516101b291906120af565b34801561031c57600080fd5b5061033061032b366004611fd3565b61095e565b60405190151581526020016101b2565b34801561034c57600080fd5b506101db7f000000000000000000000000000000000000000000000000000000000000000081565b34801561038057600080fd5b506101fb61038f3660046120c2565b61097a565b3480156103a057600080fd5b506101fb6109d8565b3480156103b557600080fd5b506103cc6103c4366004611fd3565b600092915050565b6040516001600160401b0390911681526020016101b2565b3480156103f057600080fd5b506103306103ff3660046120df565b6109ec565b34801561041057600080fd5b50604051600681526020016101b2565b34801561042c57600080fd5b506101db610a01565b34801561044157600080fd5b506104697f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016101b2565b34801561048357600080fd5b506001610330565b34801561049757600080fd5b506002546101db906001600160a01b031681565b3480156104b757600080fd5b506101fb6104c6366004612189565b610a10565b3480156104d757600080fd5b506104696104e63660046121ca565b60016020526000908152604090205481565b34801561050457600080fd5b506103036105133660046121e5565b610a2a565b6101fb610526366004612189565b610bd2565b61053e610539366004612245565b610d45565b6040516101b29291906122b2565b34801561055857600080fd5b506101fb6105673660046120c2565b610d6d565b6101fb61057a366004611f1b565b610df6565b34801561058b57600080fd5b506101fb61059a3660046120c2565b610e25565b3480156105ab57600080fd5b506101fb6105ba3660046120c2565b610e78565b3480156105cb57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006101db565b3480156105fe57600080fd5b5061033061060d3660046122ee565b610ef1565b60408051808201909152600080825260208201526060610630611d21565b600080306001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610671573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610695919061230a565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f69190612327565b6040805180820182528481526020808201849052825160008082529181019093529097509192509061074b565b6040805180820190915260008152606060208201528152602001906001900390816107235790505b509350600080610770604089013560608a013561076b60208c018c6121ca565b610f27565b60408051808201909152918252602082015296989597505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146107e257336040516391ac5e4f60e01b81526004016107d99190611e98565b60405180910390fd5b602087018035906107fc906107f7908a6121ca565b610f63565b1461082e5761080e60208801886121ca565b876020013560405163309afaf360e21b81526004016107d9929190612356565b61083d87878787878787610f9f565b50505050505050565b61084e6110ff565b610858828261115e565b5050565b610864611d21565b60006108806040850135606086013561076b60208801886121ca565b91505060008061089086846111b4565b90925090506108ad6108a560208801886121ca565b8383886112d7565b93505050505b92915050565b6003602090815260009283526040808420909152908252902080546108dd9061236c565b80601f01602080910402602001604051908101604052809291908181526020018280546109099061236c565b80156109565780601f1061092b57610100808354040283529160200191610956565b820191906000526020600020905b81548152906001019060200180831161093957829003601f168201915b505050505081565b63ffffffff919091166000908152600160205260409020541490565b6109826110ff565b600480546001600160a01b0319166001600160a01b0383161790556040517ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906109cd908390611e98565b60405180910390a150565b6109e06110ff565b6109ea60006113ac565b565b6001600160a01b03811630145b949350505050565b6000546001600160a01b031690565b610a186110ff565b610858610a258284612441565b6113fc565b63ffffffff8416600090815260036020908152604080832061ffff87168452909152812080546060929190610a5e9061236c565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8a9061236c565b8015610ad75780601f10610aac57610100808354040283529160200191610ad7565b820191906000526020600020905b815481529060010190602001808311610aba57829003601f168201915b505050505090508051600003610b275783838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509294506109f99350505050565b6000839003610b375790506109f9565b60028310610bb557610b7e84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061150392505050565b80610b8c8460028188612556565b604051602001610b9e93929190612580565b6040516020818303038152906040529150506109f9565b8383604051639a6d49cd60e01b81526004016107d99291906125d1565b60005b81811015610cc45736838383818110610bf057610bf06125e5565b9050602002810190610c0291906125fb565b9050610c1e610c1460208301836121ca565b602083013561095e565b610c285750610cbc565b3063d045a0dc60c08301358360a0810135610c4761010083018361261c565b610c58610100890160e08a016120c2565b610c666101208a018a61261c565b6040518963ffffffff1660e01b8152600401610c889796959493929190612677565b6000604051808303818588803b158015610ca157600080fd5b505af1158015610cb5573d6000803e3d6000fd5b5050505050505b600101610bd5565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa158015610d03573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d2b91908101906126fd565b604051638351eea760e01b81526004016107d991906120af565b610d4d611d3b565b610d55611d21565b610d6085858561152f565b915091505b935093915050565b610d756110ff565b60405163ca5eb5e160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190610dc1908490600401611e98565b600060405180830381600087803b158015610ddb57600080fd5b505af1158015610def573d6000803e3d6000fd5b5050505050565b333014610e165760405163029a949d60e31b815260040160405180910390fd5b61083d8787878787878761082e565b610e2d6110ff565b600280546001600160a01b0319166001600160a01b0383161790556040517fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c2427760906109cd908390611e98565b610e806110ff565b6001600160a01b038116610ee55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107d9565b610eee816113ac565b50565b6000602082018035906001908390610f0990866121ca565b63ffffffff1681526020810191909152604001600020541492915050565b600080610f338561161e565b915081905083811015610d65576040516371c4efed60e01b815260048101829052602481018590526044016107d9565b63ffffffff8116600090815260016020526040812054806108b35760405163f6ff4fb760e01b815263ffffffff841660048201526024016107d9565b6000610fb1610fae8787611655565b90565b90506000610fdd82610fcb610fc68a8a611674565b611697565b610fd860208d018d6121ca565b6116cc565b905060288611156110a457600061101a610ffd60608c0160408d0161276a565b61100a60208d018d6121ca565b846110158c8c61170a565b611755565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906110709086908d906000908790600401612787565b600060405180830381600087803b15801561108a57600080fd5b505af115801561109e573d6000803e3d6000fd5b50505050505b6001600160a01b038216887fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c6110dd60208d018d6121ca565b846040516110ec929190612356565b60405180910390a3505050505050505050565b33611108610a01565b6001600160a01b0316146109ea5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107d9565b63ffffffff821660009081526001602052604090819020829055517f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b906111a89084908490612356565b60405180910390a15050565b606080600061121185602001356111ca86611787565b6111d760a089018961261c565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506117b392505050565b9093509050600081611224576001611227565b60025b905061124761123960208801886121ca565b8261051360808a018a61261c565b6004549093506001600160a01b031680156112cd5760405163043a78eb60e01b81526001600160a01b0382169063043a78eb9061128a90889088906004016127c2565b602060405180830381865afa1580156112a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112cb91906127e7565b505b5050509250929050565b6112df611d21565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff16815260200161132e89610f63565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611363929190612804565b6040805180830381865afa15801561137f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a391906128ad565b95945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60005b81518110156114d35761142e82828151811061141d5761141d6125e5565b602002602001015160400151611503565b818181518110611440576114406125e5565b60200260200101516040015160036000848481518110611462576114626125e5565b60200260200101516000015163ffffffff1663ffffffff168152602001908152602001600020600084848151811061149c5761149c6125e5565b60200260200101516020015161ffff1661ffff16815260200190815260200160002090816114ca9190612919565b506001016113ff565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b674816040516109cd91906129d8565b600281015161ffff81166003146108585781604051639a6d49cd60e01b81526004016107d991906120af565b611537611d3b565b61153f611d21565b60008061156233604089013560608a013561155d60208c018c6121ca565b61182d565b9150915060008061157389846111b4565b909250905061159f61158860208b018b6121ca565b8383611599368d90038d018d612a63565b8b61187e565b60408051808201909152858152602080820186905282519298509096503391907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a906115ed908d018d6121ca565b6040805163ffffffff909216825260208201899052810187905260600160405180910390a350505050935093915050565b60007f000000000000000000000000000000000000000000000000000000000000000061164b8184612a95565b6108b39190612ab7565b60006116646020828486612556565b61166d91612adc565b9392505050565b6000611684602860208486612556565b61168d91612afa565b60c01c9392505050565b60006108b37f00000000000000000000000000000000000000000000000000000000000000006001600160401b038416612ab7565b60006117026001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168585611989565b509092915050565b60606117198260288186612556565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929695505050505050565b60608484848460405160200161176e9493929190612b2a565b6040516020818303038152906040529050949350505050565b60006108b37f000000000000000000000000000000000000000000000000000000000000000083612a95565b80516060901515806117fc5784846040516020016117e892919091825260c01b6001600160c01b031916602082015260280190565b604051602081830303815290604052611823565b848433856040516020016118139493929190612b7c565b6040516020818303038152906040525b9150935093915050565b60008061183b858585610f27565b90925090506118756001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168730856119f1565b94509492505050565b611886611d3b565b60006118958460000151611a2f565b6020850151909150156118af576118af8460200151611a57565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff1681526020016118ff8c610f63565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b815260040161193b929190612804565b60806040518083038185885af1158015611959573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061197e9190612bbc565b979650505050505050565b6040516001600160a01b0383166024820152604481018290526119ec90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611b39565b505050565b6040516001600160a01b0380851660248301528316604482015260648101829052611a299085906323b872dd60e01b906084016119b5565b50505050565b6000813414611a53576040516304fb820960e51b81523460048201526024016107d9565b5090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ab7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611adb919061230a565b90506001600160a01b038116611b04576040516329b99a9560e11b815260040160405180910390fd5b6108586001600160a01b038216337f0000000000000000000000000000000000000000000000000000000000000000856119f1565b6000611b8e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611c0e9092919063ffffffff16565b9050805160001480611baf575080806020019051810190611baf91906127e7565b6119ec5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016107d9565b60606109f9848460008585600080866001600160a01b03168587604051611c359190612c06565b60006040518083038185875af1925050503d8060008114611c72576040519150601f19603f3d011682016040523d82523d6000602084013e611c77565b606091505b509150915061197e8783838760608315611cf2578251600003611ceb576001600160a01b0385163b611ceb5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016107d9565b50816109f9565b6109f98383815115611d075781518083602001fd5b8060405162461bcd60e51b81526004016107d991906120af565b604051806040016040528060008152602001600081525090565b6040805160608101825260008082526020820152908101611d5a611d21565b905290565b600060e08284031215611d7157600080fd5b50919050565b600060208284031215611d8957600080fd5b81356001600160401b03811115611d9f57600080fd5b6109f984828501611d5f565b80518252602090810151910152565b60005b83811015611dd5578181015183820152602001611dbd565b50506000910152565b60008151808452611df6816020860160208601611dba565b601f01601f19169290920160200192915050565b600060a08201611e1a8387611dab565b604060a0604085015281865180845260c08601915060c08160051b8701019350602080890160005b83811015611e815788870360bf19018552815180518852830151838801879052611e6e87890182611dde565b9750509382019390820190600101611e42565b505050505050809150506109f96060830184611dab565b6001600160a01b0391909116815260200190565b600060608284031215611d7157600080fd5b60008083601f840112611ed057600080fd5b5081356001600160401b03811115611ee757600080fd5b602083019150836020828501011115611eff57600080fd5b9250929050565b6001600160a01b0381168114610eee57600080fd5b600080600080600080600060e0888a031215611f3657600080fd5b611f408989611eac565b96506060880135955060808801356001600160401b0380821115611f6357600080fd5b611f6f8b838c01611ebe565b909750955060a08a01359150611f8482611f06565b90935060c08901359080821115611f9a57600080fd5b50611fa78a828b01611ebe565b989b979a50959850939692959293505050565b803563ffffffff81168114611fce57600080fd5b919050565b60008060408385031215611fe657600080fd5b611fef83611fba565b946020939093013593505050565b8015158114610eee57600080fd5b6000806040838503121561201e57600080fd5b82356001600160401b0381111561203457600080fd5b61204085828601611d5f565b925050602083013561205181611ffd565b809150509250929050565b604081016108b38284611dab565b803561ffff81168114611fce57600080fd5b6000806040838503121561208f57600080fd5b61209883611fba565b91506120a66020840161206a565b90509250929050565b60208152600061166d6020830184611dde565b6000602082840312156120d457600080fd5b813561166d81611f06565b60008060008060a085870312156120f557600080fd5b6120ff8686611eac565b935060608501356001600160401b0381111561211a57600080fd5b61212687828801611ebe565b909450925050608085013561213a81611f06565b939692955090935050565b60008083601f84011261215757600080fd5b5081356001600160401b0381111561216e57600080fd5b6020830191508360208260051b8501011115611eff57600080fd5b6000806020838503121561219c57600080fd5b82356001600160401b038111156121b257600080fd5b6121be85828601612145565b90969095509350505050565b6000602082840312156121dc57600080fd5b61166d82611fba565b600080600080606085870312156121fb57600080fd5b61220485611fba565b93506122126020860161206a565b925060408501356001600160401b0381111561222d57600080fd5b61223987828801611ebe565b95989497509550505050565b6000806000838503608081121561225b57600080fd5b84356001600160401b0381111561227157600080fd5b61227d87828801611d5f565b9450506040601f198201121561229257600080fd5b5060208401915060608401356122a781611f06565b809150509250925092565b825181526020808401516001600160401b03169082015260408084015160c08301916122e090840182611dab565b5061166d6080830184611dab565b60006060828403121561230057600080fd5b61166d8383611eac565b60006020828403121561231c57600080fd5b815161166d81611f06565b60006020828403121561233957600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b63ffffffff929092168252602082015260400190565b600181811c9082168061238057607f821691505b602082108103611d7157634e487b7160e01b600052602260045260246000fd5b604051606081016001600160401b03811182821017156123c2576123c2612340565b60405290565b604080519081016001600160401b03811182821017156123c2576123c2612340565b604051601f8201601f191681016001600160401b038111828210171561241257612412612340565b604052919050565b60006001600160401b0382111561243357612433612340565b50601f01601f191660200190565b60006001600160401b038084111561245b5761245b612340565b8360051b602061246c8183016123ea565b86815291850191818101903684111561248457600080fd5b865b8481101561254a5780358681111561249e5760008081fd5b880160603682900312156124b25760008081fd5b6124ba6123a0565b6124c382611fba565b81526124d086830161206a565b86820152604080830135898111156124e85760008081fd5b929092019136601f8401126124fd5760008081fd5b823561251061250b8261241a565b6123ea565b81815236898387010111156125255760008081fd5b818986018a830137600091810189019190915290820152845250918301918301612486565b50979650505050505050565b6000808585111561256657600080fd5b8386111561257357600080fd5b5050820193919092039150565b60008451612592818460208901611dba565b8201838582376000930192835250909392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6020815260006109f96020830184866125a8565b634e487b7160e01b600052603260045260246000fd5b6000823561013e1983360301811261261257600080fd5b9190910192915050565b6000808335601e1984360301811261263357600080fd5b8301803591506001600160401b0382111561264d57600080fd5b602001915036819003821315611eff57600080fd5b6001600160401b0381168114610eee57600080fd5b63ffffffff61268589611fba565b16815260208801356020820152600060408901356126a281612662565b6001600160401b031660408301526060820188905260e0608083018190526126cd90830187896125a8565b6001600160a01b03861660a084015282810360c08401526126ef8185876125a8565b9a9950505050505050505050565b60006020828403121561270f57600080fd5b81516001600160401b0381111561272557600080fd5b8201601f8101841361273657600080fd5b805161274461250b8261241a565b81815285602083850101111561275957600080fd5b6113a3826020830160208601611dba565b60006020828403121561277c57600080fd5b813561166d81612662565b60018060a01b038516815283602082015261ffff831660408201526080606082015260006127b86080830184611dde565b9695505050505050565b6040815260006127d56040830185611dde565b82810360208401526113a38185611dde565b6000602082840312156127f957600080fd5b815161166d81611ffd565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a0608084015261283a60e0840182611dde565b90506060850151603f198483030160a08501526128578282611dde565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b60006040828403121561288f57600080fd5b6128976123c8565b9050815181526020820151602082015292915050565b6000604082840312156128bf57600080fd5b61166d838361287d565b601f8211156119ec576000816000526020600020601f850160051c810160208610156128f25750805b601f850160051c820191505b81811015612911578281556001016128fe565b505050505050565b81516001600160401b0381111561293257612932612340565b61294681612940845461236c565b846128c9565b602080601f83116001811461297b57600084156129635750858301515b600019600386901b1c1916600185901b178555612911565b600085815260208120601f198616915b828110156129aa5788860151825594840194600190910190840161298b565b50858210156129c85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015612a5557888303603f190185528151805163ffffffff1684528781015161ffff16888501528601516060878501819052612a4181860183611dde565b968901969450505090860190600101612a01565b509098975050505050505050565b600060408284031215612a7557600080fd5b612a7d6123c8565b82358152602083013560208201528091505092915050565b600082612ab257634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176108b357634e487b7160e01b600052601160045260246000fd5b803560208310156108b357600019602084900360031b1b1692915050565b6001600160c01b03198135818116916008851015612b225780818660080360031b1b83161692505b505092915050565b60c085901b6001600160c01b031916815260e084901b6001600160e01b0319166008820152600c81018390528151600090612b6c81602c850160208701611dba565b91909101602c0195945050505050565b84815260018060c01b03198460c01b16602082015282602882015260008251612bac816048850160208701611dba565b9190910160480195945050505050565b600060808284031215612bce57600080fd5b612bd66123a0565b825181526020830151612be881612662565b6020820152612bfa846040850161287d565b60408201529392505050565b60008251612612818460208701611dba56fea264697066735822122077b209a3d35ca0afc6930ffea5ce398ff954b030179b0a7154449738ba7f236164736f6c63430008170033",
1263
+ "linkReferences": {},
1264
+ "deployedLinkReferences": {}
1265
+ }