-
Notifications
You must be signed in to change notification settings - Fork 0
/
SolnSquareVerifier.json
7813 lines (7813 loc) · 399 KB
/
SolnSquareVerifier.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
{
"contractName": "SolnSquareVerifier",
"abi": [
{
"constant": true,
"inputs": [
{
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "name",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "tokenId",
"type": "uint256"
}
],
"name": "getApproved",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "to",
"type": "address"
},
{
"name": "tokenId",
"type": "uint256"
}
],
"name": "approve",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "from",
"type": "address"
},
{
"name": "to",
"type": "address"
},
{
"name": "tokenId",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_myid",
"type": "bytes32"
},
{
"name": "_result",
"type": "string"
}
],
"name": "__callback",
"outputs": [],
"payable": false,
"stateMutability": "pure",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "owner",
"type": "address"
},
{
"name": "index",
"type": "uint256"
}
],
"name": "tokenOfOwnerByIndex",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_myid",
"type": "bytes32"
},
{
"name": "_result",
"type": "string"
},
{
"name": "_proof",
"type": "bytes"
}
],
"name": "__callback",
"outputs": [],
"payable": false,
"stateMutability": "pure",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "unpause",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "from",
"type": "address"
},
{
"name": "to",
"type": "address"
},
{
"name": "tokenId",
"type": "uint256"
}
],
"name": "safeTransferFrom",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "index",
"type": "uint256"
}
],
"name": "tokenByIndex",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "tokenId",
"type": "uint256"
}
],
"name": "ownerOf",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "owner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "pause",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "owner",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "isOwner",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "symbol",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "to",
"type": "address"
},
{
"name": "approved",
"type": "bool"
}
],
"name": "setApprovalForAll",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "from",
"type": "address"
},
{
"name": "to",
"type": "address"
},
{
"name": "tokenId",
"type": "uint256"
},
{
"name": "_data",
"type": "bytes"
}
],
"name": "safeTransferFrom",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "tokenId",
"type": "uint256"
}
],
"name": "tokenURI",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "baseTokenURI",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "owner",
"type": "address"
},
{
"name": "operator",
"type": "address"
}
],
"name": "isApprovedForAll",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"name": "verifierAddress",
"type": "address"
},
{
"name": "name",
"type": "string"
},
{
"name": "symbol",
"type": "string"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "index",
"type": "uint256"
},
{
"indexed": false,
"name": "account",
"type": "address"
}
],
"name": "SolutionAdded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "from",
"type": "address"
},
{
"indexed": true,
"name": "to",
"type": "address"
},
{
"indexed": true,
"name": "tokenId",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "owner",
"type": "address"
},
{
"indexed": true,
"name": "approved",
"type": "address"
},
{
"indexed": true,
"name": "tokenId",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "owner",
"type": "address"
},
{
"indexed": true,
"name": "operator",
"type": "address"
},
{
"indexed": false,
"name": "approved",
"type": "bool"
}
],
"name": "ApprovalForAll",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "account",
"type": "address"
}
],
"name": "Paused",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "account",
"type": "address"
}
],
"name": "Unpaused",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"constant": false,
"inputs": [
{
"name": "solutionHash",
"type": "bytes32"
},
{
"name": "account",
"type": "address"
}
],
"name": "addSolution",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_to",
"type": "address"
},
{
"name": "a",
"type": "uint256[2]"
},
{
"name": "b",
"type": "uint256[2][2]"
},
{
"name": "c",
"type": "uint256[2]"
},
{
"name": "input",
"type": "uint256[2]"
}
],
"name": "canMintToken",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "to",
"type": "address"
},
{
"name": "a",
"type": "uint256[2]"
},
{
"name": "b",
"type": "uint256[2][2]"
},
{
"name": "c",
"type": "uint256[2]"
},
{
"name": "input",
"type": "uint256[2]"
}
],
"name": "mint",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "to",
"type": "address"
},
{
"name": "tokenId",
"type": "uint256"
}
],
"name": "mint",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"metadata": "{\"compiler\":{\"version\":\"0.5.2+commit.1df8f40c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_myid\",\"type\":\"bytes32\"},{\"name\":\"_result\",\"type\":\"string\"}],\"name\":\"__callback\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_myid\",\"type\":\"bytes32\"},{\"name\":\"_result\",\"type\":\"string\"},{\"name\":\"_proof\",\"type\":\"bytes\"}],\"name\":\"__callback\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"a\",\"type\":\"uint256[2]\"},{\"name\":\"b\",\"type\":\"uint256[2][2]\"},{\"name\":\"c\",\"type\":\"uint256[2]\"},{\"name\":\"input\",\"type\":\"uint256[2]\"}],\"name\":\"mint\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"a\",\"type\":\"uint256[2]\"},{\"name\":\"b\",\"type\":\"uint256[2][2]\"},{\"name\":\"c\",\"type\":\"uint256[2]\"},{\"name\":\"input\",\"type\":\"uint256[2]\"}],\"name\":\"canMintToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"},{\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"solutionHash\",\"type\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addSolution\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"baseTokenURI\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"verifierAddress\",\"type\":\"address\"},{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"symbol\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"SolutionAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"isApprovedForAll(address,address)\":{\"details\":\"Tells whether an operator is approved by a given owner\",\"params\":{\"operator\":\"operator address which you want to query the approval of\",\"owner\":\"owner address which you want to query the approval of\"},\"return\":\"bool whether the given operator is approved by the given owner\"},\"isOwner()\":{\"return\":\"true if `msg.sender` is the owner of the contract.\"},\"owner()\":{\"return\":\"the address of the owner.\"},\"pause()\":{\"details\":\"called by the owner to pause, triggers stopped state\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Sets or unsets the approval of a given operator An operator is allowed to transfer all tokens of the sender on their behalf\",\"params\":{\"approved\":\"representing the status of the approval to be set\",\"to\":\"operator address to set the approval\"}},\"supportsInterface(bytes4)\":{\"details\":\"implement supportsInterface(bytes4) using a lookup table\"},\"tokenByIndex(uint256)\":{\"details\":\"Gets the token ID at a given index of all the tokens in this contract Reverts if the index is greater or equal to the total number of tokens\",\"params\":{\"index\":\"uint256 representing the index to be accessed of the tokens list\"},\"return\":\"uint256 token ID at the given index of the tokens list\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"Gets the token ID at a given index of the tokens list of the requested owner\",\"params\":{\"index\":\"uint256 representing the index to be accessed of the requested tokens list\",\"owner\":\"address owning the tokens list to be accessed\"},\"return\":\"uint256 token ID at the given index of the tokens list owned by the requested address\"},\"totalSupply()\":{\"details\":\"Gets the total amount of tokens stored by the contract\",\"return\":\"uint256 representing the total amount of tokens\"},\"unpause()\":{\"details\":\"called by the owner to unpause, returns to normal state\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"project:/contracts/SolnSquareVerifier.sol\":\"SolnSquareVerifier\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"openzeppelin-solidity/contracts/drafts/Counters.sol\":{\"keccak256\":\"0x982e18d2e3df98e3339f70f955a4d1fb78411a29963d0ea34621759eef67e86d\",\"urls\":[\"bzzr://a5438906da44343a09c6b47666d3649f269d9d156f2109e147e21595b2284363\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xc2a200a877c4a9b2475c246c54ffecc69ffde3e11af83319c63c2dc5458bac80\",\"urls\":[\"bzzr://c8876e2c39b60f155d748d71d715c8f3903fae5a405ac599adcb6ad2f9a583f9\"]},\"openzeppelin-solidity/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xeb8a266ef2da0aa60eea704031902ffd28b2d13dd0e8f5b69bcfb8415f2dad85\",\"urls\":[\"bzzr://393e9843d41c0652f115378cc58083c4acc4d83f7999fe22932d5e237c215d3f\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0xea16b9933153c647242ba50b3e494fb133063d49f1fa81823f35a8c28754142e\",\"urls\":[\"bzzr://aa2b2eb534149525e194341c01cadf666668a1b7d679a268d10e23570a7e26b1\"]},\"project:/contracts/ERC721Mintable.sol\":{\"keccak256\":\"0xe2dcbd46b0d0f2e4271404e1529656971a1ebc3fcb7dc9d568207447240f4ae3\",\"urls\":[\"bzzr://f975dfbe245478ba4253832c3e4335e5cc2e85df539d848173a3755745dfd232\"]},\"project:/contracts/Oraclize.sol\":{\"keccak256\":\"0x0496bbbdfcac10225e530b25f27c56d65906708fab6960e61974ca02e67dfcab\",\"urls\":[\"bzzr://3a4d16a293262831a5ede2033d34850450274fc82b629c29710d980788267ce3\"]},\"project:/contracts/SolnSquareVerifier.sol\":{\"keccak256\":\"0xa72a0ab5840d40579d1d57951c50661a53b73c2bcdf6c6e7eb21ea3e5a769775\",\"urls\":[\"bzzr://6e316eef7523225e58589e920a6443bc416d6dc6a05bc371cbbf8e9a215d40ca\"]},\"project:/contracts/SquareVerifier.sol\":{\"keccak256\":\"0xe5e8e02532a5bfbc5622585beba6d60cd6818fb423a5f491f5ac752dbcead39f\",\"urls\":[\"bzzr://7a1e2b0c945dd2993c8c6dda37f5b94411338fff32192814345794ac56892653\"]}},\"version\":1}",
"bytecode": "0x60806040523480156200001157600080fd5b506040516200442d3803806200442d833981018060405260608110156200003757600080fd5b810190808051906020019092919080516401000000008111156200005a57600080fd5b828101905060208101848111156200007157600080fd5b81518560018202830111640100000000821117156200008f57600080fd5b50509291906020018051640100000000811115620000ac57600080fd5b82810190506020810184811115620000c357600080fd5b8151856001820283011164010000000082111715620000e157600080fd5b505092919050505081818181606060405190810160405280603f8152602001620043ee603f9139336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060146101000a81548160ff0219169083151502179055506200021b6301ffc9a77c0100000000000000000000000000000000000000000000000000000000026200036c640100000000026401000000009004565b620002586380ac58cd7c0100000000000000000000000000000000000000000000000000000000026200036c640100000000026401000000009004565b6200029563780e9d637c0100000000000000000000000000000000000000000000000000000000026200036c640100000000026401000000009004565b82600f9080519060200190620002ad9291906200042a565b508160109080519060200190620002c69291906200042a565b508060119080519060200190620002df9291906200042a565b506200031d635b5e139f7c0100000000000000000000000000000000000000000000000000000000026200036c640100000000026401000000009004565b505050505082601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050620004d9565b63ffffffff7c010000000000000000000000000000000000000000000000000000000002817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614151515620003be57600080fd5b6001806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200046d57805160ff19168380011785556200049e565b828001600101855582156200049e579182015b828111156200049d57825182559160200191906001019062000480565b5b509050620004ad9190620004b1565b5090565b620004d691905b80821115620004d2576000816000905550600101620004b8565b5090565b90565b613f0580620004e96000396000f3fe608060405234801561001057600080fd5b50600436106101e1576000357c0100000000000000000000000000000000000000000000000000000000900480634f6ccce711610116578063a22cb465116100b4578063d3aaceab1161008e578063d3aaceab14610e8e578063d547cfb714610edc578063e985e9c514610f5f578063f2fde38b14610fdb576101e1565b8063a22cb46514610c92578063b88d4fde14610ce2578063c87b56dd14610de7576101e1565b80638456cb59116100f05780638456cb5914610b995780638da5cb5b14610ba35780638f32d59b14610bed57806395d89b4114610c0f576101e1565b80634f6ccce714610a915780636352211e14610ad357806370a0823114610b41576101e1565b80632f745c59116101835780633f4ba83a1161015d5780633f4ba83a1461083257806340c10f191461083c57806342842e0e146108a2578063477dea6a14610910576101e1565b80632f745c59146104db57806338bbfa501461053d5780633a77e66114610699576101e1565b8063095ea7b3116101bf578063095ea7b31461033c57806318160ddd1461038a57806323b872dd146103a857806327dc297e14610416576101e1565b806301ffc9a7146101e657806306fdde031461024b578063081812fc146102ce575b600080fd5b610231600480360360208110156101fc57600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061101f565b604051808215151515815260200191505060405180910390f35b610253611087565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610293578082015181840152602081019050610278565b50505050905090810190601f1680156102c05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102fa600480360360208110156102e457600080fd5b8101908080359060200190929190505050611129565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103886004803603604081101561035257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611166565b005b610392611360565b6040518082815260200191505060405180910390f35b610414600480360360608110156103be57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061136d565b005b6104d96004803603604081101561042c57600080fd5b81019080803590602001909291908035906020019064010000000081111561045357600080fd5b82018360208201111561046557600080fd5b8035906020019184600183028401116401000000008311171561048757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611392565b005b610527600480360360408110156104f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113d5565b6040518082815260200191505060405180910390f35b6106976004803603606081101561055357600080fd5b81019080803590602001909291908035906020019064010000000081111561057a57600080fd5b82018360208201111561058c57600080fd5b803590602001918460018302840111640100000000831117156105ae57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561061157600080fd5b82018360208201111561062357600080fd5b8035906020019184600183028401116401000000008311171561064557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061144c565b005b61081860048036036101608110156106b057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080604001906002806020026040519081016040528092919082600260200280828437600081840152601f19601f82011690508083019250505050505091929192908060800190600280602002604051908101604052809291906000905b82821015610785578382604002016002806020026040519081016040528092919082600260200280828437600081840152601f19601f82011690508083019250505050505081526020019060010190610731565b50505050919291929080604001906002806020026040519081016040528092919082600260200280828437600081840152601f19601f820116905080830192505050505050919291929080604001906002806020026040519081016040528092919082600260200280828437600081840152601f19601f8201169050808301925050505050509192919290505050611451565b604051808215151515815260200191505060405180910390f35b61083a61185c565b005b6108886004803603604081101561085257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a0a565b604051808215151515815260200191505060405180910390f35b61090e600480360360608110156108b857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b78565b005b610a8f600480360361016081101561092757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080604001906002806020026040519081016040528092919082600260200280828437600081840152601f19601f82011690508083019250505050505091929192908060800190600280602002604051908101604052809291906000905b828210156109fc578382604002016002806020026040519081016040528092919082600260200280828437600081840152601f19601f820116905080830192505050505050815260200190600101906109a8565b50505050919291929080604001906002806020026040519081016040528092919082600260200280828437600081840152601f19601f820116905080830192505050505050919291929080604001906002806020026040519081016040528092919082600260200280828437600081840152601f19601f8201169050808301925050505050509192919290505050611b99565b005b610abd60048036036020811015610aa757600080fd5b8101908080359060200190929190505050611ecc565b6040518082815260200191505060405180910390f35b610aff60048036036020811015610ae957600080fd5b8101908080359060200190929190505050611f04565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610b8360048036036020811015610b5757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f41565b6040518082815260200191505060405180910390f35b610ba1611f91565b005b610bab612140565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610bf5612169565b604051808215151515815260200191505060405180910390f35b610c176121c0565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c57578082015181840152602081019050610c3c565b50505050905090810190601f168015610c845780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610ce060048036036040811015610ca857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612262565b005b610de560048036036080811015610cf857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610d5f57600080fd5b820183602082011115610d7157600080fd5b80359060200191846001830284011164010000000083111715610d9357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061239e565b005b610e1360048036036020811015610dfd57600080fd5b81019080803590602001909291905050506123c6565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610e53578082015181840152602081019050610e38565b50505050905090810190601f168015610e805780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610eda60048036036040811015610ea457600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061248f565b005b610ee461272d565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610f24578082015181840152602081019050610f09565b50505050905090810190601f168015610f515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610fc160048036036040811015610f7557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506127cf565b604051808215151515815260200191505060405180910390f35b61101d60048036036020811015610ff157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612863565b005b600060016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b6060600f8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561111f5780601f106110f45761010080835404028352916020019161111f565b820191906000526020600020905b81548152906001019060200180831161110257829003601f168201915b5050505050905090565b60006003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061117182611f04565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611217576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f43616e6e6f7420617070726f766520746f20796f757273656c6600000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611257575061125681336127cf565b5b15156112ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613e8e602b913960400191505060405180910390fd5b826003600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b6000600880549050905090565b6113773382612a21565b151561138257600080fd5b61138d838383612ab6565b505050565b6113d1828260006040519080825280601f01601f1916602001820160405280156113cb5781602001600182028038833980820191505090505b5061144c565b5050565b60006113e083611f41565b821015156113ed57600080fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561143957fe5b9060005260206000200154905092915050565b505050565b600080858585856040516020018085600260200280838360005b8381101561148657808201518184015260208101905061146b565b505050509050018460026000925b818410156114da5782846020020151600260200280838360005b838110156114c95780820151818401526020810190506114ae565b505050509050019260010192611494565b9250505083600260200280838360005b838110156115055780820151818401526020810190506114ea565b5050505090500182600260200280838360005b83811015611533578082015181840152602081019050611518565b505050509050019450505050506040516020818303038152906040528051906020012090506014600082815260200190815260200160002060009054906101000a900460ff161515156115ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536f6c7574696f6e20686173206265656e207375626d6974746564000000000081525060200191505060405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663621e9ec0878787876040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085600260200280838360005b8381101561168657808201518184015260208101905061166b565b505050509050018460026000925b818410156116da5782846020020151600260200280838360005b838110156116c95780820151818401526020810190506116ae565b505050509050019260010192611694565b9250505083600260200280838360005b838110156117055780820151818401526020810190506116ea565b5050505090500182600260200280838360005b83811015611733578082015181840152602081019050611718565b50505050905001945050505050602060405180830381600087803b15801561175a57600080fd5b505af115801561176e573d6000803e3d6000fd5b505050506040513d602081101561178457600080fd5b81019080805190602001909291905050501515611809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f7665726966795478206661696c6564000000000000000000000000000000000081525060200191505060405180910390fd5b611813818861248f565b61182287601380549050611a0a565b5060016015600083815260200190815260200160002060010160146101000a81548160ff0219169083151502179055505095945050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611920576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f43616c6c6572206973206e6f742074686520636f6e7472616374206f776e657281525060200191505060405180910390fd5b60011515600060149054906101000a900460ff1615151415156119ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f6e7472616374206973206e6f742063757272656e746c792070617573656481525060200191505060405180910390fd5b60008060146101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa60405160405180910390a2565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ad0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f43616c6c6572206973206e6f742074686520636f6e7472616374206f776e657281525060200191505060405180910390fd5b60001515600060149054906101000a900460ff161515141515611b5b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f436f6e74726163742069732063757272656e746c79207061757365640000000081525060200191505060405180910390fd5b611b658383612ada565b611b6e82612afb565b6001905092915050565b611b94838383602060405190810160405280600081525061239e565b505050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663621e9ec0858585856040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085600260200280838360005b83811015611c31578082015181840152602081019050611c16565b505050509050018460026000925b81841015611c855782846020020151600260200280838360005b83811015611c74578082015181840152602081019050611c59565b505050509050019260010192611c3f565b9250505083600260200280838360005b83811015611cb0578082015181840152602081019050611c95565b5050505090500182600260200280838360005b83811015611cde578082015181840152602081019050611cc3565b50505050905001945050505050602060405180830381600087803b158015611d0557600080fd5b505af1158015611d19573d6000803e3d6000fd5b505050506040513d6020811015611d2f57600080fd5b81019080805190602001909291905050501515611db4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f736f6c7574696f6e206e6f742076616c6964000000000000000000000000000081525060200191505060405180910390fd5b6000848484846040516020018085600260200280838360005b83811015611de8578082015181840152602081019050611dcd565b505050509050018460026000925b81841015611e3c5782846020020151600260200280838360005b83811015611e2b578082015181840152602081019050611e10565b505050509050019260010192611df6565b9250505083600260200280838360005b83811015611e67578082015181840152602081019050611e4c565b5050505090500182600260200280838360005b83811015611e95578082015181840152602081019050611e7a565b50505050905001945050505050604051602081830303815290604052805190602001209050611ec4818761248f565b505050505050565b6000611ed6611360565b82101515611ee357600080fd5b600882815481101515611ef257fe5b90600052602060002001549050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000611f8a600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020612c4e565b9050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612055576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f43616c6c6572206973206e6f742074686520636f6e7472616374206f776e657281525060200191505060405180910390fd5b60001515600060149054906101000a900460ff1615151415156120e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f436f6e74726163742069732063757272656e746c79207061757365640000000081525060200191505060405180910390fd5b6001600060146101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25860405160405180910390a2565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b606060108054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122585780601f1061222d57610100808354040283529160200191612258565b820191906000526020600020905b81548152906001019060200180831161223b57829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561229d57600080fd5b80600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a35050565b6123a984848461136d565b6123b584848484612c5c565b15156123c057600080fd5b50505050565b60606123d182612e7f565b15156123dc57600080fd5b601260008381526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124835780601f1061245857610100808354040283529160200191612483565b820191906000526020600020905b81548152906001019060200180831161246657829003601f168201915b50505050509050919050565b60001515600060149054906101000a900460ff16151514151561251a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f436f6e74726163742069732063757272656e746c79207061757365640000000081525060200191505060405180910390fd5b6000600160138054905001905061252f613d82565b6060604051908101604052808381526020018473ffffffffffffffffffffffffffffffffffffffff168152602001600015158152509050601381908060018154018082558091505090600182039060005260206000209060020201600090919290919091506000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160146101000a81548160ff02191690831515021790555050505060016014600086815260200190815260200160002060006101000a81548160ff02191690831515021790555080601560008681526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160146101000a81548160ff0219169083151502179055509050507f078793128cefb19aac38a33f9e5df39f67716907f6d747e8065545699e0b2b8d8284604051808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150505050565b606060118054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127c55780601f1061279a576101008083540402835291602001916127c5565b820191906000526020600020905b8154815290600101906020018083116127a857829003601f168201915b5050505050905090565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612927576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f43616c6c6572206973206e6f742074686520636f6e7472616374206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561296357600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080612a2d83611f04565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480612a9c57508373ffffffffffffffffffffffffffffffffffffffff16612a8484611129565b73ffffffffffffffffffffffffffffffffffffffff16145b80612aad5750612aac81856127cf565b5b91505092915050565b612ac1838383612ef1565b612acb838261316d565b612ad58282613311565b505050565b612ae482826133d8565b612aee8282613311565b612af78161364d565b5050565b612b0481612e7f565b1515612b78576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f546f6b656e20646f6573206e6f7420657869737400000000000000000000000081525060200191505060405180910390fd5b612c2460118054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612c115780601f10612be657610100808354040283529160200191612c11565b820191906000526020600020905b815481529060010190602001808311612bf457829003601f168201915b5050505050612c1f83613699565b6137f2565b601260008381526020019081526020016000209080519060200190612c4a929190613dbc565b5050565b600081600001549050919050565b6000612c7d8473ffffffffffffffffffffffffffffffffffffffff16613839565b1515612c8c5760019050612e77565b60008473ffffffffffffffffffffffffffffffffffffffff1663150b7a02338887876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612d83578082015181840152602081019050612d68565b50505050905090810190601f168015612db05780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015612dd257600080fd5b505af1158015612de6573d6000803e3d6000fd5b505050506040513d6020811015612dfc57600080fd5b8101908080519060200190929190505050905063150b7a027c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150505b949350505050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415915050919050565b612efa81611f04565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515612f7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613eb96021913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515613024576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f496e76616c696420746f2061646472657373000000000000000000000000000081525060200191505060405180910390fd5b61302d8161384c565b613074600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061390c565b6130bb600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061392f565b816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60006131c56001600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905061394590919063ffffffff16565b905060006007600084815260200190815260200160002054905081811415156132b8576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110151561323657fe5b9060005260206000200154905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110151561329057fe5b9060005260206000200181905550816007600083815260200190815260200160002081905550505b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548091906001900361330a9190613e3c565b5050505050565b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490506007600083815260200190815260200160002081905550600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190806001815401808255809150509060018203906000526020600020016000909192909190915055505050565b600073ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156134af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f546f6b656e2065786973747320616c726561647900000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515613554576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f496e76616c696420746f2061646472657373000000000000000000000000000081525060200191505060405180910390fd5b816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506135ed600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061392f565b808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505090600182039060005260206000200160009091929091909150555050565b606060008214156136e1576040805190810160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506137ed565b600082905060005b60008214151561370f578080600101915050600a8281151561370757fe5b0491506136e9565b6060816040519080825280601f01601f1916602001820160405280156137445781602001600182028038833980820191505090505b50905060006001830390505b6000861415156137e557600a8681151561376657fe5b066030017f0100000000000000000000000000000000000000000000000000000000000000028282806001900393508151811015156137a157fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a868115156137dd57fe5b049550613750565b819450505050505b919050565b60606138318383602060405190810160405280600081525060206040519081016040528060008152506020604051908101604052806000815250613967565b905092915050565b600080823b905060008111915050919050565b600073ffffffffffffffffffffffffffffffffffffffff166003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156139095760006003600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b6139246001826000015461394590919063ffffffff16565b816000018190555050565b6001816000016000828254019250508190555050565b600082821115151561395657600080fd5b600082840390508091505092915050565b6060808690506060869050606086905060608690506060869050606081518351855187518951010101016040519080825280601f01601f1916602001820160405280156139c35781602001600182028038833980820191505090505b509050606081905060008090506000809050600090505b8851811015613a8d5788818151811015156139f157fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000028383806001019450815181101515613a5057fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806001019150506139da565b600090505b8751811015613b45578781815181101515613aa957fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000028383806001019450815181101515613b0857fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080600101915050613a92565b600090505b8651811015613bfd578681815181101515613b6157fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000028383806001019450815181101515613bc057fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080600101915050613b4a565b600090505b8551811015613cb5578581815181101515613c1957fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000028383806001019450815181101515613c7857fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080600101915050613c02565b600090505b8451811015613d6d578481815181101515613cd157fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000028383806001019450815181101515613d3057fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080600101915050613cba565b82995050505050505050505095945050505050565b60606040519081016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000151581525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613dfd57805160ff1916838001178555613e2b565b82800160010185558215613e2b579182015b82811115613e2a578251825591602001919060010190613e0f565b5b509050613e389190613e68565b5090565b815481835581811115613e6357818360005260206000209182019101613e629190613e68565b5b505050565b613e8a91905b80821115613e86576000816000905550600101613e6e565b5090565b9056fe43616c6c6572206973206e6f7420617574686f72697a656420616761696e7374207468697320746f6b656e4f6e6c7920746f6b656e206f776e65722063616e20706572666f726d2074686973a165627a7a72305820faf39a9c64017eac359936e9c56a476cf6f108634a31667dec2771b430111a37002968747470733a2f2f73332d75732d776573742d322e616d617a6f6e6177732e636f6d2f756461636974792d626c6f636b636861696e2f63617073746f6e652f",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101e1576000357c0100000000000000000000000000000000000000000000000000000000900480634f6ccce711610116578063a22cb465116100b4578063d3aaceab1161008e578063d3aaceab14610e8e578063d547cfb714610edc578063e985e9c514610f5f578063f2fde38b14610fdb576101e1565b8063a22cb46514610c92578063b88d4fde14610ce2578063c87b56dd14610de7576101e1565b80638456cb59116100f05780638456cb5914610b995780638da5cb5b14610ba35780638f32d59b14610bed57806395d89b4114610c0f576101e1565b80634f6ccce714610a915780636352211e14610ad357806370a0823114610b41576101e1565b80632f745c59116101835780633f4ba83a1161015d5780633f4ba83a1461083257806340c10f191461083c57806342842e0e146108a2578063477dea6a14610910576101e1565b80632f745c59146104db57806338bbfa501461053d5780633a77e66114610699576101e1565b8063095ea7b3116101bf578063095ea7b31461033c57806318160ddd1461038a57806323b872dd146103a857806327dc297e14610416576101e1565b806301ffc9a7146101e657806306fdde031461024b578063081812fc146102ce575b600080fd5b610231600480360360208110156101fc57600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061101f565b604051808215151515815260200191505060405180910390f35b610253611087565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610293578082015181840152602081019050610278565b50505050905090810190601f1680156102c05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102fa600480360360208110156102e457600080fd5b8101908080359060200190929190505050611129565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103886004803603604081101561035257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611166565b005b610392611360565b6040518082815260200191505060405180910390f35b610414600480360360608110156103be57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061136d565b005b6104d96004803603604081101561042c57600080fd5b81019080803590602001909291908035906020019064010000000081111561045357600080fd5b82018360208201111561046557600080fd5b8035906020019184600183028401116401000000008311171561048757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611392565b005b610527600480360360408110156104f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113d5565b6040518082815260200191505060405180910390f35b6106976004803603606081101561055357600080fd5b81019080803590602001909291908035906020019064010000000081111561057a57600080fd5b82018360208201111561058c57600080fd5b803590602001918460018302840111640100000000831117156105ae57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561061157600080fd5b82018360208201111561062357600080fd5b8035906020019184600183028401116401000000008311171561064557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061144c565b005b61081860048036036101608110156106b057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080604001906002806020026040519081016040528092919082600260200280828437600081840152601f19601f82011690508083019250505050505091929192908060800190600280602002604051908101604052809291906000905b82821015610785578382604002016002806020026040519081016040528092919082600260200280828437600081840152601f19601f82011690508083019250505050505081526020019060010190610731565b50505050919291929080604001906002806020026040519081016040528092919082600260200280828437600081840152601f19601f820116905080830192505050505050919291929080604001906002806020026040519081016040528092919082600260200280828437600081840152601f19601f8201169050808301925050505050509192919290505050611451565b604051808215151515815260200191505060405180910390f35b61083a61185c565b005b6108886004803603604081101561085257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a0a565b604051808215151515815260200191505060405180910390f35b61090e600480360360608110156108b857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b78565b005b610a8f600480360361016081101561092757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080604001906002806020026040519081016040528092919082600260200280828437600081840152601f19601f82011690508083019250505050505091929192908060800190600280602002604051908101604052809291906000905b828210156109fc578382604002016002806020026040519081016040528092919082600260200280828437600081840152601f19601f820116905080830192505050505050815260200190600101906109a8565b50505050919291929080604001906002806020026040519081016040528092919082600260200280828437600081840152601f19601f820116905080830192505050505050919291929080604001906002806020026040519081016040528092919082600260200280828437600081840152601f19601f8201169050808301925050505050509192919290505050611b99565b005b610abd60048036036020811015610aa757600080fd5b8101908080359060200190929190505050611ecc565b6040518082815260200191505060405180910390f35b610aff60048036036020811015610ae957600080fd5b8101908080359060200190929190505050611f04565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610b8360048036036020811015610b5757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f41565b6040518082815260200191505060405180910390f35b610ba1611f91565b005b610bab612140565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610bf5612169565b604051808215151515815260200191505060405180910390f35b610c176121c0565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c57578082015181840152602081019050610c3c565b50505050905090810190601f168015610c845780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610ce060048036036040811015610ca857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612262565b005b610de560048036036080811015610cf857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610d5f57600080fd5b820183602082011115610d7157600080fd5b80359060200191846001830284011164010000000083111715610d9357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061239e565b005b610e1360048036036020811015610dfd57600080fd5b81019080803590602001909291905050506123c6565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610e53578082015181840152602081019050610e38565b50505050905090810190601f168015610e805780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610eda60048036036040811015610ea457600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061248f565b005b610ee461272d565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610f24578082015181840152602081019050610f09565b50505050905090810190601f168015610f515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610fc160048036036040811015610f7557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506127cf565b604051808215151515815260200191505060405180910390f35b61101d60048036036020811015610ff157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612863565b005b600060016000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b6060600f8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561111f5780601f106110f45761010080835404028352916020019161111f565b820191906000526020600020905b81548152906001019060200180831161110257829003601f168201915b5050505050905090565b60006003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061117182611f04565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611217576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f43616e6e6f7420617070726f766520746f20796f757273656c6600000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611257575061125681336127cf565b5b15156112ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613e8e602b913960400191505060405180910390fd5b826003600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b6000600880549050905090565b6113773382612a21565b151561138257600080fd5b61138d838383612ab6565b505050565b6113d1828260006040519080825280601f01601f1916602001820160405280156113cb5781602001600182028038833980820191505090505b5061144c565b5050565b60006113e083611f41565b821015156113ed57600080fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561143957fe5b9060005260206000200154905092915050565b505050565b600080858585856040516020018085600260200280838360005b8381101561148657808201518184015260208101905061146b565b505050509050018460026000925b818410156114da5782846020020151600260200280838360005b838110156114c95780820151818401526020810190506114ae565b505050509050019260010192611494565b9250505083600260200280838360005b838110156115055780820151818401526020810190506114ea565b5050505090500182600260200280838360005b83811015611533578082015181840152602081019050611518565b505050509050019450505050506040516020818303038152906040528051906020012090506014600082815260200190815260200160002060009054906101000a900460ff161515156115ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536f6c7574696f6e20686173206265656e207375626d6974746564000000000081525060200191505060405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663621e9ec0878787876040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085600260200280838360005b8381101561168657808201518184015260208101905061166b565b505050509050018460026000925b818410156116da5782846020020151600260200280838360005b838110156116c95780820151818401526020810190506116ae565b505050509050019260010192611694565b9250505083600260200280838360005b838110156117055780820151818401526020810190506116ea565b5050505090500182600260200280838360005b83811015611733578082015181840152602081019050611718565b50505050905001945050505050602060405180830381600087803b15801561175a57600080fd5b505af115801561176e573d6000803e3d6000fd5b505050506040513d602081101561178457600080fd5b81019080805190602001909291905050501515611809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f7665726966795478206661696c6564000000000000000000000000000000000081525060200191505060405180910390fd5b611813818861248f565b61182287601380549050611a0a565b5060016015600083815260200190815260200160002060010160146101000a81548160ff0219169083151502179055505095945050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611920576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f43616c6c6572206973206e6f742074686520636f6e7472616374206f776e657281525060200191505060405180910390fd5b60011515600060149054906101000a900460ff1615151415156119ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f6e7472616374206973206e6f742063757272656e746c792070617573656481525060200191505060405180910390fd5b60008060146101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa60405160405180910390a2565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ad0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f43616c6c6572206973206e6f742074686520636f6e7472616374206f776e657281525060200191505060405180910390fd5b60001515600060149054906101000a900460ff161515141515611b5b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f436f6e74726163742069732063757272656e746c79207061757365640000000081525060200191505060405180910390fd5b611b658383612ada565b611b6e82612afb565b6001905092915050565b611b94838383602060405190810160405280600081525061239e565b505050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663621e9ec0858585856040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085600260200280838360005b83811015611c31578082015181840152602081019050611c16565b505050509050018460026000925b81841015611c855782846020020151600260200280838360005b83811015611c74578082015181840152602081019050611c59565b505050509050019260010192611c3f565b9250505083600260200280838360005b83811015611cb0578082015181840152602081019050611c95565b5050505090500182600260200280838360005b83811015611cde578082015181840152602081019050611cc3565b50505050905001945050505050602060405180830381600087803b158015611d0557600080fd5b505af1158015611d19573d6000803e3d6000fd5b505050506040513d6020811015611d2f57600080fd5b81019080805190602001909291905050501515611db4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f736f6c7574696f6e206e6f742076616c6964000000000000000000000000000081525060200191505060405180910390fd5b6000848484846040516020018085600260200280838360005b83811015611de8578082015181840152602081019050611dcd565b505050509050018460026000925b81841015611e3c5782846020020151600260200280838360005b83811015611e2b578082015181840152602081019050611e10565b505050509050019260010192611df6565b9250505083600260200280838360005b83811015611e67578082015181840152602081019050611e4c565b5050505090500182600260200280838360005b83811015611e95578082015181840152602081019050611e7a565b50505050905001945050505050604051602081830303815290604052805190602001209050611ec4818761248f565b505050505050565b6000611ed6611360565b82101515611ee357600080fd5b600882815481101515611ef257fe5b90600052602060002001549050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000611f8a600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020612c4e565b9050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612055576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f43616c6c6572206973206e6f742074686520636f6e7472616374206f776e657281525060200191505060405180910390fd5b60001515600060149054906101000a900460ff1615151415156120e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f436f6e74726163742069732063757272656e746c79207061757365640000000081525060200191505060405180910390fd5b6001600060146101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25860405160405180910390a2565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b606060108054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122585780601f1061222d57610100808354040283529160200191612258565b820191906000526020600020905b81548152906001019060200180831161223b57829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561229d57600080fd5b80600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a35050565b6123a984848461136d565b6123b584848484612c5c565b15156123c057600080fd5b50505050565b60606123d182612e7f565b15156123dc57600080fd5b601260008381526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124835780601f1061245857610100808354040283529160200191612483565b820191906000526020600020905b81548152906001019060200180831161246657829003601f168201915b50505050509050919050565b60001515600060149054906101000a900460ff16151514151561251a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f436f6e74726163742069732063757272656e746c79207061757365640000000081525060200191505060405180910390fd5b6000600160138054905001905061252f613d82565b6060604051908101604052808381526020018473ffffffffffffffffffffffffffffffffffffffff168152602001600015158152509050601381908060018154018082558091505090600182039060005260206000209060020201600090919290919091506000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160146101000a81548160ff02191690831515021790555050505060016014600086815260200190815260200160002060006101000a81548160ff02191690831515021790555080601560008681526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160146101000a81548160ff0219169083151502179055509050507f078793128cefb19aac38a33f9e5df39f67716907f6d747e8065545699e0b2b8d8284604051808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150505050565b606060118054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127c55780601f1061279a576101008083540402835291602001916127c5565b820191906000526020600020905b8154815290600101906020018083116127a857829003601f168201915b5050505050905090565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612927576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f43616c6c6572206973206e6f742074686520636f6e7472616374206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561296357600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080612a2d83611f04565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480612a9c57508373ffffffffffffffffffffffffffffffffffffffff16612a8484611129565b73ffffffffffffffffffffffffffffffffffffffff16145b80612aad5750612aac81856127cf565b5b91505092915050565b612ac1838383612ef1565b612acb838261316d565b612ad58282613311565b505050565b612ae482826133d8565b612aee8282613311565b612af78161364d565b5050565b612b0481612e7f565b1515612b78576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f546f6b656e20646f6573206e6f7420657869737400000000000000000000000081525060200191505060405180910390fd5b612c2460118054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612c115780601f10612be657610100808354040283529160200191612c11565b820191906000526020600020905b815481529060010190602001808311612bf457829003601f168201915b5050505050612c1f83613699565b6137f2565b601260008381526020019081526020016000209080519060200190612c4a929190613dbc565b5050565b600081600001549050919050565b6000612c7d8473ffffffffffffffffffffffffffffffffffffffff16613839565b1515612c8c5760019050612e77565b60008473ffffffffffffffffffffffffffffffffffffffff1663150b7a02338887876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612d83578082015181840152602081019050612d68565b50505050905090810190601f168015612db05780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015612dd257600080fd5b505af1158015612de6573d6000803e3d6000fd5b505050506040513d6020811015612dfc57600080fd5b8101908080519060200190929190505050905063150b7a027c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150505b949350505050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415915050919050565b612efa81611f04565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515612f7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613eb96021913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515613024576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f496e76616c696420746f2061646472657373000000000000000000000000000081525060200191505060405180910390fd5b61302d8161384c565b613074600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061390c565b6130bb600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061392f565b816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60006131c56001600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905061394590919063ffffffff16565b905060006007600084815260200190815260200160002054905081811415156132b8576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110151561323657fe5b9060005260206000200154905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110151561329057fe5b9060005260206000200181905550816007600083815260200190815260200160002081905550505b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548091906001900361330a9190613e3c565b5050505050565b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490506007600083815260200190815260200160002081905550600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190806001815401808255809150509060018203906000526020600020016000909192909190915055505050565b600073ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156134af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f546f6b656e2065786973747320616c726561647900000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515613554576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f496e76616c696420746f2061646472657373000000000000000000000000000081525060200191505060405180910390fd5b816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506135ed600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061392f565b808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505090600182039060005260206000200160009091929091909150555050565b606060008214156136e1576040805190810160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506137ed565b600082905060005b60008214151561370f578080600101915050600a8281151561370757fe5b0491506136e9565b6060816040519080825280601f01601f1916602001820160405280156137445781602001600182028038833980820191505090505b50905060006001830390505b6000861415156137e557600a8681151561376657fe5b066030017f0100000000000000000000000000000000000000000000000000000000000000028282806001900393508151811015156137a157fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a868115156137dd57fe5b049550613750565b819450505050505b919050565b60606138318383602060405190810160405280600081525060206040519081016040528060008152506020604051908101604052806000815250613967565b905092915050565b600080823b905060008111915050919050565b600073ffffffffffffffffffffffffffffffffffffffff166003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156139095760006003600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b6139246001826000015461394590919063ffffffff16565b816000018190555050565b6001816000016000828254019250508190555050565b600082821115151561395657600080fd5b600082840390508091505092915050565b6060808690506060869050606086905060608690506060869050606081518351855187518951010101016040519080825280601f01601f1916602001820160405280156139c35781602001600182028038833980820191505090505b509050606081905060008090506000809050600090505b8851811015613a8d5788818151811015156139f157fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000028383806001019450815181101515613a5057fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806001019150506139da565b600090505b8751811015613b45578781815181101515613aa957fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000028383806001019450815181101515613b0857fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080600101915050613a92565b600090505b8651811015613bfd578681815181101515613b6157fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000028383806001019450815181101515613bc057fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080600101915050613b4a565b600090505b8551811015613cb5578581815181101515613c1957fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000028383806001019450815181101515613c7857fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080600101915050613c02565b600090505b8451811015613d6d578481815181101515613cd157fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000028383806001019450815181101515613d3057fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080600101915050613cba565b82995050505050505050505095945050505050565b60606040519081016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000151581525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613dfd57805160ff1916838001178555613e2b565b82800160010185558215613e2b579182015b82811115613e2a578251825591602001919060010190613e0f565b5b509050613e389190613e68565b5090565b815481835581811115613e6357818360005260206000209182019101613e629190613e68565b5b505050565b613e8a91905b80821115613e86576000816000905550600101613e6e565b5090565b9056fe43616c6c6572206973206e6f7420617574686f72697a656420616761696e7374207468697320746f6b656e4f6e6c7920746f6b656e206f776e65722063616e20706572666f726d2074686973a165627a7a72305820faf39a9c64017eac359936e9c56a476cf6f108634a31667dec2771b430111a370029",
"sourceMap": "525:2566:7:-;;;1223:201;8:9:-1;5:2;;;30:1;27;20:12;5:2;1223:201:7;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1223:201:7;;;;;;;;;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;71:11;66:3;62:21;55:28;;123:4;118:3;114:14;159:9;141:16;138:31;135:2;;;182:1;179;172:12;135:2;219:3;213:10;330:9;325:1;311:12;307:20;289:16;285:43;282:58;261:11;247:12;244:29;233:115;230:2;;;361:1;358;351:12;230:2;0:372;;1223:201:7;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;71:11;66:3;62:21;55:28;;123:4;118:3;114:14;159:9;141:16;138:31;135:2;;;182:1;179;172:12;135:2;219:3;213:10;330:9;325:1;311:12;307:20;289:16;285:43;282:58;261:11;247:12;244:29;233:115;230:2;;;361:1;358;351:12;230:2;0:372;;1223:201:7;;;;;;1357:4;1363:6;22895:4:4;22913:6;21096:312;;;;;;;;;;;;;;;;;;1079:10;1070:6;;:19;;;;;;;;;;;;;;;;;;1137:6;;;;;;;;;;;1104:40;;1133:1;1104:40;;;;;;;;;;;;2688:5;2678:7;;:15;;;;;;;;;;;;;;;;;;3645:40;3245:10;3664:20;;3645:18;;;:40;;;:::i;:::-;5898;5773:10;5917:20;;5898:18;;;:40;;;:::i;:::-;13709:51;13315:10;13728:31;;13709:18;;;:51;;;:::i;:::-;21274:4;21266:5;:12;;;;;;;;;;;;:::i;:::-;;21298:6;21288:7;:16;;;;;;;;;;;;:::i;:::-;;21330:12;21314:13;:28;;;;;;;;;;;;:::i;:::-;;21352:49;20907:10;21371:29;;21352:18;;;:49;;;:::i;:::-;21096:312;;;22790:225;;1401:15:7;1381:8;;:36;;;;;;;;;;;;;;;;;;1223:201;;;525:2566;;4023:158:4;4113:10;4098:25;;:11;:25;;;;;4090:34;;;;;;;;4170:4;4134:20;:33;4155:11;4134:33;;;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;4023:158;:::o;525:2566:7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;",
"deployedSourceMap": "525:2566:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;525:2566:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3783:161:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3783:161:4;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;21495:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;21495:83:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7139:167;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7139:167:4;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6424:709;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6424:709:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14502:94;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8311:210;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8311:210:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15840:127:6;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15840:127:6;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;15840:127:6;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;15840:127:6;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;15840:127:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;15840:127:6;;;;;;;;;;;;;;;:::i;:::-;;14140:210:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14140:210:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15973:221:6;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15973:221:6;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;15973:221:6;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;15973:221:6;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;15973:221:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;15973:221:6;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;15973:221:6;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;15973:221:6;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;15973:221:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;15973:221:6;;;;;;;;;;;;;;;:::i;:::-;;2417:672:7;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;2417:672:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;2417:672:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;2417:672:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;2417:672:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;2417:672:7;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3062:110:4;;;:::i;:::-;;23021:223;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;23021:223:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8527:162;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8527:162:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1913:415:7;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;1913:415:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1913:415:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1913:415:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1913:415:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1913:415:7;;;;;;;;;;;;;;:::i;:::-;;14933:148:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14933:148:4;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6242:108;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6242:108:4;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5951:285;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5951:285:4;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2860:112;;;:::i;:::-;;1599:77;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1764:90;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;21584:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;21584:87:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7598:213;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7598:213:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8695:249;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;8695:249:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;8695:249:4;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8695:249:4;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;8695:249:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;8695:249:4;;;;;;;;;;;;;;;:::i;:::-;;21782:151;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21782:151:4;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;21782:151:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1508:399:7;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1508:399:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21677:99:4;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;21677:99:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8132:173;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8132:173:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1208:328;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1208:328:4;;;;;;;;;;;;;;;;;;;:::i;:::-;;3783:161;3877:4;3904:20;:33;3925:11;3904:33;;;;;;;;;;;;;;;;;;;;;;;;;;;3897:40;;3783:161;;;:::o;21495:83::-;21534:13;21566:5;21559:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21495:83;:::o;7139:167::-;7198:7;7275:15;:24;7291:7;7275:24;;;;;;;;;;;;;;;;;;;;;7268:31;;7139:167;;;:::o;6424:709::-;6487:18;6508:16;6516:7;6508;:16::i;:::-;6487:37;;6625:10;6619:16;;:2;:16;;;;6611:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6812:10;6798:24;;:10;:24;;;:84;;;;6842:40;6859:10;6871;6842:16;:40::i;:::-;6798:84;6777:174;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7040:2;7013:15;:24;7029:7;7013:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;7118:7;7114:2;7093:33;;7102:10;7093:33;;;;;;;;;;;;6424:709;;;:::o;14502:94::-;14546:7;14572:10;:17;;;;14565:24;;14502:94;:::o;8311:210::-;8431:39;8450:10;8462:7;8431:18;:39::i;:::-;8423:48;;;;;;;;8482:32;8496:4;8502:2;8506:7;8482:13;:32::i;:::-;8311:210;;;:::o;15840:127:6:-;15920:40;15931:5;15938:7;15957:1;15947:12;;;;;;;;;;;;;;;;;;;;;;;;;29:1:-1;21:6;17:14;116:4;104:10;96:6;87:34;147:4;139:6;135:17;125:27;;0:156;15947:12:6;;;;15920:10;:40::i;:::-;15840:127;;:::o;14140:210:4:-;14244:7;14283:16;14293:5;14283:9;:16::i;:::-;14275:5;:24;14267:33;;;;;;;;14317:12;:19;14330:5;14317:19;;;;;;;;;;;;;;;14337:5;14317:26;;;;;;;;;;;;;;;;;;14310:33;;14140:210;;;;:::o;15973:221:6:-;;;;:::o;2417:672:7:-;2596:4;2612:20;2662:1;2665;2668;2671:5;2645:32;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2645:32:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2645:32:7;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2645:32:7;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2645:32:7;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2645:32:7;;;2635:43;;;;;;2612:66;;2741:18;:32;2760:12;2741:32;;;;;;;;;;;;;;;;;;;;;2740:33;2719:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2844:8;;;;;;;;;;;:17;;;2862:1;2865;2868;2871:5;2844:33;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2844:33:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2844:33:7;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2844:33:7;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2844:33:7;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2844:33:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2844:33:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2844:33:7;;;;;;;;;;;;;;;;2836:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2961:29;2973:12;2987:2;2961:11;:29::i;:::-;3000:32;3011:2;3015:9;:16;;;;3000:10;:32::i;:::-;;3078:4;3042:12;:26;3055:12;3042:26;;;;;;;;;;;:33;;;:40;;;;;;;;;;;;;;;;;;2417:672;;;;;;;;:::o;3062:110:4:-;872:6;;;;;;;;;;;858:20;;:10;:20;;;850:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2498:4;2487:15;;:7;;;;;;;;;;;:15;;;2479:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3125:5;3115:7;;:15;;;;;;;;;;;;;;;;;;3154:10;3145:20;;;;;;;;;;;;3062:110::o;23021:223::-;23136:4;872:6;;;;;;;;;;;858:20;;:10;:20;;;850:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2389:5;2378:16;;:7;;;;;;;;;;;:16;;;2370:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23156:24;23168:2;23172:7;23156:11;:24::i;:::-;23190:26;23208:7;23190:17;:26::i;:::-;23233:4;23226:11;;23021:223;;;;:::o;8527:162::-;8643:39;8660:4;8666:2;8670:7;8643:39;;;;;;;;;;;;;:16;:39::i;:::-;8527:162;;;:::o;1913:415:7:-;2148:8;;;;;;;;;;;:17;;;2166:1;2169;2172;2175:5;2148:33;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2148:33:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2148:33:7;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2148:33:7;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2148:33:7;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2148:33:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2148:33:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2148:33:7;;;;;;;;;;;;;;;;2140:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2214:20;2264:1;2267;2270;2273:5;2247:32;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2247:32:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2247:32:7;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2247:32:7;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2247:32:7;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2247:32:7;;;2237:43;;;;;;2214:66;;2291:30;2303:12;2317:3;2291:11;:30::i;:::-;1913:415;;;;;;:::o;14933:148:4:-;14991:7;15026:13;:11;:13::i;:::-;15018:5;:21;15010:30;;;;;;;;15057:10;15068:5;15057:17;;;;;;;;;;;;;;;;;;15050:24;;14933:148;;;:::o;6242:108::-;6297:7;6323:11;:20;6335:7;6323:20;;;;;;;;;;;;;;;;;;;;;6316:27;;6242:108;;;:::o;5951:285::-;6006:7;6090:34;:17;:24;6108:5;6090:24;;;;;;;;;;;;;;;:32;:34::i;:::-;6083:41;;5951:285;;;:::o;2860:112::-;872:6;;;;;;;;;;;858:20;;:10;:20;;;850:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2389:5;2378:16;;:7;;;;;;;;;;;:16;;;2370:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2928:4;2918:7;;:14;;;;;;;;;;;;;;;;;;2954:10;2947:18;;;;;;;;;;;;2860:112::o;1599:77::-;1637:7;1663:6;;;;;;;;;;;1656:13;;1599:77;:::o;1764:90::-;1804:4;1841:6;;;;;;;;;;;1827:20;;:10;:20;;;1820:27;;1764:90;:::o;21584:87::-;21625:13;21657:7;21650:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21584:87;:::o;7598:213::-;7683:10;7677:16;;:2;:16;;;;7669:25;;;;;;;;7741:8;7704:18;:30;7723:10;7704:30;;;;;;;;;;;;;;;:34;7735:2;7704:34;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;7791:2;7764:40;;7779:10;7764:40;;;7795:8;7764:40;;;;;;;;;;;;;;;;;;;;;;7598:213;;:::o;8695:249::-;8839:31;8852:4;8858:2;8862:7;8839:12;:31::i;:::-;8888:48;8911:4;8917:2;8921:7;8930:5;8888:22;:48::i;:::-;8880:57;;;;;;;;8695:249;;;;:::o;21782:151::-;21840:13;21873:16;21881:7;21873;:16::i;:::-;21865:25;;;;;;;;21907:10;:19;21918:7;21907:19;;;;;;;;;;;21900:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21782:151;;;:::o;1508:399:7:-;2389:5:4;2378:16;;:7;;;;;;;;;;;:16;;;2370:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1619:21:7;1662:1;1643:9;:16;;;;:20;1619:44;;1673:17;;:::i;:::-;1693:39;;;;;;;;;1702:13;1693:39;;;;1717:7;1693:39;;;;;;1726:5;1693:39;;;;;1673:59;;1742:9;1757:1;1742:17;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;1742:17:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1804:4;1769:18;:32;1788:12;1769:32;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;1847:1;1818:12;:26;1831:12;1818:26;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1863:37;1877:13;1892:7;1863:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;2437:1:4;;1508:399:7;;:::o;21677:99:4:-;21724:13;21756;21749:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21677:99;:::o;8132:173::-;8236:4;8263:18;:25;8282:5;8263:25;;;;;;;;;;;;;;;:35;8289:8;8263:35;;;;;;;;;;;;;;;;;;;;;;;;;8256:42;;8132:173;;;;:::o;1208:328::-;872:6;;;;;;;;;;;858:20;;:10;:20;;;850:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1446:1;1426:22;;:8;:22;;;;1418:31;;;;;;;;1493:8;1464:38;;1485:6;;;;;;;;;;;1464:38;;;;;;;;;;;;1521:8;1512:6;;:17;;;;;;;;;;;;;;;;;;1208:328;:::o;9650:298::-;9759:4;9779:13;9795:16;9803:7;9795;:16::i;:::-;9779:32;;9840:5;9829:16;;:7;:16;;;:63;;;;9885:7;9861:31;;:20;9873:7;9861:11;:20::i;:::-;:31;;;9829:63;:111;;;;9908:32;9925:5;9932:7;9908:16;:32::i;:::-;9829:111;9821:120;;;9650:298;;;;:::o;15456:269::-;15571:38;15591:4;15597:2;15601:7;15571:19;:38::i;:::-;15620:47;15653:4;15659:7;15620:32;:47::i;:::-;15678:40;15706:2;15710:7;15678:27;:40::i;:::-;15456:269;;;:::o;15980:196::-;16043:24;16055:2;16059:7;16043:11;:24::i;:::-;16078:40;16106:2;16110:7;16078:27;:40::i;:::-;16129;16161:7;16129:31;:40::i;:::-;15980:196;;:::o;22358:239::-;22474:16;22482:7;22474;:16::i;:::-;22466:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22547:43;22557:13;22547:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22572:17;22581:7;22572:8;:17::i;:::-;22547:9;:43::i;:::-;22525:10;:19;22536:7;22525:19;;;;;;;;;;;:65;;;;;;;;;;;;:::i;:::-;;22358:239;:::o;1062:112:0:-;1127:7;1153;:14;;;1146:21;;1062:112;;;:::o;12076:431:4:-;12227:4;12248:15;:2;:13;;;:15::i;:::-;12247:16;12243:58;;;12286:4;12279:11;;;;12243:58;12311:13;12343:2;12327:36;;;12377:10;12401:4;12419:7;12440:5;12327:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;12327:128:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12327:128:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12327:128:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12327:128:4;;;;;;;;;;;;;;;;12311:144;;4911:10;12483:16;;12473:26;;;:6;:26;;;;12465:35;;;12076:431;;;;;;;:::o;9138:152::-;9195:4;9211:13;9227:11;:20;9239:7;9227:20;;;;;;;;;;;;;;;;;;;;;9211:36;;9281:1;9264:19;;:5;:19;;;;9257:26;;;9138:152;;;:::o;10821:727::-;11022:16;11030:7;11022;:16::i;:::-;11014:24;;:4;:24;;;11006:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11176:1;11162:16;;:2;:16;;;;11154:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11243:23;11258:7;11243:14;:23::i;:::-;11350:35;:17;:23;11368:4;11350:23;;;;;;;;;;;;;;;:33;:35::i;:::-;11395:33;:17;:21;11413:2;11395:21;;;;;;;;;;;;;;;:31;:33::i;:::-;11461:2;11438:11;:20;11450:7;11438:20;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;11533:7;11529:2;11514:27;;11523:4;11514:27;;;;;;;;;;;;10821:727;;;:::o;17980:1140::-;18254:22;18279:32;18309:1;18279:12;:18;18292:4;18279:18;;;;;;;;;;;;;;;:25;;;;:29;;:32;;;;:::i;:::-;18254:57;;18321:18;18342:17;:26;18360:7;18342:26;;;;;;;;;;;;18321:47;;18486:14;18472:10;:28;;18468:323;;;18516:19;18538:12;:18;18551:4;18538:18;;;;;;;;;;;;;;;18557:14;18538:34;;;;;;;;;;;;;;;;;;18516:56;;18620:11;18587:12;:18;18600:4;18587:18;;;;;;;;;;;;;;;18606:10;18587:30;;;;;;;;;;;;;;;;;:44;;;;18736:10;18703:17;:30;18721:11;18703:30;;;;;;;;;;;:43;;;;18468:323;;18877:12;:18;18890:4;18877:18;;;;;;;;;;;;;;;:27;;;;;;;;;;;;:::i;:::-;;17980:1140;;;;:::o;16826:183::-;16939:12;:16;16952:2;16939:16;;;;;;;;;;;;;;;:23;;;;16910:17;:26;16928:7;16910:26;;;;;;;;;;;:52;;;;16972:12;:16;16985:2;16972:16;;;;;;;;;;;;;;;16994:7;16972:30;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;16972:30:4;;;;;;;;;;;;;;;;;;;;;;16826:183;;:::o;10105:517::-;10291:1;10259:34;;:11;:20;10271:7;10259:20;;;;;;;;;;;;;;;;;;;;;:34;;;10251:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10350:1;10336:16;;:2;:16;;;;10328:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10486:2;10463:11;:20;10475:7;10463:20;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;10498:33;:17;:21;10516:2;10498:21;;;;;;;;;;;;;;;:31;:33::i;:::-;10607:7;10603:2;10582:33;;10599:1;10582:33;;;;;;;;;;;;10105:517;;:::o;17204:161::-;17307:10;:17;;;;17280:15;:24;17296:7;17280:24;;;;;;;;;;;:44;;;;17334:10;17350:7;17334:24;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;17334:24:4;;;;;;;;;;;;;;;;;;;;;;17204:161;:::o;47978:509:6:-;48055:27;48108:1;48102:2;:7;48098:48;;;48125:10;;;;;;;;;;;;;;;;;;;;;;48098:48;48155:9;48167:2;48155:14;;48179:11;48200:66;48212:1;48207;:6;;48200:66;;;48229:5;;;;;;;48253:2;48248:7;;;;;;;;;;;48200:66;;;48275:17;48305:3;48295:14;;;;;;;;;;;;;;;;;;;;;;;;;29:1:-1;21:6;17:14;116:4;104:10;96:6;87:34;147:4;139:6;135:17;125:27;;0:156;48295:14:6;;;;48275:34;;48319:9;48337:1;48331:3;:7;48319:19;;48348:104;48361:1;48355:2;:7;;48348:104;;;48414:2;48409;:7;;;;;;;;48403:2;:14;48390:29;;48378:4;48383:3;;;;;;;48378:9;;;;;;;;;;;;;;:41;;;;;;;;;;;48439:2;48433:8;;;;;;;;;;;48348:104;;;48475:4;48461:19;;;;;;47978:509;;;;:::o;43931:194::-;44033:33;44089:29;44099:2;44103;44089:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:9;:29::i;:::-;44082:36;;43931:194;;;;:::o;463:616:3:-;523:4;539:12;1038:7;1026:20;1018:28;;1071:1;1064:4;:8;1057:15;;;463:616;;;:::o;12588:171:4:-;12687:1;12651:38;;:15;:24;12667:7;12651:24;;;;;;;;;;;;;;;;;;;;;:38;;;;12647:106;;;12740:1;12705:15;:24;12721:7;12705:24;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;12647:106;12588:171;:::o;1275:108:0:-;1355:21;1374:1;1355:7;:14;;;:18;;:21;;;;:::i;:::-;1338:7;:14;;:38;;;;1275:108;:::o;1180:89::-;1261:1;1243:7;:14;;;:19;;;;;;;;;;;1180:89;:::o;1211:145:1:-;1269:7;1301:1;1296;:6;;1288:15;;;;;;;;1313:9;1329:1;1325;:5;1313:17;;1348:1;1341:8;;;1211:145;;;;:::o;44597:1094:6:-;44775:33;44820:16;44845:2;44820:28;;44858:16;44883:2;44858:28;;44896:16;44921:2;44896:28;;44934:16;44959:2;44934:28;;44972:16;44997:2;44972:28;;45010:19;45108:3;:10;45095:3;:10;45082:3;:10;45069:3;:10;45056:3;:10;:23;:36;:49;:62;45032:96;;;;;;;;;;;;;;;;;;;;;;;;;29:1:-1;21:6;17:14;116:4;104:10;96:6;87:34;147:4;139:6;135:17;125:27;;0:156;45032:96:6;;;;45010:118;;45138:19;45166:5;45138:34;;45182:9;45194:1;45182:13;;45205:9;45217:1;45205:13;;45237:1;45233:5;;45228:78;45244:3;:10;45240:1;:14;45228:78;;;45289:3;45293:1;45289:6;;;;;;;;;;;;;;;;;;;;45275;45282:3;;;;;;45275:11;;;;;;;;;;;;;;:20;;;;;;;;;;;45256:3;;;;;;;45228:78;;;45324:1;45320:5;;45315:78;45331:3;:10;45327:1;:14;45315:78;;;45376:3;45380:1;45376:6;;;;;;;;;;;;;;;;;;;;45362;45369:3;;;;;;45362:11;;;;;;;;;;;;;;:20;;;;;;;;;;;45343:3;;;;;;;45315:78;;;45411:1;45407:5;;45402:78;45418:3;:10;45414:1;:14;45402:78;;;45463:3;45467:1;45463:6;;;;;;;;;;;;;;;;;;;;45449;45456:3;;;;;;45449:11;;;;;;;;;;;;;;:20;;;;;;;;;;;45430:3;;;;;;;45402:78;;;45498:1;45494:5;;45489:78;45505:3;:10;45501:1;:14;45489:78;;;45550:3;45554:1;45550:6;;;;;;;;;;;;;;;;;;;;45536;45543:3;;;;;;45536:11;;;;;;;;;;;;;;:20;;;;;;;;;;;45517:3;;;;;;;45489:78;;;45585:1;45581:5;;45576:78;45592:3;:10;45588:1;:14;45576:78;;;45637:3;45641:1;45637:6;;;;;;;;;;;;;;;;;;;;45623;45630:3;;;;;;45623:11;;;;;;;;;;;;;;:20;;;;;;;;;;;45604:3;;;;;;;45576:78;;;45677:6;45663:21;;;;;;;;;;;44597:1094;;;;;;;:::o;525:2566:7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o",
"source": "//SPDX-License-Identifier: UNLICENSED\npragma solidity >=0.5.2;\n\nimport \"./SquareVerifier.sol\";\nimport \"./ERC721Mintable.sol\";\n\n// define a contract call to the zokrates generated solidity contract <Verifier> or <renamedVerifier>\ncontract Verifier {\n function verifyTx(\n uint256[2] memory a,\n uint256[2][2] memory b,\n uint256[2] memory c,\n uint256[2] memory input\n ) public returns (bool r);\n}\n\n// define another contract named SolnSquareVerifier that inherits from your ERC721Mintable class\ncontract SolnSquareVerifier is CustomERC721Token {\n // define a solutions struct that can hold an index & an address\n struct Solution {\n uint256 index;\n address account;\n bool minted; //flag to indicate if this solution has been used in token minting\n }\n\n // define an array of the above struct\n Solution[] private solutions;\n\n // define a mapping to store unique solutions submitted (solutionHash => solution)\n mapping(bytes32 => bool) private submittedSolutions;\n mapping (bytes32 => Solution) solutionsMap;\n\n // Create an event to emit when a solution is added\n event SolutionAdded(uint256 index, address account);\n\n Verifier verifier;\n\n constructor(\n address verifierAddress,\n string memory name,\n string memory symbol\n ) public CustomERC721Token(name, symbol) {\n verifier = Verifier(verifierAddress);\n }\n\n // Create a function to add the solutions to the array and emit the event\n function addSolution(bytes32 solutionHash, address account)\n public\n whenNotPaused\n {\n uint256 solutionIndex = solutions.length + 1;\n Solution memory s = Solution(solutionIndex, account, false);\n solutions.push(s);\n submittedSolutions[solutionHash] = true;\n solutionsMap[solutionHash] = s;\n emit SolutionAdded(solutionIndex, account);\n }\n\n function canMintToken(\n address _to,\n uint256[2] memory a,\n uint256[2][2] memory b,\n uint256[2] memory c,\n uint256[2] memory input\n ) public {\n // check if solution is valid\n require(verifier.verifyTx(a, b, c, input), \"solution not valid\");\n bytes32 solutionHash = keccak256(abi.encodePacked(a, b, c, input));\n\n addSolution(solutionHash, _to);\n }\n\n // Create a function to mint new NFT only after the solution has been verified\n function mint(\n address to,\n uint256[2] memory a,\n uint256[2][2] memory b,\n uint256[2] memory c,\n uint256[2] memory input\n ) public returns (bool) {\n bytes32 solutionHash = keccak256(abi.encodePacked(a, b, c, input));\n\n // - check uniquness\n require(\n !submittedSolutions[solutionHash],\n \"Solution has been submitted\"\n );\n require(verifier.verifyTx(a, b, c, input), \"verifyTx failed\");\n\n // - handle metadata as well as tokenSuplly\n addSolution(solutionHash, to);\n super.mint(to, solutions.length);\n solutionsMap[solutionHash].minted = true;\n }\n}\n",
"sourcePath": "/home/mobian/blockchain/ethereum/008-real-estate-marketplace/eth-contracts/contracts/SolnSquareVerifier.sol",
"ast": {
"absolutePath": "project:/contracts/SolnSquareVerifier.sol",
"exportedSymbols": {
"SolnSquareVerifier": [
7944
],
"Verifier": [
7718
]
},
"id": 7945,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 7692,
"literals": [
"solidity",
">=",
"0.5",
".2"
],
"nodeType": "PragmaDirective",
"src": "38:24:7"
},
{
"absolutePath": "project:/contracts/SquareVerifier.sol",
"file": "./SquareVerifier.sol",
"id": 7693,
"nodeType": "ImportDirective",
"scope": 7945,
"sourceUnit": 8867,
"src": "64:30:7",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "project:/contracts/ERC721Mintable.sol",
"file": "./ERC721Mintable.sol",
"id": 7694,
"nodeType": "ImportDirective",
"scope": 7945,
"sourceUnit": 1365,
"src": "95:30:7",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": false,
"id": 7718,
"linearizedBaseContracts": [
7718
],
"name": "Verifier",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": null,
"documentation": null,
"id": 7717,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "verifyTx",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 7713,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7698,
"name": "a",
"nodeType": "VariableDeclaration",
"scope": 7717,
"src": "280:19:7",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$2_memory_ptr",
"typeString": "uint256[2]"
},
"typeName": {
"baseType": {
"id": 7695,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "280:7:7",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 7697,
"length": {
"argumentTypes": null,
"hexValue": "32",
"id": 7696,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "288:1:7",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
},
"value": "2"
},
"nodeType": "ArrayTypeName",
"src": "280:10:7",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
"typeString": "uint256[2]"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 7704,
"name": "b",
"nodeType": "VariableDeclaration",
"scope": 7717,
"src": "309:22:7",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_$2_memory_ptr",
"typeString": "uint256[2][2]"
},
"typeName": {
"baseType": {
"baseType": {
"id": 7699,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "309:7:7",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 7701,
"length": {
"argumentTypes": null,
"hexValue": "32",
"id": 7700,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "317:1:7",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
},
"value": "2"
},
"nodeType": "ArrayTypeName",
"src": "309:10:7",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
"typeString": "uint256[2]"
}
},
"id": 7703,
"length": {
"argumentTypes": null,
"hexValue": "32",
"id": 7702,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "320:1:7",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
},
"value": "2"
},
"nodeType": "ArrayTypeName",
"src": "309:13:7",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$2_storage_ptr",
"typeString": "uint256[2][2]"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 7708,
"name": "c",
"nodeType": "VariableDeclaration",
"scope": 7717,
"src": "341:19:7",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$2_memory_ptr",
"typeString": "uint256[2]"
},
"typeName": {
"baseType": {
"id": 7705,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "341:7:7",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 7707,
"length": {
"argumentTypes": null,
"hexValue": "32",
"id": 7706,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "349:1:7",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
},
"value": "2"
},
"nodeType": "ArrayTypeName",
"src": "341:10:7",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
"typeString": "uint256[2]"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 7712,
"name": "input",
"nodeType": "VariableDeclaration",
"scope": 7717,
"src": "370:23:7",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$2_memory_ptr",
"typeString": "uint256[2]"
},
"typeName": {
"baseType": {
"id": 7709,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "370:7:7",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 7711,
"length": {
"argumentTypes": null,
"hexValue": "32",
"id": 7710,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "378:1:7",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
},
"value": "2"
},
"nodeType": "ArrayTypeName",
"src": "370:10:7",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$2_storage_ptr",
"typeString": "uint256[2]"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "270:129:7"
},
"returnParameters": {
"id": 7716,
"nodeType": "ParameterList",
"parameters": [