@venusprotocol/protocol-reserve 3.5.0-slim-dev.5 → 3.5.0-slim-dev.7

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.
@@ -0,0 +1,830 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "TokenBuyback",
4
+ "sourceName": "contracts/ProtocolReserve/TokenBuyback.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "destination_",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "baseAsset_",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "address",
20
+ "name": "protocolShareReserve_",
21
+ "type": "address"
22
+ },
23
+ {
24
+ "internalType": "address",
25
+ "name": "resilientOracle_",
26
+ "type": "address"
27
+ }
28
+ ],
29
+ "stateMutability": "nonpayable",
30
+ "type": "constructor"
31
+ },
32
+ {
33
+ "inputs": [
34
+ {
35
+ "internalType": "uint256",
36
+ "name": "attempted",
37
+ "type": "uint256"
38
+ },
39
+ {
40
+ "internalType": "uint256",
41
+ "name": "cap",
42
+ "type": "uint256"
43
+ }
44
+ ],
45
+ "name": "DailyCapExceeded",
46
+ "type": "error"
47
+ },
48
+ {
49
+ "inputs": [
50
+ {
51
+ "internalType": "uint256",
52
+ "name": "deadline",
53
+ "type": "uint256"
54
+ },
55
+ {
56
+ "internalType": "uint256",
57
+ "name": "blockTimestamp",
58
+ "type": "uint256"
59
+ }
60
+ ],
61
+ "name": "DeadlineExpired",
62
+ "type": "error"
63
+ },
64
+ {
65
+ "inputs": [
66
+ {
67
+ "internalType": "address",
68
+ "name": "token",
69
+ "type": "address"
70
+ },
71
+ {
72
+ "internalType": "uint256",
73
+ "name": "requested",
74
+ "type": "uint256"
75
+ },
76
+ {
77
+ "internalType": "uint256",
78
+ "name": "available",
79
+ "type": "uint256"
80
+ }
81
+ ],
82
+ "name": "InsufficientBalance",
83
+ "type": "error"
84
+ },
85
+ {
86
+ "inputs": [
87
+ {
88
+ "internalType": "address",
89
+ "name": "tokenIn",
90
+ "type": "address"
91
+ }
92
+ ],
93
+ "name": "InvalidTokenIn",
94
+ "type": "error"
95
+ },
96
+ {
97
+ "inputs": [
98
+ {
99
+ "internalType": "address",
100
+ "name": "router",
101
+ "type": "address"
102
+ }
103
+ ],
104
+ "name": "RouterNotAllowed",
105
+ "type": "error"
106
+ },
107
+ {
108
+ "inputs": [
109
+ {
110
+ "internalType": "uint256",
111
+ "name": "expected",
112
+ "type": "uint256"
113
+ },
114
+ {
115
+ "internalType": "uint256",
116
+ "name": "actual",
117
+ "type": "uint256"
118
+ }
119
+ ],
120
+ "name": "SlippageExceeded",
121
+ "type": "error"
122
+ },
123
+ {
124
+ "inputs": [
125
+ {
126
+ "internalType": "address",
127
+ "name": "sender",
128
+ "type": "address"
129
+ },
130
+ {
131
+ "internalType": "address",
132
+ "name": "calledContract",
133
+ "type": "address"
134
+ },
135
+ {
136
+ "internalType": "string",
137
+ "name": "methodSignature",
138
+ "type": "string"
139
+ }
140
+ ],
141
+ "name": "Unauthorized",
142
+ "type": "error"
143
+ },
144
+ {
145
+ "inputs": [
146
+ {
147
+ "internalType": "address",
148
+ "name": "caller",
149
+ "type": "address"
150
+ }
151
+ ],
152
+ "name": "UnauthorizedCaller",
153
+ "type": "error"
154
+ },
155
+ {
156
+ "inputs": [],
157
+ "name": "ZeroAddressNotAllowed",
158
+ "type": "error"
159
+ },
160
+ {
161
+ "inputs": [],
162
+ "name": "ZeroValueNotAllowed",
163
+ "type": "error"
164
+ },
165
+ {
166
+ "anonymous": false,
167
+ "inputs": [
168
+ {
169
+ "indexed": true,
170
+ "internalType": "address",
171
+ "name": "tokenIn",
172
+ "type": "address"
173
+ },
174
+ {
175
+ "indexed": false,
176
+ "internalType": "uint256",
177
+ "name": "actualAmountIn",
178
+ "type": "uint256"
179
+ },
180
+ {
181
+ "indexed": false,
182
+ "internalType": "uint256",
183
+ "name": "amountOut",
184
+ "type": "uint256"
185
+ },
186
+ {
187
+ "indexed": false,
188
+ "internalType": "uint256",
189
+ "name": "usdIn",
190
+ "type": "uint256"
191
+ },
192
+ {
193
+ "indexed": false,
194
+ "internalType": "uint256",
195
+ "name": "usdOut",
196
+ "type": "uint256"
197
+ }
198
+ ],
199
+ "name": "AbnormalSlippage",
200
+ "type": "event"
201
+ },
202
+ {
203
+ "anonymous": false,
204
+ "inputs": [
205
+ {
206
+ "indexed": true,
207
+ "internalType": "address",
208
+ "name": "comptroller",
209
+ "type": "address"
210
+ },
211
+ {
212
+ "indexed": true,
213
+ "internalType": "address",
214
+ "name": "asset",
215
+ "type": "address"
216
+ },
217
+ {
218
+ "indexed": false,
219
+ "internalType": "uint256",
220
+ "name": "amount",
221
+ "type": "uint256"
222
+ }
223
+ ],
224
+ "name": "AssetsReceived",
225
+ "type": "event"
226
+ },
227
+ {
228
+ "anonymous": false,
229
+ "inputs": [
230
+ {
231
+ "indexed": true,
232
+ "internalType": "address",
233
+ "name": "comptroller",
234
+ "type": "address"
235
+ },
236
+ {
237
+ "indexed": false,
238
+ "internalType": "uint256",
239
+ "name": "amount",
240
+ "type": "uint256"
241
+ }
242
+ ],
243
+ "name": "BaseAssetForwarded",
244
+ "type": "event"
245
+ },
246
+ {
247
+ "anonymous": false,
248
+ "inputs": [
249
+ {
250
+ "indexed": true,
251
+ "internalType": "address",
252
+ "name": "tokenIn",
253
+ "type": "address"
254
+ },
255
+ {
256
+ "indexed": false,
257
+ "internalType": "uint256",
258
+ "name": "amountIn",
259
+ "type": "uint256"
260
+ },
261
+ {
262
+ "indexed": false,
263
+ "internalType": "uint256",
264
+ "name": "amountOut",
265
+ "type": "uint256"
266
+ },
267
+ {
268
+ "indexed": true,
269
+ "internalType": "address",
270
+ "name": "router",
271
+ "type": "address"
272
+ },
273
+ {
274
+ "indexed": true,
275
+ "internalType": "address",
276
+ "name": "comptroller",
277
+ "type": "address"
278
+ }
279
+ ],
280
+ "name": "BuybackExecuted",
281
+ "type": "event"
282
+ },
283
+ {
284
+ "anonymous": false,
285
+ "inputs": [
286
+ {
287
+ "indexed": false,
288
+ "internalType": "uint256",
289
+ "name": "oldCap",
290
+ "type": "uint256"
291
+ },
292
+ {
293
+ "indexed": false,
294
+ "internalType": "uint256",
295
+ "name": "newCap",
296
+ "type": "uint256"
297
+ }
298
+ ],
299
+ "name": "DailyCapUpdated",
300
+ "type": "event"
301
+ },
302
+ {
303
+ "anonymous": false,
304
+ "inputs": [
305
+ {
306
+ "indexed": false,
307
+ "internalType": "uint8",
308
+ "name": "version",
309
+ "type": "uint8"
310
+ }
311
+ ],
312
+ "name": "Initialized",
313
+ "type": "event"
314
+ },
315
+ {
316
+ "anonymous": false,
317
+ "inputs": [
318
+ {
319
+ "indexed": false,
320
+ "internalType": "address",
321
+ "name": "oldAccessControlManager",
322
+ "type": "address"
323
+ },
324
+ {
325
+ "indexed": false,
326
+ "internalType": "address",
327
+ "name": "newAccessControlManager",
328
+ "type": "address"
329
+ }
330
+ ],
331
+ "name": "NewAccessControlManager",
332
+ "type": "event"
333
+ },
334
+ {
335
+ "anonymous": false,
336
+ "inputs": [
337
+ {
338
+ "indexed": true,
339
+ "internalType": "address",
340
+ "name": "previousOwner",
341
+ "type": "address"
342
+ },
343
+ {
344
+ "indexed": true,
345
+ "internalType": "address",
346
+ "name": "newOwner",
347
+ "type": "address"
348
+ }
349
+ ],
350
+ "name": "OwnershipTransferStarted",
351
+ "type": "event"
352
+ },
353
+ {
354
+ "anonymous": false,
355
+ "inputs": [
356
+ {
357
+ "indexed": true,
358
+ "internalType": "address",
359
+ "name": "previousOwner",
360
+ "type": "address"
361
+ },
362
+ {
363
+ "indexed": true,
364
+ "internalType": "address",
365
+ "name": "newOwner",
366
+ "type": "address"
367
+ }
368
+ ],
369
+ "name": "OwnershipTransferred",
370
+ "type": "event"
371
+ },
372
+ {
373
+ "anonymous": false,
374
+ "inputs": [
375
+ {
376
+ "indexed": true,
377
+ "internalType": "address",
378
+ "name": "router",
379
+ "type": "address"
380
+ },
381
+ {
382
+ "indexed": false,
383
+ "internalType": "bool",
384
+ "name": "allowed",
385
+ "type": "bool"
386
+ }
387
+ ],
388
+ "name": "RouterAllowlisted",
389
+ "type": "event"
390
+ },
391
+ {
392
+ "anonymous": false,
393
+ "inputs": [
394
+ {
395
+ "indexed": false,
396
+ "internalType": "uint256",
397
+ "name": "oldThreshold",
398
+ "type": "uint256"
399
+ },
400
+ {
401
+ "indexed": false,
402
+ "internalType": "uint256",
403
+ "name": "newThreshold",
404
+ "type": "uint256"
405
+ }
406
+ ],
407
+ "name": "SlippageEventUsdUpdated",
408
+ "type": "event"
409
+ },
410
+ {
411
+ "anonymous": false,
412
+ "inputs": [
413
+ {
414
+ "indexed": true,
415
+ "internalType": "address",
416
+ "name": "token",
417
+ "type": "address"
418
+ },
419
+ {
420
+ "indexed": true,
421
+ "internalType": "address",
422
+ "name": "to",
423
+ "type": "address"
424
+ },
425
+ {
426
+ "indexed": false,
427
+ "internalType": "uint256",
428
+ "name": "amount",
429
+ "type": "uint256"
430
+ }
431
+ ],
432
+ "name": "SweepToken",
433
+ "type": "event"
434
+ },
435
+ {
436
+ "inputs": [],
437
+ "name": "BASE_ASSET",
438
+ "outputs": [
439
+ {
440
+ "internalType": "address",
441
+ "name": "",
442
+ "type": "address"
443
+ }
444
+ ],
445
+ "stateMutability": "view",
446
+ "type": "function"
447
+ },
448
+ {
449
+ "inputs": [],
450
+ "name": "DESTINATION",
451
+ "outputs": [
452
+ {
453
+ "internalType": "address",
454
+ "name": "",
455
+ "type": "address"
456
+ }
457
+ ],
458
+ "stateMutability": "view",
459
+ "type": "function"
460
+ },
461
+ {
462
+ "inputs": [],
463
+ "name": "PROTOCOL_SHARE_RESERVE",
464
+ "outputs": [
465
+ {
466
+ "internalType": "address",
467
+ "name": "",
468
+ "type": "address"
469
+ }
470
+ ],
471
+ "stateMutability": "view",
472
+ "type": "function"
473
+ },
474
+ {
475
+ "inputs": [],
476
+ "name": "RESILIENT_ORACLE",
477
+ "outputs": [
478
+ {
479
+ "internalType": "address",
480
+ "name": "",
481
+ "type": "address"
482
+ }
483
+ ],
484
+ "stateMutability": "view",
485
+ "type": "function"
486
+ },
487
+ {
488
+ "inputs": [],
489
+ "name": "acceptOwnership",
490
+ "outputs": [],
491
+ "stateMutability": "nonpayable",
492
+ "type": "function"
493
+ },
494
+ {
495
+ "inputs": [],
496
+ "name": "accessControlManager",
497
+ "outputs": [
498
+ {
499
+ "internalType": "contract IAccessControlManagerV8",
500
+ "name": "",
501
+ "type": "address"
502
+ }
503
+ ],
504
+ "stateMutability": "view",
505
+ "type": "function"
506
+ },
507
+ {
508
+ "inputs": [
509
+ {
510
+ "internalType": "address",
511
+ "name": "",
512
+ "type": "address"
513
+ }
514
+ ],
515
+ "name": "allowedRouters",
516
+ "outputs": [
517
+ {
518
+ "internalType": "bool",
519
+ "name": "",
520
+ "type": "bool"
521
+ }
522
+ ],
523
+ "stateMutability": "view",
524
+ "type": "function"
525
+ },
526
+ {
527
+ "inputs": [
528
+ {
529
+ "internalType": "address",
530
+ "name": "",
531
+ "type": "address"
532
+ }
533
+ ],
534
+ "name": "assetsReserves",
535
+ "outputs": [
536
+ {
537
+ "internalType": "uint256",
538
+ "name": "",
539
+ "type": "uint256"
540
+ }
541
+ ],
542
+ "stateMutability": "view",
543
+ "type": "function"
544
+ },
545
+ {
546
+ "inputs": [],
547
+ "name": "dailyCapUsd",
548
+ "outputs": [
549
+ {
550
+ "internalType": "uint256",
551
+ "name": "",
552
+ "type": "uint256"
553
+ }
554
+ ],
555
+ "stateMutability": "view",
556
+ "type": "function"
557
+ },
558
+ {
559
+ "inputs": [
560
+ {
561
+ "internalType": "address",
562
+ "name": "tokenIn",
563
+ "type": "address"
564
+ },
565
+ {
566
+ "internalType": "uint256",
567
+ "name": "amountIn",
568
+ "type": "uint256"
569
+ },
570
+ {
571
+ "internalType": "uint256",
572
+ "name": "minAmountOut",
573
+ "type": "uint256"
574
+ },
575
+ {
576
+ "internalType": "uint256",
577
+ "name": "deadline",
578
+ "type": "uint256"
579
+ },
580
+ {
581
+ "internalType": "address",
582
+ "name": "router",
583
+ "type": "address"
584
+ },
585
+ {
586
+ "internalType": "bytes",
587
+ "name": "routerCalldata",
588
+ "type": "bytes"
589
+ },
590
+ {
591
+ "internalType": "address",
592
+ "name": "comptroller",
593
+ "type": "address"
594
+ }
595
+ ],
596
+ "name": "executeBuyback",
597
+ "outputs": [],
598
+ "stateMutability": "nonpayable",
599
+ "type": "function"
600
+ },
601
+ {
602
+ "inputs": [
603
+ {
604
+ "internalType": "address",
605
+ "name": "comptroller",
606
+ "type": "address"
607
+ },
608
+ {
609
+ "internalType": "uint256",
610
+ "name": "amount",
611
+ "type": "uint256"
612
+ }
613
+ ],
614
+ "name": "forwardBaseAsset",
615
+ "outputs": [],
616
+ "stateMutability": "nonpayable",
617
+ "type": "function"
618
+ },
619
+ {
620
+ "inputs": [
621
+ {
622
+ "internalType": "address",
623
+ "name": "accessControlManager_",
624
+ "type": "address"
625
+ },
626
+ {
627
+ "internalType": "uint256",
628
+ "name": "dailyCapUsd_",
629
+ "type": "uint256"
630
+ },
631
+ {
632
+ "internalType": "uint256",
633
+ "name": "slippageEventUsd_",
634
+ "type": "uint256"
635
+ }
636
+ ],
637
+ "name": "initialize",
638
+ "outputs": [],
639
+ "stateMutability": "nonpayable",
640
+ "type": "function"
641
+ },
642
+ {
643
+ "inputs": [],
644
+ "name": "lastUpdate",
645
+ "outputs": [
646
+ {
647
+ "internalType": "uint256",
648
+ "name": "",
649
+ "type": "uint256"
650
+ }
651
+ ],
652
+ "stateMutability": "view",
653
+ "type": "function"
654
+ },
655
+ {
656
+ "inputs": [],
657
+ "name": "owner",
658
+ "outputs": [
659
+ {
660
+ "internalType": "address",
661
+ "name": "",
662
+ "type": "address"
663
+ }
664
+ ],
665
+ "stateMutability": "view",
666
+ "type": "function"
667
+ },
668
+ {
669
+ "inputs": [],
670
+ "name": "pendingOwner",
671
+ "outputs": [
672
+ {
673
+ "internalType": "address",
674
+ "name": "",
675
+ "type": "address"
676
+ }
677
+ ],
678
+ "stateMutability": "view",
679
+ "type": "function"
680
+ },
681
+ {
682
+ "inputs": [],
683
+ "name": "renounceOwnership",
684
+ "outputs": [],
685
+ "stateMutability": "nonpayable",
686
+ "type": "function"
687
+ },
688
+ {
689
+ "inputs": [
690
+ {
691
+ "internalType": "address",
692
+ "name": "accessControlManager_",
693
+ "type": "address"
694
+ }
695
+ ],
696
+ "name": "setAccessControlManager",
697
+ "outputs": [],
698
+ "stateMutability": "nonpayable",
699
+ "type": "function"
700
+ },
701
+ {
702
+ "inputs": [
703
+ {
704
+ "internalType": "address",
705
+ "name": "router",
706
+ "type": "address"
707
+ },
708
+ {
709
+ "internalType": "bool",
710
+ "name": "allowed",
711
+ "type": "bool"
712
+ }
713
+ ],
714
+ "name": "setAllowedRouter",
715
+ "outputs": [],
716
+ "stateMutability": "nonpayable",
717
+ "type": "function"
718
+ },
719
+ {
720
+ "inputs": [
721
+ {
722
+ "internalType": "uint256",
723
+ "name": "newCap",
724
+ "type": "uint256"
725
+ }
726
+ ],
727
+ "name": "setDailyCapUsd",
728
+ "outputs": [],
729
+ "stateMutability": "nonpayable",
730
+ "type": "function"
731
+ },
732
+ {
733
+ "inputs": [
734
+ {
735
+ "internalType": "uint256",
736
+ "name": "newThreshold",
737
+ "type": "uint256"
738
+ }
739
+ ],
740
+ "name": "setSlippageEventUsd",
741
+ "outputs": [],
742
+ "stateMutability": "nonpayable",
743
+ "type": "function"
744
+ },
745
+ {
746
+ "inputs": [],
747
+ "name": "slippageEventUsd",
748
+ "outputs": [
749
+ {
750
+ "internalType": "uint256",
751
+ "name": "",
752
+ "type": "uint256"
753
+ }
754
+ ],
755
+ "stateMutability": "view",
756
+ "type": "function"
757
+ },
758
+ {
759
+ "inputs": [
760
+ {
761
+ "internalType": "address",
762
+ "name": "token",
763
+ "type": "address"
764
+ },
765
+ {
766
+ "internalType": "address",
767
+ "name": "to",
768
+ "type": "address"
769
+ },
770
+ {
771
+ "internalType": "uint256",
772
+ "name": "amount",
773
+ "type": "uint256"
774
+ }
775
+ ],
776
+ "name": "sweepToken",
777
+ "outputs": [],
778
+ "stateMutability": "nonpayable",
779
+ "type": "function"
780
+ },
781
+ {
782
+ "inputs": [
783
+ {
784
+ "internalType": "address",
785
+ "name": "newOwner",
786
+ "type": "address"
787
+ }
788
+ ],
789
+ "name": "transferOwnership",
790
+ "outputs": [],
791
+ "stateMutability": "nonpayable",
792
+ "type": "function"
793
+ },
794
+ {
795
+ "inputs": [
796
+ {
797
+ "internalType": "address",
798
+ "name": "comptroller",
799
+ "type": "address"
800
+ },
801
+ {
802
+ "internalType": "address",
803
+ "name": "asset",
804
+ "type": "address"
805
+ }
806
+ ],
807
+ "name": "updateAssetsState",
808
+ "outputs": [],
809
+ "stateMutability": "nonpayable",
810
+ "type": "function"
811
+ },
812
+ {
813
+ "inputs": [],
814
+ "name": "usdConsumedInWindow",
815
+ "outputs": [
816
+ {
817
+ "internalType": "uint256",
818
+ "name": "",
819
+ "type": "uint256"
820
+ }
821
+ ],
822
+ "stateMutability": "view",
823
+ "type": "function"
824
+ }
825
+ ],
826
+ "bytecode": "0x61010060405234801561001157600080fd5b50604051612baf380380612baf83398101604081905261003091610189565b61003984610084565b61004283610084565b61004b82610084565b61005481610084565b6001600160a01b0380851660805283811660a05282811660c052811660e05261007b6100ae565b505050506101dd565b6001600160a01b0381166100ab576040516342bcdf7f60e11b815260040160405180910390fd5b50565b600054610100900460ff161561011a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161461016b576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b038116811461018457600080fd5b919050565b6000806000806080858703121561019f57600080fd5b6101a88561016d565b93506101b66020860161016d565b92506101c46040860161016d565b91506101d26060860161016d565b905092959194509250565b60805160a05160c05160e05161292261028d600039600081816102d00152611b5c01526000818161037f0152610e4c0152600081816103250152818161097001528181610ba201528181610c7e01528181610d0f01528181610d86015281816110a5015281816111520152818161119a0152818161120f0152818161128c0152818161184701528181611be90152611d0501526000818161025101528181610ca001526111bc01526129226000f3fe608060405234801561001057600080fd5b50600436106101a35760003560e01c80639b0b8b4b116100ee578063c646aee211610097578063e30c397811610071578063e30c3978146103aa578063e9b446ee146103bb578063f2fde38b146103c4578063f8e5d56d146103d757600080fd5b8063c646aee214610347578063ccd425961461037a578063e2acd019146103a157600080fd5b8063b4a0bdf3116100c8578063b4a0bdf314610305578063c046371114610316578063c55ed10e1461032057600080fd5b80639b0b8b4b146102b8578063a4edcd4c146102cb578063aac59a75146102f257600080fd5b806379ba5097116101505780638da5cb5b1161012a5780638da5cb5b1461028b5780638e598c5a1461029c5780639193ea11146102a557600080fd5b806379ba5097146102315780637a1ac61e146102395780638b78150e1461024c57600080fd5b8063439b551711610181578063439b5517146101e357806364aff9ec14610216578063715018a61461022957600080fd5b80630e32cb86146101a857806317b71b43146101bd57806339a5b0cd146101d0575b600080fd5b6101bb6101b63660046124b1565b6103ea565b005b6101bb6101cb3660046124cc565b6103fe565b6101bb6101de3660046124f3565b610486565b6102036101f13660046124b1565b60fc6020526000908152604090205481565b6040519081526020015b60405180910390f35b6101bb61022436600461252a565b610514565b6101bb610639565b6101bb61064d565b6101bb610247366004612566565b6106dd565b6102737f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161020d565b6033546001600160a01b0316610273565b61020360fd5481565b6101bb6102b33660046124cc565b610882565b6101bb6102c6366004612599565b61090a565b6102737f000000000000000000000000000000000000000000000000000000000000000081565b6101bb61030036600461265a565b610e39565b6097546001600160a01b0316610273565b6102036101005481565b6102737f000000000000000000000000000000000000000000000000000000000000000081565b61036a6103553660046124b1565b60fb6020526000908152604090205460ff1681565b604051901515815260200161020d565b6102737f000000000000000000000000000000000000000000000000000000000000000081565b61020360ff5481565b6065546001600160a01b0316610273565b61020360fe5481565b6101bb6103d23660046124b1565b610fbc565b6101bb6103e536600461268d565b611045565b6103f2611302565b6103fb8161135c565b50565b61043c6040518060400160405280601c81526020017f736574536c6970706167654576656e745573642875696e743235362900000000815250611451565b6104458161151d565b60fe5460408051918252602082018390527f8c9633aea3d03d428204e90b3e2efd08871c16aa42fbbc2a5ed388f8f2648ccf910160405180910390a160fe55565b61048e611302565b61049782611557565b6001600160a01b038216600081815260fb602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527ff6151c62a90d29c667a345f008b0e601781f9b00f1ea4a3368bb4101aabc348a910160405180910390a25050565b61051c611302565b610524611597565b61052d83611557565b61053682611557565b61053f8161151d565b6105536001600160a01b03841683836115f0565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa1580156105b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d491906126b7565b6001600160a01b03848116600081815260fc602090815260409182902094909455518481529185169290917f6d25be279134f4ecaa4770aff0c3d916d9e7c5ef37b65ed95dbdba411f5d54d5910160405180910390a3610634600160c955565b505050565b610641611302565b61064b60006116be565b565b60655433906001600160a01b031681146106d45760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6103fb816116be565b600054610100900460ff16158080156106fd5750600054600160ff909116105b806107175750303b158015610717575060005460ff166001145b6107895760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016106cb565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156107e757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6107f08361151d565b6107f98261151d565b610802846116ef565b61080a61177d565b60fd83905560fe8290554261010055801561087c57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b6108c06040518060400160405280601781526020017f7365744461696c794361705573642875696e7432353629000000000000000000815250611451565b6108c98161151d565b60fd5460408051918252602082018390527ff4801dba0698dfc988861fe5706c05506de1b60390d85380cbb8171fcf80abc2910160405180910390a160fd55565b610912611597565b61093360405180608001604052806045815260200161288760459139611451565b61093f88888787611802565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156109bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e391906126b7565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529091506000906001600160a01b038b16906370a0823190602401602060405180830381865afa158015610a46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6a91906126b7565b9050610a806001600160a01b038b16878b611a01565b610aca85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506001600160a01b038a1692915050611ad7565b50610ae06001600160a01b038b16876000611a01565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038c16906370a0823190602401602060405180830381865afa158015610b40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6491906126b7565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290915060009084906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610be9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0d91906126b7565b610c1791906126ff565b90506000610c2583856126ff565b90508a821015610c6b576040517f71c4efed000000000000000000000000000000000000000000000000000000008152600481018c9052602481018390526044016106cb565b8115610cc557610cc56001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000846115f0565b6001600160a01b038d8116600090815260fc602052604090819020859055517f70a082310000000000000000000000000000000000000000000000000000000081523060048201527f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015610d58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7c91906126b7565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016600090815260fc6020526040902055610dc08d8284611b24565b856001600160a01b0316896001600160a01b03168e6001600160a01b03167fcf344e3e11f264ab6990277a6d1af6a12ac91e7a7541e7420bd2da85d3f231118486604051610e18929190918252602082015260400190565b60405180910390a45050505050610e2f600160c955565b5050505050505050565b610e41611597565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610ea5576040517fd86ad9cf0000000000000000000000000000000000000000000000000000000081523360048201526024016106cb565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610f05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2991906126b7565b6001600160a01b038316600090815260fc602052604090205490915080821115610fac576001600160a01b03808416600081815260fc60205260409081902085905551838503928716907f6498a42739b9b246e80b4d5115100c258e8d082641eaf0a7d04a09ed462026f890610fa29085815260200190565b60405180910390a3505b5050610fb8600160c955565b5050565b610fc4611302565b606580546001600160a01b0383167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915561100d6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b61104d611597565b61106e6040518060600160405280602181526020016128cc60219139611451565b80156112f8576040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156110f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111891906126b7565b90508082111561118d576040517fdb42144d0000000000000000000000000000000000000000000000000000000081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016600482015260248101839052604481018290526064016106cb565b6111e16001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000846115f0565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa15801561125e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128291906126b7565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600090815260fc60209081526040918290209390935551848152908516917f6e0120b89e6a7e77429d9ce7009ed6013ad22a8ef3d2c7c1dd310fbe5de67f7d910160405180910390a2505b610fb8600160c955565b6033546001600160a01b0316331461064b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106cb565b6001600160a01b0381166113d85760405162461bcd60e51b815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016106cb565b609780546001600160a01b038381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa0910160405180910390a15050565b6097546040517f18c5e8ab0000000000000000000000000000000000000000000000000000000081526000916001600160a01b0316906318c5e8ab9061149d9033908690600401612780565b602060405180830381865afa1580156114ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114de91906127a2565b905080610fb8573330836040517f4a3fa2930000000000000000000000000000000000000000000000000000000081526004016106cb939291906127c6565b806000036103fb576040517f9cf8540c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0381166103fb576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260c954036115e95760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016106cb565b600260c955565b6040516001600160a01b0383166024820152604481018290526106349084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611ef6565b600160c955565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556103fb81611fde565b600054610100900460ff1661176c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106cb565b611774612048565b6103fb816120cd565b600054610100900460ff166117fa5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106cb565b61064b61214a565b81421115611845576040517f1503f5f8000000000000000000000000000000000000000000000000000000008152600481018390524260248201526044016106cb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316036118bb576040517f53cc963a0000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526024016106cb565b6001600160a01b038116600090815260fb602052604090205460ff16611918576040517fc665406f0000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201526024016106cb565b6119218361151d565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038616906370a0823190602401602060405180830381865afa158015611981573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a591906126b7565b9050808411156119fa576040517fdb42144d0000000000000000000000000000000000000000000000000000000081526001600160a01b038616600482015260248101859052604481018290526064016106cb565b5050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b300000000000000000000000000000000000000000000000000000000179052611a8084826121c7565b61087c576040516001600160a01b038416602482015260006044820152611acd9085907f095ea7b30000000000000000000000000000000000000000000000000000000090606401611635565b61087c8482611ef6565b6060611b1b838360006040518060400160405280601e81526020017f416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564000081525061226e565b90505b92915050565b6040517fb62cad690000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301527f0000000000000000000000000000000000000000000000000000000000000000919082169063b62cad6990602401600060405180830381600087803b158015611ba357600080fd5b505af1158015611bb7573d6000803e3d6000fd5b50506040517fb62cad690000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301528416925063b62cad699150602401600060405180830381600087803b158015611c3757600080fd5b505af1158015611c4b573d6000803e3d6000fd5b50506040517f41976e090000000000000000000000000000000000000000000000000000000081526001600160a01b03878116600483015260009350841691506341976e0990602401602060405180830381865afa158015611cb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cd591906126b7565b6040517f41976e090000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301529192506000918416906341976e0990602401602060405180830381865afa158015611d5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d7e91906126b7565b90506000670de0b6b3a7640000611d9584886127f2565b611d9f9190612809565b90506000670de0b6b3a7640000611db684886127f2565b611dc09190612809565b905060006101005442611dd391906126ff565b9050600062015180821015611e0c5762015180611df083826126ff565b60ff54611dfd91906127f2565b611e079190612809565b611e0f565b60005b426101005590506000611e228583612844565b905060fd54811115611e6e5760fd546040517f3e8141270000000000000000000000000000000000000000000000000000000081526106cb918391600401918252602082015260400190565b60ff81905583851115611ee9576000611e8785876126ff565b905060fe54811115611ee757604080518c8152602081018c9052908101879052606081018690526001600160a01b038d16907f83e07bcf8abf16c91dd73e63ada0c83d5e0d7f2b152b0222bf686add2c7cac149060800160405180910390a25b505b5050505050505050505050565b6000611f4b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166123629092919063ffffffff16565b9050805160001480611f6c575080806020019051810190611f6c91906127a2565b6106345760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016106cb565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166120c55760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106cb565b61064b612371565b600054610100900460ff166103f25760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106cb565b600054610100900460ff166116b75760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106cb565b6000806000846001600160a01b0316846040516121e49190612857565b6000604051808303816000865af19150503d8060008114612221576040519150601f19603f3d011682016040523d82523d6000602084013e612226565b606091505b509150915081801561225057508051158061225057508080602001905181019061225091906127a2565b801561226557506001600160a01b0385163b15155b95945050505050565b6060824710156122e65760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016106cb565b600080866001600160a01b031685876040516123029190612857565b60006040518083038185875af1925050503d806000811461233f576040519150601f19603f3d011682016040523d82523d6000602084013e612344565b606091505b5091509150612355878383876123f7565b925050505b949350505050565b606061235a848460008561226e565b600054610100900460ff166123ee5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106cb565b61064b336116be565b6060831561246657825160000361245f576001600160a01b0385163b61245f5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106cb565b508161235a565b61235a838381511561247b5781518083602001fd5b8060405162461bcd60e51b81526004016106cb9190612873565b80356001600160a01b03811681146124ac57600080fd5b919050565b6000602082840312156124c357600080fd5b611b1b82612495565b6000602082840312156124de57600080fd5b5035919050565b80151581146103fb57600080fd5b6000806040838503121561250657600080fd5b61250f83612495565b9150602083013561251f816124e5565b809150509250929050565b60008060006060848603121561253f57600080fd5b61254884612495565b925061255660208501612495565b9150604084013590509250925092565b60008060006060848603121561257b57600080fd5b61258484612495565b95602085013595506040909401359392505050565b60008060008060008060008060e0898b0312156125b557600080fd5b6125be89612495565b97506020890135965060408901359550606089013594506125e160808a01612495565b935060a089013567ffffffffffffffff808211156125fe57600080fd5b818b0191508b601f83011261261257600080fd5b81358181111561262157600080fd5b8c602082850101111561263357600080fd5b60208301955080945050505061264b60c08a01612495565b90509295985092959890939650565b6000806040838503121561266d57600080fd5b61267683612495565b915061268460208401612495565b90509250929050565b600080604083850312156126a057600080fd5b6126a983612495565b946020939093013593505050565b6000602082840312156126c957600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115611b1e57611b1e6126d0565b60005b8381101561272d578181015183820152602001612715565b50506000910152565b6000815180845261274e816020860160208601612712565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6001600160a01b038316815260406020820152600061235a6040830184612736565b6000602082840312156127b457600080fd5b81516127bf816124e5565b9392505050565b60006001600160a01b038086168352808516602084015250606060408301526122656060830184612736565b8082028115828204841417611b1e57611b1e6126d0565b60008261283f577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b80820180821115611b1e57611b1e6126d0565b60008251612869818460208701612712565b9190910192915050565b602081526000611b1b602083018461273656fe657865637574654275796261636b28616464726573732c75696e743235362c75696e743235362c75696e743235362c616464726573732c62797465732c6164647265737329666f727761726442617365417373657428616464726573732c75696e7432353629a2646970667358221220f8edf0b0860d9dfa440c6ad2b8030e0a76d527414b9c9f4e4c5192b8f977c0ac64736f6c63430008190033",
827
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101a35760003560e01c80639b0b8b4b116100ee578063c646aee211610097578063e30c397811610071578063e30c3978146103aa578063e9b446ee146103bb578063f2fde38b146103c4578063f8e5d56d146103d757600080fd5b8063c646aee214610347578063ccd425961461037a578063e2acd019146103a157600080fd5b8063b4a0bdf3116100c8578063b4a0bdf314610305578063c046371114610316578063c55ed10e1461032057600080fd5b80639b0b8b4b146102b8578063a4edcd4c146102cb578063aac59a75146102f257600080fd5b806379ba5097116101505780638da5cb5b1161012a5780638da5cb5b1461028b5780638e598c5a1461029c5780639193ea11146102a557600080fd5b806379ba5097146102315780637a1ac61e146102395780638b78150e1461024c57600080fd5b8063439b551711610181578063439b5517146101e357806364aff9ec14610216578063715018a61461022957600080fd5b80630e32cb86146101a857806317b71b43146101bd57806339a5b0cd146101d0575b600080fd5b6101bb6101b63660046124b1565b6103ea565b005b6101bb6101cb3660046124cc565b6103fe565b6101bb6101de3660046124f3565b610486565b6102036101f13660046124b1565b60fc6020526000908152604090205481565b6040519081526020015b60405180910390f35b6101bb61022436600461252a565b610514565b6101bb610639565b6101bb61064d565b6101bb610247366004612566565b6106dd565b6102737f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161020d565b6033546001600160a01b0316610273565b61020360fd5481565b6101bb6102b33660046124cc565b610882565b6101bb6102c6366004612599565b61090a565b6102737f000000000000000000000000000000000000000000000000000000000000000081565b6101bb61030036600461265a565b610e39565b6097546001600160a01b0316610273565b6102036101005481565b6102737f000000000000000000000000000000000000000000000000000000000000000081565b61036a6103553660046124b1565b60fb6020526000908152604090205460ff1681565b604051901515815260200161020d565b6102737f000000000000000000000000000000000000000000000000000000000000000081565b61020360ff5481565b6065546001600160a01b0316610273565b61020360fe5481565b6101bb6103d23660046124b1565b610fbc565b6101bb6103e536600461268d565b611045565b6103f2611302565b6103fb8161135c565b50565b61043c6040518060400160405280601c81526020017f736574536c6970706167654576656e745573642875696e743235362900000000815250611451565b6104458161151d565b60fe5460408051918252602082018390527f8c9633aea3d03d428204e90b3e2efd08871c16aa42fbbc2a5ed388f8f2648ccf910160405180910390a160fe55565b61048e611302565b61049782611557565b6001600160a01b038216600081815260fb602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527ff6151c62a90d29c667a345f008b0e601781f9b00f1ea4a3368bb4101aabc348a910160405180910390a25050565b61051c611302565b610524611597565b61052d83611557565b61053682611557565b61053f8161151d565b6105536001600160a01b03841683836115f0565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa1580156105b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d491906126b7565b6001600160a01b03848116600081815260fc602090815260409182902094909455518481529185169290917f6d25be279134f4ecaa4770aff0c3d916d9e7c5ef37b65ed95dbdba411f5d54d5910160405180910390a3610634600160c955565b505050565b610641611302565b61064b60006116be565b565b60655433906001600160a01b031681146106d45760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6103fb816116be565b600054610100900460ff16158080156106fd5750600054600160ff909116105b806107175750303b158015610717575060005460ff166001145b6107895760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016106cb565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156107e757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6107f08361151d565b6107f98261151d565b610802846116ef565b61080a61177d565b60fd83905560fe8290554261010055801561087c57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b6108c06040518060400160405280601781526020017f7365744461696c794361705573642875696e7432353629000000000000000000815250611451565b6108c98161151d565b60fd5460408051918252602082018390527ff4801dba0698dfc988861fe5706c05506de1b60390d85380cbb8171fcf80abc2910160405180910390a160fd55565b610912611597565b61093360405180608001604052806045815260200161288760459139611451565b61093f88888787611802565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156109bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e391906126b7565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529091506000906001600160a01b038b16906370a0823190602401602060405180830381865afa158015610a46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6a91906126b7565b9050610a806001600160a01b038b16878b611a01565b610aca85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506001600160a01b038a1692915050611ad7565b50610ae06001600160a01b038b16876000611a01565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038c16906370a0823190602401602060405180830381865afa158015610b40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6491906126b7565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290915060009084906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610be9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0d91906126b7565b610c1791906126ff565b90506000610c2583856126ff565b90508a821015610c6b576040517f71c4efed000000000000000000000000000000000000000000000000000000008152600481018c9052602481018390526044016106cb565b8115610cc557610cc56001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000846115f0565b6001600160a01b038d8116600090815260fc602052604090819020859055517f70a082310000000000000000000000000000000000000000000000000000000081523060048201527f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015610d58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7c91906126b7565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016600090815260fc6020526040902055610dc08d8284611b24565b856001600160a01b0316896001600160a01b03168e6001600160a01b03167fcf344e3e11f264ab6990277a6d1af6a12ac91e7a7541e7420bd2da85d3f231118486604051610e18929190918252602082015260400190565b60405180910390a45050505050610e2f600160c955565b5050505050505050565b610e41611597565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610ea5576040517fd86ad9cf0000000000000000000000000000000000000000000000000000000081523360048201526024016106cb565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610f05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2991906126b7565b6001600160a01b038316600090815260fc602052604090205490915080821115610fac576001600160a01b03808416600081815260fc60205260409081902085905551838503928716907f6498a42739b9b246e80b4d5115100c258e8d082641eaf0a7d04a09ed462026f890610fa29085815260200190565b60405180910390a3505b5050610fb8600160c955565b5050565b610fc4611302565b606580546001600160a01b0383167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915561100d6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b61104d611597565b61106e6040518060600160405280602181526020016128cc60219139611451565b80156112f8576040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156110f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111891906126b7565b90508082111561118d576040517fdb42144d0000000000000000000000000000000000000000000000000000000081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016600482015260248101839052604481018290526064016106cb565b6111e16001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000846115f0565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa15801561125e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128291906126b7565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600090815260fc60209081526040918290209390935551848152908516917f6e0120b89e6a7e77429d9ce7009ed6013ad22a8ef3d2c7c1dd310fbe5de67f7d910160405180910390a2505b610fb8600160c955565b6033546001600160a01b0316331461064b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106cb565b6001600160a01b0381166113d85760405162461bcd60e51b815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016106cb565b609780546001600160a01b038381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa0910160405180910390a15050565b6097546040517f18c5e8ab0000000000000000000000000000000000000000000000000000000081526000916001600160a01b0316906318c5e8ab9061149d9033908690600401612780565b602060405180830381865afa1580156114ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114de91906127a2565b905080610fb8573330836040517f4a3fa2930000000000000000000000000000000000000000000000000000000081526004016106cb939291906127c6565b806000036103fb576040517f9cf8540c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0381166103fb576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260c954036115e95760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016106cb565b600260c955565b6040516001600160a01b0383166024820152604481018290526106349084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611ef6565b600160c955565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556103fb81611fde565b600054610100900460ff1661176c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106cb565b611774612048565b6103fb816120cd565b600054610100900460ff166117fa5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106cb565b61064b61214a565b81421115611845576040517f1503f5f8000000000000000000000000000000000000000000000000000000008152600481018390524260248201526044016106cb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316036118bb576040517f53cc963a0000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526024016106cb565b6001600160a01b038116600090815260fb602052604090205460ff16611918576040517fc665406f0000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201526024016106cb565b6119218361151d565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038616906370a0823190602401602060405180830381865afa158015611981573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a591906126b7565b9050808411156119fa576040517fdb42144d0000000000000000000000000000000000000000000000000000000081526001600160a01b038616600482015260248101859052604481018290526064016106cb565b5050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b300000000000000000000000000000000000000000000000000000000179052611a8084826121c7565b61087c576040516001600160a01b038416602482015260006044820152611acd9085907f095ea7b30000000000000000000000000000000000000000000000000000000090606401611635565b61087c8482611ef6565b6060611b1b838360006040518060400160405280601e81526020017f416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564000081525061226e565b90505b92915050565b6040517fb62cad690000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301527f0000000000000000000000000000000000000000000000000000000000000000919082169063b62cad6990602401600060405180830381600087803b158015611ba357600080fd5b505af1158015611bb7573d6000803e3d6000fd5b50506040517fb62cad690000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301528416925063b62cad699150602401600060405180830381600087803b158015611c3757600080fd5b505af1158015611c4b573d6000803e3d6000fd5b50506040517f41976e090000000000000000000000000000000000000000000000000000000081526001600160a01b03878116600483015260009350841691506341976e0990602401602060405180830381865afa158015611cb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cd591906126b7565b6040517f41976e090000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301529192506000918416906341976e0990602401602060405180830381865afa158015611d5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d7e91906126b7565b90506000670de0b6b3a7640000611d9584886127f2565b611d9f9190612809565b90506000670de0b6b3a7640000611db684886127f2565b611dc09190612809565b905060006101005442611dd391906126ff565b9050600062015180821015611e0c5762015180611df083826126ff565b60ff54611dfd91906127f2565b611e079190612809565b611e0f565b60005b426101005590506000611e228583612844565b905060fd54811115611e6e5760fd546040517f3e8141270000000000000000000000000000000000000000000000000000000081526106cb918391600401918252602082015260400190565b60ff81905583851115611ee9576000611e8785876126ff565b905060fe54811115611ee757604080518c8152602081018c9052908101879052606081018690526001600160a01b038d16907f83e07bcf8abf16c91dd73e63ada0c83d5e0d7f2b152b0222bf686add2c7cac149060800160405180910390a25b505b5050505050505050505050565b6000611f4b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166123629092919063ffffffff16565b9050805160001480611f6c575080806020019051810190611f6c91906127a2565b6106345760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016106cb565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166120c55760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106cb565b61064b612371565b600054610100900460ff166103f25760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106cb565b600054610100900460ff166116b75760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106cb565b6000806000846001600160a01b0316846040516121e49190612857565b6000604051808303816000865af19150503d8060008114612221576040519150601f19603f3d011682016040523d82523d6000602084013e612226565b606091505b509150915081801561225057508051158061225057508080602001905181019061225091906127a2565b801561226557506001600160a01b0385163b15155b95945050505050565b6060824710156122e65760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016106cb565b600080866001600160a01b031685876040516123029190612857565b60006040518083038185875af1925050503d806000811461233f576040519150601f19603f3d011682016040523d82523d6000602084013e612344565b606091505b5091509150612355878383876123f7565b925050505b949350505050565b606061235a848460008561226e565b600054610100900460ff166123ee5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106cb565b61064b336116be565b6060831561246657825160000361245f576001600160a01b0385163b61245f5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106cb565b508161235a565b61235a838381511561247b5781518083602001fd5b8060405162461bcd60e51b81526004016106cb9190612873565b80356001600160a01b03811681146124ac57600080fd5b919050565b6000602082840312156124c357600080fd5b611b1b82612495565b6000602082840312156124de57600080fd5b5035919050565b80151581146103fb57600080fd5b6000806040838503121561250657600080fd5b61250f83612495565b9150602083013561251f816124e5565b809150509250929050565b60008060006060848603121561253f57600080fd5b61254884612495565b925061255660208501612495565b9150604084013590509250925092565b60008060006060848603121561257b57600080fd5b61258484612495565b95602085013595506040909401359392505050565b60008060008060008060008060e0898b0312156125b557600080fd5b6125be89612495565b97506020890135965060408901359550606089013594506125e160808a01612495565b935060a089013567ffffffffffffffff808211156125fe57600080fd5b818b0191508b601f83011261261257600080fd5b81358181111561262157600080fd5b8c602082850101111561263357600080fd5b60208301955080945050505061264b60c08a01612495565b90509295985092959890939650565b6000806040838503121561266d57600080fd5b61267683612495565b915061268460208401612495565b90509250929050565b600080604083850312156126a057600080fd5b6126a983612495565b946020939093013593505050565b6000602082840312156126c957600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115611b1e57611b1e6126d0565b60005b8381101561272d578181015183820152602001612715565b50506000910152565b6000815180845261274e816020860160208601612712565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6001600160a01b038316815260406020820152600061235a6040830184612736565b6000602082840312156127b457600080fd5b81516127bf816124e5565b9392505050565b60006001600160a01b038086168352808516602084015250606060408301526122656060830184612736565b8082028115828204841417611b1e57611b1e6126d0565b60008261283f577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b80820180821115611b1e57611b1e6126d0565b60008251612869818460208701612712565b9190910192915050565b602081526000611b1b602083018461273656fe657865637574654275796261636b28616464726573732c75696e743235362c75696e743235362c75696e743235362c616464726573732c62797465732c6164647265737329666f727761726442617365417373657428616464726573732c75696e7432353629a2646970667358221220f8edf0b0860d9dfa440c6ad2b8030e0a76d527414b9c9f4e4c5192b8f977c0ac64736f6c63430008190033",
828
+ "linkReferences": {},
829
+ "deployedLinkReferences": {}
830
+ }