@argonprotocol/testing 1.4.3-dev.4e058920 → 1.4.3-dev.4f78f406

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -24,6 +24,33 @@
24
24
  "name": "ArrayLengthMismatch",
25
25
  "type": "error"
26
26
  },
27
+ {
28
+ "inputs": [],
29
+ "name": "ECDSAInvalidSignature",
30
+ "type": "error"
31
+ },
32
+ {
33
+ "inputs": [
34
+ {
35
+ "internalType": "uint256",
36
+ "name": "length",
37
+ "type": "uint256"
38
+ }
39
+ ],
40
+ "name": "ECDSAInvalidSignatureLength",
41
+ "type": "error"
42
+ },
43
+ {
44
+ "inputs": [
45
+ {
46
+ "internalType": "bytes32",
47
+ "name": "s",
48
+ "type": "bytes32"
49
+ }
50
+ ],
51
+ "name": "ECDSAInvalidSignatureS",
52
+ "type": "error"
53
+ },
27
54
  {
28
55
  "inputs": [],
29
56
  "name": "EnforcedPause",
@@ -34,11 +61,192 @@
34
61
  "name": "ExpectedPause",
35
62
  "type": "error"
36
63
  },
64
+ {
65
+ "inputs": [],
66
+ "name": "GlobalIssuanceCouncilNotBootstrapped",
67
+ "type": "error"
68
+ },
69
+ {
70
+ "inputs": [],
71
+ "name": "GlobalIssuanceCouncilQuorumNotMet",
72
+ "type": "error"
73
+ },
74
+ {
75
+ "inputs": [
76
+ {
77
+ "internalType": "uint256",
78
+ "name": "authorized",
79
+ "type": "uint256"
80
+ },
81
+ {
82
+ "internalType": "uint256",
83
+ "name": "required",
84
+ "type": "uint256"
85
+ }
86
+ ],
87
+ "name": "InsufficientAuthorizedCollateral",
88
+ "type": "error"
89
+ },
90
+ {
91
+ "inputs": [
92
+ {
93
+ "internalType": "uint64",
94
+ "name": "expected",
95
+ "type": "uint64"
96
+ },
97
+ {
98
+ "internalType": "uint64",
99
+ "name": "provided",
100
+ "type": "uint64"
101
+ }
102
+ ],
103
+ "name": "InvalidChainId",
104
+ "type": "error"
105
+ },
106
+ {
107
+ "inputs": [
108
+ {
109
+ "internalType": "bytes32",
110
+ "name": "expected",
111
+ "type": "bytes32"
112
+ },
113
+ {
114
+ "internalType": "bytes32",
115
+ "name": "provided",
116
+ "type": "bytes32"
117
+ }
118
+ ],
119
+ "name": "InvalidCurrentCouncilSnapshot",
120
+ "type": "error"
121
+ },
122
+ {
123
+ "inputs": [
124
+ {
125
+ "internalType": "uint256",
126
+ "name": "index",
127
+ "type": "uint256"
128
+ }
129
+ ],
130
+ "name": "InvalidGlobalIssuanceCouncilMember",
131
+ "type": "error"
132
+ },
37
133
  {
38
134
  "inputs": [],
39
135
  "name": "InvalidInitialization",
40
136
  "type": "error"
41
137
  },
