-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathAnthill.json
1883 lines (1883 loc) · 182 KB
/
Anthill.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
{
"abi": [
{ "type": "constructor", "inputs": [], "stateMutability": "nonpayable" },
{
"type": "function",
"name": "MAX_REL_ROOT_DEPTH",
"inputs": [],
"outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "addDagVote",
"inputs": [
{ "name": "voter", "type": "address", "internalType": "address" },
{ "name": "recipient", "type": "address", "internalType": "address" },
{ "name": "weight", "type": "uint256", "internalType": "uint256" }
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "balanceOf",
"inputs": [
{ "name": "voter", "type": "address", "internalType": "address" }
],
"outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "calculateReputation",
"inputs": [
{ "name": "voter", "type": "address", "internalType": "address" }
],
"outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "calculateReputationRec",
"inputs": [
{ "name": "voter", "type": "address", "internalType": "address" }
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "changeName",
"inputs": [
{ "name": "voter", "type": "address", "internalType": "address" },
{ "name": "voterName", "type": "string", "internalType": "string" }
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "clearReputationCalculatedRec",
"inputs": [
{ "name": "voter", "type": "address", "internalType": "address" }
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "decimalPoint",
"inputs": [],
"outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "decimals",
"inputs": [],
"outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "findDistAtSameDepth",
"inputs": [
{ "name": "add1", "type": "address", "internalType": "address" },
{ "name": "add2", "type": "address", "internalType": "address" }
],
"outputs": [
{ "name": "isSameDepth", "type": "bool", "internalType": "bool" },
{ "name": "distance", "type": "uint256", "internalType": "uint256" }
],
"stateMutability": "view"
},
{
"type": "function",
"name": "findDistances",
"inputs": [
{ "name": "voter", "type": "address", "internalType": "address" },
{ "name": "recipient", "type": "address", "internalType": "address" }
],
"outputs": [
{ "name": "isLocal", "type": "bool", "internalType": "bool" },
{ "name": "sDist", "type": "uint256", "internalType": "uint256" },
{ "name": "rDist", "type": "uint256", "internalType": "uint256" }
],
"stateMutability": "view"
},
{
"type": "function",
"name": "findDistancesRecNotLower",
"inputs": [
{ "name": "voter", "type": "address", "internalType": "address" },
{ "name": "recipient", "type": "address", "internalType": "address" }
],
"outputs": [
{ "name": "isLocal", "type": "bool", "internalType": "bool" },
{ "name": "sDist", "type": "uint256", "internalType": "uint256" },
{ "name": "rDist", "type": "uint256", "internalType": "uint256" }
],
"stateMutability": "view"
},
{
"type": "function",
"name": "findNthParent",
"inputs": [
{ "name": "voter", "type": "address", "internalType": "address" },
{ "name": "height", "type": "uint256", "internalType": "uint256" }
],
"outputs": [
{ "name": "parent", "type": "address", "internalType": "address" }
],
"stateMutability": "view"
},
{
"type": "function",
"name": "findRecDagVote",
"inputs": [
{ "name": "voter", "type": "address", "internalType": "address" },
{ "name": "recipient", "type": "address", "internalType": "address" }
],
"outputs": [
{ "name": "votable", "type": "bool", "internalType": "bool" },
{ "name": "voted", "type": "bool", "internalType": "bool" },
{ "name": "sdist", "type": "uint256", "internalType": "uint256" },
{ "name": "depth", "type": "uint256", "internalType": "uint256" },
{ "name": "votePos", "type": "uint256", "internalType": "uint256" },
{
"name": "dagVote",
"type": "tuple",
"internalType": "struct DagVote",
"components": [
{ "name": "id", "type": "address", "internalType": "address" },
{ "name": "weight", "type": "uint256", "internalType": "uint256" },
{ "name": "dist", "type": "uint256", "internalType": "uint256" },
{
"name": "posInOther",
"type": "uint256",
"internalType": "uint256"
}
]
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "findRecDagVoteNew",
"inputs": [
{ "name": "voter", "type": "address", "internalType": "address" },
{ "name": "recipient", "type": "address", "internalType": "address" }
],
"outputs": [
{ "name": "votable", "type": "bool", "internalType": "bool" },
{ "name": "voted", "type": "bool", "internalType": "bool" },
{ "name": "votePos", "type": "uint256", "internalType": "uint256" },
{
"name": "dagVote",
"type": "tuple",
"internalType": "struct DagVote",
"components": [
{ "name": "id", "type": "address", "internalType": "address" },
{ "name": "weight", "type": "uint256", "internalType": "uint256" },
{ "name": "dist", "type": "uint256", "internalType": "uint256" },
{
"name": "posInOther",
"type": "uint256",
"internalType": "uint256"
}
]
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "findRelDepth",
"inputs": [
{ "name": "voter", "type": "address", "internalType": "address" },
{ "name": "recipient", "type": "address", "internalType": "address" }
],
"outputs": [
{ "name": "isLocal", "type": "bool", "internalType": "bool" },
{ "name": "relDepth", "type": "uint256", "internalType": "uint256" }
],
"stateMutability": "view"
},
{
"type": "function",
"name": "findRelDepthInner",
"inputs": [
{ "name": "voter", "type": "address", "internalType": "address" },
{ "name": "recipient", "type": "address", "internalType": "address" }
],
"outputs": [
{ "name": "isLocal", "type": "bool", "internalType": "bool" },
{ "name": "relRootDiff", "type": "uint256", "internalType": "uint256" },
{ "name": "rDist", "type": "uint256", "internalType": "uint256" }
],
"stateMutability": "view"
},
{
"type": "function",
"name": "findRelRoot",
"inputs": [
{ "name": "voter", "type": "address", "internalType": "address" }
],
"outputs": [
{ "name": "relRoot", "type": "address", "internalType": "address" },
{ "name": "relDepth", "type": "uint256", "internalType": "uint256" }
],
"stateMutability": "view"
},
{
"type": "function",
"name": "findSentDagVote",
"inputs": [
{ "name": "voter", "type": "address", "internalType": "address" },
{ "name": "recipient", "type": "address", "internalType": "address" }
],
"outputs": [
{ "name": "votable", "type": "bool", "internalType": "bool" },
{ "name": "voted", "type": "bool", "internalType": "bool" },
{ "name": "sDist", "type": "uint256", "internalType": "uint256" },
{ "name": "rDist", "type": "uint256", "internalType": "uint256" },
{ "name": "votePos", "type": "uint256", "internalType": "uint256" },
{
"name": "dagVote",
"type": "tuple",
"internalType": "struct DagVote",
"components": [
{ "name": "id", "type": "address", "internalType": "address" },
{ "name": "weight", "type": "uint256", "internalType": "uint256" },
{ "name": "dist", "type": "uint256", "internalType": "uint256" },
{
"name": "posInOther",
"type": "uint256",
"internalType": "uint256"
}
]
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "findSentDagVoteNew",
"inputs": [
{ "name": "voter", "type": "address", "internalType": "address" },
{ "name": "recipient", "type": "address", "internalType": "address" }
],
"outputs": [
{ "name": "votable", "type": "bool", "internalType": "bool" },
{ "name": "voted", "type": "bool", "internalType": "bool" },
{ "name": "votePos", "type": "uint256", "internalType": "uint256" },
{
"name": "dagVote",
"type": "tuple",
"internalType": "struct DagVote",
"components": [
{ "name": "id", "type": "address", "internalType": "address" },
{ "name": "weight", "type": "uint256", "internalType": "uint256" },
{ "name": "dist", "type": "uint256", "internalType": "uint256" },
{
"name": "posInOther",
"type": "uint256",
"internalType": "uint256"
}
]
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "handleDagVoteReplace",
"inputs": [
{
"name": "voterWithChangingDagVotes",
"type": "address",
"internalType": "address"
},
{ "name": "recipient", "type": "address", "internalType": "address" },
{
"name": "replacedPositionInTree",
"type": "address",
"internalType": "address"
},
{
"name": "sDistToNewRec",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "rDistForNewRec",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "joinTree",
"inputs": [
{ "name": "voter", "type": "address", "internalType": "address" },
{ "name": "voterName", "type": "string", "internalType": "string" },
{ "name": "recipient", "type": "address", "internalType": "address" }
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "joinTreeAsRoot",
"inputs": [
{ "name": "voter", "type": "address", "internalType": "address" },
{ "name": "voterName", "type": "string", "internalType": "string" }
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "leaveTree",
"inputs": [
{ "name": "voter", "type": "address", "internalType": "address" }
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "lockTree",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "moveTreeVote",
"inputs": [
{ "name": "voter", "type": "address", "internalType": "address" },
{ "name": "recipient", "type": "address", "internalType": "address" }
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "name",
"inputs": [],
"outputs": [{ "name": "", "type": "string", "internalType": "string" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "readDepth",
"inputs": [
{ "name": "voter", "type": "address", "internalType": "address" }
],
"outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "readMaxRelRootDepth",
"inputs": [],
"outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "readName",
"inputs": [
{ "name": "voter", "type": "address", "internalType": "address" }
],
"outputs": [{ "name": "", "type": "string", "internalType": "string" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "readRecDagVote",
"inputs": [
{ "name": "recipient", "type": "address", "internalType": "address" },
{ "name": "", "type": "uint256", "internalType": "uint256" },
{ "name": "", "type": "uint256", "internalType": "uint256" },
{ "name": "votePos", "type": "uint256", "internalType": "uint256" }
],
"outputs": [
{
"name": "",
"type": "tuple",
"internalType": "struct DagVote",
"components": [
{ "name": "id", "type": "address", "internalType": "address" },
{ "name": "weight", "type": "uint256", "internalType": "uint256" },
{ "name": "dist", "type": "uint256", "internalType": "uint256" },
{
"name": "posInOther",
"type": "uint256",
"internalType": "uint256"
}
]
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "readRecDagVoteCount",
"inputs": [
{ "name": "recipient", "type": "address", "internalType": "address" },
{ "name": "rdist", "type": "uint256", "internalType": "uint256" },
{ "name": "depth", "type": "uint256", "internalType": "uint256" }
],
"outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "readRecDagVoteDepthDiff",
"inputs": [
{ "name": "recipient", "type": "address", "internalType": "address" }
],
"outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "readRecDagVoteDistDiff",
"inputs": [
{ "name": "recipient", "type": "address", "internalType": "address" }
],
"outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "readRecTreeVote",
"inputs": [
{ "name": "recipient", "type": "address", "internalType": "address" },
{ "name": "votePos", "type": "uint256", "internalType": "uint256" }
],
"outputs": [{ "name": "", "type": "address", "internalType": "address" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "readRecTreeVoteCount",
"inputs": [
{ "name": "recipient", "type": "address", "internalType": "address" }
],
"outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "readReputation",
"inputs": [
{ "name": "voter", "type": "address", "internalType": "address" }
],
"outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "readRoot",
"inputs": [],
"outputs": [{ "name": "", "type": "address", "internalType": "address" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "readSentDagVote",
"inputs": [
{ "name": "voter", "type": "address", "internalType": "address" },
{ "name": "", "type": "uint256", "internalType": "uint256" },
{ "name": "", "type": "uint256", "internalType": "uint256" },
{ "name": "votePos", "type": "uint256", "internalType": "uint256" }
],
"outputs": [
{
"name": "",
"type": "tuple",
"internalType": "struct DagVote",
"components": [
{ "name": "id", "type": "address", "internalType": "address" },
{ "name": "weight", "type": "uint256", "internalType": "uint256" },
{ "name": "dist", "type": "uint256", "internalType": "uint256" },
{
"name": "posInOther",
"type": "uint256",
"internalType": "uint256"
}
]
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "readSentDagVoteCount",
"inputs": [
{ "name": "voter", "type": "address", "internalType": "address" },
{ "name": "", "type": "uint256", "internalType": "uint256" },
{ "name": "", "type": "uint256", "internalType": "uint256" }
],
"outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "readSentDagVoteDepthDiff",
"inputs": [
{ "name": "voter", "type": "address", "internalType": "address" }
],
"outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "readSentDagVoteDistDiff",
"inputs": [
{ "name": "voter", "type": "address", "internalType": "address" }
],
"outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "readSentDagVoteTotalWeight",
"inputs": [
{ "name": "voter", "type": "address", "internalType": "address" }
],
"outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "readSentTreeVote",
"inputs": [
{ "name": "voter", "type": "address", "internalType": "address" }
],
"outputs": [{ "name": "", "type": "address", "internalType": "address" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "recalculateAllReputation",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "removeAllRecDagVotes",
"inputs": [
{ "name": "recipient", "type": "address", "internalType": "address" }
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "removeAllSentDagVotes",
"inputs": [
{ "name": "voter", "type": "address", "internalType": "address" }
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "removeDagVote",
"inputs": [
{ "name": "voter", "type": "address", "internalType": "address" },
{ "name": "recipient", "type": "address", "internalType": "address" }
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "root",
"inputs": [],
"outputs": [{ "name": "", "type": "address", "internalType": "address" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "switchPositionWithParent",
"inputs": [
{ "name": "voter", "type": "address", "internalType": "address" }
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "symbol",
"inputs": [],
"outputs": [{ "name": "", "type": "string", "internalType": "string" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "tokenName",
"inputs": [],
"outputs": [{ "name": "", "type": "string", "internalType": "string" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "tokenSymbol",
"inputs": [],
"outputs": [{ "name": "", "type": "string", "internalType": "string" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "unlocked",
"inputs": [],
"outputs": [{ "name": "", "type": "bool", "internalType": "bool" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "unsafeReplaceRecDagVoteWithLast",
"inputs": [
{ "name": "recipient", "type": "address", "internalType": "address" },
{ "name": "rPos", "type": "uint256", "internalType": "uint256" }
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "event",
"name": "AddDagVoteEvent",
"inputs": [
{
"name": "voter",
"type": "address",
"indexed": false,
"internalType": "address"
},
{
"name": "recipient",
"type": "address",
"indexed": false,
"internalType": "address"
},
{
"name": "weight",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "ChangeNameEvent",
"inputs": [
{
"name": "voter",
"type": "address",
"indexed": false,
"internalType": "address"
},
{
"name": "newName",
"type": "string",
"indexed": false,
"internalType": "string"
}
],
"anonymous": false
},
{
"type": "event",
"name": "JoinTreeEvent",
"inputs": [
{
"name": "voter",
"type": "address",
"indexed": false,
"internalType": "address"
},
{
"name": "name",
"type": "string",
"indexed": false,
"internalType": "string"
},
{
"name": "recipient",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "LeaveTreeEvent",
"inputs": [
{
"name": "voter",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "MoveTreeVoteEvent",
"inputs": [
{
"name": "voter",
"type": "address",
"indexed": false,
"internalType": "address"
},
{
"name": "recipient",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "RemoveDagVoteEvent",
"inputs": [
{
"name": "voter",
"type": "address",
"indexed": false,
"internalType": "address"
},
{
"name": "recipient",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "SwitchPositionWithParentEvent",
"inputs": [
{
"name": "voter",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
}
],
"bytecode": {
"object": "0x6000805460ff1916600190811790915560c06040526007608090815266105b9d1a1a5b1b60ca1b60a05262000035908262000126565b506040805180820190915260048152630829ca8960e31b602082015260029062000060908262000126565b503480156200006e57600080fd5b5060126003556006600455620001f2565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620000aa57607f821691505b602082108103620000cb57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000121576000816000526020600020601f850160051c81016020861015620000fc5750805b601f850160051c820191505b818110156200011d5782815560010162000108565b5050505b505050565b81516001600160401b038111156200014257620001426200007f565b6200015a8162000153845462000095565b84620000d1565b602080601f831160018114620001925760008415620001795750858301515b600019600386901b1c1916600185901b1785556200011d565b600085815260208120601f198616915b82811015620001c357888601518255948401946001909101908401620001a2565b5085821015620001e25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b613af780620002026000396000f3fe608060405234801561001057600080fd5b506004361061035b5760003560e01c80637ea67015116101d3578063c5ce031811610104578063dd88aa95116100a2578063ebf0c7171161007c578063ebf0c717146107d0578063eeaebe87146107e3578063fa2465f1146107f6578063ff8f07de1461080957600080fd5b8063dd88aa951461078a578063e414c4571461079d578063e614a68d146107c857600080fd5b8063cf6ed9f9116100de578063cf6ed9f914610751578063d5a6436114610489578063d6f497cd14610764578063d7b547f01461077757600080fd5b8063c5ce031814610718578063c68d6f611461072b578063c88464bf1461073e57600080fd5b8063a9895c0411610171578063b062aaec1161014b578063b062aaec146106c1578063b9aae95d146106ea578063bad69ace146106fd578063c389ccc01461071057600080fd5b8063a9895c041461069b578063ab1e7a78146106ae578063ab70b4c61461048957600080fd5b806393dac9d1116101ad57806393dac9d11461063057806395d89b4114610660578063a16877d514610668578063a2e64c391461069257600080fd5b80637ea6701514610601578063806df9591461060a578063825a38551461061d57600080fd5b806345ca25ed116102ad5780636a5e26501161024b5780636c02a931116102255780636c02a931146105cb57806370a08231146105d357806377a63f9b146105e65780637b61c320146105f957600080fd5b80636a5e2650146105885780636ae6f05f146105a55780636be22cd2146105b857600080fd5b8063519bf72d11610287578063519bf72d1461048957806359bf02a5146105415780635c68f16d1461056d57806360c69aa51461057557600080fd5b806345ca25ed146104e257806349bb27e0146104f55780634cefac581461051e57600080fd5b8063199cd8c01161031a57806337ba0eb1116102f457806337ba0eb11461047657806339273f59146104895780633a47ce831461049d5780633aaf189b146104b057600080fd5b8063199cd8c01461044657806327c06fd51461045b578063313ce5671461046e57600080fd5b8062a1efe514610360578062f71abc1461039c5780630520b5a4146103c757806306fdde03146103ec57806310839bf71461040157806315d4936a14610426575b600080fd5b61038961036e3660046133be565b6001600160a01b03166000908152600c602052604090205490565b6040519081526020015b60405180910390f35b6103896103aa3660046133d9565b50506001600160a01b03166000908152600a602052604090205490565b6103da6103d536600461340c565b61081c565b6040516103939695949392919061346b565b6103f461096b565b60405161039391906134ab565b6005546001600160a01b03165b6040516001600160a01b039091168152602001610393565b6104396104343660046134fa565b6109fd565b6040516103939190613533565b610459610454366004613583565b610a63565b005b6103896104693660046133be565b610bee565b600354610389565b61045961048436600461340c565b610cfb565b6103896104973660046133be565b50600090565b61040e6104ab3660046135d6565b610dd2565b6104c36104be3660046133be565b610dff565b604080516001600160a01b039093168352602083019190915201610393565b6104596104f0366004613583565b610e9f565b6103896105033660046133be565b6001600160a01b031660009081526008602052604090205490565b61053161052c36600461340c565b610f8a565b6040516103939493929190613600565b61040e61054f3660046133be565b6001600160a01b039081166000908152600760205260409020541690565b610459610fb4565b6104596105833660046133be565b610fcc565b6000546105959060ff1681565b6040519015158152602001610393565b6104596105b33660046135d6565b61106a565b6104596105c63660046133be565b611268565b6103f46113fd565b6103896105e13660046133be565b61148b565b6104396105f43660046134fa565b6114a9565b6103f461150f565b61038960045481565b6103f46106183660046133be565b61151c565b61038961062b3660046133be565b6115c8565b61064361063e36600461340c565b61164b565b604080519315158452602084019290925290820152606001610393565b6103f4611704565b61067b61067636600461340c565b611713565b604080519215158352602083019190915201610393565b61038960035481565b6105316106a936600461340c565b61183c565b6106436106bc36600461340c565b611853565b6103896106cf3660046133be565b6001600160a01b03166000908152600f602052604090205490565b6103da6106f836600461340c565b611907565b61045961070b36600461362e565b611a68565b610459611db7565b61045961072636600461340c565b611de1565b61040e6107393660046135d6565b611ffa565b61045961074c3660046133be565b6120ba565b61064361075f36600461340c565b6120ff565b6104596107723660046133be565b6121f2565b6104596107853660046133be565b612232565b61067b61079836600461340c565b6123dd565b6103896107ab3660046133d9565b50506001600160a01b03166000908152600d602052604090205490565b600454610389565b60055461040e906001600160a01b031681565b6104596107f1366004613683565b612409565b6104596108043660046136e8565b612630565b6104596108173660046133be565b612721565b600080600080600061082c613371565b610836888861164b565b9197509450925085158061084957508284145b15610895576000806000806000604051806080016040528060006001600160a01b0316815260200160008152602001600081526020016000815250955095509550955095509550610961565b60005b6001600160a01b0389166000908152600a6020526040902054811015610931576001600160a01b03808a166000908152600b6020908152604080832085845282529182902082516080810184528154851680825260018301549382019390935260028201549381019390935260030154606083015290918a16900361092857600197508796509092509050610961565b50600101610898565b50506040805160808101825260008082526020820181905291810182905260608101829052600196509094508491505b9295509295509295565b60606001805461097a90613724565b80601f01602080910402602001604051908101604052809291908181526020018280546109a690613724565b80156109f35780601f106109c8576101008083540402835291602001916109f3565b820191906000526020600020905b8154815290600101906020018083116109d657829003601f168201915b5050505050905090565b610a05613371565b506001600160a01b038085166000908152600e60209081526040808320858452825291829020825160808101845281549094168452600181015491840191909152600281015491830191909152600301546060820152949350505050565b600054839060ff16610aa057336001600160a01b03821614610aa05760405162461bcd60e51b8152600401610a979061375e565b60405180910390fd5b6001600160a01b038481166000908152600760205260409020541615610af35760405162461bcd60e51b81526020600482015260086024820152672090352a20a9101960c11b6044820152606401610a97565b6005546001600160a01b031615610b375760405162461bcd60e51b815260206004820152600860248201526741206a544152203360c01b6044820152606401610a97565b6001600160a01b0384166000908152600660205260409020610b5a8385836137e6565b505050506001600160a01b031660008181526007602090815260408220805460016001600160a01b03199182168117909255600580548216861790557fb878081ec3704a5de178258b7387a20f00443d893bc5640352b547081b2d5c16805490911690941790935590829052600890527fad67d757c34507f157cacfa2e3153e9f260a2244f30428821be7be64587ac55f55565b6000806001600160a01b038316610c085750600092915050565b60005b6001600160a01b0384166000908152600d6020526040902054811015610cbf576001600160a01b038085166000908152600e60209081526040808320858452825280832081516080810183528154909516808652600182015486850190815260028301548785015260039092015460608701528452600c9092529091205490518251610c9690610bee565b610ca091906138bd565b610caa91906138d4565b610cb490846138f6565b925050600101610c0b565b50600354610cce90600a6139ed565b610cd890826138f6565b6001600160a01b039093166000908152600f602052604090208390555090919050565b600054829060ff16610d2f57336001600160a01b03821614610d2f5760405162461bcd60e51b8152600401610a979061375e565b6000806000610d3e868661183c565b5092509250925081610d7c5760405162461bcd60e51b8152602060048201526007602482015266209039222b101960c91b6044820152606401610a97565b610d8686826127ce565b604080516001600160a01b038089168252871660208201527f279965e71edc78fe4a286c30591ffcb9f45817389fb57d4f2d5d2dbbd20c5b1991015b60405180910390a1505050505050565b6001600160a01b038083166000908152600960209081526040808320858452909152902054165b92915050565b6001600160a01b038181166000908152600760205260408120549091829116610e565760405162461bcd60e51b815260206004820152600960248201526841692c20665252203160b81b6044820152606401610a97565b508190506000805b600454821015610e9957506001600160a01b0380831660009081526007602052604090205416600019810115610e9957915060010181610e5e565b50915091565b600054839060ff16610ed357336001600160a01b03821614610ed35760405162461bcd60e51b8152600401610a979061375e565b6001600160a01b0384811660009081526007602052604090205416610f255760405162461bcd60e51b815260206004820152600860248201526741206a544152203560c01b6044820152606401610a97565b6001600160a01b0384166000908152600660205260409020610f488385836137e6565b507f0a68bea90481253adfebc561eb239c93e477569441a54caca19db9b0013393c6848484604051610f7c93929190613a22565b60405180910390a150505050565b6000806000610f97613371565b610fa18686611907565b949b939a50985092965090945050505050565b60005460ff1615610fca576000805460ff191690555b565b6001600160a01b0381811660009081526007602052604090205416610fee5750565b6001600160a01b0381166000908152601060205260408120805460ff191690555b6001600160a01b038216600090815260086020526040902054811015611066576001600160a01b03808316600090815260096020908152604080832085845290915290205461105e9116610fcc565b60010161100f565b5050565b60005460ff166110a85760405162461bcd60e51b815260206004820152600960248201526841207553524456203160b81b6044820152606401610a97565b6001600160a01b0382166000908152600d60205260409020546110cd90600190613a47565b81146111d6576001600160a01b0382166000908152600e60209081526040808320600d909252822054829061110490600190613a47565b81526020808201929092526040908101600090812082516080808201855282546001600160a01b039081168352600180850154848901908152600280870154868a0190815260039788015460608089019182528b519788018c528851871688529351878d019081529151878c0190815281519488019485528f87168b52600e8d528b8b208f8c528d528b8b20975188546001600160a01b0319169088161788559151948701949094555190850155519285019290925591519091168352600b8552838320905183529093522001829055505b6001600160a01b0382166000908152600e60209081526040808320600d90925282205490919061120890600190613a47565b81526020808201929092526040908101600090812080546001600160a01b031916815560018101829055600281018290556003018190556001600160a01b0385168152600d9092528120805490919061126090613a5a565b909155505050565b600054819060ff1661129c57336001600160a01b0382161461129c5760405162461bcd60e51b8152600401610a979061375e565b6001600160a01b0380831660009081526007602052604090205416806112ed5760405162461bcd60e51b815260206004820152600660248201526541206c54203360d01b6044820152606401610a97565b6000196001600160a01b038216016113305760405162461bcd60e51b815260206004820152600660248201526510481b15080d60d21b6044820152606401610a97565b6001600160a01b038082166000908152600760205260408120549091169061135785610bee565b9050600061136484610bee565b905080821161139e5760405162461bcd60e51b815260206004820152600660248201526541206c54203560d01b6044820152606401610a97565b6113ac848588600080611a68565b6113bb86848660026000611a68565b6113c48661283f565b6040516001600160a01b03871681527f04be1b56fbf390324cfb0745416a4cc51f51253b68c570ec1e696c1044b2ddcf90602001610dc2565b6001805461140a90613724565b80601f016020809104026020016040519081016040528092919081815260200182805461143690613724565b80156114835780601f1061145857610100808354040283529160200191611483565b820191906000526020600020905b81548152906001019060200180831161146657829003601f168201915b505050505081565b6001600160a01b0381166000908152600f6020526040812054610df9565b6114b1613371565b506001600160a01b038085166000908152600b60209081526040808320858452825291829020825160808101845281549094168452600181015491840191909152600281015491830191909152600301546060820152949350505050565b6002805461140a90613724565b6001600160a01b038116600090815260066020526040902080546060919061154390613724565b80601f016020809104026020016040519081016040528092919081815260200182805461156f90613724565b80156115bc5780601f10611591576101008083540402835291602001916115bc565b820191906000526020600020905b81548152906001019060200180831161159f57829003601f168201915b50505050509050919050565b6001600160a01b038181166000908152600760205260408120549091166115f157506000919050565b6001600160a01b03828116600090815260076020526040902054166000190161161c57506000919050565b6001600160a01b0380831660009081526007602052604090205461164091166115c8565b610df99060016138f6565b6001600160a01b0382811660009081526007602052604081205490918291829116158061169057506001600160a01b0384811660009081526007602052604090205416155b156116a3575060009150819050806116fd565b60006116af86866123dd565b9094509050836116ca576000806000935093509350506116fd565b60006116d68783611ffa565b905060006116e48288611713565b91508690506116f384836138f6565b9096509450925050505b9250925092565b60606002805461097a90613724565b600080826001600160a01b0316846001600160a01b03160361173b5750600190506000611835565b6001600160a01b0384811660009081526007602052604090205416158061177a57506001600160a01b0383811660009081526007602052604090205416155b1561178a57506000905080611835565b6001600160a01b0384811660009081526007602052604090205416600114806117cd57506001600160a01b03838116600090815260076020526040902054166001145b156117dd57506000905080611835565b6001600160a01b0380851660009081526007602052604080822054868416835291205461180e929182169116611713565b9092509050811561182e57600161182582826138f6565b91509150611835565b5060009050805b9250929050565b6000806000611849613371565b610fa1868661081c565b6001600160a01b0382811660009081526007602052604081205490918291829116158061189857506001600160a01b0384811660009081526007602052604090205416155b156118ab575060009150819050806116fd565b6000806000806000806118be8b8b6120ff565b919750945090506118cf8a8c6120ff565b919650935091508580156118e05750845b98506118ec81856138f6565b97506118f882846138f6565b96505050505050509250925092565b6000806000806000611917613371565b60008060006119268b8b61164b565b9194509250905082158061193957508082145b15611988576000806000806000604051806080016040528060006001600160a01b0316815260200160008152602001600081526020016000815250985098509850985098509850505050610961565b60005b6001600160a01b038b166000908152600d6020526040902054811015611a2b576001600160a01b03808c166000908152600e6020908152604080832085845282529182902082516080810184528154851680825260018301549382019390935260028201549381019390935260030154606083015290918e169003611a225760019a508a9950929750909550935091506109619050565b5060010161198b565b50604080516080810182526000808252602082018190529181018290526060810182905260019d919c50929a509098508a97509095509350505050565b60005460ff16611ab05760405162461bcd60e51b815260206004820152601360248201527220b73a241d1037b7363c903ab73637b1b5b2b960691b6044820152606401610a97565b6305f5e0ff6001600160a01b038416611afa576001600160a01b038116600090815260076020526040902080546001600160a01b0319166001179055611af68186612a20565b8093505b6001600160a01b0386166000908152600a6020526040902054805b8015611c42576001600160a01b0388166000908152600b6020526040812081611b3f600185613a47565b815260208082019290925260409081016000908120825160808101845281546001600160a01b03168082526001830154958201959095526002820154938101939093526003015460608301529092509081908190611b9e908b9061164b565b92509250925082611bc657611bbd8c611bb8600188613a47565b6127ce565b50505050611c32565b6001600160a01b038c166000908152600b602052604081208391611beb600189613a47565b81526020808201929092526040908101600090812060029081019490945587516001600160a01b03168152600e835281812060608901518252909252902001819055505050505b611c3b81613a5a565b9050611b15565b50506001600160a01b0386166000908152600d6020526040902054805b8015611d8b576001600160a01b0388166000908152600e6020526040812081611c89600185613a47565b815260208082019290925260409081016000908120825160808101845281546001600160a01b03168082526001830154958201959095526002820154938101939093526003015460608301529092509081908190611ce7908b61164b565b92509250925082611d0f57611d068c611d01600188613a47565b612a7e565b50505050611d7b565b6001600160a01b038c166000908152600e602052604081208291611d34600189613a47565b81526020808201929092526040908101600090812060029081019490945587516001600160a01b03168152600b835281812060608901518252909252902001829055505050505b611d8481613a5a565b9050611c5f565b50816001600160a01b0316856001600160a01b031603611dae57611dae82612aef565b50505050505050565b600554611dcc906001600160a01b0316610fcc565b600554610fca906001600160a01b0316612232565b600054829060ff16611e1557336001600160a01b03821614611e155760405162461bcd60e51b8152600401610a979061375e565b6001600160a01b0383811660009081526007602052604090205416611e665760405162461bcd60e51b8152602060048201526007602482015266209036aa2b101960c91b6044820152606401610a97565b6001600160a01b0382811660009081526007602052604090205416611eb75760405162461bcd60e51b815260206004820152600760248201526641206d5456203360c81b6044820152606401610a97565b6001600160a01b038216600090815260086020526040902054600211611f095760405162461bcd60e51b815260206004820152600760248201526610481b5515880d60ca1b6044820152606401610a97565b6000806000611f188686611853565b6001600160a01b03808a16600090815260076020526040902054939650919450925016611f4487612c5e565b82158015611f4f5750835b15611f8457806001600160a01b0316611f688784611ffa565b6001600160a01b031603611f8457611f81600183613a47565b91505b508215611f9e57611f99868660008585611a68565b611fb0565b611fa7866121f2565b611fb0866120ba565b611fba8686612a20565b604080516001600160a01b038089168252871660208201527fc53fde28a3da784bd628fee9896334592fb5ba4b6ebc5f7259df043b0d3012479101610dc2565b60008160000361200b575081610df9565b6001600160a01b03838116600090815260076020526040902054166000190161203657506001610df9565b6001600160a01b03838116600090815260076020526040902054166120895760405162461bcd60e51b815260206004820152600960248201526841692c20664e50203160b81b6044820152606401610a97565b6001600160a01b038084166000908152600760205260409020546120b39116610739600185613a47565b9392505050565b6001600160a01b0381166000908152600d6020526040902054805b80156120fa576120ea83611d01600184613a47565b6120f381613a5a565b90506120d5565b505050565b6001600160a01b0382811660009081526007602052604081205490918291829116158061214457506001600160a01b0384811660009081526007602052604090205416155b15612157575060009150819050806116fd565b600061216286610dff565b935090508460005b8481116121e057826001600160a01b0316826001600160a01b031603612198576001955092506116fd915050565b6001600160a01b0391821660009081526007602052604090205490911690816121ce5760008060009550955095505050506116fd565b806121d881613a71565b91505061216a565b50600097889750879650945050505050565b6001600160a01b0381166000908152600a6020526040902054805b80156120fa5761222283611bb8600184613a47565b61222b81613a5a565b905061220d565b6001600160a01b03818116600090815260076020526040902054166122545750565b6001600160a01b03811660009081526010602052604090205460ff16156122785750565b60005b6001600160a01b0382166000908152600860205260409020548110156122d2576001600160a01b0380831660009081526009602090815260408083208584529091529020546122ca9116612232565b60010161227b565b506000805b6001600160a01b0383166000908152600d602052604090205481101561238e576001600160a01b038084166000908152600e602090815260408083208584528252808320815160808101835281548616808252600183015482860190815260028401548386015260039093015460608301528552600c845282852054915181519096168552600f909352922054909261236f916138bd565b61237991906138d4565b61238390846138f6565b9250506001016122d7565b5060035461239d90600a6139ed565b6123a790826138f6565b6001600160a01b039092166000908152600f60209081526040808320949094556010905291909120805460ff1916600117905550565b6000806000806123ed86866120ff565b919550925090506123fe8183613a47565b925050509250929050565b600054849060ff1661243d57336001600160a01b0382161461243d5760405162461bcd60e51b8152600401610a979061375e565b6001600160a01b03858116600090815260076020526040902054161561248e5760405162461bcd60e51b81526020600482015260066024820152652090362a101960d11b6044820152606401610a97565b6001600160a01b03828116600090815260076020526040902054166124de5760405162461bcd60e51b815260206004820152600660248201526541206c54203360d01b6044820152606401610a97565b6001600160a01b03821660009081526008602052604090205460021161252f5760405162461bcd60e51b815260206004820152600660248201526510481b15080d60d21b6044820152606401610a97565b6001600160a01b03858116600090815260076020908152604080832080546001600160a01b0319169487169490941790935560069052206125718486836137e6565b506001600160a01b03828116600081815260096020908152604080832060088084528285208054865291845291842080546001600160a01b031916968c16969096179095559290915252546125c79060016138f6565b6001600160a01b0383166000908152600860205260409020556125ec85836001612630565b7fca7e50aa547fb9bcc29db85b16153299ff137fdb6e0818d13795021889d3ddaa858585856040516126219493929190613a8a565b60405180910390a15050505050565b600054839060ff1661266457336001600160a01b038216146126645760405162461bcd60e51b8152600401610a979061375e565b600080600080612674888861081c565b50509350935093509350838015612689575082155b6126bf5760405162461bcd60e51b8152602060048201526007602482015266209030a22b101960c91b6044820152606401610a97565b6126cc888884848a612d8b565b604080516001600160a01b03808b168252891660208201529081018790527f7ac00444e3428c19fc2364070529d9672439c0dcc082b6d698337002f325001d9060600160405180910390a15050505050505050565b600054819060ff1661275557336001600160a01b038216146127555760405162461bcd60e51b8152600401610a979061375e565b61275e826121f2565b612767826120ba565b61277082612c5e565b6001600160a01b03821660008181526007602090815260409182902080546001600160a01b031916905590519182527fc6e5f8deeecea7a16e6150f79d6da5196e1861c255eb682de9e28576f0915f45910160405180910390a15050565b6001600160a01b038083166000908152600b6020908152604080832085845282529182902082516080810184528154909416845260018101549184019190915260028101549183019190915260030154606082015261282d8383612f1f565b6120fa8160000151826060015161106a565b6001600160a01b0380821660009081526007602052604090205416806128955760405162461bcd60e51b815260206004820152600b60248201526a41692c207354565750203160a81b6044820152606401610a97565b6000196001600160a01b038216016128dd5760405162461bcd60e51b815260206004820152600b60248201526a20b4961039aa2b2ba8101960a91b6044820152606401610a97565b6001600160a01b038082166000908152600760205260409020541661290183612aef565b816001600160a01b031661291d6005546001600160a01b031690565b6001600160a01b03160361294b57600580546001600160a01b0319166001600160a01b038516179055612954565b61295482612aef565b6001600160a01b038281166000908152600960208181526040808420848052825280842054888616855292825280842084805290915280832054600184529220549083169291821691166129a886856131ed565b6129b285876131ed565b6001600160a01b038316156129d4576129ca83612aef565b6129d483876131ed565b6001600160a01b038216156129f6576129ec82612aef565b6129f682866131ed565b6001600160a01b03811615612a1857612a0e81612aef565b612a1881866131ed565b505050505050565b6001600160a01b038116600090815260086020526040902054600211612a745760405162461bcd60e51b815260206004820152600960248201526820b4961030a22b101960b91b6044820152606401610a97565b61106682826131ed565b6001600160a01b038083166000908152600e60209081526040808320858452825291829020825160808101845281549094168452600181015491840191909152600281015491830191909152600301546060820152612add838361106a565b6120fa81600001518260600151612f1f565b6001600160a01b0380821660008181526007602090815260408083205485168084526009835281842084805290925282205490939192911614612b33576001612b36565b60005b6001600160a01b0383166000908152600960209081526040808320600890925282205460ff93909316935091612b6e90600190613a47565b815260208082019290925260409081016000908120546001600160a01b038681168084526009865284842087855280875285852080546001600160a01b03191693909416929092179092559082526008909352908120549091908290612bd690600190613a47565b81526020808201929092526040908101600090812080546001600160a01b0319166001600160a01b0395861617905592851683526008909152902054612c1e90600190613a47565b6001600160a01b039283166000908152600860209081526040808320939093559490931683526007909352502080546001600160a01b0319166001179055565b60005460ff16612c995760405162461bcd60e51b8152602060048201526006602482015265209034262b2160d11b6044820152606401610a97565b6001600160a01b038181166000908152600760209081526040808320546009835281842084805290925280832054600184529220549083169291821691168115612d2b57612cec82848660026000611a68565b612cf682856132cf565b6001600160a01b03811615612d1857612d0e81612aef565b612d188183612a20565b612d2182612aef565b612d2b82846131ed565b612d3484612aef565b6001600160a01b03808516600081815260076020526040902080546001600160a01b031916600117905560055490911603612d8557600580546001600160a01b0319166001600160a01b0384161790555b50505050565b604080516080810182526001600160a01b0386811680835260208084018681528486018981526000938452600d835286842054606087019081528c8616808652600b8552888620600a8087528a882080548952918752998720985189546001600160a01b0319169816979097178855925160018801559051600287015551600390950194909455928152929091528054909190612e2790613a71565b909155506001600160a01b0385166000908152600c602052604081208054839290612e539084906138f6565b9091555050604080516080810182526001600160a01b03871680825260208083018590528284018690526000918252600a905291909120546060820190612e9c90600190613a47565b90526001600160a01b038581166000818152600e60209081526040808320600d80845282852080548652918452828520885181546001600160a01b03191698169790971787558784015160018801559187015160028701556060909601516003909501949094559181529190528154612f1490613a71565b909155505050505050565b6001600160a01b038083166000818152600b60209081526040808320868452825280832081516080810183528154909616865260018101548684018190526002820154878401526003909101546060870152938352600c90915281208054909190612f8b908490613a47565b90915550506001600160a01b0383166000908152600a6020526040902054612fb590600190613a47565b821461315a576001600160a01b0383166000908152600b60209081526040808320600a9092528220548290612fec90600190613a47565b81526020019081526020016000206040518060800160405290816000820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200160018201548152602001600282015481526020016003820154815250509050604051806080016040528082600001516001600160a01b0316815260200182602001518152602001826040015181526020018260600151815250600b6000866001600160a01b03166001600160a01b03168152602001908152602001600020600085815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010155604082015181600201556060820151816003015590505082600e600083600001516001600160a01b03166001600160a01b0316815260200190815260200160002060008360600151815260200190815260200160002060030181905550505b6001600160a01b0383166000908152600b60209081526040808320600a90925282205490919061318c90600190613a47565b81526020808201929092526040908101600090812080546001600160a01b031916815560018101829055600281018290556003018190556001600160a01b0386168152600a909252812080549091906131e490613a5a565b90915550505050565b6001600160a01b03828116600090815260076020526040902054166001146132455760405162461bcd60e51b815260206004820152600b60248201526a41692c206154565743203160a81b6044820152606401610a97565b6001600160a01b03808316600081815260076020908152604080832080549587166001600160a01b031996871681179091558084526009835281842060088085528386208054875291855292852080549097169095179095559390915291909152546132b29060016138f6565b6001600160a01b0390911660009081526008602052604090205550565b60005460ff166133095760405162461bcd60e51b81526020600482015260056024820152642090382aa160d91b6044820152606401610a97565b6000613316836000610dd2565b90506000613325846001610dd2565b90506001600160a01b03821615612d855761334582848660026000611a68565b61334f82856132cf565b6001600160a01b03811615612d855761336781612aef565b612d858183612a20565b604051806080016040528060006001600160a01b031681526020016000815260200160008152602001600081525090565b80356001600160a01b03811681146133b957600080fd5b919050565b6000602082840312156133d057600080fd5b6120b3826133a2565b6000806000606084860312156133ee57600080fd5b6133f7846133a2565b95602085013595506040909401359392505050565b6000806040838503121561341f57600080fd5b613428836133a2565b9150613436602084016133a2565b90509250929050565b80516001600160a01b031682526020808201519083015260408082015190830152606090810151910152565b600061012082019050871515825286151560208301528560408301528460608301528360808301526134a060a083018461343f565b979650505050505050565b60006020808352835180602085015260005b818110156134d9578581018301518582016040015282016134bd565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806000806080858703121561351057600080fd5b613519856133a2565b966020860135965060408601359560600135945092505050565b60808101610df9828461343f565b60008083601f84011261355357600080fd5b50813567ffffffffffffffff81111561356b57600080fd5b60208301915083602082850101111561183557600080fd5b60008060006040848603121561359857600080fd5b6135a1846133a2565b9250602084013567ffffffffffffffff8111156135bd57600080fd5b6135c986828701613541565b9497909650939450505050565b600080604083850312156135e957600080fd5b6135f2836133a2565b946020939093013593505050565b841515815283151560208201526040810183905260e08101613625606083018461343f565b95945050505050565b600080600080600060a0868803121561364657600080fd5b61364f866133a2565b945061365d602087016133a2565b935061366b604087016133a2565b94979396509394606081013594506080013592915050565b6000806000806060858703121561369957600080fd5b6136a2856133a2565b9350602085013567ffffffffffffffff8111156136be57600080fd5b6136ca87828801613541565b90945092506136dd9050604086016133a2565b905092959194509250565b6000806000606084860312156136fd57600080fd5b613706846133a2565b9250613714602085016133a2565b9150604084013590509250925092565b600181811c9082168061373857607f821691505b60208210810361375857634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526010908201526f20b73a241d1037b7363c903b37ba32b960811b604082015260600190565b634e487b7160e01b600052604160045260246000fd5b601f8211156120fa576000816000526020600020601f850160051c810160208610156137c75750805b601f850160051c820191505b81811015612a18578281556001016137d3565b67ffffffffffffffff8311156137fe576137fe613788565b6138128361380c8354613724565b8361379e565b6000601f841160018114613846576000851561382e5750838201355b600019600387901b1c1916600186901b1783556138a0565b600083815260209020601f19861690835b828110156138775786850135825560209485019460019092019101613857565b50868210156138945760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610df957610df96138a7565b6000826138f157634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610df957610df96138a7565b600181815b8085111561394457816000190482111561392a5761392a6138a7565b8085161561393757918102915b93841c939080029061390e565b509250929050565b60008261395b57506001610df9565b8161396857506000610df9565b816001811461397e5760028114613988576139a4565b6001915050610df9565b60ff841115613999576139996138a7565b50506001821b610df9565b5060208310610133831016604e8410600b84101617156139c7575081810a610df9565b6139d18383613909565b80600019048211156139e5576139e56138a7565b029392505050565b60006120b3838361394c565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038416815260406020820181905260009061362590830184866139f9565b81810381811115610df957610df96138a7565b600081613a6957613a696138a7565b506000190190565b600060018201613a8357613a836138a7565b5060010190565b600060018060a01b03808716835260606020840152613aad6060840186886139f9565b91508084166040840152509594505050505056fea264697066735822122035115a9d87397f579fb6ddad42e5e0c0208b7897d3639281caa12dc1367ab86564736f6c63430008180033",
"sourceMap": "1054:27:18:-:0;;;-1:-1:-1;;1054:27:18;1077:4;1054:27;;;;;;1088:35;390:32902;1088:35;;390:32902;1088:35;;;-1:-1:-1;;;1088:35:18;;;;1077:4;1088:35;:::i;:::-;-1:-1:-1;1129:34:18;;;;;;;;;;;;-1:-1:-1;;;1129:34:18;;;;;;;;;;:::i;:::-;;426:80;;;;;;;;;-1:-1:-1;465:2:18;450:12;:17;498:1;477:18;:22;390:32902;;14:127:29;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:543::-;759:2;754:3;751:11;748:446;;;795:1;819:5;816:1;809:16;863:4;860:1;850:18;933:2;921:10;917:19;914:1;910:27;904:4;900:38;969:4;957:10;954:20;951:47;;;-1:-1:-1;992:4:29;951:47;1047:2;1042:3;1038:12;1035:1;1031:20;1025:4;1021:31;1011:41;;1102:82;1120:2;1113:5;1110:13;1102:82;;;1165:17;;;1146:1;1135:13;1102:82;;;1106:3;;;748:446;657:543;;;:::o;1376:1345::-;1496:10;;-1:-1:-1;;;;;1518:30:29;;1515:56;;;1551:18;;:::i;:::-;1580:97;1670:6;1630:38;1662:4;1656:11;1630:38;:::i;:::-;1624:4;1580:97;:::i;:::-;1732:4;;1789:2;1778:14;;1806:1;1801:663;;;;2508:1;2525:6;2522:89;;;-1:-1:-1;2577:19:29;;;2571:26;2522:89;-1:-1:-1;;1333:1:29;1329:11;;;1325:24;1321:29;1311:40;1357:1;1353:11;;;1308:57;2624:81;;1771:944;;1801:663;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1837:20:29;;;1955:236;1969:7;1966:1;1963:14;1955:236;;;2058:19;;;2052:26;2037:42;;2150:27;;;;2118:1;2106:14;;;;1985:19;;1955:236;;;1959:3;2219:6;2210:7;2207:19;2204:201;;;2280:19;;;2274:26;-1:-1:-1;;2363:1:29;2359:14;;;2375:3;2355:24;2351:37;2347:42;2332:58;2317:74;;2204:201;-1:-1:-1;;;;;2451:1:29;2435:14;;;2431:22;2418:36;;-1:-1:-1;1376:1345:29:o;:::-;390:32902:18;;;;;;",
"linkReferences": {}
},
"deployedBytecode": {
"object": "0x608060405234801561001057600080fd5b506004361061035b5760003560e01c80637ea67015116101d3578063c5ce031811610104578063dd88aa95116100a2578063ebf0c7171161007c578063ebf0c717146107d0578063eeaebe87146107e3578063fa2465f1146107f6578063ff8f07de1461080957600080fd5b8063dd88aa951461078a578063e414c4571461079d578063e614a68d146107c857600080fd5b8063cf6ed9f9116100de578063cf6ed9f914610751578063d5a6436114610489578063d6f497cd14610764578063d7b547f01461077757600080fd5b8063c5ce031814610718578063c68d6f611461072b578063c88464bf1461073e57600080fd5b8063a9895c0411610171578063b062aaec1161014b578063b062aaec146106c1578063b9aae95d146106ea578063bad69ace146106fd578063c389ccc01461071057600080fd5b8063a9895c041461069b578063ab1e7a78146106ae578063ab70b4c61461048957600080fd5b806393dac9d1116101ad57806393dac9d11461063057806395d89b4114610660578063a16877d514610668578063a2e64c391461069257600080fd5b80637ea6701514610601578063806df9591461060a578063825a38551461061d57600080fd5b806345ca25ed116102ad5780636a5e26501161024b5780636c02a931116102255780636c02a931146105cb57806370a08231146105d357806377a63f9b146105e65780637b61c320146105f957600080fd5b80636a5e2650146105885780636ae6f05f146105a55780636be22cd2146105b857600080fd5b8063519bf72d11610287578063519bf72d1461048957806359bf02a5146105415780635c68f16d1461056d57806360c69aa51461057557600080fd5b806345ca25ed146104e257806349bb27e0146104f55780634cefac581461051e57600080fd5b8063199cd8c01161031a57806337ba0eb1116102f457806337ba0eb11461047657806339273f59146104895780633a47ce831461049d5780633aaf189b146104b057600080fd5b8063199cd8c01461044657806327c06fd51461045b578063313ce5671461046e57600080fd5b8062a1efe514610360578062f71abc1461039c5780630520b5a4146103c757806306fdde03146103ec57806310839bf71461040157806315d4936a14610426575b600080fd5b61038961036e3660046133be565b6001600160a01b03166000908152600c602052604090205490565b6040519081526020015b60405180910390f35b6103896103aa3660046133d9565b50506001600160a01b03166000908152600a602052604090205490565b6103da6103d536600461340c565b61081c565b6040516103939695949392919061346b565b6103f461096b565b60405161039391906134ab565b6005546001600160a01b03165b6040516001600160a01b039091168152602001610393565b6104396104343660046134fa565b6109fd565b6040516103939190613533565b610459610454366004613583565b610a63565b005b6103896104693660046133be565b610bee565b600354610389565b61045961048436600461340c565b610cfb565b6103896104973660046133be565b50600090565b61040e6104ab3660046135d6565b610dd2565b6104c36104be3660046133be565b610dff565b604080516001600160a01b039093168352602083019190915201610393565b6104596104f0366004613583565b610e9f565b6103896105033660046133be565b6001600160a01b031660009081526008602052604090205490565b61053161052c36600461340c565b610f8a565b6040516103939493929190613600565b61040e61054f3660046133be565b6001600160a01b039081166000908152600760205260409020541690565b610459610fb4565b6104596105833660046133be565b610fcc565b6000546105959060ff1681565b6040519015158152602001610393565b6104596105b33660046135d6565b61106a565b6104596105c63660046133be565b611268565b6103f46113fd565b6103896105e13660046133be565b61148b565b6104396105f43660046134fa565b6114a9565b6103f461150f565b61038960045481565b6103f46106183660046133be565b61151c565b61038961062b3660046133be565b6115c8565b61064361063e36600461340c565b61164b565b604080519315158452602084019290925290820152606001610393565b6103f4611704565b61067b61067636600461340c565b611713565b604080519215158352602083019190915201610393565b61038960035481565b6105316106a936600461340c565b61183c565b6106436106bc36600461340c565b611853565b6103896106cf3660046133be565b6001600160a01b03166000908152600f602052604090205490565b6103da6106f836600461340c565b611907565b61045961070b36600461362e565b611a68565b610459611db7565b61045961072636600461340c565b611de1565b61040e6107393660046135d6565b611ffa565b61045961074c3660046133be565b6120ba565b61064361075f36600461340c565b6120ff565b6104596107723660046133be565b6121f2565b6104596107853660046133be565b612232565b61067b61079836600461340c565b6123dd565b6103896107ab3660046133d9565b50506001600160a01b03166000908152600d602052604090205490565b600454610389565b60055461040e906001600160a01b031681565b6104596107f1366004613683565b612409565b6104596108043660046136e8565b612630565b6104596108173660046133be565b612721565b600080600080600061082c613371565b610836888861164b565b9197509450925085158061084957508284145b15610895576000806000806000604051806080016040528060006001600160a01b0316815260200160008152602001600081526020016000815250955095509550955095509550610961565b60005b6001600160a01b0389166000908152600a6020526040902054811015610931576001600160a01b03808a166000908152600b6020908152604080832085845282529182902082516080810184528154851680825260018301549382019390935260028201549381019390935260030154606083015290918a16900361092857600197508796509092509050610961565b50600101610898565b50506040805160808101825260008082526020820181905291810182905260608101829052600196509094508491505b9295509295509295565b60606001805461097a90613724565b80601f01602080910402602001604051908101604052809291908181526020018280546109a690613724565b80156109f35780601f106109c8576101008083540402835291602001916109f3565b820191906000526020600020905b8154815290600101906020018083116109d657829003601f168201915b5050505050905090565b610a05613371565b506001600160a01b038085166000908152600e60209081526040808320858452825291829020825160808101845281549094168452600181015491840191909152600281015491830191909152600301546060820152949350505050565b600054839060ff16610aa057336001600160a01b03821614610aa05760405162461bcd60e51b8152600401610a979061375e565b60405180910390fd5b6001600160a01b038481166000908152600760205260409020541615610af35760405162461bcd60e51b81526020600482015260086024820152672090352a20a9101960c11b6044820152606401610a97565b6005546001600160a01b031615610b375760405162461bcd60e51b815260206004820152600860248201526741206a544152203360c01b6044820152606401610a97565b6001600160a01b0384166000908152600660205260409020610b5a8385836137e6565b505050506001600160a01b031660008181526007602090815260408220805460016001600160a01b03199182168117909255600580548216861790557fb878081ec3704a5de178258b7387a20f00443d893bc5640352b547081b2d5c16805490911690941790935590829052600890527fad67d757c34507f157cacfa2e3153e9f260a2244f30428821be7be64587ac55f55565b6000806001600160a01b038316610c085750600092915050565b60005b6001600160a01b0384166000908152600d6020526040902054811015610cbf576001600160a01b038085166000908152600e60209081526040808320858452825280832081516080810183528154909516808652600182015486850190815260028301548785015260039092015460608701528452600c9092529091205490518251610c9690610bee565b610ca091906138bd565b610caa91906138d4565b610cb490846138f6565b925050600101610c0b565b50600354610cce90600a6139ed565b610cd890826138f6565b6001600160a01b039093166000908152600f602052604090208390555090919050565b600054829060ff16610d2f57336001600160a01b03821614610d2f5760405162461bcd60e51b8152600401610a979061375e565b6000806000610d3e868661183c565b5092509250925081610d7c5760405162461bcd60e51b8152602060048201526007602482015266209039222b101960c91b6044820152606401610a97565b610d8686826127ce565b604080516001600160a01b038089168252871660208201527f279965e71edc78fe4a286c30591ffcb9f45817389fb57d4f2d5d2dbbd20c5b1991015b60405180910390a1505050505050565b6001600160a01b038083166000908152600960209081526040808320858452909152902054165b92915050565b6001600160a01b038181166000908152600760205260408120549091829116610e565760405162461bcd60e51b815260206004820152600960248201526841692c20665252203160b81b6044820152606401610a97565b508190506000805b600454821015610e9957506001600160a01b0380831660009081526007602052604090205416600019810115610e9957915060010181610e5e565b50915091565b600054839060ff16610ed357336001600160a01b03821614610ed35760405162461bcd60e51b8152600401610a979061375e565b6001600160a01b0384811660009081526007602052604090205416610f255760405162461bcd60e51b815260206004820152600860248201526741206a544152203560c01b6044820152606401610a97565b6001600160a01b0384166000908152600660205260409020610f488385836137e6565b507f0a68bea90481253adfebc561eb239c93e477569441a54caca19db9b0013393c6848484604051610f7c93929190613a22565b60405180910390a150505050565b6000806000610f97613371565b610fa18686611907565b949b939a50985092965090945050505050565b60005460ff1615610fca576000805460ff191690555b565b6001600160a01b0381811660009081526007602052604090205416610fee5750565b6001600160a01b0381166000908152601060205260408120805460ff191690555b6001600160a01b038216600090815260086020526040902054811015611066576001600160a01b03808316600090815260096020908152604080832085845290915290205461105e9116610fcc565b60010161100f565b5050565b60005460ff166110a85760405162461bcd60e51b815260206004820152600960248201526841207553524456203160b81b6044820152606401610a97565b6001600160a01b0382166000908152600d60205260409020546110cd90600190613a47565b81146111d6576001600160a01b0382166000908152600e60209081526040808320600d909252822054829061110490600190613a47565b81526020808201929092526040908101600090812082516080808201855282546001600160a01b039081168352600180850154848901908152600280870154868a0190815260039788015460608089019182528b519788018c528851871688529351878d019081529151878c0190815281519488019485528f87168b52600e8d528b8b208f8c528d528b8b20975188546001600160a01b0319169088161788559151948701949094555190850155519285019290925591519091168352600b8552838320905183529093522001829055505b6001600160a01b0382166000908152600e60209081526040808320600d90925282205490919061120890600190613a47565b81526020808201929092526040908101600090812080546001600160a01b031916815560018101829055600281018290556003018190556001600160a01b0385168152600d9092528120805490919061126090613a5a565b909155505050565b600054819060ff1661129c57336001600160a01b0382161461129c5760405162461bcd60e51b8152600401610a979061375e565b6001600160a01b0380831660009081526007602052604090205416806112ed5760405162461bcd60e51b815260206004820152600660248201526541206c54203360d01b6044820152606401610a97565b6000196001600160a01b038216016113305760405162461bcd60e51b815260206004820152600660248201526510481b15080d60d21b6044820152606401610a97565b6001600160a01b038082166000908152600760205260408120549091169061135785610bee565b9050600061136484610bee565b905080821161139e5760405162461bcd60e51b815260206004820152600660248201526541206c54203560d01b6044820152606401610a97565b6113ac848588600080611a68565b6113bb86848660026000611a68565b6113c48661283f565b6040516001600160a01b03871681527f04be1b56fbf390324cfb0745416a4cc51f51253b68c570ec1e696c1044b2ddcf90602001610dc2565b6001805461140a90613724565b80601f016020809104026020016040519081016040528092919081815260200182805461143690613724565b80156114835780601f1061145857610100808354040283529160200191611483565b820191906000526020600020905b81548152906001019060200180831161146657829003601f168201915b505050505081565b6001600160a01b0381166000908152600f6020526040812054610df9565b6114b1613371565b506001600160a01b038085166000908152600b60209081526040808320858452825291829020825160808101845281549094168452600181015491840191909152600281015491830191909152600301546060820152949350505050565b6002805461140a90613724565b6001600160a01b038116600090815260066020526040902080546060919061154390613724565b80601f016020809104026020016040519081016040528092919081815260200182805461156f90613724565b80156115bc5780601f10611591576101008083540402835291602001916115bc565b820191906000526020600020905b81548152906001019060200180831161159f57829003601f168201915b50505050509050919050565b6001600160a01b038181166000908152600760205260408120549091166115f157506000919050565b6001600160a01b03828116600090815260076020526040902054166000190161161c57506000919050565b6001600160a01b0380831660009081526007602052604090205461164091166115c8565b610df99060016138f6565b6001600160a01b0382811660009081526007602052604081205490918291829116158061169057506001600160a01b0384811660009081526007602052604090205416155b156116a3575060009150819050806116fd565b60006116af86866123dd565b9094509050836116ca576000806000935093509350506116fd565b60006116d68783611ffa565b905060006116e48288611713565b91508690506116f384836138f6565b9096509450925050505b9250925092565b60606002805461097a90613724565b600080826001600160a01b0316846001600160a01b03160361173b5750600190506000611835565b6001600160a01b0384811660009081526007602052604090205416158061177a57506001600160a01b0383811660009081526007602052604090205416155b1561178a57506000905080611835565b6001600160a01b0384811660009081526007602052604090205416600114806117cd57506001600160a01b03838116600090815260076020526040902054166001145b156117dd57506000905080611835565b6001600160a01b0380851660009081526007602052604080822054868416835291205461180e929182169116611713565b9092509050811561182e57600161182582826138f6565b91509150611835565b5060009050805b9250929050565b6000806000611849613371565b610fa1868661081c565b6001600160a01b0382811660009081526007602052604081205490918291829116158061189857506001600160a01b0384811660009081526007602052604090205416155b156118ab575060009150819050806116fd565b6000806000806000806118be8b8b6120ff565b919750945090506118cf8a8c6120ff565b919650935091508580156118e05750845b98506118ec81856138f6565b97506118f882846138f6565b96505050505050509250925092565b6000806000806000611917613371565b60008060006119268b8b61164b565b9194509250905082158061193957508082145b15611988576000806000806000604051806080016040528060006001600160a01b0316815260200160008152602001600081526020016000815250985098509850985098509850505050610961565b60005b6001600160a01b038b166000908152600d6020526040902054811015611a2b576001600160a01b03808c166000908152600e6020908152604080832085845282529182902082516080810184528154851680825260018301549382019390935260028201549381019390935260030154606083015290918e169003611a225760019a508a9950929750909550935091506109619050565b5060010161198b565b50604080516080810182526000808252602082018190529181018290526060810182905260019d919c50929a509098508a97509095509350505050565b60005460ff16611ab05760405162461bcd60e51b815260206004820152601360248201527220b73a241d1037b7363c903ab73637b1b5b2b960691b6044820152606401610a97565b6305f5e0ff6001600160a01b038416611afa576001600160a01b038116600090815260076020526040902080546001600160a01b0319166001179055611af68186612a20565b8093505b6001600160a01b0386166000908152600a6020526040902054805b8015611c42576001600160a01b0388166000908152600b6020526040812081611b3f600185613a47565b815260208082019290925260409081016000908120825160808101845281546001600160a01b03168082526001830154958201959095526002820154938101939093526003015460608301529092509081908190611b9e908b9061164b565b92509250925082611bc657611bbd8c611bb8600188613a47565b6127ce565b50505050611c32565b6001600160a01b038c166000908152600b602052604081208391611beb600189613a47565b81526020808201929092526040908101600090812060029081019490945587516001600160a01b03168152600e835281812060608901518252909252902001819055505050505b611c3b81613a5a565b9050611b15565b50506001600160a01b0386166000908152600d6020526040902054805b8015611d8b576001600160a01b0388166000908152600e6020526040812081611c89600185613a47565b815260208082019290925260409081016000908120825160808101845281546001600160a01b03168082526001830154958201959095526002820154938101939093526003015460608301529092509081908190611ce7908b61164b565b92509250925082611d0f57611d068c611d01600188613a47565b612a7e565b50505050611d7b565b6001600160a01b038c166000908152600e602052604081208291611d34600189613a47565b81526020808201929092526040908101600090812060029081019490945587516001600160a01b03168152600b835281812060608901518252909252902001829055505050505b611d8481613a5a565b9050611c5f565b50816001600160a01b0316856001600160a01b031603611dae57611dae82612aef565b50505050505050565b600554611dcc906001600160a01b0316610fcc565b600554610fca906001600160a01b0316612232565b600054829060ff16611e1557336001600160a01b03821614611e155760405162461bcd60e51b8152600401610a979061375e565b6001600160a01b0383811660009081526007602052604090205416611e665760405162461bcd60e51b8152602060048201526007602482015266209036aa2b101960c91b6044820152606401610a97565b6001600160a01b0382811660009081526007602052604090205416611eb75760405162461bcd60e51b815260206004820152600760248201526641206d5456203360c81b6044820152606401610a97565b6001600160a01b038216600090815260086020526040902054600211611f095760405162461bcd60e51b815260206004820152600760248201526610481b5515880d60ca1b6044820152606401610a97565b6000806000611f188686611853565b6001600160a01b03808a16600090815260076020526040902054939650919450925016611f4487612c5e565b82158015611f4f5750835b15611f8457806001600160a01b0316611f688784611ffa565b6001600160a01b031603611f8457611f81600183613a47565b91505b508215611f9e57611f99868660008585611a68565b611fb0565b611fa7866121f2565b611fb0866120ba565b611fba8686612a20565b604080516001600160a01b038089168252871660208201527fc53fde28a3da784bd628fee9896334592fb5ba4b6ebc5f7259df043b0d3012479101610dc2565b60008160000361200b575081610df9565b6001600160a01b03838116600090815260076020526040902054166000190161203657506001610df9565b6001600160a01b03838116600090815260076020526040902054166120895760405162461bcd60e51b815260206004820152600960248201526841692c20664e50203160b81b6044820152606401610a97565b6001600160a01b038084166000908152600760205260409020546120b39116610739600185613a47565b9392505050565b6001600160a01b0381166000908152600d6020526040902054805b80156120fa576120ea83611d01600184613a47565b6120f381613a5a565b90506120d5565b505050565b6001600160a01b0382811660009081526007602052604081205490918291829116158061214457506001600160a01b0384811660009081526007602052604090205416155b15612157575060009150819050806116fd565b600061216286610dff565b935090508460005b8481116121e057826001600160a01b0316826001600160a01b031603612198576001955092506116fd915050565b6001600160a01b0391821660009081526007602052604090205490911690816121ce5760008060009550955095505050506116fd565b806121d881613a71565b91505061216a565b50600097889750879650945050505050565b6001600160a01b0381166000908152600a6020526040902054805b80156120fa5761222283611bb8600184613a47565b61222b81613a5a565b905061220d565b6001600160a01b03818116600090815260076020526040902054166122545750565b6001600160a01b03811660009081526010602052604090205460ff16156122785750565b60005b6001600160a01b0382166000908152600860205260409020548110156122d2576001600160a01b0380831660009081526009602090815260408083208584529091529020546122ca9116612232565b60010161227b565b506000805b6001600160a01b0383166000908152600d602052604090205481101561238e576001600160a01b038084166000908152600e602090815260408083208584528252808320815160808101835281548616808252600183015482860190815260028401548386015260039093015460608301528552600c845282852054915181519096168552600f909352922054909261236f916138bd565b61237991906138d4565b61238390846138f6565b9250506001016122d7565b5060035461239d90600a6139ed565b6123a790826138f6565b6001600160a01b039092166000908152600f60209081526040808320949094556010905291909120805460ff1916600117905550565b6000806000806123ed86866120ff565b919550925090506123fe8183613a47565b925050509250929050565b600054849060ff1661243d57336001600160a01b0382161461243d5760405162461bcd60e51b8152600401610a979061375e565b6001600160a01b03858116600090815260076020526040902054161561248e5760405162461bcd60e51b81526020600482015260066024820152652090362a101960d11b6044820152606401610a97565b6001600160a01b03828116600090815260076020526040902054166124de5760405162461bcd60e51b815260206004820152600660248201526541206c54203360d01b6044820152606401610a97565b6001600160a01b03821660009081526008602052604090205460021161252f5760405162461bcd60e51b815260206004820152600660248201526510481b15080d60d21b6044820152606401610a97565b6001600160a01b03858116600090815260076020908152604080832080546001600160a01b0319169487169490941790935560069052206125718486836137e6565b506001600160a01b03828116600081815260096020908152604080832060088084528285208054865291845291842080546001600160a01b031916968c16969096179095559290915252546125c79060016138f6565b6001600160a01b0383166000908152600860205260409020556125ec85836001612630565b7fca7e50aa547fb9bcc29db85b16153299ff137fdb6e0818d13795021889d3ddaa858585856040516126219493929190613a8a565b60405180910390a15050505050565b600054839060ff1661266457336001600160a01b038216146126645760405162461bcd60e51b8152600401610a979061375e565b600080600080612674888861081c565b50509350935093509350838015612689575082155b6126bf5760405162461bcd60e51b8152602060048201526007602482015266209030a22b101960c91b6044820152606401610a97565b6126cc888884848a612d8b565b604080516001600160a01b03808b168252891660208201529081018790527f7ac00444e3428c19fc2364070529d9672439c0dcc082b6d698337002f325001d9060600160405180910390a15050505050505050565b600054819060ff1661275557336001600160a01b038216146127555760405162461bcd60e51b8152600401610a979061375e565b61275e826121f2565b612767826120ba565b61277082612c5e565b6001600160a01b03821660008181526007602090815260409182902080546001600160a01b031916905590519182527fc6e5f8deeecea7a16e6150f79d6da5196e1861c255eb682de9e28576f0915f45910160405180910390a15050565b6001600160a01b038083166000908152600b6020908152604080832085845282529182902082516080810184528154909416845260018101549184019190915260028101549183019190915260030154606082015261282d8383612f1f565b6120fa8160000151826060015161106a565b6001600160a01b0380821660009081526007602052604090205416806128955760405162461bcd60e51b815260206004820152600b60248201526a41692c207354565750203160a81b6044820152606401610a97565b6000196001600160a01b038216016128dd5760405162461bcd60e51b815260206004820152600b60248201526a20b4961039aa2b2ba8101960a91b6044820152606401610a97565b6001600160a01b038082166000908152600760205260409020541661290183612aef565b816001600160a01b031661291d6005546001600160a01b031690565b6001600160a01b03160361294b57600580546001600160a01b0319166001600160a01b038516179055612954565b61295482612aef565b6001600160a01b038281166000908152600960208181526040808420848052825280842054888616855292825280842084805290915280832054600184529220549083169291821691166129a886856131ed565b6129b285876131ed565b6001600160a01b038316156129d4576129ca83612aef565b6129d483876131ed565b6001600160a01b038216156129f6576129ec82612aef565b6129f682866131ed565b6001600160a01b03811615612a1857612a0e81612aef565b612a1881866131ed565b505050505050565b6001600160a01b038116600090815260086020526040902054600211612a745760405162461bcd60e51b815260206004820152600960248201526820b4961030a22b101960b91b6044820152606401610a97565b61106682826131ed565b6001600160a01b038083166000908152600e60209081526040808320858452825291829020825160808101845281549094168452600181015491840191909152600281015491830191909152600301546060820152612add838361106a565b6120fa81600001518260600151612f1f565b6001600160a01b0380821660008181526007602090815260408083205485168084526009835281842084805290925282205490939192911614612b33576001612b36565b60005b6001600160a01b0383166000908152600960209081526040808320600890925282205460ff93909316935091612b6e90600190613a47565b815260208082019290925260409081016000908120546001600160a01b038681168084526009865284842087855280875285852080546001600160a01b03191693909416929092179092559082526008909352908120549091908290612bd690600190613a47565b81526020808201929092526040908101600090812080546001600160a01b0319166001600160a01b0395861617905592851683526008909152902054612c1e90600190613a47565b6001600160a01b039283166000908152600860209081526040808320939093559490931683526007909352502080546001600160a01b0319166001179055565b60005460ff16612c995760405162461bcd60e51b8152602060048201526006602482015265209034262b2160d11b6044820152606401610a97565b6001600160a01b038181166000908152600760209081526040808320546009835281842084805290925280832054600184529220549083169291821691168115612d2b57612cec82848660026000611a68565b612cf682856132cf565b6001600160a01b03811615612d1857612d0e81612aef565b612d188183612a20565b612d2182612aef565b612d2b82846131ed565b612d3484612aef565b6001600160a01b03808516600081815260076020526040902080546001600160a01b031916600117905560055490911603612d8557600580546001600160a01b0319166001600160a01b0384161790555b50505050565b604080516080810182526001600160a01b0386811680835260208084018681528486018981526000938452600d835286842054606087019081528c8616808652600b8552888620600a8087528a882080548952918752998720985189546001600160a01b0319169816979097178855925160018801559051600287015551600390950194909455928152929091528054909190612e2790613a71565b909155506001600160a01b0385166000908152600c602052604081208054839290612e539084906138f6565b9091555050604080516080810182526001600160a01b03871680825260208083018590528284018690526000918252600a905291909120546060820190612e9c90600190613a47565b90526001600160a01b038581166000818152600e60209081526040808320600d80845282852080548652918452828520885181546001600160a01b03191698169790971787558784015160018801559187015160028701556060909601516003909501949094559181529190528154612f1490613a71565b909155505050505050565b6001600160a01b038083166000818152600b60209081526040808320868452825280832081516080810183528154909616865260018101548684018190526002820154878401526003909101546060870152938352600c90915281208054909190612f8b908490613a47565b90915550506001600160a01b0383166000908152600a6020526040902054612fb590600190613a47565b821461315a576001600160a01b0383166000908152600b60209081526040808320600a9092528220548290612fec90600190613a47565b81526020019081526020016000206040518060800160405290816000820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200160018201548152602001600282015481526020016003820154815250509050604051806080016040528082600001516001600160a01b0316815260200182602001518152602001826040015181526020018260600151815250600b6000866001600160a01b03166001600160a01b03168152602001908152602001600020600085815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010155604082015181600201556060820151816003015590505082600e600083600001516001600160a01b03166001600160a01b0316815260200190815260200160002060008360600151815260200190815260200160002060030181905550505b6001600160a01b0383166000908152600b60209081526040808320600a90925282205490919061318c90600190613a47565b81526020808201929092526040908101600090812080546001600160a01b031916815560018101829055600281018290556003018190556001600160a01b0386168152600a909252812080549091906131e490613a5a565b90915550505050565b6001600160a01b03828116600090815260076020526040902054166001146132455760405162461bcd60e51b815260206004820152600b60248201526a41692c206154565743203160a81b6044820152606401610a97565b6001600160a01b03808316600081815260076020908152604080832080549587166001600160a01b031996871681179091558084526009835281842060088085528386208054875291855292852080549097169095179095559390915291909152546132b29060016138f6565b6001600160a01b0390911660009081526008602052604090205550565b60005460ff166133095760405162461bcd60e51b81526020600482015260056024820152642090382aa160d91b6044820152606401610a97565b6000613316836000610dd2565b90506000613325846001610dd2565b90506001600160a01b03821615612d855761334582848660026000611a68565b61334f82856132cf565b6001600160a01b03811615612d855761336781612aef565b612d858183612a20565b604051806080016040528060006001600160a01b031681526020016000815260200160008152602001600081525090565b80356001600160a01b03811681146133b957600080fd5b919050565b6000602082840312156133d057600080fd5b6120b3826133a2565b6000806000606084860312156133ee57600080fd5b6133f7846133a2565b95602085013595506040909401359392505050565b6000806040838503121561341f57600080fd5b613428836133a2565b9150613436602084016133a2565b90509250929050565b80516001600160a01b031682526020808201519083015260408082015190830152606090810151910152565b600061012082019050871515825286151560208301528560408301528460608301528360808301526134a060a083018461343f565b979650505050505050565b60006020808352835180602085015260005b818110156134d9578581018301518582016040015282016134bd565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806000806080858703121561351057600080fd5b613519856133a2565b966020860135965060408601359560600135945092505050565b60808101610df9828461343f565b60008083601f84011261355357600080fd5b50813567ffffffffffffffff81111561356b57600080fd5b60208301915083602082850101111561183557600080fd5b60008060006040848603121561359857600080fd5b6135a1846133a2565b9250602084013567ffffffffffffffff8111156135bd57600080fd5b6135c986828701613541565b9497909650939450505050565b600080604083850312156135e957600080fd5b6135f2836133a2565b946020939093013593505050565b841515815283151560208201526040810183905260e08101613625606083018461343f565b95945050505050565b600080600080600060a0868803121561364657600080fd5b61364f866133a2565b945061365d602087016133a2565b935061366b604087016133a2565b94979396509394606081013594506080013592915050565b6000806000806060858703121561369957600080fd5b6136a2856133a2565b9350602085013567ffffffffffffffff8111156136be57600080fd5b6136ca87828801613541565b90945092506136dd9050604086016133a2565b905092959194509250565b6000806000606084860312156136fd57600080fd5b613706846133a2565b9250613714602085016133a2565b9150604084013590509250925092565b600181811c9082168061373857607f821691505b60208210810361375857634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526010908201526f20b73a241d1037b7363c903b37ba32b960811b604082015260600190565b634e487b7160e01b600052604160045260246000fd5b601f8211156120fa576000816000526020600020601f850160051c810160208610156137c75750805b601f850160051c820191505b81811015612a18578281556001016137d3565b67ffffffffffffffff8311156137fe576137fe613788565b6138128361380c8354613724565b8361379e565b6000601f841160018114613846576000851561382e5750838201355b600019600387901b1c1916600186901b1783556138a0565b600083815260209020601f19861690835b828110156138775786850135825560209485019460019092019101613857565b50868210156138945760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610df957610df96138a7565b6000826138f157634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610df957610df96138a7565b600181815b8085111561394457816000190482111561392a5761392a6138a7565b8085161561393757918102915b93841c939080029061390e565b509250929050565b60008261395b57506001610df9565b8161396857506000610df9565b816001811461397e5760028114613988576139a4565b6001915050610df9565b60ff841115613999576139996138a7565b50506001821b610df9565b5060208310610133831016604e8410600b84101617156139c7575081810a610df9565b6139d18383613909565b80600019048211156139e5576139e56138a7565b029392505050565b60006120b3838361394c565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038416815260406020820181905260009061362590830184866139f9565b81810381811115610df957610df96138a7565b600081613a6957613a696138a7565b506000190190565b600060018201613a8357613a836138a7565b5060010190565b600060018060a01b03808716835260606020840152613aad6060840186886139f9565b91508084166040840152509594505050505056fea264697066735822122035115a9d87397f579fb6ddad42e5e0c0208b7897d3639281caa12dc1367ab86564736f6c63430008180033",
"sourceMap": "390:32902:18:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32564:134;;;;;;:::i;:::-;-1:-1:-1;;;;;32662:29:18;32636:7;32662:29;;;:22;:29;;;;;;;32564:134;;;;529:25:29;;;517:2;502:18;32564:134:18;;;;;;;;32249:140;;;;;;:::i;:::-;-1:-1:-1;;;;;;;32359:23:18;32333:7;32359:23;;;:16;:23;;;;;;;32249:140;15482:779;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;2175:85::-;;;:::i;:::-;;;;;;;:::i;31132:78::-;31199:4;;-1:-1:-1;;;;;31199:4:18;31132:78;;;-1:-1:-1;;;;;2796:32:29;;;2778:51;;2766:2;2751:18;31132:78:18;2632:203:29;33121:169:18;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5875:387::-;;;;;;:::i;:::-;;:::i;:::-;;13335:624;;;;;;:::i;:::-;;:::i;2083:86::-;2150:12;;2083:86;;12248:347;;;;;;:::i;:::-;;:::i;32026:105::-;;;;;;:::i;:::-;-1:-1:-1;32097:7:18;;32026:105;31853:146;;;;;;:::i;:::-;;:::i;7275:476::-;;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;4784:32:29;;;4766:51;;4848:2;4833:18;;4826:34;;;;4739:18;7275:476:18;4592:274:29;6268:236:18;;;;;;:::i;:::-;;:::i;31717:130::-;;;;;;:::i;:::-;-1:-1:-1;;;;;31813:27:18;31787:7;31813:27;;;:16;:27;;;;;;;31717:130;17493:261;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;31601:110::-;;;;;;:::i;:::-;-1:-1:-1;;;;;31689:15:18;;;31663:7;31689:15;;;:8;:15;;;;;;;;31601:110;765:98;;;:::i;13965:347::-;;;;;;:::i;:::-;;:::i;1054:27::-;;;;;;;;;;;;5523:14:29;;5516:22;5498:41;;5486:2;5471:18;1054:27:18;5358:187:29;19928:825:18;;;;;;:::i;:::-;;:::i;28663:641::-;;;;;;:::i;:::-;;:::i;1088:35::-;;;:::i;2361:109::-;;;;;;:::i;:::-;;:::i;32395:163::-;;;;;;:::i;:::-;;:::i;1129:34::-;;;:::i;1290:33::-;;;;;;31468:105;;;;;;:::i;:::-;;:::i;12785:225::-;;;;;;:::i;:::-;;:::i;9944:668::-;;;;;;:::i;:::-;;:::i;:::-;;;;5771:14:29;;5764:22;5746:41;;5818:2;5803:18;;5796:34;;;;5846:18;;;5839:34;5734:2;5719:18;9944:668:18;5550:329:29;2266:89:18;;;:::i;9177:620::-;;;;;;:::i;:::-;;:::i;:::-;;;;6077:14:29;;6070:22;6052:41;;6124:2;6109:18;;6102:34;;;;6025:18;9177:620:18;5884:258:29;1170:27:18;;;;;;16267:263;;;;;;:::i;:::-;;:::i;10618:849::-;;;;;;:::i;:::-;;:::i;31352:110::-;;;;;;:::i;:::-;-1:-1:-1;;;;;31438:17:18;31412:7;31438:17;;;:10;:17;;;;;;;31352:110;16536:865;;;;;;:::i;:::-;;:::i;23320:2055::-;;;;;;:::i;:::-;;:::i;15184:132::-;;;:::i;29430:1473::-;;;;;;:::i;:::-;;:::i;6712:437::-;;;;;;:::i;:::-;;:::i;21632:223::-;;;;;;:::i;:::-;;:::i;7974:786::-;;;;;;:::i;:::-;;:::i;21412:214::-;;;;;;:::i;:::-;;:::i;14379:799::-;;;;;;:::i;:::-;;:::i;8766:286::-;;;;;;:::i;:::-;;:::i;32957:158::-;;;;;;:::i;:::-;-1:-1:-1;;;;;;;33082:26:18;33056:7;33082:26;;;:15;:26;;;;;;;32957:158;31216:103;31294:18;;31216:103;;1421:19;;;;;-1:-1:-1;;;;;1421:19:18;;;5215:602;;;;;;:::i;:::-;;:::i;11752:387::-;;;;;;:::i;:::-;;:::i;28400:257::-;;;;;;:::i;:::-;;:::i;15482:779::-;15608:12;15622:10;15634:13;15649;15664:15;15681:22;;:::i;:::-;15745:42;15770:5;15777:9;15745:24;:42::i;:::-;15719:68;;-1:-1:-1;15719:68:18;-1:-1:-1;15719:68:18;-1:-1:-1;15803:8:18;;;15802:30;;;15826:5;15817;:14;15802:30;15798:121;;;15856:5;15863;15870:1;15873;15876;15879:28;;;;;;;;15895:1;-1:-1:-1;;;;;15879:28:18;;;;;15899:1;15879:28;;;;15902:1;15879:28;;;;15905:1;15879:28;;;15848:60;;;;;;;;;;;;;;15798:121;15934:9;15929:248;-1:-1:-1;;;;;15953:23:18;;;;;;:16;:23;;;;;;15949:27;;15929:248;;;-1:-1:-1;;;;;16023:18:18;;;15997:23;16023:18;;;:11;:18;;;;;;;;:21;;;;;;;;;15997:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16062:24;;;;16058:109;;16114:4;;-1:-1:-1;16114:4:18;;-1:-1:-1;16140:1:18;;-1:-1:-1;16143:8:18;-1:-1:-1;16106:46:18;;16058:109;-1:-1:-1;15978:3:18;;15929:248;;;-1:-1:-1;;16225:28:18;;;;;;;;16201:5;16225:28;;;;;;;;;;;;;;;;;;;;;16195:4;;-1:-1:-1;16201:5:18;;-1:-1:-1;16201:5:18;;-1:-1:-1;15482:779:18;;;;;;;;;:::o;2175:85::-;2212:13;2244:9;2237:16;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2175:85;:::o;33121:169::-;33220:14;;:::i;:::-;-1:-1:-1;;;;;;33253:21:18;;;;;;;:10;:21;;;;;;;;:30;;;;;;;;;33246:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33121:169;;;;;;:::o;5875:387::-;561:8;;5958:5;;561:8;;556:88;;593:10;-1:-1:-1;;;;;593:19:18;;;585:48;;;;-1:-1:-1;;;585:48:18;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;5983:15:18;;::::1;6010:1;5983:15:::0;;;:8:::1;:15;::::0;;;;;::::1;:29:::0;5975:50:::1;;;::::0;-1:-1:-1;;;5975:50:18;;8453:2:29;5975:50:18::1;::::0;::::1;8435:21:29::0;8492:1;8472:18;;;8465:29;-1:-1:-1;;;8510:18:29;;;8503:38;8558:18;;5975:50:18::1;8251:331:29::0;5975:50:18::1;6043:4;::::0;-1:-1:-1;;;;;6043:4:18::1;:18:::0;6035:39:::1;;;::::0;-1:-1:-1;;;6035:39:18;;8789:2:29;6035:39:18::1;::::0;::::1;8771:21:29::0;8828:1;8808:18;;;8801:29;-1:-1:-1;;;8846:18:29;;;8839:38;8894:18;;6035:39:18::1;8587:331:29::0;6035:39:18::1;-1:-1:-1::0;;;;;6085:12:18;::::1;;::::0;;;:5:::1;:12;::::0;;;;:24:::1;6100:9:::0;;6085:12;:24:::1;:::i;:::-;-1:-1:-1::0;;;;;;;;;6119:15:18::1;;::::0;;;:8:::1;:15;::::0;;;;;;:28;;6145:1:::1;-1:-1:-1::0;;;;;;6119:28:18;;::::1;::::0;::::1;::::0;;;6157:4:::1;:12:::0;;;::::1;::::0;::::1;::::0;;6179:26;:34;;;;::::1;::::0;;::::1;::::0;;;6223:28;;;;:16:::1;:28:::0;;;:32;5875:387::o;13335:624::-;13395:7;;-1:-1:-1;;;;;13455:19:18;;13451:33;;-1:-1:-1;13483:1:18;;13335:624;-1:-1:-1;;13335:624:18:o;13451:33::-;13500:13;13495:297;-1:-1:-1;;;;;13527:22:18;;;;;;:15;:22;;;;;;13519:30;;13495:297;;;-1:-1:-1;;;;;13600:17:18;;;13574:23;13600:17;;;:10;:17;;;;;;;;:24;;;;;;;;13574:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13746:35;;:22;:35;;;;;;;13710:15;;13694:11;;13674:32;;:19;:32::i;:::-;:52;;;;:::i;:::-;13673:108;;;;:::i;:::-;13638:143;;;;:::i;:::-;;-1:-1:-1;;13551:7:18;;13495:297;;;-1:-1:-1;13863:12:18;;13857:18;;:2;:18;:::i;:::-;13838:37;;;;:::i;:::-;-1:-1:-1;;;;;13885:17:18;;;;;;;:10;:17;;;;;:35;;;-1:-1:-1;13838:37:18;;13335:624;-1:-1:-1;13335:624:18:o;12248:347::-;561:8;;12322:5;;561:8;;556:88;;593:10;-1:-1:-1;;;;;593:19:18;;;585:48;;;;-1:-1:-1;;;585:48:18;;;;;;;:::i;:::-;12376:12:::1;12390:10:::0;12402:12:::1;12420:36;12439:5;12446:9;12420:18;:36::i;:::-;12375:81;;;;;;;12474:5;12466:25;;;::::0;-1:-1:-1;;;12466:25:18;;13338:2:29;12466:25:18::1;::::0;::::1;13320:21:29::0;13377:1;13357:18;;;13350:29;-1:-1:-1;;;13395:18:29;;;13388:37;13442:18;;12466:25:18::1;13136:330:29::0;12466:25:18::1;12502:34;12524:5;12531:4;12502:21;:34::i;:::-;12552:36;::::0;;-1:-1:-1;;;;;13701:15:29;;;13683:34;;13753:15;;13748:2;13733:18;;13726:43;12552:36:18::1;::::0;13618:18:29;12552:36:18::1;;;;;;;;12329:266;;;12248:347:::0;;;:::o;31853:146::-;-1:-1:-1;;;;;31961:22:18;;;31935:7;31961:22;;;:11;:22;;;;;;;;:31;;;;;;;;;;31853:146;;;;;:::o;7275:476::-;-1:-1:-1;;;;;7385:15:18;;;7332;7385;;;:8;:15;;;;;;7332;;;;7385;7377:51;;;;-1:-1:-1;;;7377:51:18;;13982:2:29;7377:51:18;;;13964:21:29;14021:1;14001:18;;;13994:29;-1:-1:-1;;;14039:18:29;;;14032:39;14088:18;;7377:51:18;13780:332:29;7377:51:18;-1:-1:-1;7449:5:18;;-1:-1:-1;7464:14:18;;7489:220;7519:18;;7508:8;:29;7489:220;;;-1:-1:-1;;;;;;7574:17:18;;;;;;;:8;:17;;;;;;;-1:-1:-1;;7609:20:18;;7605:64;7649:5;7605:64;7692:6;-1:-1:-1;7539:10:18;;7692:6;7489:220;;;7718:26;7275:476;;;:::o;6268:236::-;561:8;;6347:5;;561:8;;556:88;;593:10;-1:-1:-1;;;;;593:19:18;;;585:48;;;;-1:-1:-1;;;585:48:18;;;;;;;:::i;:::-;-1:-1:-1;;;;;6372:15:18;;::::1;6399:1;6372:15:::0;;;:8:::1;:15;::::0;;;;;::::1;6364:50;;;::::0;-1:-1:-1;;;6364:50:18;;14319:2:29;6364:50:18::1;::::0;::::1;14301:21:29::0;14358:1;14338:18;;;14331:29;-1:-1:-1;;;14376:18:29;;;14369:38;14424:18;;6364:50:18::1;14117:331:29::0;6364:50:18::1;-1:-1:-1::0;;;;;6424:12:18;::::1;;::::0;;;:5:::1;:12;::::0;;;;:24:::1;6439:9:::0;;6424:12;:24:::1;:::i;:::-;;6464:33;6480:5;6487:9;;6464:33;;;;;;;;:::i;:::-;;;;;;;;6268:236:::0;;;;:::o;17493:261::-;17597:12;17611:10;17623:15;17640:22;;:::i;:::-;17715:32;17730:5;17737:9;17715:14;:32::i;:::-;17674:73;;;;-1:-1:-1;17674:73:18;-1:-1:-1;17674:73:18;;-1:-1:-1;17493:261:18;;-1:-1:-1;;;;;17493:261:18:o;765:98::-;806:8;;;;802:55;;;841:5;830:16;;-1:-1:-1;;830:16:18;;;802:55;765:98::o;13965:347::-;-1:-1:-1;;;;;31689:15:18;;;14074:1;31689:15;;;:8;:15;;;;;;;14035:74;;13965:347;:::o;14035:74::-;-1:-1:-1;;;;;14119:22:18;;14144:5;14119:22;;;:15;:22;;;;;:30;;-1:-1:-1;;14119:30:18;;;14160:146;-1:-1:-1;;;;;14192:23:18;;;;;;:16;:23;;;;;;14184:31;;14160:146;;;-1:-1:-1;;;;;14269:18:18;;;;;;;:11;:18;;;;;;;;:25;;;;;;;;;14240:55;;14269:25;14240:28;:55::i;:::-;14217:7;;14160:146;;;;13965:347;:::o;19928:825::-;20027:8;;;;20019:30;;;;-1:-1:-1;;;20019:30:18;;15276:2:29;20019:30:18;;;15258:21:29;15315:1;15295:18;;;15288:29;-1:-1:-1;;;15333:18:29;;;15326:39;15382:18;;20019:30:18;15074:332:29;20019:30:18;-1:-1:-1;;;;;20071:26:18;;;;;;:15;:26;;;;;;:30;;20100:1;;20071:30;:::i;:::-;20063:4;:38;20059:508;;-1:-1:-1;;;;;20151:21:18;;20117:31;20151:21;;;:10;:21;;;;;;;;20173:15;:26;;;;;;20117:31;;20173:30;;20202:1;;20173:30;:::i;:::-;20151:53;;;;;;;;;;;;;;-1:-1:-1;20151:53:18;;;20117:87;;;;;;;;;;-1:-1:-1;;;;;20117:87:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20248:215;;;;;;;20278:19;;20248:215;;;;20323:23;;20248:215;;;;;;20370:21;;20248:215;;;;;;20421:27;;20248:215;;;;;;20218:21;;;;;:10;:21;;;;;:27;;;;;;;;:245;;;;-1:-1:-1;;;;;;20218:245:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20489:19;;20477:32;;;;;:11;:32;;;;;20510:27;;20477:61;;;;;;:72;:79;;;-1:-1:-1;20059:508:18;-1:-1:-1;;;;;20655:21:18;;;;;;:10;:21;;;;;;;;20677:15;:26;;;;;;20655:21;;;20677:30;;20706:1;;20677:30;:::i;:::-;20655:53;;;;;;;;;;;;;;-1:-1:-1;20655:53:18;;;20648:60;;-1:-1:-1;;;;;;20648:60:18;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20720:26:18;;;;:15;:26;;;;;20718:28;;20720:26;;-1:-1:-1;20718:28:18;;;:::i;:::-;;;;-1:-1:-1;;;19928:825:18:o;28663:641::-;561:8;;28729:5;;561:8;;556:88;;593:10;-1:-1:-1;;;;;593:19:18;;;585:48;;;;-1:-1:-1;;;585:48:18;;;;;;;:::i;:::-;-1:-1:-1;;;;;28763:15:18;;::::1;28746:14;28763:15:::0;;;:8:::1;:15;::::0;;;;;::::1;::::0;28788:39:::1;;;::::0;-1:-1:-1;;;28788:39:18;;15887:2:29;28788:39:18::1;::::0;::::1;15869:21:29::0;15926:1;15906:18;;;15899:29;-1:-1:-1;;;15944:18:29;;;15937:36;15990:18;;28788:39:18::1;15685:329:29::0;28788:39:18::1;-1:-1:-1::0;;;;;;;28845:20:18;::::1;::::0;28837:39:::1;;;::::0;-1:-1:-1;;;28837:39:18;;16221:2:29;28837:39:18::1;::::0;::::1;16203:21:29::0;16260:1;16240:18;;;16233:29;-1:-1:-1;;;16278:18:29;;;16271:36;16324:18;;28837:39:18::1;16019:329:29::0;28837:39:18::1;-1:-1:-1::0;;;;;28904:16:18;;::::1;28886:15;28904:16:::0;;;:8:::1;:16;::::0;;;;;;;::::1;::::0;28950:26:::1;28970:5:::0;28950:19:::1;:26::i;:::-;28931:45;;28986:17;29006:27;29026:6;29006:19;:27::i;:::-;28986:47;;29063:9;29052:8;:20;29044:39;;;::::0;-1:-1:-1;;;29044:39:18;;16555:2:29;29044:39:18::1;::::0;::::1;16537:21:29::0;16594:1;16574:18;;;16567:29;-1:-1:-1;;;16612:18:29;;;16605:36;16658:18;;29044:39:18::1;16353:329:29::0;29044:39:18::1;29094:49;29115:6;29123;29131:5;29138:1;29141::::0;29094:20:::1;:49::i;:::-;29153:50;29174:5;29181:7;29190:6;29198:1;29201;29153:20;:50::i;:::-;29214:31;29239:5;29214:24;:31::i;:::-;29261:36;::::0;-1:-1:-1;;;;;2796:32:29;;2778:51;;29261:36:18::1;::::0;2766:2:29;2751:18;29261:36:18::1;2632:203:29::0;1088:35:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2361:109::-;-1:-1:-1;;;;;31438:17:18;;2416:7;31438:17;;;:10;:17;;;;;;2442:21;31352:110;32395:163;32491:14;;:::i;:::-;-1:-1:-1;;;;;;32524:18:18;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;32517:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32395:163;;;;;;:::o;1129:34::-;;;;;;;:::i;31468:105::-;-1:-1:-1;;;;;31554:12:18;;;;;;:5;:12;;;;;31547:19;;31522:13;;31554:12;31547:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31468:105;;;:::o;12785:225::-;-1:-1:-1;;;;;12863:15:18;;;12840:7;12863:15;;;:8;:15;;;;;;12840:7;;12863:15;12859:43;;-1:-1:-1;12901:1:18;;12785:225;-1:-1:-1;12785:225:18:o;12859:43::-;-1:-1:-1;;;;;12916:15:18;;;;;;;:8;:15;;;;;;;-1:-1:-1;;12916:29:18;12912:43;;-1:-1:-1;12954:1:18;;12785:225;-1:-1:-1;12785:225:18:o;12912:43::-;-1:-1:-1;;;;;12983:15:18;;;;;;;:8;:15;;;;;;12973:26;;12983:15;12973:9;:26::i;:::-;:30;;13002:1;12973:30;:::i;9944:668::-;-1:-1:-1;;;;;10113:15:18;;;10055:12;10113:15;;;:8;:15;;;;;;10055:12;;;;;;10113:15;:29;;:66;;-1:-1:-1;;;;;;10146:19:18;;;10177:1;10146:19;;;:8;:19;;;;;;;:33;10113:66;10109:117;;;-1:-1:-1;10203:5:18;;-1:-1:-1;10203:5:18;;-1:-1:-1;10203:5:18;10195:20;;10109:117;10236:16;10284:30;10297:5;10304:9;10284:12;:30::i;:::-;10262:52;;-1:-1:-1;10262:52:18;-1:-1:-1;10262:52:18;10324:59;;10360:5;10367:1;10370;10352:20;;;;;;;;;10324:59;10393:23;10419:30;10433:5;10440:8;10419:13;:30::i;:::-;10393:56;;10459:16;10500:47;10520:15;10537:9;10500:19;:47::i;:::-;10485:62;-1:-1:-1;10566:7:18;;-1:-1:-1;10575:19:18;10586:8;10485:62;10575:19;:::i;:::-;10558:47;;-1:-1:-1;10558:47:18;-1:-1:-1;10596:8:18;-1:-1:-1;;;9944:668:18;;;;;;:::o;2266:89::-;2305:13;2337:11;2330:18;;;;;:::i;9177:620::-;9255:16;9273;9313:4;-1:-1:-1;;;;;9305:12:18;:4;-1:-1:-1;;;;;9305:12:18;;9301:59;;-1:-1:-1;9341:4:18;;-1:-1:-1;9347:1:18;9333:16;;9301:59;-1:-1:-1;;;;;9374:14:18;;;9400:1;9374:14;;;:8;:14;;;;;;;:28;;:60;;-1:-1:-1;;;;;;9406:14:18;;;9432:1;9406:14;;;:8;:14;;;;;;;:28;9374:60;9370:108;;;-1:-1:-1;9458:5:18;;-1:-1:-1;9458:5:18;9450:17;;9370:108;-1:-1:-1;;;;;9492:14:18;;;;;;;:8;:14;;;;;;;9518:1;9492:28;;:60;;-1:-1:-1;;;;;;9524:14:18;;;;;;;:8;:14;;;;;;;9550:1;9524:28;9492:60;9488:108;;;-1:-1:-1;9576:5:18;;-1:-1:-1;9576:5:18;9568:17;;9488:108;-1:-1:-1;;;;;9652:14:18;;;;;;;:8;:14;;;;;;;9668;;;;;;;;9632:51;;9652:14;;;;9668;9632:19;:51::i;:::-;9606:77;;-1:-1:-1;9606:77:18;-1:-1:-1;9694:69:18;;;;9733:4;9739:12;:8;9733:4;9739:12;:::i;:::-;9725:27;;;;;;9694:69;-1:-1:-1;9781:5:18;;-1:-1:-1;9781:5:18;9177:620;;;;;;:::o;16267:263::-;16372:12;16386:10;16398:15;16415:22;;:::i;:::-;16490:33;16506:5;16513:9;16490:15;:33::i;10618:849::-;-1:-1:-1;;;;;10776:15:18;;;10718:12;10776:15;;;:8;:15;;;;;;10718:12;;;;;;10776:15;:29;;:66;;-1:-1:-1;;;;;;10809:19:18;;;10840:1;10809:19;;;:8;:19;;;;;;;:33;10776:66;10772:117;;;-1:-1:-1;10866:5:18;;-1:-1:-1;10866:5:18;;-1:-1:-1;10866:5:18;10858:20;;10772:117;10899:17;10926:21;10957:24;10991:28;11029:20;11059;11139:35;11157:5;11164:9;11139:17;:35::i;:::-;11090:84;;-1:-1:-1;11090:84:18;-1:-1:-1;11090:84:18;-1:-1:-1;11241:35:18;11259:9;11270:5;11241:17;:35::i;:::-;11184:92;;-1:-1:-1;11184:92:18;-1:-1:-1;11184:92:18;-1:-1:-1;11296:12:18;:32;;;;;11312:16;11296:32;11286:42;-1:-1:-1;11346:31:18;11365:12;11346:16;:31;:::i;:::-;11338:39;-1:-1:-1;11395:35:18;11418:12;11395:20;:35;:::i;:::-;11387:43;;10762:705;;;;;;10618:849;;;;;:::o;16536:865::-;16661:12;16675:10;16687:13;16702;16717:15;16734:22;;:::i;:::-;16772:12;16794:13;16817;16883:42;16908:5;16915:9;16883:24;:42::i;:::-;16857:68;;-1:-1:-1;16857:68:18;-1:-1:-1;16857:68:18;-1:-1:-1;16941:8:18;;;16940:30;;;16964:5;16955;:14;16940:30;16936:121;;;16994:5;17001;17008:1;17011;17014;17017:28;;;;;;;;17033:1;-1:-1:-1;;;;;17017:28:18;;;;;17037:1;17017:28;;;;17040:1;17017:28;;;;17043:1;17017:28;;;16986:60;;;;;;;;;;;;;;;;;16936:121;17072:9;17067:250;-1:-1:-1;;;;;17091:26:18;;;;;;:15;:26;;;;;;17087:30;;17067:250;;;-1:-1:-1;;;;;17164:21:18;;;17138:23;17164:21;;;:10;:21;;;;;;;;:24;;;;;;;;;17138:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17206:20;;;;17202:105;;17254:4;;-1:-1:-1;17254:4:18;;-1:-1:-1;17266:5:18;;-1:-1:-1;17273:5:18;;-1:-1:-1;17280:1:18;-1:-1:-1;17283:8:18;-1:-1:-1;17246:46:18;;-1:-1:-1;17246:46:18;17202:105;-1:-1:-1;17119:3:18;;17067:250;;;-1:-1:-1;17365:28:18;;;;;;;;-1:-1:-1;17365:28:18;;;;;;;;;;;;;;;;;;;;;17335:4;;-1:-1:-1;;;17348:5:18;;-1:-1:-1;17355:5:18;;-1:-1:-1;;;;17365:28:18;;-1:-1:-1;16536:865:18;-1:-1:-1;;;;16536:865:18:o;23320:2055::-;709:8;;;;701:40;;;;-1:-1:-1;;;701:40:18;;16889:2:29;701:40:18;;;16871:21:29;16928:2;16908:18;;;16901:30;-1:-1:-1;;;16947:18:29;;;16940:49;17006:18;;701:40:18;16687:343:29;701:40:18;23582:8:::1;-1:-1:-1::0;;;;;23606:36:18;::::1;23602:179;;-1:-1:-1::0;;;;;23658:14:18;::::1;;::::0;;;:8:::1;:14;::::0;;;;:27;;-1:-1:-1;;;;;;23658:27:18::1;23683:1;23658:27;::::0;;23699:28:::1;23667:4:::0;23717:9;23699:11:::1;:28::i;:::-;23766:4;23741:29;;23602:179;-1:-1:-1::0;;;;;23807:43:18;::::1;23791:13;23807:43:::0;;;:16:::1;:43;::::0;;;;;;23860:613:::1;23884:5:::0;;23860:613:::1;;-1:-1:-1::0;;;;;23936:38:18;::::1;23910:23;23936:38:::0;;;:11:::1;:38;::::0;;;;23910:23;23975:5:::1;23979:1;23975::::0;:5:::1;:::i;:::-;23936:45:::0;;::::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;23936:45:18;;;23910:71;;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;23910:71:18::1;::::0;;;;;::::1;::::0;;;::::1;::::0;;;;::::1;::::0;::::1;::::0;;;;;;;;::::1;;::::0;;;;;;;-1:-1:-1;;;;;;24042:107:18::1;::::0;24084:22;;24042:24:::1;:107::i;:::-;23995:154;;;;;;24168:7;24163:300;;24195:55;24217:25:::0;24244:5:::1;24248:1;24244::::0;:5:::1;:::i;:::-;24195:21;:55::i;:::-;24268:8;;;;;;24163:300;-1:-1:-1::0;;;;;24315:38:18;::::1;;::::0;;;:11:::1;:38;::::0;;;;24368:5;;24354::::1;24358:1;24354::::0;:5:::1;:::i;:::-;24315:45:::0;;::::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;24315:45:18;;;:50:::1;::::0;;::::1;:58:::0;;;;24402:11;;-1:-1:-1;;;;;24391:23:18::1;::::0;;:10:::1;:23:::0;;;;;24415:19:::1;::::0;::::1;::::0;24391:44;;;;;;;:49:::1;:57:::0;;;23896:577:::1;;;;23860:613;23891:3;::::0;::::1;:::i;:::-;;;23860:613;;;-1:-1:-1::0;;;;;;;24491:42:18;::::1;;::::0;;;:15:::1;:42;::::0;;;;;;24543:611:::1;24567:5:::0;;24543:611:::1;;-1:-1:-1::0;;;;;24619:37:18;::::1;24593:23;24619:37:::0;;;:10:::1;:37;::::0;;;;24593:23;24657:5:::1;24661:1;24657::::0;:5:::1;:::i;:::-;24619:44:::0;;::::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;24619:44:18;;;24593:70;;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;;;24593:70:18::1;::::0;;;;;::::1;::::0;;;::::1;::::0;;;;::::1;::::0;::::1;::::0;;;;;;;;::::1;;::::0;;;;;;;-1:-1:-1;;;;;;24724:107:18::1;::::0;24795:22;24724:24:::1;:107::i;:::-;24677:154;;;;;;24850:7;24845:299;;24877:54;24898:25:::0;24925:5:::1;24929:1;24925::::0;:5:::1;:::i;:::-;24877:20;:54::i;:::-;24949:8;;;;;;24845:299;-1:-1:-1::0;;;;;24996:37:18;::::1;;::::0;;;:10:::1;:37;::::0;;;;25048:5;;25034::::1;25038:1;25034::::0;:5:::1;:::i;:::-;24996:44:::0;;::::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;24996:44:18;;;:49:::1;::::0;;::::1;:57:::0;;;;25083:11;;-1:-1:-1;;;;;25071:24:18::1;::::0;;:11:::1;:24:::0;;;;;25096:19:::1;::::0;::::1;::::0;25071:45;;;;;;;:50:::1;:58:::0;;;24579:575:::1;;;;24543:611;24574:3;::::0;::::1;:::i;:::-;;;24543:611;;;;25194:4;-1:-1:-1::0;;;;;25168:30:18::1;:22;-1:-1:-1::0;;;;;25168:30:18::1;::::0;25164:81:::1;;25214:20;25229:4;25214:14;:20::i;:::-;23549:1826;;23320:2055:::0;;;;;:::o;15184:132::-;15266:4;;15237:34;;-1:-1:-1;;;;;15266:4:18;15237:28;:34::i;:::-;15304:4;;15281:28;;-1:-1:-1;;;;;15304:4:18;15281:22;:28::i;29430:1473::-;561:8;;29505:5;;561:8;;556:88;;593:10;-1:-1:-1;;;;;593:19:18;;;585:48;;;;-1:-1:-1;;;585:48:18;;;;;;;:::i;:::-;-1:-1:-1;;;;;29544:15:18;;::::1;29571:1;29544:15:::0;;;:8:::1;:15;::::0;;;;;::::1;29536:49;;;::::0;-1:-1:-1;;;29536:49:18;;17237:2:29;29536:49:18::1;::::0;::::1;17219:21:29::0;17276:1;17256:18;;;17249:29;-1:-1:-1;;;17294:18:29;;;17287:37;17341:18;;29536:49:18::1;17035:330:29::0;29536:49:18::1;-1:-1:-1::0;;;;;29607:19:18;;::::1;29638:1;29607:19:::0;;;:8:::1;:19;::::0;;;;;::::1;29599:53;;;::::0;-1:-1:-1;;;29599:53:18;;17572:2:29;29599:53:18::1;::::0;::::1;17554:21:29::0;17611:1;17591:18;;;17584:29;-1:-1:-1;;;17629:18:29;;;17622:37;17676:18;;29599:53:18::1;17370:330:29::0;29599:53:18::1;-1:-1:-1::0;;;;;29674:27:18;::::1;;::::0;;;:16:::1;:27;::::0;;;;;29704:1:::1;-1:-1:-1::0;29666:51:18::1;;;::::0;-1:-1:-1;;;29666:51:18;;17907:2:29;29666:51:18::1;::::0;::::1;17889:21:29::0;17946:1;17926:18;;;17919:29;-1:-1:-1;;;17964:18:29;;;17957:37;18011:18;;29666:51:18::1;17705:330:29::0;29666:51:18::1;29738:12;29752:13:::0;29767::::1;29784:31;29798:5;29805:9;29784:13;:31::i;:::-;-1:-1:-1::0;;;;;29936:15:18;;::::1;29919:14;29936:15:::0;;;:8:::1;:15;::::0;;;;;29737:78;;-1:-1:-1;29737:78:18;;-1:-1:-1;29737:78:18;-1:-1:-1;29936:15:18::1;29965:31;29945:5:::0;29965:24:::1;:31::i;:::-;30016:10:::0;;30015:25;::::1;;;;30032:7;30015:25;30011:266;;;30197:6;-1:-1:-1::0;;;;;30162:41:18::1;:31;30176:9;30187:5;30162:13;:31::i;:::-;-1:-1:-1::0;;;;;30162:41:18::1;::::0;30158:105:::1;;30235:9;30243:1;30235:5:::0;:9:::1;:::i;:::-;30227:17;;30158:105;29825:462;30396:7;30392:264;;;30419:64;30440:5;30447:9;30466:1;30470:5;30477;30419:20;:64::i;:::-;30392:264;;;30576:28;30598:5;30576:21;:28::i;:::-;30618:27;30639:5;30618:20;:27::i;:::-;30816:29;30828:5;30835:9;30816:11;:29::i;:::-;30861:35;::::0;;-1:-1:-1;;;;;13701:15:29;;;13683:34;;13753:15;;13748:2;13733:18;;13726:43;30861:35:18::1;::::0;13618:18:29;30861:35:18::1;13471:304:29::0;6712:437:18;6787:14;6817:6;6827:1;6817:11;6813:54;;-1:-1:-1;6851:5:18;6844:12;;6813:54;-1:-1:-1;;;;;6881:15:18;;;;;;;:8;:15;;;;;;;-1:-1:-1;;6881:29:18;6877:77;;-1:-1:-1;6941:1:18;6926:17;;6877:77;-1:-1:-1;;;;;7039:15:18;;;7066:1;7039:15;;;:8;:15;;;;;;;7031:51;;;;-1:-1:-1;;;7031:51:18;;18242:2:29;7031:51:18;;;18224:21:29;18281:1;18261:18;;;18254:29;-1:-1:-1;;;18299:18:29;;;18292:39;18348:18;;7031:51:18;18040:332:29;7031:51:18;-1:-1:-1;;;;;7114:15:18;;;;;;;:8;:15;;;;;;7100:42;;7114:15;7131:10;7114:15;7131:6;:10;:::i;7100:42::-;7093:49;6712:437;-1:-1:-1;;;6712:437:18:o;21632:223::-;-1:-1:-1;;;;;21714:26:18;;21698:13;21714:26;;;:15;:26;;;;;;;21750:99;21774:5;;21750:99;;21800:38;21821:9;21832:5;21836:1;21832;:5;:::i;21800:38::-;21781:3;;;:::i;:::-;;;21750:99;;;;21688:167;21632:223;:::o;7974:786::-;-1:-1:-1;;;;;8143:15:18;;;8078:12;8143:15;;;:8;:15;;;;;;8078:12;;;;;;8143:15;:29;;8142:70;;-1:-1:-1;;;;;;8178:19:18;;;8209:1;8178:19;;;:8;:19;;;;;;;:33;8142:70;8138:121;;;-1:-1:-1;8236:5:18;;-1:-1:-1;8236:5:18;;-1:-1:-1;8236:5:18;8228:20;;8138:121;8269:15;8319:18;8331:5;8319:11;:18::i;:::-;8294:43;-1:-1:-1;8294:43:18;-1:-1:-1;8375:9:18;8347:25;8395:329;8420:11;8415:1;:16;8395:329;;8477:7;-1:-1:-1;;;;;8456:28:18;:17;-1:-1:-1;;;;;8456:28:18;;8452:96;;8512:4;;-1:-1:-1;8531:1:18;-1:-1:-1;8504:29:18;;-1:-1:-1;;8504:29:18;8452:96;-1:-1:-1;;;;;8582:27:18;;;;;;;:8;:27;;;;;;;;;;;8624:90;;8687:5;8694:1;8697;8679:20;;;;;;;;;;;8624:90;8433:3;;;;:::i;:::-;;;;8395:329;;;-1:-1:-1;8741:5:18;;;;-1:-1:-1;8741:5:18;;-1:-1:-1;7974:786:18;-1:-1:-1;;;;;7974:786:18:o;21412:214::-;-1:-1:-1;;;;;21491:23:18;;21475:13;21491:23;;;:16;:23;;;;;;;21524:96;21548:5;;21524:96;;21574:35;21596:5;21603;21607:1;21603;:5;:::i;21574:35::-;21555:3;;;:::i;:::-;;;21524:96;;14379:799;-1:-1:-1;;;;;31689:15:18;;;14482:1;31689:15;;;:8;:15;;;;;;;14443:74;;14379:799;:::o;14443:74::-;-1:-1:-1;;;;;14531:22:18;;;;;;:15;:22;;;;;;;;14527:59;;;14379:799;:::o;14527:59::-;14601:13;14596:140;-1:-1:-1;;;;;14628:23:18;;;;;;:16;:23;;;;;;14620:31;;14596:140;;;-1:-1:-1;;;;;14699:18:18;;;;;;;:11;:18;;;;;;;;:25;;;;;;;;;14676:49;;14699:25;14676:22;:49::i;:::-;14653:7;;14596:140;;;;14746:23;14788:13;14783:256;-1:-1:-1;;;;;14815:22:18;;;;;;:15;:22;;;;;;14807:30;;14783:256;;;-1:-1:-1;;;;;14888:17:18;;;14862:23;14888:17;;;:10;:17;;;;;;;;:24;;;;;;;;14862:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14993:35;;:22;:35;;;;;;14973:15;;14957:11;;14946:23;;;;;:10;:23;;;;;;14862:50;;14946:43;;;:::i;:::-;14945:83;;;;:::i;:::-;14926:102;;;;:::i;:::-;;-1:-1:-1;;14839:7:18;;14783:256;;;-1:-1:-1;15074:12:18;;15068:18;;:2;:18;:::i;:::-;15049:37;;;;:::i;:::-;-1:-1:-1;;;;;15096:17:18;;;;;;;:10;:17;;;;;;;;:35;;;;15142:15;:22;;;;;;:29;;-1:-1:-1;;15142:29:18;15167:4;15142:29;;;-1:-1:-1;14379:799:18:o;8766:286::-;8843:12;8857:16;8885:19;8914:13;8970:35;8988:5;8995:9;8970:17;:35::i;:::-;8938:67;;-1:-1:-1;8938:67:18;-1:-1:-1;8938:67:18;-1:-1:-1;9026:19:18;8938:67;;9026:19;:::i;:::-;9015:30;;8875:177;;8766:286;;;;;:::o;5215:602::-;561:8;;5311:5;;561:8;;556:88;;593:10;-1:-1:-1;;;;;593:19:18;;;585:48;;;;-1:-1:-1;;;585:48:18;;;;;;;:::i;:::-;-1:-1:-1;;;;;5336:15:18;;::::1;5363:1;5336:15:::0;;;:8:::1;:15;::::0;;;;;::::1;:29:::0;5328:48:::1;;;::::0;-1:-1:-1;;;5328:48:18;;18719:2:29;5328:48:18::1;::::0;::::1;18701:21:29::0;18758:1;18738:18;;;18731:29;-1:-1:-1;;;18776:18:29;;;18769:36;18822:18;;5328:48:18::1;18517:329:29::0;5328:48:18::1;-1:-1:-1::0;;;;;5394:19:18;;::::1;5425:1;5394:19:::0;;;:8:::1;:19;::::0;;;;;::::1;5386:52;;;::::0;-1:-1:-1;;;5386:52:18;;15887:2:29;5386:52:18::1;::::0;::::1;15869:21:29::0;15926:1;15906:18;;;15899:29;-1:-1:-1;;;15944:18:29;;;15937:36;15990:18;;5386:52:18::1;15685:329:29::0;5386:52:18::1;-1:-1:-1::0;;;;;5456:27:18;::::1;;::::0;;;:16:::1;:27;::::0;;;;;5486:1:::1;-1:-1:-1::0;5448:50:18::1;;;::::0;-1:-1:-1;;;5448:50:18;;16221:2:29;5448:50:18::1;::::0;::::1;16203:21:29::0;16260:1;16240:18;;;16233:29;-1:-1:-1;;;16278:18:29;;;16271:36;16324:18;;5448:50:18::1;16019:329:29::0;5448:50:18::1;-1:-1:-1::0;;;;;5509:15:18;;::::1;;::::0;;;:8:::1;:15;::::0;;;;;;;:27;;-1:-1:-1;;;;;;5509:27:18::1;::::0;;::::1;::::0;;;::::1;::::0;;;5546:5:::1;:12:::0;;;:24:::1;5561:9:::0;;5546:12;:24:::1;:::i;:::-;-1:-1:-1::0;;;;;;5580:22:18;;::::1;;::::0;;;:11:::1;:22;::::0;;;;;;;5603:16:::1;:27:::0;;;;;;;;5580:51;;;;;;;;:59;;-1:-1:-1;;;;;;5580:59:18::1;::::0;;::::1;::::0;;;::::1;::::0;;;5679:27;;;;;;:31:::1;::::0;-1:-1:-1;5679:31:18::1;:::i;:::-;-1:-1:-1::0;;;;;5649:27:18;::::1;;::::0;;;:16:::1;:27;::::0;;;;:61;5721:31:::1;5732:5:::0;5666:9;5750:1:::1;5721:10;:31::i;:::-;5768:42;5782:5;5789:9;;5800;5768:42;;;;;;;;;:::i;:::-;;;;;;;;5215:602:::0;;;;;:::o;11752:387::-;561:8;;11839:5;;561:8;;556:88;;593:10;-1:-1:-1;;;;;593:19:18;;;585:48;;;;-1:-1:-1;;;585:48:18;;;;;;;:::i;:::-;11857:12:::1;11871:10:::0;11883:13:::1;11898::::0;11919:33:::1;11935:5;11942:9;11919:15;:33::i;:::-;11856:96;;;;;;;;;;11971:7;11970:21;;;;;11985:5;11984:6;11970:21;11962:41;;;::::0;-1:-1:-1;;;11962:41:18;;19503:2:29;11962:41:18::1;::::0;::::1;19485:21:29::0;19542:1;19522:18;;;19515:29;-1:-1:-1;;;19560:18:29;;;19553:37;19607:18;;11962:41:18::1;19301:330:29::0;11962:41:18::1;12013:62;12036:5;12043:9;12054:5;12061;12068:6;12013:22;:62::i;:::-;12091:41;::::0;;-1:-1:-1;;;;;19894:15:29;;;19876:34;;19946:15;;19941:2;19926:18;;19919:43;19978:18;;;19971:34;;;12091:41:18::1;::::0;19826:2:29;19811:18;12091:41:18::1;;;;;;;11846:293;;;;11752:387:::0;;;;:::o;28400:257::-;561:8;;28451:5;;561:8;;556:88;;593:10;-1:-1:-1;;;;;593:19:18;;;585:48;;;;-1:-1:-1;;;585:48:18;;;;;;;:::i;:::-;28468:28:::1;28490:5;28468:21;:28::i;:::-;28506:27;28527:5;28506:20;:27::i;:::-;28544:31;28569:5;28544:24;:31::i;:::-;-1:-1:-1::0;;;;;28585:15:18;::::1;28611:1;28585:15:::0;;;:8:::1;:15;::::0;;;;;;;;:28;;-1:-1:-1;;;;;;28585:28:18::1;::::0;;28629:21;;2778:51:29;;;28629:21:18::1;::::0;2751:18:29;28629:21:18::1;;;;;;;28400:257:::0;;:::o;20759:297::-;-1:-1:-1;;;;;20864:18:18;;;20838:23;20864:18;;;:11;:18;;;;;;;;:24;;;;;;;;;20838:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20898:45;20876:5;20883:4;20898:32;:45::i;:::-;20984:65;21016:8;:11;;;21029:8;:19;;;20984:31;:65::i;3888:1092::-;-1:-1:-1;;;;;3973:15:18;;;3956:14;3973:15;;;:8;:15;;;;;;;;3998:44;;;;-1:-1:-1;;;3998:44:18;;20218:2:29;3998:44:18;;;20200:21:29;20257:2;20237:18;;;20230:30;-1:-1:-1;;;20276:18:29;;;20269:41;20327:18;;3998:44:18;20016:335:29;3998:44:18;-1:-1:-1;;;;;;;4060:20:18;;;4052:44;;;;-1:-1:-1;;;4052:44:18;;20558:2:29;4052:44:18;;;20540:21:29;20597:2;20577:18;;;20570:30;-1:-1:-1;;;20616:18:29;;;20609:41;20667:18;;4052:44:18;20356:335:29;4052:44:18;-1:-1:-1;;;;;4125:16:18;;;4107:15;4125:16;;;:8;:16;;;;;;;4170:21;4185:5;4170:14;:21::i;:::-;4220:6;-1:-1:-1;;;;;4206:20:18;:10;31199:4;;-1:-1:-1;;;;;31199:4:18;;31132:78;4206:10;-1:-1:-1;;;;;4206:20:18;;4202:116;;4242:4;:12;;-1:-1:-1;;;;;;4242:12:18;-1:-1:-1;;;;;4242:12:18;;;;;4202:116;;;4285:22;4300:6;4285:14;:22::i;:::-;-1:-1:-1;;;;;4346:19:18;;;4328:15;4346:19;;;:11;:19;;;;;;;;:22;;;;;;;;;4396:18;;;;;;;;;;;:21;;;;;;;;;;4346:22;4444:21;;;;;4346:22;;;;4396:21;;;;4444;4476:39;4396:18;4507:7;4476:23;:39::i;:::-;4525:38;4549:6;4557:5;4525:23;:38::i;:::-;-1:-1:-1;;;;;4578:21:18;;;4574:128;;4615:23;4630:7;4615:14;:23::i;:::-;4652:39;4676:7;4685:5;4652:23;:39::i;:::-;-1:-1:-1;;;;;4716:20:18;;;4712:126;;4752:22;4767:6;4752:14;:22::i;:::-;4788:39;4812:6;4820;4788:23;:39::i;:::-;-1:-1:-1;;;;;4852:20:18;;;4848:126;;4888:22;4903:6;4888:14;:22::i;:::-;4924:39;4948:6;4956;4924:23;:39::i;:::-;3946:1034;;;;;3888:1092;:::o;3281:185::-;-1:-1:-1;;;;;3363:27:18;;;;;;:16;:27;;;;;;3393:1;-1:-1:-1;3355:53:18;;;;-1:-1:-1;;;3355:53:18;;20898:2:29;3355:53:18;;;20880:21:29;20937:1;20917:18;;;20910:29;-1:-1:-1;;;20955:18:29;;;20948:39;21004:18;;3355:53:18;20696:332:29;3355:53:18;3418:41;3442:5;3449:9;3418:23;:41::i;21062:307::-;-1:-1:-1;;;;;21170:21:18;;;21144:23;21170:21;;;:10;:21;;;;;;;;:27;;;;;;;;;21144:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21207:48;21181:9;21192:4;21207:31;:48::i;:::-;21296:66;21329:8;:11;;;21342:8;:19;;;21296:32;:66::i;2668:607::-;-1:-1:-1;;;;;2746:15:18;;;2726:17;2746:15;;;:8;:15;;;;;;;;;;;2789:22;;;:11;:22;;;;;:25;;;;;;;;;2746:15;;2726:17;;2789:25;;:34;:42;;2830:1;2789:42;;;2826:1;2789:42;-1:-1:-1;;;;;2876:22:18;;;;;;:11;:22;;;;;;;;2899:16;:27;;;;;;2771:60;;;;;;-1:-1:-1;2876:22:18;2899:31;;2929:1;;2899:31;:::i;:::-;2876:55;;;;;;;;;;;;;;-1:-1:-1;2876:55:18;;;;-1:-1:-1;;;;;2842:22:18;;;;;;:11;:22;;;;;:31;;;;;;;;;:89;;-1:-1:-1;;;;;;2842:89:18;2876:55;;;;2842:89;;;;;;;2941:22;;;2964:16;:27;;;;;;;-1:-1:-1;;2842:22:18;-1:-1:-1;;2964:31:18;;2876:55;;2964:31;:::i;:::-;2941:55;;;;;;;;;;;;;;-1:-1:-1;2941:55:18;;;:68;;-1:-1:-1;;;;;;2941:68:18;-1:-1:-1;;;;;2941:68:18;;;;;;3049:27;;;;;:16;:27;;;;;;:31;;-1:-1:-1;;3049:31:18;:::i;:::-;-1:-1:-1;;;;;3019:27:18;;;;;;;:16;:27;;;;;;;;:61;;;;3240:15;;;;;;:8;:15;;;-1:-1:-1;3240:15:18;:28;;-1:-1:-1;;;;;;3240:28:18;3266:1;3240:28;;;2668:607::o;26545:915::-;26621:8;;;;26613:27;;;;-1:-1:-1;;;26613:27:18;;21235:2:29;26613:27:18;;;21217:21:29;21274:1;21254:18;;;21247:29;-1:-1:-1;;;21292:18:29;;;21285:36;21338:18;;26613:27:18;21033:329:29;26613:27:18;-1:-1:-1;;;;;26770:15:18;;;26753:14;26770:15;;;:8;:15;;;;;;;;;26817:11;:18;;;;;:21;;;;;;;;;;26770:15;26870:21;;;;;26770:15;;;;26817:21;;;;26870;26906:24;;26902:411;;26946:53;26967:10;26979:6;26987:5;26994:1;26997;26946:20;:53::i;:::-;27014:31;27027:10;27039:5;27014:12;:31::i;:::-;-1:-1:-1;;;;;27064:25:18;;;27060:145;;27109:27;27124:11;27109:14;:27::i;:::-;27154:36;27166:11;27179:10;27154:11;:36::i;:::-;27219:26;27234:10;27219:14;:26::i;:::-;27259:43;27283:10;27295:6;27259:23;:43::i;:::-;27323:21;27338:5;27323:14;:21::i;:::-;-1:-1:-1;;;;;27354:15:18;;;;;;;:8;:15;;;;;:28;;-1:-1:-1;;;;;;27354:28:18;27380:1;27354:28;;;27397:4;;;;;:13;27393:61;;27426:4;:17;;-1:-1:-1;;;;;;27426:17:18;-1:-1:-1;;;;;27426:17:18;;;;;27393:61;26603:857;;;26545:915;:::o;17872:727::-;18100:154;;;;;;;;-1:-1:-1;;;;;18100:154:18;;;;;;;;;;;;;;;;;;;-1:-1:-1;18217:26:18;;;:15;:26;;;;;;18100:154;;;;;;18054:18;;;;;;:11;:18;;;;;18073:16;:23;;;;;;;;18054:43;;;;;;;;:200;;;;-1:-1:-1;;;;;;18054:200:18;;;;;;;;;;;-1:-1:-1;18054:200:18;;;;;;;;;;;;;;;;;;18267:23;;;;;;;18264:27;;18073:23;;-1:-1:-1;18264:27:18;;;:::i;:::-;;;;-1:-1:-1;;;;;;18301:29:18;;;;;;:22;:29;;;;;:39;;18334:6;;18301:29;:39;;18334:6;;18301:39;:::i;:::-;;;;-1:-1:-1;;18402:150:18;;;;;;;;-1:-1:-1;;;;;18402:150:18;;;;;;;;;;;;;;;;;;-1:-1:-1;18514:23:18;;;:16;:23;;;;;;;18402:150;;;;18514:27;;18540:1;;18514:27;:::i;:::-;18402:150;;-1:-1:-1;;;;;18350:21:18;;;;;;;:10;:21;;;;;;;;18372:15;:26;;;;;;;;18350:49;;;;;;;;:202;;;;-1:-1:-1;;;;;;18350:202:18;;;;;;;;;;;;;-1:-1:-1;18350:202:18;;;;;;;;;;;;;;;;;;;;;;;;18565:26;;;;;;18562:30;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;17872:727:18:o;18852:1023::-;-1:-1:-1;;;;;19003:18:18;;;18977:23;19003:18;;;:11;:18;;;;;;;;:24;;;;;;;;18977:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19037:29;;;:22;:29;;;;;:48;;:29;;18977:23;19037:48;;18977:50;;19037:48;:::i;:::-;;;;-1:-1:-1;;;;;;;19108:23:18;;;;;;:16;:23;;;;;;:27;;19134:1;;19108:27;:::i;:::-;19100:4;:35;19096:606;;-1:-1:-1;;;;;19290:18:18;;19255:32;19290:18;;;:11;:18;;;;;;;;19309:16;:23;;;;;;19255:32;;19309:27;;19335:1;;19309:27;:::i;:::-;19290:47;;;;;;;;;;;19255:82;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19255:82:18;-1:-1:-1;;;;;19255:82:18;-1:-1:-1;;;;;19255:82:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19378:219;;;;;;;;19408:17;:20;;;-1:-1:-1;;;;;19378:219:18;;;;;19454:17;:24;;;19378:219;;;;19502:17;:22;;;19378:219;;;;19554:17;:28;;;19378:219;;;19351:11;:18;19363:5;-1:-1:-1;;;;;19351:18:18;-1:-1:-1;;;;;19351:18:18;;;;;;;;;;;;:24;19370:4;19351:24;;;;;;;;;;;:246;;;;;;;;;;;;;-1:-1:-1;;;;;19351:246:18;;;;;-1:-1:-1;;;;;19351:246:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19687:4;19611:10;:32;19622:17;:20;;;-1:-1:-1;;;;;19611:32:18;-1:-1:-1;;;;;19611:32:18;;;;;;;;;;;;:62;19644:17;:28;;;19611:62;;;;;;;;;;;:73;;:80;;;;19137:565;19096:606;-1:-1:-1;;;;;19786:18:18;;;;;;:11;:18;;;;;;;;19805:16;:23;;;;;;19786:18;;;19805:27;;19831:1;;19805:27;:::i;:::-;19786:47;;;;;;;;;;;;;;-1:-1:-1;19786:47:18;;;19779:54;;-1:-1:-1;;;;;;19779:54:18;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19845:23:18;;;;:16;:23;;;;;19843:25;;19845:23;;-1:-1:-1;19843:25:18;;;:::i;:::-;;;;-1:-1:-1;;;;18852:1023:18:o;3472:325::-;-1:-1:-1;;;;;3566:15:18;;;;;;;:8;:15;;;;;;;3593:1;3566:29;3558:53;;;;-1:-1:-1;;;3558:53:18;;21569:2:29;3558:53:18;;;21551:21:29;21608:2;21588:18;;;21581:30;-1:-1:-1;;;21627:18:29;;;21620:41;21678:18;;3558:53:18;21367:335:29;3558:53:18;-1:-1:-1;;;;;3622:15:18;;;;;;;:8;:15;;;;;;;;:27;;;;;-1:-1:-1;;;;;;3622:27:18;;;;;;;;3660:22;;;:11;:22;;;;;3683:16;:27;;;;;;;;3660:51;;;;;;;;:59;;;;;;;;;;;3759:27;;;;;;;;;:31;;3622:27;3759:31;:::i;:::-;-1:-1:-1;;;;;3729:27:18;;;;;;;:16;:27;;;;;:61;-1:-1:-1;3472:325:18:o;25697:734::-;25783:8;;;;25775:26;;;;-1:-1:-1;;;25775:26:18;;21909:2:29;25775:26:18;;;21891:21:29;21948:1;21928:18;;;21921:29;-1:-1:-1;;;21966:18:29;;;21959:35;22011:18;;25775:26:18;21707:328:29;25775:26:18;25975:18;25996:31;26012:11;26025:1;25996:15;:31::i;:::-;25975:52;;26037:19;26059:31;26075:11;26088:1;26059:15;:31::i;:::-;26037:53;-1:-1:-1;;;;;;26104:24:18;;;26100:325;;26144:59;26165:10;26177:6;26185:11;26198:1;26201;26144:20;:59::i;:::-;26218:37;26231:10;26243:11;26218:12;:37::i;:::-;-1:-1:-1;;;;;26274:25:18;;;26270:145;;26319:27;26334:11;26319:14;:27::i;:::-;26364:36;26376:11;26389:10;26364:11;:36::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:173:29:-;82:20;;-1:-1:-1;;;;;131:31:29;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;565:322::-;642:6;650;658;711:2;699:9;690:7;686:23;682:32;679:52;;;727:1;724;717:12;679:52;750:29;769:9;750:29;:::i;:::-;740:39;826:2;811:18;;798:32;;-1:-1:-1;877:2:29;862:18;;;849:32;;565:322;-1:-1:-1;;;565:322:29:o;892:260::-;960:6;968;1021:2;1009:9;1000:7;996:23;992:32;989:52;;;1037:1;1034;1027:12;989:52;1060:29;1079:9;1060:29;:::i;:::-;1050:39;;1108:38;1142:2;1131:9;1127:18;1108:38;:::i;:::-;1098:48;;892:260;;;;;:::o;1157:286::-;1234:12;;-1:-1:-1;;;;;1230:38:29;1218:51;;1318:4;1307:16;;;1301:23;1285:14;;;1278:47;1374:4;1363:16;;;1357:23;1341:14;;;1334:47;1430:4;1419:16;;;1413:23;1397:14;;1390:47;1157:286::o;1448:626::-;1720:4;1762:3;1751:9;1747:19;1739:27;;1807:6;1800:14;1793:22;1782:9;1775:41;1866:6;1859:14;1852:22;1847:2;1836:9;1832:18;1825:50;1911:6;1906:2;1895:9;1891:18;1884:34;1954:6;1949:2;1938:9;1934:18;1927:34;1998:6;1992:3;1981:9;1977:19;1970:35;2014:54;2063:3;2052:9;2048:19;2040:6;2014:54;:::i;:::-;1448:626;;;;;;;;;:::o;2079:548::-;2191:4;2220:2;2249;2238:9;2231:21;2281:6;2275:13;2324:6;2319:2;2308:9;2304:18;2297:34;2349:1;2359:140;2373:6;2370:1;2367:13;2359:140;;;2468:14;;;2464:23;;2458:30;2434:17;;;2453:2;2430:26;2423:66;2388:10;;2359:140;;;2363:3;2548:1;2543:2;2534:6;2523:9;2519:22;2515:31;2508:42;2618:2;2611;2607:7;2602:2;2594:6;2590:15;2586:29;2575:9;2571:45;2567:54;2559:62;;;;2079:548;;;;:::o;2840:391::-;2926:6;2934;2942;2950;3003:3;2991:9;2982:7;2978:23;2974:33;2971:53;;;3020:1;3017;3010:12;2971:53;3043:29;3062:9;3043:29;:::i;:::-;3033:39;3119:2;3104:18;;3091:32;;-1:-1:-1;3170:2:29;3155:18;;3142:32;;3221:2;3206:18;3193:32;;-1:-1:-1;2840:391:29;-1:-1:-1;;;2840:391:29:o;3236:249::-;3422:3;3407:19;;3435:44;3411:9;3461:6;3435:44;:::i;3490:348::-;3542:8;3552:6;3606:3;3599:4;3591:6;3587:17;3583:27;3573:55;;3624:1;3621;3614:12;3573:55;-1:-1:-1;3647:20:29;;3690:18;3679:30;;3676:50;;;3722:1;3719;3712:12;3676:50;3759:4;3751:6;3747:17;3735:29;;3811:3;3804:4;3795:6;3787;3783:19;3779:30;3776:39;3773:59;;;3828:1;3825;3818:12;3843:485;3923:6;3931;3939;3992:2;3980:9;3971:7;3967:23;3963:32;3960:52;;;4008:1;4005;3998:12;3960:52;4031:29;4050:9;4031:29;:::i;:::-;4021:39;;4111:2;4100:9;4096:18;4083:32;4138:18;4130:6;4127:30;4124:50;;;4170:1;4167;4160:12;4124:50;4209:59;4260:7;4251:6;4240:9;4236:22;4209:59;:::i;:::-;3843:485;;4287:8;;-1:-1:-1;4183:85:29;;-1:-1:-1;;;;3843:485:29:o;4333:254::-;4401:6;4409;4462:2;4450:9;4441:7;4437:23;4433:32;4430:52;;;4478:1;4475;4468:12;4430:52;4501:29;4520:9;4501:29;:::i;:::-;4491:39;4577:2;4562:18;;;;4549:32;;-1:-1:-1;;;4333:254:29:o;4871:482::-;5167:14;;5160:22;5142:41;;5226:14;;5219:22;5214:2;5199:18;;5192:50;5273:2;5258:18;;5251:34;;;5129:3;5114:19;;5294:53;5343:2;5328:18;;5320:6;5294:53;:::i;:::-;4871:482;;;;;;;:::o;6147:472::-;6242:6;6250;6258;6266;6274;6327:3;6315:9;6306:7;6302:23;6298:33;6295:53;;;6344:1;6341;6334:12;6295:53;6367:29;6386:9;6367:29;:::i;:::-;6357:39;;6415:38;6449:2;6438:9;6434:18;6415:38;:::i;:::-;6405:48;;6472:38;6506:2;6495:9;6491:18;6472:38;:::i;:::-;6147:472;;;;-1:-1:-1;6462:48:29;;6557:2;6542:18;;6529:32;;-1:-1:-1;6608:3:29;6593:19;6580:33;;6147:472;-1:-1:-1;;6147:472:29:o;6624:559::-;6713:6;6721;6729;6737;6790:2;6778:9;6769:7;6765:23;6761:32;6758:52;;;6806:1;6803;6796:12;6758:52;6829:29;6848:9;6829:29;:::i;:::-;6819:39;;6909:2;6898:9;6894:18;6881:32;6936:18;6928:6;6925:30;6922:50;;;6968:1;6965;6958:12;6922:50;7007:59;7058:7;7049:6;7038:9;7034:22;7007:59;:::i;:::-;7085:8;;-1:-1:-1;6981:85:29;-1:-1:-1;7139:38:29;;-1:-1:-1;7173:2:29;7158:18;;7139:38;:::i;:::-;7129:48;;6624:559;;;;;;;:::o;7188:328::-;7265:6;7273;7281;7334:2;7322:9;7313:7;7309:23;7305:32;7302:52;;;7350:1;7347;7340:12;7302:52;7373:29;7392:9;7373:29;:::i;:::-;7363:39;;7421:38;7455:2;7444:9;7440:18;7421:38;:::i;:::-;7411:48;;7506:2;7495:9;7491:18;7478:32;7468:42;;7188:328;;;;;:::o;7521:380::-;7600:1;7596:12;;;;7643;;;7664:61;;7718:4;7710:6;7706:17;7696:27;;7664:61;7771:2;7763:6;7760:14;7740:18;7737:38;7734:161;;7817:10;7812:3;7808:20;7805:1;7798:31;7852:4;7849:1;7842:15;7880:4;7877:1;7870:15;7734:161;;7521:380;;;:::o;7906:340::-;8108:2;8090:21;;;8147:2;8127:18;;;8120:30;-1:-1:-1;;;8181:2:29;8166:18;;8159:46;8237:2;8222:18;;7906:340::o;8923:127::-;8984:10;8979:3;8975:20;8972:1;8965:31;9015:4;9012:1;9005:15;9039:4;9036:1;9029:15;9181:543;9283:2;9278:3;9275:11;9272:446;;;9319:1;9343:5;9340:1;9333:16;9387:4;9384:1;9374:18;9457:2;9445:10;9441:19;9438:1;9434:27;9428:4;9424:38;9493:4;9481:10;9478:20;9475:47;;;-1:-1:-1;9516:4:29;9475:47;9571:2;9566:3;9562:12;9559:1;9555:20;9549:4;9545:31;9535:41;;9626:82;9644:2;9637:5;9634:13;9626:82;;;9689:17;;;9670:1;9659:13;9626:82;;9900:1206;10024:18;10019:3;10016:27;10013:53;;;10046:18;;:::i;:::-;10075:94;10165:3;10125:38;10157:4;10151:11;10125:38;:::i;:::-;10119:4;10075:94;:::i;:::-;10195:1;10220:2;10215:3;10212:11;10237:1;10232:616;;;;10892:1;10909:3;10906:93;;;-1:-1:-1;10965:19:29;;;10952:33;10906:93;-1:-1:-1;;9857:1:29;9853:11;;;9849:24;9845:29;9835:40;9881:1;9877:11;;;9832:57;11012:78;;10205:895;;10232:616;9128:1;9121:14;;;9165:4;9152:18;;-1:-1:-1;;10268:17:29;;;10369:9;10391:229;10405:7;10402:1;10399:14;10391:229;;;10494:19;;;10481:33;10466:49;;10601:4;10586:20;;;;10554:1;10542:14;;;;10421:12;10391:229;;;10395:3;10648;10639:7;10636:16;10633:159;;;10772:1;10768:6;10762:3;10756;10753:1;10749:11;10745:21;10741:34;10737:39;10724:9;10719:3;10715:19;10702:33;10698:79;10690:6;10683:95;10633:159;;;10835:1;10829:3;10826:1;10822:11;10818:19;10812:4;10805:33;10205:895;;;9900:1206;;;:::o;11111:127::-;11172:10;11167:3;11163:20;11160:1;11153:31;11203:4;11200:1;11193:15;11227:4;11224:1;11217:15;11243:168;11316:9;;;11347;;11364:15;;;11358:22;;11344:37;11334:71;;11385:18;;:::i;11416:217::-;11456:1;11482;11472:132;;11526:10;11521:3;11517:20;11514:1;11507:31;11561:4;11558:1;11551:15;11589:4;11586:1;11579:15;11472:132;-1:-1:-1;11618:9:29;;11416:217::o;11638:125::-;11703:9;;;11724:10;;;11721:36;;;11737:18;;:::i;11768:416::-;11857:1;11894:5;11857:1;11908:270;11929:7;11919:8;11916:21;11908:270;;;11988:4;11984:1;11980:6;11976:17;11970:4;11967:27;11964:53;;;11997:18;;:::i;:::-;12047:7;12037:8;12033:22;12030:55;;;12067:16;;;;12030:55;12146:22;;;;12106:15;;;;11908:270;;;11912:3;11768:416;;;;;:::o;12189:806::-;12238:5;12268:8;12258:80;;-1:-1:-1;12309:1:29;12323:5;;12258:80;12357:4;12347:76;;-1:-1:-1;12394:1:29;12408:5;;12347:76;12439:4;12457:1;12452:59;;;;12525:1;12520:130;;;;12432:218;;12452:59;12482:1;12473:10;;12496:5;;;12520:130;12557:3;12547:8;12544:17;12541:43;;;12564:18;;:::i;:::-;-1:-1:-1;;12620:1:29;12606:16;;12635:5;;12432:218;;12734:2;12724:8;12721:16;12715:3;12709:4;12706:13;12702:36;12696:2;12686:8;12683:16;12678:2;12672:4;12669:12;12665:35;12662:77;12659:159;;;-1:-1:-1;12771:19:29;;;12803:5;;12659:159;12850:34;12875:8;12869:4;12850:34;:::i;:::-;12920:6;12916:1;12912:6;12908:19;12899:7;12896:32;12893:58;;;12931:18;;:::i;:::-;12969:20;;12189:806;-1:-1:-1;;;12189:806:29:o;13000:131::-;13060:5;13089:36;13116:8;13110:4;13089:36;:::i;14453:267::-;14542:6;14537:3;14530:19;14594:6;14587:5;14580:4;14575:3;14571:14;14558:43;-1:-1:-1;14646:1:29;14621:16;;;14639:4;14617:27;;;14610:38;;;;14702:2;14681:15;;;-1:-1:-1;;14677:29:29;14668:39;;;14664:50;;14453:267::o;14725:344::-;-1:-1:-1;;;;;14912:32:29;;14894:51;;14981:2;14976;14961:18;;14954:30;;;-1:-1:-1;;15001:62:29;;15044:18;;15036:6;15028;15001:62;:::i;15411:128::-;15478:9;;;15499:11;;;15496:37;;;15513:18;;:::i;15544:136::-;15583:3;15611:5;15601:39;;15620:18;;:::i;:::-;-1:-1:-1;;;15656:18:29;;15544:136::o;18377:135::-;18416:3;18437:17;;;18434:43;;18457:18;;:::i;:::-;-1:-1:-1;18504:1:29;18493:13;;18377:135::o;18851:445::-;19029:4;19075:1;19071;19066:3;19062:11;19058:19;19116:2;19108:6;19104:15;19093:9;19086:34;19156:2;19151;19140:9;19136:18;19129:30;19176:62;19234:2;19223:9;19219:18;19211:6;19203;19176:62;:::i;:::-;19168:70;;19286:2;19278:6;19274:15;19269:2;19258:9;19254:18;19247:43;;18851:445;;;;;;;:::o",
"linkReferences": {}
},
"methodIdentifiers": {
"MAX_REL_ROOT_DEPTH()": "7ea67015",
"addDagVote(address,address,uint256)": "fa2465f1",
"balanceOf(address)": "70a08231",
"calculateReputation(address)": "27c06fd5",
"calculateReputationRec(address)": "d7b547f0",
"changeName(address,string)": "45ca25ed",
"clearReputationCalculatedRec(address)": "60c69aa5",
"decimalPoint()": "a2e64c39",
"decimals()": "313ce567",
"findDistAtSameDepth(address,address)": "a16877d5",
"findDistances(address,address)": "ab1e7a78",
"findDistancesRecNotLower(address,address)": "93dac9d1",
"findNthParent(address,uint256)": "c68d6f61",
"findRecDagVote(address,address)": "b9aae95d",
"findRecDagVoteNew(address,address)": "4cefac58",
"findRelDepth(address,address)": "dd88aa95",
"findRelDepthInner(address,address)": "cf6ed9f9",
"findRelRoot(address)": "3aaf189b",
"findSentDagVote(address,address)": "0520b5a4",
"findSentDagVoteNew(address,address)": "a9895c04",
"handleDagVoteReplace(address,address,address,uint256,uint256)": "bad69ace",
"joinTree(address,string,address)": "eeaebe87",
"joinTreeAsRoot(address,string)": "199cd8c0",
"leaveTree(address)": "ff8f07de",
"lockTree()": "5c68f16d",
"moveTreeVote(address,address)": "c5ce0318",
"name()": "06fdde03",
"readDepth(address)": "825a3855",
"readMaxRelRootDepth()": "e614a68d",
"readName(address)": "806df959",
"readRecDagVote(address,uint256,uint256,uint256)": "15d4936a",
"readRecDagVoteCount(address,uint256,uint256)": "e414c457",
"readRecDagVoteDepthDiff(address)": "d5a64361",
"readRecDagVoteDistDiff(address)": "519bf72d",
"readRecTreeVote(address,uint256)": "3a47ce83",
"readRecTreeVoteCount(address)": "49bb27e0",
"readReputation(address)": "b062aaec",
"readRoot()": "10839bf7",
"readSentDagVote(address,uint256,uint256,uint256)": "77a63f9b",
"readSentDagVoteCount(address,uint256,uint256)": "00f71abc",
"readSentDagVoteDepthDiff(address)": "ab70b4c6",
"readSentDagVoteDistDiff(address)": "39273f59",
"readSentDagVoteTotalWeight(address)": "00a1efe5",
"readSentTreeVote(address)": "59bf02a5",
"recalculateAllReputation()": "c389ccc0",
"removeAllRecDagVotes(address)": "c88464bf",
"removeAllSentDagVotes(address)": "d6f497cd",
"removeDagVote(address,address)": "37ba0eb1",
"root()": "ebf0c717",
"switchPositionWithParent(address)": "6be22cd2",
"symbol()": "95d89b41",
"tokenName()": "6c02a931",
"tokenSymbol()": "7b61c320",
"unlocked()": "6a5e2650",
"unsafeReplaceRecDagVoteWithLast(address,uint256)": "6ae6f05f"
},
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"}],\"name\":\"AddDagVoteEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"newName\",\"type\":\"string\"}],\"name\":\"ChangeNameEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"JoinTreeEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"}],\"name\":\"LeaveTreeEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"MoveTreeVoteEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"RemoveDagVoteEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"}],\"name\":\"SwitchPositionWithParentEvent\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MAX_REL_ROOT_DEPTH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"}],\"name\":\"addDagVote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"}],\"name\":\"calculateReputation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"}],\"name\":\"calculateReputationRec\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"voterName\",\"type\":\"string\"}],\"name\":\"changeName\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"}],\"name\":\"clearReputationCalculatedRec\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimalPoint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"add1\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"add2\",\"type\":\"address\"}],\"name\":\"findDistAtSameDepth\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isSameDepth\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"distance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"findDistances\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isLocal\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"sDist\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rDist\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"findDistancesRecNotLower\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isLocal\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"sDist\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rDist\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"}],\"name\":\"findNthParent\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"parent\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"findRecDagVote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"votable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"voted\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"sdist\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"depth\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"votePos\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"id\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dist\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"posInOther\",\"type\":\"uint256\"}],\"internalType\":\"struct DagVote\",\"name\":\"dagVote\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"findRecDagVoteNew\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"votable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"voted\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"votePos\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"id\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dist\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"posInOther\",\"type\":\"uint256\"}],\"internalType\":\"struct DagVote\",\"name\":\"dagVote\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"findRelDepth\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isLocal\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"relDepth\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"findRelDepthInner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isLocal\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"relRootDiff\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rDist\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"}],\"name\":\"findRelRoot\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"relRoot\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"relDepth\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"findSentDagVote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"votable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"voted\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"sDist\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rDist\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"votePos\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"id\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dist\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"posInOther\",\"type\":\"uint256\"}],\"internalType\":\"struct DagVote\",\"name\":\"dagVote\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"findSentDagVoteNew\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"votable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"voted\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"votePos\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"id\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dist\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"posInOther\",\"type\":\"uint256\"}],\"internalType\":\"struct DagVote\",\"name\":\"dagVote\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voterWithChangingDagVotes\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"replacedPositionInTree\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sDistToNewRec\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rDistForNewRec\",\"type\":\"uint256\"}],\"name\":\"handleDagVoteReplace\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"voterName\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"joinTree\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"voterName\",\"type\":\"string\"}],\"name\":\"joinTreeAsRoot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"}],\"name\":\"leaveTree\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lockTree\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"moveTreeVote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"}],\"name\":\"readDepth\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"readMaxRelRootDepth\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"}],\"name\":\"readName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"votePos\",\"type\":\"uint256\"}],\"name\":\"readRecDagVote\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"id\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dist\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"posInOther\",\"type\":\"uint256\"}],\"internalType\":\"struct DagVote\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"rdist\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"depth\",\"type\":\"uint256\"}],\"name\":\"readRecDagVoteCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"readRecDagVoteDepthDiff\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"readRecDagVoteDistDiff\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"votePos\",\"type\":\"uint256\"}],\"name\":\"readRecTreeVote\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"readRecTreeVoteCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"}],\"name\":\"readReputation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"readRoot\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"votePos\",\"type\":\"uint256\"}],\"name\":\"readSentDagVote\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"id\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dist\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"posInOther\",\"type\":\"uint256\"}],\"internalType\":\"struct DagVote\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"readSentDagVoteCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"}],\"name\":\"readSentDagVoteDepthDiff\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"}],\"name\":\"readSentDagVoteDistDiff\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"}],\"name\":\"readSentDagVoteTotalWeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"}],\"name\":\"readSentTreeVote\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recalculateAllReputation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"removeAllRecDagVotes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"}],\"name\":\"removeAllSentDagVotes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"removeDagVote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"root\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"}],\"name\":\"switchPositionWithParent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenSymbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unlocked\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"rPos\",\"type\":\"uint256\"}],\"name\":\"unsafeReplaceRecDagVoteWithLast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"findNthParent(address,uint256)\":{\"notice\":\"~MRRD\"},\"handleDagVoteReplace(address,address,address,uint256,uint256)\":{\"notice\":\"here we are replacing the replaced, keeping our old dagVotes. the voter address, the recipient of the new tree Vote, ( we need this case if replaced = 0, otherwise it is the replaced treeVote) replace is if we are switching positions with a voter, in this case the dist in DagVote becomes 0 for new descendants, and stops being 0 for the old now non-descendants. note we don't care about where we come from\"},\"moveTreeVote(address,address)\":{\"notice\":\"the strategy here is we remove the mover, create the new tree strcuture, check Dag structure, and add him back.\"},\"root()\":{\"notice\":\"todo: maybe have root be recTreeVote[address(1)][0] instead of a separate variable.\"},\"unsafeReplaceRecDagVoteWithLast(address,uint256)\":{\"notice\":\"careful, does not delete the opposite!\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Anthill2.sol\":\"Anthill2\"},\"evmVersion\":\"paris\",\"libraries\":{\"src/AnthillInner.sol:AnthillInner\":\"0x46cd6bedb95dab694ab3bfc5ec7b6df2209837e3\"},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"src/Anthill2.sol\":{\"keccak256\":\"0xc09688d6c31eeeda345516630fee579ca1ce1781db39672b77f8acd05ce13ee9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://1bb5693cfe6a03dd3169c26650e8ef565a4439ed207d3f163594f5fb448ad78a\",\"dweb:/ipfs/QmZ8ftusTzypu4fUxzjVgzRPP2H5Bsv9eXB1Q2Um4KP86j\"]},\"src/IAnthill.sol\":{\"keccak256\":\"0xa9cd21543e1f03d2ddd9b626ca86ff107679f7ff9969b6a2a46c0f18655f86c8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e233510ca78d9e8ae42bf4dbff9468f37e0a6dd7a723ac48b9c0a7b2a9504d9\",\"dweb:/ipfs/QmT6YwpSD1U5doQkrZJtH2YBTqDwQpfo4mQpMso4QzoLqt\"]}},\"version\":1}",
"metadata": {
"compiler": { "version": "0.8.24+commit.e11b9ed9" },
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "address",
"name": "voter",
"type": "address",
"indexed": false
},
{
"internalType": "address",
"name": "recipient",
"type": "address",
"indexed": false
},
{
"internalType": "uint256",
"name": "weight",
"type": "uint256",
"indexed": false
}
],
"type": "event",
"name": "AddDagVoteEvent",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "voter",
"type": "address",
"indexed": false
},
{
"internalType": "string",
"name": "newName",
"type": "string",
"indexed": false
}
],
"type": "event",
"name": "ChangeNameEvent",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "voter",
"type": "address",
"indexed": false
},
{
"internalType": "string",
"name": "name",
"type": "string",
"indexed": false
},
{
"internalType": "address",
"name": "recipient",
"type": "address",
"indexed": false
}
],
"type": "event",
"name": "JoinTreeEvent",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "voter",
"type": "address",
"indexed": false
}
],
"type": "event",
"name": "LeaveTreeEvent",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "voter",
"type": "address",
"indexed": false
},
{
"internalType": "address",
"name": "recipient",
"type": "address",
"indexed": false
}
],
"type": "event",
"name": "MoveTreeVoteEvent",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "voter",
"type": "address",
"indexed": false
},
{
"internalType": "address",
"name": "recipient",
"type": "address",
"indexed": false
}
],
"type": "event",
"name": "RemoveDagVoteEvent",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "voter",
"type": "address",
"indexed": false
}
],
"type": "event",
"name": "SwitchPositionWithParentEvent",