@mania-labs/mania-sdk 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2183 @@
1
+ {
2
+ "abi": [
3
+ { "type": "constructor", "inputs": [], "stateMutability": "nonpayable" },
4
+ { "type": "receive", "stateMutability": "payable" },
5
+ {
6
+ "type": "function",
7
+ "name": "TICK_LOWER",
8
+ "inputs": [],
9
+ "outputs": [{ "name": "", "type": "int24", "internalType": "int24" }],
10
+ "stateMutability": "view"
11
+ },
12
+ {
13
+ "type": "function",
14
+ "name": "TICK_UPPER",
15
+ "inputs": [],
16
+ "outputs": [{ "name": "", "type": "int24", "internalType": "int24" }],
17
+ "stateMutability": "view"
18
+ },
19
+ {
20
+ "type": "function",
21
+ "name": "UNISWAP_FEE_TIER",
22
+ "inputs": [],
23
+ "outputs": [{ "name": "", "type": "uint24", "internalType": "uint24" }],
24
+ "stateMutability": "view"
25
+ },
26
+ {
27
+ "type": "function",
28
+ "name": "UPGRADE_INTERFACE_VERSION",
29
+ "inputs": [],
30
+ "outputs": [{ "name": "", "type": "string", "internalType": "string" }],
31
+ "stateMutability": "view"
32
+ },
33
+ {
34
+ "type": "function",
35
+ "name": "bondingCurves",
36
+ "inputs": [
37
+ { "name": "mint", "type": "address", "internalType": "address" }
38
+ ],
39
+ "outputs": [
40
+ {
41
+ "name": "virtualTokenReserves",
42
+ "type": "uint256",
43
+ "internalType": "uint256"
44
+ },
45
+ {
46
+ "name": "virtualEthReserves",
47
+ "type": "uint64",
48
+ "internalType": "uint64"
49
+ },
50
+ {
51
+ "name": "realTokenReserves",
52
+ "type": "uint256",
53
+ "internalType": "uint256"
54
+ },
55
+ {
56
+ "name": "realEthReserves",
57
+ "type": "uint64",
58
+ "internalType": "uint64"
59
+ },
60
+ {
61
+ "name": "tokenTotalSupply",
62
+ "type": "uint256",
63
+ "internalType": "uint256"
64
+ },
65
+ { "name": "complete", "type": "bool", "internalType": "bool" },
66
+ { "name": "trackVolume", "type": "bool", "internalType": "bool" }
67
+ ],
68
+ "stateMutability": "view"
69
+ },
70
+ {
71
+ "type": "function",
72
+ "name": "buy",
73
+ "inputs": [
74
+ { "name": "token", "type": "address", "internalType": "address" },
75
+ {
76
+ "name": "minTokensOut",
77
+ "type": "uint256",
78
+ "internalType": "uint256"
79
+ },
80
+ { "name": "recipient", "type": "address", "internalType": "address" }
81
+ ],
82
+ "outputs": [],
83
+ "stateMutability": "payable"
84
+ },
85
+ {
86
+ "type": "function",
87
+ "name": "create",
88
+ "inputs": [
89
+ { "name": "name", "type": "string", "internalType": "string" },
90
+ { "name": "symbol", "type": "string", "internalType": "string" },
91
+ { "name": "uri", "type": "string", "internalType": "string" },
92
+ { "name": "creator", "type": "address", "internalType": "address" }
93
+ ],
94
+ "outputs": [
95
+ { "name": "token", "type": "address", "internalType": "address" }
96
+ ],
97
+ "stateMutability": "nonpayable"
98
+ },
99
+ {
100
+ "type": "function",
101
+ "name": "createAndBuy",
102
+ "inputs": [
103
+ { "name": "name", "type": "string", "internalType": "string" },
104
+ { "name": "symbol", "type": "string", "internalType": "string" },
105
+ { "name": "uri", "type": "string", "internalType": "string" },
106
+ { "name": "creator", "type": "address", "internalType": "address" },
107
+ { "name": "minTokensOut", "type": "uint256", "internalType": "uint256" }
108
+ ],
109
+ "outputs": [
110
+ { "name": "token", "type": "address", "internalType": "address" }
111
+ ],
112
+ "stateMutability": "payable"
113
+ },
114
+ {
115
+ "type": "function",
116
+ "name": "getBondingCurve",
117
+ "inputs": [
118
+ { "name": "token", "type": "address", "internalType": "address" }
119
+ ],
120
+ "outputs": [
121
+ {
122
+ "name": "curve",
123
+ "type": "tuple",
124
+ "internalType": "struct ManiaFactoryUpgradeable.BondingCurve",
125
+ "components": [
126
+ {
127
+ "name": "virtualTokenReserves",
128
+ "type": "uint256",
129
+ "internalType": "uint256"
130
+ },
131
+ {
132
+ "name": "virtualEthReserves",
133
+ "type": "uint64",
134
+ "internalType": "uint64"
135
+ },
136
+ {
137
+ "name": "realTokenReserves",
138
+ "type": "uint256",
139
+ "internalType": "uint256"
140
+ },
141
+ {
142
+ "name": "realEthReserves",
143
+ "type": "uint64",
144
+ "internalType": "uint64"
145
+ },
146
+ {
147
+ "name": "tokenTotalSupply",
148
+ "type": "uint256",
149
+ "internalType": "uint256"
150
+ },
151
+ { "name": "complete", "type": "bool", "internalType": "bool" },
152
+ { "name": "trackVolume", "type": "bool", "internalType": "bool" }
153
+ ]
154
+ }
155
+ ],
156
+ "stateMutability": "view"
157
+ },
158
+ {
159
+ "type": "function",
160
+ "name": "getBuyQuote",
161
+ "inputs": [
162
+ { "name": "token", "type": "address", "internalType": "address" },
163
+ { "name": "ethAmount", "type": "uint64", "internalType": "uint64" }
164
+ ],
165
+ "outputs": [
166
+ { "name": "tokenAmount", "type": "uint256", "internalType": "uint256" }
167
+ ],
168
+ "stateMutability": "view"
169
+ },
170
+ {
171
+ "type": "function",
172
+ "name": "getFee",
173
+ "inputs": [
174
+ { "name": "amount", "type": "uint64", "internalType": "uint64" }
175
+ ],
176
+ "outputs": [
177
+ { "name": "fee", "type": "uint128", "internalType": "uint128" }
178
+ ],
179
+ "stateMutability": "view"
180
+ },
181
+ {
182
+ "type": "function",
183
+ "name": "getSellQuote",
184
+ "inputs": [
185
+ { "name": "token", "type": "address", "internalType": "address" },
186
+ { "name": "amount", "type": "uint256", "internalType": "uint256" }
187
+ ],
188
+ "outputs": [
189
+ { "name": "ethOutput", "type": "uint128", "internalType": "uint128" }
190
+ ],
191
+ "stateMutability": "view"
192
+ },
193
+ {
194
+ "type": "function",
195
+ "name": "global",
196
+ "inputs": [],
197
+ "outputs": [
198
+ { "name": "initialized", "type": "bool", "internalType": "bool" },
199
+ { "name": "authority", "type": "address", "internalType": "address" },
200
+ {
201
+ "name": "feeRecipient",
202
+ "type": "address",
203
+ "internalType": "address"
204
+ },
205
+ {
206
+ "name": "initialVirtualTokenReserves",
207
+ "type": "uint256",
208
+ "internalType": "uint256"
209
+ },
210
+ {
211
+ "name": "initialVirtualEthReserves",
212
+ "type": "uint64",
213
+ "internalType": "uint64"
214
+ },
215
+ {
216
+ "name": "initialRealTokenReserves",
217
+ "type": "uint256",
218
+ "internalType": "uint256"
219
+ },
220
+ {
221
+ "name": "tokenTotalSupply",
222
+ "type": "uint256",
223
+ "internalType": "uint256"
224
+ },
225
+ {
226
+ "name": "feeBasisPoints",
227
+ "type": "uint64",
228
+ "internalType": "uint64"
229
+ },
230
+ {
231
+ "name": "withdrawAuthority",
232
+ "type": "address",
233
+ "internalType": "address"
234
+ },
235
+ { "name": "enableMigrate", "type": "bool", "internalType": "bool" },
236
+ {
237
+ "name": "poolMigrationFee",
238
+ "type": "uint64",
239
+ "internalType": "uint64"
240
+ }
241
+ ],
242
+ "stateMutability": "view"
243
+ },
244
+ {
245
+ "type": "function",
246
+ "name": "initialize",
247
+ "inputs": [],
248
+ "outputs": [],
249
+ "stateMutability": "nonpayable"
250
+ },
251
+ {
252
+ "type": "function",
253
+ "name": "migrate",
254
+ "inputs": [
255
+ { "name": "token", "type": "address", "internalType": "address" }
256
+ ],
257
+ "outputs": [],
258
+ "stateMutability": "payable"
259
+ },
260
+ {
261
+ "type": "function",
262
+ "name": "nonfungiblePositionManager",
263
+ "inputs": [],
264
+ "outputs": [
265
+ {
266
+ "name": "",
267
+ "type": "address",
268
+ "internalType": "contract INonfungiblePositionManager"
269
+ }
270
+ ],
271
+ "stateMutability": "view"
272
+ },
273
+ {
274
+ "type": "function",
275
+ "name": "proxiableUUID",
276
+ "inputs": [],
277
+ "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }],
278
+ "stateMutability": "view"
279
+ },
280
+ {
281
+ "type": "function",
282
+ "name": "sell",
283
+ "inputs": [
284
+ { "name": "token", "type": "address", "internalType": "address" },
285
+ { "name": "amount", "type": "uint256", "internalType": "uint256" },
286
+ { "name": "minEthOutput", "type": "uint64", "internalType": "uint64" }
287
+ ],
288
+ "outputs": [],
289
+ "stateMutability": "nonpayable"
290
+ },
291
+ {
292
+ "type": "function",
293
+ "name": "setParams",
294
+ "inputs": [
295
+ {
296
+ "name": "params",
297
+ "type": "tuple",
298
+ "internalType": "struct ManiaFactoryUpgradeable.SetParamsInput",
299
+ "components": [
300
+ {
301
+ "name": "initialVirtualTokenReserves",
302
+ "type": "uint256",
303
+ "internalType": "uint256"
304
+ },
305
+ {
306
+ "name": "initialVirtualEthReserves",
307
+ "type": "uint64",
308
+ "internalType": "uint64"
309
+ },
310
+ {
311
+ "name": "initialRealTokenReserves",
312
+ "type": "uint256",
313
+ "internalType": "uint256"
314
+ },
315
+ {
316
+ "name": "tokenTotalSupply",
317
+ "type": "uint256",
318
+ "internalType": "uint256"
319
+ },
320
+ {
321
+ "name": "feeBasisPoints",
322
+ "type": "uint64",
323
+ "internalType": "uint64"
324
+ },
325
+ {
326
+ "name": "withdrawAuthority",
327
+ "type": "address",
328
+ "internalType": "address"
329
+ },
330
+ { "name": "enableMigrate", "type": "bool", "internalType": "bool" },
331
+ {
332
+ "name": "poolMigrationFee",
333
+ "type": "uint64",
334
+ "internalType": "uint64"
335
+ },
336
+ {
337
+ "name": "feeRecipient",
338
+ "type": "address",
339
+ "internalType": "address"
340
+ }
341
+ ]
342
+ }
343
+ ],
344
+ "outputs": [],
345
+ "stateMutability": "nonpayable"
346
+ },
347
+ {
348
+ "type": "function",
349
+ "name": "setTrackVolume",
350
+ "inputs": [
351
+ { "name": "token", "type": "address", "internalType": "address" },
352
+ { "name": "enabled", "type": "bool", "internalType": "bool" }
353
+ ],
354
+ "outputs": [],
355
+ "stateMutability": "nonpayable"
356
+ },
357
+ {
358
+ "type": "function",
359
+ "name": "setUniswapV3Addresses",
360
+ "inputs": [
361
+ {
362
+ "name": "_nonfungiblePositionManager",
363
+ "type": "address",
364
+ "internalType": "address"
365
+ },
366
+ { "name": "_weth9", "type": "address", "internalType": "address" }
367
+ ],
368
+ "outputs": [],
369
+ "stateMutability": "nonpayable"
370
+ },
371
+ {
372
+ "type": "function",
373
+ "name": "updateFeeRecipient",
374
+ "inputs": [
375
+ {
376
+ "name": "newFeeRecipient",
377
+ "type": "address",
378
+ "internalType": "address"
379
+ }
380
+ ],
381
+ "outputs": [],
382
+ "stateMutability": "nonpayable"
383
+ },
384
+ {
385
+ "type": "function",
386
+ "name": "updateGlobalAuthority",
387
+ "inputs": [
388
+ { "name": "newAuthority", "type": "address", "internalType": "address" }
389
+ ],
390
+ "outputs": [],
391
+ "stateMutability": "nonpayable"
392
+ },
393
+ {
394
+ "type": "function",
395
+ "name": "upgradeToAndCall",
396
+ "inputs": [
397
+ {
398
+ "name": "newImplementation",
399
+ "type": "address",
400
+ "internalType": "address"
401
+ },
402
+ { "name": "data", "type": "bytes", "internalType": "bytes" }
403
+ ],
404
+ "outputs": [],
405
+ "stateMutability": "payable"
406
+ },
407
+ {
408
+ "type": "function",
409
+ "name": "userVolume",
410
+ "inputs": [
411
+ { "name": "user", "type": "address", "internalType": "address" }
412
+ ],
413
+ "outputs": [
414
+ { "name": "volume", "type": "uint256", "internalType": "uint256" }
415
+ ],
416
+ "stateMutability": "view"
417
+ },
418
+ {
419
+ "type": "function",
420
+ "name": "weth9",
421
+ "inputs": [],
422
+ "outputs": [
423
+ { "name": "", "type": "address", "internalType": "contract IWETH9" }
424
+ ],
425
+ "stateMutability": "view"
426
+ },
427
+ {
428
+ "type": "event",
429
+ "name": "CompleteEvent",
430
+ "inputs": [
431
+ {
432
+ "name": "user",
433
+ "type": "address",
434
+ "indexed": true,
435
+ "internalType": "address"
436
+ },
437
+ {
438
+ "name": "mint",
439
+ "type": "address",
440
+ "indexed": true,
441
+ "internalType": "address"
442
+ },
443
+ {
444
+ "name": "timestamp",
445
+ "type": "uint256",
446
+ "indexed": false,
447
+ "internalType": "uint256"
448
+ }
449
+ ],
450
+ "anonymous": false
451
+ },
452
+ {
453
+ "type": "event",
454
+ "name": "CompleteManiaAmmMigrationEvent",
455
+ "inputs": [
456
+ {
457
+ "name": "user",
458
+ "type": "address",
459
+ "indexed": true,
460
+ "internalType": "address"
461
+ },
462
+ {
463
+ "name": "mint",
464
+ "type": "address",
465
+ "indexed": true,
466
+ "internalType": "address"
467
+ },
468
+ {
469
+ "name": "mintAmount",
470
+ "type": "uint256",
471
+ "indexed": false,
472
+ "internalType": "uint256"
473
+ },
474
+ {
475
+ "name": "ethAmount",
476
+ "type": "uint64",
477
+ "indexed": false,
478
+ "internalType": "uint64"
479
+ },
480
+ {
481
+ "name": "poolMigrationFee",
482
+ "type": "uint64",
483
+ "indexed": false,
484
+ "internalType": "uint64"
485
+ },
486
+ {
487
+ "name": "timestamp",
488
+ "type": "uint256",
489
+ "indexed": false,
490
+ "internalType": "uint256"
491
+ },
492
+ {
493
+ "name": "pool",
494
+ "type": "address",
495
+ "indexed": true,
496
+ "internalType": "address"
497
+ }
498
+ ],
499
+ "anonymous": false
500
+ },
501
+ {
502
+ "type": "event",
503
+ "name": "CreateEvent",
504
+ "inputs": [
505
+ {
506
+ "name": "name",
507
+ "type": "string",
508
+ "indexed": false,
509
+ "internalType": "string"
510
+ },
511
+ {
512
+ "name": "symbol",
513
+ "type": "string",
514
+ "indexed": false,
515
+ "internalType": "string"
516
+ },
517
+ {
518
+ "name": "uri",
519
+ "type": "string",
520
+ "indexed": false,
521
+ "internalType": "string"
522
+ },
523
+ {
524
+ "name": "mint",
525
+ "type": "address",
526
+ "indexed": true,
527
+ "internalType": "address"
528
+ },
529
+ {
530
+ "name": "user",
531
+ "type": "address",
532
+ "indexed": true,
533
+ "internalType": "address"
534
+ },
535
+ {
536
+ "name": "creator",
537
+ "type": "address",
538
+ "indexed": true,
539
+ "internalType": "address"
540
+ },
541
+ {
542
+ "name": "timestamp",
543
+ "type": "uint256",
544
+ "indexed": false,
545
+ "internalType": "uint256"
546
+ }
547
+ ],
548
+ "anonymous": false
549
+ },
550
+ {
551
+ "type": "event",
552
+ "name": "Initialized",
553
+ "inputs": [
554
+ {
555
+ "name": "version",
556
+ "type": "uint64",
557
+ "indexed": false,
558
+ "internalType": "uint64"
559
+ }
560
+ ],
561
+ "anonymous": false
562
+ },
563
+ {
564
+ "type": "event",
565
+ "name": "SetParamsEvent",
566
+ "inputs": [
567
+ {
568
+ "name": "initialVirtualTokenReserves",
569
+ "type": "uint256",
570
+ "indexed": false,
571
+ "internalType": "uint256"
572
+ },
573
+ {
574
+ "name": "initialVirtualEthReserves",
575
+ "type": "uint64",
576
+ "indexed": false,
577
+ "internalType": "uint64"
578
+ },
579
+ {
580
+ "name": "initialRealTokenReserves",
581
+ "type": "uint256",
582
+ "indexed": false,
583
+ "internalType": "uint256"
584
+ },
585
+ {
586
+ "name": "finalRealEthReserves",
587
+ "type": "uint64",
588
+ "indexed": false,
589
+ "internalType": "uint64"
590
+ },
591
+ {
592
+ "name": "tokenTotalSupply",
593
+ "type": "uint256",
594
+ "indexed": false,
595
+ "internalType": "uint256"
596
+ },
597
+ {
598
+ "name": "feeBasisPoints",
599
+ "type": "uint64",
600
+ "indexed": false,
601
+ "internalType": "uint64"
602
+ },
603
+ {
604
+ "name": "withdrawAuthority",
605
+ "type": "address",
606
+ "indexed": false,
607
+ "internalType": "address"
608
+ },
609
+ {
610
+ "name": "enableMigrate",
611
+ "type": "bool",
612
+ "indexed": false,
613
+ "internalType": "bool"
614
+ },
615
+ {
616
+ "name": "poolMigrationFee",
617
+ "type": "uint64",
618
+ "indexed": false,
619
+ "internalType": "uint64"
620
+ },
621
+ {
622
+ "name": "feeRecipient",
623
+ "type": "address",
624
+ "indexed": false,
625
+ "internalType": "address"
626
+ },
627
+ {
628
+ "name": "timestamp",
629
+ "type": "uint256",
630
+ "indexed": false,
631
+ "internalType": "uint256"
632
+ }
633
+ ],
634
+ "anonymous": false
635
+ },
636
+ {
637
+ "type": "event",
638
+ "name": "TradeEvent",
639
+ "inputs": [
640
+ {
641
+ "name": "mint",
642
+ "type": "address",
643
+ "indexed": true,
644
+ "internalType": "address"
645
+ },
646
+ {
647
+ "name": "ethAmount",
648
+ "type": "uint64",
649
+ "indexed": false,
650
+ "internalType": "uint64"
651
+ },
652
+ {
653
+ "name": "tokenAmount",
654
+ "type": "uint256",
655
+ "indexed": false,
656
+ "internalType": "uint256"
657
+ },
658
+ {
659
+ "name": "isBuy",
660
+ "type": "bool",
661
+ "indexed": false,
662
+ "internalType": "bool"
663
+ },
664
+ {
665
+ "name": "user",
666
+ "type": "address",
667
+ "indexed": true,
668
+ "internalType": "address"
669
+ },
670
+ {
671
+ "name": "timestamp",
672
+ "type": "uint256",
673
+ "indexed": false,
674
+ "internalType": "uint256"
675
+ },
676
+ {
677
+ "name": "virtualEthReserves",
678
+ "type": "uint64",
679
+ "indexed": false,
680
+ "internalType": "uint64"
681
+ },
682
+ {
683
+ "name": "virtualTokenReserves",
684
+ "type": "uint256",
685
+ "indexed": false,
686
+ "internalType": "uint256"
687
+ },
688
+ {
689
+ "name": "realEthReserves",
690
+ "type": "uint64",
691
+ "indexed": false,
692
+ "internalType": "uint64"
693
+ },
694
+ {
695
+ "name": "realTokenReserves",
696
+ "type": "uint256",
697
+ "indexed": false,
698
+ "internalType": "uint256"
699
+ }
700
+ ],
701
+ "anonymous": false
702
+ },
703
+ {
704
+ "type": "event",
705
+ "name": "UpdateFeeRecipientEvent",
706
+ "inputs": [
707
+ {
708
+ "name": "authority",
709
+ "type": "address",
710
+ "indexed": true,
711
+ "internalType": "address"
712
+ },
713
+ {
714
+ "name": "oldFeeRecipient",
715
+ "type": "address",
716
+ "indexed": true,
717
+ "internalType": "address"
718
+ },
719
+ {
720
+ "name": "newFeeRecipient",
721
+ "type": "address",
722
+ "indexed": true,
723
+ "internalType": "address"
724
+ },
725
+ {
726
+ "name": "timestamp",
727
+ "type": "uint256",
728
+ "indexed": false,
729
+ "internalType": "uint256"
730
+ }
731
+ ],
732
+ "anonymous": false
733
+ },
734
+ {
735
+ "type": "event",
736
+ "name": "UpdateGlobalAuthorityEvent",
737
+ "inputs": [
738
+ {
739
+ "name": "authority",
740
+ "type": "address",
741
+ "indexed": true,
742
+ "internalType": "address"
743
+ },
744
+ {
745
+ "name": "newAuthority",
746
+ "type": "address",
747
+ "indexed": true,
748
+ "internalType": "address"
749
+ },
750
+ {
751
+ "name": "timestamp",
752
+ "type": "uint256",
753
+ "indexed": false,
754
+ "internalType": "uint256"
755
+ }
756
+ ],
757
+ "anonymous": false
758
+ },
759
+ {
760
+ "type": "event",
761
+ "name": "Upgraded",
762
+ "inputs": [
763
+ {
764
+ "name": "implementation",
765
+ "type": "address",
766
+ "indexed": true,
767
+ "internalType": "address"
768
+ }
769
+ ],
770
+ "anonymous": false
771
+ },
772
+ {
773
+ "type": "event",
774
+ "name": "VolumeTracked",
775
+ "inputs": [
776
+ {
777
+ "name": "user",
778
+ "type": "address",
779
+ "indexed": true,
780
+ "internalType": "address"
781
+ },
782
+ {
783
+ "name": "mint",
784
+ "type": "address",
785
+ "indexed": true,
786
+ "internalType": "address"
787
+ },
788
+ {
789
+ "name": "volumeAmount",
790
+ "type": "uint256",
791
+ "indexed": false,
792
+ "internalType": "uint256"
793
+ },
794
+ {
795
+ "name": "totalVolume",
796
+ "type": "uint256",
797
+ "indexed": false,
798
+ "internalType": "uint256"
799
+ },
800
+ {
801
+ "name": "timestamp",
802
+ "type": "uint256",
803
+ "indexed": false,
804
+ "internalType": "uint256"
805
+ }
806
+ ],
807
+ "anonymous": false
808
+ },
809
+ {
810
+ "type": "error",
811
+ "name": "AddressEmptyCode",
812
+ "inputs": [
813
+ { "name": "target", "type": "address", "internalType": "address" }
814
+ ]
815
+ },
816
+ {
817
+ "type": "error",
818
+ "name": "AllFeeRecipientsShouldBeNonZero",
819
+ "inputs": []
820
+ },
821
+ { "type": "error", "name": "AllZerosWithdrawAuthority", "inputs": [] },
822
+ { "type": "error", "name": "AlreadyInitialized", "inputs": [] },
823
+ { "type": "error", "name": "BondingCurveComplete", "inputs": [] },
824
+ { "type": "error", "name": "BondingCurveNotComplete", "inputs": [] },
825
+ { "type": "error", "name": "BuyExceedsMigrationThreshold", "inputs": [] },
826
+ { "type": "error", "name": "BuyZeroEth", "inputs": [] },
827
+ { "type": "error", "name": "CreatorShouldNotBeZero", "inputs": [] },
828
+ { "type": "error", "name": "DisabledMigrate", "inputs": [] },
829
+ { "type": "error", "name": "DivisionByZero", "inputs": [] },
830
+ {
831
+ "type": "error",
832
+ "name": "ERC1967InvalidImplementation",
833
+ "inputs": [
834
+ {
835
+ "name": "implementation",
836
+ "type": "address",
837
+ "internalType": "address"
838
+ }
839
+ ]
840
+ },
841
+ { "type": "error", "name": "ERC1967NonPayable", "inputs": [] },
842
+ { "type": "error", "name": "FailedCall", "inputs": [] },
843
+ {
844
+ "type": "error",
845
+ "name": "FeeBasisPointsGreaterThanMaximum",
846
+ "inputs": []
847
+ },
848
+ { "type": "error", "name": "FeeTooSmall", "inputs": [] },
849
+ {
850
+ "type": "error",
851
+ "name": "InitialRealTokenReservesShouldBeLessThanTokenTotalSupply",
852
+ "inputs": []
853
+ },
854
+ {
855
+ "type": "error",
856
+ "name": "InitialVirtualTokenReservesShouldBeGreaterThanInitialRealTokenReserves",
857
+ "inputs": []
858
+ },
859
+ { "type": "error", "name": "InsufficientMigrationFee", "inputs": [] },
860
+ { "type": "error", "name": "InvalidInitialization", "inputs": [] },
861
+ { "type": "error", "name": "NotAuthorized", "inputs": [] },
862
+ { "type": "error", "name": "NotEnoughRemainingAccounts", "inputs": [] },
863
+ { "type": "error", "name": "NotEnoughTokensToBuy", "inputs": [] },
864
+ { "type": "error", "name": "NotEnoughTokensToSell", "inputs": [] },
865
+ { "type": "error", "name": "NotInitializing", "inputs": [] },
866
+ { "type": "error", "name": "Overflow", "inputs": [] },
867
+ {
868
+ "type": "error",
869
+ "name": "PoolMigrationFeeShouldBeGreaterThanCreatorFeePlusMaxMigrateFees",
870
+ "inputs": []
871
+ },
872
+ {
873
+ "type": "error",
874
+ "name": "PoolMigrationFeeShouldBeLessThanFinalRealEthReserves",
875
+ "inputs": []
876
+ },
877
+ { "type": "error", "name": "SellAmountTooSmall", "inputs": [] },
878
+ { "type": "error", "name": "SellZeroAmount", "inputs": [] },
879
+ { "type": "error", "name": "TooLittleEthReceived", "inputs": [] },
880
+ { "type": "error", "name": "TooLittleTokensReceived", "inputs": [] },
881
+ { "type": "error", "name": "TransferFailed", "inputs": [] },
882
+ { "type": "error", "name": "UUPSUnauthorizedCallContext", "inputs": [] },
883
+ {
884
+ "type": "error",
885
+ "name": "UUPSUnsupportedProxiableUUID",
886
+ "inputs": [
887
+ { "name": "slot", "type": "bytes32", "internalType": "bytes32" }
888
+ ]
889
+ },
890
+ { "type": "error", "name": "UnsortedNotUniqueFeeRecipients", "inputs": [] }
891
+ ],
892
+ "bytecode": {
893
+ "object": "0x60a060405230608052348015610013575f5ffd5b5061001c610021565b6100d3565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100715760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100d05780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b60805161455c6100f95f395f8181611fbb01528181611fe40152612130015261455c5ff3fe60806040526004361061017e575f3560e01c80638ba90a2d116100cd578063b54df8af11610087578063db61c76e11610062578063db61c76e14610686578063df7d328214610699578063f160d369146106b8578063fb937829146106d7575f5ffd5b8063b54df8af146105ac578063b9a059f7146105cb578063ce5494bb14610673575f5ffd5b80638ba90a2d14610455578063a05f99061461047e578063a6769ef814610506578063ad3cb1cc14610531578063ae38f1451461056e578063b44a27221461058d575f5ffd5b806350879c1c1161013857806370f6e1431161011357806370f6e143146102c45780638129fc1c146102e357806382cbdc0f146102f757806383db2a2114610316575f5ffd5b806350879c1c1461025857806352d1902d1461028f57806365bc1504146102b1575f5ffd5b80630488cebb146101895780631982b1d0146101aa5780631bf6e958146101e6578063239f3af71461020557806347377d921461022e5780634f1ef28614610245575f5ffd5b3661018557005b5f5ffd5b348015610194575f5ffd5b506101a86101a33660046128ca565b6106f6565b005b3480156101b5575f5ffd5b506101c96101c43660046128ff565b610aae565b6040516001600160801b0390911681526020015b60405180910390f35b3480156101f1575f5ffd5b506101c961020036600461292c565b610ade565b348015610210575f5ffd5b5061021b620d89b481565b60405160029190910b81526020016101dd565b348015610239575f5ffd5b5061021b620d89b31981565b6101a861025336600461296a565b610b06565b348015610263575f5ffd5b50600b54610277906001600160a01b031681565b6040516001600160a01b0390911681526020016101dd565b34801561029a575f5ffd5b506102a3610b25565b6040519081526020016101dd565b6102776102bf366004612a71565b610b40565b3480156102cf575f5ffd5b506101a86102de366004612b29565b610b69565b3480156102ee575f5ffd5b506101a8610b9f565b348015610302575f5ffd5b50610277610311366004612b60565b610ccc565b348015610321575f5ffd5b506103ea610330366004612c0f565b6040805160e0810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810191909152506001600160a01b03165f90815260086020908152604091829020825160e0810184528154815260018201546001600160401b039081169382019390935260028201549381019390935260038101549091166060830152600481015460808301526005015460ff808216151560a084015261010090910416151560c082015290565b6040516101dd91905f60e082019050825182526001600160401b036020840151166020830152604083015160408301526001600160401b0360608401511660608301526080830151608083015260a0830151151560a083015260c0830151151560c083015292915050565b348015610460575f5ffd5b5061046a610bb881565b60405162ffffff90911681526020016101dd565b348015610489575f5ffd5b505f546001546002546003546004546005546006546007546104ef9760ff808216986001600160a01b036101009093048316989083169790966001600160401b03918216969095909481831694600160401b83041693600160e01b90920490911691168b565b6040516101dd9b9a99989796959493929190612c2a565b348015610511575f5ffd5b506102a3610520366004612c0f565b60096020525f908152604090205481565b34801561053c575f5ffd5b50610561604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101dd9190612caa565b348015610579575f5ffd5b506101a8610588366004612cdf565b610f8e565b348015610598575f5ffd5b50600a54610277906001600160a01b031681565b3480156105b7575f5ffd5b506101a86105c6366004612c0f565b6112df565b3480156105d6575f5ffd5b506106316105e5366004612c0f565b60086020525f908152604090208054600182015460028301546003840154600485015460059095015493946001600160401b039384169492939091169160ff8082169161010090041687565b604080519788526001600160401b039687166020890152870194909452939091166060850152608084015290151560a0830152151560c082015260e0016101dd565b6101a8610681366004612c0f565b611344565b6101a8610694366004612d1a565b611a4b565b3480156106a4575f5ffd5b506102a36106b3366004612d59565b611de2565b3480156106c3575f5ffd5b506101a86106d2366004612c0f565b611e76565b3480156106e2575f5ffd5b506101a86106f1366004612d9b565b611f0a565b6106fe611f45565b806040013581606001351161072657604051633e7576e560e21b815260040160405180910390fd5b604081013581351161074b576040516384f6521f60e01b815260040160405180910390fd5b6103e861075e60a08301608084016128ff565b6001600160401b0316111561078657604051630ff61fb760e21b815260040160405180910390fd5b5f61079760c0830160a08401612c0f565b6001600160a01b0316036107be576040516307bc56d160e31b815260040160405180910390fd5b606081013560055580356002556040810180356004556107e190602083016128ff565b6003805467ffffffffffffffff19166001600160401b039290921691909117905561081260a08201608083016128ff565b6006805467ffffffffffffffff19166001600160401b039290921691909117905561084360c0820160a08301612c0f565b600680546001600160a01b0392909216600160401b0268010000000000000000600160e01b031990921691909117905561088360e0820160c08301612dc5565b60068054911515600160e01b0260ff60e01b199092169190911790555f6108af60408301358335612df2565b604083018035906108c390602086016128ff565b6001600160401b03166108d69190612e05565b6108e09190612e30565b90506108f3610100830160e084016128ff565b6001600160401b0316811161091b576040516305b3b45f60e01b815260040160405180910390fd5b660110d9316ec000610934610100840160e085016128ff565b6001600160401b03161161095b576040516315317f2160e31b815260040160405180910390fd5b61096c610100830160e084016128ff565b6007805467ffffffffffffffff19166001600160401b03929092169190911790555f6109a061012084016101008501612c0f565b6001600160a01b0316036109c7576040516305972dd960e31b815260040160405180910390fd5b6109d961012083016101008401612c0f565b600180546001600160a01b0319166001600160a01b03929092169190911790557f3b55e8e27cf38091d433ea4f1776e59762db38c13f2c36cfb9334150f6861b278235610a2c60408501602086016128ff565b6040850135846060870135610a4760a0890160808a016128ff565b610a5760c08a0160a08b01612c0f565b610a6760e08b0160c08c01612dc5565b610a786101008c0160e08d016128ff565b610a8a6101208d016101008e01612c0f565b42604051610aa29b9a99989796959493929190612e4f565b60405180910390a15050565b6006545f9061271090610ace906001600160401b03908116908516612e05565b610ad89190612e30565b92915050565b6001600160a01b0382165f908152600860205260408120610aff9083611f76565b9392505050565b610b0e611fb0565b610b1782612054565b610b21828261205f565b5050565b5f610b2e612125565b505f5160206145075f395f51905f5290565b5f610b5089898989898989610ccc565b9050610b5d818385611a4b565b98975050505050505050565b610b71611f45565b600a80546001600160a01b039384166001600160a01b031991821617909155600b8054929093169116179055565b5f610ba861216e565b805490915060ff600160401b82041615906001600160401b03165f81158015610bce5750825b90505f826001600160401b03166001148015610be95750303b155b905081158015610bf7575080155b15610c155760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c3f57845460ff60401b1916600160401b1785555b5f5460ff1615610c615760405162dc149f60e41b815260040160405180910390fd5b5f805460ff196101003302166001600160a81b03199091161760011790558315610cc557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b5f6001600160a01b038216610cf45760405163cecd917560e01b815260040160405180910390fd5b878787875f6005015430878a8a604051610d0d906128bd565b610d1f99989796959493929190612ef9565b604051809103905ff080158015610d38573d5f5f3e3d5ffd5b506001600160a01b0381165f908152600860205260409020600280548255600380546001840180546001600160401b0390921667ffffffffffffffff1992831617905560048054938501939093559083018054909116905560058054918301919091558101805460ff191690556006549192509060ff600160e01b9091041615610f2157600a546040805163c45a015560e01b815290515f926001600160a01b03169163c45a01559160048083019260209291908290030181865afa158015610e03573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e279190612f52565b600b5460405163a167129560e01b81526001600160a01b0386811660048301529182166024820152610bb8604482015291169063a1671295906064016020604051808303815f875af1158015610e7f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ea39190612f52565b90505f610ec4846aab24c7796fd2da38800000673782dace9d900000612196565b60405163f637731d60e01b81526001600160a01b0380831660048301529192509083169063f637731d906024015f604051808303815f87803b158015610f08575f5ffd5b505af1158015610f1a573d5f5f3e3d5ffd5b5050505050505b826001600160a01b0316336001600160a01b0316836001600160a01b03167f7c5f950b8bc67b967ab89533cbde5c558c4804e072a19e25ba27ec7001ddb9c48c8c8c8c8c8c42604051610f7a9796959493929190612f6d565b60405180910390a450979650505050505050565b6001600160a01b0383165f908152600860205260409020600581015460ff1615610fcb5760405163cf6228ff60e01b815260040160405180910390fd5b825f03610feb57604051632160c03760e11b815260040160405180910390fd5b5f610ff68285611f76565b9050806001600160401b03165f0361102157604051630236a3b960e51b815260040160405180910390fd5b6006545f9061271090611041906001600160401b03908116908516612e05565b61104b9190612e30565b90505f6110588284612fbd565b9050846001600160401b0316816001600160401b0316101561108d5760405163d950841760e01b815260040160405180910390fd5b85845f015f82825461109f9190612fdc565b9250508190555085846002015f8282546110b99190612fdc565b90915550506001840180548491905f906110dd9084906001600160401b0316612fbd565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555082846003015f8282829054906101000a90046001600160401b03166111269190612fbd565b82546001600160401b039182166101009390930a928302919092021990911617905550604051636fdcc73360e11b8152336004820152306024820152604481018790526001600160a01b0388169063dfb98e66906064015f604051808303815f87803b158015611194575f5ffd5b505af11580156111a6573d5f5f3e3d5ffd5b505050506111bd33826001600160401b0316612235565b6111c78783612283565b6005840154610100900460ff161561126957335f90815260096020526040812080546001600160401b0384169290611200908490612fdc565b9091555050335f818152600960209081526040918290205482516001600160401b038616815291820152428183015290516001600160a01b038a1692917f3bd2ab76fe1372c52624369987e36e0eeec418adb4cce644c1ff1e92c88526cf919081900360600190a35b600184015484546003860154600287015460405133946001600160a01b038d16947f32f6fbd2517735f227983a70b97bd9b37b06793ce95cdabd3e4404a30e50807c946112ce948b948f945f9442946001600160401b03928316949193921691612fef565b60405180910390a350505050505050565b6112e7611f45565b5f8054610100600160a81b0319166101006001600160a01b0384169081029190911790915560405142815233907f5f83dd8281b215414cd8a5cc0daaa55e311d177df70e155237fe1893e98ee4d99060200160405180910390a350565b600654600160e01b900460ff1661136e57604051634fa8028360e01b815260040160405180910390fd5b6007546001600160401b031634101561139a576040516306fb546b60e31b815260040160405180910390fd5b6001600160a01b0381165f908152600860205260409020600581015460ff166113d65760405163d2d7f84160e01b815260040160405180910390fd5b6113df8161238b565b156113e8575050565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa15801561142c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114509190613038565b60038301805460075467ffffffffffffffff198083169093556001860180549093169092555f6002860181905585559192506001600160401b039182169116846001600160a01b0316638a8c523c6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156114c7575f5ffd5b505af11580156114d9573d5f5f3e3d5ffd5b505050506001600160401b038116156115125760065461151290600160401b90046001600160a01b03166001600160401b038316612235565b600b5f9054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004015f604051808303818588803b15801561155f575f5ffd5b505af1158015611571573d5f5f3e3d5ffd5b5050600a5461158f93508892506001600160a01b03169050856123ce565b600b54600a546115ac916001600160a01b039081169116846123ce565b600b545f9081906001600160a01b03908116908816106115d857600b546001600160a01b0316876115e7565b600b5487906001600160a01b03165b600b5491935091505f9081906001600160a01b03908116908a161061160d578587611610565b86865b915091505f604051806101600160405280866001600160a01b03168152602001856001600160a01b03168152602001610bb862ffffff168152602001620d89b31960020b8152602001620d89b460020b8152602001848152602001838152602001606485605f6116809190612e05565b61168a9190612e30565b8152602001606461169c85605f612e05565b6116a69190612e30565b815230602082015242604091820152600a549051634418b22b60e11b81529192505f916001600160a01b03909116906388316456906116e990859060040161304f565b6080604051808303815f875af1158015611705573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117299190613113565b5050600a546040516323b872dd60e01b815230600482015261dead6024820152604481018490529293506001600160a01b0316916323b872dd91506064015f604051808303815f87803b15801561177e575f5ffd5b505af1158015611790573d5f5f3e3d5ffd5b50506040516370a0823160e01b81523060048201525f92506001600160a01b038e1691506370a0823190602401602060405180830381865afa1580156117d8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117fc9190613038565b9050801561181c5760015461181c908d906001600160a01b031683612456565b600b546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015611862573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118869190613038565b905080156118ab57600b546001546118ab916001600160a01b03908116911683612456565b600a546040805163c45a015560e01b815290515f926001600160a01b03169163c45a01559160048083019260209291908290030181865afa1580156118f2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119169190612f52565b6001600160a01b0316631698ee828f600b5f9054906101000a90046001600160a01b0316610bb86040518463ffffffff1660e01b815260040161197f939291906001600160a01b03938416815291909216602082015262ffffff91909116604082015260600190565b602060405180830381865afa15801561199a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119be9190612f52565b9050806001600160a01b03168e6001600160a01b0316336001600160a01b03167f07ca1e8cb5a0097ee526b6d231adc11b67912789ddfad36700e4cc397d11cac88f8f8f42604051611a3394939291909384526001600160401b03928316602085015291166040830152606082015260800190565b60405180910390a45050505050505050505050505050565b345f03611a6b57604051630a445ee360e01b815260040160405180910390fd5b6001600160a01b0383165f908152600860205260409020600581015460ff1615611aa85760405163cf6228ff60e01b815260040160405180910390fd5b6006545f9061271090611ac4906001600160401b031634612e05565b611ace9190612e30565b90505f611adb8234612df2565b6003840154909150673782dace9d90000090611b019083906001600160401b0316612fdc565b1115611b2057604051630e59293f60e21b815260040160405180910390fd5b60018301545f90611b3b9083906001600160401b0316612fdc565b8454611b48908490612e05565b611b529190612e30565b90508360020154811115611b67575060028301545b85811015611b88576040516301be9b0160e71b815260040160405180910390fd5b80845f015f828254611b9a9190612df2565b9250508190555080846002015f828254611bb49190612df2565b90915550506001840180548391905f90611bd89084906001600160401b031661315a565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555081846003015f8282829054906101000a90046001600160401b0316611c21919061315a565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555083600201545f1480611c6e57506003840154673782dace9d9000006001600160401b0390911610155b15611ccd5760058401805460ff191660011790556040516001600160a01b0380891691908716907f35c1d7a8038046d5948da60a319d153de0582fd86f9244e07cfe5cb70e5c4e9790611cc49042815260200190565b60405180910390a35b611cd8878683612456565b611ce28784612283565b6005840154610100900460ff1615611d7c576001600160a01b0385165f9081526009602052604081208054349290611d1b908490612fdc565b90915550506001600160a01b038581165f818152600960209081526040918290205482513481529182015242818301529051928a16927f3bd2ab76fe1372c52624369987e36e0eeec418adb4cce644c1ff1e92c88526cf9181900360600190a35b6001848101548554600387015460028801546040516001600160a01b03808c1696908e16957f32f6fbd2517735f227983a70b97bd9b37b06793ce95cdabd3e4404a30e50807c956112ce958b958b9542946001600160401b039081169493169190612fef565b6001600160a01b0382165f908152600860205260408120600654829061271090611e19906001600160401b03908116908716612e05565b611e239190612e30565b90505f611e39826001600160401b038716612df2565b6001840154909150611e559082906001600160401b0316612fdc565b8354611e62908390612e05565b611e6c9190612e30565b9695505050505050565b611e7e611f45565b6001600160a01b038116611ea5576040516305972dd960e31b815260040160405180910390fd5b600180546001600160a01b038381166001600160a01b03198316811790935560405191169190829033907f853665966f61ace5d8d2ab7692107c77e747f9212327ee0c28f61de24ecc658090611efe9042815260200190565b60405180910390a45050565b611f12611f45565b6001600160a01b039091165f90815260086020526040902060050180549115156101000261ff0019909216919091179055565b5f5461010090046001600160a01b03163314611f745760405163ea8e4eb560e01b815260040160405180910390fd5b565b600182015482545f916001600160401b031690611f938482612fdc565b611f9d8386612e05565b611fa79190612e30565b95945050505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061203657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661202a5f5160206145075f395f51905f52546001600160a01b031690565b6001600160a01b031614155b15611f745760405163703e46dd60e11b815260040160405180910390fd5b61205c611f45565b50565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156120b9575060408051601f3d908101601f191682019092526120b691810190613038565b60015b6120e657604051634c9c8ce360e01b81526001600160a01b03831660048201526024015b60405180910390fd5b5f5160206145075f395f51905f52811461211657604051632a87526960e21b8152600481018290526024016120dd565b61212083836124df565b505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611f745760405163703e46dd60e11b815260040160405180910390fd5b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610ad8565b5f8215806121a2575081155b156121c0576040516323d359a360e01b815260040160405180910390fd5b600b546001600160a01b03908116908516105f81156121ef576121e884600160c01b87612534565b9050612201565b6121fe85600160c01b86612534565b90505b5f61220b826125e4565b90506001600160a01b03811115611e6c57604051631a93c68960e11b815260040160405180910390fd5b5f5f5f5f5f85875af19050806121205760405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b60448201526064016120dd565b805f036122a357604051639a7ac21b60e01b815260040160405180910390fd5b5f6122b0601e604661315a565b6001600160401b03166122c4604684612e05565b6122ce9190612e30565b90505f6122db8284612df2565b90508115806122e8575080155b1561230657604051639a7ac21b60e01b815260040160405180910390fd5b60015461231c906001600160a01b031683612235565b612385846001600160a01b03166302d05d3f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561235b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061237f9190612f52565b82612235565b50505050565b60038101545f906001600160401b03161580156123b3575060018201546001600160401b0316155b80156123c157506002820154155b8015610ad8575050541590565b5f60405163095ea7b360e01b81526001600160a01b038416600482015282602482015260205f6044835f895af191505080601f3d1160015f5114161516156124185750823b153d17155b806123855760405162461bcd60e51b815260206004820152600e60248201526d1054141493d59157d1905253115160921b60448201526064016120dd565b5f60405163a9059cbb60e01b81526001600160a01b038416600482015282602482015260205f6044835f895af191505080601f3d1160015f5114161516156124a05750823b153d17155b806123855760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b60448201526064016120dd565b6124e882612737565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a280511561252c57612120828261279a565b610b2161283a565b5f5f5f6125418686612859565b91509150815f036125655783818161255b5761255b612e1c565b0492505050610aff565b81841161257c5761257c6003851502601118612875565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b5f600182116125f1575090565b816001600160801b821061260a5760809190911c9060401b5b600160401b82106126205760409190911c9060201b5b64010000000082106126375760209190911c9060101b5b62010000821061264c5760109190911c9060081b5b61010082106126605760089190911c9060041b5b601082106126735760049190911c9060021b5b6004821061267f5760011b5b600302600190811c9081858161269757612697612e1c565b048201901c905060018185816126af576126af612e1c565b048201901c905060018185816126c7576126c7612e1c565b048201901c905060018185816126df576126df612e1c565b048201901c905060018185816126f7576126f7612e1c565b048201901c9050600181858161270f5761270f612e1c565b048201901c905061272e81858161272857612728612e1c565b04821190565b90039392505050565b806001600160a01b03163b5f0361276c57604051634c9c8ce360e01b81526001600160a01b03821660048201526024016120dd565b5f5160206145075f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f6127a78484612886565b90508080156127c857505f3d11806127c857505f846001600160a01b03163b115b156127dd576127d5612899565b915050610ad8565b801561280757604051639996b31560e01b81526001600160a01b03851660048201526024016120dd565b3d1561281a576128156128b2565b612833565b60405163d6bda27560e01b815260040160405180910390fd5b5092915050565b3415611f745760405163b398979f60e01b815260040160405180910390fd5b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b5f5f5f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b61138d8061317a83390190565b5f6101208284031280156128dc575f5ffd5b509092915050565b80356001600160401b03811681146128fa575f5ffd5b919050565b5f6020828403121561290f575f5ffd5b610aff826128e4565b6001600160a01b038116811461205c575f5ffd5b5f5f6040838503121561293d575f5ffd5b823561294881612918565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b5f5f6040838503121561297b575f5ffd5b823561298681612918565b915060208301356001600160401b038111156129a0575f5ffd5b8301601f810185136129b0575f5ffd5b80356001600160401b038111156129c9576129c9612956565b604051601f8201601f19908116603f011681016001600160401b03811182821017156129f7576129f7612956565b604052818152828201602001871015612a0e575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f5f83601f840112612a3d575f5ffd5b5081356001600160401b03811115612a53575f5ffd5b602083019150836020828501011115612a6a575f5ffd5b9250929050565b5f5f5f5f5f5f5f5f60a0898b031215612a88575f5ffd5b88356001600160401b03811115612a9d575f5ffd5b612aa98b828c01612a2d565b90995097505060208901356001600160401b03811115612ac7575f5ffd5b612ad38b828c01612a2d565b90975095505060408901356001600160401b03811115612af1575f5ffd5b612afd8b828c01612a2d565b9095509350506060890135612b1181612918565b979a9699509497939692959194509192608001359150565b5f5f60408385031215612b3a575f5ffd5b8235612b4581612918565b91506020830135612b5581612918565b809150509250929050565b5f5f5f5f5f5f5f6080888a031215612b76575f5ffd5b87356001600160401b03811115612b8b575f5ffd5b612b978a828b01612a2d565b90985096505060208801356001600160401b03811115612bb5575f5ffd5b612bc18a828b01612a2d565b90965094505060408801356001600160401b03811115612bdf575f5ffd5b612beb8a828b01612a2d565b9094509250506060880135612bff81612918565b8091505092959891949750929550565b5f60208284031215612c1f575f5ffd5b8135610aff81612918565b8b151581526001600160a01b038b811660208301528a81166040830152606082018a90526001600160401b03898116608084015260a0830189905260c08301889052861660e0830152841661010082015282151561012082015261016081016001600160401b0383166101408301525b9c9b505050505050505050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f5f5f60608486031215612cf1575f5ffd5b8335612cfc81612918565b925060208401359150612d11604085016128e4565b90509250925092565b5f5f5f60608486031215612d2c575f5ffd5b8335612d3781612918565b9250602084013591506040840135612d4e81612918565b809150509250925092565b5f5f60408385031215612d6a575f5ffd5b8235612d7581612918565b9150612d83602084016128e4565b90509250929050565b803580151581146128fa575f5ffd5b5f5f60408385031215612dac575f5ffd5b8235612db781612918565b9150612d8360208401612d8c565b5f60208284031215612dd5575f5ffd5b610aff82612d8c565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610ad857610ad8612dde565b8082028115828204841417610ad857610ad8612dde565b634e487b7160e01b5f52601260045260245ffd5b5f82612e4a57634e487b7160e01b5f52601260045260245ffd5b500490565b8b81526001600160401b038b81166020830152604082018b905289811660608301526080820189905287811660a08301526001600160a01b03871660c083015285151560e083015284166101008201526101608101612eba6101208301856001600160a01b03169052565b826101408301529c9b505050505050505050505050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b60c081525f612f0c60c083018b8d612ed1565b8281036020840152612f1f818a8c612ed1565b604084018990526001600160a01b0388811660608601528716608085015283810360a08501529050612c9a818587612ed1565b5f60208284031215612f62575f5ffd5b8151610aff81612918565b608081525f612f8060808301898b612ed1565b8281036020840152612f9381888a612ed1565b90508281036040840152612fa8818688612ed1565b91505082606083015298975050505050505050565b6001600160401b038281168282160390811115610ad857610ad8612dde565b80820180821115610ad857610ad8612dde565b6001600160401b039889168152602081019790975294151560408701526060860193909352908516608085015260a084015290921660c082015260e08101919091526101000190565b5f60208284031215613048575f5ffd5b5051919050565b81516001600160a01b031681526101608101602083015161307b60208401826001600160a01b03169052565b506040830151613092604084018262ffffff169052565b5060608301516130a7606084018260020b9052565b5060808301516130bc608084018260020b9052565b5060a083015160a083015260c083015160c083015260e083015160e08301526101008301516101008301526101208301516131036101208401826001600160a01b03169052565b5061014092830151919092015290565b5f5f5f5f60808587031215613126575f5ffd5b845160208601519094506001600160801b0381168114613144575f5ffd5b6040860151606090960151949790965092505050565b6001600160401b038181168382160190811115610ad857610ad8612dde56fe60e060405234801561000f575f5ffd5b5060405161138d38038061138d83398101604081905261002e916102f8565b82868660125f61003e8482610433565b50600161004b8382610433565b5060ff81166080524660a05261005f6100ee565b60c0525050506001600160a01b03811661009257604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61009b81610186565b50600980546001600160a01b038086166001600160a01b031992831617909255600880549285169290911691909117905560076100d88282610433565b506100e383856101d7565b505050505050610583565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f60405161011e91906104ed565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b8060025f8282546101e8919061055e565b90915550506001600160a01b0382165f818152600360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610263575f5ffd5b81516001600160401b0381111561027c5761027c610240565b604051601f8201601f19908116603f011681016001600160401b03811182821017156102aa576102aa610240565b6040528181528382016020018510156102c1575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b80516001600160a01b03811681146102f3575f5ffd5b919050565b5f5f5f5f5f5f60c0878903121561030d575f5ffd5b86516001600160401b03811115610322575f5ffd5b61032e89828a01610254565b602089015190975090506001600160401b0381111561034b575f5ffd5b61035789828a01610254565b9550506040870151935061036d606088016102dd565b925061037b608088016102dd565b60a08801519092506001600160401b03811115610396575f5ffd5b6103a289828a01610254565b9150509295509295509295565b600181811c908216806103c357607f821691505b6020821081036103e157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561042e57805f5260205f20601f840160051c8101602085101561040c5750805b601f840160051c820191505b8181101561042b575f8155600101610418565b50505b505050565b81516001600160401b0381111561044c5761044c610240565b6104608161045a84546103af565b846103e7565b6020601f821160018114610492575f831561047b5750848201515b5f19600385901b1c1916600184901b17845561042b565b5f84815260208120601f198516915b828110156104c157878501518255602094850194600190920191016104a1565b50848210156104de57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f5f83546104fa816103af565b600182168015610511576001811461052657610553565b60ff1983168652811515820286019350610553565b865f5260205f205f5b8381101561054b5781548882015260019091019060200161052f565b505081860193505b509195945050505050565b8082018082111561057d57634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a05160c051610de06105ad5f395f61046401525f61042f01525f6101cd0152610de05ff3fe608060405234801561000f575f5ffd5b5060043610610132575f3560e01c80637ecebe00116100b4578063c45a015511610079578063c45a015514610299578063d505accf146102ac578063dd62ed3e146102bf578063dfb98e66146102e9578063eac989f8146102fc578063f2fde38b14610304575f5ffd5b80637ecebe00146102465780638a8c523c146102655780638da5cb5b1461026d57806395d89b411461027e578063a9059cbb14610286575f5ffd5b8063313ce567116100fa578063313ce567146101c85780633644e515146102015780634ada218b1461020957806370a082311461021d578063715018a61461023c575f5ffd5b806302d05d3f1461013657806306fdde0314610166578063095ea7b31461017b57806318160ddd1461019e57806323b872dd146101b5575b5f5ffd5b600854610149906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61016e610317565b60405161015d9190610b4e565b61018e610189366004610b9e565b6103a2565b604051901515815260200161015d565b6101a760025481565b60405190815260200161015d565b61018e6101c3366004610bc6565b61040e565b6101ef7f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff909116815260200161015d565b6101a761042c565b60095461018e90600160a01b900460ff1681565b6101a761022b366004610c00565b60036020525f908152604090205481565b610244610486565b005b6101a7610254366004610c00565b60056020525f908152604090205481565b610244610499565b6006546001600160a01b0316610149565b61016e6104b6565b61018e610294366004610b9e565b6104c3565b600954610149906001600160a01b031681565b6102446102ba366004610c19565b6104df565b6101a76102cd366004610c86565b600460209081525f928352604080842090915290825290205481565b6102446102f7366004610bc6565b610722565b61016e610806565b610244610312366004610c00565b610813565b5f805461032390610cb7565b80601f016020809104026020016040519081016040528092919081815260200182805461034f90610cb7565b801561039a5780601f106103715761010080835404028352916020019161039a565b820191905f5260205f20905b81548152906001019060200180831161037d57829003601f168201915b505050505081565b335f8181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103fc9086815260200190565b60405180910390a35060015b92915050565b5f6104198484610850565b6104248484846108d5565b949350505050565b5f7f000000000000000000000000000000000000000000000000000000000000000046146104615761045c6109c2565b905090565b507f000000000000000000000000000000000000000000000000000000000000000090565b61048e610a5a565b6104975f610a87565b565b6104a1610a5a565b6009805460ff60a01b1916600160a01b179055565b6001805461032390610cb7565b5f6104ce3384610850565b6104d88383610ad8565b9392505050565b428410156105345760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f4558504952454400000000000000000060448201526064015b60405180910390fd5b5f600161053f61042c565b6001600160a01b038a81165f8181526005602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e08301909152805192019190912061190160f01b6101008301526101028201929092526101228101919091526101420160408051601f1981840301815282825280516020918201205f84529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610647573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b0381161580159061067d5750876001600160a01b0316816001600160a01b0316145b6106ba5760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b604482015260640161052b565b6001600160a01b039081165f9081526004602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b600954600160a01b900460ff161561074d57604051636b91f55d60e11b815260040160405180910390fd5b6009546001600160a01b0316331461077857604051630636a15760e11b815260040160405180910390fd5b6001600160a01b0383165f908152600360205260408120805483929061079f908490610cef565b90915550506001600160a01b038083165f81815260036020526040908190208054850190555190918516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107f99085815260200190565b60405180910390a3505050565b6007805461032390610cb7565b61081b610a5a565b6001600160a01b03811661084457604051631e4fbdf760e01b81525f600482015260240161052b565b61084d81610a87565b50565b600954600160a01b900460ff1615610866575050565b6009546001600160a01b038381169116148061088f57506009546001600160a01b038281169116145b806108a157506001600160a01b038216155b806108b357506001600160a01b038116155b156108bc575050565b6040516312f1f92360e01b815260040160405180910390fd5b6001600160a01b0383165f9081526004602090815260408083203384529091528120545f19811461092e5761090a8382610cef565b6001600160a01b0386165f9081526004602090815260408083203384529091529020555b6001600160a01b0385165f9081526003602052604081208054859290610955908490610cef565b90915550506001600160a01b038085165f81815260036020526040908190208054870190555190918716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906109af9087815260200190565b60405180910390a3506001949350505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f6040516109f29190610d0e565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6006546001600160a01b031633146104975760405163118cdaa760e01b815233600482015260240161052b565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b335f90815260036020526040812080548391908390610af8908490610cef565b90915550506001600160a01b0383165f81815260036020526040908190208054850190555133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906103fc9086815260200190565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114610b99575f5ffd5b919050565b5f5f60408385031215610baf575f5ffd5b610bb883610b83565b946020939093013593505050565b5f5f5f60608486031215610bd8575f5ffd5b610be184610b83565b9250610bef60208501610b83565b929592945050506040919091013590565b5f60208284031215610c10575f5ffd5b6104d882610b83565b5f5f5f5f5f5f5f60e0888a031215610c2f575f5ffd5b610c3888610b83565b9650610c4660208901610b83565b95506040880135945060608801359350608088013560ff81168114610c69575f5ffd5b9699959850939692959460a0840135945060c09093013592915050565b5f5f60408385031215610c97575f5ffd5b610ca083610b83565b9150610cae60208401610b83565b90509250929050565b600181811c90821680610ccb57607f821691505b602082108103610ce957634e487b7160e01b5f52602260045260245ffd5b50919050565b8181038181111561040857634e487b7160e01b5f52601160045260245ffd5b5f5f83545f8160011c90506001821680610d2957607f821691505b602082108103610d4757634e487b7160e01b5f52602260045260245ffd5b808015610d5b5760018114610d7057610d9e565b60ff1984168752821515830287019450610d9e565b5f888152602090205f5b84811015610d9657815489820152600190910190602001610d7a565b505082870194505b5092969550505050505056fea264697066735822122000073beb8f85b375519ffa509213774bfa5686d67bfcb2c17d3c3bb6091a611a64736f6c634300081e0033360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212208bbf4457b6a96380c862967e3a6a21bc753a39ad48cc7fcac57d130d394d086f64736f6c634300081e0033",
894
+ "sourceMap": "979:22771:49:-:0;;;1084:4:31;1041:48;;6137:53:49;;;;;;;;;-1:-1:-1;6161:22:49;:20;:22::i;:::-;979:22771;;7709:422:30;3147:66;7898:15;;;;;;;7894:76;;;7936:23;;-1:-1:-1;;;7936:23:30;;;;;;;;;;;7894:76;7983:14;;-1:-1:-1;;;;;7983:14:30;;;:34;7979:146;;8033:33;;-1:-1:-1;;;;;;8033:33:30;-1:-1:-1;;;;;8033:33:30;;;;;8085:29;;158:50:66;;;8085:29:30;;146:2:66;131:18;8085:29:30;;;;;;;7979:146;7758:373;7709:422::o;14:200:66:-;979:22771:49;;;;;;;;;;;;;;;;;;;;;;",
895
+ "linkReferences": {}
896
+ },
897
+ "deployedBytecode": {
898
+ "object": "0x60806040526004361061017e575f3560e01c80638ba90a2d116100cd578063b54df8af11610087578063db61c76e11610062578063db61c76e14610686578063df7d328214610699578063f160d369146106b8578063fb937829146106d7575f5ffd5b8063b54df8af146105ac578063b9a059f7146105cb578063ce5494bb14610673575f5ffd5b80638ba90a2d14610455578063a05f99061461047e578063a6769ef814610506578063ad3cb1cc14610531578063ae38f1451461056e578063b44a27221461058d575f5ffd5b806350879c1c1161013857806370f6e1431161011357806370f6e143146102c45780638129fc1c146102e357806382cbdc0f146102f757806383db2a2114610316575f5ffd5b806350879c1c1461025857806352d1902d1461028f57806365bc1504146102b1575f5ffd5b80630488cebb146101895780631982b1d0146101aa5780631bf6e958146101e6578063239f3af71461020557806347377d921461022e5780634f1ef28614610245575f5ffd5b3661018557005b5f5ffd5b348015610194575f5ffd5b506101a86101a33660046128ca565b6106f6565b005b3480156101b5575f5ffd5b506101c96101c43660046128ff565b610aae565b6040516001600160801b0390911681526020015b60405180910390f35b3480156101f1575f5ffd5b506101c961020036600461292c565b610ade565b348015610210575f5ffd5b5061021b620d89b481565b60405160029190910b81526020016101dd565b348015610239575f5ffd5b5061021b620d89b31981565b6101a861025336600461296a565b610b06565b348015610263575f5ffd5b50600b54610277906001600160a01b031681565b6040516001600160a01b0390911681526020016101dd565b34801561029a575f5ffd5b506102a3610b25565b6040519081526020016101dd565b6102776102bf366004612a71565b610b40565b3480156102cf575f5ffd5b506101a86102de366004612b29565b610b69565b3480156102ee575f5ffd5b506101a8610b9f565b348015610302575f5ffd5b50610277610311366004612b60565b610ccc565b348015610321575f5ffd5b506103ea610330366004612c0f565b6040805160e0810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810191909152506001600160a01b03165f90815260086020908152604091829020825160e0810184528154815260018201546001600160401b039081169382019390935260028201549381019390935260038101549091166060830152600481015460808301526005015460ff808216151560a084015261010090910416151560c082015290565b6040516101dd91905f60e082019050825182526001600160401b036020840151166020830152604083015160408301526001600160401b0360608401511660608301526080830151608083015260a0830151151560a083015260c0830151151560c083015292915050565b348015610460575f5ffd5b5061046a610bb881565b60405162ffffff90911681526020016101dd565b348015610489575f5ffd5b505f546001546002546003546004546005546006546007546104ef9760ff808216986001600160a01b036101009093048316989083169790966001600160401b03918216969095909481831694600160401b83041693600160e01b90920490911691168b565b6040516101dd9b9a99989796959493929190612c2a565b348015610511575f5ffd5b506102a3610520366004612c0f565b60096020525f908152604090205481565b34801561053c575f5ffd5b50610561604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101dd9190612caa565b348015610579575f5ffd5b506101a8610588366004612cdf565b610f8e565b348015610598575f5ffd5b50600a54610277906001600160a01b031681565b3480156105b7575f5ffd5b506101a86105c6366004612c0f565b6112df565b3480156105d6575f5ffd5b506106316105e5366004612c0f565b60086020525f908152604090208054600182015460028301546003840154600485015460059095015493946001600160401b039384169492939091169160ff8082169161010090041687565b604080519788526001600160401b039687166020890152870194909452939091166060850152608084015290151560a0830152151560c082015260e0016101dd565b6101a8610681366004612c0f565b611344565b6101a8610694366004612d1a565b611a4b565b3480156106a4575f5ffd5b506102a36106b3366004612d59565b611de2565b3480156106c3575f5ffd5b506101a86106d2366004612c0f565b611e76565b3480156106e2575f5ffd5b506101a86106f1366004612d9b565b611f0a565b6106fe611f45565b806040013581606001351161072657604051633e7576e560e21b815260040160405180910390fd5b604081013581351161074b576040516384f6521f60e01b815260040160405180910390fd5b6103e861075e60a08301608084016128ff565b6001600160401b0316111561078657604051630ff61fb760e21b815260040160405180910390fd5b5f61079760c0830160a08401612c0f565b6001600160a01b0316036107be576040516307bc56d160e31b815260040160405180910390fd5b606081013560055580356002556040810180356004556107e190602083016128ff565b6003805467ffffffffffffffff19166001600160401b039290921691909117905561081260a08201608083016128ff565b6006805467ffffffffffffffff19166001600160401b039290921691909117905561084360c0820160a08301612c0f565b600680546001600160a01b0392909216600160401b0268010000000000000000600160e01b031990921691909117905561088360e0820160c08301612dc5565b60068054911515600160e01b0260ff60e01b199092169190911790555f6108af60408301358335612df2565b604083018035906108c390602086016128ff565b6001600160401b03166108d69190612e05565b6108e09190612e30565b90506108f3610100830160e084016128ff565b6001600160401b0316811161091b576040516305b3b45f60e01b815260040160405180910390fd5b660110d9316ec000610934610100840160e085016128ff565b6001600160401b03161161095b576040516315317f2160e31b815260040160405180910390fd5b61096c610100830160e084016128ff565b6007805467ffffffffffffffff19166001600160401b03929092169190911790555f6109a061012084016101008501612c0f565b6001600160a01b0316036109c7576040516305972dd960e31b815260040160405180910390fd5b6109d961012083016101008401612c0f565b600180546001600160a01b0319166001600160a01b03929092169190911790557f3b55e8e27cf38091d433ea4f1776e59762db38c13f2c36cfb9334150f6861b278235610a2c60408501602086016128ff565b6040850135846060870135610a4760a0890160808a016128ff565b610a5760c08a0160a08b01612c0f565b610a6760e08b0160c08c01612dc5565b610a786101008c0160e08d016128ff565b610a8a6101208d016101008e01612c0f565b42604051610aa29b9a99989796959493929190612e4f565b60405180910390a15050565b6006545f9061271090610ace906001600160401b03908116908516612e05565b610ad89190612e30565b92915050565b6001600160a01b0382165f908152600860205260408120610aff9083611f76565b9392505050565b610b0e611fb0565b610b1782612054565b610b21828261205f565b5050565b5f610b2e612125565b505f5160206145075f395f51905f5290565b5f610b5089898989898989610ccc565b9050610b5d818385611a4b565b98975050505050505050565b610b71611f45565b600a80546001600160a01b039384166001600160a01b031991821617909155600b8054929093169116179055565b5f610ba861216e565b805490915060ff600160401b82041615906001600160401b03165f81158015610bce5750825b90505f826001600160401b03166001148015610be95750303b155b905081158015610bf7575080155b15610c155760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c3f57845460ff60401b1916600160401b1785555b5f5460ff1615610c615760405162dc149f60e41b815260040160405180910390fd5b5f805460ff196101003302166001600160a81b03199091161760011790558315610cc557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b5f6001600160a01b038216610cf45760405163cecd917560e01b815260040160405180910390fd5b878787875f6005015430878a8a604051610d0d906128bd565b610d1f99989796959493929190612ef9565b604051809103905ff080158015610d38573d5f5f3e3d5ffd5b506001600160a01b0381165f908152600860205260409020600280548255600380546001840180546001600160401b0390921667ffffffffffffffff1992831617905560048054938501939093559083018054909116905560058054918301919091558101805460ff191690556006549192509060ff600160e01b9091041615610f2157600a546040805163c45a015560e01b815290515f926001600160a01b03169163c45a01559160048083019260209291908290030181865afa158015610e03573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e279190612f52565b600b5460405163a167129560e01b81526001600160a01b0386811660048301529182166024820152610bb8604482015291169063a1671295906064016020604051808303815f875af1158015610e7f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ea39190612f52565b90505f610ec4846aab24c7796fd2da38800000673782dace9d900000612196565b60405163f637731d60e01b81526001600160a01b0380831660048301529192509083169063f637731d906024015f604051808303815f87803b158015610f08575f5ffd5b505af1158015610f1a573d5f5f3e3d5ffd5b5050505050505b826001600160a01b0316336001600160a01b0316836001600160a01b03167f7c5f950b8bc67b967ab89533cbde5c558c4804e072a19e25ba27ec7001ddb9c48c8c8c8c8c8c42604051610f7a9796959493929190612f6d565b60405180910390a450979650505050505050565b6001600160a01b0383165f908152600860205260409020600581015460ff1615610fcb5760405163cf6228ff60e01b815260040160405180910390fd5b825f03610feb57604051632160c03760e11b815260040160405180910390fd5b5f610ff68285611f76565b9050806001600160401b03165f0361102157604051630236a3b960e51b815260040160405180910390fd5b6006545f9061271090611041906001600160401b03908116908516612e05565b61104b9190612e30565b90505f6110588284612fbd565b9050846001600160401b0316816001600160401b0316101561108d5760405163d950841760e01b815260040160405180910390fd5b85845f015f82825461109f9190612fdc565b9250508190555085846002015f8282546110b99190612fdc565b90915550506001840180548491905f906110dd9084906001600160401b0316612fbd565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555082846003015f8282829054906101000a90046001600160401b03166111269190612fbd565b82546001600160401b039182166101009390930a928302919092021990911617905550604051636fdcc73360e11b8152336004820152306024820152604481018790526001600160a01b0388169063dfb98e66906064015f604051808303815f87803b158015611194575f5ffd5b505af11580156111a6573d5f5f3e3d5ffd5b505050506111bd33826001600160401b0316612235565b6111c78783612283565b6005840154610100900460ff161561126957335f90815260096020526040812080546001600160401b0384169290611200908490612fdc565b9091555050335f818152600960209081526040918290205482516001600160401b038616815291820152428183015290516001600160a01b038a1692917f3bd2ab76fe1372c52624369987e36e0eeec418adb4cce644c1ff1e92c88526cf919081900360600190a35b600184015484546003860154600287015460405133946001600160a01b038d16947f32f6fbd2517735f227983a70b97bd9b37b06793ce95cdabd3e4404a30e50807c946112ce948b948f945f9442946001600160401b03928316949193921691612fef565b60405180910390a350505050505050565b6112e7611f45565b5f8054610100600160a81b0319166101006001600160a01b0384169081029190911790915560405142815233907f5f83dd8281b215414cd8a5cc0daaa55e311d177df70e155237fe1893e98ee4d99060200160405180910390a350565b600654600160e01b900460ff1661136e57604051634fa8028360e01b815260040160405180910390fd5b6007546001600160401b031634101561139a576040516306fb546b60e31b815260040160405180910390fd5b6001600160a01b0381165f908152600860205260409020600581015460ff166113d65760405163d2d7f84160e01b815260040160405180910390fd5b6113df8161238b565b156113e8575050565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa15801561142c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114509190613038565b60038301805460075467ffffffffffffffff198083169093556001860180549093169092555f6002860181905585559192506001600160401b039182169116846001600160a01b0316638a8c523c6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156114c7575f5ffd5b505af11580156114d9573d5f5f3e3d5ffd5b505050506001600160401b038116156115125760065461151290600160401b90046001600160a01b03166001600160401b038316612235565b600b5f9054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004015f604051808303818588803b15801561155f575f5ffd5b505af1158015611571573d5f5f3e3d5ffd5b5050600a5461158f93508892506001600160a01b03169050856123ce565b600b54600a546115ac916001600160a01b039081169116846123ce565b600b545f9081906001600160a01b03908116908816106115d857600b546001600160a01b0316876115e7565b600b5487906001600160a01b03165b600b5491935091505f9081906001600160a01b03908116908a161061160d578587611610565b86865b915091505f604051806101600160405280866001600160a01b03168152602001856001600160a01b03168152602001610bb862ffffff168152602001620d89b31960020b8152602001620d89b460020b8152602001848152602001838152602001606485605f6116809190612e05565b61168a9190612e30565b8152602001606461169c85605f612e05565b6116a69190612e30565b815230602082015242604091820152600a549051634418b22b60e11b81529192505f916001600160a01b03909116906388316456906116e990859060040161304f565b6080604051808303815f875af1158015611705573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117299190613113565b5050600a546040516323b872dd60e01b815230600482015261dead6024820152604481018490529293506001600160a01b0316916323b872dd91506064015f604051808303815f87803b15801561177e575f5ffd5b505af1158015611790573d5f5f3e3d5ffd5b50506040516370a0823160e01b81523060048201525f92506001600160a01b038e1691506370a0823190602401602060405180830381865afa1580156117d8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117fc9190613038565b9050801561181c5760015461181c908d906001600160a01b031683612456565b600b546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015611862573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118869190613038565b905080156118ab57600b546001546118ab916001600160a01b03908116911683612456565b600a546040805163c45a015560e01b815290515f926001600160a01b03169163c45a01559160048083019260209291908290030181865afa1580156118f2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119169190612f52565b6001600160a01b0316631698ee828f600b5f9054906101000a90046001600160a01b0316610bb86040518463ffffffff1660e01b815260040161197f939291906001600160a01b03938416815291909216602082015262ffffff91909116604082015260600190565b602060405180830381865afa15801561199a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119be9190612f52565b9050806001600160a01b03168e6001600160a01b0316336001600160a01b03167f07ca1e8cb5a0097ee526b6d231adc11b67912789ddfad36700e4cc397d11cac88f8f8f42604051611a3394939291909384526001600160401b03928316602085015291166040830152606082015260800190565b60405180910390a45050505050505050505050505050565b345f03611a6b57604051630a445ee360e01b815260040160405180910390fd5b6001600160a01b0383165f908152600860205260409020600581015460ff1615611aa85760405163cf6228ff60e01b815260040160405180910390fd5b6006545f9061271090611ac4906001600160401b031634612e05565b611ace9190612e30565b90505f611adb8234612df2565b6003840154909150673782dace9d90000090611b019083906001600160401b0316612fdc565b1115611b2057604051630e59293f60e21b815260040160405180910390fd5b60018301545f90611b3b9083906001600160401b0316612fdc565b8454611b48908490612e05565b611b529190612e30565b90508360020154811115611b67575060028301545b85811015611b88576040516301be9b0160e71b815260040160405180910390fd5b80845f015f828254611b9a9190612df2565b9250508190555080846002015f828254611bb49190612df2565b90915550506001840180548391905f90611bd89084906001600160401b031661315a565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555081846003015f8282829054906101000a90046001600160401b0316611c21919061315a565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555083600201545f1480611c6e57506003840154673782dace9d9000006001600160401b0390911610155b15611ccd5760058401805460ff191660011790556040516001600160a01b0380891691908716907f35c1d7a8038046d5948da60a319d153de0582fd86f9244e07cfe5cb70e5c4e9790611cc49042815260200190565b60405180910390a35b611cd8878683612456565b611ce28784612283565b6005840154610100900460ff1615611d7c576001600160a01b0385165f9081526009602052604081208054349290611d1b908490612fdc565b90915550506001600160a01b038581165f818152600960209081526040918290205482513481529182015242818301529051928a16927f3bd2ab76fe1372c52624369987e36e0eeec418adb4cce644c1ff1e92c88526cf9181900360600190a35b6001848101548554600387015460028801546040516001600160a01b03808c1696908e16957f32f6fbd2517735f227983a70b97bd9b37b06793ce95cdabd3e4404a30e50807c956112ce958b958b9542946001600160401b039081169493169190612fef565b6001600160a01b0382165f908152600860205260408120600654829061271090611e19906001600160401b03908116908716612e05565b611e239190612e30565b90505f611e39826001600160401b038716612df2565b6001840154909150611e559082906001600160401b0316612fdc565b8354611e62908390612e05565b611e6c9190612e30565b9695505050505050565b611e7e611f45565b6001600160a01b038116611ea5576040516305972dd960e31b815260040160405180910390fd5b600180546001600160a01b038381166001600160a01b03198316811790935560405191169190829033907f853665966f61ace5d8d2ab7692107c77e747f9212327ee0c28f61de24ecc658090611efe9042815260200190565b60405180910390a45050565b611f12611f45565b6001600160a01b039091165f90815260086020526040902060050180549115156101000261ff0019909216919091179055565b5f5461010090046001600160a01b03163314611f745760405163ea8e4eb560e01b815260040160405180910390fd5b565b600182015482545f916001600160401b031690611f938482612fdc565b611f9d8386612e05565b611fa79190612e30565b95945050505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061203657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661202a5f5160206145075f395f51905f52546001600160a01b031690565b6001600160a01b031614155b15611f745760405163703e46dd60e11b815260040160405180910390fd5b61205c611f45565b50565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156120b9575060408051601f3d908101601f191682019092526120b691810190613038565b60015b6120e657604051634c9c8ce360e01b81526001600160a01b03831660048201526024015b60405180910390fd5b5f5160206145075f395f51905f52811461211657604051632a87526960e21b8152600481018290526024016120dd565b61212083836124df565b505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611f745760405163703e46dd60e11b815260040160405180910390fd5b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610ad8565b5f8215806121a2575081155b156121c0576040516323d359a360e01b815260040160405180910390fd5b600b546001600160a01b03908116908516105f81156121ef576121e884600160c01b87612534565b9050612201565b6121fe85600160c01b86612534565b90505b5f61220b826125e4565b90506001600160a01b03811115611e6c57604051631a93c68960e11b815260040160405180910390fd5b5f5f5f5f5f85875af19050806121205760405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b60448201526064016120dd565b805f036122a357604051639a7ac21b60e01b815260040160405180910390fd5b5f6122b0601e604661315a565b6001600160401b03166122c4604684612e05565b6122ce9190612e30565b90505f6122db8284612df2565b90508115806122e8575080155b1561230657604051639a7ac21b60e01b815260040160405180910390fd5b60015461231c906001600160a01b031683612235565b612385846001600160a01b03166302d05d3f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561235b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061237f9190612f52565b82612235565b50505050565b60038101545f906001600160401b03161580156123b3575060018201546001600160401b0316155b80156123c157506002820154155b8015610ad8575050541590565b5f60405163095ea7b360e01b81526001600160a01b038416600482015282602482015260205f6044835f895af191505080601f3d1160015f5114161516156124185750823b153d17155b806123855760405162461bcd60e51b815260206004820152600e60248201526d1054141493d59157d1905253115160921b60448201526064016120dd565b5f60405163a9059cbb60e01b81526001600160a01b038416600482015282602482015260205f6044835f895af191505080601f3d1160015f5114161516156124a05750823b153d17155b806123855760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b60448201526064016120dd565b6124e882612737565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a280511561252c57612120828261279a565b610b2161283a565b5f5f5f6125418686612859565b91509150815f036125655783818161255b5761255b612e1c565b0492505050610aff565b81841161257c5761257c6003851502601118612875565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b5f600182116125f1575090565b816001600160801b821061260a5760809190911c9060401b5b600160401b82106126205760409190911c9060201b5b64010000000082106126375760209190911c9060101b5b62010000821061264c5760109190911c9060081b5b61010082106126605760089190911c9060041b5b601082106126735760049190911c9060021b5b6004821061267f5760011b5b600302600190811c9081858161269757612697612e1c565b048201901c905060018185816126af576126af612e1c565b048201901c905060018185816126c7576126c7612e1c565b048201901c905060018185816126df576126df612e1c565b048201901c905060018185816126f7576126f7612e1c565b048201901c9050600181858161270f5761270f612e1c565b048201901c905061272e81858161272857612728612e1c565b04821190565b90039392505050565b806001600160a01b03163b5f0361276c57604051634c9c8ce360e01b81526001600160a01b03821660048201526024016120dd565b5f5160206145075f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f6127a78484612886565b90508080156127c857505f3d11806127c857505f846001600160a01b03163b115b156127dd576127d5612899565b915050610ad8565b801561280757604051639996b31560e01b81526001600160a01b03851660048201526024016120dd565b3d1561281a576128156128b2565b612833565b60405163d6bda27560e01b815260040160405180910390fd5b5092915050565b3415611f745760405163b398979f60e01b815260040160405180910390fd5b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b5f5f5f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b61138d8061317a83390190565b5f6101208284031280156128dc575f5ffd5b509092915050565b80356001600160401b03811681146128fa575f5ffd5b919050565b5f6020828403121561290f575f5ffd5b610aff826128e4565b6001600160a01b038116811461205c575f5ffd5b5f5f6040838503121561293d575f5ffd5b823561294881612918565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b5f5f6040838503121561297b575f5ffd5b823561298681612918565b915060208301356001600160401b038111156129a0575f5ffd5b8301601f810185136129b0575f5ffd5b80356001600160401b038111156129c9576129c9612956565b604051601f8201601f19908116603f011681016001600160401b03811182821017156129f7576129f7612956565b604052818152828201602001871015612a0e575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f5f83601f840112612a3d575f5ffd5b5081356001600160401b03811115612a53575f5ffd5b602083019150836020828501011115612a6a575f5ffd5b9250929050565b5f5f5f5f5f5f5f5f60a0898b031215612a88575f5ffd5b88356001600160401b03811115612a9d575f5ffd5b612aa98b828c01612a2d565b90995097505060208901356001600160401b03811115612ac7575f5ffd5b612ad38b828c01612a2d565b90975095505060408901356001600160401b03811115612af1575f5ffd5b612afd8b828c01612a2d565b9095509350506060890135612b1181612918565b979a9699509497939692959194509192608001359150565b5f5f60408385031215612b3a575f5ffd5b8235612b4581612918565b91506020830135612b5581612918565b809150509250929050565b5f5f5f5f5f5f5f6080888a031215612b76575f5ffd5b87356001600160401b03811115612b8b575f5ffd5b612b978a828b01612a2d565b90985096505060208801356001600160401b03811115612bb5575f5ffd5b612bc18a828b01612a2d565b90965094505060408801356001600160401b03811115612bdf575f5ffd5b612beb8a828b01612a2d565b9094509250506060880135612bff81612918565b8091505092959891949750929550565b5f60208284031215612c1f575f5ffd5b8135610aff81612918565b8b151581526001600160a01b038b811660208301528a81166040830152606082018a90526001600160401b03898116608084015260a0830189905260c08301889052861660e0830152841661010082015282151561012082015261016081016001600160401b0383166101408301525b9c9b505050505050505050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f5f5f60608486031215612cf1575f5ffd5b8335612cfc81612918565b925060208401359150612d11604085016128e4565b90509250925092565b5f5f5f60608486031215612d2c575f5ffd5b8335612d3781612918565b9250602084013591506040840135612d4e81612918565b809150509250925092565b5f5f60408385031215612d6a575f5ffd5b8235612d7581612918565b9150612d83602084016128e4565b90509250929050565b803580151581146128fa575f5ffd5b5f5f60408385031215612dac575f5ffd5b8235612db781612918565b9150612d8360208401612d8c565b5f60208284031215612dd5575f5ffd5b610aff82612d8c565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610ad857610ad8612dde565b8082028115828204841417610ad857610ad8612dde565b634e487b7160e01b5f52601260045260245ffd5b5f82612e4a57634e487b7160e01b5f52601260045260245ffd5b500490565b8b81526001600160401b038b81166020830152604082018b905289811660608301526080820189905287811660a08301526001600160a01b03871660c083015285151560e083015284166101008201526101608101612eba6101208301856001600160a01b03169052565b826101408301529c9b505050505050505050505050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b60c081525f612f0c60c083018b8d612ed1565b8281036020840152612f1f818a8c612ed1565b604084018990526001600160a01b0388811660608601528716608085015283810360a08501529050612c9a818587612ed1565b5f60208284031215612f62575f5ffd5b8151610aff81612918565b608081525f612f8060808301898b612ed1565b8281036020840152612f9381888a612ed1565b90508281036040840152612fa8818688612ed1565b91505082606083015298975050505050505050565b6001600160401b038281168282160390811115610ad857610ad8612dde565b80820180821115610ad857610ad8612dde565b6001600160401b039889168152602081019790975294151560408701526060860193909352908516608085015260a084015290921660c082015260e08101919091526101000190565b5f60208284031215613048575f5ffd5b5051919050565b81516001600160a01b031681526101608101602083015161307b60208401826001600160a01b03169052565b506040830151613092604084018262ffffff169052565b5060608301516130a7606084018260020b9052565b5060808301516130bc608084018260020b9052565b5060a083015160a083015260c083015160c083015260e083015160e08301526101008301516101008301526101208301516131036101208401826001600160a01b03169052565b5061014092830151919092015290565b5f5f5f5f60808587031215613126575f5ffd5b845160208601519094506001600160801b0381168114613144575f5ffd5b6040860151606090960151949790965092505050565b6001600160401b038181168382160190811115610ad857610ad8612dde56fe60e060405234801561000f575f5ffd5b5060405161138d38038061138d83398101604081905261002e916102f8565b82868660125f61003e8482610433565b50600161004b8382610433565b5060ff81166080524660a05261005f6100ee565b60c0525050506001600160a01b03811661009257604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61009b81610186565b50600980546001600160a01b038086166001600160a01b031992831617909255600880549285169290911691909117905560076100d88282610433565b506100e383856101d7565b505050505050610583565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f60405161011e91906104ed565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b8060025f8282546101e8919061055e565b90915550506001600160a01b0382165f818152600360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610263575f5ffd5b81516001600160401b0381111561027c5761027c610240565b604051601f8201601f19908116603f011681016001600160401b03811182821017156102aa576102aa610240565b6040528181528382016020018510156102c1575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b80516001600160a01b03811681146102f3575f5ffd5b919050565b5f5f5f5f5f5f60c0878903121561030d575f5ffd5b86516001600160401b03811115610322575f5ffd5b61032e89828a01610254565b602089015190975090506001600160401b0381111561034b575f5ffd5b61035789828a01610254565b9550506040870151935061036d606088016102dd565b925061037b608088016102dd565b60a08801519092506001600160401b03811115610396575f5ffd5b6103a289828a01610254565b9150509295509295509295565b600181811c908216806103c357607f821691505b6020821081036103e157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561042e57805f5260205f20601f840160051c8101602085101561040c5750805b601f840160051c820191505b8181101561042b575f8155600101610418565b50505b505050565b81516001600160401b0381111561044c5761044c610240565b6104608161045a84546103af565b846103e7565b6020601f821160018114610492575f831561047b5750848201515b5f19600385901b1c1916600184901b17845561042b565b5f84815260208120601f198516915b828110156104c157878501518255602094850194600190920191016104a1565b50848210156104de57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f5f83546104fa816103af565b600182168015610511576001811461052657610553565b60ff1983168652811515820286019350610553565b865f5260205f205f5b8381101561054b5781548882015260019091019060200161052f565b505081860193505b509195945050505050565b8082018082111561057d57634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a05160c051610de06105ad5f395f61046401525f61042f01525f6101cd0152610de05ff3fe608060405234801561000f575f5ffd5b5060043610610132575f3560e01c80637ecebe00116100b4578063c45a015511610079578063c45a015514610299578063d505accf146102ac578063dd62ed3e146102bf578063dfb98e66146102e9578063eac989f8146102fc578063f2fde38b14610304575f5ffd5b80637ecebe00146102465780638a8c523c146102655780638da5cb5b1461026d57806395d89b411461027e578063a9059cbb14610286575f5ffd5b8063313ce567116100fa578063313ce567146101c85780633644e515146102015780634ada218b1461020957806370a082311461021d578063715018a61461023c575f5ffd5b806302d05d3f1461013657806306fdde0314610166578063095ea7b31461017b57806318160ddd1461019e57806323b872dd146101b5575b5f5ffd5b600854610149906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61016e610317565b60405161015d9190610b4e565b61018e610189366004610b9e565b6103a2565b604051901515815260200161015d565b6101a760025481565b60405190815260200161015d565b61018e6101c3366004610bc6565b61040e565b6101ef7f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff909116815260200161015d565b6101a761042c565b60095461018e90600160a01b900460ff1681565b6101a761022b366004610c00565b60036020525f908152604090205481565b610244610486565b005b6101a7610254366004610c00565b60056020525f908152604090205481565b610244610499565b6006546001600160a01b0316610149565b61016e6104b6565b61018e610294366004610b9e565b6104c3565b600954610149906001600160a01b031681565b6102446102ba366004610c19565b6104df565b6101a76102cd366004610c86565b600460209081525f928352604080842090915290825290205481565b6102446102f7366004610bc6565b610722565b61016e610806565b610244610312366004610c00565b610813565b5f805461032390610cb7565b80601f016020809104026020016040519081016040528092919081815260200182805461034f90610cb7565b801561039a5780601f106103715761010080835404028352916020019161039a565b820191905f5260205f20905b81548152906001019060200180831161037d57829003601f168201915b505050505081565b335f8181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103fc9086815260200190565b60405180910390a35060015b92915050565b5f6104198484610850565b6104248484846108d5565b949350505050565b5f7f000000000000000000000000000000000000000000000000000000000000000046146104615761045c6109c2565b905090565b507f000000000000000000000000000000000000000000000000000000000000000090565b61048e610a5a565b6104975f610a87565b565b6104a1610a5a565b6009805460ff60a01b1916600160a01b179055565b6001805461032390610cb7565b5f6104ce3384610850565b6104d88383610ad8565b9392505050565b428410156105345760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f4558504952454400000000000000000060448201526064015b60405180910390fd5b5f600161053f61042c565b6001600160a01b038a81165f8181526005602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e08301909152805192019190912061190160f01b6101008301526101028201929092526101228101919091526101420160408051601f1981840301815282825280516020918201205f84529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610647573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b0381161580159061067d5750876001600160a01b0316816001600160a01b0316145b6106ba5760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b604482015260640161052b565b6001600160a01b039081165f9081526004602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b600954600160a01b900460ff161561074d57604051636b91f55d60e11b815260040160405180910390fd5b6009546001600160a01b0316331461077857604051630636a15760e11b815260040160405180910390fd5b6001600160a01b0383165f908152600360205260408120805483929061079f908490610cef565b90915550506001600160a01b038083165f81815260036020526040908190208054850190555190918516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107f99085815260200190565b60405180910390a3505050565b6007805461032390610cb7565b61081b610a5a565b6001600160a01b03811661084457604051631e4fbdf760e01b81525f600482015260240161052b565b61084d81610a87565b50565b600954600160a01b900460ff1615610866575050565b6009546001600160a01b038381169116148061088f57506009546001600160a01b038281169116145b806108a157506001600160a01b038216155b806108b357506001600160a01b038116155b156108bc575050565b6040516312f1f92360e01b815260040160405180910390fd5b6001600160a01b0383165f9081526004602090815260408083203384529091528120545f19811461092e5761090a8382610cef565b6001600160a01b0386165f9081526004602090815260408083203384529091529020555b6001600160a01b0385165f9081526003602052604081208054859290610955908490610cef565b90915550506001600160a01b038085165f81815260036020526040908190208054870190555190918716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906109af9087815260200190565b60405180910390a3506001949350505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f6040516109f29190610d0e565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6006546001600160a01b031633146104975760405163118cdaa760e01b815233600482015260240161052b565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b335f90815260036020526040812080548391908390610af8908490610cef565b90915550506001600160a01b0383165f81815260036020526040908190208054850190555133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906103fc9086815260200190565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114610b99575f5ffd5b919050565b5f5f60408385031215610baf575f5ffd5b610bb883610b83565b946020939093013593505050565b5f5f5f60608486031215610bd8575f5ffd5b610be184610b83565b9250610bef60208501610b83565b929592945050506040919091013590565b5f60208284031215610c10575f5ffd5b6104d882610b83565b5f5f5f5f5f5f5f60e0888a031215610c2f575f5ffd5b610c3888610b83565b9650610c4660208901610b83565b95506040880135945060608801359350608088013560ff81168114610c69575f5ffd5b9699959850939692959460a0840135945060c09093013592915050565b5f5f60408385031215610c97575f5ffd5b610ca083610b83565b9150610cae60208401610b83565b90509250929050565b600181811c90821680610ccb57607f821691505b602082108103610ce957634e487b7160e01b5f52602260045260245ffd5b50919050565b8181038181111561040857634e487b7160e01b5f52601160045260245ffd5b5f5f83545f8160011c90506001821680610d2957607f821691505b602082108103610d4757634e487b7160e01b5f52602260045260245ffd5b808015610d5b5760018114610d7057610d9e565b60ff1984168752821515830287019450610d9e565b5f888152602090205f5b84811015610d9657815489820152600190910190602001610d7a565b505082870194505b5092969550505050505056fea264697066735822122000073beb8f85b375519ffa509213774bfa5686d67bfcb2c17d3c3bb6091a611a64736f6c634300081e0033360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212208bbf4457b6a96380c862967e3a6a21bc753a39ad48cc7fcac57d130d394d086f64736f6c634300081e0033",
899
+ "sourceMap": "979:22771:49:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7644:2304;;;;;;;;;;-1:-1:-1;7644:2304:49;;;;;:::i;:::-;;:::i;:::-;;20076:149;;;;;;;;;;-1:-1:-1;20076:149:49;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;787:47:66;;;769:66;;757:2;742:18;20076:149:49;;;;;;;;19911:159;;;;;;;;;;-1:-1:-1;19911:159:49;;;;;:::i;:::-;;:::i;4145:41::-;;;;;;;;;;;;4180:6;4145:41;;;;;1621:1:66;1610:21;;;;1592:40;;1580:2;1565:18;4145:41:49;1450:188:66;4083:42:49;;;;;;;;;;;;-1:-1:-1;;4083:42:49;;3911:214:31;;;;;;:::i;:::-;;:::i;3998:19:49:-;;;;;;;;;;-1:-1:-1;3998:19:49;;;;-1:-1:-1;;;;;3998:19:49;;;;;;-1:-1:-1;;;;;3039:32:66;;;3021:51;;3009:2;2994:18;3998:19:49;2859:219:66;3466:126:31;;;;;;;;;;;;;:::i;:::-;;;3229:25:66;;;3217:2;3202:18;3466:126:31;3083:177:66;11622:317:49;;;;;;:::i;:::-;;:::i;6531:241::-;;;;;;;;;;-1:-1:-1;6531:241:49;;;;;:::i;:::-;;:::i;6285:185::-;;;;;;;;;;;;;:::i;10078:1462::-;;;;;;;;;;-1:-1:-1;10078:1462:49;;;;;:::i;:::-;;:::i;20231:134::-;;;;;;;;;;-1:-1:-1;20231:134:49;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20338:20:49;;;;;:13;:20;;;;;;;;;20331:27;;;;;;;;;;;;;;;-1:-1:-1;;;;;20331:27:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20231:134;;;;;;;7382:4:66;7424:3;7413:9;7409:19;7401:27;;7461:6;7455:13;7444:9;7437:32;-1:-1:-1;;;;;7529:4:66;7521:6;7517:17;7511:24;7507:49;7500:4;7489:9;7485:20;7478:79;7613:4;7605:6;7601:17;7595:24;7588:4;7577:9;7573:20;7566:54;-1:-1:-1;;;;;7680:4:66;7672:6;7668:17;7662:24;7658:49;7651:4;7640:9;7636:20;7629:79;7764:4;7756:6;7752:17;7746:24;7739:4;7728:9;7724:20;7717:54;7841:4;7833:6;7829:17;7823:24;7816:32;7809:40;7802:4;7791:9;7787:20;7780:70;7920:4;7912:6;7908:17;7902:24;7895:32;7888:40;7881:4;7870:9;7866:20;7859:70;7228:707;;;;;4023:46:49;;;;;;;;;;;;4065:4;4023:46;;;;;8211:8:66;8199:21;;;8181:40;;8169:2;8154:18;4023:46:49;8037:190:66;3748:20:49;;;;;;;;;;-1:-1:-1;3748:20:49;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3748:20:49;;;;;;;;;;;;;-1:-1:-1;;;;;3748:20:49;;;;;;;;;;;;-1:-1:-1;;;3748:20:49;;;;-1:-1:-1;;;3748:20:49;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3838:57::-;;;;;;;;;;-1:-1:-1;3838:57:49;;;;;:::i;:::-;;;;;;;;;;;;;;1732:58:31;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1732:58:31;;;;;;;;;;;;:::i;14356:1616:49:-;;;;;;;;;;-1:-1:-1;14356:1616:49;;;;;:::i;:::-;;:::i;3931:61::-;;;;;;;;;;-1:-1:-1;3931:61:49;;;;-1:-1:-1;;;;;3931:61:49;;;6972:208;;;;;;;;;;-1:-1:-1;6972:208:49;;;;;:::i;:::-;;:::i;3774:58::-;;;;;;;;;;-1:-1:-1;3774:58:49;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3774:58:49;;;;;;;;;;;;;;;;;;;;;;;;;10873:25:66;;;-1:-1:-1;;;;;10934:31:66;;;10929:2;10914:18;;10907:59;10982:18;;10975:34;;;;11045:31;;;;11040:2;11025:18;;11018:59;11108:3;11093:19;;11086:35;11165:14;;11158:22;11152:3;11137:19;;11130:51;11225:14;11218:22;11212:3;11197:19;;11190:51;10860:3;10845:19;3774:58:49;10574:673:66;16320:3152:49;;;;;;:::i;:::-;;:::i;12035:2269::-;;;;;;:::i;:::-;;:::i;19522:383::-;;;;;;;;;;-1:-1:-1;19522:383:49;;;;;:::i;:::-;;:::i;7228:371::-;;;;;;;;;;-1:-1:-1;7228:371:49;;;;;:::i;:::-;;:::i;16023:135::-;;;;;;;;;;-1:-1:-1;16023:135:49;;;;;:::i;:::-;;:::i;7644:2304::-;6044:16;:14;:16::i;:::-;7759:6:::1;:31;;;7732:6;:23;;;:58;7728:154;;7813:58;;-1:-1:-1::0;;;7813:58:49::1;;;;;;;;;;;7728:154;7933:31;::::0;::::1;;7895:34:::0;::::1;:69;7891:179;;7987:72;;-1:-1:-1::0;;;7987:72:49::1;;;;;;;;;;;7891:179;2280:5;8083:21;::::0;;;::::1;::::0;::::1;;:::i;:::-;-1:-1:-1::0;;;;;8083:44:49::1;;8079:116;;;8150:34;;-1:-1:-1::0;;;8150:34:49::1;;;;;;;;;;;8079:116;8244:1;8208:24;::::0;;;::::1;::::0;::::1;;:::i;:::-;-1:-1:-1::0;;;;;8208:38:49::1;::::0;8204:103:::1;;8269:27;;-1:-1:-1::0;;;8269:27:49::1;;;;;;;;;;;8204:103;8343:23;::::0;::::1;;8317;:49:::0;8413:34;::::1;8376;:71:::0;8491:31:::1;::::0;::::1;::::0;::::1;8457;:65:::0;8567:32:::1;::::0;::::1;::::0;::::1;;:::i;:::-;8532;:67:::0;;-1:-1:-1;;8532:67:49::1;-1:-1:-1::0;;;;;8532:67:49;;;::::1;::::0;;;::::1;::::0;;8633:21:::1;::::0;;;::::1;::::0;::::1;;:::i;:::-;8609;:45:::0;;-1:-1:-1;;8609:45:49::1;-1:-1:-1::0;;;;;8609:45:49;;;::::1;::::0;;;::::1;::::0;;8691:24:::1;::::0;;;::::1;::::0;::::1;;:::i;:::-;8664;:51:::0;;-1:-1:-1;;;;;8664:51:49;;;::::1;-1:-1:-1::0;;;8664:51:49::1;-1:-1:-1::0;;;;;;8664:51:49;;::::1;::::0;;;::::1;::::0;;8748:20:::1;::::0;;;::::1;::::0;::::1;;:::i;:::-;8725;:43:::0;;;::::1;;-1:-1:-1::0;;;8725:43:49::1;-1:-1:-1::0;;;;8725:43:49;;::::1;::::0;;;::::1;::::0;;:6:::1;8903:68;8940:31;::::0;::::1;;8903:34:::0;::::1;:68;:::i;:::-;8855:31;::::0;::::1;::::0;::::1;::::0;8819:32:::1;::::0;::::1;::::0;::::1;;:::i;:::-;-1:-1:-1::0;;;;;8811:41:49::1;:75;;;;:::i;:::-;8810:162;;;;:::i;:::-;8779:193:::0;-1:-1:-1;9011:23:49::1;::::0;;;::::1;::::0;::::1;;:::i;:::-;-1:-1:-1::0;;;;;8987:47:49::1;:20;:47;8983:139;;9057:54;;-1:-1:-1::0;;;9057:54:49::1;;;;;;;;;;;8983:139;2326:19;9135:23;::::0;;;::::1;::::0;::::1;;:::i;:::-;-1:-1:-1::0;;;;;9135:43:49::1;;9131:146;;9201:65;;-1:-1:-1::0;;;9201:65:49::1;;;;;;;;;;;9131:146;9313:23;::::0;;;::::1;::::0;::::1;;:::i;:::-;9287;:49:::0;;-1:-1:-1;;9287:49:49::1;-1:-1:-1::0;;;;;9287:49:49;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;9351:19:49::1;::::0;;;9287:49:::1;9351:19:::0;::::1;;:::i;:::-;-1:-1:-1::0;;;;;9351:33:49::1;::::0;9347:79:::1;;9393:33;;-1:-1:-1::0;;;9393:33:49::1;;;;;;;;;;;9347:79;9458:19;::::0;;;::::1;::::0;::::1;;:::i;:::-;9436;:41:::0;;-1:-1:-1;;;;;;9436:41:49::1;-1:-1:-1::0;;;;;9436:41:49;;;::::1;::::0;;;::::1;::::0;;9493:448:::1;9521:34:::0;::::1;9569:32;::::0;;;::::1;::::0;::::1;;:::i;:::-;9615:31;::::0;::::1;;9667:20:::0;9702:23:::1;::::0;::::1;;9739:21;::::0;;;::::1;::::0;::::1;;:::i;:::-;9774:24;::::0;;;::::1;::::0;::::1;;:::i;:::-;9812:20;::::0;;;::::1;::::0;::::1;;:::i;:::-;9846:23;::::0;;;::::1;::::0;::::1;;:::i;:::-;9883:19;::::0;;;::::1;::::0;::::1;;:::i;:::-;9916:15;9493:448;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;7718:2230;7644:2304:::0;:::o;20076:149::-;20187:21;;20130:11;;20212:5;;20169:39;;-1:-1:-1;;;;;20187:21:49;;;;20169:15;;:39;:::i;:::-;20168:49;;;;:::i;:::-;20153:65;20076:149;-1:-1:-1;;20076:149:49:o;19911:159::-;-1:-1:-1;;;;;20034:20:49;;19987:17;20034:20;;;:13;:20;;;;;20023:40;;20056:6;20023:10;:40::i;:::-;20016:47;19911:159;-1:-1:-1;;;19911:159:49:o;3911:214:31:-;2568:13;:11;:13::i;:::-;4026:36:::1;4044:17;4026;:36::i;:::-;4072:46;4094:17;4113:4;4072:21;:46::i;:::-;3911:214:::0;;:::o;3466:126::-;3527:7;2839:20;:18;:20::i;:::-;-1:-1:-1;;;;;;;;;;;;3466:126:31;:::o;11622:317:49:-;11822:13;11855:34;11862:4;;11868:6;;11876:3;;11881:7;11855:6;:34::i;:::-;11847:42;;11899:33;11903:5;11910:12;11924:7;11899:3;:33::i;:::-;11622:317;;;;;;;;;;:::o;6531:241::-;6044:16;:14;:16::i;:::-;6648:26:::1;:85:::0;;-1:-1:-1;;;;;6648:85:49;;::::1;-1:-1:-1::0;;;;;;6648:85:49;;::::1;;::::0;;;6743:5:::1;:22:::0;;;;;::::1;::::0;::::1;;::::0;;6531:241::o;6285:185::-;4158:30:30;4191:26;:24;:26::i;:::-;4302:15;;4158:59;;-1:-1:-1;4302:15:30;-1:-1:-1;;;4302:15:30;;;4301:16;;-1:-1:-1;;;;;4348:14:30;4279:19;4724:16;;:34;;;;;4744:14;4724:34;4704:54;;4768:17;4788:11;-1:-1:-1;;;;;4788:16:30;4803:1;4788:16;:50;;;;-1:-1:-1;4816:4:30;4808:25;:30;4788:50;4768:70;;4854:12;4853:13;:30;;;;;4871:12;4870:13;4853:30;4849:91;;;4906:23;;-1:-1:-1;;;4906:23:30;;;;;;;;;;;4849:91;4949:18;;-1:-1:-1;;4949:18:30;4966:1;4949:18;;;4977:67;;;;5011:22;;-1:-1:-1;;;;5011:22:30;-1:-1:-1;;;5011:22:30;;;4977:67;6342:6:49::1;:18:::0;::::1;;6338:51;;;6369:20;;-1:-1:-1::0;;;6369:20:49::1;;;;;;;;;;;6338:51;6399:6;:29:::0;;-1:-1:-1;;6399:29:49::1;6418:10;6399:29;6438:25:::0;-1:-1:-1;;;;;;6438:25:49;;;;6399:16:::1;6438:25;::::0;;5064:101:30;;;;5098:23;;-1:-1:-1;;;;5098:23:30;;;5140:14;;-1:-1:-1;14746:50:66;;5140:14:30;;14734:2:66;14719:18;5140:14:30;;;;;;;5064:101;4092:1079;;;;;6285:185:49:o;10078:1462::-;10210:13;-1:-1:-1;;;;;10243:21:49;;10239:58;;10273:24;;-1:-1:-1;;;10273:24:49;;;;;;;;;;;10239:58;10366:4;;10372:6;;10380;:23;;;10413:4;10420:7;10429:3;;10351:82;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10519:20:49;;10490:26;10519:20;;;:13;:20;;;;;10578:34;;;10549:63;;10649:32;;;;10622:24;;:59;;-1:-1:-1;;;;;10649:32:49;;;-1:-1:-1;;10622:59:49;;;;;;10717:31;;;10691:23;;;:57;;;;10758:21;;;:25;;;;;;;10818:23;;;10793:22;;;:48;;;;10851:14;;:22;;-1:-1:-1;;10851:22:49;;;10919:20;;10519;;-1:-1:-1;10519:20:49;10851:22;-1:-1:-1;;;10919:20:49;;;;10915:528;;;11164:26;;:36;;;-1:-1:-1;;;11164:36:49;;;;11131:12;;-1:-1:-1;;;;;11164:26:49;;:34;;:36;;;;;;;;;;;;;;:26;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11245:5;;11146:124;;-1:-1:-1;;;11146:124:49;;-1:-1:-1;;;;;16454:32:66;;;11146:124:49;;;16436:51:66;11245:5:49;;;16503:18:66;;;16496:60;4065:4:49;16572:18:66;;;16565:49;11146:83:49;;;;;16409:18:66;;11146:124:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11131:139;;11285:20;11308:65;11331:5;2606:18;2525:7;11308:22;:65::i;:::-;11387:45;;-1:-1:-1;;;11387:45:49;;-1:-1:-1;;;;;3039:32:66;;;11387:45:49;;;3021:51:66;11285:88:49;;-1:-1:-1;11387:31:49;;;;;;2994:18:66;;11387:45:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10941:502;;10915:528;11508:7;-1:-1:-1;;;;;11458:75:49;11496:10;-1:-1:-1;;;;;11458:75:49;11489:5;-1:-1:-1;;;;;11458:75:49;;11470:4;;11476:6;;11484:3;;11517:15;11458:75;;;;;;;;;;;;:::i;:::-;;;;;;;;10229:1311;10078:1462;;;;;;;;;:::o;14356:1616::-;-1:-1:-1;;;;;14470:20:49;;14441:26;14470:20;;;:13;:20;;;;;14505:14;;;;;;14501:49;;;14528:22;;-1:-1:-1;;;14528:22:49;;;;;;;;;;;14501:49;14564:6;14574:1;14564:11;14560:40;;14584:16;;-1:-1:-1;;;14584:16:49;;;;;;;;;;;14560:40;14611:16;14637:25;14648:5;14655:6;14637:10;:25::i;:::-;14611:52;;14677:9;-1:-1:-1;;;;;14677:14:49;14690:1;14677:14;14673:47;;14700:20;;-1:-1:-1;;;14700:20:49;;;;;;;;;;;14673:47;14767:21;;14731:11;;14792:5;;14746:42;;-1:-1:-1;;;;;14767:21:49;;;;14746:18;;:42;:::i;:::-;14745:52;;;;:::i;:::-;14731:66;-1:-1:-1;14807:19:49;14829:23;14731:66;14829:9;:23;:::i;:::-;14807:45;;14882:12;-1:-1:-1;;;;;14867:27:49;:12;-1:-1:-1;;;;;14867:27:49;;14863:62;;;14903:22;;-1:-1:-1;;;14903:22:49;;;;;;;;;;;14863:62;14998:6;14968:5;:26;;;:36;;;;;;;:::i;:::-;;;;;;;;15041:6;15014:5;:23;;;:33;;;;;;;:::i;:::-;;;;-1:-1:-1;;15057:24:49;;;:37;;15085:9;;15057:24;;;:37;;15085:9;;-1:-1:-1;;;;;15057:37:49;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;15057:37:49;;;;;-1:-1:-1;;;;;15057:37:49;;;;;;15129:9;15104:5;:21;;;:34;;;;;;;;;;-1:-1:-1;;;;;15104:34:49;;;;;:::i;:::-;;;-1:-1:-1;;;;;15104:34:49;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15186:68:49;;-1:-1:-1;;;15186:68:49;;15220:10;15186:68;;;18069:51:66;15240:4:49;18136:18:66;;;18129:60;18205:18;;;18198:34;;;-1:-1:-1;;;;;15186:33:49;;;;;18042:18:66;;15186:68:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15297:57;15329:10;15341:12;-1:-1:-1;;;;;15297:57:49;:31;:57::i;:::-;15392:27;15408:5;15415:3;15392:15;:27::i;:::-;15458:17;;;;;;;;;15454:192;;;15502:10;15491:22;;;;:10;:22;;;;;:38;;-1:-1:-1;;;;;15491:38:49;;;:22;:38;;;;;:::i;:::-;;;;-1:-1:-1;;15562:10:49;15595:22;;;;:10;:22;;;;;;;;;;15548:87;;-1:-1:-1;;;;;18462:31:66;;18444:50;;18510:18;;;18503:34;15619:15:49;18553:18:66;;;18546:34;15548:87:49;;-1:-1:-1;;;;;15548:87:49;;;15562:10;15548:87;;;;;;18432:2:66;15548:87:49;;;15454:192;15819:24;;;;15857:26;;15897:21;;;;15932:23;;;;15661:304;;15766:10;;-1:-1:-1;;;;;15661:304:49;;;;;;;15704:9;;15727:6;;15747:5;;15790:15;;-1:-1:-1;;;;;15819:24:49;;;;15857:26;;15897:21;;;15661:304;:::i;:::-;;;;;;;;14431:1541;;;;14356:1616;;;:::o;6972:208::-;6044:16;:14;:16::i;:::-;7058:6:::1;:31:::0;;-1:-1:-1;;;;;;7058:31:49::1;;-1:-1:-1::0;;;;;7058:31:49;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;7104:69:::1;::::0;7157:15:::1;3229:25:66::0;;7131:10:49::1;::::0;7104:69:::1;::::0;3217:2:66;3202:18;7104:69:49::1;;;;;;;6972:208:::0;:::o;16320:3152::-;16384:20;;-1:-1:-1;;;16384:20:49;;;;16379:51;;16413:17;;-1:-1:-1;;;16413:17:49;;;;;;;;;;;16379:51;16456:23;;-1:-1:-1;;;;;16456:23:49;16444:9;:35;16440:74;;;16488:26;;-1:-1:-1;;;16488:26:49;;;;;;;;;;;16440:74;-1:-1:-1;;;;;16554:20:49;;16525:26;16554:20;;;:13;:20;;;;;16589:14;;;;;;16584:53;;16612:25;;-1:-1:-1;;;16612:25:49;;;;;;;;;;;16584:53;16651:18;16663:5;16651:11;:18::i;:::-;16647:31;;;16671:7;16320:3152;:::o;16647:31::-;16811:42;;-1:-1:-1;;;16811:42:49;;16847:4;16811:42;;;3021:51:66;16788:20:49;;-1:-1:-1;;;;;16811:27:49;;;;;2994:18:66;;16811:42:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16885:21;;;;;16967:23;;-1:-1:-1;;21540:25:49;;;;;;-1:-1:-1;21575:24:49;;:28;;;;;;;;-1:-1:-1;;21613:23:49;;:27;;;21650:30;;16788:65;;-1:-1:-1;;;;;;16885:21:49;;;;16967:23;17117:5;-1:-1:-1;;;;;17106:31:49;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;17227:20:49;;;17223:126;;17295:24;;17263:75;;-1:-1:-1;;;17295:24:49;;-1:-1:-1;;;;;17295:24:49;-1:-1:-1;;;;;17263:75:49;;:31;:75::i;:::-;17359:5;;;;;;;;;-1:-1:-1;;;;;17359:5:49;-1:-1:-1;;;;;17359:13:49;;17380:11;17359:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17455:26:49;;17405:92;;-1:-1:-1;17439:5:49;;-1:-1:-1;;;;;;17455:26:49;;-1:-1:-1;17484:12:49;17405:27;:92::i;:::-;17549:5;;17566:26;;17507:100;;-1:-1:-1;;;;;17549:5:49;;;;17566:26;17595:11;17507:27;:100::i;:::-;17698:5;;17648:14;;;;-1:-1:-1;;;;;17698:5:49;;;17682:22;;;;:74;;17742:5;;-1:-1:-1;;;;;17742:5:49;17750;17682:74;;;17723:5;;17708;;-1:-1:-1;;;;;17723:5:49;17682:74;17831:5;;17647:109;;-1:-1:-1;17647:109:49;-1:-1:-1;17767:15:49;;;;-1:-1:-1;;;;;17831:5:49;;;17815:22;;;;:82;;17871:11;17884:12;17815:82;;;17841:12;17855:11;17815:82;17766:131;;;;17908:52;17963:454;;;;;;;;18024:6;-1:-1:-1;;;;;17963:454:49;;;;;18052:6;-1:-1:-1;;;;;17963:454:49;;;;;4065:4;17963:454;;;;;;-1:-1:-1;;17963:454:49;;;;;;4180:6;17963:454;;;;;;18193:7;17963:454;;;;18230:7;17963:454;;;;18280:3;18264:7;18274:2;18264:12;;;;:::i;:::-;18263:20;;;;:::i;:::-;17963:454;;;;18326:3;18310:12;:7;18320:2;18310:12;:::i;:::-;18309:20;;;;:::i;:::-;17963:454;;18362:4;17963:454;;;;18391:15;17963:454;;;;;18451:26;;:39;;-1:-1:-1;;;18451:39:49;;17908:509;;-1:-1:-1;;;;;;;;18451:26:49;;;;:31;;:39;;17908:509;;18451:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;18664:26:49;;18648:98;;-1:-1:-1;;;18648:98:49;;18714:4;18648:98;;;18069:51:66;18729:6:49;18136:18:66;;;18129:60;18205:18;;;18198:34;;;18428:62:49;;-1:-1:-1;;;;;;18664:26:49;;18648:57;;-1:-1:-1;18042:18:66;;18648:98:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18802:37:49;;-1:-1:-1;;;18802:37:49;;18833:4;18802:37;;;3021:51:66;18782:17:49;;-1:-1:-1;;;;;;18802:22:49;;;-1:-1:-1;18802:22:49;;2994:18:66;;18802:37:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18782:57;-1:-1:-1;18853:13:49;;18849:118;;18925:19;;18882:74;;18917:5;;-1:-1:-1;;;;;18925:19:49;18946:9;18882:28;:74::i;:::-;18996:5;;:30;;-1:-1:-1;;;18996:30:49;;19020:4;18996:30;;;3021:51:66;18977:16:49;;-1:-1:-1;;;;;18996:5:49;;:15;;2994:18:66;;18996:30:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18977:49;-1:-1:-1;19040:12:49;;19036:125;;19111:5;;;19120:19;19068:82;;-1:-1:-1;;;;;19111:5:49;;;;19120:19;19141:8;19068:28;:82::i;:::-;19216:26;;:36;;;-1:-1:-1;;;19216:36:49;;;;19171:12;;-1:-1:-1;;;;;19216:26:49;;:34;;:36;;;;;;;;;;;;;;:26;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19198:63:49;;19262:5;19277;;;;;;;;;-1:-1:-1;;;;;19277:5:49;4065:4;19198:104;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16454:32:66;;;16436:51;;16523:32;;;;16518:2;16503:18;;16496:60;16604:8;16592:21;;;;16587:2;16572:18;;16565:49;16424:2;16409:18;;16236:384;19198:104:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19171:131;;19451:4;-1:-1:-1;;;;;19318:147:49;19374:5;-1:-1:-1;;;;;19318:147:49;19362:10;-1:-1:-1;;;;;19318:147:49;;19381:12;19402:11;19416:16;19434:15;19318:147;;;;;;;;21646:25:66;;;-1:-1:-1;;;;;21707:31:66;;;21702:2;21687:18;;21680:59;21775:31;;21770:2;21755:18;;21748:59;21838:2;21823:18;;21816:34;21633:3;21618:19;;21419:437;19318:147:49;;;;;;;;16369:3103;;;;;;;;;;;;;16320:3152;:::o;12035:2269::-;12133:9;12146:1;12133:14;12129:39;;12156:12;;-1:-1:-1;;;12156:12:49;;;;;;;;;;;12129:39;-1:-1:-1;;;;;12208:20:49;;12179:26;12208:20;;;:13;:20;;;;;12242:14;;;;;;12238:49;;;12265:22;;-1:-1:-1;;;12265:22:49;;;;;;;;;;;12238:49;12365:21;;12338:11;;12390:5;;12353:33;;-1:-1:-1;;;;;12365:21:49;12353:9;:33;:::i;:::-;12352:43;;;;:::i;:::-;12338:57;-1:-1:-1;12405:14:49;12422:15;12338:57;12422:9;:15;:::i;:::-;12530:21;;;;12405:32;;-1:-1:-1;2525:7:49;;12522:39;;12405:32;;-1:-1:-1;;;;;12530:21:49;12522:39;:::i;:::-;:61;12518:129;;;12606:30;;-1:-1:-1;;;12606:30:49;;;;;;;;;;;12518:129;12784:24;;;;12694:17;;12776:42;;12812:6;;-1:-1:-1;;;;;12784:24:49;12776:42;:::i;:::-;12735:26;;12727:44;;12765:6;;12727:44;:::i;:::-;12726:93;;;;:::i;:::-;12694:125;;12938:5;:23;;;12926:9;:35;12922:101;;;-1:-1:-1;12989:23:49;;;;12922:101;13048:12;13036:9;:24;13032:62;;;13069:25;;-1:-1:-1;;;13069:25:49;;;;;;;;;;;13032:62;13162:9;13132:5;:26;;;:39;;;;;;;:::i;:::-;;;;;;;;13208:9;13181:5;:23;;;:36;;;;;;;:::i;:::-;;;;-1:-1:-1;;13227:24:49;;;:42;;13262:6;;13227:24;;;:42;;13262:6;;-1:-1:-1;;;;;13227:42:49;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;13227:42:49;;;;;-1:-1:-1;;;;;13227:42:49;;;;;;13311:6;13279:5;:21;;;:39;;;;;;;;;;-1:-1:-1;;;;;13279:39:49;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;13279:39:49;;;;;-1:-1:-1;;;;;13279:39:49;;;;;;13422:5;:23;;;13449:1;13422:28;:76;;;-1:-1:-1;13454:21:49;;;;2525:7;-1:-1:-1;;;;;13454:21:49;;;:44;;13422:76;13418:195;;;13514:14;;;:21;;-1:-1:-1;;13514:21:49;13531:4;13514:21;;;13554:48;;-1:-1:-1;;;;;13554:48:49;;;;;;;;;;;;13586:15;3229:25:66;;3217:2;3202:18;;3083:177;13554:48:49;;;;;;;;13418:195;13647:64;13682:5;13690:9;13701;13647:28;:64::i;:::-;13721:27;13737:5;13744:3;13721:15;:27::i;:::-;13793:17;;;;;;;;;13789:183;;;-1:-1:-1;;;;;13826:21:49;;;;;;:10;:21;;;;;:34;;13851:9;;13826:21;:34;;13851:9;;13826:34;:::i;:::-;;;;-1:-1:-1;;;;;;;13879:82:49;;;13922:21;;;;:10;:21;;;;;;;;;;13879:82;;13911:9;22259:25:66;;22300:18;;;22293:34;13945:15:49;22343:18:66;;;22336:34;13879:82:49;;;;;;;;;;;22247:2:66;13879:82:49;;;13789:183;14081:4;14151:24;;;;14189:26;;14229:21;;;;14264:23;;;;13987:310;;-1:-1:-1;;;;;13987:310:49;;;;;;;;;;;;14037:6;;14058:9;;14122:15;;-1:-1:-1;;;;;14151:24:49;;;;14189:26;14229:21;;14264:23;13987:310;:::i;19522:383::-;-1:-1:-1;;;;;19659:20:49;;19599:19;19659:20;;;:13;:20;;;;;19725:21;;19599:19;;19750:5;;19704:42;;-1:-1:-1;;;;;19725:21:49;;;;19704:18;;:42;:::i;:::-;19703:52;;;;:::i;:::-;19689:66;-1:-1:-1;19765:14:49;19782:15;19689:66;-1:-1:-1;;;;;19782:15:49;;;:::i;:::-;19863:24;;;;19765:32;;-1:-1:-1;19855:42:49;;19765:32;;-1:-1:-1;;;;;19863:24:49;19855:42;:::i;:::-;19815:26;;:35;;19844:6;;19815:35;:::i;:::-;19814:84;;;;:::i;:::-;19807:91;19522:383;-1:-1:-1;;;;;;19522:383:49:o;7228:371::-;6044:16;:14;:16::i;:::-;-1:-1:-1;;;;;7318:29:49;::::1;7314:75;;7356:33;;-1:-1:-1::0;;;7356:33:49::1;;;;;;;;;;;7314:75;7425:19;::::0;;-1:-1:-1;;;;;7454:37:49;;::::1;-1:-1:-1::0;;;;;;7454:37:49;::::1;::::0;::::1;::::0;;;7506:86:::1;::::0;7425:19;::::1;::::0;7454:37;7425:19;;7530:10:::1;::::0;7506:86:::1;::::0;::::1;::::0;7576:15:::1;3229:25:66::0;;3217:2;3202:18;;3083:177;7506:86:49::1;;;;;;;;7304:295;7228:371:::0;:::o;16023:135::-;6044:16;:14;:16::i;:::-;-1:-1:-1;;;;;16109:20:49;;::::1;;::::0;;;:13:::1;:20;::::0;;;;:32:::1;;:42:::0;;;::::1;;;;-1:-1:-1::0;;16109:42:49;;::::1;::::0;;;::::1;::::0;;16023:135::o;20419:115::-;20487:6;:16;;;;-1:-1:-1;;;;;20487:16:49;20473:10;:30;20469:58;;20512:15;;-1:-1:-1;;;20512:15:49;;;;;;;;;;;20469:58;20419:115::o;21160:299::-;21295:24;;;;21353:26;;21247:7;;-1:-1:-1;;;;;21295:24:49;;21429:21;21444:6;21353:26;21429:21;:::i;:::-;21405:19;21414:10;21405:6;:19;:::i;:::-;21404:47;;;;:::i;:::-;21389:63;21160:299;-1:-1:-1;;;;;21160:299:49:o;4328:312:31:-;4408:4;-1:-1:-1;;;;;4417:6:31;4400:23;;;:120;;;4514:6;-1:-1:-1;;;;;4478:42:31;:32;-1:-1:-1;;;;;;;;;;;1519:53:27;-1:-1:-1;;;;;1519:53:27;;1441:138;4478:32:31;-1:-1:-1;;;;;4478:42:31;;;4400:120;4383:251;;;4594:29;;-1:-1:-1;;;4594:29:31;;;;;;;;;;;6833:88:49;6044:16;:14;:16::i;:::-;6833:88;:::o;5782:538:31:-;5899:17;-1:-1:-1;;;;;5881:50:31;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5881:52:31;;;;;;;;-1:-1:-1;;5881:52:31;;;;;;;;;;;;:::i;:::-;;;5877:437;;6243:60;;-1:-1:-1;;;6243:60:31;;-1:-1:-1;;;;;3039:32:66;;6243:60:31;;;3021:51:66;2994:18;;6243:60:31;;;;;;;;5877:437;-1:-1:-1;;;;;;;;;;;5975:40:31;;5971:120;;6042:34;;-1:-1:-1;;;6042:34:31;;;;;3229:25:66;;;3202:18;;6042:34:31;3083:177:66;5971:120:31;6104:54;6134:17;6153:4;6104:29;:54::i;:::-;5934:235;5782:538;;:::o;4757:213::-;4831:4;-1:-1:-1;;;;;4840:6:31;4823:23;;4819:145;;4924:29;;-1:-1:-1;;;4924:29:31;;;;;;;;;;;9071:205:30;9129:30;;3147:66;9186:27;8819:122;22464:1218:49;22599:7;22626:16;;;:35;;-1:-1:-1;22646:15:49;;22626:35;22622:64;;;22670:16;;-1:-1:-1;;;22670:16:49;;;;;;;;;;;22622:64;22729:5;;-1:-1:-1;;;;;22729:5:49;;;22713:22;;;;22697:13;22964:420;;;;23121:46;23133:10;-1:-1:-1;;;23155:11:49;23121;:46::i;:::-;23109:58;;22964:420;;;23327:46;23339:11;-1:-1:-1;;;23362:10:49;23327:11;:46::i;:::-;23315:58;;22964:420;23445:20;23468;23478:9;23468;:20::i;:::-;23445:43;-1:-1:-1;;;;;;23585:32:49;;23581:55;;;23626:10;;-1:-1:-1;;;23626:10:49;;;;;;;;;;;658:339:56;730:12;929:1;926;923;920;912:6;908:2;901:5;896:35;885:46;;959:7;951:39;;;;-1:-1:-1;;;951:39:56;;22772:2:66;951:39:56;;;22754:21:66;22811:2;22791:18;;;22784:30;-1:-1:-1;;;22830:18:66;;;22823:49;22889:18;;951:39:56;22570:343:66;20596:558:49;20672:3;20679:1;20672:8;20668:34;;20689:13;;-1:-1:-1;;;20689:13:49;;;;;;;;;;;20668:34;20713:19;20772:52;2469:2;2409;20772:52;:::i;:::-;-1:-1:-1;;;;;20735:90:49;20736:31;2409:2;20736:3;:31;:::i;:::-;20735:90;;;;:::i;:::-;20713:112;-1:-1:-1;20835:18:49;20856:17;20713:112;20856:3;:17;:::i;:::-;20835:38;-1:-1:-1;20932:16:49;;;:35;;-1:-1:-1;20952:15:49;;20932:35;20928:61;;;20976:13;;-1:-1:-1;;;20976:13:49;;;;;;;;;;;20928:61;21032:19;;21000:65;;-1:-1:-1;;;;;21032:19:49;21053:11;21000:31;:65::i;:::-;21075:72;21118:5;-1:-1:-1;;;;;21107:25:49;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21136:10;21075:31;:72::i;:::-;20658:496;;20596:558;;:::o;21693:240::-;21788:21;;;;21765:4;;-1:-1:-1;;;;;21788:21:49;:26;:59;;;;-1:-1:-1;21818:24:49;;;;-1:-1:-1;;;;;21818:24:49;:29;21788:59;:91;;;;-1:-1:-1;21851:23:49;;;;:28;21788:91;:138;;;;-1:-1:-1;;21895:26:49;:31;;21693:240::o;4232:1431:56:-;4313:12;4483:4;4477:11;-1:-1:-1;;;4606:17:56;4599:93;-1:-1:-1;;;;;4743:2:56;4739:51;4735:1;4716:17;4712:25;4705:86;4877:6;4872:2;4853:17;4849:26;4842:42;5224:2;5221:1;5217:2;5198:17;5195:1;5188:5;5181;5176:51;5165:62;;;5494:7;5487:2;5469:16;5466:24;5462:1;5458;5452:8;5449:15;5445:46;5438:54;5434:68;5431:171;;;-1:-1:-1;5549:18:56;;5542:26;5570:16;5539:48;5532:56;5431:171;5630:7;5622:34;;;;-1:-1:-1;;;5622:34:56;;23120:2:66;5622:34:56;;;23102:21:66;23159:2;23139:18;;;23132:30;-1:-1:-1;;;23178:18:66;;;23171:44;23232:18;;5622:34:56;22918:338:66;2793:1433:56;2875:12;3045:4;3039:11;-1:-1:-1;;;3168:17:56;3161:93;-1:-1:-1;;;;;3305:2:56;3301:51;3297:1;3278:17;3274:25;3267:86;3439:6;3434:2;3415:17;3411:26;3404:42;3786:2;3783:1;3779:2;3760:17;3757:1;3750:5;3743;3738:51;3727:62;;;4056:7;4049:2;4031:16;4028:24;4024:1;4020;4014:8;4011:15;4007:46;4000:54;3996:68;3993:171;;;-1:-1:-1;4111:18:56;;4104:26;4132:16;4101:48;4094:56;3993:171;4192:7;4184:35;;;;-1:-1:-1;;;4184:35:56;;23463:2:66;4184:35:56;;;23445:21:66;23502:2;23482:18;;;23475:30;-1:-1:-1;;;23521:18:66;;;23514:45;23576:18;;4184:35:56;23261:339:66;2264:344:27;2355:37;2374:17;2355:18;:37::i;:::-;2407:36;;-1:-1:-1;;;;;2407:36:27;;;;;;;;2458:11;;:15;2454:148;;2489:53;2518:17;2537:4;2489:28;:53::i;2454:148::-;2573:18;:16;:18::i;7258:3683:44:-;7340:14;7391:12;7405:11;7420:12;7427:1;7430;7420:6;:12::i;:::-;7390:42;;;;7514:4;7522:1;7514:9;7510:365;;7849:11;7843:3;:17;;;;;:::i;:::-;;7836:24;;;;;;7510:365;8000:4;7985:11;:19;7981:142;;8024:84;5328:5;8044:16;;5327:36;940:4:41;5322:42:44;8024:11;:84::i;:::-;8375:17;8526:11;8523:1;8520;8513:25;8918:12;8948:15;;;8933:31;;9083:22;;;;;9816:1;9797;:15;;9796:21;;10049;;;10045:25;;10034:36;10119:21;;;10115:25;;10104:36;10191:21;;;10187:25;;10176:36;10262:21;;;10258:25;;10247:36;10335:21;;;10331:25;;10320:36;10409:21;;;10405:25;;;10394:36;9325:12;;;;9321:23;;;9346:1;9317:31;8638:18;;;8628:29;;;9432:11;;;;8681:19;;;;9176:14;;;;9425:18;;;;10884:13;;-1:-1:-1;;7258:3683:44;;;;;:::o;20583:5181::-;20631:7;20749:1;20744;:6;20740:53;;-1:-1:-1;20777:1:44;20583:5181::o;20740:53::-;21733:1;21761;-1:-1:-1;;;21781:16:44;;21777:92;;21824:3;21817:10;;;;;21852:2;21845:9;21777:92;-1:-1:-1;;;21886:2:44;:15;21882:90;;21928:2;21921:9;;;;;21955:2;21948:9;21882:90;21996:7;21989:2;:15;21985:90;;22031:2;22024:9;;;;;22058:2;22051:9;21985:90;22099:7;22092:2;:15;22088:89;;22134:2;22127:9;;;;;22161:1;22154:8;22088:89;22201:6;22194:2;:14;22190:87;;22235:1;22228:8;;;;;22261:1;22254:8;22190:87;22301:6;22294:2;:14;22290:87;;22335:1;22328:8;;;;;22361:1;22354:8;22290:87;22401:6;22394:2;:14;22390:61;;22435:1;22428:8;22390:61;22877:1;:6;22888:1;22876:13;;;;;24787:1;22876:13;24787:6;;;;:::i;:::-;;24782:2;:11;24781:18;;24776:23;;24907:1;24900:2;24896:1;:6;;;;;:::i;:::-;;24891:2;:11;24890:18;;24885:23;;25018:1;25011:2;25007:1;:6;;;;;:::i;:::-;;25002:2;:11;25001:18;;24996:23;;25127:1;25120:2;25116:1;:6;;;;;:::i;:::-;;25111:2;:11;25110:18;;25105:23;;25237:1;25230:2;25226:1;:6;;;;;:::i;:::-;;25221:2;:11;25220:18;;25215:23;;25347:1;25340:2;25336:1;:6;;;;;:::i;:::-;;25331:2;:11;25330:18;;25325:23;;25719:28;25744:2;25740:1;:6;;;;;:::i;:::-;;25735:11;;;34795:145:45;25719:28:44;25714:33;;;20583:5181;-1:-1:-1;;;20583:5181:44:o;1671:281:27:-;1748:17;-1:-1:-1;;;;;1748:29:27;;1781:1;1748:34;1744:119;;1805:47;;-1:-1:-1;;;1805:47:27;;-1:-1:-1;;;;;3039:32:66;;1805:47:27;;;3021:51:66;2994:18;;1805:47:27;2859:219:66;1744:119:27;-1:-1:-1;;;;;;;;;;;1872:73:27;;-1:-1:-1;;;;;;1872:73:27;-1:-1:-1;;;;;1872:73:27;;;;;;;;;;1671:281::o;4691:549:37:-;4774:12;4798;4813:47;4847:6;4855:4;4813:33;:47::i;:::-;4798:62;;4874:7;:72;;;;-1:-1:-1;4918:1:37;4583:16:40;4886:33:37;:59;;;;4944:1;4923:6;-1:-1:-1;;;;;4923:18:37;;:22;4886:59;4870:364;;;4969:25;:23;:25::i;:::-;4962:32;;;;;4870:364;5015:7;5011:223;;;5045:24;;-1:-1:-1;;;5045:24:37;;-1:-1:-1;;;;;3039:32:66;;5045:24:37;;;3021:51:66;2994:18;;5045:24:37;2859:219:66;5011:223:37;4583:16:40;5090:33:37;5086:148;;5139:27;:25;:27::i;:::-;5086:148;;;5204:19;;-1:-1:-1;;;5204:19:37;;;;;;;;;;;5086:148;4788:452;4691:549;;;;:::o;6113:122:27:-;6163:9;:13;6159:70;;6199:19;;-1:-1:-1;;;6199:19:27;;;;;;;;;;;1027:550:44;1088:12;;-1:-1:-1;;1471:1:44;1468;1461:20;1501:9;;;;1549:11;;;1535:12;;;;1531:30;;;;;1027:550;-1:-1:-1;;1027:550:44:o;1776:194:41:-;1881:10;1875:4;1868:24;1918:4;1912;1905:18;1949:4;1943;1936:18;3383:242:40;3466:12;3604:4;3598;3591;3585:11;3578:4;3572;3568:15;3560:6;3553:5;3540:69;3529:80;3383:242;-1:-1:-1;;;3383:242:40:o;4698:334::-;4829:4;4823:11;4862:16;4847:32;;4932:16;4926:4;4919;4907:17;;4892:57;4997:16;4991:4;4987:27;4979:6;4975:40;4969:4;4962:54;4698:334;:::o;5099:223::-;5203:4;5197:11;5247:16;5241:4;5236:3;5221:43;5289:16;5284:3;5277:29;-1:-1:-1;;;;;;;;:::o;14:239:66:-;108:6;168:3;156:9;147:7;143:23;139:33;184:2;181:22;;;199:1;196;189:12;181:22;-1:-1:-1;238:9:66;;14:239;-1:-1:-1;;14:239:66:o;258:171::-;325:20;;-1:-1:-1;;;;;374:30:66;;364:41;;354:69;;419:1;416;409:12;354:69;258:171;;;:::o;434:184::-;492:6;545:2;533:9;524:7;520:23;516:32;513:52;;;561:1;558;551:12;513:52;584:28;602:9;584:28;:::i;846:131::-;-1:-1:-1;;;;;921:31:66;;911:42;;901:70;;967:1;964;957:12;982:367;1050:6;1058;1111:2;1099:9;1090:7;1086:23;1082:32;1079:52;;;1127:1;1124;1117:12;1079:52;1166:9;1153:23;1185:31;1210:5;1185:31;:::i;:::-;1235:5;1313:2;1298:18;;;;1285:32;;-1:-1:-1;;;982:367:66:o;1643:127::-;1704:10;1699:3;1695:20;1692:1;1685:31;1735:4;1732:1;1725:15;1759:4;1756:1;1749:15;1775:1079;1852:6;1860;1913:2;1901:9;1892:7;1888:23;1884:32;1881:52;;;1929:1;1926;1919:12;1881:52;1968:9;1955:23;1987:31;2012:5;1987:31;:::i;:::-;2037:5;-1:-1:-1;2093:2:66;2078:18;;2065:32;-1:-1:-1;;;;;2109:30:66;;2106:50;;;2152:1;2149;2142:12;2106:50;2175:22;;2228:4;2220:13;;2216:27;-1:-1:-1;2206:55:66;;2257:1;2254;2247:12;2206:55;2297:2;2284:16;-1:-1:-1;;;;;2315:6:66;2312:30;2309:56;;;2345:18;;:::i;:::-;2394:2;2388:9;2486:2;2448:17;;-1:-1:-1;;2444:31:66;;;2477:2;2440:40;2436:54;2424:67;;-1:-1:-1;;;;;2506:34:66;;2542:22;;;2503:62;2500:88;;;2568:18;;:::i;:::-;2604:2;2597:22;2628;;;2669:15;;;2686:2;2665:24;2662:37;-1:-1:-1;2659:57:66;;;2712:1;2709;2702:12;2659:57;2768:6;2763:2;2759;2755:11;2750:2;2742:6;2738:15;2725:50;2821:1;2816:2;2807:6;2799;2795:19;2791:28;2784:39;2842:6;2832:16;;;;;1775:1079;;;;;:::o;3265:348::-;3317:8;3327:6;3381:3;3374:4;3366:6;3362:17;3358:27;3348:55;;3399:1;3396;3389:12;3348:55;-1:-1:-1;3422:20:66;;-1:-1:-1;;;;;3454:30:66;;3451:50;;;3497:1;3494;3487:12;3451:50;3534:4;3526:6;3522:17;3510:29;;3586:3;3579:4;3570:6;3562;3558:19;3554:30;3551:39;3548:59;;;3603:1;3600;3593:12;3548:59;3265:348;;;;;:::o;3618:1278::-;3749:6;3757;3765;3773;3781;3789;3797;3805;3858:3;3846:9;3837:7;3833:23;3829:33;3826:53;;;3875:1;3872;3865:12;3826:53;3915:9;3902:23;-1:-1:-1;;;;;3940:6:66;3937:30;3934:50;;;3980:1;3977;3970:12;3934:50;4019:59;4070:7;4061:6;4050:9;4046:22;4019:59;:::i;:::-;4097:8;;-1:-1:-1;3993:85:66;-1:-1:-1;;4185:2:66;4170:18;;4157:32;-1:-1:-1;;;;;4201:32:66;;4198:52;;;4246:1;4243;4236:12;4198:52;4285:61;4338:7;4327:8;4316:9;4312:24;4285:61;:::i;:::-;4365:8;;-1:-1:-1;4259:87:66;-1:-1:-1;;4453:2:66;4438:18;;4425:32;-1:-1:-1;;;;;4469:32:66;;4466:52;;;4514:1;4511;4504:12;4466:52;4553:61;4606:7;4595:8;4584:9;4580:24;4553:61;:::i;:::-;4633:8;;-1:-1:-1;4527:87:66;-1:-1:-1;;4718:2:66;4703:18;;4690:32;4731:31;4690:32;4731:31;:::i;:::-;3618:1278;;;;-1:-1:-1;3618:1278:66;;;;;;;;-1:-1:-1;4781:5:66;;4859:3;4844:19;4831:33;;-1:-1:-1;3618:1278:66:o;5218:388::-;5286:6;5294;5347:2;5335:9;5326:7;5322:23;5318:32;5315:52;;;5363:1;5360;5353:12;5315:52;5402:9;5389:23;5421:31;5446:5;5421:31;:::i;:::-;5471:5;-1:-1:-1;5528:2:66;5513:18;;5500:32;5541:33;5500:32;5541:33;:::i;:::-;5593:7;5583:17;;;5218:388;;;;;:::o;5611:1157::-;5733:6;5741;5749;5757;5765;5773;5781;5834:3;5822:9;5813:7;5809:23;5805:33;5802:53;;;5851:1;5848;5841:12;5802:53;5891:9;5878:23;-1:-1:-1;;;;;5916:6:66;5913:30;5910:50;;;5956:1;5953;5946:12;5910:50;5995:59;6046:7;6037:6;6026:9;6022:22;5995:59;:::i;:::-;6073:8;;-1:-1:-1;5969:85:66;-1:-1:-1;;6161:2:66;6146:18;;6133:32;-1:-1:-1;;;;;6177:32:66;;6174:52;;;6222:1;6219;6212:12;6174:52;6261:61;6314:7;6303:8;6292:9;6288:24;6261:61;:::i;:::-;6341:8;;-1:-1:-1;6235:87:66;-1:-1:-1;;6429:2:66;6414:18;;6401:32;-1:-1:-1;;;;;6445:32:66;;6442:52;;;6490:1;6487;6480:12;6442:52;6529:61;6582:7;6571:8;6560:9;6556:24;6529:61;:::i;:::-;6609:8;;-1:-1:-1;6503:87:66;-1:-1:-1;;6694:2:66;6679:18;;6666:32;6707:31;6666:32;6707:31;:::i;:::-;6757:5;6747:15;;;5611:1157;;;;;;;;;;:::o;6773:247::-;6832:6;6885:2;6873:9;6864:7;6860:23;6856:32;6853:52;;;6901:1;6898;6891:12;6853:52;6940:9;6927:23;6959:31;6984:5;6959:31;:::i;8232:1043::-;8667:14;;8660:22;8642:41;;-1:-1:-1;;;;;8719:32:66;;;8714:2;8699:18;;8692:60;8788:32;;;8783:2;8768:18;;8761:60;8852:2;8837:18;;8830:34;;;-1:-1:-1;;;;;8901:31:66;;;8895:3;8880:19;;8873:60;8739:3;8949:19;;8942:35;;;9008:3;8993:19;;8986:35;;;9058:31;;9052:3;9037:19;;9030:60;9127:32;;9121:3;9106:19;;9099:61;7202:13;;7195:21;9208:3;9193:19;;7183:34;8629:3;8614:19;;-1:-1:-1;;;;;7090:30:66;;9264:3;9249:19;;7078:43;9222:47;8232:1043;;;;;;;;;;;;;;:::o;9462:418::-;9611:2;9600:9;9593:21;9574:4;9643:6;9637:13;9686:6;9681:2;9670:9;9666:18;9659:34;9745:6;9740:2;9732:6;9728:15;9723:2;9712:9;9708:18;9702:50;9801:1;9796:2;9787:6;9776:9;9772:22;9768:31;9761:42;9871:2;9864;9860:7;9855:2;9847:6;9843:15;9839:29;9828:9;9824:45;9820:54;9812:62;;;9462:418;;;;:::o;9885:439::-;9961:6;9969;9977;10030:2;10018:9;10009:7;10005:23;10001:32;9998:52;;;10046:1;10043;10036:12;9998:52;10085:9;10072:23;10104:31;10129:5;10104:31;:::i;:::-;10154:5;-1:-1:-1;10232:2:66;10217:18;;10204:32;;-1:-1:-1;10281:37:66;10314:2;10299:18;;10281:37;:::i;:::-;10271:47;;9885:439;;;;;:::o;11252:508::-;11329:6;11337;11345;11398:2;11386:9;11377:7;11373:23;11369:32;11366:52;;;11414:1;11411;11404:12;11366:52;11453:9;11440:23;11472:31;11497:5;11472:31;:::i;:::-;11522:5;-1:-1:-1;11600:2:66;11585:18;;11572:32;;-1:-1:-1;11682:2:66;11667:18;;11654:32;11695:33;11654:32;11695:33;:::i;:::-;11747:7;11737:17;;;11252:508;;;;;:::o;11765:319::-;11832:6;11840;11893:2;11881:9;11872:7;11868:23;11864:32;11861:52;;;11909:1;11906;11899:12;11861:52;11948:9;11935:23;11967:31;11992:5;11967:31;:::i;:::-;12017:5;-1:-1:-1;12041:37:66;12074:2;12059:18;;12041:37;:::i;:::-;12031:47;;11765:319;;;;;:::o;12089:160::-;12154:20;;12210:13;;12203:21;12193:32;;12183:60;;12239:1;12236;12229:12;12254:315;12319:6;12327;12380:2;12368:9;12359:7;12355:23;12351:32;12348:52;;;12396:1;12393;12386:12;12348:52;12435:9;12422:23;12454:31;12479:5;12454:31;:::i;:::-;12504:5;-1:-1:-1;12528:35:66;12559:2;12544:18;;12528:35;:::i;12574:180::-;12630:6;12683:2;12671:9;12662:7;12658:23;12654:32;12651:52;;;12699:1;12696;12689:12;12651:52;12722:26;12738:9;12722:26;:::i;12759:127::-;12820:10;12815:3;12811:20;12808:1;12801:31;12851:4;12848:1;12841:15;12875:4;12872:1;12865:15;12891:128;12958:9;;;12979:11;;;12976:37;;;12993:18;;:::i;13024:168::-;13097:9;;;13128;;13145:15;;;13139:22;;13125:37;13115:71;;13166:18;;:::i;13197:127::-;13258:10;13253:3;13249:20;13246:1;13239:31;13289:4;13286:1;13279:15;13313:4;13310:1;13303:15;13329:217;13369:1;13395;13385:132;;13439:10;13434:3;13430:20;13427:1;13420:31;13474:4;13471:1;13464:15;13502:4;13499:1;13492:15;13385:132;-1:-1:-1;13531:9:66;;13329:217::o;13551:1037::-;13965:25;;;-1:-1:-1;;;;;14026:31:66;;;14021:2;14006:18;;13999:59;14089:2;14074:18;;14067:34;;;14137:31;;;14132:2;14117:18;;14110:59;14200:3;14185:19;;14178:35;;;14250:31;;;14244:3;14229:19;;14222:60;-1:-1:-1;;;;;14319:32:66;;14313:3;14298:19;;14291:61;14396:14;;14389:22;14383:3;14368:19;;14361:51;14449:31;;14443:3;14428:19;;14421:60;13952:3;13937:19;;14490:47;14532:3;14517:19;;14509:6;-1:-1:-1;;;;;4967:31:66;4955:44;;4901:104;14490:47;14574:7;14568:3;14557:9;14553:19;14546:36;13551:1037;;;;;;;;;;;;;;:::o;14807:267::-;14896:6;14891:3;14884:19;14948:6;14941:5;14934:4;14929:3;14925:14;14912:43;-1:-1:-1;15000:1:66;14975:16;;;14993:4;14971:27;;;14964:38;;;;15056:2;15035:15;;;-1:-1:-1;;15031:29:66;15022:39;;;15018:50;;14807:267::o;15079:896::-;15438:3;15427:9;15420:22;15401:4;15465:63;15523:3;15512:9;15508:19;15500:6;15492;15465:63;:::i;:::-;15576:9;15568:6;15564:22;15559:2;15548:9;15544:18;15537:50;15610;15653:6;15645;15637;15610:50;:::i;:::-;15691:2;15676:18;;15669:34;;;-1:-1:-1;;;;;15739:32:66;;;15734:2;15719:18;;15712:60;15809:32;;15803:3;15788:19;;15781:61;15879:22;;;15759:3;15858:19;;15851:51;15596:64;-1:-1:-1;15919:50:66;15596:64;15954:6;15946;15919:50;:::i;15980:251::-;16050:6;16103:2;16091:9;16082:7;16078:23;16074:32;16071:52;;;16119:1;16116;16109:12;16071:52;16151:9;16145:16;16170:31;16195:5;16170:31;:::i;16833:700::-;17136:3;17125:9;17118:22;17099:4;17163:63;17221:3;17210:9;17206:19;17198:6;17190;17163:63;:::i;:::-;17274:9;17266:6;17262:22;17257:2;17246:9;17242:18;17235:50;17308;17351:6;17343;17335;17308:50;:::i;:::-;17294:64;;17406:9;17398:6;17394:22;17389:2;17378:9;17374:18;17367:50;17434;17477:6;17469;17461;17434:50;:::i;:::-;17426:58;;;17520:6;17515:2;17504:9;17500:18;17493:34;16833:700;;;;;;;;;;:::o;17538:194::-;-1:-1:-1;;;;;17636:26:66;;;17608;;;17604:59;;17675:28;;17672:54;;;17706:18;;:::i;17737:125::-;17802:9;;;17823:10;;;17820:36;;;17836:18;;:::i;18591:758::-;-1:-1:-1;;;;;18940:31:66;;;18922:50;;19003:2;18988:18;;18981:34;;;;19058:14;;19051:22;19046:2;19031:18;;19024:50;19105:2;19090:18;;19083:34;;;;19154:31;;;19148:3;19133:19;;19126:60;19217:3;19202:19;;19195:35;19267:31;;;19261:3;19246:19;;19239:60;19330:3;19315:19;;19308:35;;;;18909:3;18894:19;;18591:758::o;19354:230::-;19424:6;19477:2;19465:9;19456:7;19452:23;19448:32;19445:52;;;19493:1;19490;19483:12;19445:52;-1:-1:-1;19538:16:66;;19354:230;-1:-1:-1;19354:230:66:o;19589:1173::-;19813:13;;-1:-1:-1;;;;;4967:31:66;4955:44;;19781:3;19766:19;;19885:4;19877:6;19873:17;19867:24;19900:54;19948:4;19937:9;19933:20;19919:12;-1:-1:-1;;;;;4967:31:66;4955:44;;4901:104;19900:54;;20003:4;19995:6;19991:17;19985:24;20018:55;20067:4;20056:9;20052:20;20036:14;8016:8;8005:20;7993:33;;7940:92;20018:55;;20122:4;20114:6;20110:17;20104:24;20137:54;20185:4;20174:9;20170:20;20154:14;1429:1;1418:20;1406:33;;1354:91;20137:54;;20240:4;20232:6;20228:17;20222:24;20255:54;20303:4;20292:9;20288:20;20272:14;1429:1;1418:20;1406:33;;1354:91;20255:54;;20365:4;20357:6;20353:17;20347:24;20340:4;20329:9;20325:20;20318:54;20428:4;20420:6;20416:17;20410:24;20403:4;20392:9;20388:20;20381:54;20491:4;20483:6;20479:17;20473:24;20466:4;20455:9;20451:20;20444:54;20556:6;20548;20544:19;20538:26;20529:6;20518:9;20514:22;20507:58;20614:6;20606;20602:19;20596:26;20631:58;20681:6;20670:9;20666:22;20650:14;-1:-1:-1;;;;;4967:31:66;4955:44;;4901:104;20631:58;-1:-1:-1;20747:6:66;20735:19;;;20729:26;20705:22;;;;20698:58;19589:1173;:::o;20767:647::-;20864:6;20872;20880;20888;20941:3;20929:9;20920:7;20916:23;20912:33;20909:53;;;20958:1;20955;20948:12;20909:53;21003:16;;21088:2;21073:18;;21067:25;21003:16;;-1:-1:-1;;;;;;21123:48:66;;21111:61;;21101:89;;21186:1;21183;21176:12;21101:89;21282:2;21267:18;;21261:25;21378:2;21363:18;;;21357:25;20767:647;;21209:7;;-1:-1:-1;20767:647:66;-1:-1:-1;;;20767:647:66:o;21861:191::-;-1:-1:-1;;;;;21929:26:66;;;21957;;;21925:59;;21996:27;;21993:53;;;22026:18;;:::i",
900
+ "linkReferences": {},
901
+ "immutableReferences": {
902
+ "40735": [
903
+ { "start": 8123, "length": 32 },
904
+ { "start": 8164, "length": 32 },
905
+ { "start": 8496, "length": 32 }
906
+ ]
907
+ }
908
+ },
909
+ "methodIdentifiers": {
910
+ "TICK_LOWER()": "47377d92",
911
+ "TICK_UPPER()": "239f3af7",
912
+ "UNISWAP_FEE_TIER()": "8ba90a2d",
913
+ "UPGRADE_INTERFACE_VERSION()": "ad3cb1cc",
914
+ "bondingCurves(address)": "b9a059f7",
915
+ "buy(address,uint256,address)": "db61c76e",
916
+ "create(string,string,string,address)": "82cbdc0f",
917
+ "createAndBuy(string,string,string,address,uint256)": "65bc1504",
918
+ "getBondingCurve(address)": "83db2a21",
919
+ "getBuyQuote(address,uint64)": "df7d3282",
920
+ "getFee(uint64)": "1982b1d0",
921
+ "getSellQuote(address,uint256)": "1bf6e958",
922
+ "global()": "a05f9906",
923
+ "initialize()": "8129fc1c",
924
+ "migrate(address)": "ce5494bb",
925
+ "nonfungiblePositionManager()": "b44a2722",
926
+ "proxiableUUID()": "52d1902d",
927
+ "sell(address,uint256,uint64)": "ae38f145",
928
+ "setParams((uint256,uint64,uint256,uint256,uint64,address,bool,uint64,address))": "0488cebb",
929
+ "setTrackVolume(address,bool)": "fb937829",
930
+ "setUniswapV3Addresses(address,address)": "70f6e143",
931
+ "updateFeeRecipient(address)": "f160d369",
932
+ "updateGlobalAuthority(address)": "b54df8af",
933
+ "upgradeToAndCall(address,bytes)": "4f1ef286",
934
+ "userVolume(address)": "a6769ef8",
935
+ "weth9()": "50879c1c"
936
+ },
937
+ "rawMetadata": "{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AllFeeRecipientsShouldBeNonZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AllZerosWithdrawAuthority\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BondingCurveComplete\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BondingCurveNotComplete\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BuyExceedsMigrationThreshold\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BuyZeroEth\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CreatorShouldNotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DisabledMigrate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DivisionByZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FeeBasisPointsGreaterThanMaximum\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FeeTooSmall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitialRealTokenReservesShouldBeLessThanTokenTotalSupply\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitialVirtualTokenReservesShouldBeGreaterThanInitialRealTokenReserves\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientMigrationFee\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotAuthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughRemainingAccounts\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughTokensToBuy\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughTokensToSell\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Overflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolMigrationFeeShouldBeGreaterThanCreatorFeePlusMaxMigrateFees\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolMigrationFeeShouldBeLessThanFinalRealEthReserves\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SellAmountTooSmall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SellZeroAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooLittleEthReceived\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooLittleTokensReceived\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsortedNotUniqueFeeRecipients\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"mint\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"CompleteEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"mint\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"mintAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"ethAmount\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"poolMigrationFee\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"CompleteManiaAmmMigrationEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"mint\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"CreateEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"initialVirtualTokenReserves\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"initialVirtualEthReserves\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"initialRealTokenReserves\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"finalRealEthReserves\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenTotalSupply\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"feeBasisPoints\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"withdrawAuthority\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enableMigrate\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"poolMigrationFee\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"feeRecipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"SetParamsEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"mint\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"ethAmount\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"virtualEthReserves\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"virtualTokenReserves\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"realEthReserves\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"realTokenReserves\",\"type\":\"uint256\"}],\"name\":\"TradeEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldFeeRecipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newFeeRecipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"UpdateFeeRecipientEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"UpdateGlobalAuthorityEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"mint\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"volumeAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalVolume\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"VolumeTracked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"TICK_LOWER\",\"outputs\":[{\"internalType\":\"int24\",\"name\":\"\",\"type\":\"int24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TICK_UPPER\",\"outputs\":[{\"internalType\":\"int24\",\"name\":\"\",\"type\":\"int24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UNISWAP_FEE_TIER\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"mint\",\"type\":\"address\"}],\"name\":\"bondingCurves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"virtualTokenReserves\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"virtualEthReserves\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"realTokenReserves\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"realEthReserves\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"tokenTotalSupply\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"complete\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"trackVolume\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minTokensOut\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"buy\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minTokensOut\",\"type\":\"uint256\"}],\"name\":\"createAndBuy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getBondingCurve\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"virtualTokenReserves\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"virtualEthReserves\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"realTokenReserves\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"realEthReserves\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"tokenTotalSupply\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"complete\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"trackVolume\",\"type\":\"bool\"}],\"internalType\":\"struct ManiaFactoryUpgradeable.BondingCurve\",\"name\":\"curve\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"ethAmount\",\"type\":\"uint64\"}],\"name\":\"getBuyQuote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"getFee\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"fee\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"getSellQuote\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"ethOutput\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"global\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"initialized\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"feeRecipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"initialVirtualTokenReserves\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"initialVirtualEthReserves\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"initialRealTokenReserves\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenTotalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"feeBasisPoints\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"withdrawAuthority\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"enableMigrate\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"poolMigrationFee\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"migrate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonfungiblePositionManager\",\"outputs\":[{\"internalType\":\"contract INonfungiblePositionManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minEthOutput\",\"type\":\"uint64\"}],\"name\":\"sell\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"initialVirtualTokenReserves\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"initialVirtualEthReserves\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"initialRealTokenReserves\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenTotalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"feeBasisPoints\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"withdrawAuthority\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"enableMigrate\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"poolMigrationFee\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"feeRecipient\",\"type\":\"address\"}],\"internalType\":\"struct ManiaFactoryUpgradeable.SetParamsInput\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"setParams\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"setTrackVolume\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_nonfungiblePositionManager\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_weth9\",\"type\":\"address\"}],\"name\":\"setUniswapV3Addresses\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newFeeRecipient\",\"type\":\"address\"}],\"name\":\"updateFeeRecipient\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"updateGlobalAuthority\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"userVolume\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"volume\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"weth9\",\"outputs\":[{\"internalType\":\"contract IWETH9\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"migrate(address)\":{\"details\":\"Caller must send poolMigrationFee as msg.value. Full 4 ETH from bonding curve goes to LP.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"title\":\"ManiaFactory - Token Bonding Curve Protocol (Upgradeable)\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"buy(address,uint256,address)\":{\"notice\":\"Buys tokens with an exact ETH amount\"},\"create(string,string,string,address)\":{\"notice\":\"Creates a new token with bonding curve and pre-initializes pool\"},\"createAndBuy(string,string,string,address,uint256)\":{\"notice\":\"Creates a new token and buys tokens in a single transaction\"},\"initialize()\":{\"notice\":\"Initializes the global state\"},\"migrate(address)\":{\"notice\":\"Migrates liquidity to UniswapV3 pool\"},\"sell(address,uint256,uint64)\":{\"notice\":\"Sells tokens to bonding curve\"},\"setParams((uint256,uint64,uint256,uint256,uint64,address,bool,uint64,address))\":{\"notice\":\"Sets global parameters\"},\"setUniswapV3Addresses(address,address)\":{\"notice\":\"Sets UniswapV3 addresses for migration\"},\"updateFeeRecipient(address)\":{\"notice\":\"Updates the fee recipient\"},\"updateGlobalAuthority(address)\":{\"notice\":\"Updates the global authority\"}},\"notice\":\"Implements a bonding curve DEX for token launches with migration to external AMM\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/ManiaFactoryUpgradeable.sol\":\"ManiaFactoryUpgradeable\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/v3-periphery/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":v3-core/=lib/v3-core/\",\":v3-periphery/=lib/v3-periphery/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x30d125b8417684dbfea3e8d57284b353a86b22077237b4aaf098c0b54b153e16\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2813775a6326190e75dfa9005c1abbdb1e541c195c0bf5656dd4199e8c66fd8d\",\"dweb:/ipfs/QmYDKANBezQXNrEDyJ69RVXkgypW1hWj7MAvjfdNHTZY8L\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x4918e374e9ce84e9b196486bafbd46851d5e72ab315e31f0b1d7c443dcfea5bf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ced247afc54a93a13922ebbd63add61130abe483ab5b5b78e7e991d564d150e\",\"dweb:/ipfs/QmTfxjcTgfekiguegjvYMyfqhyRNffui17f8xi86BCZNVt\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x1a26353563a2c63b4120ea0b94727253eeff84fe2241d42c1452308b9080e66a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49a95e36d267828b4357186a79917002d616d8634e25d1f9818e2354cd2e7d34\",\"dweb:/ipfs/QmWDkqE4KkyLAS2UkLsRgXE1FGB1qfEgBC3zMXBVsVWfdk\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xf78f05f3b8c9f75570e85300d7b4600d7f6f6a198449273f31d44c1641adb46f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e28b872613b45e0e801d4995aa4380be2531147bfe2d85c1d6275f1de514fba3\",\"dweb:/ipfs/QmeeFcfShHYaS3BdgVj78nxR28ZaVUwbvr66ud8bT6kzw9\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710\",\"dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol\":{\"keccak256\":\"0x5b4802a4352474792df3107e961d1cc593e47b820c14f69d3505cb28f5a6a583\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6f86fd01f829499fe0545ff5dda07d4521988e88bfe0bf801fc15650921ed56\",\"dweb:/ipfs/QmUUKu4ZDffHAmfkf3asuQfmLTyfpuy2Amdncc3SqfzKPG\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x09e3f1c72d4c5cbe8e2644ab7313f8f7177533ae2f4c24cdcbbeaf520a73734c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93208401215d539fa2d81626b207c1f611def7883d0e447b3b5969ebaa7b3c2c\",\"dweb:/ipfs/QmXPxDnQPx8LAweX5ZJqEcwkvs59kP4c64VVDG1Jjq1mef\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"src/ManiaFactoryUpgradeable.sol\":{\"keccak256\":\"0xdd8be9a6050d964715fce76d440895225b39f316bd401909c5519ffe9f955f35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b8631f60fc288c4cee6c5f483a04f9eabd82e2ceb328477656914bd7a529a38\",\"dweb:/ipfs/QmQ17DcuB189ztVkYfcVGdfZt3rTqFzf4frPDaJ5AHkyEv\"]},\"src/ManiaToken.sol\":{\"keccak256\":\"0x05b3557d04763402dba1b04912b10d3704f419853ac55ec09944276c56c4834e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d767617b46bed6b0a7dc0510298d07c324593e92852c86876c442b529b8b8dda\",\"dweb:/ipfs/QmaHowrstcstoRBUkhYZJfSxSgo9SgcN9YpsypqRZgWhxJ\"]},\"src/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0xb350fdca799e80a08e34b9d3e5154d701c6f9348182559a6ddf502debe82dd92\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bc65c3c346722727f6349159138035b26418fbcddfdfb88bab83fcc1e9740362\",\"dweb:/ipfs/QmNouEf2PsBBUDyyp1VnoUFGxNPaQT5hCK3Py3FFD8iwEi\"]},\"src/interfaces/IUniswapV3Factory.sol\":{\"keccak256\":\"0x4238cc9e4d4e722b97b1da2a613bce7498fbaa96e5f6d1a9edd15b88d619c37b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://dd5e598c54ecce29115e69a1ac30ae48d4abece41afb28c93962aa6181ed8631\",\"dweb:/ipfs/QmaqKDa5bySfm3QMQ6afRfVQb6NwyMJoCdYXifJe4vXxA8\"]},\"src/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0x4ed61e48b7d6e51fc06a31cb058ab9290140c898f37c3c14c25b0032f3c44092\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://661aa5a27239c747e5550a375c702c08138fbec6b5d44bce47e640378a3956c0\",\"dweb:/ipfs/QmT7feTcffVcVZvwwm2tBkiyfmvKMHzxPwjrXsbaAYLczd\"]},\"src/interfaces/IWETH9.sol\":{\"keccak256\":\"0xc8614170f6933b670a14352bf2d9277a729d25f5e9202c3c677e37e7fd094a9a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://cf907ba68328cee1f31c604942f33d408ff4dffb3bff0be9cab834b150ed37c3\",\"dweb:/ipfs/QmVgMxh9rqWbjmEX1HJ8QyYDhUckrGs2rvb5cR3ZghhZCq\"]},\"src/tokens/ERC20.sol\":{\"keccak256\":\"0x4070106775a06b95735c7f7903435cf94cd91c9660c18a39035296e9807f9096\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://89b56c350110684059c7bba19d7a118dddff9d71e24897449204feadab316ff4\",\"dweb:/ipfs/QmdDKfJceWvDXz2xsLPh4GF4WuLYMVMpEerimMy8LFBh6j\"]},\"src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x1f471ce40d2fbf4ccbcfe12d94ab62beb2ab656c6bac84afc384738615466f6a\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://6a83ae4c269f1205ba12595ee20d990e63a8c020d693e9a16b7462a141324bae\",\"dweb:/ipfs/QmZnqgeP1yteDt9TrkygMkBPyaU3geGTAjSPccEyFk37Dv\"]}},\"version\":1}",
938
+ "metadata": {
939
+ "compiler": { "version": "0.8.30+commit.73712a01" },
940
+ "language": "Solidity",
941
+ "output": {
942
+ "abi": [
943
+ {
944
+ "inputs": [],
945
+ "stateMutability": "nonpayable",
946
+ "type": "constructor"
947
+ },
948
+ {
949
+ "inputs": [
950
+ { "internalType": "address", "name": "target", "type": "address" }
951
+ ],
952
+ "type": "error",
953
+ "name": "AddressEmptyCode"
954
+ },
955
+ {
956
+ "inputs": [],
957
+ "type": "error",
958
+ "name": "AllFeeRecipientsShouldBeNonZero"
959
+ },
960
+ { "inputs": [], "type": "error", "name": "AllZerosWithdrawAuthority" },
961
+ { "inputs": [], "type": "error", "name": "AlreadyInitialized" },
962
+ { "inputs": [], "type": "error", "name": "BondingCurveComplete" },
963
+ { "inputs": [], "type": "error", "name": "BondingCurveNotComplete" },
964
+ {
965
+ "inputs": [],
966
+ "type": "error",
967
+ "name": "BuyExceedsMigrationThreshold"
968
+ },
969
+ { "inputs": [], "type": "error", "name": "BuyZeroEth" },
970
+ { "inputs": [], "type": "error", "name": "CreatorShouldNotBeZero" },
971
+ { "inputs": [], "type": "error", "name": "DisabledMigrate" },
972
+ { "inputs": [], "type": "error", "name": "DivisionByZero" },
973
+ {
974
+ "inputs": [
975
+ {
976
+ "internalType": "address",
977
+ "name": "implementation",
978
+ "type": "address"
979
+ }
980
+ ],
981
+ "type": "error",
982
+ "name": "ERC1967InvalidImplementation"
983
+ },
984
+ { "inputs": [], "type": "error", "name": "ERC1967NonPayable" },
985
+ { "inputs": [], "type": "error", "name": "FailedCall" },
986
+ {
987
+ "inputs": [],
988
+ "type": "error",
989
+ "name": "FeeBasisPointsGreaterThanMaximum"
990
+ },
991
+ { "inputs": [], "type": "error", "name": "FeeTooSmall" },
992
+ {
993
+ "inputs": [],
994
+ "type": "error",
995
+ "name": "InitialRealTokenReservesShouldBeLessThanTokenTotalSupply"
996
+ },
997
+ {
998
+ "inputs": [],
999
+ "type": "error",
1000
+ "name": "InitialVirtualTokenReservesShouldBeGreaterThanInitialRealTokenReserves"
1001
+ },
1002
+ { "inputs": [], "type": "error", "name": "InsufficientMigrationFee" },
1003
+ { "inputs": [], "type": "error", "name": "InvalidInitialization" },
1004
+ { "inputs": [], "type": "error", "name": "NotAuthorized" },
1005
+ { "inputs": [], "type": "error", "name": "NotEnoughRemainingAccounts" },
1006
+ { "inputs": [], "type": "error", "name": "NotEnoughTokensToBuy" },
1007
+ { "inputs": [], "type": "error", "name": "NotEnoughTokensToSell" },
1008
+ { "inputs": [], "type": "error", "name": "NotInitializing" },
1009
+ { "inputs": [], "type": "error", "name": "Overflow" },
1010
+ {
1011
+ "inputs": [],
1012
+ "type": "error",
1013
+ "name": "PoolMigrationFeeShouldBeGreaterThanCreatorFeePlusMaxMigrateFees"
1014
+ },
1015
+ {
1016
+ "inputs": [],
1017
+ "type": "error",
1018
+ "name": "PoolMigrationFeeShouldBeLessThanFinalRealEthReserves"
1019
+ },
1020
+ { "inputs": [], "type": "error", "name": "SellAmountTooSmall" },
1021
+ { "inputs": [], "type": "error", "name": "SellZeroAmount" },
1022
+ { "inputs": [], "type": "error", "name": "TooLittleEthReceived" },
1023
+ { "inputs": [], "type": "error", "name": "TooLittleTokensReceived" },
1024
+ { "inputs": [], "type": "error", "name": "TransferFailed" },
1025
+ {
1026
+ "inputs": [],
1027
+ "type": "error",
1028
+ "name": "UUPSUnauthorizedCallContext"
1029
+ },
1030
+ {
1031
+ "inputs": [
1032
+ { "internalType": "bytes32", "name": "slot", "type": "bytes32" }
1033
+ ],
1034
+ "type": "error",
1035
+ "name": "UUPSUnsupportedProxiableUUID"
1036
+ },
1037
+ {
1038
+ "inputs": [],
1039
+ "type": "error",
1040
+ "name": "UnsortedNotUniqueFeeRecipients"
1041
+ },
1042
+ {
1043
+ "inputs": [
1044
+ {
1045
+ "internalType": "address",
1046
+ "name": "user",
1047
+ "type": "address",
1048
+ "indexed": true
1049
+ },
1050
+ {
1051
+ "internalType": "address",
1052
+ "name": "mint",
1053
+ "type": "address",
1054
+ "indexed": true
1055
+ },
1056
+ {
1057
+ "internalType": "uint256",
1058
+ "name": "timestamp",
1059
+ "type": "uint256",
1060
+ "indexed": false
1061
+ }
1062
+ ],
1063
+ "type": "event",
1064
+ "name": "CompleteEvent",
1065
+ "anonymous": false
1066
+ },
1067
+ {
1068
+ "inputs": [
1069
+ {
1070
+ "internalType": "address",
1071
+ "name": "user",
1072
+ "type": "address",
1073
+ "indexed": true
1074
+ },
1075
+ {
1076
+ "internalType": "address",
1077
+ "name": "mint",
1078
+ "type": "address",
1079
+ "indexed": true
1080
+ },
1081
+ {
1082
+ "internalType": "uint256",
1083
+ "name": "mintAmount",
1084
+ "type": "uint256",
1085
+ "indexed": false
1086
+ },
1087
+ {
1088
+ "internalType": "uint64",
1089
+ "name": "ethAmount",
1090
+ "type": "uint64",
1091
+ "indexed": false
1092
+ },
1093
+ {
1094
+ "internalType": "uint64",
1095
+ "name": "poolMigrationFee",
1096
+ "type": "uint64",
1097
+ "indexed": false
1098
+ },
1099
+ {
1100
+ "internalType": "uint256",
1101
+ "name": "timestamp",
1102
+ "type": "uint256",
1103
+ "indexed": false
1104
+ },
1105
+ {
1106
+ "internalType": "address",
1107
+ "name": "pool",
1108
+ "type": "address",
1109
+ "indexed": true
1110
+ }
1111
+ ],
1112
+ "type": "event",
1113
+ "name": "CompleteManiaAmmMigrationEvent",
1114
+ "anonymous": false
1115
+ },
1116
+ {
1117
+ "inputs": [
1118
+ {
1119
+ "internalType": "string",
1120
+ "name": "name",
1121
+ "type": "string",
1122
+ "indexed": false
1123
+ },
1124
+ {
1125
+ "internalType": "string",
1126
+ "name": "symbol",
1127
+ "type": "string",
1128
+ "indexed": false
1129
+ },
1130
+ {
1131
+ "internalType": "string",
1132
+ "name": "uri",
1133
+ "type": "string",
1134
+ "indexed": false
1135
+ },
1136
+ {
1137
+ "internalType": "address",
1138
+ "name": "mint",
1139
+ "type": "address",
1140
+ "indexed": true
1141
+ },
1142
+ {
1143
+ "internalType": "address",
1144
+ "name": "user",
1145
+ "type": "address",
1146
+ "indexed": true
1147
+ },
1148
+ {
1149
+ "internalType": "address",
1150
+ "name": "creator",
1151
+ "type": "address",
1152
+ "indexed": true
1153
+ },
1154
+ {
1155
+ "internalType": "uint256",
1156
+ "name": "timestamp",
1157
+ "type": "uint256",
1158
+ "indexed": false
1159
+ }
1160
+ ],
1161
+ "type": "event",
1162
+ "name": "CreateEvent",
1163
+ "anonymous": false
1164
+ },
1165
+ {
1166
+ "inputs": [
1167
+ {
1168
+ "internalType": "uint64",
1169
+ "name": "version",
1170
+ "type": "uint64",
1171
+ "indexed": false
1172
+ }
1173
+ ],
1174
+ "type": "event",
1175
+ "name": "Initialized",
1176
+ "anonymous": false
1177
+ },
1178
+ {
1179
+ "inputs": [
1180
+ {
1181
+ "internalType": "uint256",
1182
+ "name": "initialVirtualTokenReserves",
1183
+ "type": "uint256",
1184
+ "indexed": false
1185
+ },
1186
+ {
1187
+ "internalType": "uint64",
1188
+ "name": "initialVirtualEthReserves",
1189
+ "type": "uint64",
1190
+ "indexed": false
1191
+ },
1192
+ {
1193
+ "internalType": "uint256",
1194
+ "name": "initialRealTokenReserves",
1195
+ "type": "uint256",
1196
+ "indexed": false
1197
+ },
1198
+ {
1199
+ "internalType": "uint64",
1200
+ "name": "finalRealEthReserves",
1201
+ "type": "uint64",
1202
+ "indexed": false
1203
+ },
1204
+ {
1205
+ "internalType": "uint256",
1206
+ "name": "tokenTotalSupply",
1207
+ "type": "uint256",
1208
+ "indexed": false
1209
+ },
1210
+ {
1211
+ "internalType": "uint64",
1212
+ "name": "feeBasisPoints",
1213
+ "type": "uint64",
1214
+ "indexed": false
1215
+ },
1216
+ {
1217
+ "internalType": "address",
1218
+ "name": "withdrawAuthority",
1219
+ "type": "address",
1220
+ "indexed": false
1221
+ },
1222
+ {
1223
+ "internalType": "bool",
1224
+ "name": "enableMigrate",
1225
+ "type": "bool",
1226
+ "indexed": false
1227
+ },
1228
+ {
1229
+ "internalType": "uint64",
1230
+ "name": "poolMigrationFee",
1231
+ "type": "uint64",
1232
+ "indexed": false
1233
+ },
1234
+ {
1235
+ "internalType": "address",
1236
+ "name": "feeRecipient",
1237
+ "type": "address",
1238
+ "indexed": false
1239
+ },
1240
+ {
1241
+ "internalType": "uint256",
1242
+ "name": "timestamp",
1243
+ "type": "uint256",
1244
+ "indexed": false
1245
+ }
1246
+ ],
1247
+ "type": "event",
1248
+ "name": "SetParamsEvent",
1249
+ "anonymous": false
1250
+ },
1251
+ {
1252
+ "inputs": [
1253
+ {
1254
+ "internalType": "address",
1255
+ "name": "mint",
1256
+ "type": "address",
1257
+ "indexed": true
1258
+ },
1259
+ {
1260
+ "internalType": "uint64",
1261
+ "name": "ethAmount",
1262
+ "type": "uint64",
1263
+ "indexed": false
1264
+ },
1265
+ {
1266
+ "internalType": "uint256",
1267
+ "name": "tokenAmount",
1268
+ "type": "uint256",
1269
+ "indexed": false
1270
+ },
1271
+ {
1272
+ "internalType": "bool",
1273
+ "name": "isBuy",
1274
+ "type": "bool",
1275
+ "indexed": false
1276
+ },
1277
+ {
1278
+ "internalType": "address",
1279
+ "name": "user",
1280
+ "type": "address",
1281
+ "indexed": true
1282
+ },
1283
+ {
1284
+ "internalType": "uint256",
1285
+ "name": "timestamp",
1286
+ "type": "uint256",
1287
+ "indexed": false
1288
+ },
1289
+ {
1290
+ "internalType": "uint64",
1291
+ "name": "virtualEthReserves",
1292
+ "type": "uint64",
1293
+ "indexed": false
1294
+ },
1295
+ {
1296
+ "internalType": "uint256",
1297
+ "name": "virtualTokenReserves",
1298
+ "type": "uint256",
1299
+ "indexed": false
1300
+ },
1301
+ {
1302
+ "internalType": "uint64",
1303
+ "name": "realEthReserves",
1304
+ "type": "uint64",
1305
+ "indexed": false
1306
+ },
1307
+ {
1308
+ "internalType": "uint256",
1309
+ "name": "realTokenReserves",
1310
+ "type": "uint256",
1311
+ "indexed": false
1312
+ }
1313
+ ],
1314
+ "type": "event",
1315
+ "name": "TradeEvent",
1316
+ "anonymous": false
1317
+ },
1318
+ {
1319
+ "inputs": [
1320
+ {
1321
+ "internalType": "address",
1322
+ "name": "authority",
1323
+ "type": "address",
1324
+ "indexed": true
1325
+ },
1326
+ {
1327
+ "internalType": "address",
1328
+ "name": "oldFeeRecipient",
1329
+ "type": "address",
1330
+ "indexed": true
1331
+ },
1332
+ {
1333
+ "internalType": "address",
1334
+ "name": "newFeeRecipient",
1335
+ "type": "address",
1336
+ "indexed": true
1337
+ },
1338
+ {
1339
+ "internalType": "uint256",
1340
+ "name": "timestamp",
1341
+ "type": "uint256",
1342
+ "indexed": false
1343
+ }
1344
+ ],
1345
+ "type": "event",
1346
+ "name": "UpdateFeeRecipientEvent",
1347
+ "anonymous": false
1348
+ },
1349
+ {
1350
+ "inputs": [
1351
+ {
1352
+ "internalType": "address",
1353
+ "name": "authority",
1354
+ "type": "address",
1355
+ "indexed": true
1356
+ },
1357
+ {
1358
+ "internalType": "address",
1359
+ "name": "newAuthority",
1360
+ "type": "address",
1361
+ "indexed": true
1362
+ },
1363
+ {
1364
+ "internalType": "uint256",
1365
+ "name": "timestamp",
1366
+ "type": "uint256",
1367
+ "indexed": false
1368
+ }
1369
+ ],
1370
+ "type": "event",
1371
+ "name": "UpdateGlobalAuthorityEvent",
1372
+ "anonymous": false
1373
+ },
1374
+ {
1375
+ "inputs": [
1376
+ {
1377
+ "internalType": "address",
1378
+ "name": "implementation",
1379
+ "type": "address",
1380
+ "indexed": true
1381
+ }
1382
+ ],
1383
+ "type": "event",
1384
+ "name": "Upgraded",
1385
+ "anonymous": false
1386
+ },
1387
+ {
1388
+ "inputs": [
1389
+ {
1390
+ "internalType": "address",
1391
+ "name": "user",
1392
+ "type": "address",
1393
+ "indexed": true
1394
+ },
1395
+ {
1396
+ "internalType": "address",
1397
+ "name": "mint",
1398
+ "type": "address",
1399
+ "indexed": true
1400
+ },
1401
+ {
1402
+ "internalType": "uint256",
1403
+ "name": "volumeAmount",
1404
+ "type": "uint256",
1405
+ "indexed": false
1406
+ },
1407
+ {
1408
+ "internalType": "uint256",
1409
+ "name": "totalVolume",
1410
+ "type": "uint256",
1411
+ "indexed": false
1412
+ },
1413
+ {
1414
+ "internalType": "uint256",
1415
+ "name": "timestamp",
1416
+ "type": "uint256",
1417
+ "indexed": false
1418
+ }
1419
+ ],
1420
+ "type": "event",
1421
+ "name": "VolumeTracked",
1422
+ "anonymous": false
1423
+ },
1424
+ {
1425
+ "inputs": [],
1426
+ "stateMutability": "view",
1427
+ "type": "function",
1428
+ "name": "TICK_LOWER",
1429
+ "outputs": [{ "internalType": "int24", "name": "", "type": "int24" }]
1430
+ },
1431
+ {
1432
+ "inputs": [],
1433
+ "stateMutability": "view",
1434
+ "type": "function",
1435
+ "name": "TICK_UPPER",
1436
+ "outputs": [{ "internalType": "int24", "name": "", "type": "int24" }]
1437
+ },
1438
+ {
1439
+ "inputs": [],
1440
+ "stateMutability": "view",
1441
+ "type": "function",
1442
+ "name": "UNISWAP_FEE_TIER",
1443
+ "outputs": [
1444
+ { "internalType": "uint24", "name": "", "type": "uint24" }
1445
+ ]
1446
+ },
1447
+ {
1448
+ "inputs": [],
1449
+ "stateMutability": "view",
1450
+ "type": "function",
1451
+ "name": "UPGRADE_INTERFACE_VERSION",
1452
+ "outputs": [
1453
+ { "internalType": "string", "name": "", "type": "string" }
1454
+ ]
1455
+ },
1456
+ {
1457
+ "inputs": [
1458
+ { "internalType": "address", "name": "mint", "type": "address" }
1459
+ ],
1460
+ "stateMutability": "view",
1461
+ "type": "function",
1462
+ "name": "bondingCurves",
1463
+ "outputs": [
1464
+ {
1465
+ "internalType": "uint256",
1466
+ "name": "virtualTokenReserves",
1467
+ "type": "uint256"
1468
+ },
1469
+ {
1470
+ "internalType": "uint64",
1471
+ "name": "virtualEthReserves",
1472
+ "type": "uint64"
1473
+ },
1474
+ {
1475
+ "internalType": "uint256",
1476
+ "name": "realTokenReserves",
1477
+ "type": "uint256"
1478
+ },
1479
+ {
1480
+ "internalType": "uint64",
1481
+ "name": "realEthReserves",
1482
+ "type": "uint64"
1483
+ },
1484
+ {
1485
+ "internalType": "uint256",
1486
+ "name": "tokenTotalSupply",
1487
+ "type": "uint256"
1488
+ },
1489
+ { "internalType": "bool", "name": "complete", "type": "bool" },
1490
+ { "internalType": "bool", "name": "trackVolume", "type": "bool" }
1491
+ ]
1492
+ },
1493
+ {
1494
+ "inputs": [
1495
+ { "internalType": "address", "name": "token", "type": "address" },
1496
+ {
1497
+ "internalType": "uint256",
1498
+ "name": "minTokensOut",
1499
+ "type": "uint256"
1500
+ },
1501
+ {
1502
+ "internalType": "address",
1503
+ "name": "recipient",
1504
+ "type": "address"
1505
+ }
1506
+ ],
1507
+ "stateMutability": "payable",
1508
+ "type": "function",
1509
+ "name": "buy"
1510
+ },
1511
+ {
1512
+ "inputs": [
1513
+ { "internalType": "string", "name": "name", "type": "string" },
1514
+ { "internalType": "string", "name": "symbol", "type": "string" },
1515
+ { "internalType": "string", "name": "uri", "type": "string" },
1516
+ { "internalType": "address", "name": "creator", "type": "address" }
1517
+ ],
1518
+ "stateMutability": "nonpayable",
1519
+ "type": "function",
1520
+ "name": "create",
1521
+ "outputs": [
1522
+ { "internalType": "address", "name": "token", "type": "address" }
1523
+ ]
1524
+ },
1525
+ {
1526
+ "inputs": [
1527
+ { "internalType": "string", "name": "name", "type": "string" },
1528
+ { "internalType": "string", "name": "symbol", "type": "string" },
1529
+ { "internalType": "string", "name": "uri", "type": "string" },
1530
+ { "internalType": "address", "name": "creator", "type": "address" },
1531
+ {
1532
+ "internalType": "uint256",
1533
+ "name": "minTokensOut",
1534
+ "type": "uint256"
1535
+ }
1536
+ ],
1537
+ "stateMutability": "payable",
1538
+ "type": "function",
1539
+ "name": "createAndBuy",
1540
+ "outputs": [
1541
+ { "internalType": "address", "name": "token", "type": "address" }
1542
+ ]
1543
+ },
1544
+ {
1545
+ "inputs": [
1546
+ { "internalType": "address", "name": "token", "type": "address" }
1547
+ ],
1548
+ "stateMutability": "view",
1549
+ "type": "function",
1550
+ "name": "getBondingCurve",
1551
+ "outputs": [
1552
+ {
1553
+ "internalType": "struct ManiaFactoryUpgradeable.BondingCurve",
1554
+ "name": "curve",
1555
+ "type": "tuple",
1556
+ "components": [
1557
+ {
1558
+ "internalType": "uint256",
1559
+ "name": "virtualTokenReserves",
1560
+ "type": "uint256"
1561
+ },
1562
+ {
1563
+ "internalType": "uint64",
1564
+ "name": "virtualEthReserves",
1565
+ "type": "uint64"
1566
+ },
1567
+ {
1568
+ "internalType": "uint256",
1569
+ "name": "realTokenReserves",
1570
+ "type": "uint256"
1571
+ },
1572
+ {
1573
+ "internalType": "uint64",
1574
+ "name": "realEthReserves",
1575
+ "type": "uint64"
1576
+ },
1577
+ {
1578
+ "internalType": "uint256",
1579
+ "name": "tokenTotalSupply",
1580
+ "type": "uint256"
1581
+ },
1582
+ { "internalType": "bool", "name": "complete", "type": "bool" },
1583
+ {
1584
+ "internalType": "bool",
1585
+ "name": "trackVolume",
1586
+ "type": "bool"
1587
+ }
1588
+ ]
1589
+ }
1590
+ ]
1591
+ },
1592
+ {
1593
+ "inputs": [
1594
+ { "internalType": "address", "name": "token", "type": "address" },
1595
+ { "internalType": "uint64", "name": "ethAmount", "type": "uint64" }
1596
+ ],
1597
+ "stateMutability": "view",
1598
+ "type": "function",
1599
+ "name": "getBuyQuote",
1600
+ "outputs": [
1601
+ {
1602
+ "internalType": "uint256",
1603
+ "name": "tokenAmount",
1604
+ "type": "uint256"
1605
+ }
1606
+ ]
1607
+ },
1608
+ {
1609
+ "inputs": [
1610
+ { "internalType": "uint64", "name": "amount", "type": "uint64" }
1611
+ ],
1612
+ "stateMutability": "view",
1613
+ "type": "function",
1614
+ "name": "getFee",
1615
+ "outputs": [
1616
+ { "internalType": "uint128", "name": "fee", "type": "uint128" }
1617
+ ]
1618
+ },
1619
+ {
1620
+ "inputs": [
1621
+ { "internalType": "address", "name": "token", "type": "address" },
1622
+ { "internalType": "uint256", "name": "amount", "type": "uint256" }
1623
+ ],
1624
+ "stateMutability": "view",
1625
+ "type": "function",
1626
+ "name": "getSellQuote",
1627
+ "outputs": [
1628
+ {
1629
+ "internalType": "uint128",
1630
+ "name": "ethOutput",
1631
+ "type": "uint128"
1632
+ }
1633
+ ]
1634
+ },
1635
+ {
1636
+ "inputs": [],
1637
+ "stateMutability": "view",
1638
+ "type": "function",
1639
+ "name": "global",
1640
+ "outputs": [
1641
+ { "internalType": "bool", "name": "initialized", "type": "bool" },
1642
+ {
1643
+ "internalType": "address",
1644
+ "name": "authority",
1645
+ "type": "address"
1646
+ },
1647
+ {
1648
+ "internalType": "address",
1649
+ "name": "feeRecipient",
1650
+ "type": "address"
1651
+ },
1652
+ {
1653
+ "internalType": "uint256",
1654
+ "name": "initialVirtualTokenReserves",
1655
+ "type": "uint256"
1656
+ },
1657
+ {
1658
+ "internalType": "uint64",
1659
+ "name": "initialVirtualEthReserves",
1660
+ "type": "uint64"
1661
+ },
1662
+ {
1663
+ "internalType": "uint256",
1664
+ "name": "initialRealTokenReserves",
1665
+ "type": "uint256"
1666
+ },
1667
+ {
1668
+ "internalType": "uint256",
1669
+ "name": "tokenTotalSupply",
1670
+ "type": "uint256"
1671
+ },
1672
+ {
1673
+ "internalType": "uint64",
1674
+ "name": "feeBasisPoints",
1675
+ "type": "uint64"
1676
+ },
1677
+ {
1678
+ "internalType": "address",
1679
+ "name": "withdrawAuthority",
1680
+ "type": "address"
1681
+ },
1682
+ { "internalType": "bool", "name": "enableMigrate", "type": "bool" },
1683
+ {
1684
+ "internalType": "uint64",
1685
+ "name": "poolMigrationFee",
1686
+ "type": "uint64"
1687
+ }
1688
+ ]
1689
+ },
1690
+ {
1691
+ "inputs": [],
1692
+ "stateMutability": "nonpayable",
1693
+ "type": "function",
1694
+ "name": "initialize"
1695
+ },
1696
+ {
1697
+ "inputs": [
1698
+ { "internalType": "address", "name": "token", "type": "address" }
1699
+ ],
1700
+ "stateMutability": "payable",
1701
+ "type": "function",
1702
+ "name": "migrate"
1703
+ },
1704
+ {
1705
+ "inputs": [],
1706
+ "stateMutability": "view",
1707
+ "type": "function",
1708
+ "name": "nonfungiblePositionManager",
1709
+ "outputs": [
1710
+ {
1711
+ "internalType": "contract INonfungiblePositionManager",
1712
+ "name": "",
1713
+ "type": "address"
1714
+ }
1715
+ ]
1716
+ },
1717
+ {
1718
+ "inputs": [],
1719
+ "stateMutability": "view",
1720
+ "type": "function",
1721
+ "name": "proxiableUUID",
1722
+ "outputs": [
1723
+ { "internalType": "bytes32", "name": "", "type": "bytes32" }
1724
+ ]
1725
+ },
1726
+ {
1727
+ "inputs": [
1728
+ { "internalType": "address", "name": "token", "type": "address" },
1729
+ { "internalType": "uint256", "name": "amount", "type": "uint256" },
1730
+ {
1731
+ "internalType": "uint64",
1732
+ "name": "minEthOutput",
1733
+ "type": "uint64"
1734
+ }
1735
+ ],
1736
+ "stateMutability": "nonpayable",
1737
+ "type": "function",
1738
+ "name": "sell"
1739
+ },
1740
+ {
1741
+ "inputs": [
1742
+ {
1743
+ "internalType": "struct ManiaFactoryUpgradeable.SetParamsInput",
1744
+ "name": "params",
1745
+ "type": "tuple",
1746
+ "components": [
1747
+ {
1748
+ "internalType": "uint256",
1749
+ "name": "initialVirtualTokenReserves",
1750
+ "type": "uint256"
1751
+ },
1752
+ {
1753
+ "internalType": "uint64",
1754
+ "name": "initialVirtualEthReserves",
1755
+ "type": "uint64"
1756
+ },
1757
+ {
1758
+ "internalType": "uint256",
1759
+ "name": "initialRealTokenReserves",
1760
+ "type": "uint256"
1761
+ },
1762
+ {
1763
+ "internalType": "uint256",
1764
+ "name": "tokenTotalSupply",
1765
+ "type": "uint256"
1766
+ },
1767
+ {
1768
+ "internalType": "uint64",
1769
+ "name": "feeBasisPoints",
1770
+ "type": "uint64"
1771
+ },
1772
+ {
1773
+ "internalType": "address",
1774
+ "name": "withdrawAuthority",
1775
+ "type": "address"
1776
+ },
1777
+ {
1778
+ "internalType": "bool",
1779
+ "name": "enableMigrate",
1780
+ "type": "bool"
1781
+ },
1782
+ {
1783
+ "internalType": "uint64",
1784
+ "name": "poolMigrationFee",
1785
+ "type": "uint64"
1786
+ },
1787
+ {
1788
+ "internalType": "address",
1789
+ "name": "feeRecipient",
1790
+ "type": "address"
1791
+ }
1792
+ ]
1793
+ }
1794
+ ],
1795
+ "stateMutability": "nonpayable",
1796
+ "type": "function",
1797
+ "name": "setParams"
1798
+ },
1799
+ {
1800
+ "inputs": [
1801
+ { "internalType": "address", "name": "token", "type": "address" },
1802
+ { "internalType": "bool", "name": "enabled", "type": "bool" }
1803
+ ],
1804
+ "stateMutability": "nonpayable",
1805
+ "type": "function",
1806
+ "name": "setTrackVolume"
1807
+ },
1808
+ {
1809
+ "inputs": [
1810
+ {
1811
+ "internalType": "address",
1812
+ "name": "_nonfungiblePositionManager",
1813
+ "type": "address"
1814
+ },
1815
+ { "internalType": "address", "name": "_weth9", "type": "address" }
1816
+ ],
1817
+ "stateMutability": "nonpayable",
1818
+ "type": "function",
1819
+ "name": "setUniswapV3Addresses"
1820
+ },
1821
+ {
1822
+ "inputs": [
1823
+ {
1824
+ "internalType": "address",
1825
+ "name": "newFeeRecipient",
1826
+ "type": "address"
1827
+ }
1828
+ ],
1829
+ "stateMutability": "nonpayable",
1830
+ "type": "function",
1831
+ "name": "updateFeeRecipient"
1832
+ },
1833
+ {
1834
+ "inputs": [
1835
+ {
1836
+ "internalType": "address",
1837
+ "name": "newAuthority",
1838
+ "type": "address"
1839
+ }
1840
+ ],
1841
+ "stateMutability": "nonpayable",
1842
+ "type": "function",
1843
+ "name": "updateGlobalAuthority"
1844
+ },
1845
+ {
1846
+ "inputs": [
1847
+ {
1848
+ "internalType": "address",
1849
+ "name": "newImplementation",
1850
+ "type": "address"
1851
+ },
1852
+ { "internalType": "bytes", "name": "data", "type": "bytes" }
1853
+ ],
1854
+ "stateMutability": "payable",
1855
+ "type": "function",
1856
+ "name": "upgradeToAndCall"
1857
+ },
1858
+ {
1859
+ "inputs": [
1860
+ { "internalType": "address", "name": "user", "type": "address" }
1861
+ ],
1862
+ "stateMutability": "view",
1863
+ "type": "function",
1864
+ "name": "userVolume",
1865
+ "outputs": [
1866
+ { "internalType": "uint256", "name": "volume", "type": "uint256" }
1867
+ ]
1868
+ },
1869
+ {
1870
+ "inputs": [],
1871
+ "stateMutability": "view",
1872
+ "type": "function",
1873
+ "name": "weth9",
1874
+ "outputs": [
1875
+ { "internalType": "contract IWETH9", "name": "", "type": "address" }
1876
+ ]
1877
+ },
1878
+ { "inputs": [], "stateMutability": "payable", "type": "receive" }
1879
+ ],
1880
+ "devdoc": {
1881
+ "kind": "dev",
1882
+ "methods": {
1883
+ "constructor": { "custom:oz-upgrades-unsafe-allow": "constructor" },
1884
+ "migrate(address)": {
1885
+ "details": "Caller must send poolMigrationFee as msg.value. Full 4 ETH from bonding curve goes to LP."
1886
+ },
1887
+ "proxiableUUID()": {
1888
+ "details": "Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."
1889
+ },
1890
+ "upgradeToAndCall(address,bytes)": {
1891
+ "custom:oz-upgrades-unsafe-allow-reachable": "delegatecall",
1892
+ "details": "Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."
1893
+ }
1894
+ },
1895
+ "version": 1
1896
+ },
1897
+ "userdoc": {
1898
+ "kind": "user",
1899
+ "methods": {
1900
+ "buy(address,uint256,address)": {
1901
+ "notice": "Buys tokens with an exact ETH amount"
1902
+ },
1903
+ "create(string,string,string,address)": {
1904
+ "notice": "Creates a new token with bonding curve and pre-initializes pool"
1905
+ },
1906
+ "createAndBuy(string,string,string,address,uint256)": {
1907
+ "notice": "Creates a new token and buys tokens in a single transaction"
1908
+ },
1909
+ "initialize()": { "notice": "Initializes the global state" },
1910
+ "migrate(address)": {
1911
+ "notice": "Migrates liquidity to UniswapV3 pool"
1912
+ },
1913
+ "sell(address,uint256,uint64)": {
1914
+ "notice": "Sells tokens to bonding curve"
1915
+ },
1916
+ "setParams((uint256,uint64,uint256,uint256,uint64,address,bool,uint64,address))": {
1917
+ "notice": "Sets global parameters"
1918
+ },
1919
+ "setUniswapV3Addresses(address,address)": {
1920
+ "notice": "Sets UniswapV3 addresses for migration"
1921
+ },
1922
+ "updateFeeRecipient(address)": {
1923
+ "notice": "Updates the fee recipient"
1924
+ },
1925
+ "updateGlobalAuthority(address)": {
1926
+ "notice": "Updates the global authority"
1927
+ }
1928
+ },
1929
+ "version": 1
1930
+ }
1931
+ },
1932
+ "settings": {
1933
+ "remappings": [
1934
+ "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/",
1935
+ "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
1936
+ "@uniswap/v3-core/=lib/v3-core/",
1937
+ "@uniswap/v3-periphery/=lib/v3-periphery/",
1938
+ "erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/",
1939
+ "forge-std/=lib/forge-std/src/",
1940
+ "halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/",
1941
+ "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/",
1942
+ "openzeppelin-contracts/=lib/openzeppelin-contracts/",
1943
+ "v3-core/=lib/v3-core/",
1944
+ "v3-periphery/=lib/v3-periphery/contracts/"
1945
+ ],
1946
+ "optimizer": { "enabled": true, "runs": 200 },
1947
+ "metadata": { "bytecodeHash": "ipfs" },
1948
+ "compilationTarget": {
1949
+ "src/ManiaFactoryUpgradeable.sol": "ManiaFactoryUpgradeable"
1950
+ },
1951
+ "evmVersion": "prague",
1952
+ "libraries": {}
1953
+ },
1954
+ "sources": {
1955
+ "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol": {
1956
+ "keccak256": "0x30d125b8417684dbfea3e8d57284b353a86b22077237b4aaf098c0b54b153e16",
1957
+ "urls": [
1958
+ "bzz-raw://2813775a6326190e75dfa9005c1abbdb1e541c195c0bf5656dd4199e8c66fd8d",
1959
+ "dweb:/ipfs/QmYDKANBezQXNrEDyJ69RVXkgypW1hWj7MAvjfdNHTZY8L"
1960
+ ],
1961
+ "license": "MIT"
1962
+ },
1963
+ "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol": {
1964
+ "keccak256": "0x4918e374e9ce84e9b196486bafbd46851d5e72ab315e31f0b1d7c443dcfea5bf",
1965
+ "urls": [
1966
+ "bzz-raw://2ced247afc54a93a13922ebbd63add61130abe483ab5b5b78e7e991d564d150e",
1967
+ "dweb:/ipfs/QmTfxjcTgfekiguegjvYMyfqhyRNffui17f8xi86BCZNVt"
1968
+ ],
1969
+ "license": "MIT"
1970
+ },
1971
+ "lib/openzeppelin-contracts/contracts/access/Ownable.sol": {
1972
+ "keccak256": "0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb",
1973
+ "urls": [
1974
+ "bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6",
1975
+ "dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"
1976
+ ],
1977
+ "license": "MIT"
1978
+ },
1979
+ "lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol": {
1980
+ "keccak256": "0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5",
1981
+ "urls": [
1982
+ "bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c",
1983
+ "dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"
1984
+ ],
1985
+ "license": "MIT"
1986
+ },
1987
+ "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol": {
1988
+ "keccak256": "0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b",
1989
+ "urls": [
1990
+ "bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422",
1991
+ "dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"
1992
+ ],
1993
+ "license": "MIT"
1994
+ },
1995
+ "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol": {
1996
+ "keccak256": "0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618",
1997
+ "urls": [
1998
+ "bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a",
1999
+ "dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"
2000
+ ],
2001
+ "license": "MIT"
2002
+ },
2003
+ "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol": {
2004
+ "keccak256": "0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b",
2005
+ "urls": [
2006
+ "bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d",
2007
+ "dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"
2008
+ ],
2009
+ "license": "MIT"
2010
+ },
2011
+ "lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol": {
2012
+ "keccak256": "0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05",
2013
+ "urls": [
2014
+ "bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08",
2015
+ "dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"
2016
+ ],
2017
+ "license": "MIT"
2018
+ },
2019
+ "lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol": {
2020
+ "keccak256": "0x1a26353563a2c63b4120ea0b94727253eeff84fe2241d42c1452308b9080e66a",
2021
+ "urls": [
2022
+ "bzz-raw://49a95e36d267828b4357186a79917002d616d8634e25d1f9818e2354cd2e7d34",
2023
+ "dweb:/ipfs/QmWDkqE4KkyLAS2UkLsRgXE1FGB1qfEgBC3zMXBVsVWfdk"
2024
+ ],
2025
+ "license": "MIT"
2026
+ },
2027
+ "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol": {
2028
+ "keccak256": "0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2",
2029
+ "urls": [
2030
+ "bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303",
2031
+ "dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"
2032
+ ],
2033
+ "license": "MIT"
2034
+ },
2035
+ "lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol": {
2036
+ "keccak256": "0xf78f05f3b8c9f75570e85300d7b4600d7f6f6a198449273f31d44c1641adb46f",
2037
+ "urls": [
2038
+ "bzz-raw://e28b872613b45e0e801d4995aa4380be2531147bfe2d85c1d6275f1de514fba3",
2039
+ "dweb:/ipfs/QmeeFcfShHYaS3BdgVj78nxR28ZaVUwbvr66ud8bT6kzw9"
2040
+ ],
2041
+ "license": "MIT"
2042
+ },
2043
+ "lib/openzeppelin-contracts/contracts/utils/Address.sol": {
2044
+ "keccak256": "0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346",
2045
+ "urls": [
2046
+ "bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710",
2047
+ "dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d"
2048
+ ],
2049
+ "license": "MIT"
2050
+ },
2051
+ "lib/openzeppelin-contracts/contracts/utils/Context.sol": {
2052
+ "keccak256": "0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2",
2053
+ "urls": [
2054
+ "bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12",
2055
+ "dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"
2056
+ ],
2057
+ "license": "MIT"
2058
+ },
2059
+ "lib/openzeppelin-contracts/contracts/utils/Errors.sol": {
2060
+ "keccak256": "0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123",
2061
+ "urls": [
2062
+ "bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf",
2063
+ "dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"
2064
+ ],
2065
+ "license": "MIT"
2066
+ },
2067
+ "lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol": {
2068
+ "keccak256": "0x5b4802a4352474792df3107e961d1cc593e47b820c14f69d3505cb28f5a6a583",
2069
+ "urls": [
2070
+ "bzz-raw://a6f86fd01f829499fe0545ff5dda07d4521988e88bfe0bf801fc15650921ed56",
2071
+ "dweb:/ipfs/QmUUKu4ZDffHAmfkf3asuQfmLTyfpuy2Amdncc3SqfzKPG"
2072
+ ],
2073
+ "license": "MIT"
2074
+ },
2075
+ "lib/openzeppelin-contracts/contracts/utils/Panic.sol": {
2076
+ "keccak256": "0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a",
2077
+ "urls": [
2078
+ "bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a",
2079
+ "dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"
2080
+ ],
2081
+ "license": "MIT"
2082
+ },
2083
+ "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol": {
2084
+ "keccak256": "0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97",
2085
+ "urls": [
2086
+ "bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b",
2087
+ "dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"
2088
+ ],
2089
+ "license": "MIT"
2090
+ },
2091
+ "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol": {
2092
+ "keccak256": "0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c",
2093
+ "urls": [
2094
+ "bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617",
2095
+ "dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"
2096
+ ],
2097
+ "license": "MIT"
2098
+ },
2099
+ "lib/openzeppelin-contracts/contracts/utils/math/Math.sol": {
2100
+ "keccak256": "0x09e3f1c72d4c5cbe8e2644ab7313f8f7177533ae2f4c24cdcbbeaf520a73734c",
2101
+ "urls": [
2102
+ "bzz-raw://93208401215d539fa2d81626b207c1f611def7883d0e447b3b5969ebaa7b3c2c",
2103
+ "dweb:/ipfs/QmXPxDnQPx8LAweX5ZJqEcwkvs59kP4c64VVDG1Jjq1mef"
2104
+ ],
2105
+ "license": "MIT"
2106
+ },
2107
+ "lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol": {
2108
+ "keccak256": "0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54",
2109
+ "urls": [
2110
+ "bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8",
2111
+ "dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"
2112
+ ],
2113
+ "license": "MIT"
2114
+ },
2115
+ "src/ManiaFactoryUpgradeable.sol": {
2116
+ "keccak256": "0xdd8be9a6050d964715fce76d440895225b39f316bd401909c5519ffe9f955f35",
2117
+ "urls": [
2118
+ "bzz-raw://5b8631f60fc288c4cee6c5f483a04f9eabd82e2ceb328477656914bd7a529a38",
2119
+ "dweb:/ipfs/QmQ17DcuB189ztVkYfcVGdfZt3rTqFzf4frPDaJ5AHkyEv"
2120
+ ],
2121
+ "license": "MIT"
2122
+ },
2123
+ "src/ManiaToken.sol": {
2124
+ "keccak256": "0x05b3557d04763402dba1b04912b10d3704f419853ac55ec09944276c56c4834e",
2125
+ "urls": [
2126
+ "bzz-raw://d767617b46bed6b0a7dc0510298d07c324593e92852c86876c442b529b8b8dda",
2127
+ "dweb:/ipfs/QmaHowrstcstoRBUkhYZJfSxSgo9SgcN9YpsypqRZgWhxJ"
2128
+ ],
2129
+ "license": "MIT"
2130
+ },
2131
+ "src/interfaces/INonfungiblePositionManager.sol": {
2132
+ "keccak256": "0xb350fdca799e80a08e34b9d3e5154d701c6f9348182559a6ddf502debe82dd92",
2133
+ "urls": [
2134
+ "bzz-raw://bc65c3c346722727f6349159138035b26418fbcddfdfb88bab83fcc1e9740362",
2135
+ "dweb:/ipfs/QmNouEf2PsBBUDyyp1VnoUFGxNPaQT5hCK3Py3FFD8iwEi"
2136
+ ],
2137
+ "license": "GPL-2.0-or-later"
2138
+ },
2139
+ "src/interfaces/IUniswapV3Factory.sol": {
2140
+ "keccak256": "0x4238cc9e4d4e722b97b1da2a613bce7498fbaa96e5f6d1a9edd15b88d619c37b",
2141
+ "urls": [
2142
+ "bzz-raw://dd5e598c54ecce29115e69a1ac30ae48d4abece41afb28c93962aa6181ed8631",
2143
+ "dweb:/ipfs/QmaqKDa5bySfm3QMQ6afRfVQb6NwyMJoCdYXifJe4vXxA8"
2144
+ ],
2145
+ "license": "GPL-2.0-or-later"
2146
+ },
2147
+ "src/interfaces/IUniswapV3Pool.sol": {
2148
+ "keccak256": "0x4ed61e48b7d6e51fc06a31cb058ab9290140c898f37c3c14c25b0032f3c44092",
2149
+ "urls": [
2150
+ "bzz-raw://661aa5a27239c747e5550a375c702c08138fbec6b5d44bce47e640378a3956c0",
2151
+ "dweb:/ipfs/QmT7feTcffVcVZvwwm2tBkiyfmvKMHzxPwjrXsbaAYLczd"
2152
+ ],
2153
+ "license": "GPL-2.0-or-later"
2154
+ },
2155
+ "src/interfaces/IWETH9.sol": {
2156
+ "keccak256": "0xc8614170f6933b670a14352bf2d9277a729d25f5e9202c3c677e37e7fd094a9a",
2157
+ "urls": [
2158
+ "bzz-raw://cf907ba68328cee1f31c604942f33d408ff4dffb3bff0be9cab834b150ed37c3",
2159
+ "dweb:/ipfs/QmVgMxh9rqWbjmEX1HJ8QyYDhUckrGs2rvb5cR3ZghhZCq"
2160
+ ],
2161
+ "license": "GPL-2.0-or-later"
2162
+ },
2163
+ "src/tokens/ERC20.sol": {
2164
+ "keccak256": "0x4070106775a06b95735c7f7903435cf94cd91c9660c18a39035296e9807f9096",
2165
+ "urls": [
2166
+ "bzz-raw://89b56c350110684059c7bba19d7a118dddff9d71e24897449204feadab316ff4",
2167
+ "dweb:/ipfs/QmdDKfJceWvDXz2xsLPh4GF4WuLYMVMpEerimMy8LFBh6j"
2168
+ ],
2169
+ "license": "AGPL-3.0-only"
2170
+ },
2171
+ "src/utils/SafeTransferLib.sol": {
2172
+ "keccak256": "0x1f471ce40d2fbf4ccbcfe12d94ab62beb2ab656c6bac84afc384738615466f6a",
2173
+ "urls": [
2174
+ "bzz-raw://6a83ae4c269f1205ba12595ee20d990e63a8c020d693e9a16b7462a141324bae",
2175
+ "dweb:/ipfs/QmZnqgeP1yteDt9TrkygMkBPyaU3geGTAjSPccEyFk37Dv"
2176
+ ],
2177
+ "license": "AGPL-3.0-only"
2178
+ }
2179
+ },
2180
+ "version": 1
2181
+ },
2182
+ "id": 49
2183
+ }