@ensuro/core 2.0.0-beta1 → 2.0.0-beta11
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.
- package/README.md +36 -14
- package/build/contracts/AccessManager.sol/AccessManager.json +564 -0
- package/build/contracts/ERC4626AssetManager.sol/ERC4626AssetManager.json +238 -0
- package/build/contracts/EToken.sol/EToken.json +147 -46
- package/build/contracts/LPManualWhitelist.sol/LPManualWhitelist.json +23 -4
- package/build/contracts/LiquidityThresholdAssetManager.sol/LiquidityThresholdAssetManager.json +222 -0
- package/build/contracts/Policy.sol/Policy.json +2 -2
- package/build/contracts/PolicyPool.sol/PolicyPool.json +437 -61
- package/build/contracts/PolicyPoolComponent.sol/PolicyPoolComponent.json +21 -2
- package/build/contracts/PremiumsAccount.sol/PremiumsAccount.json +142 -16
- package/build/contracts/Reserve.sol/Reserve.json +85 -8
- package/build/contracts/RiskModule.sol/RiskModule.json +21 -2
- package/build/contracts/SignedQuoteRiskModule.sol/SignedQuoteRiskModule.json +979 -0
- package/build/contracts/TimeScaled.sol/TimeScaled.json +3 -17
- package/build/contracts/TrustfulRiskModule.sol/TrustfulRiskModule.json +24 -5
- package/build/contracts/{WadRayMath.sol → dependencies/WadRayMath.sol}/WadRayMath.json +3 -3
- package/build/contracts/interfaces/{IPolicyPoolConfig.sol/IPolicyPoolConfig.json → IAccessManager.sol/IAccessManager.json} +77 -59
- package/build/contracts/interfaces/IAssetManager.sol/IAssetManager.json +128 -0
- package/build/contracts/interfaces/IEToken.sol/IEToken.json +13 -0
- package/build/contracts/interfaces/IPolicyPool.sol/IPolicyPool.json +40 -16
- package/build/contracts/interfaces/IPolicyPoolComponent.sol/IPolicyPoolComponent.json +19 -0
- package/build/contracts/interfaces/IPremiumsAccount.sol/IPremiumsAccount.json +13 -0
- package/build/contracts/mocks/FixedRateVault.sol/FixedRateVault.json +736 -0
- package/build/contracts/mocks/ForwardProxy.sol/ForwardProxy.json +2 -2
- package/build/contracts/mocks/InterfaceIdCalculator.sol/InterfaceIdCalculator.json +180 -0
- package/build/contracts/mocks/PolicyHolderMock.sol/PolicyHolderMock.json +28 -2
- package/build/contracts/mocks/PolicyPoolComponentMock.sol/PolicyPoolComponentMock.json +21 -2
- package/build/contracts/mocks/PolicyPoolMock.sol/PolicyPoolMock.json +118 -19
- package/build/contracts/mocks/PolicyPoolMock.sol/PolicyPoolMockForward.json +6 -6
- package/build/contracts/mocks/RiskModuleMock.sol/RiskModuleMock.json +783 -0
- package/build/contracts/mocks/TestCurrency.sol/TestCurrency.json +2 -2
- package/build/contracts/mocks/TestNFT.sol/TestNFT.json +2 -2
- package/contracts/AccessManager.sol +132 -0
- package/contracts/ERC4626AssetManager.sol +55 -0
- package/contracts/EToken.sol +208 -102
- package/contracts/LPManualWhitelist.sol +19 -3
- package/contracts/LiquidityThresholdAssetManager.sol +175 -0
- package/contracts/Policy.sol +5 -3
- package/contracts/PolicyPool.sol +381 -116
- package/contracts/PolicyPoolComponent.sol +61 -44
- package/contracts/PremiumsAccount.sol +324 -86
- package/contracts/Reserve.sol +199 -4
- package/contracts/RiskModule.sol +62 -31
- package/contracts/SignedQuoteRiskModule.sol +248 -0
- package/contracts/TimeScaled.sol +19 -15
- package/contracts/TrustfulRiskModule.sol +69 -2
- package/contracts/dependencies/WadRayMath.sol +126 -0
- package/contracts/interfaces/IAccessManager.sol +148 -0
- package/contracts/interfaces/IAssetManager.sol +89 -0
- package/contracts/interfaces/IEToken.sol +25 -2
- package/contracts/interfaces/ILPWhitelist.sol +17 -0
- package/contracts/interfaces/IPolicyPool.sol +21 -14
- package/contracts/interfaces/IPolicyPoolComponent.sol +5 -1
- package/contracts/interfaces/IPremiumsAccount.sol +5 -0
- package/contracts/interfaces/IRiskModule.sol +67 -4
- package/contracts/mocks/FixedRateVault.sol +85 -0
- package/contracts/mocks/InterfaceIdCalculator.sol +32 -0
- package/contracts/mocks/PolicyHolderMock.sol +21 -0
- package/contracts/mocks/PolicyPoolComponentMock.sol +10 -0
- package/contracts/mocks/PolicyPoolMock.sol +41 -15
- package/contracts/mocks/RiskModuleMock.sol +75 -0
- package/js/deploy.js +704 -0
- package/js/test-utils.js +339 -159
- package/package.json +1 -1
- package/build/contracts/FlightDelayRiskModule.sol/FlightDelayRiskModule.json +0 -890
- package/build/contracts/PolicyNFT.sol/PolicyNFT.json +0 -583
- package/build/contracts/PolicyPoolConfig.sol/PolicyPoolConfig.json +0 -691
- package/build/contracts/dependencies/ChainlinkClientUpgradeable.sol/ChainlinkClientUpgradeable.json +0 -63
- package/build/contracts/interfaces/IPolicyNFT.sol/IPolicyNFT.json +0 -321
- package/build/contracts/mocks/LinkTokenMock.sol/LinkTokenMock.json +0 -370
- package/build/contracts/mocks/TestCurrencyUUPS.sol/TestCurrencyUUPS.json +0 -353
- package/build/contracts/upgraded/IPolicyNFTv1.sol/IPolicyNFTv1.json +0 -322
- package/build/contracts/upgraded/PolicyNFTv1.sol/PolicyNFTv1.json +0 -584
- package/build/contracts/upgraded/PolicyNFTv1.sol/PolicyNFTv1_Upgrade.json +0 -615
- package/contracts/FlightDelayRiskModule.sol +0 -217
- package/contracts/PolicyNFT.sol +0 -96
- package/contracts/PolicyPoolConfig.sol +0 -204
- package/contracts/WadRayMath.sol +0 -135
- package/contracts/dependencies/ChainlinkClientUpgradeable.sol +0 -371
- package/contracts/interfaces/IPolicyNFT.sol +0 -15
- package/contracts/interfaces/IPolicyPoolConfig.sol +0 -96
- package/contracts/mocks/LinkTokenMock.sol +0 -30
- package/contracts/upgraded/IPolicyNFTv1.sol +0 -15
- package/contracts/upgraded/PolicyNFTv1.sol +0 -126
|
@@ -6,13 +6,8 @@
|
|
|
6
6
|
{
|
|
7
7
|
"inputs": [
|
|
8
8
|
{
|
|
9
|
-
"internalType": "contract
|
|
10
|
-
"name": "
|
|
11
|
-
"type": "address"
|
|
12
|
-
},
|
|
13
|
-
{
|
|
14
|
-
"internalType": "contract IPolicyNFT",
|
|
15
|
-
"name": "policyNFT_",
|
|
9
|
+
"internalType": "contract IAccessManager",
|
|
10
|
+
"name": "access_",
|
|
16
11
|
"type": "address"
|
|
17
12
|
},
|
|
18
13
|
{
|
|
@@ -43,6 +38,56 @@
|
|
|
43
38
|
"name": "AdminChanged",
|
|
44
39
|
"type": "event"
|
|
45
40
|
},
|
|
41
|
+
{
|
|
42
|
+
"anonymous": false,
|
|
43
|
+
"inputs": [
|
|
44
|
+
{
|
|
45
|
+
"indexed": true,
|
|
46
|
+
"internalType": "address",
|
|
47
|
+
"name": "owner",
|
|
48
|
+
"type": "address"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"indexed": true,
|
|
52
|
+
"internalType": "address",
|
|
53
|
+
"name": "approved",
|
|
54
|
+
"type": "address"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"indexed": true,
|
|
58
|
+
"internalType": "uint256",
|
|
59
|
+
"name": "tokenId",
|
|
60
|
+
"type": "uint256"
|
|
61
|
+
}
|
|
62
|
+
],
|
|
63
|
+
"name": "Approval",
|
|
64
|
+
"type": "event"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"anonymous": false,
|
|
68
|
+
"inputs": [
|
|
69
|
+
{
|
|
70
|
+
"indexed": true,
|
|
71
|
+
"internalType": "address",
|
|
72
|
+
"name": "owner",
|
|
73
|
+
"type": "address"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"indexed": true,
|
|
77
|
+
"internalType": "address",
|
|
78
|
+
"name": "operator",
|
|
79
|
+
"type": "address"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"indexed": false,
|
|
83
|
+
"internalType": "bool",
|
|
84
|
+
"name": "approved",
|
|
85
|
+
"type": "bool"
|
|
86
|
+
}
|
|
87
|
+
],
|
|
88
|
+
"name": "ApprovalForAll",
|
|
89
|
+
"type": "event"
|
|
90
|
+
},
|
|
46
91
|
{
|
|
47
92
|
"anonymous": false,
|
|
48
93
|
"inputs": [
|
|
@@ -61,18 +106,43 @@
|
|
|
61
106
|
"inputs": [
|
|
62
107
|
{
|
|
63
108
|
"indexed": true,
|
|
64
|
-
"internalType": "
|
|
65
|
-
"name": "
|
|
109
|
+
"internalType": "enum IAccessManager.GovernanceActions",
|
|
110
|
+
"name": "action",
|
|
111
|
+
"type": "uint8"
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"indexed": false,
|
|
115
|
+
"internalType": "address",
|
|
116
|
+
"name": "value",
|
|
117
|
+
"type": "address"
|
|
118
|
+
}
|
|
119
|
+
],
|
|
120
|
+
"name": "ComponentChanged",
|
|
121
|
+
"type": "event"
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"anonymous": false,
|
|
125
|
+
"inputs": [
|
|
126
|
+
{
|
|
127
|
+
"indexed": true,
|
|
128
|
+
"internalType": "contract IPolicyPoolComponent",
|
|
129
|
+
"name": "component",
|
|
66
130
|
"type": "address"
|
|
67
131
|
},
|
|
68
132
|
{
|
|
69
133
|
"indexed": false,
|
|
70
|
-
"internalType": "enum PolicyPool.
|
|
134
|
+
"internalType": "enum PolicyPool.ComponentKind",
|
|
135
|
+
"name": "kind",
|
|
136
|
+
"type": "uint8"
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"indexed": false,
|
|
140
|
+
"internalType": "enum PolicyPool.ComponentStatus",
|
|
71
141
|
"name": "newStatus",
|
|
72
142
|
"type": "uint8"
|
|
73
143
|
}
|
|
74
144
|
],
|
|
75
|
-
"name": "
|
|
145
|
+
"name": "ComponentStatusChanged",
|
|
76
146
|
"type": "event"
|
|
77
147
|
},
|
|
78
148
|
{
|
|
@@ -222,18 +292,24 @@
|
|
|
222
292
|
"inputs": [
|
|
223
293
|
{
|
|
224
294
|
"indexed": true,
|
|
225
|
-
"internalType": "
|
|
226
|
-
"name": "
|
|
295
|
+
"internalType": "address",
|
|
296
|
+
"name": "from",
|
|
227
297
|
"type": "address"
|
|
228
298
|
},
|
|
229
299
|
{
|
|
230
|
-
"indexed":
|
|
231
|
-
"internalType": "
|
|
232
|
-
"name": "
|
|
233
|
-
"type": "
|
|
300
|
+
"indexed": true,
|
|
301
|
+
"internalType": "address",
|
|
302
|
+
"name": "to",
|
|
303
|
+
"type": "address"
|
|
304
|
+
},
|
|
305
|
+
{
|
|
306
|
+
"indexed": true,
|
|
307
|
+
"internalType": "uint256",
|
|
308
|
+
"name": "tokenId",
|
|
309
|
+
"type": "uint256"
|
|
234
310
|
}
|
|
235
311
|
],
|
|
236
|
-
"name": "
|
|
312
|
+
"name": "Transfer",
|
|
237
313
|
"type": "event"
|
|
238
314
|
},
|
|
239
315
|
{
|
|
@@ -315,27 +391,32 @@
|
|
|
315
391
|
"type": "function"
|
|
316
392
|
},
|
|
317
393
|
{
|
|
318
|
-
"inputs": [
|
|
394
|
+
"inputs": [],
|
|
395
|
+
"name": "access",
|
|
396
|
+
"outputs": [
|
|
319
397
|
{
|
|
320
|
-
"internalType": "contract
|
|
321
|
-
"name": "
|
|
398
|
+
"internalType": "contract IAccessManager",
|
|
399
|
+
"name": "",
|
|
322
400
|
"type": "address"
|
|
323
401
|
}
|
|
324
402
|
],
|
|
325
|
-
"
|
|
326
|
-
"outputs": [],
|
|
327
|
-
"stateMutability": "nonpayable",
|
|
403
|
+
"stateMutability": "view",
|
|
328
404
|
"type": "function"
|
|
329
405
|
},
|
|
330
406
|
{
|
|
331
407
|
"inputs": [
|
|
332
408
|
{
|
|
333
|
-
"internalType": "contract
|
|
334
|
-
"name": "
|
|
409
|
+
"internalType": "contract IPolicyPoolComponent",
|
|
410
|
+
"name": "component",
|
|
335
411
|
"type": "address"
|
|
412
|
+
},
|
|
413
|
+
{
|
|
414
|
+
"internalType": "enum PolicyPool.ComponentKind",
|
|
415
|
+
"name": "kind",
|
|
416
|
+
"type": "uint8"
|
|
336
417
|
}
|
|
337
418
|
],
|
|
338
|
-
"name": "
|
|
419
|
+
"name": "addComponent",
|
|
339
420
|
"outputs": [],
|
|
340
421
|
"stateMutability": "nonpayable",
|
|
341
422
|
"type": "function"
|
|
@@ -343,34 +424,58 @@
|
|
|
343
424
|
{
|
|
344
425
|
"inputs": [
|
|
345
426
|
{
|
|
346
|
-
"internalType": "
|
|
347
|
-
"name": "
|
|
427
|
+
"internalType": "address",
|
|
428
|
+
"name": "to",
|
|
348
429
|
"type": "address"
|
|
349
430
|
},
|
|
350
431
|
{
|
|
351
|
-
"internalType": "
|
|
352
|
-
"name": "
|
|
353
|
-
"type": "
|
|
432
|
+
"internalType": "uint256",
|
|
433
|
+
"name": "tokenId",
|
|
434
|
+
"type": "uint256"
|
|
354
435
|
}
|
|
355
436
|
],
|
|
356
|
-
"name": "
|
|
437
|
+
"name": "approve",
|
|
357
438
|
"outputs": [],
|
|
358
439
|
"stateMutability": "nonpayable",
|
|
359
440
|
"type": "function"
|
|
360
441
|
},
|
|
361
442
|
{
|
|
362
|
-
"inputs": [
|
|
363
|
-
|
|
443
|
+
"inputs": [
|
|
444
|
+
{
|
|
445
|
+
"internalType": "address",
|
|
446
|
+
"name": "owner",
|
|
447
|
+
"type": "address"
|
|
448
|
+
}
|
|
449
|
+
],
|
|
450
|
+
"name": "balanceOf",
|
|
364
451
|
"outputs": [
|
|
365
452
|
{
|
|
366
|
-
"internalType": "
|
|
453
|
+
"internalType": "uint256",
|
|
367
454
|
"name": "",
|
|
368
|
-
"type": "
|
|
455
|
+
"type": "uint256"
|
|
369
456
|
}
|
|
370
457
|
],
|
|
371
458
|
"stateMutability": "view",
|
|
372
459
|
"type": "function"
|
|
373
460
|
},
|
|
461
|
+
{
|
|
462
|
+
"inputs": [
|
|
463
|
+
{
|
|
464
|
+
"internalType": "contract IPolicyPoolComponent",
|
|
465
|
+
"name": "component",
|
|
466
|
+
"type": "address"
|
|
467
|
+
},
|
|
468
|
+
{
|
|
469
|
+
"internalType": "enum PolicyPool.ComponentStatus",
|
|
470
|
+
"name": "newStatus",
|
|
471
|
+
"type": "uint8"
|
|
472
|
+
}
|
|
473
|
+
],
|
|
474
|
+
"name": "changeComponentStatus",
|
|
475
|
+
"outputs": [],
|
|
476
|
+
"stateMutability": "nonpayable",
|
|
477
|
+
"type": "function"
|
|
478
|
+
},
|
|
374
479
|
{
|
|
375
480
|
"inputs": [],
|
|
376
481
|
"name": "currency",
|
|
@@ -490,15 +595,34 @@
|
|
|
490
595
|
{
|
|
491
596
|
"inputs": [
|
|
492
597
|
{
|
|
493
|
-
"internalType": "
|
|
494
|
-
"name": "
|
|
598
|
+
"internalType": "uint256",
|
|
599
|
+
"name": "tokenId",
|
|
600
|
+
"type": "uint256"
|
|
601
|
+
}
|
|
602
|
+
],
|
|
603
|
+
"name": "getApproved",
|
|
604
|
+
"outputs": [
|
|
605
|
+
{
|
|
606
|
+
"internalType": "address",
|
|
607
|
+
"name": "",
|
|
495
608
|
"type": "address"
|
|
496
609
|
}
|
|
497
610
|
],
|
|
498
|
-
"
|
|
611
|
+
"stateMutability": "view",
|
|
612
|
+
"type": "function"
|
|
613
|
+
},
|
|
614
|
+
{
|
|
615
|
+
"inputs": [
|
|
616
|
+
{
|
|
617
|
+
"internalType": "contract IPolicyPoolComponent",
|
|
618
|
+
"name": "component",
|
|
619
|
+
"type": "address"
|
|
620
|
+
}
|
|
621
|
+
],
|
|
622
|
+
"name": "getComponentStatus",
|
|
499
623
|
"outputs": [
|
|
500
624
|
{
|
|
501
|
-
"internalType": "enum PolicyPool.
|
|
625
|
+
"internalType": "enum PolicyPool.ComponentStatus",
|
|
502
626
|
"name": "",
|
|
503
627
|
"type": "uint8"
|
|
504
628
|
}
|
|
@@ -507,12 +631,84 @@
|
|
|
507
631
|
"type": "function"
|
|
508
632
|
},
|
|
509
633
|
{
|
|
510
|
-
"inputs": [
|
|
634
|
+
"inputs": [
|
|
635
|
+
{
|
|
636
|
+
"internalType": "string",
|
|
637
|
+
"name": "name_",
|
|
638
|
+
"type": "string"
|
|
639
|
+
},
|
|
640
|
+
{
|
|
641
|
+
"internalType": "string",
|
|
642
|
+
"name": "symbol_",
|
|
643
|
+
"type": "string"
|
|
644
|
+
},
|
|
645
|
+
{
|
|
646
|
+
"internalType": "address",
|
|
647
|
+
"name": "treasury_",
|
|
648
|
+
"type": "address"
|
|
649
|
+
}
|
|
650
|
+
],
|
|
511
651
|
"name": "initialize",
|
|
512
652
|
"outputs": [],
|
|
513
653
|
"stateMutability": "nonpayable",
|
|
514
654
|
"type": "function"
|
|
515
655
|
},
|
|
656
|
+
{
|
|
657
|
+
"inputs": [
|
|
658
|
+
{
|
|
659
|
+
"internalType": "uint256",
|
|
660
|
+
"name": "policyId",
|
|
661
|
+
"type": "uint256"
|
|
662
|
+
}
|
|
663
|
+
],
|
|
664
|
+
"name": "isActive",
|
|
665
|
+
"outputs": [
|
|
666
|
+
{
|
|
667
|
+
"internalType": "bool",
|
|
668
|
+
"name": "",
|
|
669
|
+
"type": "bool"
|
|
670
|
+
}
|
|
671
|
+
],
|
|
672
|
+
"stateMutability": "view",
|
|
673
|
+
"type": "function"
|
|
674
|
+
},
|
|
675
|
+
{
|
|
676
|
+
"inputs": [
|
|
677
|
+
{
|
|
678
|
+
"internalType": "address",
|
|
679
|
+
"name": "owner",
|
|
680
|
+
"type": "address"
|
|
681
|
+
},
|
|
682
|
+
{
|
|
683
|
+
"internalType": "address",
|
|
684
|
+
"name": "operator",
|
|
685
|
+
"type": "address"
|
|
686
|
+
}
|
|
687
|
+
],
|
|
688
|
+
"name": "isApprovedForAll",
|
|
689
|
+
"outputs": [
|
|
690
|
+
{
|
|
691
|
+
"internalType": "bool",
|
|
692
|
+
"name": "",
|
|
693
|
+
"type": "bool"
|
|
694
|
+
}
|
|
695
|
+
],
|
|
696
|
+
"stateMutability": "view",
|
|
697
|
+
"type": "function"
|
|
698
|
+
},
|
|
699
|
+
{
|
|
700
|
+
"inputs": [],
|
|
701
|
+
"name": "name",
|
|
702
|
+
"outputs": [
|
|
703
|
+
{
|
|
704
|
+
"internalType": "string",
|
|
705
|
+
"name": "",
|
|
706
|
+
"type": "string"
|
|
707
|
+
}
|
|
708
|
+
],
|
|
709
|
+
"stateMutability": "view",
|
|
710
|
+
"type": "function"
|
|
711
|
+
},
|
|
516
712
|
{
|
|
517
713
|
"inputs": [
|
|
518
714
|
{
|
|
@@ -594,7 +790,12 @@
|
|
|
594
790
|
},
|
|
595
791
|
{
|
|
596
792
|
"internalType": "address",
|
|
597
|
-
"name": "
|
|
793
|
+
"name": "payer",
|
|
794
|
+
"type": "address"
|
|
795
|
+
},
|
|
796
|
+
{
|
|
797
|
+
"internalType": "address",
|
|
798
|
+
"name": "policyHolder",
|
|
598
799
|
"type": "address"
|
|
599
800
|
},
|
|
600
801
|
{
|
|
@@ -614,6 +815,25 @@
|
|
|
614
815
|
"stateMutability": "nonpayable",
|
|
615
816
|
"type": "function"
|
|
616
817
|
},
|
|
818
|
+
{
|
|
819
|
+
"inputs": [
|
|
820
|
+
{
|
|
821
|
+
"internalType": "uint256",
|
|
822
|
+
"name": "tokenId",
|
|
823
|
+
"type": "uint256"
|
|
824
|
+
}
|
|
825
|
+
],
|
|
826
|
+
"name": "ownerOf",
|
|
827
|
+
"outputs": [
|
|
828
|
+
{
|
|
829
|
+
"internalType": "address",
|
|
830
|
+
"name": "",
|
|
831
|
+
"type": "address"
|
|
832
|
+
}
|
|
833
|
+
],
|
|
834
|
+
"stateMutability": "view",
|
|
835
|
+
"type": "function"
|
|
836
|
+
},
|
|
617
837
|
{
|
|
618
838
|
"inputs": [],
|
|
619
839
|
"name": "pause",
|
|
@@ -634,19 +854,6 @@
|
|
|
634
854
|
"stateMutability": "view",
|
|
635
855
|
"type": "function"
|
|
636
856
|
},
|
|
637
|
-
{
|
|
638
|
-
"inputs": [],
|
|
639
|
-
"name": "policyNFT",
|
|
640
|
-
"outputs": [
|
|
641
|
-
{
|
|
642
|
-
"internalType": "address",
|
|
643
|
-
"name": "",
|
|
644
|
-
"type": "address"
|
|
645
|
-
}
|
|
646
|
-
],
|
|
647
|
-
"stateMutability": "view",
|
|
648
|
-
"type": "function"
|
|
649
|
-
},
|
|
650
857
|
{
|
|
651
858
|
"inputs": [],
|
|
652
859
|
"name": "proxiableUUID",
|
|
@@ -663,12 +870,12 @@
|
|
|
663
870
|
{
|
|
664
871
|
"inputs": [
|
|
665
872
|
{
|
|
666
|
-
"internalType": "contract
|
|
667
|
-
"name": "
|
|
873
|
+
"internalType": "contract IPolicyPoolComponent",
|
|
874
|
+
"name": "component",
|
|
668
875
|
"type": "address"
|
|
669
876
|
}
|
|
670
877
|
],
|
|
671
|
-
"name": "
|
|
878
|
+
"name": "removeComponent",
|
|
672
879
|
"outputs": [],
|
|
673
880
|
"stateMutability": "nonpayable",
|
|
674
881
|
"type": "function"
|
|
@@ -853,6 +1060,175 @@
|
|
|
853
1060
|
"stateMutability": "nonpayable",
|
|
854
1061
|
"type": "function"
|
|
855
1062
|
},
|
|
1063
|
+
{
|
|
1064
|
+
"inputs": [
|
|
1065
|
+
{
|
|
1066
|
+
"internalType": "address",
|
|
1067
|
+
"name": "from",
|
|
1068
|
+
"type": "address"
|
|
1069
|
+
},
|
|
1070
|
+
{
|
|
1071
|
+
"internalType": "address",
|
|
1072
|
+
"name": "to",
|
|
1073
|
+
"type": "address"
|
|
1074
|
+
},
|
|
1075
|
+
{
|
|
1076
|
+
"internalType": "uint256",
|
|
1077
|
+
"name": "tokenId",
|
|
1078
|
+
"type": "uint256"
|
|
1079
|
+
}
|
|
1080
|
+
],
|
|
1081
|
+
"name": "safeTransferFrom",
|
|
1082
|
+
"outputs": [],
|
|
1083
|
+
"stateMutability": "nonpayable",
|
|
1084
|
+
"type": "function"
|
|
1085
|
+
},
|
|
1086
|
+
{
|
|
1087
|
+
"inputs": [
|
|
1088
|
+
{
|
|
1089
|
+
"internalType": "address",
|
|
1090
|
+
"name": "from",
|
|
1091
|
+
"type": "address"
|
|
1092
|
+
},
|
|
1093
|
+
{
|
|
1094
|
+
"internalType": "address",
|
|
1095
|
+
"name": "to",
|
|
1096
|
+
"type": "address"
|
|
1097
|
+
},
|
|
1098
|
+
{
|
|
1099
|
+
"internalType": "uint256",
|
|
1100
|
+
"name": "tokenId",
|
|
1101
|
+
"type": "uint256"
|
|
1102
|
+
},
|
|
1103
|
+
{
|
|
1104
|
+
"internalType": "bytes",
|
|
1105
|
+
"name": "data",
|
|
1106
|
+
"type": "bytes"
|
|
1107
|
+
}
|
|
1108
|
+
],
|
|
1109
|
+
"name": "safeTransferFrom",
|
|
1110
|
+
"outputs": [],
|
|
1111
|
+
"stateMutability": "nonpayable",
|
|
1112
|
+
"type": "function"
|
|
1113
|
+
},
|
|
1114
|
+
{
|
|
1115
|
+
"inputs": [
|
|
1116
|
+
{
|
|
1117
|
+
"internalType": "address",
|
|
1118
|
+
"name": "operator",
|
|
1119
|
+
"type": "address"
|
|
1120
|
+
},
|
|
1121
|
+
{
|
|
1122
|
+
"internalType": "bool",
|
|
1123
|
+
"name": "approved",
|
|
1124
|
+
"type": "bool"
|
|
1125
|
+
}
|
|
1126
|
+
],
|
|
1127
|
+
"name": "setApprovalForAll",
|
|
1128
|
+
"outputs": [],
|
|
1129
|
+
"stateMutability": "nonpayable",
|
|
1130
|
+
"type": "function"
|
|
1131
|
+
},
|
|
1132
|
+
{
|
|
1133
|
+
"inputs": [
|
|
1134
|
+
{
|
|
1135
|
+
"internalType": "address",
|
|
1136
|
+
"name": "treasury_",
|
|
1137
|
+
"type": "address"
|
|
1138
|
+
}
|
|
1139
|
+
],
|
|
1140
|
+
"name": "setTreasury",
|
|
1141
|
+
"outputs": [],
|
|
1142
|
+
"stateMutability": "nonpayable",
|
|
1143
|
+
"type": "function"
|
|
1144
|
+
},
|
|
1145
|
+
{
|
|
1146
|
+
"inputs": [
|
|
1147
|
+
{
|
|
1148
|
+
"internalType": "bytes4",
|
|
1149
|
+
"name": "interfaceId",
|
|
1150
|
+
"type": "bytes4"
|
|
1151
|
+
}
|
|
1152
|
+
],
|
|
1153
|
+
"name": "supportsInterface",
|
|
1154
|
+
"outputs": [
|
|
1155
|
+
{
|
|
1156
|
+
"internalType": "bool",
|
|
1157
|
+
"name": "",
|
|
1158
|
+
"type": "bool"
|
|
1159
|
+
}
|
|
1160
|
+
],
|
|
1161
|
+
"stateMutability": "view",
|
|
1162
|
+
"type": "function"
|
|
1163
|
+
},
|
|
1164
|
+
{
|
|
1165
|
+
"inputs": [],
|
|
1166
|
+
"name": "symbol",
|
|
1167
|
+
"outputs": [
|
|
1168
|
+
{
|
|
1169
|
+
"internalType": "string",
|
|
1170
|
+
"name": "",
|
|
1171
|
+
"type": "string"
|
|
1172
|
+
}
|
|
1173
|
+
],
|
|
1174
|
+
"stateMutability": "view",
|
|
1175
|
+
"type": "function"
|
|
1176
|
+
},
|
|
1177
|
+
{
|
|
1178
|
+
"inputs": [
|
|
1179
|
+
{
|
|
1180
|
+
"internalType": "uint256",
|
|
1181
|
+
"name": "tokenId",
|
|
1182
|
+
"type": "uint256"
|
|
1183
|
+
}
|
|
1184
|
+
],
|
|
1185
|
+
"name": "tokenURI",
|
|
1186
|
+
"outputs": [
|
|
1187
|
+
{
|
|
1188
|
+
"internalType": "string",
|
|
1189
|
+
"name": "",
|
|
1190
|
+
"type": "string"
|
|
1191
|
+
}
|
|
1192
|
+
],
|
|
1193
|
+
"stateMutability": "view",
|
|
1194
|
+
"type": "function"
|
|
1195
|
+
},
|
|
1196
|
+
{
|
|
1197
|
+
"inputs": [
|
|
1198
|
+
{
|
|
1199
|
+
"internalType": "address",
|
|
1200
|
+
"name": "from",
|
|
1201
|
+
"type": "address"
|
|
1202
|
+
},
|
|
1203
|
+
{
|
|
1204
|
+
"internalType": "address",
|
|
1205
|
+
"name": "to",
|
|
1206
|
+
"type": "address"
|
|
1207
|
+
},
|
|
1208
|
+
{
|
|
1209
|
+
"internalType": "uint256",
|
|
1210
|
+
"name": "tokenId",
|
|
1211
|
+
"type": "uint256"
|
|
1212
|
+
}
|
|
1213
|
+
],
|
|
1214
|
+
"name": "transferFrom",
|
|
1215
|
+
"outputs": [],
|
|
1216
|
+
"stateMutability": "nonpayable",
|
|
1217
|
+
"type": "function"
|
|
1218
|
+
},
|
|
1219
|
+
{
|
|
1220
|
+
"inputs": [],
|
|
1221
|
+
"name": "treasury",
|
|
1222
|
+
"outputs": [
|
|
1223
|
+
{
|
|
1224
|
+
"internalType": "address",
|
|
1225
|
+
"name": "",
|
|
1226
|
+
"type": "address"
|
|
1227
|
+
}
|
|
1228
|
+
],
|
|
1229
|
+
"stateMutability": "view",
|
|
1230
|
+
"type": "function"
|
|
1231
|
+
},
|
|
856
1232
|
{
|
|
857
1233
|
"inputs": [],
|
|
858
1234
|
"name": "unpause",
|
|
@@ -916,8 +1292,8 @@
|
|
|
916
1292
|
"type": "function"
|
|
917
1293
|
}
|
|
918
1294
|
],
|
|
919
|
-
"bytecode": "0x6101006040523060601b6080523480156200001957600080fd5b5060405162003b5938038062003b598339810160408190526200003c9162000064565b6001600160601b0319606093841b811660a05291831b821660e05290911b1660c052620000d1565b6000806000606084860312156200007a57600080fd5b83516200008781620000b8565b60208501519093506200009a81620000b8565b6040850151909250620000ad81620000b8565b809150509250925092565b6001600160a01b0381168114620000ce57600080fd5b50565b60805160601c60a05160601c60c05160601c60e05160601c613985620001d4600039600081816103ca0152818161139e01528181612391015281816127ec01528181612b670152612d650152600081816104630152818161072c01528181611411015281816114cb015281816115830152818161164f01526117980152600081816103190152818161063d015281816108d301528181610d62015281816110ff015281816111fc015281816115b10152818161183b01528181611c1a01528181611d2901528181611f01015281816122c501526127790152600081816105140152818161055d015281816107e5015281816108250152610c7e01526139856000f3fe6080604052600436106101665760003560e01c806379502c55116100d1578063b63d382e1161008a578063f3fef3a311610064578063f3fef3a314610487578063f67b2bad146104a7578063fcbb17fe146104c9578063ffa600e3146104e957600080fd5b8063b63d382e146103ee578063ca143d181461040e578063e5a6b10f1461045457600080fd5b806379502c551461030a5780637a702b3c146103515780638129fc1c146103715780638456cb5914610386578063917876601461039b578063af02808a146103bb57600080fd5b806352bab1941161012357806352bab1941461023e57806352d1902d1461025e5780635b494dd5146102735780635c975abb146102a757806365b71008146102ca5780636af6f1ef146102ea57600080fd5b806324ea54f41461016b5780633659cfe6146101a05780633f4ba83a146101c257806347e7ef24146101d75780634a47a3e0146101f75780634f1ef2861461022b575b600080fd5b34801561017757600080fd5b5061018d60008051602061393083398151915281565b6040519081526020015b60405180910390f35b3480156101ac57600080fd5b506101c06101bb366004613276565b610509565b005b3480156101ce57600080fd5b506101c06105f2565b3480156101e357600080fd5b506101c06101f23660046133f5565b6106a3565b34801561020357600080fd5b5061018d7fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c081565b6101c06102393660046132b0565b6107da565b34801561024a57600080fd5b506101c0610259366004613276565b6108a7565b34801561026a57600080fd5b5061018d610c71565b34801561027f57600080fd5b5061018d7f5ec196419322369c6bac572d883f4d990ae5ec82f7d93cdf89b85dbb05b63c2781565b3480156102b357600080fd5b5060335460ff166040519015158152602001610197565b3480156102d657600080fd5b506101c06102e5366004613276565b610d24565b3480156102f657600080fd5b506101c0610305366004613421565b610f53565b34801561031657600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610197565b34801561035d57600080fd5b506101c061036c36600461346d565b610fd7565b34801561037d57600080fd5b506101c0610ff9565b34801561039257600080fd5b506101c06110d3565b3480156103a757600080fd5b5061018d6103b63660046134b7565b611169565b3480156103c757600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610339565b3480156103fa57600080fd5b506101c0610409366004613276565b61180f565b34801561041a57600080fd5b50610447610429366004613276565b6001600160a01b0316600090815260c9602052604090205460ff1690565b6040516101979190613631565b34801561046057600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610339565b34801561049357600080fd5b5061018d6104a23660046133f5565b611a8c565b3480156104b357600080fd5b5061018d6000805160206138e983398151915281565b3480156104d557600080fd5b506101c06104e43660046133b8565b611bcf565b3480156104f557600080fd5b506101c061050436600461343e565b611e83565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561055b5760405162461bcd60e51b81526004016105529061368c565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166105a46000805160206138c9833981519152546001600160a01b031690565b6001600160a01b0316146105ca5760405162461bcd60e51b8152600401610552906136d8565b6105d381611eb6565b604080516000808252602082019092526105ef91839190611f60565b50565b60405163c5b8f5cf60e01b8152600080516020613930833981519152600482018190526000805160206138e98339815191526024830181905233604484015290916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5b8f5cf9060640160006040518083038186803b15801561067f57600080fd5b505afa158015610693573d6000803e3d6000fd5b5050505061069f6120df565b5050565b6106ab612131565b6001600160a01b038216600090815260c9602052604090205460ff1660018160038111156106db576106db613879565b1461071f5760405162461bcd60e51b815260206004820152601460248201527365546f6b656e206973206e6f742061637469766560601b6044820152606401610552565b6107546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016338585612179565b6040516311f9fbc960e21b8152336004820152602481018390526001600160a01b038416906347e7ef2490604401602060405180830381600087803b15801561079c57600080fd5b505af11580156107b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d49190613375565b50505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156108235760405162461bcd60e51b81526004016105529061368c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661086c6000805160206138c9833981519152546001600160a01b031690565b6001600160a01b0316146108925760405162461bcd60e51b8152600401610552906136d8565b61089b82611eb6565b61069f82826001611f60565b6040516312d9a6ad60e01b81526000805160206138e983398151915260048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906312d9a6ad9060440160006040518083038186803b15801561091d57600080fd5b505afa158015610931573d6000803e3d6000fd5b505050506001600160a01b03821661098b5760405162461bcd60e51b815260206004820152601d60248201527f5072656d69756d734163636f756e742063616e2774206265207a65726f0000006044820152606401610552565b306001600160a01b0316826001600160a01b0316634d15eb036040518163ffffffff1660e01b815260040160206040518083038186803b1580156109ce57600080fd5b505afa1580156109e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a069190613293565b6001600160a01b031614610a6c5760405162461bcd60e51b815260206004820152602760248201527f5072656d69756d734163636f756e74206e6f74206c696e6b656420746f2074686044820152661a5cc81c1bdbdb60ca1b6064820152608401610552565b6000826001600160a01b031663536ebbfc6040518163ffffffff1660e01b815260040160206040518083038186803b158015610aa757600080fd5b505afa158015610abb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610adf9190613293565b90506001600160a01b03811615610b4c576040516338ea38a760e21b81526001600160a01b03848116600483015282169063e3a8e29c90602401600060405180830381600087803b158015610b3357600080fd5b505af1158015610b47573d6000803e3d6000fd5b505050505b826001600160a01b0316637b83037b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b8557600080fd5b505afa158015610b99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bbd9190613293565b90506001600160a01b03811615610c2a576040516338ea38a760e21b81526001600160a01b03848116600483015282169063e3a8e29c90602401600060405180830381600087803b158015610c1157600080fd5b505af1158015610c25573d6000803e3d6000fd5b505050505b826001600160a01b03167f834362a634fb37104727a80cf5e936b5b1798edffcf4a89935f19d04eb0e88ec6001604051610c649190613631565b60405180910390a2505050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610d115760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610552565b506000805160206138c983398151915290565b6040516312d9a6ad60e01b81527f5ec196419322369c6bac572d883f4d990ae5ec82f7d93cdf89b85dbb05b63c2760048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906312d9a6ad9060440160006040518083038186803b158015610dac57600080fd5b505afa158015610dc0573d6000803e3d6000fd5b505050506001600160a01b038216600090815260c9602052604090205460ff166002816003811115610df457610df4613879565b14610e395760405162461bcd60e51b815260206004820152601560248201527411551bdad95b881b9bdd0819195c1c9958d85d1959605a1b6044820152606401610552565b826001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610e7257600080fd5b505afa158015610e86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eaa9190613375565b15610f065760405162461bcd60e51b815260206004820152602660248201527f45546f6b656e20686173206c69717569646974792c2063616e27742062652072604482015265195b5bdd995960d21b6064820152608401610552565b6001600160a01b038316600081815260c96020526040808220805460ff19169055517f84b036748e342a63da09ea533edd13275c8f2eb94ba67374cd3c7f4d6461d52c91610c6491613631565b610f5b612131565b42610f6e6101c083016101a08401613515565b64ffffffffff161115610fbc5760405162461bcd60e51b8152602060048201526016602482015275141bdb1a58de481b9bdd08195e1c1a5c9959081e595d60521b6044820152606401610552565b6105ef610fce3683900383018361349a565b600060016121d3565b610fdf612131565b61069f610ff13684900384018461349a565b8260006121d3565b600054610100900460ff16158080156110195750600054600160ff909116105b806110335750303b158015611033575060005460ff166001145b61104f5760405162461bcd60e51b815260040161055290613724565b6000805460ff191660011790558015611072576000805461ff0019166101001790555b61107a6126a8565b6110826126cf565b61108a6126fe565b80156105ef576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150565b6040516312d9a6ad60e01b815260008051602061393083398151915260048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906312d9a6ad9060440160006040518083038186803b15801561114957600080fd5b505afa15801561115d573d6000803e3d6000fd5b505050506105ef61289f565b6000611173612131565b6101608401516001600160a01b03811633146111dd5760405162461bcd60e51b815260206004820152602360248201527f4f6e6c792074686520524d2063616e20637265617465206e657720706f6c696360448201526269657360e81b6064820152608401610552565b604051635dfdc5d760e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063bbfb8bae9060240160006040518083038186803b15801561123e57600080fd5b505afa158015611252573d6000803e3d6000fd5b50505050826bffffffffffffffffffffffff166060826001600160a01b0316901b61127d9190613827565b8552611288856128dc565b60ca600087600001518152602001908152602001600020819055506000816001600160a01b03166373a952e86040518163ffffffff1660e01b815260040160206040518083038186803b1580156112de57600080fd5b505afa1580156112f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113169190613293565b60405163e3638ea360e01b81529091506001600160a01b0382169063e3638ea3906113459089906004016137bd565b600060405180830381600087803b15801561135f57600080fd5b505af1158015611373573d6000803e3d6000fd5b50508751604051632851206560e21b81526001600160a01b03898116600483015260248201929092527f0000000000000000000000000000000000000000000000000000000000000000909116925063a14481949150604401600060405180830381600087803b1580156113e657600080fd5b505af11580156113fa573d6000803e3d6000fd5b50505060c087015161143b91506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169087908490612179565b610140860151156114f3576114f385826001600160a01b0316637b83037b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561148357600080fd5b505afa158015611497573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114bb9190613293565b6101408901516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016929190612179565b610120860151156115ab576115ab85826001600160a01b031663536ebbfc6040518163ffffffff1660e01b815260040160206040518083038186803b15801561153b57600080fd5b505afa15801561154f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115739190613293565b6101208901516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016929190612179565b611677857f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166361d027b36040518163ffffffff1660e01b815260040160206040518083038186803b15801561160857600080fd5b505afa15801561161c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116409190613293565b60e08901516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016929190612179565b600086610100015111801561170e5750816001600160a01b031663521eb2736040518163ffffffff1660e01b815260040160206040518083038186803b1580156116c057600080fd5b505afa1580156116d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116f89190613293565b6001600160a01b0316856001600160a01b031614155b156117c0576117c085836001600160a01b031663521eb2736040518163ffffffff1660e01b815260040160206040518083038186803b15801561175057600080fd5b505afa158015611764573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117889190613293565b6101008901516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016929190612179565b816001600160a01b03167f38f420e3792044ba61536a1f83956eefc878b3fb09a7d4a28790f05b6a3eaf3b876040516117f991906137bd565b60405180910390a25050835190505b9392505050565b6040516312d9a6ad60e01b81526000805160206138e983398151915260048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906312d9a6ad9060440160006040518083038186803b15801561188557600080fd5b505afa158015611899573d6000803e3d6000fd5b5050506001600160a01b038316600090815260c9602052604081205460ff1691508160038111156118cc576118cc613879565b146119195760405162461bcd60e51b815260206004820152601a60248201527f65546f6b656e20616c726561647920696e2074686520706f6f6c0000000000006044820152606401610552565b6001600160a01b0383166119665760405162461bcd60e51b815260206004820152601460248201527365546f6b656e2063616e2774206265207a65726f60601b6044820152606401610552565b306001600160a01b0316836001600160a01b0316634d15eb036040518163ffffffff1660e01b815260040160206040518083038186803b1580156119a957600080fd5b505afa1580156119bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e19190613293565b6001600160a01b031614611a375760405162461bcd60e51b815260206004820152601e60248201527f45546f6b656e206e6f74206c696e6b656420746f207468697320706f6f6c00006044820152606401610552565b6001600160a01b038316600081815260c9602052604090819020805460ff1916600190811790915590517f84b036748e342a63da09ea533edd13275c8f2eb94ba67374cd3c7f4d6461d52c91610c6491613631565b6000611a96612131565b6001600160a01b038316600090815260c9602052604090205460ff166001816003811115611ac657611ac6613879565b1480611ae357506002816003811115611ae157611ae1613879565b145b611b415760405162461bcd60e51b815260206004820152602960248201527f65546f6b656e206e6f7420666f756e64206f7220776974686472617773206e6f6044820152681d08185b1b1bddd95960ba1b6064820152608401610552565b60405163f3fef3a360e01b8152336004820181905260248201859052906001600160a01b0386169063f3fef3a390604401602060405180830381600087803b158015611b8c57600080fd5b505af1158015611ba0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc49190613375565b925050505b92915050565b60405163c5b8f5cf60e01b8152600080516020613930833981519152600482018190526000805160206138e98339815191526024830181905233604484015290916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5b8f5cf9060640160006040518083038186803b158015611c5c57600080fd5b505afa158015611c70573d6000803e3d6000fd5b5050506001600160a01b038516600090815260c9602052604081205460ff169150816003811115611ca357611ca3613879565b1415611ce45760405162461bcd60e51b815260206004820152601060248201526f11551bdad95b881b9bdd08199bdd5b9960821b6044820152606401610552565b6003846003811115611cf857611cf8613879565b141580611dab5750604051632474521560e21b815260008051602061393083398151915260048201523360248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906391d148549060440160206040518083038186803b158015611d7357600080fd5b505afa158015611d87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dab9190613358565b611e015760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920475541524449414e2063616e2073757370656e642065546f6b656e6044820152607360f81b6064820152608401610552565b6001600160a01b038516600090815260c960205260409020805485919060ff19166001836003811115611e3657611e36613879565b0217905550846001600160a01b03167f84b036748e342a63da09ea533edd13275c8f2eb94ba67374cd3c7f4d6461d52c85604051611e749190613631565b60405180910390a25050505050565b611e8b612131565b61069f611e9d3684900384018461349a565b82611ea9576000611eaf565b83602001355b60006121d3565b60405163c5b8f5cf60e01b8152600080516020613930833981519152600482018190526000805160206138e98339815191526024830181905233604484015290916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5b8f5cf9060640160006040518083038186803b158015611f4357600080fd5b505afa158015611f57573d6000803e3d6000fd5b50505050505050565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611f9857611f938361290c565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611fd157600080fd5b505afa925050508015612001575060408051601f3d908101601f19168201909252611ffe91810190613375565b60015b6120645760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610552565b6000805160206138c983398151915281146120d35760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610552565b50611f938383836129a8565b6120e76129cd565b6033805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60335460ff16156121775760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610552565b565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526107d4908590612a16565b6121dc83612ae8565b61016083015181806121f657506001600160a01b03811633145b6122425760405162461bcd60e51b815260206004820181905260248201527f4f6e6c792074686520524d2063616e207265736f6c766520706f6c69636965736044820152606401610552565b82158061225a575042846101a0015164ffffffffff16115b6122a65760405162461bcd60e51b815260206004820152601860248201527f43616e277420706179206578706972656420706f6c69637900000000000000006044820152606401610552565b6040516310f199ef60e31b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063878ccf789060240160006040518083038186803b15801561230757600080fd5b505afa15801561231b573d6000803e3d6000fd5b50505050836020015183111561236c5760405162461bcd60e51b81526020600482015260166024820152751c185e5bdd5d080f881c1bdb1a58de4b9c185e5bdd5d60521b6044820152606401610552565b82158015906124f25784516040516331a9108f60e11b81526000916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691636352211e916123c89160040190815260200190565b60206040518083038186803b1580156123e057600080fd5b505afa1580156123f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124189190613293565b9050826001600160a01b03166373a952e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561245357600080fd5b505afa158015612467573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061248b9190613293565b6001600160a01b0316639d8c5ee78288886040518463ffffffff1660e01b81526004016124ba93929190613604565b600060405180830381600087803b1580156124d457600080fd5b505af11580156124e8573d6000803e3d6000fd5b50505050506125c1565b816001600160a01b03166373a952e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561252b57600080fd5b505afa15801561253f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125639190613293565b6001600160a01b031663c7a9c70d866040518263ffffffff1660e01b815260040161258e91906137bd565b600060405180830381600087803b1580156125a857600080fd5b505af11580156125bc573d6000803e3d6000fd5b505050505b6020850151604051636a448ef160e01b815260048101919091526001600160a01b03831690636a448ef190602401600060405180830381600087803b15801561260957600080fd5b505af115801561261d573d6000803e3d6000fd5b5050505084600001518561016001516001600160a01b03167f54f4a270ea08f88dc23b2520d6b063fecb24d956c4496f447926d736338f545e8660405161266691815260200190565b60405180910390a38451600090815260ca602052604081205583156126965784516126919085612b4e565b6126a1565b84516126a190612d4c565b5050505050565b600054610100900460ff166121775760405162461bcd60e51b815260040161055290613772565b600054610100900460ff166126f65760405162461bcd60e51b815260040161055290613772565b612177612e92565b600054610100900460ff161580801561271e5750600054600160ff909116105b806127385750303b158015612738575060005460ff166001145b6127545760405162461bcd60e51b815260040161055290613724565b6000805460ff191660011790558015612777576000805461ff0019166101001790555b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663948cb7196040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156127d257600080fd5b505af11580156127e6573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663948cb7196040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561284557600080fd5b505af1158015612859573d6000803e3d6000fd5b5050505080156105ef576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016110c8565b6128a7612131565b6033805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586121143390565b6000816040516020016128ef91906137bd565b604051602081830303815290604052805190602001209050919050565b6001600160a01b0381163b6129795760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610552565b6000805160206138c983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6129b183612ec5565b6000825111806129be5750805b15611f93576107d48383612f05565b60335460ff166121775760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610552565b6000612a6b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612ff09092919063ffffffff16565b805190915015611f935780806020019051810190612a899190613358565b611f935760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610552565b805115801590612b0f57508051600090815260ca6020526040902054612b0d826128dc565b145b6105ef5760405162461bcd60e51b815260206004820152601060248201526f141bdb1a58de481b9bdd08199bdd5b9960821b6044820152606401610552565b6040516331a9108f60e11b8152600481018390526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636352211e9060240160206040518083038186803b158015612bb157600080fd5b505afa158015612bc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612be99190613293565b90506001600160a01b0381163b612bff57505050565b6001600160a01b03811663d6281d3e336040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044810186905260648101859052608401602060405180830381600087803b158015612c6457600080fd5b505af1925050508015612c94575060408051601f3d908101601f19168201909252612c919181019061338e565b60015b612cdc573d808015612cc2576040519150601f19603f3d011682016040523d82523d6000602084013e612cc7565b606091505b508051612cd45750505050565b805181602001fd5b6001600160e01b03198116636b140e9f60e11b146107d45760405162461bcd60e51b815260206004820152602760248201527f496e76616c69642072657475726e2076616c75652066726f6d20506f6c696379604482015266102437b63232b960c91b6064820152608401610552565b6040516331a9108f60e11b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636352211e9060240160206040518083038186803b158015612daf57600080fd5b505afa158015612dc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612de79190613293565b90506001600160a01b0381163b612dfc575050565b6001600160a01b03811663e8e617b7336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015230602482015260448101859052606401602060405180830381600087803b158015612e5a57600080fd5b505af1925050508015612e8a575060408051601f3d908101601f19168201909252612e879181019061338e565b60015b611f93575050565b600054610100900460ff16612eb95760405162461bcd60e51b815260040161055290613772565b6033805460ff19169055565b612ece8161290c565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b612f6d5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610552565b600080846001600160a01b031684604051612f8891906135e8565b600060405180830381855af49150503d8060008114612fc3576040519150601f19603f3d011682016040523d82523d6000602084013e612fc8565b606091505b5091509150611bc4828260405180606001604052806027815260200161390960279139613007565b6060612fff8484600085613040565b949350505050565b60608315613016575081611808565b8251156130265782518084602001fd5b8160405162461bcd60e51b81526004016105529190613659565b6060824710156130a15760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610552565b6001600160a01b0385163b6130f85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610552565b600080866001600160a01b0316858760405161311491906135e8565b60006040518083038185875af1925050503d8060008114613151576040519150601f19603f3d011682016040523d82523d6000602084013e613156565b606091505b5091509150613166828286613007565b979650505050505050565b803561317c816138a5565b919050565b60006101c0828403121561319457600080fd5b50919050565b60006101c082840312156131ad57600080fd5b6131b56137cc565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e0820152610100808301358183015250610120808301358183015250610140808301358183015250610160613233818401613171565b90820152610180613245838201613261565b908201526101a0613257838201613261565b9082015292915050565b803564ffffffffff8116811461317c57600080fd5b60006020828403121561328857600080fd5b8135611808816138a5565b6000602082840312156132a557600080fd5b8151611808816138a5565b600080604083850312156132c357600080fd5b82356132ce816138a5565b915060208381013567ffffffffffffffff808211156132ec57600080fd5b818601915086601f83011261330057600080fd5b8135818111156133125761331261388f565b613324601f8201601f191685016137f6565b9150808252878482850101111561333a57600080fd5b80848401858401376000848284010152508093505050509250929050565b60006020828403121561336a57600080fd5b8151611808816138ba565b60006020828403121561338757600080fd5b5051919050565b6000602082840312156133a057600080fd5b81516001600160e01b03198116811461180857600080fd5b600080604083850312156133cb57600080fd5b82356133d6816138a5565b91506020830135600481106133ea57600080fd5b809150509250929050565b6000806040838503121561340857600080fd5b8235613413816138a5565b946020939093013593505050565b60006101c0828403121561343457600080fd5b6118088383613181565b6000806101e0838503121561345257600080fd5b61345c8484613181565b91506101c08301356133ea816138ba565b6000806101e0838503121561348157600080fd5b61348b8484613181565b946101c0939093013593505050565b60006101c082840312156134ad57600080fd5b611808838361319a565b600080600061020084860312156134cd57600080fd5b6134d7858561319a565b92506101c08401356134e8816138a5565b91506101e08401356bffffffffffffffffffffffff8116811461350a57600080fd5b809150509250925092565b60006020828403121561352757600080fd5b61180882613261565b805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e0830152610100808201518184015250610120808201518184015250610140808201518184015250610160808201516135b9828501826001600160a01b03169052565b50506101808181015164ffffffffff81168483015250506101a08181015164ffffffffff8116848301526107d4565b600082516135fa81846020870161384d565b9190910192915050565b6001600160a01b038416815261020081016136226020830185613530565b826101e0830152949350505050565b602081016004831061365357634e487b7160e01b600052602160045260246000fd5b91905290565b602081526000825180602084015261367881604085016020870161384d565b601f01601f19169190910160400192915050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6101c08101611bc98284613530565b6040516101c0810167ffffffffffffffff811182821017156137f0576137f061388f565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561381f5761381f61388f565b604052919050565b6000821982111561384857634e487b7160e01b600052601160045260246000fd5b500190565b60005b83811015613868578181015183820152602001613850565b838111156107d45750506000910152565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146105ef57600080fd5b80151581146105ef57600080fdfe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb2416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656455435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041a26469706673582212204c9dccbb67ddc08482365cdf6de8410e8afedcb1481ee9a3b9e305e0055a743864736f6c63430008060033",
|
|
920
|
-
"deployedBytecode": "0x6080604052600436106101665760003560e01c806379502c55116100d1578063b63d382e1161008a578063f3fef3a311610064578063f3fef3a314610487578063f67b2bad146104a7578063fcbb17fe146104c9578063ffa600e3146104e957600080fd5b8063b63d382e146103ee578063ca143d181461040e578063e5a6b10f1461045457600080fd5b806379502c551461030a5780637a702b3c146103515780638129fc1c146103715780638456cb5914610386578063917876601461039b578063af02808a146103bb57600080fd5b806352bab1941161012357806352bab1941461023e57806352d1902d1461025e5780635b494dd5146102735780635c975abb146102a757806365b71008146102ca5780636af6f1ef146102ea57600080fd5b806324ea54f41461016b5780633659cfe6146101a05780633f4ba83a146101c257806347e7ef24146101d75780634a47a3e0146101f75780634f1ef2861461022b575b600080fd5b34801561017757600080fd5b5061018d60008051602061393083398151915281565b6040519081526020015b60405180910390f35b3480156101ac57600080fd5b506101c06101bb366004613276565b610509565b005b3480156101ce57600080fd5b506101c06105f2565b3480156101e357600080fd5b506101c06101f23660046133f5565b6106a3565b34801561020357600080fd5b5061018d7fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c081565b6101c06102393660046132b0565b6107da565b34801561024a57600080fd5b506101c0610259366004613276565b6108a7565b34801561026a57600080fd5b5061018d610c71565b34801561027f57600080fd5b5061018d7f5ec196419322369c6bac572d883f4d990ae5ec82f7d93cdf89b85dbb05b63c2781565b3480156102b357600080fd5b5060335460ff166040519015158152602001610197565b3480156102d657600080fd5b506101c06102e5366004613276565b610d24565b3480156102f657600080fd5b506101c0610305366004613421565b610f53565b34801561031657600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610197565b34801561035d57600080fd5b506101c061036c36600461346d565b610fd7565b34801561037d57600080fd5b506101c0610ff9565b34801561039257600080fd5b506101c06110d3565b3480156103a757600080fd5b5061018d6103b63660046134b7565b611169565b3480156103c757600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610339565b3480156103fa57600080fd5b506101c0610409366004613276565b61180f565b34801561041a57600080fd5b50610447610429366004613276565b6001600160a01b0316600090815260c9602052604090205460ff1690565b6040516101979190613631565b34801561046057600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610339565b34801561049357600080fd5b5061018d6104a23660046133f5565b611a8c565b3480156104b357600080fd5b5061018d6000805160206138e983398151915281565b3480156104d557600080fd5b506101c06104e43660046133b8565b611bcf565b3480156104f557600080fd5b506101c061050436600461343e565b611e83565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561055b5760405162461bcd60e51b81526004016105529061368c565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166105a46000805160206138c9833981519152546001600160a01b031690565b6001600160a01b0316146105ca5760405162461bcd60e51b8152600401610552906136d8565b6105d381611eb6565b604080516000808252602082019092526105ef91839190611f60565b50565b60405163c5b8f5cf60e01b8152600080516020613930833981519152600482018190526000805160206138e98339815191526024830181905233604484015290916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5b8f5cf9060640160006040518083038186803b15801561067f57600080fd5b505afa158015610693573d6000803e3d6000fd5b5050505061069f6120df565b5050565b6106ab612131565b6001600160a01b038216600090815260c9602052604090205460ff1660018160038111156106db576106db613879565b1461071f5760405162461bcd60e51b815260206004820152601460248201527365546f6b656e206973206e6f742061637469766560601b6044820152606401610552565b6107546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016338585612179565b6040516311f9fbc960e21b8152336004820152602481018390526001600160a01b038416906347e7ef2490604401602060405180830381600087803b15801561079c57600080fd5b505af11580156107b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d49190613375565b50505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156108235760405162461bcd60e51b81526004016105529061368c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661086c6000805160206138c9833981519152546001600160a01b031690565b6001600160a01b0316146108925760405162461bcd60e51b8152600401610552906136d8565b61089b82611eb6565b61069f82826001611f60565b6040516312d9a6ad60e01b81526000805160206138e983398151915260048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906312d9a6ad9060440160006040518083038186803b15801561091d57600080fd5b505afa158015610931573d6000803e3d6000fd5b505050506001600160a01b03821661098b5760405162461bcd60e51b815260206004820152601d60248201527f5072656d69756d734163636f756e742063616e2774206265207a65726f0000006044820152606401610552565b306001600160a01b0316826001600160a01b0316634d15eb036040518163ffffffff1660e01b815260040160206040518083038186803b1580156109ce57600080fd5b505afa1580156109e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a069190613293565b6001600160a01b031614610a6c5760405162461bcd60e51b815260206004820152602760248201527f5072656d69756d734163636f756e74206e6f74206c696e6b656420746f2074686044820152661a5cc81c1bdbdb60ca1b6064820152608401610552565b6000826001600160a01b031663536ebbfc6040518163ffffffff1660e01b815260040160206040518083038186803b158015610aa757600080fd5b505afa158015610abb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610adf9190613293565b90506001600160a01b03811615610b4c576040516338ea38a760e21b81526001600160a01b03848116600483015282169063e3a8e29c90602401600060405180830381600087803b158015610b3357600080fd5b505af1158015610b47573d6000803e3d6000fd5b505050505b826001600160a01b0316637b83037b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b8557600080fd5b505afa158015610b99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bbd9190613293565b90506001600160a01b03811615610c2a576040516338ea38a760e21b81526001600160a01b03848116600483015282169063e3a8e29c90602401600060405180830381600087803b158015610c1157600080fd5b505af1158015610c25573d6000803e3d6000fd5b505050505b826001600160a01b03167f834362a634fb37104727a80cf5e936b5b1798edffcf4a89935f19d04eb0e88ec6001604051610c649190613631565b60405180910390a2505050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610d115760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610552565b506000805160206138c983398151915290565b6040516312d9a6ad60e01b81527f5ec196419322369c6bac572d883f4d990ae5ec82f7d93cdf89b85dbb05b63c2760048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906312d9a6ad9060440160006040518083038186803b158015610dac57600080fd5b505afa158015610dc0573d6000803e3d6000fd5b505050506001600160a01b038216600090815260c9602052604090205460ff166002816003811115610df457610df4613879565b14610e395760405162461bcd60e51b815260206004820152601560248201527411551bdad95b881b9bdd0819195c1c9958d85d1959605a1b6044820152606401610552565b826001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610e7257600080fd5b505afa158015610e86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eaa9190613375565b15610f065760405162461bcd60e51b815260206004820152602660248201527f45546f6b656e20686173206c69717569646974792c2063616e27742062652072604482015265195b5bdd995960d21b6064820152608401610552565b6001600160a01b038316600081815260c96020526040808220805460ff19169055517f84b036748e342a63da09ea533edd13275c8f2eb94ba67374cd3c7f4d6461d52c91610c6491613631565b610f5b612131565b42610f6e6101c083016101a08401613515565b64ffffffffff161115610fbc5760405162461bcd60e51b8152602060048201526016602482015275141bdb1a58de481b9bdd08195e1c1a5c9959081e595d60521b6044820152606401610552565b6105ef610fce3683900383018361349a565b600060016121d3565b610fdf612131565b61069f610ff13684900384018461349a565b8260006121d3565b600054610100900460ff16158080156110195750600054600160ff909116105b806110335750303b158015611033575060005460ff166001145b61104f5760405162461bcd60e51b815260040161055290613724565b6000805460ff191660011790558015611072576000805461ff0019166101001790555b61107a6126a8565b6110826126cf565b61108a6126fe565b80156105ef576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150565b6040516312d9a6ad60e01b815260008051602061393083398151915260048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906312d9a6ad9060440160006040518083038186803b15801561114957600080fd5b505afa15801561115d573d6000803e3d6000fd5b505050506105ef61289f565b6000611173612131565b6101608401516001600160a01b03811633146111dd5760405162461bcd60e51b815260206004820152602360248201527f4f6e6c792074686520524d2063616e20637265617465206e657720706f6c696360448201526269657360e81b6064820152608401610552565b604051635dfdc5d760e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063bbfb8bae9060240160006040518083038186803b15801561123e57600080fd5b505afa158015611252573d6000803e3d6000fd5b50505050826bffffffffffffffffffffffff166060826001600160a01b0316901b61127d9190613827565b8552611288856128dc565b60ca600087600001518152602001908152602001600020819055506000816001600160a01b03166373a952e86040518163ffffffff1660e01b815260040160206040518083038186803b1580156112de57600080fd5b505afa1580156112f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113169190613293565b60405163e3638ea360e01b81529091506001600160a01b0382169063e3638ea3906113459089906004016137bd565b600060405180830381600087803b15801561135f57600080fd5b505af1158015611373573d6000803e3d6000fd5b50508751604051632851206560e21b81526001600160a01b03898116600483015260248201929092527f0000000000000000000000000000000000000000000000000000000000000000909116925063a14481949150604401600060405180830381600087803b1580156113e657600080fd5b505af11580156113fa573d6000803e3d6000fd5b50505060c087015161143b91506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169087908490612179565b610140860151156114f3576114f385826001600160a01b0316637b83037b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561148357600080fd5b505afa158015611497573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114bb9190613293565b6101408901516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016929190612179565b610120860151156115ab576115ab85826001600160a01b031663536ebbfc6040518163ffffffff1660e01b815260040160206040518083038186803b15801561153b57600080fd5b505afa15801561154f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115739190613293565b6101208901516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016929190612179565b611677857f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166361d027b36040518163ffffffff1660e01b815260040160206040518083038186803b15801561160857600080fd5b505afa15801561161c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116409190613293565b60e08901516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016929190612179565b600086610100015111801561170e5750816001600160a01b031663521eb2736040518163ffffffff1660e01b815260040160206040518083038186803b1580156116c057600080fd5b505afa1580156116d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116f89190613293565b6001600160a01b0316856001600160a01b031614155b156117c0576117c085836001600160a01b031663521eb2736040518163ffffffff1660e01b815260040160206040518083038186803b15801561175057600080fd5b505afa158015611764573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117889190613293565b6101008901516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016929190612179565b816001600160a01b03167f38f420e3792044ba61536a1f83956eefc878b3fb09a7d4a28790f05b6a3eaf3b876040516117f991906137bd565b60405180910390a25050835190505b9392505050565b6040516312d9a6ad60e01b81526000805160206138e983398151915260048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906312d9a6ad9060440160006040518083038186803b15801561188557600080fd5b505afa158015611899573d6000803e3d6000fd5b5050506001600160a01b038316600090815260c9602052604081205460ff1691508160038111156118cc576118cc613879565b146119195760405162461bcd60e51b815260206004820152601a60248201527f65546f6b656e20616c726561647920696e2074686520706f6f6c0000000000006044820152606401610552565b6001600160a01b0383166119665760405162461bcd60e51b815260206004820152601460248201527365546f6b656e2063616e2774206265207a65726f60601b6044820152606401610552565b306001600160a01b0316836001600160a01b0316634d15eb036040518163ffffffff1660e01b815260040160206040518083038186803b1580156119a957600080fd5b505afa1580156119bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e19190613293565b6001600160a01b031614611a375760405162461bcd60e51b815260206004820152601e60248201527f45546f6b656e206e6f74206c696e6b656420746f207468697320706f6f6c00006044820152606401610552565b6001600160a01b038316600081815260c9602052604090819020805460ff1916600190811790915590517f84b036748e342a63da09ea533edd13275c8f2eb94ba67374cd3c7f4d6461d52c91610c6491613631565b6000611a96612131565b6001600160a01b038316600090815260c9602052604090205460ff166001816003811115611ac657611ac6613879565b1480611ae357506002816003811115611ae157611ae1613879565b145b611b415760405162461bcd60e51b815260206004820152602960248201527f65546f6b656e206e6f7420666f756e64206f7220776974686472617773206e6f6044820152681d08185b1b1bddd95960ba1b6064820152608401610552565b60405163f3fef3a360e01b8152336004820181905260248201859052906001600160a01b0386169063f3fef3a390604401602060405180830381600087803b158015611b8c57600080fd5b505af1158015611ba0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc49190613375565b925050505b92915050565b60405163c5b8f5cf60e01b8152600080516020613930833981519152600482018190526000805160206138e98339815191526024830181905233604484015290916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5b8f5cf9060640160006040518083038186803b158015611c5c57600080fd5b505afa158015611c70573d6000803e3d6000fd5b5050506001600160a01b038516600090815260c9602052604081205460ff169150816003811115611ca357611ca3613879565b1415611ce45760405162461bcd60e51b815260206004820152601060248201526f11551bdad95b881b9bdd08199bdd5b9960821b6044820152606401610552565b6003846003811115611cf857611cf8613879565b141580611dab5750604051632474521560e21b815260008051602061393083398151915260048201523360248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906391d148549060440160206040518083038186803b158015611d7357600080fd5b505afa158015611d87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dab9190613358565b611e015760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920475541524449414e2063616e2073757370656e642065546f6b656e6044820152607360f81b6064820152608401610552565b6001600160a01b038516600090815260c960205260409020805485919060ff19166001836003811115611e3657611e36613879565b0217905550846001600160a01b03167f84b036748e342a63da09ea533edd13275c8f2eb94ba67374cd3c7f4d6461d52c85604051611e749190613631565b60405180910390a25050505050565b611e8b612131565b61069f611e9d3684900384018461349a565b82611ea9576000611eaf565b83602001355b60006121d3565b60405163c5b8f5cf60e01b8152600080516020613930833981519152600482018190526000805160206138e98339815191526024830181905233604484015290916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5b8f5cf9060640160006040518083038186803b158015611f4357600080fd5b505afa158015611f57573d6000803e3d6000fd5b50505050505050565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611f9857611f938361290c565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611fd157600080fd5b505afa925050508015612001575060408051601f3d908101601f19168201909252611ffe91810190613375565b60015b6120645760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610552565b6000805160206138c983398151915281146120d35760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610552565b50611f938383836129a8565b6120e76129cd565b6033805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60335460ff16156121775760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610552565b565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526107d4908590612a16565b6121dc83612ae8565b61016083015181806121f657506001600160a01b03811633145b6122425760405162461bcd60e51b815260206004820181905260248201527f4f6e6c792074686520524d2063616e207265736f6c766520706f6c69636965736044820152606401610552565b82158061225a575042846101a0015164ffffffffff16115b6122a65760405162461bcd60e51b815260206004820152601860248201527f43616e277420706179206578706972656420706f6c69637900000000000000006044820152606401610552565b6040516310f199ef60e31b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063878ccf789060240160006040518083038186803b15801561230757600080fd5b505afa15801561231b573d6000803e3d6000fd5b50505050836020015183111561236c5760405162461bcd60e51b81526020600482015260166024820152751c185e5bdd5d080f881c1bdb1a58de4b9c185e5bdd5d60521b6044820152606401610552565b82158015906124f25784516040516331a9108f60e11b81526000916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691636352211e916123c89160040190815260200190565b60206040518083038186803b1580156123e057600080fd5b505afa1580156123f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124189190613293565b9050826001600160a01b03166373a952e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561245357600080fd5b505afa158015612467573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061248b9190613293565b6001600160a01b0316639d8c5ee78288886040518463ffffffff1660e01b81526004016124ba93929190613604565b600060405180830381600087803b1580156124d457600080fd5b505af11580156124e8573d6000803e3d6000fd5b50505050506125c1565b816001600160a01b03166373a952e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561252b57600080fd5b505afa15801561253f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125639190613293565b6001600160a01b031663c7a9c70d866040518263ffffffff1660e01b815260040161258e91906137bd565b600060405180830381600087803b1580156125a857600080fd5b505af11580156125bc573d6000803e3d6000fd5b505050505b6020850151604051636a448ef160e01b815260048101919091526001600160a01b03831690636a448ef190602401600060405180830381600087803b15801561260957600080fd5b505af115801561261d573d6000803e3d6000fd5b5050505084600001518561016001516001600160a01b03167f54f4a270ea08f88dc23b2520d6b063fecb24d956c4496f447926d736338f545e8660405161266691815260200190565b60405180910390a38451600090815260ca602052604081205583156126965784516126919085612b4e565b6126a1565b84516126a190612d4c565b5050505050565b600054610100900460ff166121775760405162461bcd60e51b815260040161055290613772565b600054610100900460ff166126f65760405162461bcd60e51b815260040161055290613772565b612177612e92565b600054610100900460ff161580801561271e5750600054600160ff909116105b806127385750303b158015612738575060005460ff166001145b6127545760405162461bcd60e51b815260040161055290613724565b6000805460ff191660011790558015612777576000805461ff0019166101001790555b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663948cb7196040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156127d257600080fd5b505af11580156127e6573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663948cb7196040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561284557600080fd5b505af1158015612859573d6000803e3d6000fd5b5050505080156105ef576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016110c8565b6128a7612131565b6033805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586121143390565b6000816040516020016128ef91906137bd565b604051602081830303815290604052805190602001209050919050565b6001600160a01b0381163b6129795760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610552565b6000805160206138c983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6129b183612ec5565b6000825111806129be5750805b15611f93576107d48383612f05565b60335460ff166121775760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610552565b6000612a6b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612ff09092919063ffffffff16565b805190915015611f935780806020019051810190612a899190613358565b611f935760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610552565b805115801590612b0f57508051600090815260ca6020526040902054612b0d826128dc565b145b6105ef5760405162461bcd60e51b815260206004820152601060248201526f141bdb1a58de481b9bdd08199bdd5b9960821b6044820152606401610552565b6040516331a9108f60e11b8152600481018390526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636352211e9060240160206040518083038186803b158015612bb157600080fd5b505afa158015612bc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612be99190613293565b90506001600160a01b0381163b612bff57505050565b6001600160a01b03811663d6281d3e336040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044810186905260648101859052608401602060405180830381600087803b158015612c6457600080fd5b505af1925050508015612c94575060408051601f3d908101601f19168201909252612c919181019061338e565b60015b612cdc573d808015612cc2576040519150601f19603f3d011682016040523d82523d6000602084013e612cc7565b606091505b508051612cd45750505050565b805181602001fd5b6001600160e01b03198116636b140e9f60e11b146107d45760405162461bcd60e51b815260206004820152602760248201527f496e76616c69642072657475726e2076616c75652066726f6d20506f6c696379604482015266102437b63232b960c91b6064820152608401610552565b6040516331a9108f60e11b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636352211e9060240160206040518083038186803b158015612daf57600080fd5b505afa158015612dc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612de79190613293565b90506001600160a01b0381163b612dfc575050565b6001600160a01b03811663e8e617b7336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015230602482015260448101859052606401602060405180830381600087803b158015612e5a57600080fd5b505af1925050508015612e8a575060408051601f3d908101601f19168201909252612e879181019061338e565b60015b611f93575050565b600054610100900460ff16612eb95760405162461bcd60e51b815260040161055290613772565b6033805460ff19169055565b612ece8161290c565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b612f6d5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610552565b600080846001600160a01b031684604051612f8891906135e8565b600060405180830381855af49150503d8060008114612fc3576040519150601f19603f3d011682016040523d82523d6000602084013e612fc8565b606091505b5091509150611bc4828260405180606001604052806027815260200161390960279139613007565b6060612fff8484600085613040565b949350505050565b60608315613016575081611808565b8251156130265782518084602001fd5b8160405162461bcd60e51b81526004016105529190613659565b6060824710156130a15760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610552565b6001600160a01b0385163b6130f85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610552565b600080866001600160a01b0316858760405161311491906135e8565b60006040518083038185875af1925050503d8060008114613151576040519150601f19603f3d011682016040523d82523d6000602084013e613156565b606091505b5091509150613166828286613007565b979650505050505050565b803561317c816138a5565b919050565b60006101c0828403121561319457600080fd5b50919050565b60006101c082840312156131ad57600080fd5b6131b56137cc565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e0820152610100808301358183015250610120808301358183015250610140808301358183015250610160613233818401613171565b90820152610180613245838201613261565b908201526101a0613257838201613261565b9082015292915050565b803564ffffffffff8116811461317c57600080fd5b60006020828403121561328857600080fd5b8135611808816138a5565b6000602082840312156132a557600080fd5b8151611808816138a5565b600080604083850312156132c357600080fd5b82356132ce816138a5565b915060208381013567ffffffffffffffff808211156132ec57600080fd5b818601915086601f83011261330057600080fd5b8135818111156133125761331261388f565b613324601f8201601f191685016137f6565b9150808252878482850101111561333a57600080fd5b80848401858401376000848284010152508093505050509250929050565b60006020828403121561336a57600080fd5b8151611808816138ba565b60006020828403121561338757600080fd5b5051919050565b6000602082840312156133a057600080fd5b81516001600160e01b03198116811461180857600080fd5b600080604083850312156133cb57600080fd5b82356133d6816138a5565b91506020830135600481106133ea57600080fd5b809150509250929050565b6000806040838503121561340857600080fd5b8235613413816138a5565b946020939093013593505050565b60006101c0828403121561343457600080fd5b6118088383613181565b6000806101e0838503121561345257600080fd5b61345c8484613181565b91506101c08301356133ea816138ba565b6000806101e0838503121561348157600080fd5b61348b8484613181565b946101c0939093013593505050565b60006101c082840312156134ad57600080fd5b611808838361319a565b600080600061020084860312156134cd57600080fd5b6134d7858561319a565b92506101c08401356134e8816138a5565b91506101e08401356bffffffffffffffffffffffff8116811461350a57600080fd5b809150509250925092565b60006020828403121561352757600080fd5b61180882613261565b805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e0830152610100808201518184015250610120808201518184015250610140808201518184015250610160808201516135b9828501826001600160a01b03169052565b50506101808181015164ffffffffff81168483015250506101a08181015164ffffffffff8116848301526107d4565b600082516135fa81846020870161384d565b9190910192915050565b6001600160a01b038416815261020081016136226020830185613530565b826101e0830152949350505050565b602081016004831061365357634e487b7160e01b600052602160045260246000fd5b91905290565b602081526000825180602084015261367881604085016020870161384d565b601f01601f19169190910160400192915050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6101c08101611bc98284613530565b6040516101c0810167ffffffffffffffff811182821017156137f0576137f061388f565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561381f5761381f61388f565b604052919050565b6000821982111561384857634e487b7160e01b600052601160045260246000fd5b500190565b60005b83811015613868578181015183820152602001613850565b838111156107d45750506000910152565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146105ef57600080fd5b80151581146105ef57600080fdfe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb2416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656455435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041a26469706673582212204c9dccbb67ddc08482365cdf6de8410e8afedcb1481ee9a3b9e305e0055a743864736f6c63430008060033",
|
|
1295
|
+
"bytecode": "0x60e0604052306080523480156200001557600080fd5b50604051620057663803806200576683398101604081905262000038916200020c565b6001600160a01b038216620000a65760405162461bcd60e51b815260206004820152602960248201527f506f6c696379506f6f6c3a206163636573732063616e6e6f74206265207a65726044820152686f206164647265737360b81b60648201526084015b60405180910390fd5b6001600160a01b038116620001125760405162461bcd60e51b815260206004820152602b60248201527f506f6c696379506f6f6c3a2063757272656e63792063616e6e6f74206265207a60448201526a65726f206164647265737360a81b60648201526084016200009d565b6200011c62000134565b6001600160a01b0391821660a0521660c0526200024b565b600054610100900460ff16156200019e5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016200009d565b60005460ff9081161015620001f1576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200020957600080fd5b50565b600080604083850312156200022057600080fd5b82516200022d81620001f3565b60208401519092506200024081620001f3565b809150509250929050565b60805160a05160c05161545162000315600039600081816106d501528181610dec01528181610e6001528181610ec1015281816118d70152818161198201528181611a2b01528181611a6a0152611b9b0152600081816105c801528181610cae0152818161114e01528181611274015281816113430152818161141201528181611cce015281816122ea0152818161297801528181612b0c01526130f8015260008181610bb101528181610bf101528181610fb101528181610ff1015261108001526154516000f3fe6080604052600436106102305760003560e01c80636352211e1161012e57806395d89b41116100ab578063e985e9c51161006f578063e985e9c5146106f9578063f0f4426014610719578063f3fef3a314610739578063f67b2bad14610759578063ffa600e31461077b57600080fd5b806395d89b4114610651578063a22cb46514610666578063b88d4fde14610686578063c87b56dd146106a6578063e5a6b10f146106c657600080fd5b806370a08231116100f257806370a082311461059957806371907f17146105b95780637a702b3c146105ec57806382afd23b1461060c5780638456cb591461063c57600080fd5b80636352211e146104f95780636769a76f146105195780636af6f1ef146105395780636b8734e7146105595780636f86c8971461057957600080fd5b80633f4ba83a116101bc57806352d1902d1161018057806352d1902d146104595780635b494dd51461046e5780635c975abb146104a25780635fcbf445146104ba57806361d027b3146104da57600080fd5b80633f4ba83a146103bd57806342842e0e146103d257806347e7ef24146103f25780634a47a3e0146104125780634f1ef2861461044657600080fd5b8063095ea7b311610203578063095ea7b3146102e657806323b872dd1461030657806324ea54f41461032657806333d6157a146103565780633659cfe61461039d57600080fd5b806301ffc9a71461023557806306fdde031461026a578063077f224a1461028c578063081812fc146102ae575b600080fd5b34801561024157600080fd5b506102556102503660046147c3565b61079b565b60405190151581526020015b60405180910390f35b34801561027657600080fd5b5061027f6107c7565b6040516102619190614830565b34801561029857600080fd5b506102ac6102a7366004614925565b610859565b005b3480156102ba57600080fd5b506102ce6102c936600461499d565b610a3a565b6040516001600160a01b039091168152602001610261565b3480156102f257600080fd5b506102ac6103013660046149b6565b610a61565b34801561031257600080fd5b506102ac6103213660046149e2565b610b76565b34801561033257600080fd5b506103486000805160206153fc83398151915281565b604051908152602001610261565b34801561036257600080fd5b50610390610371366004614a23565b6001600160a01b0316600090815261012e602052604090205460ff1690565b6040516102619190614a74565b3480156103a957600080fd5b506102ac6103b8366004614a23565b610ba7565b3480156103c957600080fd5b506102ac610c86565b3480156103de57600080fd5b506102ac6103ed3660046149e2565b610d47565b3480156103fe57600080fd5b506102ac61040d3660046149b6565b610d62565b34801561041e57600080fd5b506103487fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c081565b6102ac610454366004614a87565b610fa7565b34801561046557600080fd5b50610348611073565b34801561047a57600080fd5b506103487f5ec196419322369c6bac572d883f4d990ae5ec82f7d93cdf89b85dbb05b63c2781565b3480156104ae57600080fd5b5060335460ff16610255565b3480156104c657600080fd5b506102ac6104d5366004614ae4565b611126565b3480156104e657600080fd5b5061012d546001600160a01b03166102ce565b34801561050557600080fd5b506102ce61051436600461499d565b61159f565b34801561052557600080fd5b50610348610534366004614c04565b6115ff565b34801561054557600080fd5b506102ac610554366004614c8d565b611c31565b34801561056557600080fd5b506102ac610574366004614ae4565b611cb5565b34801561058557600080fd5b506102ac610594366004614a23565b6122d1565b3480156105a557600080fd5b506103486105b4366004614a23565b6128b7565b3480156105c557600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006102ce565b3480156105f857600080fd5b506102ac610607366004614caa565b61293d565b34801561061857600080fd5b5061025561062736600461499d565b600090815261012f6020526040902054151590565b34801561064857600080fd5b506102ac61295f565b34801561065d57600080fd5b5061027f612a04565b34801561067257600080fd5b506102ac610681366004614ce5565b612a13565b34801561069257600080fd5b506102ac6106a1366004614d13565b612a1e565b3480156106b257600080fd5b5061027f6106c136600461499d565b612a50565b3480156106d257600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006102ce565b34801561070557600080fd5b50610255610714366004614d7f565b612ac4565b34801561072557600080fd5b506102ac610734366004614a23565b612af3565b34801561074557600080fd5b506103486107543660046149b6565b612b99565b34801561076557600080fd5b506103486000805160206153b583398151915281565b34801561078757600080fd5b506102ac610796366004614dad565b612cc2565b60006107a682612cf5565b806107c157506001600160e01b031982166309632b4960e31b145b92915050565b606060fb80546107d690614ddc565b80601f016020809104026020016040519081016040528092919081815260200182805461080290614ddc565b801561084f5780601f106108245761010080835404028352916020019161084f565b820191906000526020600020905b81548152906001019060200180831161083257829003601f168201915b5050505050905090565b600054610100900460ff16158080156108795750600054600160ff909116105b806108935750303b158015610893575060005460ff166001145b6108fb5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801561091e576000805461ff0019166101001790555b600084511161096f5760405162461bcd60e51b815260206004820181905260248201527f506f6c696379506f6f6c3a206e616d652063616e6e6f7420626520656d70747960448201526064016108f2565b60008351116109cb5760405162461bcd60e51b815260206004820152602260248201527f506f6c696379506f6f6c3a2073796d626f6c2063616e6e6f7420626520656d70604482015261747960f01b60648201526084016108f2565b6109d3612d45565b6109dd8484612d6e565b6109e5612d9f565b6109ee82612dce565b8015610a34576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b6000610a4582612dfe565b50600090815260ff60205260409020546001600160a01b031690565b6000610a6c8261159f565b9050806001600160a01b0316836001600160a01b031603610ad95760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084016108f2565b336001600160a01b0382161480610af55750610af58133612ac4565b610b675760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c000060648201526084016108f2565b610b718383612e5d565b505050565b610b803382612ecb565b610b9c5760405162461bcd60e51b81526004016108f290614e10565b610b71838383612f29565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610bef5760405162461bcd60e51b81526004016108f290614e5e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610c38600080516020615395833981519152546001600160a01b031690565b6001600160a01b031614610c5e5760405162461bcd60e51b81526004016108f290614eaa565b610c67816130d0565b60408051600080825260208201909252610c839183919061318a565b50565b6000805160206153fc8339815191526000805160206153b58339815191526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663c5b8f5cf8383336040516001600160e01b031960e086901b168152600481019390935260248301919091526001600160a01b0316604482015260640160006040518083038186803b158015610d2357600080fd5b505afa158015610d37573d6000803e3d6000fd5b50505050610d436132f5565b5050565b610b7183838360405180602001604052806000815250612a1e565b610d6a613347565b6001610d758361338d565b6003811115610d8657610d86614a40565b14610dca5760405162461bcd60e51b815260206004820152601460248201527365546f6b656e206973206e6f742061637469766560601b60448201526064016108f2565b6040516370a0823160e01b81526001600160a01b0383811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015610e35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e599190614ef6565b9050610e907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633858561341a565b6001600160a01b0383166347e7ef24336040516370a0823160e01b81526001600160a01b03878116600483015285917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015610f0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2e9190614ef6565b610f389190614f25565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610f83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a349190614ef6565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610fef5760405162461bcd60e51b81526004016108f290614e5e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611038600080516020615395833981519152546001600160a01b031690565b6001600160a01b03161461105e5760405162461bcd60e51b81526004016108f290614eaa565b611067826130d0565b610d438282600161318a565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146111135760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016108f2565b5060008051602061539583398151915290565b6000805160206153fc8339815191526000805160206153b58339815191526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663c5b8f5cf8383336040516001600160e01b031960e086901b168152600481019390935260248301919091526001600160a01b0316604482015260640160006040518083038186803b1580156111c357600080fd5b505afa1580156111d7573d6000803e3d6000fd5b5050506001600160a01b038516600090815261012e602052604081209150815460ff16600381111561120b5761120b614a40565b0361124e5760405162461bcd60e51b815260206004820152601360248201527210dbdb5c1bdb995b9d081b9bdd08199bdd5b99606a1b60448201526064016108f2565b600184600381111561126257611262614a40565b14801561131757506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166391d148546000805160206153b5833981519152336040516001600160e01b031960e085901b16815260048101929092526001600160a01b03166024820152604401602060405180830381865afa1580156112f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113179190614f38565b806113e65750600384600381111561133157611331614a40565b1480156113e657506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166391d148546000805160206153fc833981519152336040516001600160e01b031960e085901b16815260048101929092526001600160a01b03166024820152604401602060405180830381865afa1580156113c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e69190614f38565b806114b55750600284600381111561140057611400614a40565b1480156114b557506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166391d148546000805160206153b5833981519152336040516001600160e01b031960e085901b16815260048101929092526001600160a01b03166024820152604401602060405180830381865afa158015611491573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b59190614f38565b6115275760405162461bcd60e51b815260206004820152603e60248201527f4f6e6c7920475541524449414e2063616e2073757370656e64202f204f6e6c7960448201527f204c4556454c312063616e2061637469766174652f646570726563617465000060648201526084016108f2565b80548490829060ff1916600183600381111561154557611545614a40565b021790555080546040516001600160a01b038716917ffe4c6998a06520b63340a48710b374432cb395da90e4e5360e1ec7aeefebecef9161159091610100900460ff16908890614f55565b60405180910390a25050505050565b600081815260fd60205260408120546001600160a01b0316806107c15760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016108f2565b6000611609613347565b6101608501516001600160a01b03811633146116735760405162461bcd60e51b815260206004820152602360248201527f4f6e6c792074686520524d2063616e20637265617465206e657720706f6c696360448201526269657360e81b60648201526084016108f2565b600161167e82613474565b600381111561168f5761168f614a40565b146116e65760405162461bcd60e51b815260206004820152602160248201527f524d206d6f64756c65206e6f7420666f756e64206f72206e6f742061637469766044820152606560f81b60648201526084016108f2565b6000816001600160a01b03166373a952e86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611726573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174a9190614f7b565b90506001611757826134f7565b600381111561176857611768614a40565b146117c55760405162461bcd60e51b815260206004820152602760248201527f5072656d69756d734163636f756e74206e6f7420666f756e64206f72206e6f746044820152662061637469766560c81b60648201526084016108f2565b6117f06bffffffffffffffffffffffff85166bffffffffffffffffffffffff19606085901b16614f98565b808852600090815261012f6020526040902054156118485760405162461bcd60e51b8152602060048201526015602482015274506f6c69637920616c72656164792065786973747360581b60448201526064016108f2565b61185187613585565b8751600090815261012f602052604090819020919091555163e3638ea360e01b81526001600160a01b0382169063e3638ea390611892908a90600401615063565b600060405180830381600087803b1580156118ac57600080fd5b505af11580156118c0573d6000803e3d6000fd5b50505060c088015161190191506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016908890849061341a565b610140870151156119aa576119aa86826001600160a01b0316637b83037b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561194e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119729190614f7b565b6101408a01516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692919061341a565b61012087015115611a5357611a5386826001600160a01b031663536ebbfc6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119f7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1b9190614f7b565b6101208a01516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692919061341a565b61012d5460e0880151611a98916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116928a92919091169061341a565b6000876101000151118015611b205750816001600160a01b031663521eb2736040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ae6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b0a9190614f7b565b6001600160a01b0316866001600160a01b031614155b15611bc357611bc386836001600160a01b031663521eb2736040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8b9190614f7b565b6101008a01516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692919061341a565b611be185886000015160405180602001604052806000815250613604565b816001600160a01b03167f38f420e3792044ba61536a1f83956eefc878b3fb09a7d4a28790f05b6a3eaf3b88604051611c1a9190615063565b60405180910390a25050845190505b949350505050565b611c39613347565b42611c4c6101c083016101a08401615072565b64ffffffffff161115611c9a5760405162461bcd60e51b8152602060048201526016602482015275141bdb1a58de481b9bdd08195e1c1a5c9959081e595d60521b60448201526064016108f2565b610c83611cac3683900383018361508d565b60006001613637565b6000805160206153b58339815191526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166312d9a6ad82336040516001600160e01b031960e085901b16815260048101929092526001600160a01b0316602482015260440160006040518083038186803b158015611d3a57600080fd5b505afa158015611d4e573d6000803e3d6000fd5b5050506001600160a01b038416600090815261012e602052604081209150815460ff166003811115611d8257611d82614a40565b14611dcf5760405162461bcd60e51b815260206004820152601d60248201527f436f6d706f6e656e7420616c726561647920696e2074686520706f6f6c00000060448201526064016108f2565b306001600160a01b0316846001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e3b9190614f7b565b6001600160a01b031614611e9b5760405162461bcd60e51b815260206004820152602160248201527f436f6d706f6e656e74206e6f74206c696e6b656420746f207468697320706f6f6044820152601b60fa1b60648201526084016108f2565b6001836003811115611eaf57611eaf614a40565b148015611f2557506040516301ffc9a760e01b8152629d19af60e21b60048201526001600160a01b038516906301ffc9a790602401602060405180830381865afa158015611f01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f259190614f38565b80611fb657506003836003811115611f3f57611f3f614a40565b148015611fb657506040516301ffc9a760e01b8152632dd9c4bb60e21b60048201526001600160a01b038516906301ffc9a790602401602060405180830381865afa158015611f92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fb69190614f38565b8061204757506002836003811115611fd057611fd0614a40565b14801561204757506040516301ffc9a760e01b815263da40804f60e01b60048201526001600160a01b038516906301ffc9a790602401602060405180830381865afa158015612023573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120479190614f38565b6120935760405162461bcd60e51b815260206004820152601e60248201527f506f6c696379506f6f6c3a204e6f7420746865207269676874206b696e64000060448201526064016108f2565b8054600160ff198216811783558491839161ffff19909116176101008360038111156120c1576120c1614a40565b021790555060038360038111156120da576120da614a40565b036122875760008490506000816001600160a01b031663536ebbfc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612124573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121489190614f7b565b90506001600160a01b038116156121b5576040516338ea38a760e21b81526001600160a01b03838116600483015282169063e3a8e29c90602401600060405180830381600087803b15801561219c57600080fd5b505af11580156121b0573d6000803e3d6000fd5b505050505b816001600160a01b0316637b83037b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122179190614f7b565b90506001600160a01b03811615612284576040516338ea38a760e21b81526001600160a01b03838116600483015282169063e3a8e29c90602401600060405180830381600087803b15801561226b57600080fd5b505af115801561227f573d6000803e3d6000fd5b505050505b50505b836001600160a01b03167ffe4c6998a06520b63340a48710b374432cb395da90e4e5360e1ec7aeefebecef8460016040516122c3929190614f55565b60405180910390a250505050565b6000805160206153b58339815191526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166312d9a6ad82336040516001600160e01b031960e085901b16815260048101929092526001600160a01b0316602482015260440160006040518083038186803b15801561235657600080fd5b505afa15801561236a573d6000803e3d6000fd5b505050506001600160a01b038216600090815261012e602052604090206002815460ff16600381111561239f5761239f614a40565b146123ec5760405162461bcd60e51b815260206004820152601860248201527f436f6d706f6e656e74206e6f742064657072656361746564000000000000000060448201526064016108f2565b60018154610100900460ff16600381111561240957612409614a40565b036124d157826001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561244c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124709190614ef6565b156124cc5760405162461bcd60e51b815260206004820152602660248201527f45546f6b656e20686173206c69717569646974792c2063616e27742062652072604482015265195b5bdd995960d21b60648201526084016108f2565b612843565b60028154610100900460ff1660038111156124ee576124ee614a40565b036125b557826001600160a01b0316637ff8bf256040518163ffffffff1660e01b8152600401602060405180830381865afa158015612531573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125559190614ef6565b156124cc5760405162461bcd60e51b815260206004820152602a60248201527f43616e27742072656d6f76652061206d6f64756c6520776974682061637469766044820152696520706f6c696369657360b01b60648201526084016108f2565b60038154610100900460ff1660038111156125d2576125d2614a40565b03612843576000839050806001600160a01b03166326ccbd226040518163ffffffff1660e01b8152600401602060405180830381865afa15801561261a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061263e9190614ef6565b156126a05760405162461bcd60e51b815260206004820152602c60248201527f43616e27742072656d6f76652061205072656d69756d734163636f756e74207760448201526b697468207072656d69756d7360a01b60648201526084016108f2565b6000816001600160a01b031663536ebbfc6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127049190614f7b565b90506001600160a01b03811615612771576040516376c7fc5560e01b81526001600160a01b0383811660048301528216906376c7fc5590602401600060405180830381600087803b15801561275857600080fd5b505af115801561276c573d6000803e3d6000fd5b505050505b816001600160a01b0316637b83037b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d39190614f7b565b90506001600160a01b03811615612840576040516376c7fc5560e01b81526001600160a01b0383811660048301528216906376c7fc5590602401600060405180830381600087803b15801561282757600080fd5b505af115801561283b573d6000803e3d6000fd5b505050505b50505b80546040516001600160a01b038516917ffe4c6998a06520b63340a48710b374432cb395da90e4e5360e1ec7aeefebecef9161288a91610100900460ff1690600090614f55565b60405180910390a250506001600160a01b0316600090815261012e60205260409020805461ffff19169055565b60006001600160a01b0382166129215760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016108f2565b506001600160a01b0316600090815260fe602052604090205490565b612945613347565b610d436129573684900384018461508d565b826000613637565b6000805160206153fc8339815191526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166312d9a6ad82336040516001600160e01b031960e085901b16815260048101929092526001600160a01b0316602482015260440160006040518083038186803b1580156129e457600080fd5b505afa1580156129f8573d6000803e3d6000fd5b50505050610c83613aee565b606060fc80546107d690614ddc565b610d43338383613b2b565b612a283383612ecb565b612a445760405162461bcd60e51b81526004016108f290614e10565b610a3484848484613bfa565b6060612a5b82612dfe565b6000612a7260408051602081019091526000815290565b90506000815111612a925760405180602001604052806000815250612abd565b80612a9c84613c2d565b604051602001612aad9291906150aa565b6040516020818303038152906040525b9392505050565b6001600160a01b0391821660009081526101006020908152604080832093909416825291909152205460ff1690565b6000805160206153b58339815191526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166312d9a6ad82336040516001600160e01b031960e085901b16815260048101929092526001600160a01b0316602482015260440160006040518083038186803b158015612b7857600080fd5b505afa158015612b8c573d6000803e3d6000fd5b50505050610d4382613d2e565b6000612ba3613347565b6000612bae8461338d565b90506001816003811115612bc457612bc4614a40565b1480612be157506002816003811115612bdf57612bdf614a40565b145b612c3f5760405162461bcd60e51b815260206004820152602960248201527f65546f6b656e206e6f7420666f756e64206f7220776974686472617773206e6f6044820152681d08185b1b1bddd95960ba1b60648201526084016108f2565b60003360405163f3fef3a360e01b81526001600160a01b038083166004830152602482018790529192509086169063f3fef3a3906044016020604051808303816000875af1158015612c95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cb99190614ef6565b95945050505050565b612cca613347565b610d43612cdc3684900384018461508d565b82612ce8576000612cee565b83602001355b6000613637565b60006001600160e01b031982166380ac58cd60e01b1480612d2657506001600160e01b03198216635b5e139f60e01b145b806107c157506301ffc9a760e01b6001600160e01b03198316146107c1565b600054610100900460ff16612d6c5760405162461bcd60e51b81526004016108f2906150d9565b565b600054610100900460ff16612d955760405162461bcd60e51b81526004016108f2906150d9565b610d438282613dfe565b600054610100900460ff16612dc65760405162461bcd60e51b81526004016108f2906150d9565b612d6c613e3e565b600054610100900460ff16612df55760405162461bcd60e51b81526004016108f2906150d9565b610c8381613d2e565b600081815260fd60205260409020546001600160a01b0316610c835760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016108f2565b600081815260ff6020526040902080546001600160a01b0319166001600160a01b0384169081179091558190612e928261159f565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080612ed78361159f565b9050806001600160a01b0316846001600160a01b03161480612efe5750612efe8185612ac4565b80611c295750836001600160a01b0316612f1784610a3a565b6001600160a01b031614949350505050565b826001600160a01b0316612f3c8261159f565b6001600160a01b031614612fa05760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b60648201526084016108f2565b6001600160a01b0382166130025760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016108f2565b61300d838383613e71565b613018600082612e5d565b6001600160a01b038316600090815260fe60205260408120805460019290613041908490614f25565b90915550506001600160a01b038216600090815260fe6020526040812080546001929061306f908490614f98565b9091555050600081815260fd602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000805160206153fc8339815191526000805160206153b58339815191526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663c5b8f5cf8383336040516001600160e01b031960e086901b168152600481019390935260248301919091526001600160a01b0316604482015260640160006040518083038186803b15801561316d57600080fd5b505afa158015613181573d6000803e3d6000fd5b50505050505050565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156131bd57610b7183613e79565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015613217575060408051601f3d908101601f1916820190925261321491810190614ef6565b60015b61327a5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016108f2565b60008051602061539583398151915281146132e95760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016108f2565b50610b71838383613f15565b6132fd613f3a565b6033805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60335460ff1615612d6c5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016108f2565b6001600160a01b038116600090815261012e6020526040812060018154610100900460ff1660038111156133c3576133c3614a40565b146134105760405162461bcd60e51b815260206004820152601a60248201527f436f6d706f6e656e74206973206e6f7420616e2065546f6b656e00000000000060448201526064016108f2565b5460ff1692915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610a34908590613f83565b6001600160a01b038116600090815261012e6020526040812060028154610100900460ff1660038111156134aa576134aa614a40565b146134105760405162461bcd60e51b815260206004820152601d60248201527f436f6d706f6e656e74206973206e6f742061205269736b4d6f64756c6500000060448201526064016108f2565b6001600160a01b038116600090815261012e6020526040812060038154610100900460ff16600381111561352d5761352d614a40565b146134105760405162461bcd60e51b815260206004820152602260248201527f436f6d706f6e656e74206973206e6f742061205072656d69756d734163636f756044820152611b9d60f21b60648201526084016108f2565b6000816040516020016135989190615063565b60408051601f1981840301815291905280516020909101209050806135ff5760405162461bcd60e51b815260206004820152601860248201527f506f6c6963793a20686173682063616e6e6f742062652030000000000000000060448201526064016108f2565b919050565b61360e8383614055565b61361b60008484846141a3565b610b715760405162461bcd60e51b81526004016108f290615124565b613640836142a1565b610160830151818061365a57506001600160a01b03811633145b6136a65760405162461bcd60e51b815260206004820181905260248201527f4f6e6c792074686520524d2063616e207265736f6c766520706f6c696369657360448201526064016108f2565b8215806136be575042846101a0015164ffffffffff16115b61370a5760405162461bcd60e51b815260206004820152601860248201527f43616e277420706179206578706972656420706f6c696379000000000000000060448201526064016108f2565b600061371582613474565b9050600181600381111561372b5761372b614a40565b14806137485750600281600381111561374657613746614a40565b145b6137ba5760405162461bcd60e51b815260206004820152603a60248201527f4d6f64756c65206d75737420626520616374697665206f72206465707265636160448201527f74656420746f2070726f63657373207265736f6c7574696f6e7300000000000060648201526084016108f2565b84602001518411156138075760405162461bcd60e51b81526020600482015260166024820152751c185e5bdd5d080f881c1bdb1a58de4b9c185e5bdd5d60521b60448201526064016108f2565b600080851190506000836001600160a01b03166373a952e86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561384e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138729190614f7b565b905061387d816134f7565b9250600183600381111561389357613893614a40565b14806138b0575060028360038111156138ae576138ae614a40565b145b61392e5760405162461bcd60e51b815260206004820152604360248201527f5072656d69756d734163636f756e74206d75737420626520616374697665206f60448201527f72206465707265636174656420746f2070726f63657373207265736f6c7574696064820152626f6e7360e81b608482015260a4016108f2565b8651600090815261012f602052604081205581156139c0576000613955886000015161159f565b604051639d8c5ee760e01b81529091506001600160a01b03831690639d8c5ee7906139889084908c908c90600401615176565b600060405180830381600087803b1580156139a257600080fd5b505af11580156139b6573d6000803e3d6000fd5b5050505050613a1f565b60405163c7a9c70d60e01b81526001600160a01b0382169063c7a9c70d906139ec908a90600401615063565b600060405180830381600087803b158015613a0657600080fd5b505af1158015613a1a573d6000803e3d6000fd5b505050505b6020870151604051636a448ef160e01b815260048101919091526001600160a01b03851690636a448ef190602401600060405180830381600087803b158015613a6757600080fd5b505af1158015613a7b573d6000803e3d6000fd5b5050505086600001518761016001516001600160a01b03167f54f4a270ea08f88dc23b2520d6b063fecb24d956c4496f447926d736338f545e88604051613ac491815260200190565b60405180910390a38515613ae3578651613ade9087614308565b613181565b865161318190614462565b613af6613347565b6033805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861332a3390565b816001600160a01b0316836001600160a01b031603613b8c5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016108f2565b6001600160a01b0383811660008181526101006020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b613c05848484612f29565b613c11848484846141a3565b610a345760405162461bcd60e51b81526004016108f290615124565b606081600003613c545750506040805180820190915260018152600360fc1b602082015290565b8160005b8115613c7e5780613c68816151a3565b9150613c779050600a836151d2565b9150613c58565b60008167ffffffffffffffff811115613c9957613c99614843565b6040519080825280601f01601f191660200182016040528015613cc3576020820181803683370190505b5090505b8415611c2957613cd8600183614f25565b9150613ce5600a866151e6565b613cf0906030614f98565b60f81b818381518110613d0557613d056151fa565b60200101906001600160f81b031916908160001a905350613d27600a866151d2565b9450613cc7565b6001600160a01b038116613d9c5760405162461bcd60e51b815260206004820152602f60248201527f506f6c696379506f6f6c3a2074726561737572792063616e6e6f74206265207460448201526e6865207a65726f206164647265737360881b60648201526084016108f2565b61012d80546001600160a01b0319166001600160a01b038316179055600161012d546040516001600160a01b0390911681527fb6bdbd44472629fc24a00b6f4ee3348b72c9eff333d0e9c16d78c49da1323c8f9060200160405180910390a250565b600054610100900460ff16613e255760405162461bcd60e51b81526004016108f2906150d9565b60fb613e31838261525e565b5060fc610b71828261525e565b600054610100900460ff16613e655760405162461bcd60e51b81526004016108f2906150d9565b6033805460ff19169055565b610b71613347565b6001600160a01b0381163b613ee65760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016108f2565b60008051602061539583398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b613f1e83614509565b600082511180613f2b5750805b15610b7157610a348383614549565b60335460ff16612d6c5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016108f2565b6000613fd8826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166146349092919063ffffffff16565b805190915015610b715780806020019051810190613ff69190614f38565b610b715760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016108f2565b6001600160a01b0382166140ab5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016108f2565b600081815260fd60205260409020546001600160a01b0316156141105760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016108f2565b61411c60008383613e71565b6001600160a01b038216600090815260fe60205260408120805460019290614145908490614f98565b9091555050600081815260fd602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60006001600160a01b0384163b1561429957604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906141e790339089908890889060040161531e565b6020604051808303816000875af1925050508015614222575060408051601f3d908101601f1916820190925261421f9181019061535b565b60015b61427f573d808015614250576040519150601f19603f3d011682016040523d82523d6000602084013e614255565b606091505b5080516000036142775760405162461bcd60e51b81526004016108f290615124565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611c29565b506001611c29565b8051158015906142c957508051600090815261012f60205260409020546142c782613585565b145b610c835760405162461bcd60e51b815260206004820152601060248201526f141bdb1a58de481b9bdd08199bdd5b9960821b60448201526064016108f2565b60006143138361159f565b90506001600160a01b0381163b61432957505050565b6001600160a01b03811663d6281d3e336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015230602482015260448101869052606481018590526084016020604051808303816000875af19250505080156143af575060408051601f3d908101601f191682019092526143ac9181019061535b565b60015b6143f2573d8080156143dd576040519150601f19603f3d011682016040523d82523d6000602084013e6143e2565b606091505b5080516000036142775750505050565b6001600160e01b03198116636b140e9f60e11b14610a345760405162461bcd60e51b815260206004820152602760248201527f496e76616c69642072657475726e2076616c75652066726f6d20506f6c696379604482015266102437b63232b960c91b60648201526084016108f2565b600061446d8261159f565b90506001600160a01b0381163b614482575050565b6001600160a01b03811663e8e617b7336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604481018590526064016020604051808303816000875af1925050508015614501575060408051601f3d908101601f191682019092526144fe9181019061535b565b60015b610b71575050565b61451281613e79565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6145b15760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016108f2565b600080846001600160a01b0316846040516145cc9190615378565b600060405180830381855af49150503d8060008114614607576040519150601f19603f3d011682016040523d82523d6000602084013e61460c565b606091505b5091509150612cb982826040518060600160405280602781526020016153d560279139614643565b6060611c29848460008561467c565b60608315614652575081612abd565b8251156146625782518084602001fd5b8160405162461bcd60e51b81526004016108f29190614830565b6060824710156146dd5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016108f2565b6001600160a01b0385163b6147345760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016108f2565b600080866001600160a01b031685876040516147509190615378565b60006040518083038185875af1925050503d806000811461478d576040519150601f19603f3d011682016040523d82523d6000602084013e614792565b606091505b50915091506147a2828286614643565b979650505050505050565b6001600160e01b031981168114610c8357600080fd5b6000602082840312156147d557600080fd5b8135612abd816147ad565b60005b838110156147fb5781810151838201526020016147e3565b50506000910152565b6000815180845261481c8160208601602086016147e0565b601f01601f19169290920160200192915050565b602081526000612abd6020830184614804565b634e487b7160e01b600052604160045260246000fd5b6040516101c0810167ffffffffffffffff8111828210171561487d5761487d614843565b60405290565b600082601f83011261489457600080fd5b813567ffffffffffffffff808211156148af576148af614843565b604051601f8301601f19908116603f011681019082821181831017156148d7576148d7614843565b816040528381528660208588010111156148f057600080fd5b836020870160208301376000602085830101528094505050505092915050565b6001600160a01b0381168114610c8357600080fd5b60008060006060848603121561493a57600080fd5b833567ffffffffffffffff8082111561495257600080fd5b61495e87838801614883565b9450602086013591508082111561497457600080fd5b5061498186828701614883565b925050604084013561499281614910565b809150509250925092565b6000602082840312156149af57600080fd5b5035919050565b600080604083850312156149c957600080fd5b82356149d481614910565b946020939093013593505050565b6000806000606084860312156149f757600080fd5b8335614a0281614910565b92506020840135614a1281614910565b929592945050506040919091013590565b600060208284031215614a3557600080fd5b8135612abd81614910565b634e487b7160e01b600052602160045260246000fd5b60048110610c8357634e487b7160e01b600052602160045260246000fd5b60208101614a8183614a56565b91905290565b60008060408385031215614a9a57600080fd5b8235614aa581614910565b9150602083013567ffffffffffffffff811115614ac157600080fd5b614acd85828601614883565b9150509250929050565b60048110610c8357600080fd5b60008060408385031215614af757600080fd5b8235614b0281614910565b91506020830135614b1281614ad7565b809150509250929050565b80356135ff81614910565b803564ffffffffff811681146135ff57600080fd5b60006101c08284031215614b5057600080fd5b614b58614859565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e0820152610100808301358183015250610120808301358183015250610140808301358183015250610160614bd6818401614b1d565b90820152610180614be8838201614b28565b908201526101a0614bfa838201614b28565b9082015292915050565b6000806000806102208587031215614c1b57600080fd5b614c258686614b3d565b93506101c0850135614c3681614910565b92506101e0850135614c4781614910565b91506102008501356bffffffffffffffffffffffff81168114614c6957600080fd5b939692955090935050565b60006101c08284031215614c8757600080fd5b50919050565b60006101c08284031215614ca057600080fd5b612abd8383614c74565b6000806101e08385031215614cbe57600080fd5b614cc88484614c74565b946101c0939093013593505050565b8015158114610c8357600080fd5b60008060408385031215614cf857600080fd5b8235614d0381614910565b91506020830135614b1281614cd7565b60008060008060808587031215614d2957600080fd5b8435614d3481614910565b93506020850135614d4481614910565b925060408501359150606085013567ffffffffffffffff811115614d6757600080fd5b614d7387828801614883565b91505092959194509250565b60008060408385031215614d9257600080fd5b8235614d9d81614910565b91506020830135614b1281614910565b6000806101e08385031215614dc157600080fd5b614dcb8484614c74565b91506101c0830135614b1281614cd7565b600181811c90821680614df057607f821691505b602082108103614c8757634e487b7160e01b600052602260045260246000fd5b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b600060208284031215614f0857600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156107c1576107c1614f0f565b600060208284031215614f4a57600080fd5b8151612abd81614cd7565b60408101614f6284614a56565b838252614f6e83614a56565b8260208301529392505050565b600060208284031215614f8d57600080fd5b8151612abd81614910565b808201808211156107c1576107c1614f0f565b805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010080820151818401525061012080820151818401525061014080820151818401525061016080820151615034828501826001600160a01b03169052565b50506101808181015164ffffffffff81168483015250506101a08181015164ffffffffff811684830152610a34565b6101c081016107c18284614fab565b60006020828403121561508457600080fd5b612abd82614b28565b60006101c082840312156150a057600080fd5b612abd8383614b3d565b600083516150bc8184602088016147e0565b8351908301906150d08183602088016147e0565b01949350505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6001600160a01b038416815261020081016151946020830185614fab565b826101e0830152949350505050565b6000600182016151b5576151b5614f0f565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6000826151e1576151e16151bc565b500490565b6000826151f5576151f56151bc565b500690565b634e487b7160e01b600052603260045260246000fd5b601f821115610b7157600081815260208120601f850160051c810160208610156152375750805b601f850160051c820191505b8181101561525657828155600101615243565b505050505050565b815167ffffffffffffffff81111561527857615278614843565b61528c816152868454614ddc565b84615210565b602080601f8311600181146152c157600084156152a95750858301515b600019600386901b1c1916600185901b178555615256565b600085815260208120601f198616915b828110156152f0578886015182559484019460019091019084016152d1565b508582101561530e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061535190830184614804565b9695505050505050565b60006020828403121561536d57600080fd5b8151612abd816147ad565b6000825161538a8184602087016147e0565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb2416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656455435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041a264697066735822122007e34147edcf7d7051654a836256e5ace2e47fe73d3e10a006e4d131ef425bf664736f6c63430008100033",
|
|
1296
|
+
"deployedBytecode": "0x6080604052600436106102305760003560e01c80636352211e1161012e57806395d89b41116100ab578063e985e9c51161006f578063e985e9c5146106f9578063f0f4426014610719578063f3fef3a314610739578063f67b2bad14610759578063ffa600e31461077b57600080fd5b806395d89b4114610651578063a22cb46514610666578063b88d4fde14610686578063c87b56dd146106a6578063e5a6b10f146106c657600080fd5b806370a08231116100f257806370a082311461059957806371907f17146105b95780637a702b3c146105ec57806382afd23b1461060c5780638456cb591461063c57600080fd5b80636352211e146104f95780636769a76f146105195780636af6f1ef146105395780636b8734e7146105595780636f86c8971461057957600080fd5b80633f4ba83a116101bc57806352d1902d1161018057806352d1902d146104595780635b494dd51461046e5780635c975abb146104a25780635fcbf445146104ba57806361d027b3146104da57600080fd5b80633f4ba83a146103bd57806342842e0e146103d257806347e7ef24146103f25780634a47a3e0146104125780634f1ef2861461044657600080fd5b8063095ea7b311610203578063095ea7b3146102e657806323b872dd1461030657806324ea54f41461032657806333d6157a146103565780633659cfe61461039d57600080fd5b806301ffc9a71461023557806306fdde031461026a578063077f224a1461028c578063081812fc146102ae575b600080fd5b34801561024157600080fd5b506102556102503660046147c3565b61079b565b60405190151581526020015b60405180910390f35b34801561027657600080fd5b5061027f6107c7565b6040516102619190614830565b34801561029857600080fd5b506102ac6102a7366004614925565b610859565b005b3480156102ba57600080fd5b506102ce6102c936600461499d565b610a3a565b6040516001600160a01b039091168152602001610261565b3480156102f257600080fd5b506102ac6103013660046149b6565b610a61565b34801561031257600080fd5b506102ac6103213660046149e2565b610b76565b34801561033257600080fd5b506103486000805160206153fc83398151915281565b604051908152602001610261565b34801561036257600080fd5b50610390610371366004614a23565b6001600160a01b0316600090815261012e602052604090205460ff1690565b6040516102619190614a74565b3480156103a957600080fd5b506102ac6103b8366004614a23565b610ba7565b3480156103c957600080fd5b506102ac610c86565b3480156103de57600080fd5b506102ac6103ed3660046149e2565b610d47565b3480156103fe57600080fd5b506102ac61040d3660046149b6565b610d62565b34801561041e57600080fd5b506103487fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c081565b6102ac610454366004614a87565b610fa7565b34801561046557600080fd5b50610348611073565b34801561047a57600080fd5b506103487f5ec196419322369c6bac572d883f4d990ae5ec82f7d93cdf89b85dbb05b63c2781565b3480156104ae57600080fd5b5060335460ff16610255565b3480156104c657600080fd5b506102ac6104d5366004614ae4565b611126565b3480156104e657600080fd5b5061012d546001600160a01b03166102ce565b34801561050557600080fd5b506102ce61051436600461499d565b61159f565b34801561052557600080fd5b50610348610534366004614c04565b6115ff565b34801561054557600080fd5b506102ac610554366004614c8d565b611c31565b34801561056557600080fd5b506102ac610574366004614ae4565b611cb5565b34801561058557600080fd5b506102ac610594366004614a23565b6122d1565b3480156105a557600080fd5b506103486105b4366004614a23565b6128b7565b3480156105c557600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006102ce565b3480156105f857600080fd5b506102ac610607366004614caa565b61293d565b34801561061857600080fd5b5061025561062736600461499d565b600090815261012f6020526040902054151590565b34801561064857600080fd5b506102ac61295f565b34801561065d57600080fd5b5061027f612a04565b34801561067257600080fd5b506102ac610681366004614ce5565b612a13565b34801561069257600080fd5b506102ac6106a1366004614d13565b612a1e565b3480156106b257600080fd5b5061027f6106c136600461499d565b612a50565b3480156106d257600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006102ce565b34801561070557600080fd5b50610255610714366004614d7f565b612ac4565b34801561072557600080fd5b506102ac610734366004614a23565b612af3565b34801561074557600080fd5b506103486107543660046149b6565b612b99565b34801561076557600080fd5b506103486000805160206153b583398151915281565b34801561078757600080fd5b506102ac610796366004614dad565b612cc2565b60006107a682612cf5565b806107c157506001600160e01b031982166309632b4960e31b145b92915050565b606060fb80546107d690614ddc565b80601f016020809104026020016040519081016040528092919081815260200182805461080290614ddc565b801561084f5780601f106108245761010080835404028352916020019161084f565b820191906000526020600020905b81548152906001019060200180831161083257829003601f168201915b5050505050905090565b600054610100900460ff16158080156108795750600054600160ff909116105b806108935750303b158015610893575060005460ff166001145b6108fb5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801561091e576000805461ff0019166101001790555b600084511161096f5760405162461bcd60e51b815260206004820181905260248201527f506f6c696379506f6f6c3a206e616d652063616e6e6f7420626520656d70747960448201526064016108f2565b60008351116109cb5760405162461bcd60e51b815260206004820152602260248201527f506f6c696379506f6f6c3a2073796d626f6c2063616e6e6f7420626520656d70604482015261747960f01b60648201526084016108f2565b6109d3612d45565b6109dd8484612d6e565b6109e5612d9f565b6109ee82612dce565b8015610a34576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b6000610a4582612dfe565b50600090815260ff60205260409020546001600160a01b031690565b6000610a6c8261159f565b9050806001600160a01b0316836001600160a01b031603610ad95760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084016108f2565b336001600160a01b0382161480610af55750610af58133612ac4565b610b675760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c000060648201526084016108f2565b610b718383612e5d565b505050565b610b803382612ecb565b610b9c5760405162461bcd60e51b81526004016108f290614e10565b610b71838383612f29565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610bef5760405162461bcd60e51b81526004016108f290614e5e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610c38600080516020615395833981519152546001600160a01b031690565b6001600160a01b031614610c5e5760405162461bcd60e51b81526004016108f290614eaa565b610c67816130d0565b60408051600080825260208201909252610c839183919061318a565b50565b6000805160206153fc8339815191526000805160206153b58339815191526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663c5b8f5cf8383336040516001600160e01b031960e086901b168152600481019390935260248301919091526001600160a01b0316604482015260640160006040518083038186803b158015610d2357600080fd5b505afa158015610d37573d6000803e3d6000fd5b50505050610d436132f5565b5050565b610b7183838360405180602001604052806000815250612a1e565b610d6a613347565b6001610d758361338d565b6003811115610d8657610d86614a40565b14610dca5760405162461bcd60e51b815260206004820152601460248201527365546f6b656e206973206e6f742061637469766560601b60448201526064016108f2565b6040516370a0823160e01b81526001600160a01b0383811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015610e35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e599190614ef6565b9050610e907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633858561341a565b6001600160a01b0383166347e7ef24336040516370a0823160e01b81526001600160a01b03878116600483015285917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015610f0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2e9190614ef6565b610f389190614f25565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610f83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a349190614ef6565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610fef5760405162461bcd60e51b81526004016108f290614e5e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611038600080516020615395833981519152546001600160a01b031690565b6001600160a01b03161461105e5760405162461bcd60e51b81526004016108f290614eaa565b611067826130d0565b610d438282600161318a565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146111135760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016108f2565b5060008051602061539583398151915290565b6000805160206153fc8339815191526000805160206153b58339815191526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663c5b8f5cf8383336040516001600160e01b031960e086901b168152600481019390935260248301919091526001600160a01b0316604482015260640160006040518083038186803b1580156111c357600080fd5b505afa1580156111d7573d6000803e3d6000fd5b5050506001600160a01b038516600090815261012e602052604081209150815460ff16600381111561120b5761120b614a40565b0361124e5760405162461bcd60e51b815260206004820152601360248201527210dbdb5c1bdb995b9d081b9bdd08199bdd5b99606a1b60448201526064016108f2565b600184600381111561126257611262614a40565b14801561131757506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166391d148546000805160206153b5833981519152336040516001600160e01b031960e085901b16815260048101929092526001600160a01b03166024820152604401602060405180830381865afa1580156112f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113179190614f38565b806113e65750600384600381111561133157611331614a40565b1480156113e657506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166391d148546000805160206153fc833981519152336040516001600160e01b031960e085901b16815260048101929092526001600160a01b03166024820152604401602060405180830381865afa1580156113c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e69190614f38565b806114b55750600284600381111561140057611400614a40565b1480156114b557506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166391d148546000805160206153b5833981519152336040516001600160e01b031960e085901b16815260048101929092526001600160a01b03166024820152604401602060405180830381865afa158015611491573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b59190614f38565b6115275760405162461bcd60e51b815260206004820152603e60248201527f4f6e6c7920475541524449414e2063616e2073757370656e64202f204f6e6c7960448201527f204c4556454c312063616e2061637469766174652f646570726563617465000060648201526084016108f2565b80548490829060ff1916600183600381111561154557611545614a40565b021790555080546040516001600160a01b038716917ffe4c6998a06520b63340a48710b374432cb395da90e4e5360e1ec7aeefebecef9161159091610100900460ff16908890614f55565b60405180910390a25050505050565b600081815260fd60205260408120546001600160a01b0316806107c15760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016108f2565b6000611609613347565b6101608501516001600160a01b03811633146116735760405162461bcd60e51b815260206004820152602360248201527f4f6e6c792074686520524d2063616e20637265617465206e657720706f6c696360448201526269657360e81b60648201526084016108f2565b600161167e82613474565b600381111561168f5761168f614a40565b146116e65760405162461bcd60e51b815260206004820152602160248201527f524d206d6f64756c65206e6f7420666f756e64206f72206e6f742061637469766044820152606560f81b60648201526084016108f2565b6000816001600160a01b03166373a952e86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611726573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174a9190614f7b565b90506001611757826134f7565b600381111561176857611768614a40565b146117c55760405162461bcd60e51b815260206004820152602760248201527f5072656d69756d734163636f756e74206e6f7420666f756e64206f72206e6f746044820152662061637469766560c81b60648201526084016108f2565b6117f06bffffffffffffffffffffffff85166bffffffffffffffffffffffff19606085901b16614f98565b808852600090815261012f6020526040902054156118485760405162461bcd60e51b8152602060048201526015602482015274506f6c69637920616c72656164792065786973747360581b60448201526064016108f2565b61185187613585565b8751600090815261012f602052604090819020919091555163e3638ea360e01b81526001600160a01b0382169063e3638ea390611892908a90600401615063565b600060405180830381600087803b1580156118ac57600080fd5b505af11580156118c0573d6000803e3d6000fd5b50505060c088015161190191506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016908890849061341a565b610140870151156119aa576119aa86826001600160a01b0316637b83037b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561194e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119729190614f7b565b6101408a01516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692919061341a565b61012087015115611a5357611a5386826001600160a01b031663536ebbfc6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119f7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1b9190614f7b565b6101208a01516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692919061341a565b61012d5460e0880151611a98916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116928a92919091169061341a565b6000876101000151118015611b205750816001600160a01b031663521eb2736040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ae6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b0a9190614f7b565b6001600160a01b0316866001600160a01b031614155b15611bc357611bc386836001600160a01b031663521eb2736040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8b9190614f7b565b6101008a01516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692919061341a565b611be185886000015160405180602001604052806000815250613604565b816001600160a01b03167f38f420e3792044ba61536a1f83956eefc878b3fb09a7d4a28790f05b6a3eaf3b88604051611c1a9190615063565b60405180910390a25050845190505b949350505050565b611c39613347565b42611c4c6101c083016101a08401615072565b64ffffffffff161115611c9a5760405162461bcd60e51b8152602060048201526016602482015275141bdb1a58de481b9bdd08195e1c1a5c9959081e595d60521b60448201526064016108f2565b610c83611cac3683900383018361508d565b60006001613637565b6000805160206153b58339815191526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166312d9a6ad82336040516001600160e01b031960e085901b16815260048101929092526001600160a01b0316602482015260440160006040518083038186803b158015611d3a57600080fd5b505afa158015611d4e573d6000803e3d6000fd5b5050506001600160a01b038416600090815261012e602052604081209150815460ff166003811115611d8257611d82614a40565b14611dcf5760405162461bcd60e51b815260206004820152601d60248201527f436f6d706f6e656e7420616c726561647920696e2074686520706f6f6c00000060448201526064016108f2565b306001600160a01b0316846001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e3b9190614f7b565b6001600160a01b031614611e9b5760405162461bcd60e51b815260206004820152602160248201527f436f6d706f6e656e74206e6f74206c696e6b656420746f207468697320706f6f6044820152601b60fa1b60648201526084016108f2565b6001836003811115611eaf57611eaf614a40565b148015611f2557506040516301ffc9a760e01b8152629d19af60e21b60048201526001600160a01b038516906301ffc9a790602401602060405180830381865afa158015611f01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f259190614f38565b80611fb657506003836003811115611f3f57611f3f614a40565b148015611fb657506040516301ffc9a760e01b8152632dd9c4bb60e21b60048201526001600160a01b038516906301ffc9a790602401602060405180830381865afa158015611f92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fb69190614f38565b8061204757506002836003811115611fd057611fd0614a40565b14801561204757506040516301ffc9a760e01b815263da40804f60e01b60048201526001600160a01b038516906301ffc9a790602401602060405180830381865afa158015612023573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120479190614f38565b6120935760405162461bcd60e51b815260206004820152601e60248201527f506f6c696379506f6f6c3a204e6f7420746865207269676874206b696e64000060448201526064016108f2565b8054600160ff198216811783558491839161ffff19909116176101008360038111156120c1576120c1614a40565b021790555060038360038111156120da576120da614a40565b036122875760008490506000816001600160a01b031663536ebbfc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612124573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121489190614f7b565b90506001600160a01b038116156121b5576040516338ea38a760e21b81526001600160a01b03838116600483015282169063e3a8e29c90602401600060405180830381600087803b15801561219c57600080fd5b505af11580156121b0573d6000803e3d6000fd5b505050505b816001600160a01b0316637b83037b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122179190614f7b565b90506001600160a01b03811615612284576040516338ea38a760e21b81526001600160a01b03838116600483015282169063e3a8e29c90602401600060405180830381600087803b15801561226b57600080fd5b505af115801561227f573d6000803e3d6000fd5b505050505b50505b836001600160a01b03167ffe4c6998a06520b63340a48710b374432cb395da90e4e5360e1ec7aeefebecef8460016040516122c3929190614f55565b60405180910390a250505050565b6000805160206153b58339815191526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166312d9a6ad82336040516001600160e01b031960e085901b16815260048101929092526001600160a01b0316602482015260440160006040518083038186803b15801561235657600080fd5b505afa15801561236a573d6000803e3d6000fd5b505050506001600160a01b038216600090815261012e602052604090206002815460ff16600381111561239f5761239f614a40565b146123ec5760405162461bcd60e51b815260206004820152601860248201527f436f6d706f6e656e74206e6f742064657072656361746564000000000000000060448201526064016108f2565b60018154610100900460ff16600381111561240957612409614a40565b036124d157826001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561244c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124709190614ef6565b156124cc5760405162461bcd60e51b815260206004820152602660248201527f45546f6b656e20686173206c69717569646974792c2063616e27742062652072604482015265195b5bdd995960d21b60648201526084016108f2565b612843565b60028154610100900460ff1660038111156124ee576124ee614a40565b036125b557826001600160a01b0316637ff8bf256040518163ffffffff1660e01b8152600401602060405180830381865afa158015612531573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125559190614ef6565b156124cc5760405162461bcd60e51b815260206004820152602a60248201527f43616e27742072656d6f76652061206d6f64756c6520776974682061637469766044820152696520706f6c696369657360b01b60648201526084016108f2565b60038154610100900460ff1660038111156125d2576125d2614a40565b03612843576000839050806001600160a01b03166326ccbd226040518163ffffffff1660e01b8152600401602060405180830381865afa15801561261a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061263e9190614ef6565b156126a05760405162461bcd60e51b815260206004820152602c60248201527f43616e27742072656d6f76652061205072656d69756d734163636f756e74207760448201526b697468207072656d69756d7360a01b60648201526084016108f2565b6000816001600160a01b031663536ebbfc6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127049190614f7b565b90506001600160a01b03811615612771576040516376c7fc5560e01b81526001600160a01b0383811660048301528216906376c7fc5590602401600060405180830381600087803b15801561275857600080fd5b505af115801561276c573d6000803e3d6000fd5b505050505b816001600160a01b0316637b83037b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d39190614f7b565b90506001600160a01b03811615612840576040516376c7fc5560e01b81526001600160a01b0383811660048301528216906376c7fc5590602401600060405180830381600087803b15801561282757600080fd5b505af115801561283b573d6000803e3d6000fd5b505050505b50505b80546040516001600160a01b038516917ffe4c6998a06520b63340a48710b374432cb395da90e4e5360e1ec7aeefebecef9161288a91610100900460ff1690600090614f55565b60405180910390a250506001600160a01b0316600090815261012e60205260409020805461ffff19169055565b60006001600160a01b0382166129215760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016108f2565b506001600160a01b0316600090815260fe602052604090205490565b612945613347565b610d436129573684900384018461508d565b826000613637565b6000805160206153fc8339815191526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166312d9a6ad82336040516001600160e01b031960e085901b16815260048101929092526001600160a01b0316602482015260440160006040518083038186803b1580156129e457600080fd5b505afa1580156129f8573d6000803e3d6000fd5b50505050610c83613aee565b606060fc80546107d690614ddc565b610d43338383613b2b565b612a283383612ecb565b612a445760405162461bcd60e51b81526004016108f290614e10565b610a3484848484613bfa565b6060612a5b82612dfe565b6000612a7260408051602081019091526000815290565b90506000815111612a925760405180602001604052806000815250612abd565b80612a9c84613c2d565b604051602001612aad9291906150aa565b6040516020818303038152906040525b9392505050565b6001600160a01b0391821660009081526101006020908152604080832093909416825291909152205460ff1690565b6000805160206153b58339815191526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166312d9a6ad82336040516001600160e01b031960e085901b16815260048101929092526001600160a01b0316602482015260440160006040518083038186803b158015612b7857600080fd5b505afa158015612b8c573d6000803e3d6000fd5b50505050610d4382613d2e565b6000612ba3613347565b6000612bae8461338d565b90506001816003811115612bc457612bc4614a40565b1480612be157506002816003811115612bdf57612bdf614a40565b145b612c3f5760405162461bcd60e51b815260206004820152602960248201527f65546f6b656e206e6f7420666f756e64206f7220776974686472617773206e6f6044820152681d08185b1b1bddd95960ba1b60648201526084016108f2565b60003360405163f3fef3a360e01b81526001600160a01b038083166004830152602482018790529192509086169063f3fef3a3906044016020604051808303816000875af1158015612c95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cb99190614ef6565b95945050505050565b612cca613347565b610d43612cdc3684900384018461508d565b82612ce8576000612cee565b83602001355b6000613637565b60006001600160e01b031982166380ac58cd60e01b1480612d2657506001600160e01b03198216635b5e139f60e01b145b806107c157506301ffc9a760e01b6001600160e01b03198316146107c1565b600054610100900460ff16612d6c5760405162461bcd60e51b81526004016108f2906150d9565b565b600054610100900460ff16612d955760405162461bcd60e51b81526004016108f2906150d9565b610d438282613dfe565b600054610100900460ff16612dc65760405162461bcd60e51b81526004016108f2906150d9565b612d6c613e3e565b600054610100900460ff16612df55760405162461bcd60e51b81526004016108f2906150d9565b610c8381613d2e565b600081815260fd60205260409020546001600160a01b0316610c835760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016108f2565b600081815260ff6020526040902080546001600160a01b0319166001600160a01b0384169081179091558190612e928261159f565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080612ed78361159f565b9050806001600160a01b0316846001600160a01b03161480612efe5750612efe8185612ac4565b80611c295750836001600160a01b0316612f1784610a3a565b6001600160a01b031614949350505050565b826001600160a01b0316612f3c8261159f565b6001600160a01b031614612fa05760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b60648201526084016108f2565b6001600160a01b0382166130025760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016108f2565b61300d838383613e71565b613018600082612e5d565b6001600160a01b038316600090815260fe60205260408120805460019290613041908490614f25565b90915550506001600160a01b038216600090815260fe6020526040812080546001929061306f908490614f98565b9091555050600081815260fd602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000805160206153fc8339815191526000805160206153b58339815191526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663c5b8f5cf8383336040516001600160e01b031960e086901b168152600481019390935260248301919091526001600160a01b0316604482015260640160006040518083038186803b15801561316d57600080fd5b505afa158015613181573d6000803e3d6000fd5b50505050505050565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156131bd57610b7183613e79565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015613217575060408051601f3d908101601f1916820190925261321491810190614ef6565b60015b61327a5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016108f2565b60008051602061539583398151915281146132e95760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016108f2565b50610b71838383613f15565b6132fd613f3a565b6033805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60335460ff1615612d6c5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016108f2565b6001600160a01b038116600090815261012e6020526040812060018154610100900460ff1660038111156133c3576133c3614a40565b146134105760405162461bcd60e51b815260206004820152601a60248201527f436f6d706f6e656e74206973206e6f7420616e2065546f6b656e00000000000060448201526064016108f2565b5460ff1692915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610a34908590613f83565b6001600160a01b038116600090815261012e6020526040812060028154610100900460ff1660038111156134aa576134aa614a40565b146134105760405162461bcd60e51b815260206004820152601d60248201527f436f6d706f6e656e74206973206e6f742061205269736b4d6f64756c6500000060448201526064016108f2565b6001600160a01b038116600090815261012e6020526040812060038154610100900460ff16600381111561352d5761352d614a40565b146134105760405162461bcd60e51b815260206004820152602260248201527f436f6d706f6e656e74206973206e6f742061205072656d69756d734163636f756044820152611b9d60f21b60648201526084016108f2565b6000816040516020016135989190615063565b60408051601f1981840301815291905280516020909101209050806135ff5760405162461bcd60e51b815260206004820152601860248201527f506f6c6963793a20686173682063616e6e6f742062652030000000000000000060448201526064016108f2565b919050565b61360e8383614055565b61361b60008484846141a3565b610b715760405162461bcd60e51b81526004016108f290615124565b613640836142a1565b610160830151818061365a57506001600160a01b03811633145b6136a65760405162461bcd60e51b815260206004820181905260248201527f4f6e6c792074686520524d2063616e207265736f6c766520706f6c696369657360448201526064016108f2565b8215806136be575042846101a0015164ffffffffff16115b61370a5760405162461bcd60e51b815260206004820152601860248201527f43616e277420706179206578706972656420706f6c696379000000000000000060448201526064016108f2565b600061371582613474565b9050600181600381111561372b5761372b614a40565b14806137485750600281600381111561374657613746614a40565b145b6137ba5760405162461bcd60e51b815260206004820152603a60248201527f4d6f64756c65206d75737420626520616374697665206f72206465707265636160448201527f74656420746f2070726f63657373207265736f6c7574696f6e7300000000000060648201526084016108f2565b84602001518411156138075760405162461bcd60e51b81526020600482015260166024820152751c185e5bdd5d080f881c1bdb1a58de4b9c185e5bdd5d60521b60448201526064016108f2565b600080851190506000836001600160a01b03166373a952e86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561384e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138729190614f7b565b905061387d816134f7565b9250600183600381111561389357613893614a40565b14806138b0575060028360038111156138ae576138ae614a40565b145b61392e5760405162461bcd60e51b815260206004820152604360248201527f5072656d69756d734163636f756e74206d75737420626520616374697665206f60448201527f72206465707265636174656420746f2070726f63657373207265736f6c7574696064820152626f6e7360e81b608482015260a4016108f2565b8651600090815261012f602052604081205581156139c0576000613955886000015161159f565b604051639d8c5ee760e01b81529091506001600160a01b03831690639d8c5ee7906139889084908c908c90600401615176565b600060405180830381600087803b1580156139a257600080fd5b505af11580156139b6573d6000803e3d6000fd5b5050505050613a1f565b60405163c7a9c70d60e01b81526001600160a01b0382169063c7a9c70d906139ec908a90600401615063565b600060405180830381600087803b158015613a0657600080fd5b505af1158015613a1a573d6000803e3d6000fd5b505050505b6020870151604051636a448ef160e01b815260048101919091526001600160a01b03851690636a448ef190602401600060405180830381600087803b158015613a6757600080fd5b505af1158015613a7b573d6000803e3d6000fd5b5050505086600001518761016001516001600160a01b03167f54f4a270ea08f88dc23b2520d6b063fecb24d956c4496f447926d736338f545e88604051613ac491815260200190565b60405180910390a38515613ae3578651613ade9087614308565b613181565b865161318190614462565b613af6613347565b6033805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861332a3390565b816001600160a01b0316836001600160a01b031603613b8c5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016108f2565b6001600160a01b0383811660008181526101006020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b613c05848484612f29565b613c11848484846141a3565b610a345760405162461bcd60e51b81526004016108f290615124565b606081600003613c545750506040805180820190915260018152600360fc1b602082015290565b8160005b8115613c7e5780613c68816151a3565b9150613c779050600a836151d2565b9150613c58565b60008167ffffffffffffffff811115613c9957613c99614843565b6040519080825280601f01601f191660200182016040528015613cc3576020820181803683370190505b5090505b8415611c2957613cd8600183614f25565b9150613ce5600a866151e6565b613cf0906030614f98565b60f81b818381518110613d0557613d056151fa565b60200101906001600160f81b031916908160001a905350613d27600a866151d2565b9450613cc7565b6001600160a01b038116613d9c5760405162461bcd60e51b815260206004820152602f60248201527f506f6c696379506f6f6c3a2074726561737572792063616e6e6f74206265207460448201526e6865207a65726f206164647265737360881b60648201526084016108f2565b61012d80546001600160a01b0319166001600160a01b038316179055600161012d546040516001600160a01b0390911681527fb6bdbd44472629fc24a00b6f4ee3348b72c9eff333d0e9c16d78c49da1323c8f9060200160405180910390a250565b600054610100900460ff16613e255760405162461bcd60e51b81526004016108f2906150d9565b60fb613e31838261525e565b5060fc610b71828261525e565b600054610100900460ff16613e655760405162461bcd60e51b81526004016108f2906150d9565b6033805460ff19169055565b610b71613347565b6001600160a01b0381163b613ee65760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016108f2565b60008051602061539583398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b613f1e83614509565b600082511180613f2b5750805b15610b7157610a348383614549565b60335460ff16612d6c5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016108f2565b6000613fd8826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166146349092919063ffffffff16565b805190915015610b715780806020019051810190613ff69190614f38565b610b715760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016108f2565b6001600160a01b0382166140ab5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016108f2565b600081815260fd60205260409020546001600160a01b0316156141105760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016108f2565b61411c60008383613e71565b6001600160a01b038216600090815260fe60205260408120805460019290614145908490614f98565b9091555050600081815260fd602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60006001600160a01b0384163b1561429957604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906141e790339089908890889060040161531e565b6020604051808303816000875af1925050508015614222575060408051601f3d908101601f1916820190925261421f9181019061535b565b60015b61427f573d808015614250576040519150601f19603f3d011682016040523d82523d6000602084013e614255565b606091505b5080516000036142775760405162461bcd60e51b81526004016108f290615124565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611c29565b506001611c29565b8051158015906142c957508051600090815261012f60205260409020546142c782613585565b145b610c835760405162461bcd60e51b815260206004820152601060248201526f141bdb1a58de481b9bdd08199bdd5b9960821b60448201526064016108f2565b60006143138361159f565b90506001600160a01b0381163b61432957505050565b6001600160a01b03811663d6281d3e336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015230602482015260448101869052606481018590526084016020604051808303816000875af19250505080156143af575060408051601f3d908101601f191682019092526143ac9181019061535b565b60015b6143f2573d8080156143dd576040519150601f19603f3d011682016040523d82523d6000602084013e6143e2565b606091505b5080516000036142775750505050565b6001600160e01b03198116636b140e9f60e11b14610a345760405162461bcd60e51b815260206004820152602760248201527f496e76616c69642072657475726e2076616c75652066726f6d20506f6c696379604482015266102437b63232b960c91b60648201526084016108f2565b600061446d8261159f565b90506001600160a01b0381163b614482575050565b6001600160a01b03811663e8e617b7336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604481018590526064016020604051808303816000875af1925050508015614501575060408051601f3d908101601f191682019092526144fe9181019061535b565b60015b610b71575050565b61451281613e79565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6145b15760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016108f2565b600080846001600160a01b0316846040516145cc9190615378565b600060405180830381855af49150503d8060008114614607576040519150601f19603f3d011682016040523d82523d6000602084013e61460c565b606091505b5091509150612cb982826040518060600160405280602781526020016153d560279139614643565b6060611c29848460008561467c565b60608315614652575081612abd565b8251156146625782518084602001fd5b8160405162461bcd60e51b81526004016108f29190614830565b6060824710156146dd5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016108f2565b6001600160a01b0385163b6147345760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016108f2565b600080866001600160a01b031685876040516147509190615378565b60006040518083038185875af1925050503d806000811461478d576040519150601f19603f3d011682016040523d82523d6000602084013e614792565b606091505b50915091506147a2828286614643565b979650505050505050565b6001600160e01b031981168114610c8357600080fd5b6000602082840312156147d557600080fd5b8135612abd816147ad565b60005b838110156147fb5781810151838201526020016147e3565b50506000910152565b6000815180845261481c8160208601602086016147e0565b601f01601f19169290920160200192915050565b602081526000612abd6020830184614804565b634e487b7160e01b600052604160045260246000fd5b6040516101c0810167ffffffffffffffff8111828210171561487d5761487d614843565b60405290565b600082601f83011261489457600080fd5b813567ffffffffffffffff808211156148af576148af614843565b604051601f8301601f19908116603f011681019082821181831017156148d7576148d7614843565b816040528381528660208588010111156148f057600080fd5b836020870160208301376000602085830101528094505050505092915050565b6001600160a01b0381168114610c8357600080fd5b60008060006060848603121561493a57600080fd5b833567ffffffffffffffff8082111561495257600080fd5b61495e87838801614883565b9450602086013591508082111561497457600080fd5b5061498186828701614883565b925050604084013561499281614910565b809150509250925092565b6000602082840312156149af57600080fd5b5035919050565b600080604083850312156149c957600080fd5b82356149d481614910565b946020939093013593505050565b6000806000606084860312156149f757600080fd5b8335614a0281614910565b92506020840135614a1281614910565b929592945050506040919091013590565b600060208284031215614a3557600080fd5b8135612abd81614910565b634e487b7160e01b600052602160045260246000fd5b60048110610c8357634e487b7160e01b600052602160045260246000fd5b60208101614a8183614a56565b91905290565b60008060408385031215614a9a57600080fd5b8235614aa581614910565b9150602083013567ffffffffffffffff811115614ac157600080fd5b614acd85828601614883565b9150509250929050565b60048110610c8357600080fd5b60008060408385031215614af757600080fd5b8235614b0281614910565b91506020830135614b1281614ad7565b809150509250929050565b80356135ff81614910565b803564ffffffffff811681146135ff57600080fd5b60006101c08284031215614b5057600080fd5b614b58614859565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e0820152610100808301358183015250610120808301358183015250610140808301358183015250610160614bd6818401614b1d565b90820152610180614be8838201614b28565b908201526101a0614bfa838201614b28565b9082015292915050565b6000806000806102208587031215614c1b57600080fd5b614c258686614b3d565b93506101c0850135614c3681614910565b92506101e0850135614c4781614910565b91506102008501356bffffffffffffffffffffffff81168114614c6957600080fd5b939692955090935050565b60006101c08284031215614c8757600080fd5b50919050565b60006101c08284031215614ca057600080fd5b612abd8383614c74565b6000806101e08385031215614cbe57600080fd5b614cc88484614c74565b946101c0939093013593505050565b8015158114610c8357600080fd5b60008060408385031215614cf857600080fd5b8235614d0381614910565b91506020830135614b1281614cd7565b60008060008060808587031215614d2957600080fd5b8435614d3481614910565b93506020850135614d4481614910565b925060408501359150606085013567ffffffffffffffff811115614d6757600080fd5b614d7387828801614883565b91505092959194509250565b60008060408385031215614d9257600080fd5b8235614d9d81614910565b91506020830135614b1281614910565b6000806101e08385031215614dc157600080fd5b614dcb8484614c74565b91506101c0830135614b1281614cd7565b600181811c90821680614df057607f821691505b602082108103614c8757634e487b7160e01b600052602260045260246000fd5b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b600060208284031215614f0857600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156107c1576107c1614f0f565b600060208284031215614f4a57600080fd5b8151612abd81614cd7565b60408101614f6284614a56565b838252614f6e83614a56565b8260208301529392505050565b600060208284031215614f8d57600080fd5b8151612abd81614910565b808201808211156107c1576107c1614f0f565b805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010080820151818401525061012080820151818401525061014080820151818401525061016080820151615034828501826001600160a01b03169052565b50506101808181015164ffffffffff81168483015250506101a08181015164ffffffffff811684830152610a34565b6101c081016107c18284614fab565b60006020828403121561508457600080fd5b612abd82614b28565b60006101c082840312156150a057600080fd5b612abd8383614b3d565b600083516150bc8184602088016147e0565b8351908301906150d08183602088016147e0565b01949350505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6001600160a01b038416815261020081016151946020830185614fab565b826101e0830152949350505050565b6000600182016151b5576151b5614f0f565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6000826151e1576151e16151bc565b500490565b6000826151f5576151f56151bc565b500690565b634e487b7160e01b600052603260045260246000fd5b601f821115610b7157600081815260208120601f850160051c810160208610156152375750805b601f850160051c820191505b8181101561525657828155600101615243565b505050505050565b815167ffffffffffffffff81111561527857615278614843565b61528c816152868454614ddc565b84615210565b602080601f8311600181146152c157600084156152a95750858301515b600019600386901b1c1916600185901b178555615256565b600085815260208120601f198616915b828110156152f0578886015182559484019460019091019084016152d1565b508582101561530e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061535190830184614804565b9695505050505050565b60006020828403121561536d57600080fd5b8151612abd816147ad565b6000825161538a8184602087016147e0565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb2416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656455435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041a264697066735822122007e34147edcf7d7051654a836256e5ace2e47fe73d3e10a006e4d131ef425bf664736f6c63430008100033",
|
|
921
1297
|
"linkReferences": {},
|
|
922
1298
|
"deployedLinkReferences": {}
|
|
923
1299
|
}
|