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