@towns-protocol/generated 0.0.282 → 0.0.284

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.
Files changed (30) hide show
  1. package/dev/abis/DropFacet.abi.json +5 -0
  2. package/dev/abis/DropFacet.abi.ts +5 -0
  3. package/dev/abis/ISwapFacet.abi.json +22 -5
  4. package/dev/abis/ISwapFacet.abi.ts +22 -5
  5. package/dev/abis/ISwapRouter.abi.json +37 -8
  6. package/dev/abis/ISwapRouter.abi.ts +37 -8
  7. package/dev/abis/ISwapRouterBase.abi.json +5 -0
  8. package/dev/abis/ISwapRouterBase.abi.ts +5 -0
  9. package/dev/abis/MembershipFacet.abi.json +23 -0
  10. package/dev/abis/MembershipFacet.abi.ts +23 -0
  11. package/dev/abis/SimpleApp.abi.json +65 -0
  12. package/dev/abis/SimpleApp.abi.ts +65 -0
  13. package/dev/typings/ISwapFacet.ts +18 -8
  14. package/dev/typings/ISwapRouter.ts +25 -15
  15. package/dev/typings/MembershipFacet.ts +51 -8
  16. package/dev/typings/SimpleApp.ts +79 -0
  17. package/dev/typings/factories/DropFacet__factory.ts +6 -1
  18. package/dev/typings/factories/IDropFacet__factory.ts +5 -0
  19. package/dev/typings/factories/ISwapFacet__factory.ts +22 -5
  20. package/dev/typings/factories/ISwapRouter__factory.ts +37 -8
  21. package/dev/typings/factories/Member__factory.ts +1 -1
  22. package/dev/typings/factories/MembershipFacet__factory.ts +24 -1
  23. package/dev/typings/factories/MockLegacyArchitect__factory.ts +1 -1
  24. package/dev/typings/factories/SimpleApp__factory.ts +66 -1
  25. package/dev/typings/factories/UserEntitlement__factory.ts +1 -1
  26. package/dev/typings/factories/multichain/Towns__factory.ts +1677 -0
  27. package/dev/typings/factories/multichain/index.ts +4 -0
  28. package/dev/typings/multichain/Towns.ts +1731 -0
  29. package/dev/typings/multichain/index.ts +4 -0
  30. package/package.json +9 -9