138
+ {
139
+ "inputs": [],
140
+ "name": "InvalidMicrogonCollateralForArgonotPayout",
141
+ "type": "error"
142
+ },
143
+ {
144
+ "inputs": [
145
+ {
146
+ "internalType": "bytes32",
147
+ "name": "mintingAuthorityId",
148
+ "type": "bytes32"
149
+ }
150
+ ],
151
+ "name": "InvalidMintingAuthority",
152
+ "type": "error"
153
+ },
154
+ {
155
+ "inputs": [
156
+ {
157
+ "internalType": "address",
158
+ "name": "expectedSigner",
159
+ "type": "address"
160
+ },
161
+ {
162
+ "internalType": "address",
163
+ "name": "recoveredSigner",
164
+ "type": "address"
165
+ }
166
+ ],
167
+ "name": "InvalidMintingAuthorityDeactivationSigner",
168
+ "type": "error"
169
+ },
170
+ {
171
+ "inputs": [
172
+ {
173
+ "internalType": "uint64",
174
+ "name": "expected",
175
+ "type": "uint64"
176
+ },
177
+ {
178
+ "internalType": "uint64",
179
+ "name": "provided",
180
+ "type": "uint64"
181
+ }
182
+ ],
183
+ "name": "InvalidQueueNonce",
184
+ "type": "error"
185
+ },
186
+ {
187
+ "inputs": [
188
+ {
189
+ "internalType": "uint256",
190
+ "name": "expected",
191
+ "type": "uint256"
192
+ },
193
+ {
194
+ "internalType": "uint256",
195
+ "name": "provided",
196
+ "type": "uint256"
197
+ }
198
+ ],
199
+ "name": "InvalidSignatureCount",
200
+ "type": "error"
201
+ },
202
+ {
203
+ "inputs": [],
204
+ "name": "InvalidSignatureOrder",
205
+ "type": "error"
206
+ },
207
+ {
208
+ "inputs": [
209
+ {
210
+ "internalType": "uint8",
211
+ "name": "kind",
212
+ "type": "uint8"
213
+ }
214
+ ],
215
+ "name": "InvalidUpdateKind",
216
+ "type": "error"
217
+ },
218
+ {
219
+ "inputs": [],
220
+ "name": "LatestGatewayUpdateCannotDeactivate",
221
+ "type": "error"
222
+ },
223
+ {
224
+ "inputs": [],
225
+ "name": "MigrationAlreadyCompleted",
226
+ "type": "error"
227
+ },
228
+ {
229
+ "inputs": [
230
+ {
231
+ "internalType": "address",
232
+ "name": "signingKey",
233
+ "type": "address"
234
+ }
235
+ ],
236
+ "name": "MintingAuthorityAlreadyActive",
237
+ "type": "error"
238
+ },
239
+ {
240
+ "inputs": [
241
+ {
242
+ "internalType": "address",
243
+ "name": "signingKey",
244
+ "type": "address"
245
+ }
246
+ ],
247
+ "name": "MintingAuthorityTransferCapacityExceeded",
248
+ "type": "error"
249
+ },
42
250
  {
43
251
  "inputs": [
44
252
  {
@@ -77,6 +285,71 @@
77
285
  "name": "OwnableUnauthorizedAccount",
78
286
  "type": "error"
79
287
  },
288
+ {
289
+ "inputs": [
290
+ {
291
+ "internalType": "uint256",
292
+ "name": "amount",
293
+ "type": "uint256"
294
+ }
295
+ ],
296
+ "name": "RuntimeAmountOverflow",
297
+ "type": "error"
298
+ },
299
+ {
300
+ "inputs": [
301
+ {
302
+ "internalType": "bytes32",
303
+ "name": "transferId",
304
+ "type": "bytes32"
305
+ }
306
+ ],
307
+ "name": "TransferOutOfArgonAlreadyFinalized",
308
+ "type": "error"
309
+ },
310
+ {
311
+ "inputs": [
312
+ {
313
+ "internalType": "uint256",
314
+ "name": "currentBlock",
315
+ "type": "uint256"
316
+ },
317
+ {
318
+ "internalType": "uint256",
319
+ "name": "validUntilBlock",
320
+ "type": "uint256"
321
+ }
322
+ ],
323
+ "name": "TransferOutOfArgonExpired",
324
+ "type": "error"
325
+ },
326
+ {
327
+ "inputs": [
328
+ {
329
+ "internalType": "uint256",
330
+ "name": "currentBlock",
331
+ "type": "uint256"
332
+ },
333
+ {
334
+ "internalType": "uint256",
335
+ "name": "validUntilBlock",
336
+ "type": "uint256"
337
+ }
338
+ ],
339
+ "name": "TransferOutOfArgonNotExpired",
340
+ "type": "error"
341
+ },
342
+ {
343
+ "inputs": [
344
+ {
345
+ "internalType": "uint64",
346
+ "name": "councilNumber",
347
+ "type": "uint64"
348
+ }
349
+ ],
350
+ "name": "UnknownCouncilNumber",
351
+ "type": "error"
352
+ },
80
353
  {
81
354
  "inputs": [
82
355
  {
@@ -103,6 +376,11 @@
103
376
  "name": "ZeroGuardian",
104
377
  "type": "error"
105
378
  },
379
+ {
380
+ "inputs": [],
381
+ "name": "ZeroMicrogonsPerArgonot",
382
+ "type": "error"
383
+ },
106
384
  {
107
385
  "inputs": [
108
386
  {
@@ -114,29 +392,22 @@
114
392
  "name": "ZeroRecipient",
115
393
  "type": "error"
116
394
  },
395
+ {
396
+ "inputs": [],
397
+ "name": "ZeroSigningKey",
398
+ "type": "error"
399
+ },
117
400
  {
118
401
  "anonymous": false,
119
402
  "inputs": [
120
403
  {
121
404
  "indexed": true,
122
- "internalType": "address",
123
- "name": "token",
124
- "type": "address"
125
- },
126
- {
127
- "indexed": false,
128
- "internalType": "uint256",
129
- "name": "recipientCount",
130
- "type": "uint256"
131
- },
132
- {
133
- "indexed": false,
134
- "internalType": "uint256",
135
- "name": "totalAmountBaseUnits",
136
- "type": "uint256"
405
+ "internalType": "bytes32",
406
+ "name": "councilHash",
407
+ "type": "bytes32"
137
408
  }
138
409
  ],
139
- "name": "AdminMintBatch",
410
+ "name": "GlobalIssuanceCouncilBootstrapped",
140
411
  "type": "event"
141
412
  },
142
413
  {
@@ -144,123 +415,867 @@
144
415
  "inputs": [
145
416
  {
146
417
  "indexed": true,
147
- "internalType": "address",
148
- "name": "from",
149
- "type": "address"
418
+ "internalType": "bytes32",
419
+ "name": "previousCouncilHash",
420
+ "type": "bytes32"
150
421
  },
151
422
  {
152
423
  "indexed": true,
153
- "internalType": "address",
154
- "name": "token",
155
- "type": "address"
156
- },
157
- {
424
+ "internalType": "bytes32",
425
+ "name": "councilHash",
426
+ "type": "bytes32"
427
+ }
428
+ ],
429
+ "name": "GlobalIssuanceCouncilForceUpdated",
430
+ "type": "event"
431
+ },
432
+ {
433
+ "anonymous": false,
434
+ "inputs": [
435
+ {
436
+ "indexed": false,
437
+ "internalType": "bytes32",
438
+ "name": "councilHash",
439
+ "type": "bytes32"
440
+ },
441
+ {
442
+ "indexed": false,
443
+ "internalType": "bytes32",
444
+ "name": "relayerArgonAccountId",
445
+ "type": "bytes32"
446
+ },
447
+ {
448
+ "components": [
449
+ {
450
+ "internalType": "uint64",
451
+ "name": "gatewayActivityNonce",
452
+ "type": "uint64"
453
+ },
454
+ {
455
+ "internalType": "uint64",
456
+ "name": "argonApprovalsNonce",
457
+ "type": "uint64"
458
+ },
459
+ {
460
+ "internalType": "uint128",
461
+ "name": "argonCirculation",
462
+ "type": "uint128"
463
+ },
464
+ {
465
+ "internalType": "uint128",
466
+ "name": "argonotCirculation",
467
+ "type": "uint128"
468
+ }
469
+ ],
470
+ "indexed": false,
471
+ "internalType": "struct MintingGateway.GatewayActivityState",
472
+ "name": "gatewayState",
473
+ "type": "tuple"
474
+ }
475
+ ],
476
+ "name": "GlobalIssuanceCouncilRotated",
477
+ "type": "event"
478
+ },
479
+ {
480
+ "anonymous": false,
481
+ "inputs": [
482
+ {
483
+ "indexed": true,
484
+ "internalType": "address",
485
+ "name": "previousGuardian",
486
+ "type": "address"
487
+ },
488
+ {
489
+ "indexed": true,
490
+ "internalType": "address",
491
+ "name": "newGuardian",
492
+ "type": "address"
493
+ }
494
+ ],
495
+ "name": "GuardianUpdated",
496
+ "type": "event"
497
+ },
498
+ {
499
+ "anonymous": false,
500
+ "inputs": [
501
+ {
502
+ "indexed": false,
503
+ "internalType": "uint64",
504
+ "name": "version",
505
+ "type": "uint64"
506
+ }
507
+ ],
508
+ "name": "Initialized",
509
+ "type": "event"
510
+ },
511
+ {
512
+ "anonymous": false,
513
+ "inputs": [
514
+ {
158
515
  "indexed": false,
159
516
  "internalType": "uint256",
160
- "name": "amountBaseUnits",
517
+ "name": "argonRecipientCount",
161
518
  "type": "uint256"
162
519
  },
520
+ {
521
+ "indexed": false,
522
+ "internalType": "uint256",
523
+ "name": "argonTotalAmount",
524
+ "type": "uint256"
525
+ },
526
+ {
527
+ "indexed": false,
528
+ "internalType": "uint256",
529
+ "name": "argonotRecipientCount",
530
+ "type": "uint256"
531
+ },
532
+ {
533
+ "indexed": false,
534
+ "internalType": "uint256",
535
+ "name": "argonotTotalAmount",
536
+ "type": "uint256"
537
+ }
538
+ ],
539
+ "name": "MigrationCompleted",
540
+ "type": "event"
541
+ },
542
+ {
543
+ "anonymous": false,
544
+ "inputs": [
545
+ {
546
+ "indexed": true,
547
+ "internalType": "bytes32",
548
+ "name": "mintingAuthorityId",
549
+ "type": "bytes32"
550
+ },
551
+ {
552
+ "indexed": false,
553
+ "internalType": "uint128",
554
+ "name": "microgonCollateral",
555
+ "type": "uint128"
556
+ },
557
+ {
558
+ "indexed": false,
559
+ "internalType": "uint128",
560
+ "name": "micronotCollateral",
561
+ "type": "uint128"
562
+ },
563
+ {
564
+ "indexed": false,
565
+ "internalType": "address",
566
+ "name": "signingKey",
567
+ "type": "address"
568
+ },
569
+ {
570
+ "indexed": false,
571
+ "internalType": "bytes32",
572
+ "name": "relayerArgonAccountId",
573
+ "type": "bytes32"
574
+ },
575
+ {
576
+ "components": [
577
+ {
578
+ "internalType": "uint64",
579
+ "name": "gatewayActivityNonce",
580
+ "type": "uint64"
581
+ },
582
+ {
583
+ "internalType": "uint64",
584
+ "name": "argonApprovalsNonce",
585
+ "type": "uint64"
586
+ },
587
+ {
588
+ "internalType": "uint128",
589
+ "name": "argonCirculation",
590
+ "type": "uint128"
591
+ },
592
+ {
593
+ "internalType": "uint128",
594
+ "name": "argonotCirculation",
595
+ "type": "uint128"
596
+ }
597
+ ],
598
+ "indexed": false,
599
+ "internalType": "struct MintingGateway.GatewayActivityState",
600
+ "name": "gatewayState",
601
+ "type": "tuple"
602
+ }
603
+ ],
604
+ "name": "MintingAuthorityActivated",
605
+ "type": "event"
606
+ },
607
+ {
608
+ "anonymous": false,
609
+ "inputs": [
610
+ {
611
+ "indexed": true,
612
+ "internalType": "bytes32",
613
+ "name": "mintingAuthorityId",
614
+ "type": "bytes32"
615
+ },
616
+ {
617
+ "indexed": false,
618
+ "internalType": "uint128",
619
+ "name": "microgonCollateral",
620
+ "type": "uint128"
621
+ },
622
+ {
623
+ "indexed": false,
624
+ "internalType": "uint128",
625
+ "name": "micronotCollateral",
626
+ "type": "uint128"
627
+ },
163
628
  {
164
629
  "indexed": false,
165
630
  "internalType": "bytes32",
166
- "name": "argonDestination",
631
+ "name": "relayerArgonAccountId",
167
632
  "type": "bytes32"
168
633
  },
634
+ {
635
+ "components": [
636
+ {
637
+ "internalType": "uint64",
638
+ "name": "gatewayActivityNonce",
639
+ "type": "uint64"
640
+ },
641
+ {
642
+ "internalType": "uint64",
643
+ "name": "argonApprovalsNonce",
644
+ "type": "uint64"
645
+ },
646
+ {
647
+ "internalType": "uint128",
648
+ "name": "argonCirculation",
649
+ "type": "uint128"
650
+ },
651
+ {
652
+ "internalType": "uint128",
653
+ "name": "argonotCirculation",
654
+ "type": "uint128"
655
+ }
656
+ ],
657
+ "indexed": false,
658
+ "internalType": "struct MintingGateway.GatewayActivityState",
659
+ "name": "gatewayState",
660
+ "type": "tuple"
661
+ }
662
+ ],
663
+ "name": "MintingAuthorityDeactivated",
664
+ "type": "event"
665
+ },
666
+ {
667
+ "anonymous": false,
668
+ "inputs": [
669
+ {
670
+ "indexed": true,
671
+ "internalType": "address",
672
+ "name": "previousOwner",
673
+ "type": "address"
674
+ },
675
+ {
676
+ "indexed": true,
677
+ "internalType": "address",
678
+ "name": "newOwner",
679
+ "type": "address"
680
+ }
681
+ ],
682
+ "name": "OwnershipTransferred",
683
+ "type": "event"
684
+ },
685
+ {
686
+ "anonymous": false,
687
+ "inputs": [
688
+ {
689
+ "indexed": false,
690
+ "internalType": "address",
691
+ "name": "account",
692
+ "type": "address"
693
+ }
694
+ ],
695
+ "name": "Paused",
696
+ "type": "event"
697
+ },
698
+ {
699
+ "anonymous": false,
700
+ "inputs": [
169
701
  {
170
702
  "indexed": false,
703
+ "internalType": "bytes32",
704
+ "name": "transferId",
705
+ "type": "bytes32"
706
+ },
707
+ {
708
+ "components": [
709
+ {
710
+ "internalType": "uint64",
711
+ "name": "gatewayActivityNonce",
712
+ "type": "uint64"
713
+ },
714
+ {
715
+ "internalType": "uint64",
716
+ "name": "argonApprovalsNonce",
717
+ "type": "uint64"
718
+ },
719
+ {
720
+ "internalType": "uint128",
721
+ "name": "argonCirculation",
722
+ "type": "uint128"
723
+ },
724
+ {
725
+ "internalType": "uint128",
726
+ "name": "argonotCirculation",
727
+ "type": "uint128"
728
+ }
729
+ ],
730
+ "indexed": false,
731
+ "internalType": "struct MintingGateway.GatewayActivityState",
732
+ "name": "gatewayState",
733
+ "type": "tuple"
734
+ }
735
+ ],
736
+ "name": "TransferOutOfArgonCanceled",
737
+ "type": "event"
738
+ },
739
+ {
740
+ "anonymous": false,
741
+ "inputs": [
742
+ {
743
+ "indexed": false,
744
+ "internalType": "bytes32",
745
+ "name": "transferId",
746
+ "type": "bytes32"
747
+ },
748
+ {
749
+ "components": [
750
+ {
751
+ "internalType": "address",
752
+ "name": "signingKey",
753
+ "type": "address"
754
+ },
755
+ {
756
+ "internalType": "uint128",
757
+ "name": "microgonCollateral",
758
+ "type": "uint128"
759
+ },
760
+ {
761
+ "internalType": "uint128",
762
+ "name": "micronotCollateral",
763
+ "type": "uint128"
764
+ }
765
+ ],
766
+ "indexed": false,
767
+ "internalType": "struct MintingGateway.MintingAuthorityCollateral[]",
768
+ "name": "mintingCollateral",
769
+ "type": "tuple[]"
770
+ },
771
+ {
772
+ "components": [
773
+ {
774
+ "internalType": "uint64",
775
+ "name": "gatewayActivityNonce",
776
+ "type": "uint64"
777
+ },
778
+ {
779
+ "internalType": "uint64",
780
+ "name": "argonApprovalsNonce",
781
+ "type": "uint64"
782
+ },
783
+ {
784
+ "internalType": "uint128",
785
+ "name": "argonCirculation",
786
+ "type": "uint128"
787
+ },
788
+ {
789
+ "internalType": "uint128",
790
+ "name": "argonotCirculation",
791
+ "type": "uint128"
792
+ }
793
+ ],
794
+ "indexed": false,
795
+ "internalType": "struct MintingGateway.GatewayActivityState",
796
+ "name": "gatewayState",
797
+ "type": "tuple"
798
+ }
799
+ ],
800
+ "name": "TransferOutOfArgonFinalized",
801
+ "type": "event"
802
+ },
803
+ {
804
+ "anonymous": false,
805
+ "inputs": [
806
+ {
807
+ "indexed": true,
808
+ "internalType": "address",
809
+ "name": "from",
810
+ "type": "address"
811
+ },
812
+ {
813
+ "indexed": true,
814
+ "internalType": "address",
815
+ "name": "token",
816
+ "type": "address"
817
+ },
818
+ {
819
+ "indexed": false,
820
+ "internalType": "uint128",
821
+ "name": "amount",
822
+ "type": "uint128"
823
+ },
824
+ {
825
+ "indexed": false,
826
+ "internalType": "bytes32",
827
+ "name": "argonAccountId",
828
+ "type": "bytes32"
829
+ },
830
+ {
831
+ "components": [
832
+ {
833
+ "internalType": "uint64",
834
+ "name": "gatewayActivityNonce",
835
+ "type": "uint64"
836
+ },
837
+ {
838
+ "internalType": "uint64",
839
+ "name": "argonApprovalsNonce",
840
+ "type": "uint64"
841
+ },
842
+ {
843
+ "internalType": "uint128",
844
+ "name": "argonCirculation",
845
+ "type": "uint128"
846
+ },
847
+ {
848
+ "internalType": "uint128",
849
+ "name": "argonotCirculation",
850
+ "type": "uint128"
851
+ }
852
+ ],
853
+ "indexed": false,
854
+ "internalType": "struct MintingGateway.GatewayActivityState",
855
+ "name": "gatewayState",
856
+ "type": "tuple"
857
+ }
858
+ ],
859
+ "name": "TransferToArgonStarted",
860
+ "type": "event"
861
+ },
862
+ {
863
+ "anonymous": false,
864
+ "inputs": [
865
+ {
866
+ "indexed": false,
867
+ "internalType": "address",
868
+ "name": "account",
869
+ "type": "address"
870
+ }
871
+ ],
872
+ "name": "Unpaused",
873
+ "type": "event"
874
+ },
875
+ {
876
+ "inputs": [],
877
+ "name": "RUNTIME_DECIMALS",
878
+ "outputs": [
879
+ {
880
+ "internalType": "uint8",
881
+ "name": "",
882
+ "type": "uint8"
883
+ }
884
+ ],
885
+ "stateMutability": "view",
886
+ "type": "function"
887
+ },
888
+ {
889
+ "inputs": [],
890
+ "name": "RUNTIME_TO_ERC20_SCALE",
891
+ "outputs": [
892
+ {
893
+ "internalType": "uint256",
894
+ "name": "",
895
+ "type": "uint256"
896
+ }
897
+ ],
898
+ "stateMutability": "view",
899
+ "type": "function"
900
+ },
901
+ {
902
+ "inputs": [],
903
+ "name": "TOKEN_DECIMALS",
904
+ "outputs": [
905
+ {
906
+ "internalType": "uint8",
907
+ "name": "",
908
+ "type": "uint8"
909
+ }
910
+ ],
911
+ "stateMutability": "view",
912
+ "type": "function"
913
+ },
914
+ {
915
+ "inputs": [
916
+ {
917
+ "internalType": "uint64",
918
+ "name": "locatorIndex",
919
+ "type": "uint64"
920
+ }
921
+ ],
922
+ "name": "activityBlockLocators",
923
+ "outputs": [
924
+ {
925
+ "internalType": "uint64",
926
+ "name": "blockNumber",
927
+ "type": "uint64"
928
+ },
929
+ {
171
930
  "internalType": "uint64",
172
- "name": "accountNonce",
931
+ "name": "startGatewayActivityNonce",
932
+ "type": "uint64"
933
+ },
934
+ {
935
+ "internalType": "uint64",
936
+ "name": "endGatewayActivityNonce",
937
+ "type": "uint64"
938
+ }
939
+ ],
940
+ "stateMutability": "view",
941
+ "type": "function"
942
+ },
943
+ {
944
+ "inputs": [
945
+ {
946
+ "components": [
947
+ {
948
+ "internalType": "address[]",
949
+ "name": "signers",
950
+ "type": "address[]"
951
+ },
952
+ {
953
+ "internalType": "uint256[]",
954
+ "name": "weights",
955
+ "type": "uint256[]"
956
+ }
957
+ ],
958
+ "internalType": "struct MintingGateway.CouncilSnapshot",
959
+ "name": "currentCouncil",
960
+ "type": "tuple"
961
+ },
962
+ {
963
+ "components": [
964
+ {
965
+ "internalType": "uint64",
966
+ "name": "queueNonce",
967
+ "type": "uint64"
968
+ },
969
+ {
970
+ "internalType": "enum MintingGateway.GatewayUpdateKind",
971
+ "name": "kind",
972
+ "type": "uint8"
973
+ },
974
+ {
975
+ "internalType": "bytes",
976
+ "name": "payload",
977
+ "type": "bytes"
978
+ },
979
+ {
980
+ "internalType": "bytes[]",
981
+ "name": "signatures",
982
+ "type": "bytes[]"
983
+ }
984
+ ],
985
+ "internalType": "struct MintingGateway.GatewayUpdate[]",
986
+ "name": "updates",
987
+ "type": "tuple[]"
988
+ },
989
+ {
990
+ "internalType": "bytes32",
991
+ "name": "relayerArgonAccountId",
992
+ "type": "bytes32"
993
+ }
994
+ ],
995
+ "name": "applyGatewayUpdates",
996
+ "outputs": [],
997
+ "stateMutability": "nonpayable",
998
+ "type": "function"
999
+ },
1000
+ {
1001
+ "inputs": [],
1002
+ "name": "argonApprovalsHash",
1003
+ "outputs": [
1004
+ {
1005
+ "internalType": "bytes32",
1006
+ "name": "",
1007
+ "type": "bytes32"
1008
+ }
1009
+ ],
1010
+ "stateMutability": "view",
1011
+ "type": "function"
1012
+ },
1013
+ {
1014
+ "inputs": [],
1015
+ "name": "argonApprovalsNonce",
1016
+ "outputs": [
1017
+ {
1018
+ "internalType": "uint64",
1019
+ "name": "",
173
1020
  "type": "uint64"
174
1021
  }
175
1022
  ],
176
- "name": "BurnForTransfer",
177
- "type": "event"
1023
+ "stateMutability": "view",
1024
+ "type": "function"
178
1025
  },
179
1026
  {
180
- "anonymous": false,
181
- "inputs": [
1027
+ "inputs": [],
1028
+ "name": "argonCirculation",
1029
+ "outputs": [
1030
+ {
1031
+ "internalType": "uint128",
1032
+ "name": "",
1033
+ "type": "uint128"
1034
+ }
1035
+ ],
1036
+ "stateMutability": "view",
1037
+ "type": "function"
1038
+ },
1039
+ {
1040
+ "inputs": [],
1041
+ "name": "argonToken",
1042
+ "outputs": [
182
1043
  {
183
- "indexed": true,
184
1044
  "internalType": "address",
185
- "name": "previousGuardian",
1045
+ "name": "",
186
1046
  "type": "address"
187
- },
1047
+ }
1048
+ ],
1049
+ "stateMutability": "view",
1050
+ "type": "function"
1051
+ },
1052
+ {
1053
+ "inputs": [],
1054
+ "name": "argonotCirculation",
1055
+ "outputs": [
1056
+ {
1057
+ "internalType": "uint128",
1058
+ "name": "",
1059
+ "type": "uint128"
1060
+ }
1061
+ ],
1062
+ "stateMutability": "view",
1063
+ "type": "function"
1064
+ },
1065
+ {
1066
+ "inputs": [],
1067
+ "name": "argonotToken",
1068
+ "outputs": [
188
1069
  {
189
- "indexed": true,
190
1070
  "internalType": "address",
191
- "name": "newGuardian",
1071
+ "name": "",
192
1072
  "type": "address"
193
1073
  }
194
1074
  ],
195
- "name": "GuardianUpdated",
196
- "type": "event"
1075
+ "stateMutability": "view",
1076
+ "type": "function"
197
1077
  },
198
1078
  {
199
- "anonymous": false,
200
1079
  "inputs": [
201
1080
  {
202
- "indexed": false,
203
- "internalType": "uint64",
204
- "name": "version",
205
- "type": "uint64"
1081
+ "components": [
1082
+ {
1083
+ "internalType": "bytes32",
1084
+ "name": "argonAccountId",
1085
+ "type": "bytes32"
1086
+ },
1087
+ {
1088
+ "internalType": "uint64",
1089
+ "name": "argonTransferNonce",
1090
+ "type": "uint64"
1091
+ },
1092
+ {
1093
+ "internalType": "uint64",
1094
+ "name": "chainId",
1095
+ "type": "uint64"
1096
+ },
1097
+ {
1098
+ "internalType": "uint64",
1099
+ "name": "councilNumber",
1100
+ "type": "uint64"
1101
+ },
1102
+ {
1103
+ "internalType": "address",
1104
+ "name": "recipient",
1105
+ "type": "address"
1106
+ },
1107
+ {
1108
+ "internalType": "uint64",
1109
+ "name": "validUntilBlock",
1110
+ "type": "uint64"
1111
+ },
1112
+ {
1113
+ "internalType": "address",
1114
+ "name": "token",
1115
+ "type": "address"
1116
+ },
1117
+ {
1118
+ "internalType": "uint128",
1119
+ "name": "amount",
1120
+ "type": "uint128"
1121
+ },
1122
+ {
1123
+ "internalType": "uint128",
1124
+ "name": "finalizationTip",
1125
+ "type": "uint128"
1126
+ }
1127
+ ],
1128
+ "internalType": "struct MintingGateway.TransferOutOfArgonRequest",
1129
+ "name": "request",
1130
+ "type": "tuple"
206
1131
  }
207
1132
  ],
208
- "name": "Initialized",
209
- "type": "event"
1133
+ "name": "cancelTransferOutOfArgon",
1134
+ "outputs": [],
1135
+ "stateMutability": "nonpayable",
1136
+ "type": "function"
210
1137
  },
211
1138
  {
212
- "anonymous": false,
213
1139
  "inputs": [
214
1140
  {
215
- "indexed": true,
216
- "internalType": "address",
217
- "name": "previousOwner",
218
- "type": "address"
1141
+ "components": [
1142
+ {
1143
+ "internalType": "bytes32",
1144
+ "name": "argonAccountId",
1145
+ "type": "bytes32"
1146
+ },
1147
+ {
1148
+ "internalType": "uint64",
1149
+ "name": "argonTransferNonce",
1150
+ "type": "uint64"
1151
+ },
1152
+ {
1153
+ "internalType": "uint64",
1154
+ "name": "chainId",
1155
+ "type": "uint64"
1156
+ },
1157
+ {
1158
+ "internalType": "uint64",
1159
+ "name": "councilNumber",
1160
+ "type": "uint64"
1161
+ },
1162
+ {
1163
+ "internalType": "address",
1164
+ "name": "recipient",
1165
+ "type": "address"
1166
+ },
1167
+ {
1168
+ "internalType": "uint64",
1169
+ "name": "validUntilBlock",
1170
+ "type": "uint64"
1171
+ },
1172
+ {
1173
+ "internalType": "address",
1174
+ "name": "token",
1175
+ "type": "address"
1176
+ },
1177
+ {
1178
+ "internalType": "uint128",
1179
+ "name": "amount",
1180
+ "type": "uint128"
1181
+ },
1182
+ {
1183
+ "internalType": "uint128",
1184
+ "name": "finalizationTip",
1185
+ "type": "uint128"
1186
+ }
1187
+ ],
1188
+ "internalType": "struct MintingGateway.TransferOutOfArgonRequest",
1189
+ "name": "request",
1190
+ "type": "tuple"
219
1191
  },
220
1192
  {
221
- "indexed": true,
222
- "internalType": "address",
223
- "name": "newOwner",
224
- "type": "address"
1193
+ "components": [
1194
+ {
1195
+ "components": [
1196
+ {
1197
+ "internalType": "uint128",
1198
+ "name": "microgonCollateral",
1199
+ "type": "uint128"
1200
+ },
1201
+ {
1202
+ "internalType": "uint128",
1203
+ "name": "micronotCollateral",
1204
+ "type": "uint128"
1205
+ },
1206
+ {
1207
+ "internalType": "bytes",
1208
+ "name": "signature",
1209
+ "type": "bytes"
1210
+ }
1211
+ ],
1212
+ "internalType": "struct MintingGateway.MintingAuthorization[]",
1213
+ "name": "authorizations",
1214
+ "type": "tuple[]"
1215
+ }
1216
+ ],
1217
+ "internalType": "struct MintingGateway.TransferOutOfArgonProof",
1218
+ "name": "proof",
1219
+ "type": "tuple"
225
1220
  }
226
1221
  ],
227
- "name": "OwnershipTransferred",
228
- "type": "event"
1222
+ "name": "finalizeTransferOutOfArgon",
1223
+ "outputs": [],
1224
+ "stateMutability": "nonpayable",
1225
+ "type": "function"
229
1226
  },
230
1227
  {
231
- "anonymous": false,
232
1228
  "inputs": [
233
1229
  {
234
- "indexed": false,
235
- "internalType": "address",
236
- "name": "account",
237
- "type": "address"
1230
+ "internalType": "bytes32",
1231
+ "name": "transferId",
1232
+ "type": "bytes32"
238
1233
  }
239
1234
  ],
240
- "name": "Paused",
241
- "type": "event"
1235
+ "name": "finalizedTransferOutOfArgonIds",
1236
+ "outputs": [
1237
+ {
1238
+ "internalType": "bool",
1239
+ "name": "isFinalized",
1240
+ "type": "bool"
1241
+ }
1242
+ ],
1243
+ "stateMutability": "view",
1244
+ "type": "function"
242
1245
  },
243
1246
  {
244
- "anonymous": false,
245
1247
  "inputs": [
246
1248
  {
247
- "indexed": false,
248
- "internalType": "address",
249
- "name": "account",
250
- "type": "address"
1249
+ "components": [
1250
+ {
1251
+ "internalType": "address[]",
1252
+ "name": "signers",
1253
+ "type": "address[]"
1254
+ },
1255
+ {
1256
+ "internalType": "uint256[]",
1257
+ "name": "weights",
1258
+ "type": "uint256[]"
1259
+ }
1260
+ ],
1261
+ "internalType": "struct MintingGateway.CouncilSnapshot",
1262
+ "name": "nextCouncil",
1263
+ "type": "tuple"
251
1264
  }
252
1265
  ],
253
- "name": "Unpaused",
254
- "type": "event"
1266
+ "name": "forceUpdateActiveCouncil",
1267
+ "outputs": [],
1268
+ "stateMutability": "nonpayable",
1269
+ "type": "function"
255
1270
  },
256
1271
  {
257
1272
  "inputs": [],
258
- "name": "RUNTIME_DECIMALS",
1273
+ "name": "gatewayActivityNonce",
259
1274
  "outputs": [
260
1275
  {
261
- "internalType": "uint8",
1276
+ "internalType": "uint64",
262
1277
  "name": "",
263
- "type": "uint8"
1278
+ "type": "uint64"
264
1279
  }
265
1280
  ],
266
1281
  "stateMutability": "view",
@@ -268,12 +1283,27 @@
268
1283
  },
269
1284
  {
270
1285
  "inputs": [],
271
- "name": "RUNTIME_TO_ERC20_SCALE",
1286
+ "name": "globalIssuanceCouncil",
272
1287
  "outputs": [
273
1288
  {
274
1289
  "internalType": "uint256",
275
- "name": "",
1290
+ "name": "totalWeight",
1291
+ "type": "uint256"
1292
+ },
1293
+ {
1294
+ "internalType": "uint256",
1295
+ "name": "memberCount",
276
1296
  "type": "uint256"
1297
+ },
1298
+ {
1299
+ "internalType": "bytes32",
1300
+ "name": "councilHash",
1301
+ "type": "bytes32"
1302
+ },
1303
+ {
1304
+ "internalType": "uint64",
1305
+ "name": "councilNumber",
1306
+ "type": "uint64"
277
1307
  }
278
1308
  ],
279
1309
  "stateMutability": "view",
@@ -281,12 +1311,12 @@
281
1311
  },
282
1312
  {
283
1313
  "inputs": [],
284
- "name": "TOKEN_DECIMALS",
1314
+ "name": "guardian",
285
1315
  "outputs": [
286
1316
  {
287
- "internalType": "uint8",
1317
+ "internalType": "address",
288
1318
  "name": "",
289
- "type": "uint8"
1319
+ "type": "address"
290
1320
  }
291
1321
  ],
292
1322
  "stateMutability": "view",
@@ -296,52 +1326,48 @@
296
1326
  "inputs": [
297
1327
  {
298
1328
  "internalType": "address",
299
- "name": "account",
1329
+ "name": "adminSafe",
300
1330
  "type": "address"
301
- }
302
- ],
303
- "name": "accountNonces",
304
- "outputs": [
305
- {
306
- "internalType": "uint64",
307
- "name": "nonce",
308
- "type": "uint64"
309
- }
310
- ],
311
- "stateMutability": "view",
312
- "type": "function"
313
- },
314
- {
315
- "inputs": [
1331
+ },
316
1332
  {
317
1333
  "internalType": "address",
318
- "name": "token",
1334
+ "name": "guardianAddress",
319
1335
  "type": "address"
320
1336
  },
321
1337
  {
322
- "internalType": "address[]",
323
- "name": "recipients",
324
- "type": "address[]"
1338
+ "internalType": "bytes32",
1339
+ "name": "councilHash",
1340
+ "type": "bytes32"
1341
+ },
1342
+ {
1343
+ "internalType": "uint256",
1344
+ "name": "councilMemberCount",
1345
+ "type": "uint256"
1346
+ },
1347
+ {
1348
+ "internalType": "uint256",
1349
+ "name": "councilTotalWeight",
1350
+ "type": "uint256"
325
1351
  },
326
1352
  {
327
- "internalType": "uint256[]",
328
- "name": "amountsBaseUnits",
329
- "type": "uint256[]"
1353
+ "internalType": "uint128",
1354
+ "name": "initialMicrogonsPerArgonot",
1355
+ "type": "uint128"
330
1356
  }
331
1357
  ],
332
- "name": "adminMintBatch",
1358
+ "name": "initialize",
333
1359
  "outputs": [],
334
1360
  "stateMutability": "nonpayable",
335
1361
  "type": "function"
336
1362
  },
337
1363
  {
338
1364
  "inputs": [],
339
- "name": "argonToken",
1365
+ "name": "latestActivityBlockLocatorIndex",
340
1366
  "outputs": [
341
1367
  {
342
- "internalType": "address",
1368
+ "internalType": "uint64",
343
1369
  "name": "",
344
- "type": "address"
1370
+ "type": "uint64"
345
1371
  }
346
1372
  ],
347
1373
  "stateMutability": "view",
@@ -349,12 +1375,12 @@
349
1375
  },
350
1376
  {
351
1377
  "inputs": [],
352
- "name": "argonotToken",
1378
+ "name": "microgonsPerArgonot",
353
1379
  "outputs": [
354
1380
  {
355
- "internalType": "address",
1381
+ "internalType": "uint128",
356
1382
  "name": "",
357
- "type": "address"
1383
+ "type": "uint128"
358
1384
  }
359
1385
  ],
360
1386
  "stateMutability": "view",
@@ -363,34 +1389,53 @@
363
1389
  {
364
1390
  "inputs": [
365
1391
  {
366
- "internalType": "address",
367
- "name": "token",
368
- "type": "address"
369
- },
370
- {
371
- "internalType": "uint256",
372
- "name": "amountBaseUnits",
373
- "type": "uint256"
1392
+ "components": [
1393
+ {
1394
+ "internalType": "address[]",
1395
+ "name": "recipients",
1396
+ "type": "address[]"
1397
+ },
1398
+ {
1399
+ "internalType": "uint256[]",
1400
+ "name": "amounts",
1401
+ "type": "uint256[]"
1402
+ }
1403
+ ],
1404
+ "internalType": "struct MintingGateway.MigrationAssetDistribution",
1405
+ "name": "argonMigration",
1406
+ "type": "tuple"
374
1407
  },
375
1408
  {
376
- "internalType": "bytes32",
377
- "name": "argonDestination",
378
- "type": "bytes32"
1409
+ "components": [
1410
+ {
1411
+ "internalType": "address[]",
1412
+ "name": "recipients",
1413
+ "type": "address[]"
1414
+ },
1415
+ {
1416
+ "internalType": "uint256[]",
1417
+ "name": "amounts",
1418
+ "type": "uint256[]"
1419
+ }
1420
+ ],
1421
+ "internalType": "struct MintingGateway.MigrationAssetDistribution",
1422
+ "name": "argonotMigration",
1423
+ "type": "tuple"
379
1424
  }
380
1425
  ],
381
- "name": "burnForTransfer",
1426
+ "name": "migrate",
382
1427
  "outputs": [],
383
1428
  "stateMutability": "nonpayable",
384
1429
  "type": "function"
385
1430
  },
386
1431
  {
387
1432
  "inputs": [],
388
- "name": "guardian",
1433
+ "name": "migrationCompleted",
389
1434
  "outputs": [
390
1435
  {
391
- "internalType": "address",
1436
+ "internalType": "bool",
392
1437
  "name": "",
393
- "type": "address"
1438
+ "type": "bool"
394
1439
  }
395
1440
  ],
396
1441
  "stateMutability": "view",
@@ -400,18 +1445,24 @@
400
1445
  "inputs": [
401
1446
  {
402
1447
  "internalType": "address",
403
- "name": "adminSafe",
1448
+ "name": "signingKey",
404
1449
  "type": "address"
1450
+ }
1451
+ ],
1452
+ "name": "mintingAuthorityCollateralRemaining",
1453
+ "outputs": [
1454
+ {
1455
+ "internalType": "uint128",
1456
+ "name": "microgonCollateral",
1457
+ "type": "uint128"
405
1458
  },
406
1459
  {
407
- "internalType": "address",
408
- "name": "guardianAddress",
409
- "type": "address"
1460
+ "internalType": "uint128",
1461
+ "name": "micronotCollateral",
1462
+ "type": "uint128"
410
1463
  }
411
1464
  ],
412
- "name": "initialize",
413
- "outputs": [],
414
- "stateMutability": "nonpayable",
1465
+ "stateMutability": "view",
415
1466
  "type": "function"
416
1467
  },
417
1468
  {
@@ -447,6 +1498,19 @@
447
1498
  "stateMutability": "view",
448
1499
  "type": "function"
449
1500
  },
1501
+ {
1502
+ "inputs": [],
1503
+ "name": "previousMicrogonsPerArgonot",
1504
+ "outputs": [
1505
+ {
1506
+ "internalType": "uint128",
1507
+ "name": "",
1508
+ "type": "uint128"
1509
+ }
1510
+ ],
1511
+ "stateMutability": "view",
1512
+ "type": "function"
1513
+ },
450
1514
  {
451
1515
  "inputs": [],
452
1516
  "name": "renounceOwnership",
@@ -469,10 +1533,53 @@
469
1533
  },
470
1534
  {
471
1535
  "inputs": [
1536
+ {
1537
+ "internalType": "address",
1538
+ "name": "token",
1539
+ "type": "address"
1540
+ },
1541
+ {
1542
+ "internalType": "uint128",
1543
+ "name": "amount",
1544
+ "type": "uint128"
1545
+ },
1546
+ {
1547
+ "internalType": "bytes32",
1548
+ "name": "argonAccountId",
1549
+ "type": "bytes32"
1550
+ },
472
1551
  {
473
1552
  "internalType": "uint256",
474
- "name": "amountBaseUnits",
1553
+ "name": "deadline",
475
1554
  "type": "uint256"
1555
+ },
1556
+ {
1557
+ "internalType": "uint8",
1558
+ "name": "v",
1559
+ "type": "uint8"
1560
+ },
1561
+ {
1562
+ "internalType": "bytes32",
1563
+ "name": "r",
1564
+ "type": "bytes32"
1565
+ },
1566
+ {
1567
+ "internalType": "bytes32",
1568
+ "name": "s",
1569
+ "type": "bytes32"
1570
+ }
1571
+ ],
1572
+ "name": "startTransferToArgon",
1573
+ "outputs": [],
1574
+ "stateMutability": "nonpayable",
1575
+ "type": "function"
1576
+ },
1577
+ {
1578
+ "inputs": [
1579
+ {
1580
+ "internalType": "uint128",
1581
+ "name": "amount",
1582
+ "type": "uint128"
476
1583
  }
477
1584
  ],
478
1585
  "name": "toTokenAmount",
@@ -507,32 +1614,68 @@
507
1614
  "type": "function"
508
1615
  }
509
1616
  ],
510
- "bytecode": "0x60c060405234801561001057600080fd5b506040516110c13803806110c183398101604081905261002f9161011f565b6001600160a01b03808316608052811660a05261004a610051565b5050610152565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100a15760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101005780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b80516001600160a01b038116811461011a57600080fd5b919050565b6000806040838503121561013257600080fd5b61013b83610103565b915061014960208401610103565b90509250929050565b60805160a051610f3c610185600039600081816101460152610ab40152600081816102580152610a770152610f3c6000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a25780638a0dac4a116100715780638a0dac4a146102825780638da5cb5b14610295578063beabb5911461029d578063c9bb2de7146102a5578063f2fde38b146102b857600080fd5b8063715018a6146102385780637a2660401461024057806383a4d591146102535780638456cb591461027a57600080fd5b8063485cc955116100e9578063485cc9551461019d578063580f6da2146101b057806359b23872146101f35780635b7f415c146101fb5780635c975abb1461021557600080fd5b8063174e4ea61461011b5780631e07f89e146101415780633f4ba83a14610180578063452a93201461018a575b600080fd5b61012e610129366004610bd2565b6102cb565b6040519081526020015b60405180910390f35b6101687f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610138565b6101886102f4565b005b600154610168906001600160a01b031681565b6101886101ab366004610c07565b610306565b6101da6101be366004610c3a565b60006020819052908152604090205467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610138565b61012e610474565b610203601281565b60405160ff9091168152602001610138565b600080516020610ee78339815191525460ff166040519015158152602001610138565b61018861048e565b61018861024e366004610c5c565b6104a0565b6101687f000000000000000000000000000000000000000000000000000000000000000081565b6101886105ef565b610188610290366004610c3a565b610650565b6101686106d1565b610203600681565b6101886102b3366004610cdb565b6106ff565b6101886102c6366004610c3a565b6108c1565b60006102d960066012610d72565b6102e490600a610e6f565b6102ee9083610e7e565b92915050565b6102fc6108ff565b610304610931565b565b6000610310610991565b805490915060ff600160401b820416159067ffffffffffffffff166000811580156103385750825b905060008267ffffffffffffffff1660011480156103555750303b155b905081158015610363575080155b156103815760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156103ab57845460ff60401b1916600160401b1785555b6001600160a01b0387166103d2576040516314030c0360e11b815260040160405180910390fd5b6001600160a01b0386166103f95760405163a91f6a8960e01b815260040160405180910390fd5b610402876109ba565b61040a6109cb565b600180546001600160a01b0319166001600160a01b038816179055831561046b57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b61048060066012610d72565b61048b90600a610e6f565b81565b6104966108ff565b61030460006109d3565b6104a8610a44565b6104b183610a75565b816000036104d257604051631f2a200560e01b815260040160405180910390fd5b826001600160a01b03166379cc6790336104eb856102cb565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561053157600080fd5b505af1158015610545573d6000803e3d6000fd5b505033600090815260208190526040812054909250610570915067ffffffffffffffff166001610e95565b3360008181526020818152604091829020805467ffffffffffffffff861667ffffffffffffffff19909116811790915582518881529182018790528183015290519293506001600160a01b038716927f805e16cfddeedbafc2c9e510cc99d489152ee3d1179eb6a6ca444404a493af4b9181900360600190a350505050565b6001546001600160a01b03163314801590610623575061060d6106d1565b6001600160a01b0316336001600160a01b031614155b156106485760405163354de03160e21b81523360048201526024015b60405180910390fd5b610304610b12565b6106586108ff565b6001600160a01b03811661067f5760405163a91f6a8960e01b815260040160405180910390fd5b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f064d28d3d3071c5cbc271a261c10c2f0f0d9e319390397101aa0eb23c6bad90990600090a35050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6107076108ff565b61070f610a44565b61071885610a75565b8281146107385760405163512509d360e11b815260040160405180910390fd5b6000805b8481101561087457600086868381811061075857610758610ebd565b905060200201602081019061076d9190610c3a565b9050600085858481811061078357610783610ebd565b60200291909101359150506001600160a01b0382166107b857604051633bca2f5160e21b81526004810184905260240161063f565b806000036107d957604051631f2a200560e01b815260040160405180910390fd5b886001600160a01b03166340c10f19836107f2846102cb565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561083857600080fd5b505af115801561084c573d6000803e3d6000fd5b50505050808461085c9190610ed3565b9350505060018161086d9190610ed3565b905061073c565b5060408051858152602081018390526001600160a01b038816917fb5791f4c0829e9abbbdf2a5da78d8f7a8d1890cfb8fd057bcbb0d5cf1309ce1a910160405180910390a2505050505050565b6108c96108ff565b6001600160a01b0381166108f357604051631e4fbdf760e01b81526000600482015260240161063f565b6108fc816109d3565b50565b336109086106d1565b6001600160a01b0316146103045760405163118cdaa760e01b815233600482015260240161063f565b610939610b5b565b600080516020610ee7833981519152805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102ee565b6109c2610b8b565b6108fc81610bb0565b610304610b8b565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b600080516020610ee78339815191525460ff16156103045760405163d93c066560e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614158015610ae957507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614155b156108fc57604051635f8b555b60e11b81526001600160a01b038216600482015260240161063f565b610b1a610a44565b600080516020610ee7833981519152805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833610973565b600080516020610ee78339815191525460ff1661030457604051638dfc202b60e01b815260040160405180910390fd5b610b93610bb8565b61030457604051631afcd79f60e31b815260040160405180910390fd5b6108c9610b8b565b6000610bc2610991565b54600160401b900460ff16919050565b600060208284031215610be457600080fd5b5035919050565b80356001600160a01b0381168114610c0257600080fd5b919050565b60008060408385031215610c1a57600080fd5b610c2383610beb565b9150610c3160208401610beb565b90509250929050565b600060208284031215610c4c57600080fd5b610c5582610beb565b9392505050565b600080600060608486031215610c7157600080fd5b610c7a84610beb565b95602085013595506040909401359392505050565b60008083601f840112610ca157600080fd5b50813567ffffffffffffffff811115610cb957600080fd5b6020830191508360208260051b8501011115610cd457600080fd5b9250929050565b600080600080600060608688031215610cf357600080fd5b610cfc86610beb565b9450602086013567ffffffffffffffff80821115610d1957600080fd5b610d2589838a01610c8f565b90965094506040880135915080821115610d3e57600080fd5b50610d4b88828901610c8f565b969995985093965092949392505050565b634e487b7160e01b600052601160045260246000fd5b60ff82811682821603908111156102ee576102ee610d5c565b600181815b80851115610dc6578160001904821115610dac57610dac610d5c565b80851615610db957918102915b93841c9390800290610d90565b509250929050565b600082610ddd575060016102ee565b81610dea575060006102ee565b8160018114610e005760028114610e0a57610e26565b60019150506102ee565b60ff841115610e1b57610e1b610d5c565b50506001821b6102ee565b5060208310610133831016604e8410600b8410161715610e49575081810a6102ee565b610e538383610d8b565b8060001904821115610e6757610e67610d5c565b029392505050565b6000610c5560ff841683610dce565b80820281158282048414176102ee576102ee610d5c565b67ffffffffffffffff818116838216019080821115610eb657610eb6610d5c565b5092915050565b634e487b7160e01b600052603260045260246000fd5b808201808211156102ee576102ee610d5c56fecd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300a2646970667358221220c9b6c5df781f566a70eec22a57a76b3a89e7a0dfd58c0f8d4d63c818b79c6da164736f6c63430008180033",
511
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a25780638a0dac4a116100715780638a0dac4a146102825780638da5cb5b14610295578063beabb5911461029d578063c9bb2de7146102a5578063f2fde38b146102b857600080fd5b8063715018a6146102385780637a2660401461024057806383a4d591146102535780638456cb591461027a57600080fd5b8063485cc955116100e9578063485cc9551461019d578063580f6da2146101b057806359b23872146101f35780635b7f415c146101fb5780635c975abb1461021557600080fd5b8063174e4ea61461011b5780631e07f89e146101415780633f4ba83a14610180578063452a93201461018a575b600080fd5b61012e610129366004610bd2565b6102cb565b6040519081526020015b60405180910390f35b6101687f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610138565b6101886102f4565b005b600154610168906001600160a01b031681565b6101886101ab366004610c07565b610306565b6101da6101be366004610c3a565b60006020819052908152604090205467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610138565b61012e610474565b610203601281565b60405160ff9091168152602001610138565b600080516020610ee78339815191525460ff166040519015158152602001610138565b61018861048e565b61018861024e366004610c5c565b6104a0565b6101687f000000000000000000000000000000000000000000000000000000000000000081565b6101886105ef565b610188610290366004610c3a565b610650565b6101686106d1565b610203600681565b6101886102b3366004610cdb565b6106ff565b6101886102c6366004610c3a565b6108c1565b60006102d960066012610d72565b6102e490600a610e6f565b6102ee9083610e7e565b92915050565b6102fc6108ff565b610304610931565b565b6000610310610991565b805490915060ff600160401b820416159067ffffffffffffffff166000811580156103385750825b905060008267ffffffffffffffff1660011480156103555750303b155b905081158015610363575080155b156103815760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156103ab57845460ff60401b1916600160401b1785555b6001600160a01b0387166103d2576040516314030c0360e11b815260040160405180910390fd5b6001600160a01b0386166103f95760405163a91f6a8960e01b815260040160405180910390fd5b610402876109ba565b61040a6109cb565b600180546001600160a01b0319166001600160a01b038816179055831561046b57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b61048060066012610d72565b61048b90600a610e6f565b81565b6104966108ff565b61030460006109d3565b6104a8610a44565b6104b183610a75565b816000036104d257604051631f2a200560e01b815260040160405180910390fd5b826001600160a01b03166379cc6790336104eb856102cb565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561053157600080fd5b505af1158015610545573d6000803e3d6000fd5b505033600090815260208190526040812054909250610570915067ffffffffffffffff166001610e95565b3360008181526020818152604091829020805467ffffffffffffffff861667ffffffffffffffff19909116811790915582518881529182018790528183015290519293506001600160a01b038716927f805e16cfddeedbafc2c9e510cc99d489152ee3d1179eb6a6ca444404a493af4b9181900360600190a350505050565b6001546001600160a01b03163314801590610623575061060d6106d1565b6001600160a01b0316336001600160a01b031614155b156106485760405163354de03160e21b81523360048201526024015b60405180910390fd5b610304610b12565b6106586108ff565b6001600160a01b03811661067f5760405163a91f6a8960e01b815260040160405180910390fd5b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f064d28d3d3071c5cbc271a261c10c2f0f0d9e319390397101aa0eb23c6bad90990600090a35050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6107076108ff565b61070f610a44565b61071885610a75565b8281146107385760405163512509d360e11b815260040160405180910390fd5b6000805b8481101561087457600086868381811061075857610758610ebd565b905060200201602081019061076d9190610c3a565b9050600085858481811061078357610783610ebd565b60200291909101359150506001600160a01b0382166107b857604051633bca2f5160e21b81526004810184905260240161063f565b806000036107d957604051631f2a200560e01b815260040160405180910390fd5b886001600160a01b03166340c10f19836107f2846102cb565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561083857600080fd5b505af115801561084c573d6000803e3d6000fd5b50505050808461085c9190610ed3565b9350505060018161086d9190610ed3565b905061073c565b5060408051858152602081018390526001600160a01b038816917fb5791f4c0829e9abbbdf2a5da78d8f7a8d1890cfb8fd057bcbb0d5cf1309ce1a910160405180910390a2505050505050565b6108c96108ff565b6001600160a01b0381166108f357604051631e4fbdf760e01b81526000600482015260240161063f565b6108fc816109d3565b50565b336109086106d1565b6001600160a01b0316146103045760405163118cdaa760e01b815233600482015260240161063f565b610939610b5b565b600080516020610ee7833981519152805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102ee565b6109c2610b8b565b6108fc81610bb0565b610304610b8b565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b600080516020610ee78339815191525460ff16156103045760405163d93c066560e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614158015610ae957507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614155b156108fc57604051635f8b555b60e11b81526001600160a01b038216600482015260240161063f565b610b1a610a44565b600080516020610ee7833981519152805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833610973565b600080516020610ee78339815191525460ff1661030457604051638dfc202b60e01b815260040160405180910390fd5b610b93610bb8565b61030457604051631afcd79f60e31b815260040160405180910390fd5b6108c9610b8b565b6000610bc2610991565b54600160401b900460ff16919050565b600060208284031215610be457600080fd5b5035919050565b80356001600160a01b0381168114610c0257600080fd5b919050565b60008060408385031215610c1a57600080fd5b610c2383610beb565b9150610c3160208401610beb565b90509250929050565b600060208284031215610c4c57600080fd5b610c5582610beb565b9392505050565b600080600060608486031215610c7157600080fd5b610c7a84610beb565b95602085013595506040909401359392505050565b60008083601f840112610ca157600080fd5b50813567ffffffffffffffff811115610cb957600080fd5b6020830191508360208260051b8501011115610cd457600080fd5b9250929050565b600080600080600060608688031215610cf357600080fd5b610cfc86610beb565b9450602086013567ffffffffffffffff80821115610d1957600080fd5b610d2589838a01610c8f565b90965094506040880135915080821115610d3e57600080fd5b50610d4b88828901610c8f565b969995985093965092949392505050565b634e487b7160e01b600052601160045260246000fd5b60ff82811682821603908111156102ee576102ee610d5c565b600181815b80851115610dc6578160001904821115610dac57610dac610d5c565b80851615610db957918102915b93841c9390800290610d90565b509250929050565b600082610ddd575060016102ee565b81610dea575060006102ee565b8160018114610e005760028114610e0a57610e26565b60019150506102ee565b60ff841115610e1b57610e1b610d5c565b50506001821b6102ee565b5060208310610133831016604e8410600b8410161715610e49575081810a6102ee565b610e538383610d8b565b8060001904821115610e6757610e67610d5c565b029392505050565b6000610c5560ff841683610dce565b80820281158282048414176102ee576102ee610d5c565b67ffffffffffffffff818116838216019080821115610eb657610eb6610d5c565b5092915050565b634e487b7160e01b600052603260045260246000fd5b808201808211156102ee576102ee610d5c56fecd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300a2646970667358221220c9b6c5df781f566a70eec22a57a76b3a89e7a0dfd58c0f8d4d63c818b79c6da164736f6c63430008180033",
1617
+ "bytecode": "0x60c060405234801562000010575f80fd5b506040516200420d3803806200420d833981016040819052620000339162000128565b6001600160a01b03808316608052811660a0526200005062000058565b50506200015e565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000a95760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001095780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b80516001600160a01b038116811462000123575f80fd5b919050565b5f80604083850312156200013a575f80fd5b62000145836200010c565b915062000155602084016200010c565b90509250929050565b60805160a051614040620001cd5f395f81816102ac015281816109b501528181610a2201528181610ae401528181611adb0152611b6d01525f818161040e015281816108670152818161098c015281816109df0152818161178101528181611aaa0152611b3001526140405ff3fe608060405234801561000f575f80fd5b50600436106101fd575f3560e01c806378d350e011610114578063a3eb8961116100a9578063e52580a611610079578063e52580a6146104f0578063ecec10a414610558578063f2b946491461056b578063f2fde38b1461057e578063fd3d912314610591575f80fd5b8063a3eb8961146104b9578063beabb591146104c2578063c017c902146104ca578063d68d6311146104dd575f80fd5b806386bf12cc116100e457806386bf12cc146104385780638a0dac4a1461044b5780638da5cb5b1461045e578063905d031f14610466575f80fd5b806378d350e0146103df5780637c9afa67146103e757806383a4d591146104095780638456cb5914610430575f80fd5b80633f4ba83a116101955780635c975abb116101655780635c975abb1461038757806368a9b16d1461039e5780636e2c7769146103b15780636e888c46146103c4578063715018a6146103d7575f80fd5b80633f4ba83a1461034b578063452a93201461035357806359b23872146103655780635b7f415c1461036d575f80fd5b80631e07f89e116101d05780631e07f89e146102a75780632ceeddf5146102e65780632ef29f3b146103065780633167798014610327575f80fd5b806318a8f1f01461020157806318cabf39146102165780631a5d93fd146102295780631c1eeae114610276575b5f80fd5b61021461020f366004613429565b6105ab565b005b6102146102243660046134ac565b610730565b600454600554600654600754610248939291906001600160401b031684565b604080519485526020850193909352918301526001600160401b031660608201526080015b60405180910390f35b5f5461028f90600160a01b90046001600160401b031681565b6040516001600160401b03909116815260200161026d565b6102ce7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161026d565b6102ee610861565b6040516001600160801b03909116815260200161026d565b6103196103143660046134dd565b6108ef565b60405190815260200161026d565b60035461033b90600160401b900460ff1681565b604051901515815260200161026d565b610214610920565b5f546102ce906001600160a01b031681565b610319610932565b610375601281565b60405160ff909116815260200161026d565b5f80516020613feb8339815191525460ff1661033b565b6008546102ee906001600160801b031681565b60015461028f906001600160401b031681565b6102146103d23660046134f6565b61094c565b610214610acd565b6102ee610ade565b61033b6103f5366004613555565b600a6020525f908152604090205460ff1681565b6102ce7f000000000000000000000000000000000000000000000000000000000000000081565b610214610b3e565b61021461044636600461357d565b610b9e565b610214610459366004613598565b610ca6565b6102ce610d24565b610499610474366004613598565b60096020525f90815260409020546001600160801b0380821691600160801b90041682565b604080516001600160801b0393841681529290911660208301520161026d565b61031960025481565b610375600681565b6102146104d83660046135b1565b610d52565b60035461028f906001600160401b031681565b61052e6104fe36600461360c565b600b6020525f90815260409020546001600160401b0380821691600160401b8104821691600160801b9091041683565b604080516001600160401b039485168152928416602084015292169181019190915260600161026d565b610214610566366004613632565b610f67565b6102146105793660046136c9565b61136e565b61021461058c366004613598565b611a09565b6008546102ee90600160801b90046001600160801b031681565b6105b3611a46565b6105bc87611a76565b856001600160801b03165f036105e557604051631f2a200560e01b815260040160405180910390fd5b5f6105ef876108ef565b60405163d505accf60e01b8152336004820152306024820152604481018290526064810187905260ff8616608482015260a4810185905260c481018490529091506001600160a01b0389169063d505accf9060e4015f604051808303815f87803b15801561065b575f80fd5b505af115801561066d573d5f803e3d5ffd5b505060405163079cc67960e41b8152336004820152602481018490526001600160a01b038b1692506379cc679091506044015f604051808303815f87803b1580156106b6575f80fd5b505af11580156106c8573d5f803e3d5ffd5b505050505f6106d5611bcb565b90506001600160a01b038916337f3ab970a848f33363427e47cfbd7a627af0c6e72757f150137e38cef3cee24d938a8a61070e86611c1b565b60405161071d9392919061375e565b60405180910390a3505050505050505050565b610738611c90565b5f80806107bc6107488580613782565b808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250610786925050506020870187613782565b808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250611cc292505050565b6040805160808101825260045481526005546020820152600654918101919091526007546001600160401b0316606082018190529396509194509250906108139085908590859061080e9060016137e2565b611ddd565b600854610828906001600160801b0316611e2f565b8381604001517f33e53e90d61fdc868629a6234670f92c4445196f3f98ebd71935bbc76c7d915360405160405180910390a35050505050565b5f6108ea7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e59190613809565b611e58565b905090565b5f6108fc60066012613820565b61090790600a613919565b61091a906001600160801b038416613927565b92915050565b610928611c90565b610930611ea8565b565b61093e60066012613820565b61094990600a613919565b81565b610954611c90565b61095c611a46565b600354600160401b900460ff161561098757604051633dbff3b560e01b815260040160405180910390fd5b6109b07f0000000000000000000000000000000000000000000000000000000000000000611a76565b6109d97f0000000000000000000000000000000000000000000000000000000000000000611a76565b5f610a1a7f0000000000000000000000000000000000000000000000000000000000000000610a088580613782565b610a156020880188613782565b611f07565b90505f610a4b7f0000000000000000000000000000000000000000000000000000000000000000610a088580613782565b6003805460ff60401b1916600160401b17905590507fc255ddc45163282f24909556f7475ab4ec8eb1d51763b25a4560cee9f43d0645610a8b8580613782565b905083610a988680613782565b604051610abf94939250869093845260208401929092526040830152606082015260800190565b60405180910390a150505050565b610ad5611c90565b6109305f612046565b5f6108ea7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108c1573d5f803e3d5ffd5b5f546001600160a01b03163314801590610b715750610b5b610d24565b6001600160a01b0316336001600160a01b031614155b15610b965760405163354de03160e21b81523360048201526024015b60405180910390fd5b6109306120b6565b610ba6611a46565b610baf816120fe565b610bc7610bc260e0830160c08401613598565b611a76565b610bd760c0820160a0830161360c565b6001600160401b03164311610c225743610bf760c0830160a0840161360c565b6040516374276dcf60e11b815260048101929092526001600160401b03166024820152604401610b8d565b5f610c2c82612168565b9050610c3781612271565b610c55815f908152600a60205260409020805460ff19166001179055565b5f610c5e611bcb565b90507f3cb8789e9bf6f532eec2bc8ffee9b622fc0d6e6daefb7fb6bb2e2f7b2d62e45282610c8b83611c1b565b604051610c9992919061393e565b60405180910390a1505050565b610cae611c90565b6001600160a01b038116610cd55760405163a91f6a8960e01b815260040160405180910390fd5b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f064d28d3d3071c5cbc271a261c10c2f0f0d9e319390397101aa0eb23c6bad9099190a35050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b5f610d5b6122a3565b805490915060ff600160401b82041615906001600160401b03165f81158015610d815750825b90505f826001600160401b03166001148015610d9c5750303b155b905081158015610daa575080155b15610dc85760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610df257845460ff60401b1916600160401b1785555b6001600160a01b038b16610e19576040516314030c0360e11b815260040160405180910390fd5b6001600160a01b038a16610e405760405163a91f6a8960e01b815260040160405180910390fd5b881580610e4b575087155b80610e54575086155b15610e745760405163665c282b60e01b81525f6004820152602401610b8d565b856001600160801b03165f03610e9d57604051632440a7dd60e01b815260040160405180910390fd5b610ea68b6122cb565b610eae6122dc565b5f80546001600160a01b0319166001600160a01b038c16179055610ed589888a6001611ddd565b6001600160801b038616600160801b81021760085560405189907fac3566d46c25f65b48d269870da4b9349704c79de13ad49b115532834d7e7ed1905f90a28315610f5a57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050505050565b610f6f611a46565b8115801590610fcd575060028383610f88600182613966565b818110610f9757610f97613979565b9050602002810190610fa9919061398d565b610fba9060408101906020016139ab565b6002811115610fcb57610fcb613952565b145b15610feb5760405163bf3d210b60e01b815260040160405180910390fd5b60065461100b57604051632c1dfd4f60e11b815260040160405180910390fd5b5f808061105961101b8880613782565b808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152506107869250505060208a018a613782565b9250925092506004600201548314158061107557506004548214155b8061108257506005548114155b156110ae57600654604051633b21437560e21b8152600481019190915260248101849052604401610b8d565b6040805160a081019091525f90806110c68a80613782565b808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525050509082525060209081019061110b908b018b613782565b808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525050509082525060208101869052604081018590526060018390526002549091508690815b80156111c75761116b816139c9565b905060028a8a8381811061118157611181613979565b9050602002810190611193919061398d565b6111a49060408101906020016139ab565b60028111156111b5576111b5613952565b146111c2578092506111c7565b61115c565b505f5b88811015610f5a57368a8a838181106111e5576111e5613979565b90506020028101906111f7919061398d565b600180549192505f91611215916001600160401b03909116906137e2565b90506001600160401b03811661122e602084018461360c565b6001600160401b031614611276578061124a602084018461360c565b604051635efa452960e11b81526001600160401b03928316600482015291166024820152604401610b8d565b600261128860408401602085016139ab565b600281111561129957611299613952565b036112b0576112a982858c6122e4565b9350611364565b5f6112c160408401602085016139ab565b60028111156112d2576112d2613952565b036112ed576112e38287868d6124c9565b9096509350611364565b60016112ff60408401602085016139ab565b600281111561131057611310613952565b03611324576112a98287868887148e6126aa565b61133460408301602084016139ab565b600281111561134557611345613952565b60405163b99607f960e01b815260ff9091166004820152602401610b8d565b50506001016111ca565b611376611a46565b61137f826120fe565b611392610bc260e0840160c08501613598565b6113a3610100830160e084016134dd565b6001600160801b03165f036113cb57604051631f2a200560e01b815260040160405180910390fd5b6113db60c0830160a0840161360c565b6001600160401b031643111561142757436113fc60c0840160a0850161360c565b604051635728c7dd60e11b815260048101929092526001600160401b03166024820152604401610b8d565b5f61143183612168565b905061143c81612271565b5f611455611450608086016060870161360c565b61290c565b90505f8080806114658780613782565b90506001600160401b0381111561147e5761147e6139de565b6040519080825280602002602001820160405280156114c757816020015b604080516060810182525f80825260208083018290529282015282525f1990920191018161149c5790505b5090505f5b6114d68880613782565b905081101561177657366114ea8980613782565b838181106114fa576114fa613979565b905060200281019061150c91906139f2565b90505f61155261154061153b8d61152660208701876134dd565b61153660408801602089016134dd565b6129b0565b612a3d565b61154d6040850185613a06565b612a6f565b9050846001600160a01b0316816001600160a01b031611611586576040516309cf9e4960e11b815260040160405180910390fd5b6001600160a01b0381165f908152600960209081526040909120906115ad908401846134dd565b81546001600160801b03918216911610806115ed57506115d360408401602085016134dd565b81546001600160801b03918216600160801b909104909116105b15611616576040516364fc3cd160e11b81526001600160a01b0383166004820152602401610b8d565b61162360208401846134dd565b815482905f9061163d9084906001600160801b0316613a48565b92506101000a8154816001600160801b0302191690836001600160801b0316021790555082602001602081019061167491906134dd565b81548290601090611696908490600160801b90046001600160801b0316613a48565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550825f0160208101906116cc91906134dd565b6116d69089613a68565b97506116e860408401602085016134dd565b6116f29088613a68565b96506040518060600160405280836001600160a01b03168152602001845f01602081019061172091906134dd565b6001600160801b0316815260200184602001602081019061174191906134dd565b6001600160801b031681525085858151811061175f5761175f613979565b6020908102919091010152509350506001016114cc565b506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166117b160e08a0160c08b01613598565b6001600160a01b031603611868575f6117cc6006600a613919565b6117e26001600160801b03808916908716613927565b6117ec9190613a88565b90505f611802826001600160801b038816613aa7565b90506118156101008b0160e08c016134dd565b6001600160801b031681101561186157806118376101008c0160e08d016134dd565b60405162f9825560e61b815260048101929092526001600160801b03166024820152604401610b8d565b50506118f7565b6001600160801b0384161561189057604051630994a0f360e11b815260040160405180910390fd5b6118a1610100890160e08a016134dd565b6001600160801b0316836001600160801b031610156118f757826118cc6101008a0160e08b016134dd565b60405162f9825560e61b81526001600160801b03928316600482015291166024820152604401610b8d565b611915865f908152600a60205260409020805460ff19166001179055565b61192560e0890160c08a01613598565b6001600160a01b03166340c10f1961194360a08b0160808c01613598565b6119576103146101008d0160e08e016134dd565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044015f604051808303815f87803b15801561199a575f80fd5b505af11580156119ac573d5f803e3d5ffd5b505050505f6119b9611bcb565b90507f8ae526f6f5bc6ec0e6b4bf46b1aecd08ff639bbd259d56fea940908be08a31c787836119e784611c1b565b6040516119f693929190613aba565b60405180910390a1505050505050505050565b611a11611c90565b6001600160a01b038116611a3a57604051631e4fbdf760e01b81525f6004820152602401610b8d565b611a4381612046565b50565b5f80516020613feb8339815191525460ff16156109305760405163d93c066560e01b815260040160405180910390fd5b6001600160a01b038116611aa857604051635f8b555b60e11b81526001600160a01b0382166004820152602401610b8d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161580611b0557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316155b15611b2e57604051635f8b555b60e11b81526001600160a01b0382166004820152602401610b8d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614158015611ba257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614155b15611a4357604051635f8b555b60e11b81526001600160a01b0382166004820152602401610b8d565b5f8054611be990600160a01b90046001600160401b031660016137e2565b5f805467ffffffffffffffff60a01b1916600160a01b6001600160401b038416021790559050611c1881612a99565b90565b604080516080810182525f808252602082018190529181018290526060810191909152604080516080810182526001600160401b038085168252600154166020820152908101611c69610861565b6001600160801b03168152602001611c7f610ade565b6001600160801b0316905292915050565b33611c99610d24565b6001600160a01b0316146109305760405163118cdaa760e01b8152336004820152602401610b8d565b5f805f84515f03611ce85760405163665c282b60e01b81525f6004820152602401610b8d565b8351855114611d0a5760405163512509d360e11b815260040160405180910390fd5b5f805b8651811015611dc4575f878281518110611d2957611d29613979565b602002602001015190505f878381518110611d4657611d46613979565b602002602001015190505f6001600160a01b0316826001600160a01b03161480611d6e575080155b80611d8b5750836001600160a01b0316826001600160a01b031611155b15611dac5760405163665c282b60e01b815260048101849052602401610b8d565b611db68187613aa7565b955090925050600101611d0d565b5085519150611dd38686612c62565b9350509250925092565b60408051608081018252848152602081018490529081018590526001600160401b0390911660609091018190526004929092556005556006919091556007805467ffffffffffffffff19169091179055565b600880546001600160801b03908116600160801b026001600160801b0319169216919091179055565b5f80611e6660066012613820565b611e7190600a613919565b611e7b9084613a88565b90506001600160801b0381111561091a57604051639940a77560e01b815260048101829052602401610b8d565b611eb0612c94565b5f80516020613feb833981519152805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b5f838214611f285760405163512509d360e11b815260040160405180910390fd5b5f5b8481101561203c575f868683818110611f4557611f45613979565b9050602002016020810190611f5a9190613598565b90505f858584818110611f6f57611f6f613979565b60200291909101359150506001600160a01b038216611fa457604051633bca2f5160e21b815260048101849052602401610b8d565b805f03611fc457604051631f2a200560e01b815260040160405180910390fd5b6040516340c10f1960e01b81526001600160a01b038381166004830152602482018390528a16906340c10f19906044015f604051808303815f87803b15801561200b575f80fd5b505af115801561201d573d5f803e3d5ffd5b50505050808461202d9190613aa7565b93505050806001019050611f2a565b5095945050505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b6120be611a46565b5f80516020613feb833981519152805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833611ee9565b466001600160401b038116612119606084016040850161360c565b6001600160401b0316146121645780612138606084016040850161360c565b6040516332e3634d60e21b81526001600160401b03928316600482015291166024820152604401610b8d565b5050565b5f813561217b604084016020850161360c565b61218b606085016040860161360c565b61219b608086016060870161360c565b6121ab60a0870160808801613598565b6121bb60c0880160a0890161360c565b6121cb60e0890160c08a01613598565b6121dc6101008a0160e08b016134dd565b6121ee6101208b016101008c016134dd565b60408051602081019a909a526001600160401b03988916908a0152958716606089015293861660808801526001600160a01b0392831660a0880152941660c086015290921660e08401526001600160801b039182166101008401521661012082015261014001604051602081830303815290604052805190602001209050919050565b5f818152600a602052604090205460ff1615611a4357604051632910aca360e01b815260048101829052602401610b8d565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0061091a565b6122d3612cc3565b611a4381612ce8565b610930612cc3565b5f806122f36040860186613a06565b8101906123009190613b93565b905061230f6060860186613782565b905060011461234a5760016123276060870187613782565b604051636b01174760e11b81526004810193909352602483015250604401610b8d565b61236761235a602087018761360c565b8251602084015187612cf0565b91505f6123a561237684612a3d565b6123836060890189613782565b5f81811061239357612393613979565b905060200281019061154d9190613a06565b905081602001516001600160a01b0316816001600160a01b0316146123f6576020820151604051630be4b0e160e01b81526001600160a01b0391821660048201529082166024820152604401610b8d565b602080830180516001600160a01b039081165f908152600984526040808220805494519093168252812055916001600160801b0380831692600160801b90041690612443908a018a61360c565b6001805467ffffffffffffffff19166001600160401b039290921691909117905560028690555f612472611bcb565b86519091507f282837b277a62657a658088ea05a123b3560686317498f8b2cc5318619c5a9f984848b6124a486611c1b565b6040516124b49493929190613bc7565b60405180910390a25050505050509392505050565b6124fb6040518060a0016040528060608152602001606081526020015f80191681526020015f81526020015f81525090565b5f8061250a6040880188613a06565b8101906125179190613c8a565b905080602001516001600160801b03165f0361254657604051632440a7dd60e01b815260040160405180910390fd5b805180516020909101515f918291829161255f91611cc2565b9194509250905061259261257660208c018c61360c565b60408b015186518051602091820151918901519091908d612d7c565b94506125c4856125a560608d018d613782565b6125ae91613da7565b8b5160208d015160608e015160808f0151612db0565b6007546125e59084908490849061080e906001600160401b031660016137e2565b6125f28460200151611e2f565b6125ff60208b018b61360c565b6001805467ffffffffffffffff19166001600160401b039290921691909117905560028590555f61262e611bcb565b90507fb3dbfeab9c5013403dc2f2300318b92643b1cb9323077d549b4f93bbddded963848961265c84611c1b565b60405161266b93929190613e66565b60405180910390a1506040805160a081018252855151815294516020908101519086015284019290925260608301526080820152915094509492505050565b5f806126b96040880188613a06565b8101906126c69190613e81565b60608101519091506001600160a01b03166126f45760405163611b32ab60e01b815260040160405180910390fd5b60208101516001600160801b031615801561271a575060408101516001600160801b0316155b1561273e57805160405163162421e960e31b81526004810191909152602401610b8d565b60608101516001600160a01b03165f90815260096020526040902080546001600160801b031615158061278157508054600160801b90046001600160801b031615155b156127b057606082015160405163cb96603760e01b81526001600160a01b039091166004820152602401610b8d565b6127de6127c060208a018a61360c565b8860400151845f01518560200151866040015187606001518c612df5565b9250841561281657612816836127f760608b018b613782565b61280091613da7565b895160208b015160608c015160808d0151612db0565b6040805180820182526020808501516001600160801b03908116835285840151811682840190815260608701516001600160a01b03165f9081526009845294909420925193518116600160801b0293169290921790556128789089018961360c565b6001805467ffffffffffffffff19166001600160401b039290921691909117905560028390555f6128a7611bcb565b9050825f01517f0979cc09e676df76240cc73ba72832bb245d770c4029e526bf7ed115c6bbcb36846020015185604001518660600151896128e787611c1b565b6040516128f8959493929190613ef4565b60405180910390a250505095945050505050565b6007545f906001600160401b039081169083168190036129395750506008546001600160801b0316919050565b6001816001600160401b031611801561296d5750612958600182613f30565b6001600160401b0316836001600160401b0316145b1561298c575050600854600160801b90046001600160801b0316919050565b6040516338acf07360e21b81526001600160401b0384166004820152602401610b8d565b5f7f28bf99522b0d2f26a76cdeda71578156383bbae91175ca503165cfdbbd1ff34a46306129dd87612168565b6040805160208101959095528401929092526001600160a01b0316606083015260808201526001600160801b0380851660a0830152831660c082015260e0015b6040516020818303038152906040528051906020012090505b9392505050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f908152601c91909152603c902090565b5f805f80612a7e878787612e1c565b925092509250612a8e8282612e63565b509095945050505050565b60035443906001600160401b03165f03612b5b576003805467ffffffffffffffff19166001908117909155604080516060810182526001600160401b03938416815293831660208086018281529286019182525f93909352600b90925292517f72c6bfb7988af3a1efa6568f02a999bc52252641c659d85961ca3d372b57d5cf8054945192518416600160801b0267ffffffffffffffff60801b19938516600160401b026001600160801b031990961692909416919091179390931716179055565b6003546001600160401b039081165f908152600b6020526040902080549091838116911603612bb15780546001600160401b03909316600160801b0267ffffffffffffffff60801b199093169290921790915550565b6003545f90612bca906001600160401b031660016137e2565b600380546001600160401b0392831667ffffffffffffffff19909116811790915560408051606081018252958316865295821660208087018281528789019283525f938452600b9091529690912094518554965191518316600160801b0267ffffffffffffffff60801b19928416600160401b026001600160801b031990981691909316179590951794909416939093179091555050565b5f8282604051602001612c76929190613f50565b60405160208183030381529060405280519060200120905092915050565b5f80516020613feb8339815191525460ff1661093057604051638dfc202b60e01b815260040160405180910390fd5b612ccb612f1b565b61093057604051631afcd79f60e31b815260040160405180910390fd5b611a11612cc3565b604080517fad7e1df8fff16b907a93b4116c7590060dfa3b9c396a8b815e8290b0dff45cba602082015246918101919091523060608201526001600160401b038516608082015260a081018490526001600160a01b03831660c082015260e081018290525f90610100015b6040516020818303038152906040528051906020012090505b949350505050565b5f80612d888686612c62565b9050612da288885f84612d9c8b8b8b612f34565b88612f9e565b9150505b9695505050505050565b5f80612dbe88888888613050565b91509150612dce828286866131c3565b612deb5760405163079842ab60e41b815260040160405180910390fd5b5050505050505050565b5f612e108888600189612e0a8b8b8b8b613224565b87612f9e565b98975050505050505050565b5f80806041849003612e50578435602086013560408701355f1a612e4289828585613281565b955095509550505050612e5a565b505f915060029050825b93509350939050565b5f826003811115612e7657612e76613952565b03612e7f575050565b6001826003811115612e9357612e93613952565b03612eb15760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115612ec557612ec5613952565b03612ee65760405163fce698f760e01b815260048101829052602401610b8d565b6003826003811115612efa57612efa613952565b03612164576040516335e2f38360e21b815260048101829052602401610b8d565b5f612f246122a3565b54600160401b900460ff16919050565b5f7f82ce6440aa5dde11f3613892819b630b62342bacf93e16a292d5c8783aafa4c34630612f628787612c62565b6040805160208101959095528401929092526001600160a01b0316606083015260808201526001600160801b03831660a082015260c001612a1d565b5f7fdef5c8e4dc3374e0ecc7770cd325f9cd1308204f913b668e565cfef01043315846308989896002811115612fd657612fd6613952565b6040805160208101979097528601949094526001600160a01b0390921660608501526001600160401b0316608084015260a083015260ff1660c082015260e0810185905261010081018490526101208101839052610140016040516020818303038152906040528051906020012090509695505050505050565b5f805f8061305d88612a3d565b90505f805b88518110156131b6575f61308f848b848151811061308257613082613979565b6020026020010151613349565b9050846001600160a01b0316816001600160a01b0316116130c3576040516309cf9e4960e11b815260040160405180910390fd5b8851831080156130fd5750806001600160a01b03168984815181106130ea576130ea613979565b60200260200101516001600160a01b0316105b156131125761310b83613fd2565b92506130c3565b885183148061314c5750806001600160a01b031689848151811061313857613138613979565b60200260200101516001600160a01b031614155b1561316d5760405163665c282b60e01b815260048101839052602401610b8d565b61317687613fd2565b965087838151811061318a5761318a613979565b60200260200101518661319d9190613aa7565b95509350836131ab83613fd2565b925050600101613062565b5050505094509492505050565b5f806131cf8684613966565b90506131dc84605a613927565b6131e7866064613927565b106131f6576001915050612d74565b60028111158015612da6575061320d846050613927565b613218866064613927565b10159695505050505050565b5f7f1cd7f89e34f6154d6f8387a08ffafc689e347b8d5809913b07c58a42995dff66463061325488888888613371565b6040805160208101959095528401929092526001600160a01b03166060830152608082015260a001612d5b565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411156132ba57505f9150600390508261333f565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa15801561330b573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b03811661333657505f92506001915082905061333f565b92505f91508190505b9450945094915050565b5f805f8061335786866133af565b9250925092506133678282612e63565b5090949350505050565b60408051602081018690526001600160801b038086169282019290925290831660608201526001600160a01b03821660808201525f9060a001612d5b565b5f805f83516041036133e6576020840151604085015160608601515f1a6133d888828585613281565b9550955095505050506133f1565b505081515f91506002905b9250925092565b80356001600160a01b038116811461340e575f80fd5b919050565b80356001600160801b038116811461340e575f80fd5b5f805f805f805f60e0888a03121561343f575f80fd5b613448886133f8565b965061345660208901613413565b95506040880135945060608801359350608088013560ff81168114613479575f80fd5b9699959850939692959460a0840135945060c09093013592915050565b5f604082840312156134a6575f80fd5b50919050565b5f602082840312156134bc575f80fd5b81356001600160401b038111156134d1575f80fd5b612d7484828501613496565b5f602082840312156134ed575f80fd5b612a3682613413565b5f8060408385031215613507575f80fd5b82356001600160401b038082111561351d575f80fd5b61352986838701613496565b9350602085013591508082111561353e575f80fd5b5061354b85828601613496565b9150509250929050565b5f60208284031215613565575f80fd5b5035919050565b5f61012082840312156134a6575f80fd5b5f610120828403121561358e575f80fd5b612a36838361356c565b5f602082840312156135a8575f80fd5b612a36826133f8565b5f805f805f8060c087890312156135c6575f80fd5b6135cf876133f8565b95506135dd602088016133f8565b945060408701359350606087013592506080870135915061360060a08801613413565b90509295509295509295565b5f6020828403121561361c575f80fd5b81356001600160401b0381168114612a36575f80fd5b5f805f8060608587031215613645575f80fd5b84356001600160401b038082111561365b575f80fd5b61366788838901613496565b9550602087013591508082111561367c575f80fd5b818701915087601f83011261368f575f80fd5b81358181111561369d575f80fd5b8860208260051b85010111156136b1575f80fd5b95986020929092019750949560400135945092505050565b5f8061014083850312156136db575f80fd5b6136e5848461356c565b91506101208301356001600160401b03811115613700575f80fd5b830160208186031215613711575f80fd5b809150509250929050565b6001600160401b038082511683528060208301511660208401525060408101516001600160801b03808216604085015280606084015116606085015250505050565b6001600160801b03841681526020810183905260c08101612d74604083018461371c565b5f808335601e19843603018112613797575f80fd5b8301803591506001600160401b038211156137b0575f80fd5b6020019150600581901b36038213156137c7575f80fd5b9250929050565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b03818116838216019080821115613802576138026137ce565b5092915050565b5f60208284031215613819575f80fd5b5051919050565b60ff828116828216039081111561091a5761091a6137ce565b600181815b8085111561387357815f1904821115613859576138596137ce565b8085161561386657918102915b93841c939080029061383e565b509250929050565b5f826138895750600161091a565b8161389557505f61091a565b81600181146138ab57600281146138b5576138d1565b600191505061091a565b60ff8411156138c6576138c66137ce565b50506001821b61091a565b5060208310610133831016604e8410600b84101617156138f4575081810a61091a565b6138fe8383613839565b805f1904821115613911576139116137ce565b029392505050565b5f612a3660ff84168361387b565b808202811582820484141761091a5761091a6137ce565b82815260a08101612a36602083018461371c565b634e487b7160e01b5f52602160045260245ffd5b8181038181111561091a5761091a6137ce565b634e487b7160e01b5f52603260045260245ffd5b5f8235607e198336030181126139a1575f80fd5b9190910192915050565b5f602082840312156139bb575f80fd5b813560038110612a36575f80fd5b5f816139d7576139d76137ce565b505f190190565b634e487b7160e01b5f52604160045260245ffd5b5f8235605e198336030181126139a1575f80fd5b5f808335601e19843603018112613a1b575f80fd5b8301803591506001600160401b03821115613a34575f80fd5b6020019150368190038213156137c7575f80fd5b6001600160801b03828116828216039080821115613802576138026137ce565b6001600160801b03818116838216019080821115613802576138026137ce565b5f82613aa257634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561091a5761091a6137ce565b5f60c08201858352602060c0602085015281865180845260e0860191506020880193505f5b81811015613b2657845180516001600160a01b03168452848101516001600160801b0390811686860152604091820151169084015293830193606090920191600101613adf565b5050809350505050612d74604083018461371c565b604080519081016001600160401b0381118282101715613b5d57613b5d6139de565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613b8b57613b8b6139de565b604052919050565b5f60408284031215613ba3575f80fd5b613bab613b3b565b82358152613bbb602084016133f8565b60208201529392505050565b6001600160801b038581168252841660208201526040810183905260e08101613bf3606083018461371c565b95945050505050565b5f6001600160401b03821115613c1457613c146139de565b5060051b60200190565b5f82601f830112613c2d575f80fd5b81356020613c42613c3d83613bfc565b613b63565b8083825260208201915060208460051b870101935086841115613c63575f80fd5b602086015b84811015613c7f5780358352918301918301613c68565b509695505050505050565b5f6020808385031215613c9b575f80fd5b82356001600160401b0380821115613cb1575f80fd5b9084019060408287031215613cc4575f80fd5b613ccc613b3b565b823582811115613cda575f80fd5b830160408189031215613ceb575f80fd5b613cf3613b3b565b813584811115613d01575f80fd5b8201601f81018a13613d11575f80fd5b8035613d1f613c3d82613bfc565b81815260059190911b8201880190888101908c831115613d3d575f80fd5b928901925b82841015613d6257613d53846133f8565b82529289019290890190613d42565b84525050508186013584811115613d77575f80fd5b613d838a828501613c1e565b8288015250825250613d96838501613413565b848201528094505050505092915050565b5f613db4613c3d84613bfc565b80848252602080830192508560051b850136811115613dd1575f80fd5b855b81811015613e5a5780356001600160401b0380821115613df1575f80fd5b90880190601f3681840112613e04575f80fd5b823582811115613e1657613e166139de565b613e27818301601f19168801613b63565b92508083523687828601011115613e3c575f80fd5b80878501888501375f90830187015250865250938201938201613dd3565b50919695505050505050565b8381526020810183905260c08101612d74604083018461371c565b5f60808284031215613e91575f80fd5b604051608081018181106001600160401b0382111715613eb357613eb36139de565b60405282358152613ec660208401613413565b6020820152613ed760408401613413565b6040820152613ee8606084016133f8565b60608201529392505050565b6001600160801b038681168252851660208201526001600160a01b0384166040820152606081018390526101008101612da6608083018461371c565b6001600160401b03828116828216039080821115613802576138026137ce565b604080825283519082018190525f906020906060840190828701845b82811015613f915781516001600160a01b031684529284019290840190600101613f6c565b505050838103828501528451808252858301918301905f5b81811015613fc557835183529284019291840191600101613fa9565b5090979650505050505050565b5f60018201613fe357613fe36137ce565b506001019056fecd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300a2646970667358221220f5eb54d70e40c5a043e83732162372d649504b7c02104d29fd2437dcbcfa25eb64736f6c63430008180033",
1618
+ "deployedBytecode": "0x608060405234801561000f575f80fd5b50600436106101fd575f3560e01c806378d350e011610114578063a3eb8961116100a9578063e52580a611610079578063e52580a6146104f0578063ecec10a414610558578063f2b946491461056b578063f2fde38b1461057e578063fd3d912314610591575f80fd5b8063a3eb8961146104b9578063beabb591146104c2578063c017c902146104ca578063d68d6311146104dd575f80fd5b806386bf12cc116100e457806386bf12cc146104385780638a0dac4a1461044b5780638da5cb5b1461045e578063905d031f14610466575f80fd5b806378d350e0146103df5780637c9afa67146103e757806383a4d591146104095780638456cb5914610430575f80fd5b80633f4ba83a116101955780635c975abb116101655780635c975abb1461038757806368a9b16d1461039e5780636e2c7769146103b15780636e888c46146103c4578063715018a6146103d7575f80fd5b80633f4ba83a1461034b578063452a93201461035357806359b23872146103655780635b7f415c1461036d575f80fd5b80631e07f89e116101d05780631e07f89e146102a75780632ceeddf5146102e65780632ef29f3b146103065780633167798014610327575f80fd5b806318a8f1f01461020157806318cabf39146102165780631a5d93fd146102295780631c1eeae114610276575b5f80fd5b61021461020f366004613429565b6105ab565b005b6102146102243660046134ac565b610730565b600454600554600654600754610248939291906001600160401b031684565b604080519485526020850193909352918301526001600160401b031660608201526080015b60405180910390f35b5f5461028f90600160a01b90046001600160401b031681565b6040516001600160401b03909116815260200161026d565b6102ce7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161026d565b6102ee610861565b6040516001600160801b03909116815260200161026d565b6103196103143660046134dd565b6108ef565b60405190815260200161026d565b60035461033b90600160401b900460ff1681565b604051901515815260200161026d565b610214610920565b5f546102ce906001600160a01b031681565b610319610932565b610375601281565b60405160ff909116815260200161026d565b5f80516020613feb8339815191525460ff1661033b565b6008546102ee906001600160801b031681565b60015461028f906001600160401b031681565b6102146103d23660046134f6565b61094c565b610214610acd565b6102ee610ade565b61033b6103f5366004613555565b600a6020525f908152604090205460ff1681565b6102ce7f000000000000000000000000000000000000000000000000000000000000000081565b610214610b3e565b61021461044636600461357d565b610b9e565b610214610459366004613598565b610ca6565b6102ce610d24565b610499610474366004613598565b60096020525f90815260409020546001600160801b0380821691600160801b90041682565b604080516001600160801b0393841681529290911660208301520161026d565b61031960025481565b610375600681565b6102146104d83660046135b1565b610d52565b60035461028f906001600160401b031681565b61052e6104fe36600461360c565b600b6020525f90815260409020546001600160401b0380821691600160401b8104821691600160801b9091041683565b604080516001600160401b039485168152928416602084015292169181019190915260600161026d565b610214610566366004613632565b610f67565b6102146105793660046136c9565b61136e565b61021461058c366004613598565b611a09565b6008546102ee90600160801b90046001600160801b031681565b6105b3611a46565b6105bc87611a76565b856001600160801b03165f036105e557604051631f2a200560e01b815260040160405180910390fd5b5f6105ef876108ef565b60405163d505accf60e01b8152336004820152306024820152604481018290526064810187905260ff8616608482015260a4810185905260c481018490529091506001600160a01b0389169063d505accf9060e4015f604051808303815f87803b15801561065b575f80fd5b505af115801561066d573d5f803e3d5ffd5b505060405163079cc67960e41b8152336004820152602481018490526001600160a01b038b1692506379cc679091506044015f604051808303815f87803b1580156106b6575f80fd5b505af11580156106c8573d5f803e3d5ffd5b505050505f6106d5611bcb565b90506001600160a01b038916337f3ab970a848f33363427e47cfbd7a627af0c6e72757f150137e38cef3cee24d938a8a61070e86611c1b565b60405161071d9392919061375e565b60405180910390a3505050505050505050565b610738611c90565b5f80806107bc6107488580613782565b808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250610786925050506020870187613782565b808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250611cc292505050565b6040805160808101825260045481526005546020820152600654918101919091526007546001600160401b0316606082018190529396509194509250906108139085908590859061080e9060016137e2565b611ddd565b600854610828906001600160801b0316611e2f565b8381604001517f33e53e90d61fdc868629a6234670f92c4445196f3f98ebd71935bbc76c7d915360405160405180910390a35050505050565b5f6108ea7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e59190613809565b611e58565b905090565b5f6108fc60066012613820565b61090790600a613919565b61091a906001600160801b038416613927565b92915050565b610928611c90565b610930611ea8565b565b61093e60066012613820565b61094990600a613919565b81565b610954611c90565b61095c611a46565b600354600160401b900460ff161561098757604051633dbff3b560e01b815260040160405180910390fd5b6109b07f0000000000000000000000000000000000000000000000000000000000000000611a76565b6109d97f0000000000000000000000000000000000000000000000000000000000000000611a76565b5f610a1a7f0000000000000000000000000000000000000000000000000000000000000000610a088580613782565b610a156020880188613782565b611f07565b90505f610a4b7f0000000000000000000000000000000000000000000000000000000000000000610a088580613782565b6003805460ff60401b1916600160401b17905590507fc255ddc45163282f24909556f7475ab4ec8eb1d51763b25a4560cee9f43d0645610a8b8580613782565b905083610a988680613782565b604051610abf94939250869093845260208401929092526040830152606082015260800190565b60405180910390a150505050565b610ad5611c90565b6109305f612046565b5f6108ea7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108c1573d5f803e3d5ffd5b5f546001600160a01b03163314801590610b715750610b5b610d24565b6001600160a01b0316336001600160a01b031614155b15610b965760405163354de03160e21b81523360048201526024015b60405180910390fd5b6109306120b6565b610ba6611a46565b610baf816120fe565b610bc7610bc260e0830160c08401613598565b611a76565b610bd760c0820160a0830161360c565b6001600160401b03164311610c225743610bf760c0830160a0840161360c565b6040516374276dcf60e11b815260048101929092526001600160401b03166024820152604401610b8d565b5f610c2c82612168565b9050610c3781612271565b610c55815f908152600a60205260409020805460ff19166001179055565b5f610c5e611bcb565b90507f3cb8789e9bf6f532eec2bc8ffee9b622fc0d6e6daefb7fb6bb2e2f7b2d62e45282610c8b83611c1b565b604051610c9992919061393e565b60405180910390a1505050565b610cae611c90565b6001600160a01b038116610cd55760405163a91f6a8960e01b815260040160405180910390fd5b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f064d28d3d3071c5cbc271a261c10c2f0f0d9e319390397101aa0eb23c6bad9099190a35050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b5f610d5b6122a3565b805490915060ff600160401b82041615906001600160401b03165f81158015610d815750825b90505f826001600160401b03166001148015610d9c5750303b155b905081158015610daa575080155b15610dc85760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610df257845460ff60401b1916600160401b1785555b6001600160a01b038b16610e19576040516314030c0360e11b815260040160405180910390fd5b6001600160a01b038a16610e405760405163a91f6a8960e01b815260040160405180910390fd5b881580610e4b575087155b80610e54575086155b15610e745760405163665c282b60e01b81525f6004820152602401610b8d565b856001600160801b03165f03610e9d57604051632440a7dd60e01b815260040160405180910390fd5b610ea68b6122cb565b610eae6122dc565b5f80546001600160a01b0319166001600160a01b038c16179055610ed589888a6001611ddd565b6001600160801b038616600160801b81021760085560405189907fac3566d46c25f65b48d269870da4b9349704c79de13ad49b115532834d7e7ed1905f90a28315610f5a57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050505050565b610f6f611a46565b8115801590610fcd575060028383610f88600182613966565b818110610f9757610f97613979565b9050602002810190610fa9919061398d565b610fba9060408101906020016139ab565b6002811115610fcb57610fcb613952565b145b15610feb5760405163bf3d210b60e01b815260040160405180910390fd5b60065461100b57604051632c1dfd4f60e11b815260040160405180910390fd5b5f808061105961101b8880613782565b808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152506107869250505060208a018a613782565b9250925092506004600201548314158061107557506004548214155b8061108257506005548114155b156110ae57600654604051633b21437560e21b8152600481019190915260248101849052604401610b8d565b6040805160a081019091525f90806110c68a80613782565b808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525050509082525060209081019061110b908b018b613782565b808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525050509082525060208101869052604081018590526060018390526002549091508690815b80156111c75761116b816139c9565b905060028a8a8381811061118157611181613979565b9050602002810190611193919061398d565b6111a49060408101906020016139ab565b60028111156111b5576111b5613952565b146111c2578092506111c7565b61115c565b505f5b88811015610f5a57368a8a838181106111e5576111e5613979565b90506020028101906111f7919061398d565b600180549192505f91611215916001600160401b03909116906137e2565b90506001600160401b03811661122e602084018461360c565b6001600160401b031614611276578061124a602084018461360c565b604051635efa452960e11b81526001600160401b03928316600482015291166024820152604401610b8d565b600261128860408401602085016139ab565b600281111561129957611299613952565b036112b0576112a982858c6122e4565b9350611364565b5f6112c160408401602085016139ab565b60028111156112d2576112d2613952565b036112ed576112e38287868d6124c9565b9096509350611364565b60016112ff60408401602085016139ab565b600281111561131057611310613952565b03611324576112a98287868887148e6126aa565b61133460408301602084016139ab565b600281111561134557611345613952565b60405163b99607f960e01b815260ff9091166004820152602401610b8d565b50506001016111ca565b611376611a46565b61137f826120fe565b611392610bc260e0840160c08501613598565b6113a3610100830160e084016134dd565b6001600160801b03165f036113cb57604051631f2a200560e01b815260040160405180910390fd5b6113db60c0830160a0840161360c565b6001600160401b031643111561142757436113fc60c0840160a0850161360c565b604051635728c7dd60e11b815260048101929092526001600160401b03166024820152604401610b8d565b5f61143183612168565b905061143c81612271565b5f611455611450608086016060870161360c565b61290c565b90505f8080806114658780613782565b90506001600160401b0381111561147e5761147e6139de565b6040519080825280602002602001820160405280156114c757816020015b604080516060810182525f80825260208083018290529282015282525f1990920191018161149c5790505b5090505f5b6114d68880613782565b905081101561177657366114ea8980613782565b838181106114fa576114fa613979565b905060200281019061150c91906139f2565b90505f61155261154061153b8d61152660208701876134dd565b61153660408801602089016134dd565b6129b0565b612a3d565b61154d6040850185613a06565b612a6f565b9050846001600160a01b0316816001600160a01b031611611586576040516309cf9e4960e11b815260040160405180910390fd5b6001600160a01b0381165f908152600960209081526040909120906115ad908401846134dd565b81546001600160801b03918216911610806115ed57506115d360408401602085016134dd565b81546001600160801b03918216600160801b909104909116105b15611616576040516364fc3cd160e11b81526001600160a01b0383166004820152602401610b8d565b61162360208401846134dd565b815482905f9061163d9084906001600160801b0316613a48565b92506101000a8154816001600160801b0302191690836001600160801b0316021790555082602001602081019061167491906134dd565b81548290601090611696908490600160801b90046001600160801b0316613a48565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550825f0160208101906116cc91906134dd565b6116d69089613a68565b97506116e860408401602085016134dd565b6116f29088613a68565b96506040518060600160405280836001600160a01b03168152602001845f01602081019061172091906134dd565b6001600160801b0316815260200184602001602081019061174191906134dd565b6001600160801b031681525085858151811061175f5761175f613979565b6020908102919091010152509350506001016114cc565b506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166117b160e08a0160c08b01613598565b6001600160a01b031603611868575f6117cc6006600a613919565b6117e26001600160801b03808916908716613927565b6117ec9190613a88565b90505f611802826001600160801b038816613aa7565b90506118156101008b0160e08c016134dd565b6001600160801b031681101561186157806118376101008c0160e08d016134dd565b60405162f9825560e61b815260048101929092526001600160801b03166024820152604401610b8d565b50506118f7565b6001600160801b0384161561189057604051630994a0f360e11b815260040160405180910390fd5b6118a1610100890160e08a016134dd565b6001600160801b0316836001600160801b031610156118f757826118cc6101008a0160e08b016134dd565b60405162f9825560e61b81526001600160801b03928316600482015291166024820152604401610b8d565b611915865f908152600a60205260409020805460ff19166001179055565b61192560e0890160c08a01613598565b6001600160a01b03166340c10f1961194360a08b0160808c01613598565b6119576103146101008d0160e08e016134dd565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044015f604051808303815f87803b15801561199a575f80fd5b505af11580156119ac573d5f803e3d5ffd5b505050505f6119b9611bcb565b90507f8ae526f6f5bc6ec0e6b4bf46b1aecd08ff639bbd259d56fea940908be08a31c787836119e784611c1b565b6040516119f693929190613aba565b60405180910390a1505050505050505050565b611a11611c90565b6001600160a01b038116611a3a57604051631e4fbdf760e01b81525f6004820152602401610b8d565b611a4381612046565b50565b5f80516020613feb8339815191525460ff16156109305760405163d93c066560e01b815260040160405180910390fd5b6001600160a01b038116611aa857604051635f8b555b60e11b81526001600160a01b0382166004820152602401610b8d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161580611b0557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316155b15611b2e57604051635f8b555b60e11b81526001600160a01b0382166004820152602401610b8d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614158015611ba257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614155b15611a4357604051635f8b555b60e11b81526001600160a01b0382166004820152602401610b8d565b5f8054611be990600160a01b90046001600160401b031660016137e2565b5f805467ffffffffffffffff60a01b1916600160a01b6001600160401b038416021790559050611c1881612a99565b90565b604080516080810182525f808252602082018190529181018290526060810191909152604080516080810182526001600160401b038085168252600154166020820152908101611c69610861565b6001600160801b03168152602001611c7f610ade565b6001600160801b0316905292915050565b33611c99610d24565b6001600160a01b0316146109305760405163118cdaa760e01b8152336004820152602401610b8d565b5f805f84515f03611ce85760405163665c282b60e01b81525f6004820152602401610b8d565b8351855114611d0a5760405163512509d360e11b815260040160405180910390fd5b5f805b8651811015611dc4575f878281518110611d2957611d29613979565b602002602001015190505f878381518110611d4657611d46613979565b602002602001015190505f6001600160a01b0316826001600160a01b03161480611d6e575080155b80611d8b5750836001600160a01b0316826001600160a01b031611155b15611dac5760405163665c282b60e01b815260048101849052602401610b8d565b611db68187613aa7565b955090925050600101611d0d565b5085519150611dd38686612c62565b9350509250925092565b60408051608081018252848152602081018490529081018590526001600160401b0390911660609091018190526004929092556005556006919091556007805467ffffffffffffffff19169091179055565b600880546001600160801b03908116600160801b026001600160801b0319169216919091179055565b5f80611e6660066012613820565b611e7190600a613919565b611e7b9084613a88565b90506001600160801b0381111561091a57604051639940a77560e01b815260048101829052602401610b8d565b611eb0612c94565b5f80516020613feb833981519152805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b5f838214611f285760405163512509d360e11b815260040160405180910390fd5b5f5b8481101561203c575f868683818110611f4557611f45613979565b9050602002016020810190611f5a9190613598565b90505f858584818110611f6f57611f6f613979565b60200291909101359150506001600160a01b038216611fa457604051633bca2f5160e21b815260048101849052602401610b8d565b805f03611fc457604051631f2a200560e01b815260040160405180910390fd5b6040516340c10f1960e01b81526001600160a01b038381166004830152602482018390528a16906340c10f19906044015f604051808303815f87803b15801561200b575f80fd5b505af115801561201d573d5f803e3d5ffd5b50505050808461202d9190613aa7565b93505050806001019050611f2a565b5095945050505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b6120be611a46565b5f80516020613feb833981519152805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833611ee9565b466001600160401b038116612119606084016040850161360c565b6001600160401b0316146121645780612138606084016040850161360c565b6040516332e3634d60e21b81526001600160401b03928316600482015291166024820152604401610b8d565b5050565b5f813561217b604084016020850161360c565b61218b606085016040860161360c565b61219b608086016060870161360c565b6121ab60a0870160808801613598565b6121bb60c0880160a0890161360c565b6121cb60e0890160c08a01613598565b6121dc6101008a0160e08b016134dd565b6121ee6101208b016101008c016134dd565b60408051602081019a909a526001600160401b03988916908a0152958716606089015293861660808801526001600160a01b0392831660a0880152941660c086015290921660e08401526001600160801b039182166101008401521661012082015261014001604051602081830303815290604052805190602001209050919050565b5f818152600a602052604090205460ff1615611a4357604051632910aca360e01b815260048101829052602401610b8d565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0061091a565b6122d3612cc3565b611a4381612ce8565b610930612cc3565b5f806122f36040860186613a06565b8101906123009190613b93565b905061230f6060860186613782565b905060011461234a5760016123276060870187613782565b604051636b01174760e11b81526004810193909352602483015250604401610b8d565b61236761235a602087018761360c565b8251602084015187612cf0565b91505f6123a561237684612a3d565b6123836060890189613782565b5f81811061239357612393613979565b905060200281019061154d9190613a06565b905081602001516001600160a01b0316816001600160a01b0316146123f6576020820151604051630be4b0e160e01b81526001600160a01b0391821660048201529082166024820152604401610b8d565b602080830180516001600160a01b039081165f908152600984526040808220805494519093168252812055916001600160801b0380831692600160801b90041690612443908a018a61360c565b6001805467ffffffffffffffff19166001600160401b039290921691909117905560028690555f612472611bcb565b86519091507f282837b277a62657a658088ea05a123b3560686317498f8b2cc5318619c5a9f984848b6124a486611c1b565b6040516124b49493929190613bc7565b60405180910390a25050505050509392505050565b6124fb6040518060a0016040528060608152602001606081526020015f80191681526020015f81526020015f81525090565b5f8061250a6040880188613a06565b8101906125179190613c8a565b905080602001516001600160801b03165f0361254657604051632440a7dd60e01b815260040160405180910390fd5b805180516020909101515f918291829161255f91611cc2565b9194509250905061259261257660208c018c61360c565b60408b015186518051602091820151918901519091908d612d7c565b94506125c4856125a560608d018d613782565b6125ae91613da7565b8b5160208d015160608e015160808f0151612db0565b6007546125e59084908490849061080e906001600160401b031660016137e2565b6125f28460200151611e2f565b6125ff60208b018b61360c565b6001805467ffffffffffffffff19166001600160401b039290921691909117905560028590555f61262e611bcb565b90507fb3dbfeab9c5013403dc2f2300318b92643b1cb9323077d549b4f93bbddded963848961265c84611c1b565b60405161266b93929190613e66565b60405180910390a1506040805160a081018252855151815294516020908101519086015284019290925260608301526080820152915094509492505050565b5f806126b96040880188613a06565b8101906126c69190613e81565b60608101519091506001600160a01b03166126f45760405163611b32ab60e01b815260040160405180910390fd5b60208101516001600160801b031615801561271a575060408101516001600160801b0316155b1561273e57805160405163162421e960e31b81526004810191909152602401610b8d565b60608101516001600160a01b03165f90815260096020526040902080546001600160801b031615158061278157508054600160801b90046001600160801b031615155b156127b057606082015160405163cb96603760e01b81526001600160a01b039091166004820152602401610b8d565b6127de6127c060208a018a61360c565b8860400151845f01518560200151866040015187606001518c612df5565b9250841561281657612816836127f760608b018b613782565b61280091613da7565b895160208b015160608c015160808d0151612db0565b6040805180820182526020808501516001600160801b03908116835285840151811682840190815260608701516001600160a01b03165f9081526009845294909420925193518116600160801b0293169290921790556128789089018961360c565b6001805467ffffffffffffffff19166001600160401b039290921691909117905560028390555f6128a7611bcb565b9050825f01517f0979cc09e676df76240cc73ba72832bb245d770c4029e526bf7ed115c6bbcb36846020015185604001518660600151896128e787611c1b565b6040516128f8959493929190613ef4565b60405180910390a250505095945050505050565b6007545f906001600160401b039081169083168190036129395750506008546001600160801b0316919050565b6001816001600160401b031611801561296d5750612958600182613f30565b6001600160401b0316836001600160401b0316145b1561298c575050600854600160801b90046001600160801b0316919050565b6040516338acf07360e21b81526001600160401b0384166004820152602401610b8d565b5f7f28bf99522b0d2f26a76cdeda71578156383bbae91175ca503165cfdbbd1ff34a46306129dd87612168565b6040805160208101959095528401929092526001600160a01b0316606083015260808201526001600160801b0380851660a0830152831660c082015260e0015b6040516020818303038152906040528051906020012090505b9392505050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f908152601c91909152603c902090565b5f805f80612a7e878787612e1c565b925092509250612a8e8282612e63565b509095945050505050565b60035443906001600160401b03165f03612b5b576003805467ffffffffffffffff19166001908117909155604080516060810182526001600160401b03938416815293831660208086018281529286019182525f93909352600b90925292517f72c6bfb7988af3a1efa6568f02a999bc52252641c659d85961ca3d372b57d5cf8054945192518416600160801b0267ffffffffffffffff60801b19938516600160401b026001600160801b031990961692909416919091179390931716179055565b6003546001600160401b039081165f908152600b6020526040902080549091838116911603612bb15780546001600160401b03909316600160801b0267ffffffffffffffff60801b199093169290921790915550565b6003545f90612bca906001600160401b031660016137e2565b600380546001600160401b0392831667ffffffffffffffff19909116811790915560408051606081018252958316865295821660208087018281528789019283525f938452600b9091529690912094518554965191518316600160801b0267ffffffffffffffff60801b19928416600160401b026001600160801b031990981691909316179590951794909416939093179091555050565b5f8282604051602001612c76929190613f50565b60405160208183030381529060405280519060200120905092915050565b5f80516020613feb8339815191525460ff1661093057604051638dfc202b60e01b815260040160405180910390fd5b612ccb612f1b565b61093057604051631afcd79f60e31b815260040160405180910390fd5b611a11612cc3565b604080517fad7e1df8fff16b907a93b4116c7590060dfa3b9c396a8b815e8290b0dff45cba602082015246918101919091523060608201526001600160401b038516608082015260a081018490526001600160a01b03831660c082015260e081018290525f90610100015b6040516020818303038152906040528051906020012090505b949350505050565b5f80612d888686612c62565b9050612da288885f84612d9c8b8b8b612f34565b88612f9e565b9150505b9695505050505050565b5f80612dbe88888888613050565b91509150612dce828286866131c3565b612deb5760405163079842ab60e41b815260040160405180910390fd5b5050505050505050565b5f612e108888600189612e0a8b8b8b8b613224565b87612f9e565b98975050505050505050565b5f80806041849003612e50578435602086013560408701355f1a612e4289828585613281565b955095509550505050612e5a565b505f915060029050825b93509350939050565b5f826003811115612e7657612e76613952565b03612e7f575050565b6001826003811115612e9357612e93613952565b03612eb15760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115612ec557612ec5613952565b03612ee65760405163fce698f760e01b815260048101829052602401610b8d565b6003826003811115612efa57612efa613952565b03612164576040516335e2f38360e21b815260048101829052602401610b8d565b5f612f246122a3565b54600160401b900460ff16919050565b5f7f82ce6440aa5dde11f3613892819b630b62342bacf93e16a292d5c8783aafa4c34630612f628787612c62565b6040805160208101959095528401929092526001600160a01b0316606083015260808201526001600160801b03831660a082015260c001612a1d565b5f7fdef5c8e4dc3374e0ecc7770cd325f9cd1308204f913b668e565cfef01043315846308989896002811115612fd657612fd6613952565b6040805160208101979097528601949094526001600160a01b0390921660608501526001600160401b0316608084015260a083015260ff1660c082015260e0810185905261010081018490526101208101839052610140016040516020818303038152906040528051906020012090509695505050505050565b5f805f8061305d88612a3d565b90505f805b88518110156131b6575f61308f848b848151811061308257613082613979565b6020026020010151613349565b9050846001600160a01b0316816001600160a01b0316116130c3576040516309cf9e4960e11b815260040160405180910390fd5b8851831080156130fd5750806001600160a01b03168984815181106130ea576130ea613979565b60200260200101516001600160a01b0316105b156131125761310b83613fd2565b92506130c3565b885183148061314c5750806001600160a01b031689848151811061313857613138613979565b60200260200101516001600160a01b031614155b1561316d5760405163665c282b60e01b815260048101839052602401610b8d565b61317687613fd2565b965087838151811061318a5761318a613979565b60200260200101518661319d9190613aa7565b95509350836131ab83613fd2565b925050600101613062565b5050505094509492505050565b5f806131cf8684613966565b90506131dc84605a613927565b6131e7866064613927565b106131f6576001915050612d74565b60028111158015612da6575061320d846050613927565b613218866064613927565b10159695505050505050565b5f7f1cd7f89e34f6154d6f8387a08ffafc689e347b8d5809913b07c58a42995dff66463061325488888888613371565b6040805160208101959095528401929092526001600160a01b03166060830152608082015260a001612d5b565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411156132ba57505f9150600390508261333f565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa15801561330b573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b03811661333657505f92506001915082905061333f565b92505f91508190505b9450945094915050565b5f805f8061335786866133af565b9250925092506133678282612e63565b5090949350505050565b60408051602081018690526001600160801b038086169282019290925290831660608201526001600160a01b03821660808201525f9060a001612d5b565b5f805f83516041036133e6576020840151604085015160608601515f1a6133d888828585613281565b9550955095505050506133f1565b505081515f91506002905b9250925092565b80356001600160a01b038116811461340e575f80fd5b919050565b80356001600160801b038116811461340e575f80fd5b5f805f805f805f60e0888a03121561343f575f80fd5b613448886133f8565b965061345660208901613413565b95506040880135945060608801359350608088013560ff81168114613479575f80fd5b9699959850939692959460a0840135945060c09093013592915050565b5f604082840312156134a6575f80fd5b50919050565b5f602082840312156134bc575f80fd5b81356001600160401b038111156134d1575f80fd5b612d7484828501613496565b5f602082840312156134ed575f80fd5b612a3682613413565b5f8060408385031215613507575f80fd5b82356001600160401b038082111561351d575f80fd5b61352986838701613496565b9350602085013591508082111561353e575f80fd5b5061354b85828601613496565b9150509250929050565b5f60208284031215613565575f80fd5b5035919050565b5f61012082840312156134a6575f80fd5b5f610120828403121561358e575f80fd5b612a36838361356c565b5f602082840312156135a8575f80fd5b612a36826133f8565b5f805f805f8060c087890312156135c6575f80fd5b6135cf876133f8565b95506135dd602088016133f8565b945060408701359350606087013592506080870135915061360060a08801613413565b90509295509295509295565b5f6020828403121561361c575f80fd5b81356001600160401b0381168114612a36575f80fd5b5f805f8060608587031215613645575f80fd5b84356001600160401b038082111561365b575f80fd5b61366788838901613496565b9550602087013591508082111561367c575f80fd5b818701915087601f83011261368f575f80fd5b81358181111561369d575f80fd5b8860208260051b85010111156136b1575f80fd5b95986020929092019750949560400135945092505050565b5f8061014083850312156136db575f80fd5b6136e5848461356c565b91506101208301356001600160401b03811115613700575f80fd5b830160208186031215613711575f80fd5b809150509250929050565b6001600160401b038082511683528060208301511660208401525060408101516001600160801b03808216604085015280606084015116606085015250505050565b6001600160801b03841681526020810183905260c08101612d74604083018461371c565b5f808335601e19843603018112613797575f80fd5b8301803591506001600160401b038211156137b0575f80fd5b6020019150600581901b36038213156137c7575f80fd5b9250929050565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b03818116838216019080821115613802576138026137ce565b5092915050565b5f60208284031215613819575f80fd5b5051919050565b60ff828116828216039081111561091a5761091a6137ce565b600181815b8085111561387357815f1904821115613859576138596137ce565b8085161561386657918102915b93841c939080029061383e565b509250929050565b5f826138895750600161091a565b8161389557505f61091a565b81600181146138ab57600281146138b5576138d1565b600191505061091a565b60ff8411156138c6576138c66137ce565b50506001821b61091a565b5060208310610133831016604e8410600b84101617156138f4575081810a61091a565b6138fe8383613839565b805f1904821115613911576139116137ce565b029392505050565b5f612a3660ff84168361387b565b808202811582820484141761091a5761091a6137ce565b82815260a08101612a36602083018461371c565b634e487b7160e01b5f52602160045260245ffd5b8181038181111561091a5761091a6137ce565b634e487b7160e01b5f52603260045260245ffd5b5f8235607e198336030181126139a1575f80fd5b9190910192915050565b5f602082840312156139bb575f80fd5b813560038110612a36575f80fd5b5f816139d7576139d76137ce565b505f190190565b634e487b7160e01b5f52604160045260245ffd5b5f8235605e198336030181126139a1575f80fd5b5f808335601e19843603018112613a1b575f80fd5b8301803591506001600160401b03821115613a34575f80fd5b6020019150368190038213156137c7575f80fd5b6001600160801b03828116828216039080821115613802576138026137ce565b6001600160801b03818116838216019080821115613802576138026137ce565b5f82613aa257634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561091a5761091a6137ce565b5f60c08201858352602060c0602085015281865180845260e0860191506020880193505f5b81811015613b2657845180516001600160a01b03168452848101516001600160801b0390811686860152604091820151169084015293830193606090920191600101613adf565b5050809350505050612d74604083018461371c565b604080519081016001600160401b0381118282101715613b5d57613b5d6139de565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613b8b57613b8b6139de565b604052919050565b5f60408284031215613ba3575f80fd5b613bab613b3b565b82358152613bbb602084016133f8565b60208201529392505050565b6001600160801b038581168252841660208201526040810183905260e08101613bf3606083018461371c565b95945050505050565b5f6001600160401b03821115613c1457613c146139de565b5060051b60200190565b5f82601f830112613c2d575f80fd5b81356020613c42613c3d83613bfc565b613b63565b8083825260208201915060208460051b870101935086841115613c63575f80fd5b602086015b84811015613c7f5780358352918301918301613c68565b509695505050505050565b5f6020808385031215613c9b575f80fd5b82356001600160401b0380821115613cb1575f80fd5b9084019060408287031215613cc4575f80fd5b613ccc613b3b565b823582811115613cda575f80fd5b830160408189031215613ceb575f80fd5b613cf3613b3b565b813584811115613d01575f80fd5b8201601f81018a13613d11575f80fd5b8035613d1f613c3d82613bfc565b81815260059190911b8201880190888101908c831115613d3d575f80fd5b928901925b82841015613d6257613d53846133f8565b82529289019290890190613d42565b84525050508186013584811115613d77575f80fd5b613d838a828501613c1e565b8288015250825250613d96838501613413565b848201528094505050505092915050565b5f613db4613c3d84613bfc565b80848252602080830192508560051b850136811115613dd1575f80fd5b855b81811015613e5a5780356001600160401b0380821115613df1575f80fd5b90880190601f3681840112613e04575f80fd5b823582811115613e1657613e166139de565b613e27818301601f19168801613b63565b92508083523687828601011115613e3c575f80fd5b80878501888501375f90830187015250865250938201938201613dd3565b50919695505050505050565b8381526020810183905260c08101612d74604083018461371c565b5f60808284031215613e91575f80fd5b604051608081018181106001600160401b0382111715613eb357613eb36139de565b60405282358152613ec660208401613413565b6020820152613ed760408401613413565b6040820152613ee8606084016133f8565b60608201529392505050565b6001600160801b038681168252851660208201526001600160a01b0384166040820152606081018390526101008101612da6608083018461371c565b6001600160401b03828116828216039080821115613802576138026137ce565b604080825283519082018190525f906020906060840190828701845b82811015613f915781516001600160a01b031684529284019290840190600101613f6c565b505050838103828501528451808252858301918301905f5b81811015613fc557835183529284019291840191600101613fa9565b5090979650505050505050565b5f60018201613fe357613fe36137ce565b506001019056fecd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300a2646970667358221220f5eb54d70e40c5a043e83732162372d649504b7c02104d29fd2437dcbcfa25eb64736f6c63430008180033",
512
1619
  "linkReferences": {},
513
1620
  "deployedLinkReferences": {},
514
1621
  "immutableReferences": {
515
- "3085": [
1622
+ "10415": [
1623
+ {
1624
+ "length": 32,
1625
+ "start": 1038
1626
+ },
1627
+ {
1628
+ "length": 32,
1629
+ "start": 2151
1630
+ },
1631
+ {
1632
+ "length": 32,
1633
+ "start": 2444
1634
+ },
1635
+ {
1636
+ "length": 32,
1637
+ "start": 2527
1638
+ },
1639
+ {
1640
+ "length": 32,
1641
+ "start": 6017
1642
+ },
516
1643
  {
517
1644
  "length": 32,
518
- "start": 600
1645
+ "start": 6826
519
1646
  },
520
1647
  {
521
1648
  "length": 32,
522
- "start": 2679
1649
+ "start": 6960
523
1650
  }
524
1651
  ],
525
- "3087": [
1652
+ "10418": [
1653
+ {
1654
+ "length": 32,
1655
+ "start": 684
1656
+ },
1657
+ {
1658
+ "length": 32,
1659
+ "start": 2485
1660
+ },
1661
+ {
1662
+ "length": 32,
1663
+ "start": 2594
1664
+ },
1665
+ {
1666
+ "length": 32,
1667
+ "start": 2788
1668
+ },
526
1669
  {
527
1670
  "length": 32,
528
- "start": 326
1671
+ "start": 6875
529
1672
  },
530
1673
  {
531
1674
  "length": 32,
532
- "start": 2740
1675
+ "start": 7021
533
1676
  }
534
1677
  ]
535
1678
  },
536
1679
  "inputSourceName": "project/contracts/MintingGateway.sol",
537
- "buildInfoId": "solc-0_8_24-c1abbf3880b0cf6b80fd72b19706058829075e56"
1680
+ "buildInfoId": "solc-0_8_24-e135e2ba40981958af0ad7e4e95ebd1451cb5dfe"
538
1681
  }