-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathKeepRandomBeaconOperator.json
1060 lines (1060 loc) · 90.9 KB
/
KeepRandomBeaconOperator.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
{
"contractName": "KeepRandomBeaconOperator",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "_serviceContract",
"type": "address"
},
{
"internalType": "address",
"name": "_tokenStaking",
"type": "address"
},
{
"internalType": "address",
"name": "_keepRegistry",
"type": "address"
},
{
"internalType": "address",
"name": "_gasPriceOracle",
"type": "address"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "memberIndex",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bytes",
"name": "groupPubKey",
"type": "bytes"
},
{
"indexed": false,
"internalType": "bytes",
"name": "misbehaved",
"type": "bytes"
}
],
"name": "DkgResultSubmittedEvent",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "beneficiary",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "groupIndex",
"type": "uint256"
}
],
"name": "GroupMemberRewardsWithdrawn",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "newEntry",
"type": "uint256"
}
],
"name": "GroupSelectionStarted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes",
"name": "groupPubKey",
"type": "bytes"
}
],
"name": "OnGroupRegistered",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes",
"name": "previousEntry",
"type": "bytes"
},
{
"indexed": false,
"internalType": "bytes",
"name": "groupPublicKey",
"type": "bytes"
}
],
"name": "RelayEntryRequested",
"type": "event"
},
{
"anonymous": false,
"inputs": [],
"name": "RelayEntrySubmitted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "groupIndex",
"type": "uint256"
}
],
"name": "RelayEntryTimeoutReported",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "groupIndex",
"type": "uint256"
}
],
"name": "UnauthorizedSigningReported",
"type": "event"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "serviceContract",
"type": "address"
}
],
"name": "addServiceContract",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "_newEntry",
"type": "uint256"
},
{
"internalType": "address payable",
"name": "submitter",
"type": "address"
}
],
"name": "createGroup",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "currentRequestGroupIndex",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "currentRequestPreviousEntry",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "currentRequestStartBlock",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "dkgGasEstimate",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "dkgSubmitterReimbursementFee",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "entryVerificationFee",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "entryVerificationGasEstimate",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "gasPriceCeiling",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "genesis",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getFirstActiveGroupIndex",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "bytes",
"name": "groupPubKey",
"type": "bytes"
}
],
"name": "getGroupMemberRewards",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "bytes",
"name": "groupPubKey",
"type": "bytes"
}
],
"name": "getGroupMembers",
"outputs": [
{
"internalType": "address[]",
"name": "members",
"type": "address[]"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "uint256",
"name": "groupIndex",
"type": "uint256"
}
],
"name": "getGroupPublicKey",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "uint256",
"name": "groupIndex",
"type": "uint256"
}
],
"name": "getGroupRegistrationTime",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getNumberOfCreatedGroups",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "groupCreationFee",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "groupMemberBaseReward",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "groupProfitFee",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "groupSelectionGasEstimate",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "groupSize",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "groupThreshold",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "staker",
"type": "address"
}
],
"name": "hasMinimumStake",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "uint256",
"name": "groupIndex",
"type": "uint256"
}
],
"name": "hasWithdrawnRewards",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "isEntryInProgress",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "bytes",
"name": "groupPubKey",
"type": "bytes"
}
],
"name": "isGroupRegistered",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "isGroupSelectionPossible",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "uint256",
"name": "groupIndex",
"type": "uint256"
}
],
"name": "isGroupTerminated",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "bytes",
"name": "groupPubKey",
"type": "bytes"
}
],
"name": "isStaleGroup",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "numberOfGroups",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "refreshGasPrice",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "bytes",
"name": "_groupSignature",
"type": "bytes"
}
],
"name": "relayEntry",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "relayEntryTimeout",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "reportRelayEntryTimeout",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "groupIndex",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "signedMsgSender",
"type": "bytes"
}
],
"name": "reportUnauthorizedSigning",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "resultPublicationBlockStep",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "selectedParticipants",
"outputs": [
{
"internalType": "address[]",
"name": "",
"type": "address[]"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "requestId",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "previousEntry",
"type": "bytes"
}
],
"name": "sign",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "submitterMemberIndex",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "groupPubKey",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "misbehaved",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "signatures",
"type": "bytes"
},
{
"internalType": "uint256[]",
"name": "signingMembersIndexes",
"type": "uint256[]"
}
],
"name": "submitDkgResult",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "bytes32",
"name": "ticket",
"type": "bytes32"
}
],
"name": "submitTicket",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "submittedTickets",
"outputs": [
{
"internalType": "uint64[]",
"name": "",
"type": "uint64[]"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "ticketSubmissionTimeout",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "uint256",
"name": "groupIndex",
"type": "uint256"
}
],
"name": "withdrawGroupMemberRewards",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x608060405266038d7ea4c68000601d55640df8475800601e556040601f556021602055600660215562000045602154601f546200017860201b620033ab1790919060201c565b602255620445c0602355621a8ce060245562030d406025553480156200006a57600080fd5b506040516200445a3803806200445a833981810160405260808110156200009057600080fd5b50805160208083015160408401516060909401516001600081815560198054928301815590527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c96950180546001600160a01b03199081166001600160a01b0380881691909117909255601b805482168386161790819055601a80548316848a16179055601c805483168486161790556014805491909316911617905562013b00600b55602254600c55604e600455601f54600a8190556048601555602154601655601781905592549394919391929091600291036020549190040160185550620001df92505050565b6000826200018957506000620001d9565b828202828482816200019757fe5b0414620001d65760405162461bcd60e51b8152600401808060200182810382526021815260200180620044396021913960400191505060405180910390fd5b90505b92915050565b61424a80620001ef6000396000f3fe6080604052600436106102665760003560e01c80637d7d7dd911610144578063c300d058116100b6578063d12f5e691161007a578063d12f5e6914610c78578063e1f4d63214610d29578063e581ff7414610d3e578063eb9488d314610df6578063ef7c8f9c14610e0b578063fdd18b1314610e3557610266565b8063c300d05814610bf8578063c443894614610c0d578063c45751cd14610c22578063c96e71fb14610c37578063c98622fb14610c6357610266565b80639dabee44116101085780639dabee4414610a4f578063a7f0b3de14610b00578063ac374f4b14610b08578063b1c77c8f14610bb9578063b99f0c4314610bce578063bf95249614610be357610266565b80637d7d7dd914610926578063885c02041461093b5780638a3a3da8146109655780638e9e56a51461098f5780639b3d270a146109a457610266565b80635c1c0710116101dd5780636dcc64f8116101a15780636dcc64f81461065b5780636e5636e4146106705780637031b7ff1461068557806373f1daab1461069a5780637760c6c7146108de57806379f9fb7e1461091157610266565b80635c1c07101461054a5780635ec60d611461057d578063618c2656146105a75780636262d54e1461063157806363b635ea1461064657610266565b806324f173131161022f57806324f17313146103e85780632d6f8f31146103fd57806336c85717146104ae578063376f7a11146104c35780633926c28e146104fc578063517471a91461053557610266565b80623bf87e1461026b5780630b19991f146102925780631c524ac2146102f75780631ed74070146103bc57806321a8f86c146103d3575b600080fd5b34801561027757600080fd5b50610280610e4a565b60408051918252519081900360200190f35b34801561029e57600080fd5b506102a7610e50565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102e35781810151838201526020016102cb565b505050509050019250505060405180910390f35b34801561030357600080fd5b506103a86004803603602081101561031a57600080fd5b810190602081018135600160201b81111561033457600080fd5b82018360208201111561034657600080fd5b803590602001918460018302840111600160201b8311171561036757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610f71945050505050565b604080519115158252519081900360200190f35b3480156103c857600080fd5b506103d1610f8a565b005b3480156103df57600080fd5b506103a8611152565b3480156103f457600080fd5b50610280611181565b34801561040957600080fd5b506103a86004803603602081101561042057600080fd5b810190602081018135600160201b81111561043a57600080fd5b82018360208201111561044c57600080fd5b803590602001918460018302840111600160201b8311171561046d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611187945050505050565b3480156104ba57600080fd5b50610280611276565b3480156104cf57600080fd5b506103a8600480360360408110156104e657600080fd5b506001600160a01b03813516906020013561127c565b34801561050857600080fd5b506103d16004803603604081101561051f57600080fd5b506001600160a01b03813516906020013561131b565b34801561054157600080fd5b506102806115bb565b34801561055657600080fd5b506103a86004803603602081101561056d57600080fd5b50356001600160a01b03166115d9565b34801561058957600080fd5b50610280600480360360208110156105a057600080fd5b5035611643565b3480156105b357600080fd5b506105bc61169f565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105f65781810151838201526020016105de565b50505050905090810190601f1680156106235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561063d57600080fd5b506102a761172d565b34801561065257600080fd5b506102806117bc565b34801561066757600080fd5b506102806117c2565b34801561067c57600080fd5b506103a86117c8565b34801561069157600080fd5b506102806117d0565b3480156106a657600080fd5b506103d1600480360360a08110156106bd57600080fd5b81359190810190604081016020820135600160201b8111156106de57600080fd5b8201836020820111156106f057600080fd5b803590602001918460018302840111600160201b8311171561071157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561076357600080fd5b82018360208201111561077557600080fd5b803590602001918460018302840111600160201b8311171561079657600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156107e857600080fd5b8201836020820111156107fa57600080fd5b803590602001918460018302840111600160201b8311171561081b57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561086d57600080fd5b82018360208201111561087f57600080fd5b803590602001918460208302840111600160201b831117156108a057600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506117d6945050505050565b3480156108ea57600080fd5b506103d16004803603602081101561090157600080fd5b50356001600160a01b0316611e61565b34801561091d57600080fd5b50610280611f75565b34801561093257600080fd5b50610280611f7b565b34801561094757600080fd5b506103a86004803603602081101561095e57600080fd5b5035611f81565b34801561097157600080fd5b506103d16004803603602081101561098857600080fd5b5035611f94565b34801561099b57600080fd5b506102806120a1565b6103d1600480360360408110156109ba57600080fd5b81359190810190604081016020820135600160201b8111156109db57600080fd5b8201836020820111156109ed57600080fd5b803590602001918460018302840111600160201b83111715610a0e57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506120a7945050505050565b348015610a5b57600080fd5b5061028060048036036020811015610a7257600080fd5b810190602081018135600160201b811115610a8c57600080fd5b820183602082011115610a9e57600080fd5b803590602001918460018302840111600160201b83111715610abf57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550612204945050505050565b6103d161226f565b348015610b1457600080fd5b506103d160048036036020811015610b2b57600080fd5b810190602081018135600160201b811115610b4557600080fd5b820183602082011115610b5757600080fd5b803590602001918460018302840111600160201b83111715610b7857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550612407945050505050565b348015610bc557600080fd5b50610280612aac565b348015610bda57600080fd5b50610280612ab2565b348015610bef57600080fd5b50610280612ab8565b348015610c0457600080fd5b50610280612ac4565b348015610c1957600080fd5b50610280612aef565b348015610c2e57600080fd5b506103d1612b08565b6103d160048036036040811015610c4d57600080fd5b50803590602001356001600160a01b0316612b87565b348015610c6f57600080fd5b50610280612d95565b348015610c8457600080fd5b506102a760048036036020811015610c9b57600080fd5b810190602081018135600160201b811115610cb557600080fd5b820183602082011115610cc757600080fd5b803590602001918460018302840111600160201b83111715610ce857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550612d9b945050505050565b348015610d3557600080fd5b50610280612f27565b348015610d4a57600080fd5b506103d160048036036040811015610d6157600080fd5b81359190810190604081016020820135600160201b811115610d8257600080fd5b820183602082011115610d9457600080fd5b803590602001918460018302840111600160201b83111715610db557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550612f2d945050505050565b348015610e0257600080fd5b506102806130c3565b348015610e1757600080fd5b506105bc60048036036020811015610e2e57600080fd5b50356130c9565b348015610e4157600080fd5b506102806130dc565b60245481565b6060600173__$3ec6131c800895cf05c0b1b247f3586b1c$__63a3c6b2b390916040518263ffffffff1660e01b81526004018082815260200191505060006040518083038186803b158015610ea457600080fd5b505af4158015610eb8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015610ee157600080fd5b8101908080516040519392919084600160201b821115610f0057600080fd5b908301906020820185811115610f1557600080fd5b82518660208202830111600160201b82111715610f3157600080fd5b82525081516020918201928201910280838360005b83811015610f5e578181015183820152602001610f46565b5050505090500160405250505090505b90565b6000610f84600b8363ffffffff6130e216565b92915050565b610f92613152565b610fdc576040805162461bcd60e51b8152602060048201526016602482015275115b9d1c9e48191a59081b9bdd081d1a5b59481bdd5d60521b604482015290519081900360640190fd5b600b73__$a1f1023f69498e6b24d5677941ca2dedb8$__63a24940029091602a54601f546040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060006040518083038186803b15801561104257600080fd5b505af4158015611056573d6000803e3d6000fd5b505050506000602981905550600061106c612ab8565b111561112457602854602b8054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526111249493909290918301828280156111035780601f106110d857610100808354040283529160200191611103565b820191906000526020600020905b8154815290600101906020018083116110e657829003601f168201915b5050602e54602c54602d546001600160a01b0390921694509250905061316f565b602a546040517f6675fe3ae219641aa4ec9e58867bd7af88bf03caf819d8858f3ddf4cc635eed290600090a2565b60065460009060ff1661116757506001610f6e565b50602154601f546015546004546005540101910201431190565b60255481565b6040805163664d9be160e11b8152600b600482018181526024830193845284516044840152845160009473__$a1f1023f69498e6b24d5677941ca2dedb8$__9463cc9b37c2949388939092916064019060208501908083838c5b838110156111f95781810151838201526020016111e1565b50505050905090810190601f1680156112265780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b15801561124457600080fd5b505af4158015611258573d6000803e3d6000fd5b505050506040513d602081101561126e57600080fd5b505192915050565b60215481565b6040805163251be5d160e11b8152600b60048201526001600160a01b038416602482015260448101839052905160009173__$a1f1023f69498e6b24d5677941ca2dedb8$__91634a37cba291606480820192602092909190829003018186803b1580156112e857600080fd5b505af41580156112fc573d6000803e3d6000fd5b505050506040513d602081101561131257600080fd5b50519392505050565b60008054600101808255604080516319818cd360e01b8152600b60048201526001600160a01b038616602482015260448101859052905191929173__$a1f1023f69498e6b24d5677941ca2dedb8$__916319818cd3916064808301926020929190829003018186803b15801561139057600080fd5b505af41580156113a4573d6000803e3d6000fd5b505050506040513d60208110156113ba57600080fd5b5051601b546040805163ba7bffd360e01b81526001600160a01b0388811660048301529151939450600093919092169163ba7bffd3916024808301926020929190829003018186803b15801561140f57600080fd5b505afa158015611423573d6000803e3d6000fd5b505050506040513d602081101561143957600080fd5b50516040516001600160a01b03909116908390600081818185875af1925050503d8060008114611485576040519150601f19603f3d011682016040523d82523d6000602084013e61148a565b606091505b50509050801561155e57601b546040805163ba7bffd360e01b81526001600160a01b0388811660048301529151919092169163ba7bffd3916024808301926020929190829003018186803b1580156114e157600080fd5b505afa1580156114f5573d6000803e3d6000fd5b505050506040513d602081101561150b57600080fd5b5051604080516001600160a01b03888116825260208201869052818301889052915191909216917fd2d1d8bb9db82c3480418ddcddf25a021102ad139edec2a62b274595d408a88d919081900360600190a25b505060005481146115b6576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b505050565b60006115d4601e546023546133ab90919063ffffffff16565b905090565b601b5460408051624298fb60e61b81526001600160a01b038481166004830152306024830152915160009392909216916310a63ec091604480820192602092909190829003018186803b15801561162f57600080fd5b505afa158015611258573d6000803e3d6000fd5b6000600b73__$a1f1023f69498e6b24d5677941ca2dedb8$__634732bd3b9091846040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561124457600080fd5b602b805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156117255780601f106116fa57610100808354040283529160200191611725565b820191906000526020600020905b81548152906001019060200180831161170857829003601f168201915b505050505081565b606060016000018054806020026020016040519081016040528092919081815260200182805480156117b257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161176d5790505b5050505050905090565b601f5481565b60205481565b602954151590565b602a5481565b600080546001019081905560606117eb610e50565b9050601573__$9918f448901ac83b6f4e4089aa6e6bafad$__63da0a16899091898989898988600160030154600160040154016040518963ffffffff1660e01b815260040180898152602001888152602001806020018060200180602001806020018060200187815260200186810386528c818151815260200191508051906020019080838360005b8381101561188c578181015183820152602001611874565b50505050905090810190601f1680156118b95780820380516001836020036101000a031916815260200191505b5086810385528b5181528b516020918201918d019080838360005b838110156118ec5781810151838201526020016118d4565b50505050905090810190601f1680156119195780820380516001836020036101000a031916815260200191505b5086810384528a5181528a516020918201918c019080838360005b8381101561194c578181015183820152602001611934565b50505050905090810190601f1680156119795780820380516001836020036101000a031916815260200191505b508681038352895181528951602091820191808c01910280838360005b838110156119ae578181015183820152602001611996565b50505050905001868103825288818151815260200191508051906020019060200280838360005b838110156119ed5781810151838201526020016119d5565b505050509050019d505050505050505050505050505060006040518083038186803b158015611a1b57600080fd5b505af4158015611a2f573d6000803e3d6000fd5b50505050600b73__$a1f1023f69498e6b24d5677941ca2dedb8$__63e130bd6790918884896040518563ffffffff1660e01b815260040180858152602001806020018060200180602001848103845287818151815260200191508051906020019080838360005b83811015611aae578181015183820152602001611a96565b50505050905090810190601f168015611adb5780820380516001836020036101000a031916815260200191505b508481038352865181528651602091820191808901910280838360005b83811015611b10578181015183820152602001611af8565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015611b4c578181015183820152602001611b34565b50505050905090810190601f168015611b795780820380516001836020036101000a031916815260200191505b5097505050505050505060006040518083038186803b158015611b9b57600080fd5b505af4158015611baf573d6000803e3d6000fd5b50506040805163250d2afd60e11b8152600b60048201818152602483019384528b5160448401528b5173__$a1f1023f69498e6b24d5677941ca2dedb8$__9650634a1a55fa955091938c939192909160640190602085019080838360005b83811015611c25578181015183820152602001611c0d565b50505050905090810190601f168015611c525780820380516001836020036101000a031916815260200191505b50935050505060006040518083038186803b158015611c7057600080fd5b505af4158015611c84573d6000803e3d6000fd5b50505050611c9061340b565b7fd1d71346ed0f1479c55b14e7c48b084207a7e1bcd9abe4f22d425ec23a518a1f878787604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015611cfb578181015183820152602001611ce3565b50505050905090810190601f168015611d285780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015611d5b578181015183820152602001611d43565b50505050905090810190601f168015611d885780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a16040805163292c56eb60e21b815260016004820152905173__$3ec6131c800895cf05c0b1b247f3586b1c$__9163a4b15bac916024808301926000929190829003018186803b158015611dea57600080fd5b505af4158015611dfe573d6000803e3d6000fd5b50505050506000548114611e59576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b505050505050565b601a5460408051636557eccf60e01b8152306004820152905133926001600160a01b031691636557eccf916024808301926020929190829003018186803b158015611eab57600080fd5b505afa158015611ebf573d6000803e3d6000fd5b505050506040513d6020811015611ed557600080fd5b50516001600160a01b031614611f23576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b604482015290519081900360640190fd5b601980546001810182556000919091527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c96950180546001600160a01b0319166001600160a01b0392909216919091179055565b60235481565b601d5481565b6000610f84600b8363ffffffff6135f916565b600754601b546040805163afff33ef60e01b815233600482015230602482015290516000936120299390926001600160a01b039091169163afff33ef91604480820192602092909190829003018186803b158015611ff157600080fd5b505afa158015612005573d6000803e3d6000fd5b505050506040513d602081101561201b57600080fd5b50519063ffffffff61362816565b60408051633edbb52760e21b8152600160048201526024810185905260448101839052905191925073__$3ec6131c800895cf05c0b1b247f3586b1c$__9163fb6ed49c91606480820192600092909190829003018186803b15801561208d57600080fd5b505af4158015611e59573d6000803e3d6000fd5b60295481565b61211433601980548060200260200160405190810160405280929190818152602001828054801561210157602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116120e3575b505050505061366a90919063ffffffff16565b612165576040805162461bcd60e51b815260206004820181905260248201527f43616c6c6572206973206e6f742061207365727669636520636f6e7472616374604482015290519081900360640190fd5b60006121866121726115bb565b61217a612aef565b9063ffffffff6136c016565b9050803410156121dd576040805162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e74206e657720656e74727920666565000000000000604482015290519081900360640190fd5b60006121ef348363ffffffff61371a16565b90506121fe848433858561316f565b50505050565b6000600b600601826040518082805190602001908083835b6020831061223b5780518252601f19909201916020918201910161221c565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054949350505050565b604080516001620f258b60e01b03198152600b6004820152905173__$a1f1023f69498e6b24d5677941ca2dedb8$__9163fff0da75916024808301926000929190829003018186803b1580156122c457600080fd5b505af41580156122d8573d6000803e3d6000fd5b505050506122e4612ab8565b15612325576040805162461bcd60e51b815260206004820152600c60248201526b11dc9bdd5c1cc8195e1a5cdd60a21b604482015290519081900360640190fd5b6040805163292c56eb60e21b815260016004820152905173__$3ec6131c800895cf05c0b1b247f3586b1c$__9163a4b15bac916024808301926000929190829003018186803b15801561237757600080fd5b505af415801561238b573d6000803e3d6000fd5b5050601980549092506123a69150600163ffffffff61371a16565b815481106123b057fe5b600091825260209091200154602780546001600160a01b0319166001600160a01b039092169190911790556124057f4574c8c75d6e88acd28f7e467dac97b5c60c3838d9dad993900bdf402152228e3461375c565b565b600080546001019081905561241a6117c8565b612461576040805162461bcd60e51b8152602060048201526013602482015272115b9d1c9e481dd85cc81cdd589b5a5d1d1959606a1b604482015290519081900360640190fd5b612469613152565b156124ad576040805162461bcd60e51b815260206004820152600f60248201526e115b9d1c9e481d1a5b5959081bdd5d608a1b604482015290519081900360640190fd5b60606124c5602a54600b6139af90919063ffffffff16565b905073__$b8a205476708986967d6b31956861be83b$__63de8f50a182602b866040518463ffffffff1660e01b815260040180806020018060200180602001848103845287818151815260200191508051906020019080838360005b83811015612539578181015183820152602001612521565b50505050905090810190601f1680156125665780820380516001836020036101000a031916815260200191505b508481038352865460026000196101006001841615020190911604808252602090910190879080156125d95780601f106125ae576101008083540402835291602001916125d9565b820191906000526020600020905b8154815290600101906020018083116125bc57829003601f168201915b5050848103825285518152855160209182019187019080838360005b8381101561260d5781810151838201526020016125f5565b50505050905090810190601f16801561263a5780820380516001836020036101000a031916815260200191505b50965050505050505060206040518083038186803b15801561265b57600080fd5b505af415801561266f573d6000803e3d6000fd5b505050506040513d602081101561268557600080fd5b50516126cc576040805162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b604482015290519081900360640190fd5b6040517f8711cae111460cf9bde0d890f0dc09abcb8851e39bf020f406e53e86394cdbd790600090a1602e546025546001600160a01b039091169061271990619c4063ffffffff6136c016565b6028546040516024810182815233606483018190526060604484019081528951608485015289518a9492939260a40190602086019080838360005b8381101561276c578181015183820152602001612754565b50505050905090810190601f1680156127995780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180516001600160e01b031663ef7284e360e01b178152905182519297509550859450925090508083835b602083106127f75780518252601f1990920191602091820191016127d8565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038160008787f1925050503d806000811461285a576040519150601f19603f3d011682016040523d82523d6000602084013e61285f565b606091505b5050602d5415905061287b578251602084012061287b90613a60565b6000806000612888613da4565b919450925090506128a1600b858563ffffffff613f2716565b601b546040805163ba7bffd360e01b815233600482015290516001600160a01b039092169163ba7bffd391602480820192602092909190829003018186803b1580156128ec57600080fd5b505afa158015612900573d6000803e3d6000fd5b505050506040513d602081101561291657600080fd5b50516040516001600160a01b03909116908390600081818185875af1925050503d8060008114612962576040519150601f19603f3d011682016040523d82523d6000602084013e612967565b606091505b505081159050612a4657602e5460408051600481526024810182526020810180516001600160e01b03166308f40b7760e11b178152915181516001600160a01b03909416936188b893869392918291908083835b602083106129da5780518252601f1990920191602091820191016129bb565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381858888f193505050503d8060008114612a3d576040519150601f19603f3d011682016040523d82523d6000602084013e612a42565b606091505b5050505b6000602981905550505050506000548114612aa8576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b5050565b60265481565b60225481565b60006115d4600b613ffe565b60006115d4601e54612ae36025546024546136c090919063ffffffff16565b9063ffffffff6133ab16565b60006115d4601f54601d546133ab90919063ffffffff16565b601c60009054906101000a90046001600160a01b03166001600160a01b031663fe173b976040518163ffffffff1660e01b815260040160206040518083038186803b158015612b5657600080fd5b505afa158015612b6a573d6000803e3d6000fd5b505050506040513d6020811015612b8057600080fd5b5051601e55565b612bf2336019805480602002602001604051908101604052809291908181526020018280548015612101576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116120e357505050505061366a90919063ffffffff16565b612c43576040805162461bcd60e51b815260206004820181905260248201527f43616c6c6572206973206e6f742061207365727669636520636f6e7472616374604482015290519081900360640190fd5b6000612c5c601e546025546133ab90919063ffffffff16565b602780546001600160a01b031916331790559050612c8983612c84348463ffffffff61371a16565b61375c565b601b546040805163ba7bffd360e01b81526001600160a01b0385811660048301529151600093929092169163ba7bffd391602480820192602092909190829003018186803b158015612cda57600080fd5b505afa158015612cee573d6000803e3d6000fd5b505050506040513d6020811015612d0457600080fd5b50516040516001600160a01b03909116908390600081818185875af1925050503d8060008114612d50576040519150601f19603f3d011682016040523d82523d6000602084013e612d55565b606091505b50509050806121fe5760405162461bcd60e51b81526004018080602001828103825260248152602001806141f26024913960400191505060405180910390fd5b60045490565b6040805163dc26270360e01b8152600b600482018181526024830193845284516044840152845160609473__$a1f1023f69498e6b24d5677941ca2dedb8$__9463dc2627039493889390929160640190602085019080838360005b83811015612e0e578181015183820152602001612df6565b50505050905090810190601f168015612e3b5780820380516001836020036101000a031916815260200191505b50935050505060006040518083038186803b158015612e5957600080fd5b505af4158015612e6d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015612e9657600080fd5b8101908080516040519392919084600160201b821115612eb557600080fd5b908301906020820185811115612eca57600080fd5b82518660208202830111600160201b82111715612ee657600080fd5b82525081516020918201928201910280838360005b83811015612f13578181015183820152602001612efb565b505050509050016040525050509050919050565b601e5481565b600b73__$a1f1023f69498e6b24d5677941ca2dedb8$__6320bc286690918484601b60009054906101000a90046001600160a01b03166001600160a01b031663ec5ffac26040518163ffffffff1660e01b815260040160206040518083038186803b158015612f9b57600080fd5b505afa158015612faf573d6000803e3d6000fd5b505050506040513d6020811015612fc557600080fd5b50516040516001600160e01b031960e087901b1681526004810185815260248201859052606482018390526080604483019081528451608484015284519192909160a490910190602086019080838360005b8381101561302f578181015183820152602001613017565b50505050905090810190601f16801561305c5780820380516001836020036101000a031916815260200191505b509550505050505060006040518083038186803b15801561307c57600080fd5b505af4158015613090573d6000803e3d6000fd5b50506040518492507f6124f28ae7240a98a8ad3410bcd1f3bb0a113fc9834d5bd16426f9e1bd698fde9150600090a25050565b60135490565b6060610f84600b8363ffffffff6139af16565b600e5490565b60008083600201836040518082805190602001908083835b602083106131195780518252601f1990920191602091820191016130fa565b51815160209384036101000a60001901801990921691161790529201948552506040519384900301909220549290921195945050505050565b60006029546000141580156115d457505060225460295401431190565b6131776117c8565b156131ba576040805162461bcd60e51b815260206004820152600e60248201526d426561636f6e206973206275737960901b604482015290519081900360640190fd5b835160208086019190912060408051631bf6b56760e11b8152600b600482015260248101929092525160009273__$a1f1023f69498e6b24d5677941ca2dedb8$__926337ed6ace9260448083019392829003018186803b15801561321d57600080fd5b505af4158015613231573d6000803e3d6000fd5b505050506040513d602081101561324757600080fd5b5051602887905543602955602c849055602d839055602a819055855190915061327790602b906020880190614138565b50602e80546001600160a01b0319166001600160a01b03861617905560606132a0600b836139af565b90507ff3a8bf09e4f9146a48f9b91226985ac8d83d971beb4fc9ffdc569790e85a97e48682604051808060200180602001838103835285818151815260200191508051906020019080838360005b838110156133065781810151838201526020016132ee565b50505050905090810190601f1680156133335780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561336657818101518382015260200161334e565b50505050905090810190601f1680156133935780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a150505050505050565b6000826133ba57506000610f84565b828202828482816133c757fe5b04146134045760405162461bcd60e51b81526004018080602001828103825260218152602001806141d16021913960400191505060405180910390fd5b9392505050565b601e543a1580159061341e5750601e543a105b1561342657503a5b60245460009061343c908363ffffffff6133ab16565b601b546040805163ba7bffd360e01b815233600482015290519293506000926001600160a01b039092169163ba7bffd391602480820192602092909190829003018186803b15801561348d57600080fd5b505afa1580156134a1573d6000803e3d6000fd5b505050506040513d60208110156134b757600080fd5b50516026549091508210156135a4576026546000906134dc908463ffffffff61371a16565b600060268190556040519192506001600160a01b03841691859181818185875af1925050503d806000811461352d576040519150601f19603f3d011682016040523d82523d6000602084013e613532565b606091505b505050602760009054906101000a90046001600160a01b03166001600160a01b0316634611b648826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561358557600080fd5b505af1158015613599573d6000803e3d6000fd5b5050505050506115b6565b602680546000918290556040519093506001600160a01b0383169184919081818185875af1925050503d8060008114611e59576040519150601f19603f3d011682016040523d82523d6000602084013e611e59565b600082600301828154811061360a57fe5b600091825260209091206003909102016002015460ff169392505050565b600061340483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614025565b6000805b83518110156136b65783818151811061368357fe5b60200260200101516001600160a01b0316836001600160a01b031614156136ae576001915050610f84565b60010161366e565b5060009392505050565b600082820183811015613404576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600061340483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506140c7565b602454601e546137719163ffffffff6133ab16565b8110156137bc576040805162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e7420444b472066656560601b604482015290519081900360640190fd5b6137c4611152565b613815576040805162461bcd60e51b815260206004820152601b60248201527f47726f75702073656c656374696f6e20696e2070726f67726573730000000000604482015290519081900360640190fd5b602654156138875760268054600091829055602754604080516308c236c960e31b8152905192936001600160a01b0390921692634611b6489285926004808201939182900301818588803b15801561386c57600080fd5b505af1158015613880573d6000803e3d6000fd5b5050505050505b601b60009054906101000a90046001600160a01b03166001600160a01b031663ec5ffac26040518163ffffffff1660e01b815260040160206040518083038186803b1580156138d557600080fd5b505afa1580156138e9573d6000803e3d6000fd5b505050506040513d60208110156138ff57600080fd5b5051600755604080516352f9b3b960e01b81526001600482015260248101849052905173__$3ec6131c800895cf05c0b1b247f3586b1c$__916352f9b3b9916044808301926000929190829003018186803b15801561395d57600080fd5b505af4158015613971573d6000803e3d6000fd5b50506040805185815290517f0769b89b6dbd96af3cdebccc7b68ce1e4ae748abc3e6b19a73b8b58460c57a949350908190036020019150a160265550565b60608260030182815481106139c057fe5b6000918252602091829020600390910201805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015613a535780601f10613a2857610100808354040283529160200191613a53565b820191906000526020600020905b815481529060010190602001808311613a3657829003601f168201915b5050505050905092915050565b6000613a79601e54602d5461362890919063ffffffff16565b9050621e84808111613a8b5780613a90565b621e84805b602e54602854604080516024808201939093528151808203909301835260440181526020820180516001600160e01b03166303f6a73960e21b178152905182519495506060946001600160a01b0390941693619c40939282918083835b60208310613b0c5780518252601f199092019160209182019101613aed565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038160008787f1925050503d8060008114613b6f576040519150601f19603f3d011682016040523d82523d6000602084013e613b74565b606091505b509150600090505a602e54602854604080516024810192909252604480830189905281518084039091018152606490920181526020820180516001600160e01b031663fc3fcec760e01b178152905182519495506001600160a01b039093169387939182918083835b60208310613bfc5780518252601f199092019160209182019101613bdd565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038160008787f1925050503d8060008114613c5f576040519150601f19603f3d011682016040523d82523d6000602084013e613c64565b606091505b50505060005a90506000613c7e838363ffffffff61371a16565b905073__$9c30cdd43d7bda52fa3aa9d587c68cc379$__6346a50089601b60009054906101000a90046001600160a01b0316601e548885602d548a6040518763ffffffff1660e01b815260040180876001600160a01b03166001600160a01b0316815260200186815260200185815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015613d35578181015183820152602001613d1d565b50505050905090810190601f168015613d625780820380516001836020036101000a031916815260200191505b5097505050505050505060006040518083038186803b158015613d8457600080fd5b505af4158015613d98573d6000803e3d6000fd5b50505050505050505050565b600080600080662386f26fc100009050600073__$659ec6f14a1882be08ba7828bf5285e05b$__638dfa43636029546022546040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613e1157600080fd5b505af4158015613e25573d6000803e3d6000fd5b505050506040513d6020811015613e3b57600080fd5b5051601d54909150613e65908390613e59908463ffffffff6133ab16565b9063ffffffff61362816565b94506000613e8b613e7c848463ffffffff61371a16565b601d549063ffffffff6133ab16565b90506000613eb984613e596005613ead601f54876133ab90919063ffffffff16565b9063ffffffff61412116565b90506000613ed7613ec8612aef565b602c549063ffffffff61371a16565b9050613ee9818363ffffffff6136c016565b9650613f1b82613f0f613f07601f548c6133ab90919063ffffffff16565b613f0f612aef565b9063ffffffff61371a16565b95505050505050909192565b613f948184600601846040518082805190602001908083835b60208310613f5f5780518252601f199092019160209182019101613f40565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054929150506136c0565b83600601836040518082805190602001908083835b60208310613fc85780518252601f199092019160209182019101613fa9565b51815160209384036101000a60001901801990921691161790529201948552506040519384900301909220929092555050505050565b600481015460088201546003830154600092610f84929091613f0f9163ffffffff61371a16565b600081836140b15760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561407657818101518382015260200161405e565b50505050905090810190601f1680156140a35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816140bd57fe5b0495945050505050565b600081848411156141195760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561407657818101518382015260200161405e565b505050900390565b60006134046064613e59858563ffffffff6133ab16565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061417957805160ff19168380011785556141a6565b828001600101855582156141a6579182015b828111156141a657825182559160200191906001019061418b565b506141b29291506141b6565b5090565b610f6e91905b808211156141b257600081556001016141bc56fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7747726f75702073656c656374696f6e207265696d62757273656d656e74206661696c6564a265627a7a723158207a629fb1f01059c4affbe2beac32ada102cc0c255c006aa13f47d4a6ee0bf30c64736f6c63430005110032536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77",
"deployedBytecode": "0x6080604052600436106102665760003560e01c80637d7d7dd911610144578063c300d058116100b6578063d12f5e691161007a578063d12f5e6914610c78578063e1f4d63214610d29578063e581ff7414610d3e578063eb9488d314610df6578063ef7c8f9c14610e0b578063fdd18b1314610e3557610266565b8063c300d05814610bf8578063c443894614610c0d578063c45751cd14610c22578063c96e71fb14610c37578063c98622fb14610c6357610266565b80639dabee44116101085780639dabee4414610a4f578063a7f0b3de14610b00578063ac374f4b14610b08578063b1c77c8f14610bb9578063b99f0c4314610bce578063bf95249614610be357610266565b80637d7d7dd914610926578063885c02041461093b5780638a3a3da8146109655780638e9e56a51461098f5780639b3d270a146109a457610266565b80635c1c0710116101dd5780636dcc64f8116101a15780636dcc64f81461065b5780636e5636e4146106705780637031b7ff1461068557806373f1daab1461069a5780637760c6c7146108de57806379f9fb7e1461091157610266565b80635c1c07101461054a5780635ec60d611461057d578063618c2656146105a75780636262d54e1461063157806363b635ea1461064657610266565b806324f173131161022f57806324f17313146103e85780632d6f8f31146103fd57806336c85717146104ae578063376f7a11146104c35780633926c28e146104fc578063517471a91461053557610266565b80623bf87e1461026b5780630b19991f146102925780631c524ac2146102f75780631ed74070146103bc57806321a8f86c146103d3575b600080fd5b34801561027757600080fd5b50610280610e4a565b60408051918252519081900360200190f35b34801561029e57600080fd5b506102a7610e50565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102e35781810151838201526020016102cb565b505050509050019250505060405180910390f35b34801561030357600080fd5b506103a86004803603602081101561031a57600080fd5b810190602081018135600160201b81111561033457600080fd5b82018360208201111561034657600080fd5b803590602001918460018302840111600160201b8311171561036757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610f71945050505050565b604080519115158252519081900360200190f35b3480156103c857600080fd5b506103d1610f8a565b005b3480156103df57600080fd5b506103a8611152565b3480156103f457600080fd5b50610280611181565b34801561040957600080fd5b506103a86004803603602081101561042057600080fd5b810190602081018135600160201b81111561043a57600080fd5b82018360208201111561044c57600080fd5b803590602001918460018302840111600160201b8311171561046d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611187945050505050565b3480156104ba57600080fd5b50610280611276565b3480156104cf57600080fd5b506103a8600480360360408110156104e657600080fd5b506001600160a01b03813516906020013561127c565b34801561050857600080fd5b506103d16004803603604081101561051f57600080fd5b506001600160a01b03813516906020013561131b565b34801561054157600080fd5b506102806115bb565b34801561055657600080fd5b506103a86004803603602081101561056d57600080fd5b50356001600160a01b03166115d9565b34801561058957600080fd5b50610280600480360360208110156105a057600080fd5b5035611643565b3480156105b357600080fd5b506105bc61169f565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105f65781810151838201526020016105de565b50505050905090810190601f1680156106235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561063d57600080fd5b506102a761172d565b34801561065257600080fd5b506102806117bc565b34801561066757600080fd5b506102806117c2565b34801561067c57600080fd5b506103a86117c8565b34801561069157600080fd5b506102806117d0565b3480156106a657600080fd5b506103d1600480360360a08110156106bd57600080fd5b81359190810190604081016020820135600160201b8111156106de57600080fd5b8201836020820111156106f057600080fd5b803590602001918460018302840111600160201b8311171561071157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561076357600080fd5b82018360208201111561077557600080fd5b803590602001918460018302840111600160201b8311171561079657600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156107e857600080fd5b8201836020820111156107fa57600080fd5b803590602001918460018302840111600160201b8311171561081b57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561086d57600080fd5b82018360208201111561087f57600080fd5b803590602001918460208302840111600160201b831117156108a057600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506117d6945050505050565b3480156108ea57600080fd5b506103d16004803603602081101561090157600080fd5b50356001600160a01b0316611e61565b34801561091d57600080fd5b50610280611f75565b34801561093257600080fd5b50610280611f7b565b34801561094757600080fd5b506103a86004803603602081101561095e57600080fd5b5035611f81565b34801561097157600080fd5b506103d16004803603602081101561098857600080fd5b5035611f94565b34801561099b57600080fd5b506102806120a1565b6103d1600480360360408110156109ba57600080fd5b81359190810190604081016020820135600160201b8111156109db57600080fd5b8201836020820111156109ed57600080fd5b803590602001918460018302840111600160201b83111715610a0e57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506120a7945050505050565b348015610a5b57600080fd5b5061028060048036036020811015610a7257600080fd5b810190602081018135600160201b811115610a8c57600080fd5b820183602082011115610a9e57600080fd5b803590602001918460018302840111600160201b83111715610abf57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550612204945050505050565b6103d161226f565b348015610b1457600080fd5b506103d160048036036020811015610b2b57600080fd5b810190602081018135600160201b811115610b4557600080fd5b820183602082011115610b5757600080fd5b803590602001918460018302840111600160201b83111715610b7857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550612407945050505050565b348015610bc557600080fd5b50610280612aac565b348015610bda57600080fd5b50610280612ab2565b348015610bef57600080fd5b50610280612ab8565b348015610c0457600080fd5b50610280612ac4565b348015610c1957600080fd5b50610280612aef565b348015610c2e57600080fd5b506103d1612b08565b6103d160048036036040811015610c4d57600080fd5b50803590602001356001600160a01b0316612b87565b348015610c6f57600080fd5b50610280612d95565b348015610c8457600080fd5b506102a760048036036020811015610c9b57600080fd5b810190602081018135600160201b811115610cb557600080fd5b820183602082011115610cc757600080fd5b803590602001918460018302840111600160201b83111715610ce857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550612d9b945050505050565b348015610d3557600080fd5b50610280612f27565b348015610d4a57600080fd5b506103d160048036036040811015610d6157600080fd5b81359190810190604081016020820135600160201b811115610d8257600080fd5b820183602082011115610d9457600080fd5b803590602001918460018302840111600160201b83111715610db557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550612f2d945050505050565b348015610e0257600080fd5b506102806130c3565b348015610e1757600080fd5b506105bc60048036036020811015610e2e57600080fd5b50356130c9565b348015610e4157600080fd5b506102806130dc565b60245481565b6060600173__$3ec6131c800895cf05c0b1b247f3586b1c$__63a3c6b2b390916040518263ffffffff1660e01b81526004018082815260200191505060006040518083038186803b158015610ea457600080fd5b505af4158015610eb8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015610ee157600080fd5b8101908080516040519392919084600160201b821115610f0057600080fd5b908301906020820185811115610f1557600080fd5b82518660208202830111600160201b82111715610f3157600080fd5b82525081516020918201928201910280838360005b83811015610f5e578181015183820152602001610f46565b5050505090500160405250505090505b90565b6000610f84600b8363ffffffff6130e216565b92915050565b610f92613152565b610fdc576040805162461bcd60e51b8152602060048201526016602482015275115b9d1c9e48191a59081b9bdd081d1a5b59481bdd5d60521b604482015290519081900360640190fd5b600b73__$a1f1023f69498e6b24d5677941ca2dedb8$__63a24940029091602a54601f546040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060006040518083038186803b15801561104257600080fd5b505af4158015611056573d6000803e3d6000fd5b505050506000602981905550600061106c612ab8565b111561112457602854602b8054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526111249493909290918301828280156111035780601f106110d857610100808354040283529160200191611103565b820191906000526020600020905b8154815290600101906020018083116110e657829003601f168201915b5050602e54602c54602d546001600160a01b0390921694509250905061316f565b602a546040517f6675fe3ae219641aa4ec9e58867bd7af88bf03caf819d8858f3ddf4cc635eed290600090a2565b60065460009060ff1661116757506001610f6e565b50602154601f546015546004546005540101910201431190565b60255481565b6040805163664d9be160e11b8152600b600482018181526024830193845284516044840152845160009473__$a1f1023f69498e6b24d5677941ca2dedb8$__9463cc9b37c2949388939092916064019060208501908083838c5b838110156111f95781810151838201526020016111e1565b50505050905090810190601f1680156112265780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b15801561124457600080fd5b505af4158015611258573d6000803e3d6000fd5b505050506040513d602081101561126e57600080fd5b505192915050565b60215481565b6040805163251be5d160e11b8152600b60048201526001600160a01b038416602482015260448101839052905160009173__$a1f1023f69498e6b24d5677941ca2dedb8$__91634a37cba291606480820192602092909190829003018186803b1580156112e857600080fd5b505af41580156112fc573d6000803e3d6000fd5b505050506040513d602081101561131257600080fd5b50519392505050565b60008054600101808255604080516319818cd360e01b8152600b60048201526001600160a01b038616602482015260448101859052905191929173__$a1f1023f69498e6b24d5677941ca2dedb8$__916319818cd3916064808301926020929190829003018186803b15801561139057600080fd5b505af41580156113a4573d6000803e3d6000fd5b505050506040513d60208110156113ba57600080fd5b5051601b546040805163ba7bffd360e01b81526001600160a01b0388811660048301529151939450600093919092169163ba7bffd3916024808301926020929190829003018186803b15801561140f57600080fd5b505afa158015611423573d6000803e3d6000fd5b505050506040513d602081101561143957600080fd5b50516040516001600160a01b03909116908390600081818185875af1925050503d8060008114611485576040519150601f19603f3d011682016040523d82523d6000602084013e61148a565b606091505b50509050801561155e57601b546040805163ba7bffd360e01b81526001600160a01b0388811660048301529151919092169163ba7bffd3916024808301926020929190829003018186803b1580156114e157600080fd5b505afa1580156114f5573d6000803e3d6000fd5b505050506040513d602081101561150b57600080fd5b5051604080516001600160a01b03888116825260208201869052818301889052915191909216917fd2d1d8bb9db82c3480418ddcddf25a021102ad139edec2a62b274595d408a88d919081900360600190a25b505060005481146115b6576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b505050565b60006115d4601e546023546133ab90919063ffffffff16565b905090565b601b5460408051624298fb60e61b81526001600160a01b038481166004830152306024830152915160009392909216916310a63ec091604480820192602092909190829003018186803b15801561162f57600080fd5b505afa158015611258573d6000803e3d6000fd5b6000600b73__$a1f1023f69498e6b24d5677941ca2dedb8$__634732bd3b9091846040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561124457600080fd5b602b805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156117255780601f106116fa57610100808354040283529160200191611725565b820191906000526020600020905b81548152906001019060200180831161170857829003601f168201915b505050505081565b606060016000018054806020026020016040519081016040528092919081815260200182805480156117b257602002820191906000526020600020906000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161176d5790505b5050505050905090565b601f5481565b60205481565b602954151590565b602a5481565b600080546001019081905560606117eb610e50565b9050601573__$9918f448901ac83b6f4e4089aa6e6bafad$__63da0a16899091898989898988600160030154600160040154016040518963ffffffff1660e01b815260040180898152602001888152602001806020018060200180602001806020018060200187815260200186810386528c818151815260200191508051906020019080838360005b8381101561188c578181015183820152602001611874565b50505050905090810190601f1680156118b95780820380516001836020036101000a031916815260200191505b5086810385528b5181528b516020918201918d019080838360005b838110156118ec5781810151838201526020016118d4565b50505050905090810190601f1680156119195780820380516001836020036101000a031916815260200191505b5086810384528a5181528a516020918201918c019080838360005b8381101561194c578181015183820152602001611934565b50505050905090810190601f1680156119795780820380516001836020036101000a031916815260200191505b508681038352895181528951602091820191808c01910280838360005b838110156119ae578181015183820152602001611996565b50505050905001868103825288818151815260200191508051906020019060200280838360005b838110156119ed5781810151838201526020016119d5565b505050509050019d505050505050505050505050505060006040518083038186803b158015611a1b57600080fd5b505af4158015611a2f573d6000803e3d6000fd5b50505050600b73__$a1f1023f69498e6b24d5677941ca2dedb8$__63e130bd6790918884896040518563ffffffff1660e01b815260040180858152602001806020018060200180602001848103845287818151815260200191508051906020019080838360005b83811015611aae578181015183820152602001611a96565b50505050905090810190601f168015611adb5780820380516001836020036101000a031916815260200191505b508481038352865181528651602091820191808901910280838360005b83811015611b10578181015183820152602001611af8565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015611b4c578181015183820152602001611b34565b50505050905090810190601f168015611b795780820380516001836020036101000a031916815260200191505b5097505050505050505060006040518083038186803b158015611b9b57600080fd5b505af4158015611baf573d6000803e3d6000fd5b50506040805163250d2afd60e11b8152600b60048201818152602483019384528b5160448401528b5173__$a1f1023f69498e6b24d5677941ca2dedb8$__9650634a1a55fa955091938c939192909160640190602085019080838360005b83811015611c25578181015183820152602001611c0d565b50505050905090810190601f168015611c525780820380516001836020036101000a031916815260200191505b50935050505060006040518083038186803b158015611c7057600080fd5b505af4158015611c84573d6000803e3d6000fd5b50505050611c9061340b565b7fd1d71346ed0f1479c55b14e7c48b084207a7e1bcd9abe4f22d425ec23a518a1f878787604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015611cfb578181015183820152602001611ce3565b50505050905090810190601f168015611d285780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015611d5b578181015183820152602001611d43565b50505050905090810190601f168015611d885780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a16040805163292c56eb60e21b815260016004820152905173__$3ec6131c800895cf05c0b1b247f3586b1c$__9163a4b15bac916024808301926000929190829003018186803b158015611dea57600080fd5b505af4158015611dfe573d6000803e3d6000fd5b50505050506000548114611e59576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b505050505050565b601a5460408051636557eccf60e01b8152306004820152905133926001600160a01b031691636557eccf916024808301926020929190829003018186803b158015611eab57600080fd5b505afa158015611ebf573d6000803e3d6000fd5b505050506040513d6020811015611ed557600080fd5b50516001600160a01b031614611f23576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b604482015290519081900360640190fd5b601980546001810182556000919091527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c96950180546001600160a01b0319166001600160a01b0392909216919091179055565b60235481565b601d5481565b6000610f84600b8363ffffffff6135f916565b600754601b546040805163afff33ef60e01b815233600482015230602482015290516000936120299390926001600160a01b039091169163afff33ef91604480820192602092909190829003018186803b158015611ff157600080fd5b505afa158015612005573d6000803e3d6000fd5b505050506040513d602081101561201b57600080fd5b50519063ffffffff61362816565b60408051633edbb52760e21b8152600160048201526024810185905260448101839052905191925073__$3ec6131c800895cf05c0b1b247f3586b1c$__9163fb6ed49c91606480820192600092909190829003018186803b15801561208d57600080fd5b505af4158015611e59573d6000803e3d6000fd5b60295481565b61211433601980548060200260200160405190810160405280929190818152602001828054801561210157602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116120e3575b505050505061366a90919063ffffffff16565b612165576040805162461bcd60e51b815260206004820181905260248201527f43616c6c6572206973206e6f742061207365727669636520636f6e7472616374604482015290519081900360640190fd5b60006121866121726115bb565b61217a612aef565b9063ffffffff6136c016565b9050803410156121dd576040805162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e74206e657720656e74727920666565000000000000604482015290519081900360640190fd5b60006121ef348363ffffffff61371a16565b90506121fe848433858561316f565b50505050565b6000600b600601826040518082805190602001908083835b6020831061223b5780518252601f19909201916020918201910161221c565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054949350505050565b604080516001620f258b60e01b03198152600b6004820152905173__$a1f1023f69498e6b24d5677941ca2dedb8$__9163fff0da75916024808301926000929190829003018186803b1580156122c457600080fd5b505af41580156122d8573d6000803e3d6000fd5b505050506122e4612ab8565b15612325576040805162461bcd60e51b815260206004820152600c60248201526b11dc9bdd5c1cc8195e1a5cdd60a21b604482015290519081900360640190fd5b6040805163292c56eb60e21b815260016004820152905173__$3ec6131c800895cf05c0b1b247f3586b1c$__9163a4b15bac916024808301926000929190829003018186803b15801561237757600080fd5b505af415801561238b573d6000803e3d6000fd5b5050601980549092506123a69150600163ffffffff61371a16565b815481106123b057fe5b600091825260209091200154602780546001600160a01b0319166001600160a01b039092169190911790556124057f4574c8c75d6e88acd28f7e467dac97b5c60c3838d9dad993900bdf402152228e3461375c565b565b600080546001019081905561241a6117c8565b612461576040805162461bcd60e51b8152602060048201526013602482015272115b9d1c9e481dd85cc81cdd589b5a5d1d1959606a1b604482015290519081900360640190fd5b612469613152565b156124ad576040805162461bcd60e51b815260206004820152600f60248201526e115b9d1c9e481d1a5b5959081bdd5d608a1b604482015290519081900360640190fd5b60606124c5602a54600b6139af90919063ffffffff16565b905073__$b8a205476708986967d6b31956861be83b$__63de8f50a182602b866040518463ffffffff1660e01b815260040180806020018060200180602001848103845287818151815260200191508051906020019080838360005b83811015612539578181015183820152602001612521565b50505050905090810190601f1680156125665780820380516001836020036101000a031916815260200191505b508481038352865460026000196101006001841615020190911604808252602090910190879080156125d95780601f106125ae576101008083540402835291602001916125d9565b820191906000526020600020905b8154815290600101906020018083116125bc57829003601f168201915b5050848103825285518152855160209182019187019080838360005b8381101561260d5781810151838201526020016125f5565b50505050905090810190601f16801561263a5780820380516001836020036101000a031916815260200191505b50965050505050505060206040518083038186803b15801561265b57600080fd5b505af415801561266f573d6000803e3d6000fd5b505050506040513d602081101561268557600080fd5b50516126cc576040805162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b604482015290519081900360640190fd5b6040517f8711cae111460cf9bde0d890f0dc09abcb8851e39bf020f406e53e86394cdbd790600090a1602e546025546001600160a01b039091169061271990619c4063ffffffff6136c016565b6028546040516024810182815233606483018190526060604484019081528951608485015289518a9492939260a40190602086019080838360005b8381101561276c578181015183820152602001612754565b50505050905090810190601f1680156127995780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180516001600160e01b031663ef7284e360e01b178152905182519297509550859450925090508083835b602083106127f75780518252601f1990920191602091820191016127d8565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038160008787f1925050503d806000811461285a576040519150601f19603f3d011682016040523d82523d6000602084013e61285f565b606091505b5050602d5415905061287b578251602084012061287b90613a60565b6000806000612888613da4565b919450925090506128a1600b858563ffffffff613f2716565b601b546040805163ba7bffd360e01b815233600482015290516001600160a01b039092169163ba7bffd391602480820192602092909190829003018186803b1580156128ec57600080fd5b505afa158015612900573d6000803e3d6000fd5b505050506040513d602081101561291657600080fd5b50516040516001600160a01b03909116908390600081818185875af1925050503d8060008114612962576040519150601f19603f3d011682016040523d82523d6000602084013e612967565b606091505b505081159050612a4657602e5460408051600481526024810182526020810180516001600160e01b03166308f40b7760e11b178152915181516001600160a01b03909416936188b893869392918291908083835b602083106129da5780518252601f1990920191602091820191016129bb565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381858888f193505050503d8060008114612a3d576040519150601f19603f3d011682016040523d82523d6000602084013e612a42565b606091505b5050505b6000602981905550505050506000548114612aa8576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b5050565b60265481565b60225481565b60006115d4600b613ffe565b60006115d4601e54612ae36025546024546136c090919063ffffffff16565b9063ffffffff6133ab16565b60006115d4601f54601d546133ab90919063ffffffff16565b601c60009054906101000a90046001600160a01b03166001600160a01b031663fe173b976040518163ffffffff1660e01b815260040160206040518083038186803b158015612b5657600080fd5b505afa158015612b6a573d6000803e3d6000fd5b505050506040513d6020811015612b8057600080fd5b5051601e55565b612bf2336019805480602002602001604051908101604052809291908181526020018280548015612101576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116120e357505050505061366a90919063ffffffff16565b612c43576040805162461bcd60e51b815260206004820181905260248201527f43616c6c6572206973206e6f742061207365727669636520636f6e7472616374604482015290519081900360640190fd5b6000612c5c601e546025546133ab90919063ffffffff16565b602780546001600160a01b031916331790559050612c8983612c84348463ffffffff61371a16565b61375c565b601b546040805163ba7bffd360e01b81526001600160a01b0385811660048301529151600093929092169163ba7bffd391602480820192602092909190829003018186803b158015612cda57600080fd5b505afa158015612cee573d6000803e3d6000fd5b505050506040513d6020811015612d0457600080fd5b50516040516001600160a01b03909116908390600081818185875af1925050503d8060008114612d50576040519150601f19603f3d011682016040523d82523d6000602084013e612d55565b606091505b50509050806121fe5760405162461bcd60e51b81526004018080602001828103825260248152602001806141f26024913960400191505060405180910390fd5b60045490565b6040805163dc26270360e01b8152600b600482018181526024830193845284516044840152845160609473__$a1f1023f69498e6b24d5677941ca2dedb8$__9463dc2627039493889390929160640190602085019080838360005b83811015612e0e578181015183820152602001612df6565b50505050905090810190601f168015612e3b5780820380516001836020036101000a031916815260200191505b50935050505060006040518083038186803b158015612e5957600080fd5b505af4158015612e6d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015612e9657600080fd5b8101908080516040519392919084600160201b821115612eb557600080fd5b908301906020820185811115612eca57600080fd5b82518660208202830111600160201b82111715612ee657600080fd5b82525081516020918201928201910280838360005b83811015612f13578181015183820152602001612efb565b505050509050016040525050509050919050565b601e5481565b600b73__$a1f1023f69498e6b24d5677941ca2dedb8$__6320bc286690918484601b60009054906101000a90046001600160a01b03166001600160a01b031663ec5ffac26040518163ffffffff1660e01b815260040160206040518083038186803b158015612f9b57600080fd5b505afa158015612faf573d6000803e3d6000fd5b505050506040513d6020811015612fc557600080fd5b50516040516001600160e01b031960e087901b1681526004810185815260248201859052606482018390526080604483019081528451608484015284519192909160a490910190602086019080838360005b8381101561302f578181015183820152602001613017565b50505050905090810190601f16801561305c5780820380516001836020036101000a031916815260200191505b509550505050505060006040518083038186803b15801561307c57600080fd5b505af4158015613090573d6000803e3d6000fd5b50506040518492507f6124f28ae7240a98a8ad3410bcd1f3bb0a113fc9834d5bd16426f9e1bd698fde9150600090a25050565b60135490565b6060610f84600b8363ffffffff6139af16565b600e5490565b60008083600201836040518082805190602001908083835b602083106131195780518252601f1990920191602091820191016130fa565b51815160209384036101000a60001901801990921691161790529201948552506040519384900301909220549290921195945050505050565b60006029546000141580156115d457505060225460295401431190565b6131776117c8565b156131ba576040805162461bcd60e51b815260206004820152600e60248201526d426561636f6e206973206275737960901b604482015290519081900360640190fd5b835160208086019190912060408051631bf6b56760e11b8152600b600482015260248101929092525160009273__$a1f1023f69498e6b24d5677941ca2dedb8$__926337ed6ace9260448083019392829003018186803b15801561321d57600080fd5b505af4158015613231573d6000803e3d6000fd5b505050506040513d602081101561324757600080fd5b5051602887905543602955602c849055602d839055602a819055855190915061327790602b906020880190614138565b50602e80546001600160a01b0319166001600160a01b03861617905560606132a0600b836139af565b90507ff3a8bf09e4f9146a48f9b91226985ac8d83d971beb4fc9ffdc569790e85a97e48682604051808060200180602001838103835285818151815260200191508051906020019080838360005b838110156133065781810151838201526020016132ee565b50505050905090810190601f1680156133335780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561336657818101518382015260200161334e565b50505050905090810190601f1680156133935780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a150505050505050565b6000826133ba57506000610f84565b828202828482816133c757fe5b04146134045760405162461bcd60e51b81526004018080602001828103825260218152602001806141d16021913960400191505060405180910390fd5b9392505050565b601e543a1580159061341e5750601e543a105b1561342657503a5b60245460009061343c908363ffffffff6133ab16565b601b546040805163ba7bffd360e01b815233600482015290519293506000926001600160a01b039092169163ba7bffd391602480820192602092909190829003018186803b15801561348d57600080fd5b505afa1580156134a1573d6000803e3d6000fd5b505050506040513d60208110156134b757600080fd5b50516026549091508210156135a4576026546000906134dc908463ffffffff61371a16565b600060268190556040519192506001600160a01b03841691859181818185875af1925050503d806000811461352d576040519150601f19603f3d011682016040523d82523d6000602084013e613532565b606091505b505050602760009054906101000a90046001600160a01b03166001600160a01b0316634611b648826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561358557600080fd5b505af1158015613599573d6000803e3d6000fd5b5050505050506115b6565b602680546000918290556040519093506001600160a01b0383169184919081818185875af1925050503d8060008114611e59576040519150601f19603f3d011682016040523d82523d6000602084013e611e59565b600082600301828154811061360a57fe5b600091825260209091206003909102016002015460ff169392505050565b600061340483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614025565b6000805b83518110156136b65783818151811061368357fe5b60200260200101516001600160a01b0316836001600160a01b031614156136ae576001915050610f84565b60010161366e565b5060009392505050565b600082820183811015613404576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600061340483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506140c7565b602454601e546137719163ffffffff6133ab16565b8110156137bc576040805162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e7420444b472066656560601b604482015290519081900360640190fd5b6137c4611152565b613815576040805162461bcd60e51b815260206004820152601b60248201527f47726f75702073656c656374696f6e20696e2070726f67726573730000000000604482015290519081900360640190fd5b602654156138875760268054600091829055602754604080516308c236c960e31b8152905192936001600160a01b0390921692634611b6489285926004808201939182900301818588803b15801561386c57600080fd5b505af1158015613880573d6000803e3d6000fd5b5050505050505b601b60009054906101000a90046001600160a01b03166001600160a01b031663ec5ffac26040518163ffffffff1660e01b815260040160206040518083038186803b1580156138d557600080fd5b505afa1580156138e9573d6000803e3d6000fd5b505050506040513d60208110156138ff57600080fd5b5051600755604080516352f9b3b960e01b81526001600482015260248101849052905173__$3ec6131c800895cf05c0b1b247f3586b1c$__916352f9b3b9916044808301926000929190829003018186803b15801561395d57600080fd5b505af4158015613971573d6000803e3d6000fd5b50506040805185815290517f0769b89b6dbd96af3cdebccc7b68ce1e4ae748abc3e6b19a73b8b58460c57a949350908190036020019150a160265550565b60608260030182815481106139c057fe5b6000918252602091829020600390910201805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015613a535780601f10613a2857610100808354040283529160200191613a53565b820191906000526020600020905b815481529060010190602001808311613a3657829003601f168201915b5050505050905092915050565b6000613a79601e54602d5461362890919063ffffffff16565b9050621e84808111613a8b5780613a90565b621e84805b602e54602854604080516024808201939093528151808203909301835260440181526020820180516001600160e01b03166303f6a73960e21b178152905182519495506060946001600160a01b0390941693619c40939282918083835b60208310613b0c5780518252601f199092019160209182019101613aed565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038160008787f1925050503d8060008114613b6f576040519150601f19603f3d011682016040523d82523d6000602084013e613b74565b606091505b509150600090505a602e54602854604080516024810192909252604480830189905281518084039091018152606490920181526020820180516001600160e01b031663fc3fcec760e01b178152905182519495506001600160a01b039093169387939182918083835b60208310613bfc5780518252601f199092019160209182019101613bdd565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038160008787f1925050503d8060008114613c5f576040519150601f19603f3d011682016040523d82523d6000602084013e613c64565b606091505b50505060005a90506000613c7e838363ffffffff61371a16565b905073__$9c30cdd43d7bda52fa3aa9d587c68cc379$__6346a50089601b60009054906101000a90046001600160a01b0316601e548885602d548a6040518763ffffffff1660e01b815260040180876001600160a01b03166001600160a01b0316815260200186815260200185815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015613d35578181015183820152602001613d1d565b50505050905090810190601f168015613d625780820380516001836020036101000a031916815260200191505b5097505050505050505060006040518083038186803b158015613d8457600080fd5b505af4158015613d98573d6000803e3d6000fd5b50505050505050505050565b600080600080662386f26fc100009050600073__$659ec6f14a1882be08ba7828bf5285e05b$__638dfa43636029546022546040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613e1157600080fd5b505af4158015613e25573d6000803e3d6000fd5b505050506040513d6020811015613e3b57600080fd5b5051601d54909150613e65908390613e59908463ffffffff6133ab16565b9063ffffffff61362816565b94506000613e8b613e7c848463ffffffff61371a16565b601d549063ffffffff6133ab16565b90506000613eb984613e596005613ead601f54876133ab90919063ffffffff16565b9063ffffffff61412116565b90506000613ed7613ec8612aef565b602c549063ffffffff61371a16565b9050613ee9818363ffffffff6136c016565b9650613f1b82613f0f613f07601f548c6133ab90919063ffffffff16565b613f0f612aef565b9063ffffffff61371a16565b95505050505050909192565b613f948184600601846040518082805190602001908083835b60208310613f5f5780518252601f199092019160209182019101613f40565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054929150506136c0565b83600601836040518082805190602001908083835b60208310613fc85780518252601f199092019160209182019101613fa9565b51815160209384036101000a60001901801990921691161790529201948552506040519384900301909220929092555050505050565b600481015460088201546003830154600092610f84929091613f0f9163ffffffff61371a16565b600081836140b15760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561407657818101518382015260200161405e565b50505050905090810190601f1680156140a35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816140bd57fe5b0495945050505050565b600081848411156141195760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561407657818101518382015260200161405e565b505050900390565b60006134046064613e59858563ffffffff6133ab16565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061417957805160ff19168380011785556141a6565b828001600101855582156141a6579182015b828111156141a657825182559160200191906001019061418b565b506141b29291506141b6565b5090565b610f6e91905b808211156141b257600081556001016141bc56fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7747726f75702073656c656374696f6e207265696d62757273656d656e74206661696c6564a265627a7a723158207a629fb1f01059c4affbe2beac32ada102cc0c255c006aa13f47d4a6ee0bf30c64736f6c63430005110032",
"networks": {
"1": {
"events": {
"0xd1d71346ed0f1479c55b14e7c48b084207a7e1bcd9abe4f22d425ec23a518a1f": {
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "memberIndex",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bytes",
"name": "groupPubKey",
"type": "bytes"
},
{
"indexed": false,
"internalType": "bytes",
"name": "misbehaved",
"type": "bytes"
}
],
"name": "DkgResultSubmittedEvent",
"type": "event"
},
"0xd2d1d8bb9db82c3480418ddcddf25a021102ad139edec2a62b274595d408a88d": {
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "beneficiary",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "groupIndex",
"type": "uint256"
}
],
"name": "GroupMemberRewardsWithdrawn",
"type": "event"
},
"0x0769b89b6dbd96af3cdebccc7b68ce1e4ae748abc3e6b19a73b8b58460c57a94": {
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "newEntry",
"type": "uint256"
}
],
"name": "GroupSelectionStarted",
"type": "event"
},
"0x3a32cfbcd60aee14d75b837115f97fc141e9f9fa0d1fcd310b6306abbf329c15": {
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes",
"name": "groupPubKey",
"type": "bytes"
}
],
"name": "OnGroupRegistered",
"type": "event"
},
"0xf3a8bf09e4f9146a48f9b91226985ac8d83d971beb4fc9ffdc569790e85a97e4": {
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes",
"name": "previousEntry",
"type": "bytes"