@@ -0,0 +1,1677 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
5
+ import type { Provider, TransactionRequest } from "@ethersproject/providers";
6
+ import type { PromiseOrValue } from "../../common";
7
+ import type { Towns, TownsInterface } from "../../multichain/Towns";
8
+
9
+ const _abi = [
10
+ {
11
+ type: "constructor",
12
+ inputs: [
13
+ {
14
+ name: "_name",
15
+ type: "string",
16
+ internalType: "string",
17
+ },
18
+ {
19
+ name: "_symbol",
20
+ type: "string",
21
+ internalType: "string",
22
+ },
23
+ {
24
+ name: "_lzEndpoint",
25
+ type: "address",
26
+ internalType: "address",
27
+ },
28
+ {
29
+ name: "_owner",
30
+ type: "address",
31
+ internalType: "address",
32
+ },
33
+ ],
34
+ stateMutability: "nonpayable",
35
+ },
36
+ {
37
+ type: "function",
38
+ name: "SEND",
39
+ inputs: [],
40
+ outputs: [
41
+ {
42
+ name: "",
43
+ type: "uint16",
44
+ internalType: "uint16",
45
+ },
46
+ ],
47
+ stateMutability: "view",
48
+ },
49
+ {
50
+ type: "function",
51
+ name: "SEND_AND_CALL",
52
+ inputs: [],
53
+ outputs: [
54
+ {
55
+ name: "",
56
+ type: "uint16",
57
+ internalType: "uint16",
58
+ },
59
+ ],
60
+ stateMutability: "view",
61
+ },
62
+ {
63
+ type: "function",
64
+ name: "allowInitializePath",
65
+ inputs: [
66
+ {
67
+ name: "origin",
68
+ type: "tuple",
69
+ internalType: "struct Origin",
70
+ components: [
71
+ {
72
+ name: "srcEid",
73
+ type: "uint32",
74
+ internalType: "uint32",
75
+ },
76
+ {
77
+ name: "sender",
78
+ type: "bytes32",
79
+ internalType: "bytes32",
80
+ },
81
+ {
82
+ name: "nonce",
83
+ type: "uint64",
84
+ internalType: "uint64",
85
+ },
86
+ ],
87
+ },
88
+ ],
89
+ outputs: [
90
+ {
91
+ name: "",
92
+ type: "bool",
93
+ internalType: "bool",
94
+ },
95
+ ],
96
+ stateMutability: "view",
97
+ },
98
+ {
99
+ type: "function",
100
+ name: "allowance",
101
+ inputs: [
102
+ {
103
+ name: "owner",
104
+ type: "address",
105
+ internalType: "address",
106
+ },
107
+ {
108
+ name: "spender",
109
+ type: "address",
110
+ internalType: "address",
111
+ },
112
+ ],
113
+ outputs: [
114
+ {
115
+ name: "",
116
+ type: "uint256",
117
+ internalType: "uint256",
118
+ },
119
+ ],
120
+ stateMutability: "view",
121
+ },
122
+ {
123
+ type: "function",
124
+ name: "approvalRequired",
125
+ inputs: [],
126
+ outputs: [
127
+ {
128
+ name: "",
129
+ type: "bool",
130
+ internalType: "bool",
131
+ },
132
+ ],
133
+ stateMutability: "pure",
134
+ },
135
+ {
136
+ type: "function",
137
+ name: "approve",
138
+ inputs: [
139
+ {
140
+ name: "spender",
141
+ type: "address",
142
+ internalType: "address",
143
+ },
144
+ {
145
+ name: "value",
146
+ type: "uint256",
147
+ internalType: "uint256",
148
+ },
149
+ ],
150
+ outputs: [
151
+ {
152
+ name: "",
153
+ type: "bool",
154
+ internalType: "bool",
155
+ },
156
+ ],
157
+ stateMutability: "nonpayable",
158
+ },
159
+ {
160
+ type: "function",
161
+ name: "balanceOf",
162
+ inputs: [
163
+ {
164
+ name: "account",
165
+ type: "address",
166
+ internalType: "address",
167
+ },
168
+ ],
169
+ outputs: [
170
+ {
171
+ name: "",
172
+ type: "uint256",
173
+ internalType: "uint256",
174
+ },
175
+ ],
176
+ stateMutability: "view",
177
+ },
178
+ {
179
+ type: "function",
180
+ name: "combineOptions",
181
+ inputs: [
182
+ {
183
+ name: "_eid",
184
+ type: "uint32",
185
+ internalType: "uint32",
186
+ },
187
+ {
188
+ name: "_msgType",
189
+ type: "uint16",
190
+ internalType: "uint16",
191
+ },
192
+ {
193
+ name: "_extraOptions",
194
+ type: "bytes",
195
+ internalType: "bytes",
196
+ },
197
+ ],
198
+ outputs: [
199
+ {
200
+ name: "",
201
+ type: "bytes",
202
+ internalType: "bytes",
203
+ },
204
+ ],
205
+ stateMutability: "view",
206
+ },
207
+ {
208
+ type: "function",
209
+ name: "decimalConversionRate",
210
+ inputs: [],
211
+ outputs: [
212
+ {
213
+ name: "",
214
+ type: "uint256",
215
+ internalType: "uint256",
216
+ },
217
+ ],
218
+ stateMutability: "view",
219
+ },
220
+ {
221
+ type: "function",
222
+ name: "decimals",
223
+ inputs: [],
224
+ outputs: [
225
+ {
226
+ name: "",
227
+ type: "uint8",
228
+ internalType: "uint8",
229
+ },
230
+ ],
231
+ stateMutability: "view",
232
+ },
233
+ {
234
+ type: "function",
235
+ name: "endpoint",
236
+ inputs: [],
237
+ outputs: [
238
+ {
239
+ name: "",
240
+ type: "address",
241
+ internalType: "contract ILayerZeroEndpointV2",
242
+ },
243
+ ],
244
+ stateMutability: "view",
245
+ },
246
+ {
247
+ type: "function",
248
+ name: "enforcedOptions",
249
+ inputs: [
250
+ {
251
+ name: "eid",
252
+ type: "uint32",
253
+ internalType: "uint32",
254
+ },
255
+ {
256
+ name: "msgType",
257
+ type: "uint16",
258
+ internalType: "uint16",
259
+ },
260
+ ],
261
+ outputs: [
262
+ {
263
+ name: "enforcedOption",
264
+ type: "bytes",
265
+ internalType: "bytes",
266
+ },
267
+ ],
268
+ stateMutability: "view",
269
+ },
270
+ {
271
+ type: "function",
272
+ name: "isComposeMsgSender",
273
+ inputs: [
274
+ {
275
+ name: "",
276
+ type: "tuple",
277
+ internalType: "struct Origin",
278
+ components: [
279
+ {
280
+ name: "srcEid",
281
+ type: "uint32",
282
+ internalType: "uint32",
283
+ },
284
+ {
285
+ name: "sender",
286
+ type: "bytes32",
287
+ internalType: "bytes32",
288
+ },
289
+ {
290
+ name: "nonce",
291
+ type: "uint64",
292
+ internalType: "uint64",
293
+ },
294
+ ],
295
+ },
296
+ {
297
+ name: "",
298
+ type: "bytes",
299
+ internalType: "bytes",
300
+ },
301
+ {
302
+ name: "_sender",
303
+ type: "address",
304
+ internalType: "address",
305
+ },
306
+ ],
307
+ outputs: [
308
+ {
309
+ name: "",
310
+ type: "bool",
311
+ internalType: "bool",
312
+ },
313
+ ],
314
+ stateMutability: "view",
315
+ },
316
+ {
317
+ type: "function",
318
+ name: "isPeer",
319
+ inputs: [
320
+ {
321
+ name: "_eid",
322
+ type: "uint32",
323
+ internalType: "uint32",
324
+ },
325
+ {
326
+ name: "_peer",
327
+ type: "bytes32",
328
+ internalType: "bytes32",
329
+ },
330
+ ],
331
+ outputs: [
332
+ {
333
+ name: "",
334
+ type: "bool",
335
+ internalType: "bool",
336
+ },
337
+ ],
338
+ stateMutability: "view",
339
+ },
340
+ {
341
+ type: "function",
342
+ name: "lzReceive",
343
+ inputs: [
344
+ {
345
+ name: "_origin",
346
+ type: "tuple",
347
+ internalType: "struct Origin",
348
+ components: [
349
+ {
350
+ name: "srcEid",
351
+ type: "uint32",
352
+ internalType: "uint32",
353
+ },
354
+ {
355
+ name: "sender",
356
+ type: "bytes32",
357
+ internalType: "bytes32",
358
+ },
359
+ {
360
+ name: "nonce",
361
+ type: "uint64",
362
+ internalType: "uint64",
363
+ },
364
+ ],
365
+ },
366
+ {
367
+ name: "_guid",
368
+ type: "bytes32",
369
+ internalType: "bytes32",
370
+ },
371
+ {
372
+ name: "_message",
373
+ type: "bytes",
374
+ internalType: "bytes",
375
+ },
376
+ {
377
+ name: "_executor",
378
+ type: "address",
379
+ internalType: "address",
380
+ },
381
+ {
382
+ name: "_extraData",
383
+ type: "bytes",
384
+ internalType: "bytes",
385
+ },
386
+ ],
387
+ outputs: [],
388
+ stateMutability: "payable",
389
+ },
390
+ {
391
+ type: "function",
392
+ name: "lzReceiveAndRevert",
393
+ inputs: [
394
+ {
395
+ name: "_packets",
396
+ type: "tuple[]",
397
+ internalType: "struct InboundPacket[]",
398
+ components: [
399
+ {
400
+ name: "origin",
401
+ type: "tuple",
402
+ internalType: "struct Origin",
403
+ components: [
404
+ {
405
+ name: "srcEid",
406
+ type: "uint32",
407
+ internalType: "uint32",
408
+ },
409
+ {
410
+ name: "sender",
411
+ type: "bytes32",
412
+ internalType: "bytes32",
413
+ },
414
+ {
415
+ name: "nonce",
416
+ type: "uint64",
417
+ internalType: "uint64",
418
+ },
419
+ ],
420
+ },
421
+ {
422
+ name: "dstEid",
423
+ type: "uint32",
424
+ internalType: "uint32",
425
+ },
426
+ {
427
+ name: "receiver",
428
+ type: "address",
429
+ internalType: "address",
430
+ },
431
+ {
432
+ name: "guid",
433
+ type: "bytes32",
434
+ internalType: "bytes32",
435
+ },
436
+ {
437
+ name: "value",
438
+ type: "uint256",
439
+ internalType: "uint256",
440
+ },
441
+ {
442
+ name: "executor",
443
+ type: "address",
444
+ internalType: "address",
445
+ },
446
+ {
447
+ name: "message",
448
+ type: "bytes",
449
+ internalType: "bytes",
450
+ },
451
+ {
452
+ name: "extraData",
453
+ type: "bytes",
454
+ internalType: "bytes",
455
+ },
456
+ ],
457
+ },
458
+ ],
459
+ outputs: [],
460
+ stateMutability: "payable",
461
+ },
462
+ {
463
+ type: "function",
464
+ name: "lzReceiveSimulate",
465
+ inputs: [
466
+ {
467
+ name: "_origin",
468
+ type: "tuple",
469
+ internalType: "struct Origin",
470
+ components: [
471
+ {
472
+ name: "srcEid",
473
+ type: "uint32",
474
+ internalType: "uint32",
475
+ },
476
+ {
477
+ name: "sender",
478
+ type: "bytes32",
479
+ internalType: "bytes32",
480
+ },
481
+ {
482
+ name: "nonce",
483
+ type: "uint64",
484
+ internalType: "uint64",
485
+ },
486
+ ],
487
+ },
488
+ {
489
+ name: "_guid",
490
+ type: "bytes32",
491
+ internalType: "bytes32",
492
+ },
493
+ {
494
+ name: "_message",
495
+ type: "bytes",
496
+ internalType: "bytes",
497
+ },
498
+ {
499
+ name: "_executor",
500
+ type: "address",
501
+ internalType: "address",
502
+ },
503
+ {
504
+ name: "_extraData",
505
+ type: "bytes",
506
+ internalType: "bytes",
507
+ },
508
+ ],
509
+ outputs: [],
510
+ stateMutability: "payable",
511
+ },
512
+ {
513
+ type: "function",
514
+ name: "msgInspector",
515
+ inputs: [],
516
+ outputs: [
517
+ {
518
+ name: "",
519
+ type: "address",
520
+ internalType: "address",
521
+ },
522
+ ],
523
+ stateMutability: "view",
524
+ },
525
+ {
526
+ type: "function",
527
+ name: "name",
528
+ inputs: [],
529
+ outputs: [
530
+ {
531
+ name: "",
532
+ type: "string",
533
+ internalType: "string",
534
+ },
535
+ ],
536
+ stateMutability: "view",
537
+ },
538
+ {
539
+ type: "function",
540
+ name: "nextNonce",
541
+ inputs: [
542
+ {
543
+ name: "",
544
+ type: "uint32",
545
+ internalType: "uint32",
546
+ },
547
+ {
548
+ name: "",
549
+ type: "bytes32",
550
+ internalType: "bytes32",
551
+ },
552
+ ],
553
+ outputs: [
554
+ {
555
+ name: "nonce",
556
+ type: "uint64",
557
+ internalType: "uint64",
558
+ },
559
+ ],
560
+ stateMutability: "view",
561
+ },
562
+ {
563
+ type: "function",
564
+ name: "oApp",
565
+ inputs: [],
566
+ outputs: [
567
+ {
568
+ name: "",
569
+ type: "address",
570
+ internalType: "address",
571
+ },
572
+ ],
573
+ stateMutability: "view",
574
+ },
575
+ {
576
+ type: "function",
577
+ name: "oAppVersion",
578
+ inputs: [],
579
+ outputs: [
580
+ {
581
+ name: "senderVersion",
582
+ type: "uint64",
583
+ internalType: "uint64",
584
+ },
585
+ {
586
+ name: "receiverVersion",
587
+ type: "uint64",
588
+ internalType: "uint64",
589
+ },
590
+ ],
591
+ stateMutability: "pure",
592
+ },
593
+ {
594
+ type: "function",
595
+ name: "oftVersion",
596
+ inputs: [],
597
+ outputs: [
598
+ {
599
+ name: "interfaceId",
600
+ type: "bytes4",
601
+ internalType: "bytes4",
602
+ },
603
+ {
604
+ name: "version",
605
+ type: "uint64",
606
+ internalType: "uint64",
607
+ },
608
+ ],
609
+ stateMutability: "pure",
610
+ },
611
+ {
612
+ type: "function",
613
+ name: "owner",
614
+ inputs: [],
615
+ outputs: [
616
+ {
617
+ name: "",
618
+ type: "address",
619
+ internalType: "address",
620
+ },
621
+ ],
622
+ stateMutability: "view",
623
+ },
624
+ {
625
+ type: "function",
626
+ name: "peers",
627
+ inputs: [
628
+ {
629
+ name: "eid",
630
+ type: "uint32",
631
+ internalType: "uint32",
632
+ },
633
+ ],
634
+ outputs: [
635
+ {
636
+ name: "peer",
637
+ type: "bytes32",
638
+ internalType: "bytes32",
639
+ },
640
+ ],
641
+ stateMutability: "view",
642
+ },
643
+ {
644
+ type: "function",
645
+ name: "preCrime",
646
+ inputs: [],
647
+ outputs: [
648
+ {
649
+ name: "",
650
+ type: "address",
651
+ internalType: "address",
652
+ },
653
+ ],
654
+ stateMutability: "view",
655
+ },
656
+ {
657
+ type: "function",
658
+ name: "quoteOFT",
659
+ inputs: [
660
+ {
661
+ name: "_sendParam",
662
+ type: "tuple",
663
+ internalType: "struct SendParam",
664
+ components: [
665
+ {
666
+ name: "dstEid",
667
+ type: "uint32",
668
+ internalType: "uint32",
669
+ },
670
+ {
671
+ name: "to",
672
+ type: "bytes32",
673
+ internalType: "bytes32",
674
+ },
675
+ {
676
+ name: "amountLD",
677
+ type: "uint256",
678
+ internalType: "uint256",
679
+ },
680
+ {
681
+ name: "minAmountLD",
682
+ type: "uint256",
683
+ internalType: "uint256",
684
+ },
685
+ {
686
+ name: "extraOptions",
687
+ type: "bytes",
688
+ internalType: "bytes",
689
+ },
690
+ {
691
+ name: "composeMsg",
692
+ type: "bytes",
693
+ internalType: "bytes",
694
+ },
695
+ {
696
+ name: "oftCmd",
697
+ type: "bytes",
698
+ internalType: "bytes",
699
+ },
700
+ ],
701
+ },
702
+ ],
703
+ outputs: [
704
+ {
705
+ name: "oftLimit",
706
+ type: "tuple",
707
+ internalType: "struct OFTLimit",
708
+ components: [
709
+ {
710
+ name: "minAmountLD",
711
+ type: "uint256",
712
+ internalType: "uint256",
713
+ },
714
+ {
715
+ name: "maxAmountLD",
716
+ type: "uint256",
717
+ internalType: "uint256",
718
+ },
719
+ ],
720
+ },
721
+ {
722
+ name: "oftFeeDetails",
723
+ type: "tuple[]",
724
+ internalType: "struct OFTFeeDetail[]",
725
+ components: [
726
+ {
727
+ name: "feeAmountLD",
728
+ type: "int256",
729
+ internalType: "int256",
730
+ },
731
+ {
732
+ name: "description",
733
+ type: "string",
734
+ internalType: "string",
735
+ },
736
+ ],
737
+ },
738
+ {
739
+ name: "oftReceipt",
740
+ type: "tuple",
741
+ internalType: "struct OFTReceipt",
742
+ components: [
743
+ {
744
+ name: "amountSentLD",
745
+ type: "uint256",
746
+ internalType: "uint256",
747
+ },
748
+ {
749
+ name: "amountReceivedLD",
750
+ type: "uint256",
751
+ internalType: "uint256",
752
+ },
753
+ ],
754
+ },
755
+ ],
756
+ stateMutability: "view",
757
+ },
758
+ {
759
+ type: "function",
760
+ name: "quoteSend",
761
+ inputs: [
762
+ {
763
+ name: "_sendParam",
764
+ type: "tuple",
765
+ internalType: "struct SendParam",
766
+ components: [
767
+ {
768
+ name: "dstEid",
769
+ type: "uint32",
770
+ internalType: "uint32",
771
+ },
772
+ {
773
+ name: "to",
774
+ type: "bytes32",
775
+ internalType: "bytes32",
776
+ },
777
+ {
778
+ name: "amountLD",
779
+ type: "uint256",
780
+ internalType: "uint256",
781
+ },
782
+ {
783
+ name: "minAmountLD",
784
+ type: "uint256",
785
+ internalType: "uint256",
786
+ },
787
+ {
788
+ name: "extraOptions",
789
+ type: "bytes",
790
+ internalType: "bytes",
791
+ },
792
+ {
793
+ name: "composeMsg",
794
+ type: "bytes",
795
+ internalType: "bytes",
796
+ },
797
+ {
798
+ name: "oftCmd",
799
+ type: "bytes",
800
+ internalType: "bytes",
801
+ },
802
+ ],
803
+ },
804
+ {
805
+ name: "_payInLzToken",
806
+ type: "bool",
807
+ internalType: "bool",
808
+ },
809
+ ],
810
+ outputs: [
811
+ {
812
+ name: "msgFee",
813
+ type: "tuple",
814
+ internalType: "struct MessagingFee",
815
+ components: [
816
+ {
817
+ name: "nativeFee",
818
+ type: "uint256",
819
+ internalType: "uint256",
820
+ },
821
+ {
822
+ name: "lzTokenFee",
823
+ type: "uint256",
824
+ internalType: "uint256",
825
+ },
826
+ ],
827
+ },
828
+ ],
829
+ stateMutability: "view",
830
+ },
831
+ {
832
+ type: "function",
833
+ name: "renounceOwnership",
834
+ inputs: [],
835
+ outputs: [],
836
+ stateMutability: "nonpayable",
837
+ },
838
+ {
839
+ type: "function",
840
+ name: "send",
841
+ inputs: [
842
+ {
843
+ name: "_sendParam",
844
+ type: "tuple",
845
+ internalType: "struct SendParam",
846
+ components: [
847
+ {
848
+ name: "dstEid",
849
+ type: "uint32",
850
+ internalType: "uint32",
851
+ },
852
+ {
853
+ name: "to",
854
+ type: "bytes32",
855
+ internalType: "bytes32",
856
+ },
857
+ {
858
+ name: "amountLD",
859
+ type: "uint256",
860
+ internalType: "uint256",
861
+ },
862
+ {
863
+ name: "minAmountLD",
864
+ type: "uint256",
865
+ internalType: "uint256",
866
+ },
867
+ {
868
+ name: "extraOptions",
869
+ type: "bytes",
870
+ internalType: "bytes",
871
+ },
872
+ {
873
+ name: "composeMsg",
874
+ type: "bytes",
875
+ internalType: "bytes",
876
+ },
877
+ {
878
+ name: "oftCmd",
879
+ type: "bytes",
880
+ internalType: "bytes",
881
+ },
882
+ ],
883
+ },
884
+ {
885
+ name: "_fee",
886
+ type: "tuple",
887
+ internalType: "struct MessagingFee",
888
+ components: [
889
+ {
890
+ name: "nativeFee",
891
+ type: "uint256",
892
+ internalType: "uint256",
893
+ },
894
+ {
895
+ name: "lzTokenFee",
896
+ type: "uint256",
897
+ internalType: "uint256",
898
+ },
899
+ ],
900
+ },
901
+ {
902
+ name: "_refundAddress",
903
+ type: "address",
904
+ internalType: "address",
905
+ },
906
+ ],
907
+ outputs: [
908
+ {
909
+ name: "msgReceipt",
910
+ type: "tuple",
911
+ internalType: "struct MessagingReceipt",
912
+ components: [
913
+ {
914
+ name: "guid",
915
+ type: "bytes32",
916
+ internalType: "bytes32",
917
+ },
918
+ {
919
+ name: "nonce",
920
+ type: "uint64",
921
+ internalType: "uint64",
922
+ },
923
+ {
924
+ name: "fee",
925
+ type: "tuple",
926
+ internalType: "struct MessagingFee",
927
+ components: [
928
+ {
929
+ name: "nativeFee",
930
+ type: "uint256",
931
+ internalType: "uint256",
932
+ },
933
+ {
934
+ name: "lzTokenFee",
935
+ type: "uint256",
936
+ internalType: "uint256",
937
+ },
938
+ ],
939
+ },
940
+ ],
941
+ },
942
+ {
943
+ name: "oftReceipt",
944
+ type: "tuple",
945
+ internalType: "struct OFTReceipt",
946
+ components: [
947
+ {
948
+ name: "amountSentLD",
949
+ type: "uint256",
950
+ internalType: "uint256",
951
+ },
952
+ {
953
+ name: "amountReceivedLD",
954
+ type: "uint256",
955
+ internalType: "uint256",
956
+ },
957
+ ],
958
+ },
959
+ ],
960
+ stateMutability: "payable",
961
+ },
962
+ {
963
+ type: "function",
964
+ name: "setDelegate",
965
+ inputs: [
966
+ {
967
+ name: "_delegate",
968
+ type: "address",
969
+ internalType: "address",
970
+ },
971
+ ],
972
+ outputs: [],
973
+ stateMutability: "nonpayable",
974
+ },
975
+ {
976
+ type: "function",
977
+ name: "setEnforcedOptions",
978
+ inputs: [
979
+ {
980
+ name: "_enforcedOptions",
981
+ type: "tuple[]",
982
+ internalType: "struct EnforcedOptionParam[]",
983
+ components: [
984
+ {
985
+ name: "eid",
986
+ type: "uint32",
987
+ internalType: "uint32",
988
+ },
989
+ {
990
+ name: "msgType",
991
+ type: "uint16",
992
+ internalType: "uint16",
993
+ },
994
+ {
995
+ name: "options",
996
+ type: "bytes",
997
+ internalType: "bytes",
998
+ },
999
+ ],
1000
+ },
1001
+ ],
1002
+ outputs: [],
1003
+ stateMutability: "nonpayable",
1004
+ },
1005
+ {
1006
+ type: "function",
1007
+ name: "setMsgInspector",
1008
+ inputs: [
1009
+ {
1010
+ name: "_msgInspector",
1011
+ type: "address",
1012
+ internalType: "address",
1013
+ },
1014
+ ],
1015
+ outputs: [],
1016
+ stateMutability: "nonpayable",
1017
+ },
1018
+ {
1019
+ type: "function",
1020
+ name: "setPeer",
1021
+ inputs: [
1022
+ {
1023
+ name: "_eid",
1024
+ type: "uint32",
1025
+ internalType: "uint32",
1026
+ },
1027
+ {
1028
+ name: "_peer",
1029
+ type: "bytes32",
1030
+ internalType: "bytes32",
1031
+ },
1032
+ ],
1033
+ outputs: [],
1034
+ stateMutability: "nonpayable",
1035
+ },
1036
+ {
1037
+ type: "function",
1038
+ name: "setPreCrime",
1039
+ inputs: [
1040
+ {
1041
+ name: "_preCrime",
1042
+ type: "address",
1043
+ internalType: "address",
1044
+ },
1045
+ ],
1046
+ outputs: [],
1047
+ stateMutability: "nonpayable",
1048
+ },
1049
+ {
1050
+ type: "function",
1051
+ name: "sharedDecimals",
1052
+ inputs: [],
1053
+ outputs: [
1054
+ {
1055
+ name: "",
1056
+ type: "uint8",
1057
+ internalType: "uint8",
1058
+ },
1059
+ ],
1060
+ stateMutability: "view",
1061
+ },
1062
+ {
1063
+ type: "function",
1064
+ name: "symbol",
1065
+ inputs: [],
1066
+ outputs: [
1067
+ {
1068
+ name: "",
1069
+ type: "string",
1070
+ internalType: "string",
1071
+ },
1072
+ ],
1073
+ stateMutability: "view",
1074
+ },
1075
+ {
1076
+ type: "function",
1077
+ name: "token",
1078
+ inputs: [],
1079
+ outputs: [
1080
+ {
1081
+ name: "",
1082
+ type: "address",
1083
+ internalType: "address",
1084
+ },
1085
+ ],
1086
+ stateMutability: "view",
1087
+ },
1088
+ {
1089
+ type: "function",
1090
+ name: "totalSupply",
1091
+ inputs: [],
1092
+ outputs: [
1093
+ {
1094
+ name: "",
1095
+ type: "uint256",
1096
+ internalType: "uint256",
1097
+ },
1098
+ ],
1099
+ stateMutability: "view",
1100
+ },
1101
+ {
1102
+ type: "function",
1103
+ name: "transfer",
1104
+ inputs: [
1105
+ {
1106
+ name: "to",
1107
+ type: "address",
1108
+ internalType: "address",
1109
+ },
1110
+ {
1111
+ name: "value",
1112
+ type: "uint256",
1113
+ internalType: "uint256",
1114
+ },
1115
+ ],
1116
+ outputs: [
1117
+ {
1118
+ name: "",
1119
+ type: "bool",
1120
+ internalType: "bool",
1121
+ },
1122
+ ],
1123
+ stateMutability: "nonpayable",
1124
+ },
1125
+ {
1126
+ type: "function",
1127
+ name: "transferFrom",
1128
+ inputs: [
1129
+ {
1130
+ name: "from",
1131
+ type: "address",
1132
+ internalType: "address",
1133
+ },
1134
+ {
1135
+ name: "to",
1136
+ type: "address",
1137
+ internalType: "address",
1138
+ },
1139
+ {
1140
+ name: "value",
1141
+ type: "uint256",
1142
+ internalType: "uint256",
1143
+ },
1144
+ ],
1145
+ outputs: [
1146
+ {
1147
+ name: "",
1148
+ type: "bool",
1149
+ internalType: "bool",
1150
+ },
1151
+ ],
1152
+ stateMutability: "nonpayable",
1153
+ },
1154
+ {
1155
+ type: "function",
1156
+ name: "transferOwnership",
1157
+ inputs: [
1158
+ {
1159
+ name: "newOwner",
1160
+ type: "address",
1161
+ internalType: "address",
1162
+ },
1163
+ ],
1164
+ outputs: [],
1165
+ stateMutability: "nonpayable",
1166
+ },
1167
+ {
1168
+ type: "event",
1169
+ name: "Approval",
1170
+ inputs: [
1171
+ {
1172
+ name: "owner",
1173
+ type: "address",
1174
+ indexed: true,
1175
+ internalType: "address",
1176
+ },
1177
+ {
1178
+ name: "spender",
1179
+ type: "address",
1180
+ indexed: true,
1181
+ internalType: "address",
1182
+ },
1183
+ {
1184
+ name: "value",
1185
+ type: "uint256",
1186
+ indexed: false,
1187
+ internalType: "uint256",
1188
+ },
1189
+ ],
1190
+ anonymous: false,
1191
+ },
1192
+ {
1193
+ type: "event",
1194
+ name: "EnforcedOptionSet",
1195
+ inputs: [
1196
+ {
1197
+ name: "_enforcedOptions",
1198
+ type: "tuple[]",
1199
+ indexed: false,
1200
+ internalType: "struct EnforcedOptionParam[]",
1201
+ components: [
1202
+ {
1203
+ name: "eid",
1204
+ type: "uint32",
1205
+ internalType: "uint32",
1206
+ },
1207
+ {
1208
+ name: "msgType",
1209
+ type: "uint16",
1210
+ internalType: "uint16",
1211
+ },
1212
+ {
1213
+ name: "options",
1214
+ type: "bytes",
1215
+ internalType: "bytes",
1216
+ },
1217
+ ],
1218
+ },
1219
+ ],
1220
+ anonymous: false,
1221
+ },
1222
+ {
1223
+ type: "event",
1224
+ name: "MsgInspectorSet",
1225
+ inputs: [
1226
+ {
1227
+ name: "inspector",
1228
+ type: "address",
1229
+ indexed: false,
1230
+ internalType: "address",
1231
+ },
1232
+ ],
1233
+ anonymous: false,
1234
+ },
1235
+ {
1236
+ type: "event",
1237
+ name: "OFTReceived",
1238
+ inputs: [
1239
+ {
1240
+ name: "guid",
1241
+ type: "bytes32",
1242
+ indexed: true,
1243
+ internalType: "bytes32",
1244
+ },
1245
+ {
1246
+ name: "srcEid",
1247
+ type: "uint32",
1248
+ indexed: false,
1249
+ internalType: "uint32",
1250
+ },
1251
+ {
1252
+ name: "toAddress",
1253
+ type: "address",
1254
+ indexed: true,
1255
+ internalType: "address",
1256
+ },
1257
+ {
1258
+ name: "amountReceivedLD",
1259
+ type: "uint256",
1260
+ indexed: false,
1261
+ internalType: "uint256",
1262
+ },
1263
+ ],
1264
+ anonymous: false,
1265
+ },
1266
+ {
1267
+ type: "event",
1268
+ name: "OFTSent",
1269
+ inputs: [
1270
+ {
1271
+ name: "guid",
1272
+ type: "bytes32",
1273
+ indexed: true,
1274
+ internalType: "bytes32",
1275
+ },
1276
+ {
1277
+ name: "dstEid",
1278
+ type: "uint32",
1279
+ indexed: false,
1280
+ internalType: "uint32",
1281
+ },
1282
+ {
1283
+ name: "fromAddress",
1284
+ type: "address",
1285
+ indexed: true,
1286
+ internalType: "address",
1287
+ },
1288
+ {
1289
+ name: "amountSentLD",
1290
+ type: "uint256",
1291
+ indexed: false,
1292
+ internalType: "uint256",
1293
+ },
1294
+ {
1295
+ name: "amountReceivedLD",
1296
+ type: "uint256",
1297
+ indexed: false,
1298
+ internalType: "uint256",
1299
+ },
1300
+ ],
1301
+ anonymous: false,
1302
+ },
1303
+ {
1304
+ type: "event",
1305
+ name: "OwnershipTransferred",
1306
+ inputs: [
1307
+ {
1308
+ name: "previousOwner",
1309
+ type: "address",
1310
+ indexed: true,
1311
+ internalType: "address",
1312
+ },
1313
+ {
1314
+ name: "newOwner",
1315
+ type: "address",
1316
+ indexed: true,
1317
+ internalType: "address",
1318
+ },
1319
+ ],
1320
+ anonymous: false,
1321
+ },
1322
+ {
1323
+ type: "event",
1324
+ name: "PeerSet",
1325
+ inputs: [
1326
+ {
1327
+ name: "eid",
1328
+ type: "uint32",
1329
+ indexed: false,
1330
+ internalType: "uint32",
1331
+ },
1332
+ {
1333
+ name: "peer",
1334
+ type: "bytes32",
1335
+ indexed: false,
1336
+ internalType: "bytes32",
1337
+ },
1338
+ ],
1339
+ anonymous: false,
1340
+ },
1341
+ {
1342
+ type: "event",
1343
+ name: "PreCrimeSet",
1344
+ inputs: [
1345
+ {
1346
+ name: "preCrimeAddress",
1347
+ type: "address",
1348
+ indexed: false,
1349
+ internalType: "address",
1350
+ },
1351
+ ],
1352
+ anonymous: false,
1353
+ },
1354
+ {
1355
+ type: "event",
1356
+ name: "Transfer",
1357
+ inputs: [
1358
+ {
1359
+ name: "from",
1360
+ type: "address",
1361
+ indexed: true,
1362
+ internalType: "address",
1363
+ },
1364
+ {
1365
+ name: "to",
1366
+ type: "address",
1367
+ indexed: true,
1368
+ internalType: "address",
1369
+ },
1370
+ {
1371
+ name: "value",
1372
+ type: "uint256",
1373
+ indexed: false,
1374
+ internalType: "uint256",
1375
+ },
1376
+ ],
1377
+ anonymous: false,
1378
+ },
1379
+ {
1380
+ type: "error",
1381
+ name: "ERC20InsufficientAllowance",
1382
+ inputs: [
1383
+ {
1384
+ name: "spender",
1385
+ type: "address",
1386
+ internalType: "address",
1387
+ },
1388
+ {
1389
+ name: "allowance",
1390
+ type: "uint256",
1391
+ internalType: "uint256",
1392
+ },
1393
+ {
1394
+ name: "needed",
1395
+ type: "uint256",
1396
+ internalType: "uint256",
1397
+ },
1398
+ ],
1399
+ },
1400
+ {
1401
+ type: "error",
1402
+ name: "ERC20InsufficientBalance",
1403
+ inputs: [
1404
+ {
1405
+ name: "sender",
1406
+ type: "address",
1407
+ internalType: "address",
1408
+ },
1409
+ {
1410
+ name: "balance",
1411
+ type: "uint256",
1412
+ internalType: "uint256",
1413
+ },
1414
+ {
1415
+ name: "needed",
1416
+ type: "uint256",
1417
+ internalType: "uint256",
1418
+ },
1419
+ ],
1420
+ },
1421
+ {
1422
+ type: "error",
1423
+ name: "ERC20InvalidApprover",
1424
+ inputs: [
1425
+ {
1426
+ name: "approver",
1427
+ type: "address",
1428
+ internalType: "address",
1429
+ },
1430
+ ],
1431
+ },
1432
+ {
1433
+ type: "error",
1434
+ name: "ERC20InvalidReceiver",
1435
+ inputs: [
1436
+ {
1437
+ name: "receiver",
1438
+ type: "address",
1439
+ internalType: "address",
1440
+ },
1441
+ ],
1442
+ },
1443
+ {
1444
+ type: "error",
1445
+ name: "ERC20InvalidSender",
1446
+ inputs: [
1447
+ {
1448
+ name: "sender",
1449
+ type: "address",
1450
+ internalType: "address",
1451
+ },
1452
+ ],
1453
+ },
1454
+ {
1455
+ type: "error",
1456
+ name: "ERC20InvalidSpender",
1457
+ inputs: [
1458
+ {
1459
+ name: "spender",
1460
+ type: "address",
1461
+ internalType: "address",
1462
+ },
1463
+ ],
1464
+ },
1465
+ {
1466
+ type: "error",
1467
+ name: "InvalidDelegate",
1468
+ inputs: [],
1469
+ },
1470
+ {
1471
+ type: "error",
1472
+ name: "InvalidEndpointCall",
1473
+ inputs: [],
1474
+ },
1475
+ {
1476
+ type: "error",
1477
+ name: "InvalidLocalDecimals",
1478
+ inputs: [],
1479
+ },
1480
+ {
1481
+ type: "error",
1482
+ name: "InvalidOptions",
1483
+ inputs: [
1484
+ {
1485
+ name: "options",
1486
+ type: "bytes",
1487
+ internalType: "bytes",
1488
+ },
1489
+ ],
1490
+ },
1491
+ {
1492
+ type: "error",
1493
+ name: "LzTokenUnavailable",
1494
+ inputs: [],
1495
+ },
1496
+ {
1497
+ type: "error",
1498
+ name: "NoPeer",
1499
+ inputs: [
1500
+ {
1501
+ name: "eid",
1502
+ type: "uint32",
1503
+ internalType: "uint32",
1504
+ },
1505
+ ],
1506
+ },
1507
+ {
1508
+ type: "error",
1509
+ name: "NotEnoughNative",
1510
+ inputs: [
1511
+ {
1512
+ name: "msgValue",
1513
+ type: "uint256",
1514
+ internalType: "uint256",
1515
+ },
1516
+ ],
1517
+ },
1518
+ {
1519
+ type: "error",
1520
+ name: "OnlyEndpoint",
1521
+ inputs: [
1522
+ {
1523
+ name: "addr",
1524
+ type: "address",
1525
+ internalType: "address",
1526
+ },
1527
+ ],
1528
+ },
1529
+ {
1530
+ type: "error",
1531
+ name: "OnlyPeer",
1532
+ inputs: [
1533
+ {
1534
+ name: "eid",
1535
+ type: "uint32",
1536
+ internalType: "uint32",
1537
+ },
1538
+ {
1539
+ name: "sender",
1540
+ type: "bytes32",
1541
+ internalType: "bytes32",
1542
+ },
1543
+ ],
1544
+ },
1545
+ {
1546
+ type: "error",
1547
+ name: "OnlySelf",
1548
+ inputs: [],
1549
+ },
1550
+ {
1551
+ type: "error",
1552
+ name: "OwnableInvalidOwner",
1553
+ inputs: [
1554
+ {
1555
+ name: "owner",
1556
+ type: "address",
1557
+ internalType: "address",
1558
+ },
1559
+ ],
1560
+ },
1561
+ {
1562
+ type: "error",
1563
+ name: "OwnableUnauthorizedAccount",
1564
+ inputs: [
1565
+ {
1566
+ name: "account",
1567
+ type: "address",
1568
+ internalType: "address",
1569
+ },
1570
+ ],
1571
+ },
1572
+ {
1573
+ type: "error",
1574
+ name: "SafeERC20FailedOperation",
1575
+ inputs: [
1576
+ {
1577
+ name: "token",
1578
+ type: "address",
1579
+ internalType: "address",
1580
+ },
1581
+ ],
1582
+ },
1583
+ {
1584
+ type: "error",
1585
+ name: "SimulationResult",
1586
+ inputs: [
1587
+ {
1588
+ name: "result",
1589
+ type: "bytes",
1590
+ internalType: "bytes",
1591
+ },
1592
+ ],
1593
+ },
1594
+ {
1595
+ type: "error",
1596
+ name: "SlippageExceeded",
1597
+ inputs: [
1598
+ {
1599
+ name: "amountLD",
1600
+ type: "uint256",
1601
+ internalType: "uint256",
1602
+ },
1603
+ {
1604
+ name: "minAmountLD",
1605
+ type: "uint256",
1606
+ internalType: "uint256",
1607
+ },
1608
+ ],
1609
+ },
1610
+ ] as const;
1611
+
1612
+ const _bytecode =
1613
+ "0x60c060405234801561000f575f5ffd5b50604051613e35380380613e3583398101604081905261002e91610286565b83838383838360128484818181818d6001600160a01b03811661006a57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100738161017a565b506001600160a01b0380831660805281166100a157604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e1906024015f604051808303815f87803b1580156100e5575f5ffd5b505af11580156100f7573d5f5f3e3d5ffd5b505050505050505061010d6101c960201b60201c565b60ff168360ff161015610133576040516301e9714b60e41b815260040160405180910390fd5b61013e60068461031f565b61014990600a610421565b60a052506008915061015d905083826104ba565b50600961016a82826104ba565b5050505050505050505050610574565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600690565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126101f1575f5ffd5b81516001600160401b0381111561020a5761020a6101ce565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610238576102386101ce565b60405281815283820160200185101561024f575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b80516001600160a01b0381168114610281575f5ffd5b919050565b5f5f5f5f60808587031215610299575f5ffd5b84516001600160401b038111156102ae575f5ffd5b6102ba878288016101e2565b602087015190955090506001600160401b038111156102d7575f5ffd5b6102e3878288016101e2565b9350506102f26040860161026b565b91506103006060860161026b565b905092959194509250565b634e487b7160e01b5f52601160045260245ffd5b60ff82811682821603908111156103385761033861030b565b92915050565b6001815b60018411156103795780850481111561035d5761035d61030b565b600184161561036b57908102905b60019390931c928002610342565b935093915050565b5f8261038f57506001610338565b8161039b57505f610338565b81600181146103b157600281146103bb576103d7565b6001915050610338565b60ff8411156103cc576103cc61030b565b50506001821b610338565b5060208310610133831016604e8410600b84101617156103fa575081810a610338565b6104065f19848461033e565b805f19048211156104195761041961030b565b029392505050565b5f61042f60ff841683610381565b9392505050565b600181811c9082168061044a57607f821691505b60208210810361046857634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156104b557805f5260205f20601f840160051c810160208510156104935750805b601f840160051c820191505b818110156104b2575f815560010161049f565b50505b505050565b81516001600160401b038111156104d3576104d36101ce565b6104e7816104e18454610436565b8461046e565b6020601f821160018114610519575f83156105025750848201515b5f19600385901b1c1916600184901b1784556104b2565b5f84815260208120601f198516915b828110156105485787850151825560209485019460019092019101610528565b508482101561056557868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b60805160a05161385a6105db5f395f81816106be01528181611e8301528181611ef5015261218101525f818161056e01528181610b080152818161123101528181611557015281816119b30152818161228e01528181612467015261254f015261385a5ff3fe6080604052600436106102c1575f3560e01c80637d25a05e11610170578063bb0b6a53116100d1578063d045a0dc11610087578063f2fde38b11610062578063f2fde38b1461087c578063fc0c546a146104f7578063ff7bd03d1461089b575f5ffd5b8063d045a0dc146107f9578063d42438851461080c578063dd62ed3e1461082b575f5ffd5b8063bd815db0116100b7578063bd815db0146107a6578063c7c7f5b3146107b9578063ca5eb5e1146107da575f5ffd5b8063bb0b6a531461075c578063bc70b35414610787575f5ffd5b8063963efcaa11610126578063a9059cbb1161010c578063a9059cbb146106f2578063b731ea0a14610711578063b98bd0701461073d575f5ffd5b8063963efcaa146106ad5780639f68b964146106e0575f5ffd5b8063857749b011610156578063857749b01461065d5780638da5cb5b1461067057806395d89b4114610699575f5ffd5b80637d25a05e1461060457806382413eac1461063e575f5ffd5b806323b872dd116102255780635535d461116101db5780636fc1b31e116101b65780636fc1b31e1461059057806370a08231146105af578063715018a6146105f0575f5ffd5b80635535d461146105095780635a0dfe4d146105285780635e280f111461055d575f5ffd5b80633400288b1161020b5780633400288b146104ac5780633b6f743b146104cb57806352ae2879146104f7575f5ffd5b806323b872dd1461046c578063313ce5671461048b575f5ffd5b8063134d4f251161027a57806317442b701161026057806317442b701461041957806318160ddd1461043a5780631f5e133414610458575f5ffd5b8063134d4f25146103b2578063156a0d0f146103d9575f5ffd5b80630d35b415116102aa5780630d35b4151461031e578063111ecdad1461034c57806313137d651461039d575f5ffd5b806306fdde03146102c5578063095ea7b3146102ef575b5f5ffd5b3480156102d0575f5ffd5b506102d96108ba565b6040516102e69190612728565b60405180910390f35b3480156102fa575f5ffd5b5061030e61030936600461275b565b61094a565b60405190151581526020016102e6565b348015610329575f5ffd5b5061033d61033836600461279b565b610963565b6040516102e6939291906127cd565b348015610357575f5ffd5b506004546103789073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102e6565b6103b06103ab3660046128db565b610b06565b005b3480156103bd575f5ffd5b506103c6600281565b60405161ffff90911681526020016102e6565b3480156103e4575f5ffd5b50604080517f02e49c2c00000000000000000000000000000000000000000000000000000000815260016020820152016102e6565b348015610424575f5ffd5b50604080516001815260026020820152016102e6565b348015610445575f5ffd5b506007545b6040519081526020016102e6565b348015610463575f5ffd5b506103c6600181565b348015610477575f5ffd5b5061030e610486366004612977565b610c05565b348015610496575f5ffd5b5060125b60405160ff90911681526020016102e6565b3480156104b7575f5ffd5b506103b06104c63660046129cd565b610c2a565b3480156104d6575f5ffd5b506104ea6104e53660046129f4565b610c40565b6040516102e69190612a43565b348015610502575f5ffd5b5030610378565b348015610514575f5ffd5b506102d9610523366004612a6b565b610ca4565b348015610533575f5ffd5b5061030e6105423660046129cd565b63ffffffff919091165f908152600160205260409020541490565b348015610568575f5ffd5b506103787f000000000000000000000000000000000000000000000000000000000000000081565b34801561059b575f5ffd5b506103b06105aa366004612a9c565b610d46565b3480156105ba575f5ffd5b5061044a6105c9366004612a9c565b73ffffffffffffffffffffffffffffffffffffffff165f9081526005602052604090205490565b3480156105fb575f5ffd5b506103b0610dc8565b34801561060f575f5ffd5b5061062561061e3660046129cd565b5f92915050565b60405167ffffffffffffffff90911681526020016102e6565b348015610649575f5ffd5b5061030e610658366004612ab7565b610ddb565b348015610668575f5ffd5b50600661049a565b34801561067b575f5ffd5b505f5473ffffffffffffffffffffffffffffffffffffffff16610378565b3480156106a4575f5ffd5b506102d9610dfd565b3480156106b8575f5ffd5b5061044a7f000000000000000000000000000000000000000000000000000000000000000081565b3480156106eb575f5ffd5b505f61030e565b3480156106fd575f5ffd5b5061030e61070c36600461275b565b610e0c565b34801561071c575f5ffd5b506002546103789073ffffffffffffffffffffffffffffffffffffffff1681565b348015610748575f5ffd5b506103b0610757366004612b5b565b610e19565b348015610767575f5ffd5b5061044a610776366004612b9a565b60016020525f908152604090205481565b348015610792575f5ffd5b506102d96107a1366004612bb3565b610e33565b6103b06107b4366004612b5b565b610fed565b6107cc6107c7366004612c10565b6111b1565b6040516102e6929190612c97565b3480156107e5575f5ffd5b506103b06107f4366004612a9c565b6111e4565b6103b06108073660046128db565b61128b565b348015610817575f5ffd5b506103b0610826366004612a9c565b6112d3565b348015610836575f5ffd5b5061044a610845366004612ce9565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260066020908152604080832093909416825291909152205490565b348015610887575f5ffd5b506103b0610896366004612a9c565b61134e565b3480156108a6575f5ffd5b5061030e6108b5366004612d15565b6113b1565b6060600880546108c990612d2f565b80601f01602080910402602001604051908101604052809291908181526020018280546108f590612d2f565b80156109405780601f1061091757610100808354040283529160200191610940565b820191905f5260205f20905b81548152906001019060200180831161092357829003601f168201915b5050505050905090565b5f336109578185856113e5565b60019150505b92915050565b604080518082019091525f8082526020820152606061099360405180604001604052805f81526020015f81525090565b5f5f90505f3073ffffffffffffffffffffffffffffffffffffffff1663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109e1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a059190612d7a565b73ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a4d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a719190612d95565b604080518082018252848152602080820184905282515f80825291810190935290975091925090610ac4565b604080518082019091525f815260606020820152815260200190600190039081610a9d5790505b5093505f80610ae8604089013560608a0135610ae360208c018c612b9a565b6113f7565b60408051808201909152918252602082015296989597505050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163314610b7c576040517f91ac5e4f0000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b60208701803590610b9690610b91908a612b9a565b61144b565b14610bed57610ba86020880188612b9a565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015260208801356024820152604401610b73565b610bfc8787878787878761149f565b50505050505050565b5f33610c12858285611630565b610c1d8585856116fe565b60019150505b9392505050565b610c326117a7565b610c3c82826117f9565b5050565b604080518082019091525f80825260208201525f610c6e60408501356060860135610ae36020880188612b9a565b9150505f5f610c7d868461184d565b9092509050610c9a610c926020880188612b9a565b83838861199e565b9695505050505050565b600360209081525f928352604080842090915290825290208054610cc790612d2f565b80601f0160208091040260200160405190810160405280929190818152602001828054610cf390612d2f565b8015610d3e5780601f10610d1557610100808354040283529160200191610d3e565b820191905f5260205f20905b815481529060010190602001808311610d2157829003601f168201915b505050505081565b610d4e6117a7565b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a150565b610dd06117a7565b610dd95f611a89565b565b73ffffffffffffffffffffffffffffffffffffffff811630145b949350505050565b6060600980546108c990612d2f565b5f336109578185856116fe565b610e216117a7565b610c3c610e2e8284612eb9565b611afd565b63ffffffff84165f90815260036020908152604080832061ffff87168452909152812080546060929190610e6690612d2f565b80601f0160208091040260200160405190810160405280929190818152602001828054610e9290612d2f565b8015610edd5780601f10610eb457610100808354040283529160200191610edd565b820191905f5260205f20905b815481529060010190602001808311610ec057829003601f168201915b5050505050905080515f03610f2b5783838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929450610df59350505050565b5f839003610f3a579050610df5565b60028310610fb757610f8084848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611bfe92505050565b80610f8e8460028188612fdd565b604051602001610fa09392919061301b565b604051602081830303815290604052915050610df5565b83836040517f9a6d49cd000000000000000000000000000000000000000000000000000000008152600401610b73929190613080565b5f5b818110156110f0573683838381811061100a5761100a613093565b905060200281019061101c91906130c0565b905061104e61102e6020830183612b9a565b602083013563ffffffff919091165f908152600160205260409020541490565b61105857506110e8565b3063d045a0dc60c08301358360a08101356110776101008301836130fc565b611088610100890160e08a01612a9c565b6110966101208a018a6130fc565b6040518963ffffffff1660e01b81526004016110b89796959493929190613172565b5f604051808303818588803b1580156110cf575f5ffd5b505af11580156110e1573d5f5f3e3d5ffd5b5050505050505b600101610fef565b503373ffffffffffffffffffffffffffffffffffffffff16638e9e70996040518163ffffffff1660e01b81526004015f60405180830381865afa158015611139573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261117e9190810190613205565b6040517f8351eea7000000000000000000000000000000000000000000000000000000008152600401610b739190612728565b6111b961269b565b604080518082019091525f80825260208201526111d7858585611c43565b915091505b935093915050565b6111ec6117a7565b6040517fca5eb5e100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906024015f604051808303815f87803b158015611272575f5ffd5b505af1158015611284573d5f5f3e3d5ffd5b5050505050565b3330146112c4576040517f14d4a4e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bfc87878787878787610bed565b6112db6117a7565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610dbd565b6113566117a7565b73ffffffffffffffffffffffffffffffffffffffff81166113a5576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610b73565b6113ae81611a89565b50565b5f6020820180359060019083906113c89086612b9a565b63ffffffff16815260208101919091526040015f20541492915050565b6113f28383836001611d3b565b505050565b5f5f61140285611e80565b9150819050838110156111dc576040517f71c4efed0000000000000000000000000000000000000000000000000000000081526004810182905260248101859052604401610b73565b63ffffffff81165f908152600160205260408120548061095d576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff84166004820152602401610b73565b5f6114b06114ad8787611eb6565b90565b90505f6114db826114c96114c48a8a611ecd565b611eef565b6114d660208d018d612b9a565b611f24565b905060288611156115c1575f6115176114fa60608c0160408d0161327a565b61150760208d018d612b9a565b846115128c8c611f58565b611fa2565b6040517f7cb5901200000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906115929086908d905f908790600401613295565b5f604051808303815f87803b1580156115a9575f5ffd5b505af11580156115bb573d5f5f3e3d5ffd5b50505050505b73ffffffffffffffffffffffffffffffffffffffff8216887fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c61160760208d018d612b9a565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8381165f908152600660209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156116f857818110156116ea576040517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024810182905260448101839052606401610b73565b6116f884848484035f611d3b565b50505050565b73ffffffffffffffffffffffffffffffffffffffff831661174d576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610b73565b73ffffffffffffffffffffffffffffffffffffffff821661179c576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610b73565b6113f2838383611fd4565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610dd9576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610b73565b63ffffffff82165f81815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b6060805f6118a885602001356118628661217b565b61186f60a08901896130fc565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506121a692505050565b90935090505f816118ba5760016118bd565b60025b90506118dd6118cf6020880188612b9a565b826107a160808a018a6130fc565b60045490935073ffffffffffffffffffffffffffffffffffffffff168015611994576040517f043a78eb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063043a78eb9061195390889088906004016132d3565b602060405180830381865afa15801561196e573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061199291906132f7565b505b5050509250929050565b604080518082019091525f80825260208201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ddc28c586040518060a001604052808863ffffffff168152602001611a0d8961144b565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611a42929190613312565b6040805180830381865afa158015611a5c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a8091906133e4565b95945050505050565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f5b8151811015611bce57611b2e828281518110611b1d57611b1d613093565b602002602001015160400151611bfe565b818181518110611b4057611b40613093565b60200260200101516040015160035f848481518110611b6157611b61613093565b60200260200101515f015163ffffffff1663ffffffff1681526020019081526020015f205f848481518110611b9857611b98613093565b60200260200101516020015161ffff1661ffff1681526020019081526020015f209081611bc59190613442565b50600101611aff565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610dbd9190613559565b600281015161ffff8116600314610c3c57816040517f9a6d49cd000000000000000000000000000000000000000000000000000000008152600401610b739190612728565b611c4b61269b565b604080518082019091525f80825260208201525f80611c8033604089013560608a0135611c7b60208c018c612b9a565b612238565b915091505f5f611c90898461184d565b9092509050611cbc611ca560208b018b612b9a565b8383611cb6368d90038d018d613605565b8b61225d565b60408051808201909152858152602080820186905282519298509096503391907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a90611d0a908d018d612b9a565b6040805163ffffffff909216825260208201899052810187905260600160405180910390a350505050935093915050565b73ffffffffffffffffffffffffffffffffffffffff8416611d8a576040517fe602df050000000000000000000000000000000000000000000000000000000081525f6004820152602401610b73565b73ffffffffffffffffffffffffffffffffffffffff8316611dd9576040517f94280d620000000000000000000000000000000000000000000000000000000081525f6004820152602401610b73565b73ffffffffffffffffffffffffffffffffffffffff8085165f90815260066020908152604080832093871683529290522082905580156116f8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611e7291815260200190565b60405180910390a350505050565b5f7f0000000000000000000000000000000000000000000000000000000000000000611eac8184613663565b61095d919061369b565b5f611ec46020828486612fdd565b610c23916136b2565b5f611edc602860208486612fdd565b611ee5916136ee565b60c01c9392505050565b5f61095d7f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff841661369b565b5f73ffffffffffffffffffffffffffffffffffffffff8416611f465761dead93505b611f508484612370565b509092915050565b6060611f678260288186612fdd565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929695505050505050565b606084848484604051602001611fbb9493929190613754565b6040516020818303038152906040529050949350505050565b73ffffffffffffffffffffffffffffffffffffffff831661200b578060075f82825461200091906137bb565b909155506120bb9050565b73ffffffffffffffffffffffffffffffffffffffff83165f9081526005602052604090205481811015612090576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024810182905260448101839052606401610b73565b73ffffffffffffffffffffffffffffffffffffffff84165f9081526005602052604090209082900390555b73ffffffffffffffffffffffffffffffffffffffff82166120e45760078054829003905561210f565b73ffffffffffffffffffffffffffffffffffffffff82165f9081526005602052604090208054820190555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161216e91815260200190565b60405180910390a3505050565b5f61095d7f000000000000000000000000000000000000000000000000000000000000000083613663565b80516060901515806122075784846040516020016121f392919091825260c01b7fffffffffffffffff00000000000000000000000000000000000000000000000016602082015260280190565b60405160208183030381529060405261222e565b8484338560405160200161221e94939291906137ce565b6040516020818303038152906040525b9150935093915050565b5f5f6122458585856113f7565b909250905061225486836123ca565b94509492505050565b61226561269b565b5f612272845f0151612424565b60208501519091501561228c5761228c8460200151612464565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632637a450826040518060a001604052808b63ffffffff1681526020016122e98c61144b565b81526020018a81526020018981526020015f8960200151111515815250866040518463ffffffff1660e01b8152600401612324929190613312565b60806040518083038185885af1158015612340573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906123659190613810565b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff82166123bf576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610b73565b610c3c5f8383611fd4565b73ffffffffffffffffffffffffffffffffffffffff8216612419576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610b73565b610c3c825f83611fd4565b5f813414612460576040517f9f704120000000000000000000000000000000000000000000000000000000008152346004820152602401610b73565b5090565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124ce573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124f29190612d7a565b905073ffffffffffffffffffffffffffffffffffffffff8116612541576040517f5373352a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805133602482018190527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff81811660448501526064808501889052855180860390910181526084909401909452602080840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001781528451610c3c9688169589936116f89388935f9283929091839182885af18061261b576040513d5f823e3d81fd5b50505f513d9150811561263257806001141561264c565b73ffffffffffffffffffffffffffffffffffffffff84163b155b156116f8576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610b73565b60405180606001604052805f81526020015f67ffffffffffffffff1681526020016126d760405180604001604052805f81526020015f81525090565b905290565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f610c2360208301846126dc565b73ffffffffffffffffffffffffffffffffffffffff811681146113ae575f5ffd5b5f5f6040838503121561276c575f5ffd5b82356127778161273a565b946020939093013593505050565b5f60e08284031215612795575f5ffd5b50919050565b5f602082840312156127ab575f5ffd5b813567ffffffffffffffff8111156127c1575f5ffd5b610df584828501612785565b83518152602080850151908201525f60a0820160a0604084015280855180835260c08501915060c08160051b8601019250602087015f5b8281101561286a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff40878603018452815180518652602081015190506040602087015261285460408701826126dc565b9550506020938401939190910190600101612804565b5050855160608601525050602084015160808401529050610df5565b5f60608284031215612795575f5ffd5b5f5f83601f8401126128a6575f5ffd5b50813567ffffffffffffffff8111156128bd575f5ffd5b6020830191508360208285010111156128d4575f5ffd5b9250929050565b5f5f5f5f5f5f5f60e0888a0312156128f1575f5ffd5b6128fb8989612886565b965060608801359550608088013567ffffffffffffffff81111561291d575f5ffd5b6129298a828b01612896565b90965094505060a088013561293d8161273a565b925060c088013567ffffffffffffffff811115612958575f5ffd5b6129648a828b01612896565b989b979a50959850939692959293505050565b5f5f5f60608486031215612989575f5ffd5b83356129948161273a565b925060208401356129a48161273a565b929592945050506040919091013590565b803563ffffffff811681146129c8575f5ffd5b919050565b5f5f604083850312156129de575f5ffd5b612777836129b5565b80151581146113ae575f5ffd5b5f5f60408385031215612a05575f5ffd5b823567ffffffffffffffff811115612a1b575f5ffd5b612a2785828601612785565b9250506020830135612a38816129e7565b809150509250929050565b81518152602080830151908201526040810161095d565b803561ffff811681146129c8575f5ffd5b5f5f60408385031215612a7c575f5ffd5b612a85836129b5565b9150612a9360208401612a5a565b90509250929050565b5f60208284031215612aac575f5ffd5b8135610c238161273a565b5f5f5f5f60a08587031215612aca575f5ffd5b612ad48686612886565b9350606085013567ffffffffffffffff811115612aef575f5ffd5b612afb87828801612896565b9094509250506080850135612b0f8161273a565b939692955090935050565b5f5f83601f840112612b2a575f5ffd5b50813567ffffffffffffffff811115612b41575f5ffd5b6020830191508360208260051b85010111156128d4575f5ffd5b5f5f60208385031215612b6c575f5ffd5b823567ffffffffffffffff811115612b82575f5ffd5b612b8e85828601612b1a565b90969095509350505050565b5f60208284031215612baa575f5ffd5b610c23826129b5565b5f5f5f5f60608587031215612bc6575f5ffd5b612bcf856129b5565b9350612bdd60208601612a5a565b9250604085013567ffffffffffffffff811115612bf8575f5ffd5b612c0487828801612896565b95989497509550505050565b5f5f5f8385036080811215612c23575f5ffd5b843567ffffffffffffffff811115612c39575f5ffd5b612c4587828801612785565b94505060407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082011215612c77575f5ffd5b506020840191506060840135612c8c8161273a565b809150509250925092565b5f60c0820190508351825267ffffffffffffffff60208501511660208301526040840151612cd2604084018280518252602090810151910152565b5082516080830152602083015160a0830152610c23565b5f5f60408385031215612cfa575f5ffd5b8235612d058161273a565b91506020830135612a388161273a565b5f60608284031215612d25575f5ffd5b610c238383612886565b600181811c90821680612d4357607f821691505b602082108103612795577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60208284031215612d8a575f5ffd5b8151610c238161273a565b5f60208284031215612da5575f5ffd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040516060810167ffffffffffffffff81118282101715612dfc57612dfc612dac565b60405290565b6040805190810167ffffffffffffffff81118282101715612dfc57612dfc612dac565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715612e6c57612e6c612dac565b604052919050565b5f67ffffffffffffffff821115612e8d57612e8d612dac565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f67ffffffffffffffff831115612ed257612ed2612dac565b8260051b612ee260208201612e25565b84815290830190602081019036831115612efa575f5ffd5b845b83811015612fd357803567ffffffffffffffff811115612f1a575f5ffd5b86016060368290031215612f2c575f5ffd5b612f34612dd9565b612f3d826129b5565b8152612f4b60208301612a5a565b6020820152604082013567ffffffffffffffff811115612f69575f5ffd5b919091019036601f830112612f7c575f5ffd5b8135612f8f612f8a82612e74565b612e25565b818152366020838601011115612fa3575f5ffd5b816020850160208301375f6020838301015280604084015250508085525050602083019250602081019050612efc565b5095945050505050565b5f5f85851115612feb575f5ffd5b83861115612ff7575f5ffd5b5050820193919092039150565b5f81518060208401855e5f93019283525090919050565b5f6130268286613004565b838582375f930192835250909392505050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b602081525f610df5602083018486613039565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec18336030181126130f2575f5ffd5b9190910192915050565b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261312f575f5ffd5b83018035915067ffffffffffffffff821115613149575f5ffd5b6020019150368190038213156128d4575f5ffd5b67ffffffffffffffff811681146113ae575f5ffd5b63ffffffff613180896129b5565b168152602088810135908201525f604089013561319c8161315d565b67ffffffffffffffff811660408401525087606083015260e060808301526131c860e083018789613039565b73ffffffffffffffffffffffffffffffffffffffff861660a084015282810360c08401526131f7818587613039565b9a9950505050505050505050565b5f60208284031215613215575f5ffd5b815167ffffffffffffffff81111561322b575f5ffd5b8201601f8101841361323b575f5ffd5b8051613249612f8a82612e74565b81815285602083850101111561325d575f5ffd5b8160208401602083015e5f91810160200191909152949350505050565b5f6020828403121561328a575f5ffd5b8135610c238161315d565b73ffffffffffffffffffffffffffffffffffffffff8516815283602082015261ffff83166040820152608060608201525f610c9a60808301846126dc565b604081525f6132e560408301856126dc565b8281036020840152611a8081856126dc565b5f60208284031215613307575f5ffd5b8151610c23816129e7565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a0608084015261334760e08401826126dc565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a085015261338282826126dc565b60809690960151151560c085015250505073ffffffffffffffffffffffffffffffffffffffff9190911660209091015290565b5f604082840312156133c5575f5ffd5b6133cd612e02565b825181526020928301519281019290925250919050565b5f604082840312156133f4575f5ffd5b610c2383836133b5565b601f8211156113f257805f5260205f20601f840160051c810160208510156134235750805b601f840160051c820191505b81811015611284575f815560010161342f565b815167ffffffffffffffff81111561345c5761345c612dac565b6134708161346a8454612d2f565b846133fe565b6020601f8211600181146134c1575f831561348b5750848201515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b178455611284565b5f848152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b8281101561350e57878501518255602094850194600190920191016134ee565b508482101561354a57868401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b60f8161c191681555b50505050600190811b01905550565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b828110156135f9577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452815163ffffffff815116865261ffff602082015116602087015260408101519050606060408701526135e360608701826126dc565b955050602093840193919091019060010161357f565b50929695505050505050565b5f6040828403128015613616575f5ffd5b5061361f612e02565b823581526020928301359281019290925250919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f82613696577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b808202811582820484141761095d5761095d613636565b8035602083101561095d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b80357fffffffffffffffff000000000000000000000000000000000000000000000000811690600884101561374d577fffffffffffffffff000000000000000000000000000000000000000000000000808560080360031b1b82161691505b5092915050565b7fffffffffffffffff0000000000000000000000000000000000000000000000008560c01b1681527fffffffff000000000000000000000000000000000000000000000000000000008460e01b16600882015282600c8201525f610c9a602c830184613004565b8082018082111561095d5761095d613636565b8481527fffffffffffffffff0000000000000000000000000000000000000000000000008460c01b1660208201528260288201525f610c9a6048830184613004565b5f6080828403128015613821575f5ffd5b5061382a612dd9565b82518152602083015161383c8161315d565b602082015261384e84604085016133b5565b6040820152939250505056";
1614
+
1615
+ type TownsConstructorParams =
1616
+ | [signer?: Signer]
1617
+ | ConstructorParameters<typeof ContractFactory>;
1618
+
1619
+ const isSuperArgs = (
1620
+ xs: TownsConstructorParams
1621
+ ): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
1622
+
1623
+ export class Towns__factory extends ContractFactory {
1624
+ constructor(...args: TownsConstructorParams) {
1625
+ if (isSuperArgs(args)) {
1626
+ super(...args);
1627
+ } else {
1628
+ super(_abi, _bytecode, args[0]);
1629
+ }
1630
+ }
1631
+
1632
+ override deploy(
1633
+ _name: PromiseOrValue<string>,
1634
+ _symbol: PromiseOrValue<string>,
1635
+ _lzEndpoint: PromiseOrValue<string>,
1636
+ _owner: PromiseOrValue<string>,
1637
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
1638
+ ): Promise<Towns> {
1639
+ return super.deploy(
1640
+ _name,
1641
+ _symbol,
1642
+ _lzEndpoint,
1643
+ _owner,
1644
+ overrides || {}
1645
+ ) as Promise<Towns>;
1646
+ }
1647
+ override getDeployTransaction(
1648
+ _name: PromiseOrValue<string>,
1649
+ _symbol: PromiseOrValue<string>,
1650
+ _lzEndpoint: PromiseOrValue<string>,
1651
+ _owner: PromiseOrValue<string>,
1652
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
1653
+ ): TransactionRequest {
1654
+ return super.getDeployTransaction(
1655
+ _name,
1656
+ _symbol,
1657
+ _lzEndpoint,
1658
+ _owner,
1659
+ overrides || {}
1660
+ );
1661
+ }
1662
+ override attach(address: string): Towns {
1663
+ return super.attach(address) as Towns;
1664
+ }
1665
+ override connect(signer: Signer): Towns__factory {
1666
+ return super.connect(signer) as Towns__factory;
1667
+ }
1668
+
1669
+ static readonly bytecode = _bytecode;
1670
+ static readonly abi = _abi;
1671
+ static createInterface(): TownsInterface {
1672
+ return new utils.Interface(_abi) as TownsInterface;
1673
+ }
1674
+ static connect(address: string, signerOrProvider: Signer | Provider): Towns {
1675
+ return new Contract(address, _abi, signerOrProvider) as Towns;
1676
+ }
1677
+ }