@across-protocol/contracts 4.1.0 → 4.1.1

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,3100 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "Bob_SpokePool",
4
+ "sourceName": "contracts/Bob_SpokePool.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "_wrappedNativeTokenAddress",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "uint32",
15
+ "name": "_depositQuoteTimeBuffer",
16
+ "type": "uint32"
17
+ },
18
+ {
19
+ "internalType": "uint32",
20
+ "name": "_fillDeadlineBuffer",
21
+ "type": "uint32"
22
+ },
23
+ {
24
+ "internalType": "contract IERC20",
25
+ "name": "_l2Usdc",
26
+ "type": "address"
27
+ },
28
+ {
29
+ "internalType": "contract ITokenMessenger",
30
+ "name": "_cctpTokenMessenger",
31
+ "type": "address"
32
+ }
33
+ ],
34
+ "stateMutability": "nonpayable",
35
+ "type": "constructor"
36
+ },
37
+ {
38
+ "inputs": [],
39
+ "name": "ClaimedMerkleLeaf",
40
+ "type": "error"
41
+ },
42
+ {
43
+ "inputs": [],
44
+ "name": "DepositsArePaused",
45
+ "type": "error"
46
+ },
47
+ {
48
+ "inputs": [],
49
+ "name": "DisabledRoute",
50
+ "type": "error"
51
+ },
52
+ {
53
+ "inputs": [],
54
+ "name": "ExpiredFillDeadline",
55
+ "type": "error"
56
+ },
57
+ {
58
+ "inputs": [],
59
+ "name": "FillsArePaused",
60
+ "type": "error"
61
+ },
62
+ {
63
+ "inputs": [],
64
+ "name": "InsufficientSpokePoolBalanceToExecuteLeaf",
65
+ "type": "error"
66
+ },
67
+ {
68
+ "inputs": [],
69
+ "name": "InvalidBytes32",
70
+ "type": "error"
71
+ },
72
+ {
73
+ "inputs": [],
74
+ "name": "InvalidChainId",
75
+ "type": "error"
76
+ },
77
+ {
78
+ "inputs": [],
79
+ "name": "InvalidCrossDomainAdmin",
80
+ "type": "error"
81
+ },
82
+ {
83
+ "inputs": [],
84
+ "name": "InvalidDepositorSignature",
85
+ "type": "error"
86
+ },
87
+ {
88
+ "inputs": [],
89
+ "name": "InvalidExclusiveRelayer",
90
+ "type": "error"
91
+ },
92
+ {
93
+ "inputs": [],
94
+ "name": "InvalidFillDeadline",
95
+ "type": "error"
96
+ },
97
+ {
98
+ "inputs": [],
99
+ "name": "InvalidMerkleLeaf",
100
+ "type": "error"
101
+ },
102
+ {
103
+ "inputs": [],
104
+ "name": "InvalidMerkleProof",
105
+ "type": "error"
106
+ },
107
+ {
108
+ "inputs": [],
109
+ "name": "InvalidPayoutAdjustmentPct",
110
+ "type": "error"
111
+ },
112
+ {
113
+ "inputs": [],
114
+ "name": "InvalidQuoteTimestamp",
115
+ "type": "error"
116
+ },
117
+ {
118
+ "inputs": [],
119
+ "name": "InvalidRelayerFeePct",
120
+ "type": "error"
121
+ },
122
+ {
123
+ "inputs": [],
124
+ "name": "InvalidSlowFillRequest",
125
+ "type": "error"
126
+ },
127
+ {
128
+ "inputs": [],
129
+ "name": "InvalidWithdrawalRecipient",
130
+ "type": "error"
131
+ },
132
+ {
133
+ "inputs": [
134
+ {
135
+ "internalType": "bytes",
136
+ "name": "data",
137
+ "type": "bytes"
138
+ }
139
+ ],
140
+ "name": "LowLevelCallFailed",
141
+ "type": "error"
142
+ },
143
+ {
144
+ "inputs": [],
145
+ "name": "MaxTransferSizeExceeded",
146
+ "type": "error"
147
+ },
148
+ {
149
+ "inputs": [],
150
+ "name": "MsgValueDoesNotMatchInputAmount",
151
+ "type": "error"
152
+ },
153
+ {
154
+ "inputs": [],
155
+ "name": "NoRelayerRefundToClaim",
156
+ "type": "error"
157
+ },
158
+ {
159
+ "inputs": [],
160
+ "name": "NoSlowFillsInExclusivityWindow",
161
+ "type": "error"
162
+ },
163
+ {
164
+ "inputs": [],
165
+ "name": "NotCrossChainCall",
166
+ "type": "error"
167
+ },
168
+ {
169
+ "inputs": [],
170
+ "name": "NotCrossDomainAdmin",
171
+ "type": "error"
172
+ },
173
+ {
174
+ "inputs": [],
175
+ "name": "NotEOA",
176
+ "type": "error"
177
+ },
178
+ {
179
+ "inputs": [],
180
+ "name": "NotExclusiveRelayer",
181
+ "type": "error"
182
+ },
183
+ {
184
+ "inputs": [],
185
+ "name": "RelayFilled",
186
+ "type": "error"
187
+ },
188
+ {
189
+ "inputs": [],
190
+ "name": "WrongERC7683OrderId",
191
+ "type": "error"
192
+ },
193
+ {
194
+ "anonymous": false,
195
+ "inputs": [
196
+ {
197
+ "indexed": false,
198
+ "internalType": "address",
199
+ "name": "previousAdmin",
200
+ "type": "address"
201
+ },
202
+ {
203
+ "indexed": false,
204
+ "internalType": "address",
205
+ "name": "newAdmin",
206
+ "type": "address"
207
+ }
208
+ ],
209
+ "name": "AdminChanged",
210
+ "type": "event"
211
+ },
212
+ {
213
+ "anonymous": false,
214
+ "inputs": [
215
+ {
216
+ "indexed": true,
217
+ "internalType": "address",
218
+ "name": "beacon",
219
+ "type": "address"
220
+ }
221
+ ],
222
+ "name": "BeaconUpgraded",
223
+ "type": "event"
224
+ },
225
+ {
226
+ "anonymous": false,
227
+ "inputs": [
228
+ {
229
+ "indexed": true,
230
+ "internalType": "bytes32",
231
+ "name": "l2TokenAddress",
232
+ "type": "bytes32"
233
+ },
234
+ {
235
+ "indexed": true,
236
+ "internalType": "bytes32",
237
+ "name": "refundAddress",
238
+ "type": "bytes32"
239
+ },
240
+ {
241
+ "indexed": false,
242
+ "internalType": "uint256",
243
+ "name": "amount",
244
+ "type": "uint256"
245
+ },
246
+ {
247
+ "indexed": true,
248
+ "internalType": "address",
249
+ "name": "caller",
250
+ "type": "address"
251
+ }
252
+ ],
253
+ "name": "ClaimedRelayerRefund",
254
+ "type": "event"
255
+ },
256
+ {
257
+ "anonymous": false,
258
+ "inputs": [
259
+ {
260
+ "indexed": true,
261
+ "internalType": "uint256",
262
+ "name": "rootBundleId",
263
+ "type": "uint256"
264
+ }
265
+ ],
266
+ "name": "EmergencyDeletedRootBundle",
267
+ "type": "event"
268
+ },
269
+ {
270
+ "anonymous": false,
271
+ "inputs": [
272
+ {
273
+ "indexed": true,
274
+ "internalType": "address",
275
+ "name": "originToken",
276
+ "type": "address"
277
+ },
278
+ {
279
+ "indexed": true,
280
+ "internalType": "uint256",
281
+ "name": "destinationChainId",
282
+ "type": "uint256"
283
+ },
284
+ {
285
+ "indexed": false,
286
+ "internalType": "bool",
287
+ "name": "enabled",
288
+ "type": "bool"
289
+ }
290
+ ],
291
+ "name": "EnabledDepositRoute",
292
+ "type": "event"
293
+ },
294
+ {
295
+ "anonymous": false,
296
+ "inputs": [
297
+ {
298
+ "indexed": false,
299
+ "internalType": "uint256",
300
+ "name": "amountToReturn",
301
+ "type": "uint256"
302
+ },
303
+ {
304
+ "indexed": true,
305
+ "internalType": "uint256",
306
+ "name": "chainId",
307
+ "type": "uint256"
308
+ },
309
+ {
310
+ "indexed": false,
311
+ "internalType": "uint256[]",
312
+ "name": "refundAmounts",
313
+ "type": "uint256[]"
314
+ },
315
+ {
316
+ "indexed": true,
317
+ "internalType": "uint32",
318
+ "name": "rootBundleId",
319
+ "type": "uint32"
320
+ },
321
+ {
322
+ "indexed": true,
323
+ "internalType": "uint32",
324
+ "name": "leafId",
325
+ "type": "uint32"
326
+ },
327
+ {
328
+ "indexed": false,
329
+ "internalType": "address",
330
+ "name": "l2TokenAddress",
331
+ "type": "address"
332
+ },
333
+ {
334
+ "indexed": false,
335
+ "internalType": "address[]",
336
+ "name": "refundAddresses",
337
+ "type": "address[]"
338
+ },
339
+ {
340
+ "indexed": false,
341
+ "internalType": "bool",
342
+ "name": "deferredRefunds",
343
+ "type": "bool"
344
+ },
345
+ {
346
+ "indexed": false,
347
+ "internalType": "address",
348
+ "name": "caller",
349
+ "type": "address"
350
+ }
351
+ ],
352
+ "name": "ExecutedRelayerRefundRoot",
353
+ "type": "event"
354
+ },
355
+ {
356
+ "anonymous": false,
357
+ "inputs": [
358
+ {
359
+ "indexed": false,
360
+ "internalType": "bytes32",
361
+ "name": "inputToken",
362
+ "type": "bytes32"
363
+ },
364
+ {
365
+ "indexed": false,
366
+ "internalType": "bytes32",
367
+ "name": "outputToken",
368
+ "type": "bytes32"
369
+ },
370
+ {
371
+ "indexed": false,
372
+ "internalType": "uint256",
373
+ "name": "inputAmount",
374
+ "type": "uint256"
375
+ },
376
+ {
377
+ "indexed": false,
378
+ "internalType": "uint256",
379
+ "name": "outputAmount",
380
+ "type": "uint256"
381
+ },
382
+ {
383
+ "indexed": false,
384
+ "internalType": "uint256",
385
+ "name": "repaymentChainId",
386
+ "type": "uint256"
387
+ },
388
+ {
389
+ "indexed": true,
390
+ "internalType": "uint256",
391
+ "name": "originChainId",
392
+ "type": "uint256"
393
+ },
394
+ {
395
+ "indexed": true,
396
+ "internalType": "uint256",
397
+ "name": "depositId",
398
+ "type": "uint256"
399
+ },
400
+ {
401
+ "indexed": false,
402
+ "internalType": "uint32",
403
+ "name": "fillDeadline",
404
+ "type": "uint32"
405
+ },
406
+ {
407
+ "indexed": false,
408
+ "internalType": "uint32",
409
+ "name": "exclusivityDeadline",
410
+ "type": "uint32"
411
+ },
412
+ {
413
+ "indexed": false,
414
+ "internalType": "bytes32",
415
+ "name": "exclusiveRelayer",
416
+ "type": "bytes32"
417
+ },
418
+ {
419
+ "indexed": true,
420
+ "internalType": "bytes32",
421
+ "name": "relayer",
422
+ "type": "bytes32"
423
+ },
424
+ {
425
+ "indexed": false,
426
+ "internalType": "bytes32",
427
+ "name": "depositor",
428
+ "type": "bytes32"
429
+ },
430
+ {
431
+ "indexed": false,
432
+ "internalType": "bytes32",
433
+ "name": "recipient",
434
+ "type": "bytes32"
435
+ },
436
+ {
437
+ "indexed": false,
438
+ "internalType": "bytes32",
439
+ "name": "messageHash",
440
+ "type": "bytes32"
441
+ },
442
+ {
443
+ "components": [
444
+ {
445
+ "internalType": "bytes32",
446
+ "name": "updatedRecipient",
447
+ "type": "bytes32"
448
+ },
449
+ {
450
+ "internalType": "bytes32",
451
+ "name": "updatedMessageHash",
452
+ "type": "bytes32"
453
+ },
454
+ {
455
+ "internalType": "uint256",
456
+ "name": "updatedOutputAmount",
457
+ "type": "uint256"
458
+ },
459
+ {
460
+ "internalType": "enum V3SpokePoolInterface.FillType",
461
+ "name": "fillType",
462
+ "type": "uint8"
463
+ }
464
+ ],
465
+ "indexed": false,
466
+ "internalType": "struct V3SpokePoolInterface.V3RelayExecutionEventInfo",
467
+ "name": "relayExecutionInfo",
468
+ "type": "tuple"
469
+ }
470
+ ],
471
+ "name": "FilledRelay",
472
+ "type": "event"
473
+ },
474
+ {
475
+ "anonymous": false,
476
+ "inputs": [
477
+ {
478
+ "indexed": false,
479
+ "internalType": "address",
480
+ "name": "inputToken",
481
+ "type": "address"
482
+ },
483
+ {
484
+ "indexed": false,
485
+ "internalType": "address",
486
+ "name": "outputToken",
487
+ "type": "address"
488
+ },
489
+ {
490
+ "indexed": false,
491
+ "internalType": "uint256",
492
+ "name": "inputAmount",
493
+ "type": "uint256"
494
+ },
495
+ {
496
+ "indexed": false,
497
+ "internalType": "uint256",
498
+ "name": "outputAmount",
499
+ "type": "uint256"
500
+ },
501
+ {
502
+ "indexed": false,
503
+ "internalType": "uint256",
504
+ "name": "repaymentChainId",
505
+ "type": "uint256"
506
+ },
507
+ {
508
+ "indexed": true,
509
+ "internalType": "uint256",
510
+ "name": "originChainId",
511
+ "type": "uint256"
512
+ },
513
+ {
514
+ "indexed": true,
515
+ "internalType": "uint32",
516
+ "name": "depositId",
517
+ "type": "uint32"
518
+ },
519
+ {
520
+ "indexed": false,
521
+ "internalType": "uint32",
522
+ "name": "fillDeadline",
523
+ "type": "uint32"
524
+ },
525
+ {
526
+ "indexed": false,
527
+ "internalType": "uint32",
528
+ "name": "exclusivityDeadline",
529
+ "type": "uint32"
530
+ },
531
+ {
532
+ "indexed": false,
533
+ "internalType": "address",
534
+ "name": "exclusiveRelayer",
535
+ "type": "address"
536
+ },
537
+ {
538
+ "indexed": true,
539
+ "internalType": "address",
540
+ "name": "relayer",
541
+ "type": "address"
542
+ },
543
+ {
544
+ "indexed": false,
545
+ "internalType": "address",
546
+ "name": "depositor",
547
+ "type": "address"
548
+ },
549
+ {
550
+ "indexed": false,
551
+ "internalType": "address",
552
+ "name": "recipient",
553
+ "type": "address"
554
+ },
555
+ {
556
+ "indexed": false,
557
+ "internalType": "bytes",
558
+ "name": "message",
559
+ "type": "bytes"
560
+ },
561
+ {
562
+ "components": [
563
+ {
564
+ "internalType": "address",
565
+ "name": "updatedRecipient",
566
+ "type": "address"
567
+ },
568
+ {
569
+ "internalType": "bytes",
570
+ "name": "updatedMessage",
571
+ "type": "bytes"
572
+ },
573
+ {
574
+ "internalType": "uint256",
575
+ "name": "updatedOutputAmount",
576
+ "type": "uint256"
577
+ },
578
+ {
579
+ "internalType": "enum V3SpokePoolInterface.FillType",
580
+ "name": "fillType",
581
+ "type": "uint8"
582
+ }
583
+ ],
584
+ "indexed": false,
585
+ "internalType": "struct V3SpokePoolInterface.LegacyV3RelayExecutionEventInfo",
586
+ "name": "relayExecutionInfo",
587
+ "type": "tuple"
588
+ }
589
+ ],
590
+ "name": "FilledV3Relay",
591
+ "type": "event"
592
+ },
593
+ {
594
+ "anonymous": false,
595
+ "inputs": [
596
+ {
597
+ "indexed": false,
598
+ "internalType": "bytes32",
599
+ "name": "inputToken",
600
+ "type": "bytes32"
601
+ },
602
+ {
603
+ "indexed": false,
604
+ "internalType": "bytes32",
605
+ "name": "outputToken",
606
+ "type": "bytes32"
607
+ },
608
+ {
609
+ "indexed": false,
610
+ "internalType": "uint256",
611
+ "name": "inputAmount",
612
+ "type": "uint256"
613
+ },
614
+ {
615
+ "indexed": false,
616
+ "internalType": "uint256",
617
+ "name": "outputAmount",
618
+ "type": "uint256"
619
+ },
620
+ {
621
+ "indexed": true,
622
+ "internalType": "uint256",
623
+ "name": "destinationChainId",
624
+ "type": "uint256"
625
+ },
626
+ {
627
+ "indexed": true,
628
+ "internalType": "uint256",
629
+ "name": "depositId",
630
+ "type": "uint256"
631
+ },
632
+ {
633
+ "indexed": false,
634
+ "internalType": "uint32",
635
+ "name": "quoteTimestamp",
636
+ "type": "uint32"
637
+ },
638
+ {
639
+ "indexed": false,
640
+ "internalType": "uint32",
641
+ "name": "fillDeadline",
642
+ "type": "uint32"
643
+ },
644
+ {
645
+ "indexed": false,
646
+ "internalType": "uint32",
647
+ "name": "exclusivityDeadline",
648
+ "type": "uint32"
649
+ },
650
+ {
651
+ "indexed": true,
652
+ "internalType": "bytes32",
653
+ "name": "depositor",
654
+ "type": "bytes32"
655
+ },
656
+ {
657
+ "indexed": false,
658
+ "internalType": "bytes32",
659
+ "name": "recipient",
660
+ "type": "bytes32"
661
+ },
662
+ {
663
+ "indexed": false,
664
+ "internalType": "bytes32",
665
+ "name": "exclusiveRelayer",
666
+ "type": "bytes32"
667
+ },
668
+ {
669
+ "indexed": false,
670
+ "internalType": "bytes",
671
+ "name": "message",
672
+ "type": "bytes"
673
+ }
674
+ ],
675
+ "name": "FundsDeposited",
676
+ "type": "event"
677
+ },
678
+ {
679
+ "anonymous": false,
680
+ "inputs": [
681
+ {
682
+ "indexed": false,
683
+ "internalType": "uint8",
684
+ "name": "version",
685
+ "type": "uint8"
686
+ }
687
+ ],
688
+ "name": "Initialized",
689
+ "type": "event"
690
+ },
691
+ {
692
+ "anonymous": false,
693
+ "inputs": [
694
+ {
695
+ "indexed": false,
696
+ "internalType": "bool",
697
+ "name": "isPaused",
698
+ "type": "bool"
699
+ }
700
+ ],
701
+ "name": "PausedDeposits",
702
+ "type": "event"
703
+ },
704
+ {
705
+ "anonymous": false,
706
+ "inputs": [
707
+ {
708
+ "indexed": false,
709
+ "internalType": "bool",
710
+ "name": "isPaused",
711
+ "type": "bool"
712
+ }
713
+ ],
714
+ "name": "PausedFills",
715
+ "type": "event"
716
+ },
717
+ {
718
+ "anonymous": false,
719
+ "inputs": [
720
+ {
721
+ "indexed": true,
722
+ "internalType": "uint32",
723
+ "name": "rootBundleId",
724
+ "type": "uint32"
725
+ },
726
+ {
727
+ "indexed": true,
728
+ "internalType": "bytes32",
729
+ "name": "relayerRefundRoot",
730
+ "type": "bytes32"
731
+ },
732
+ {
733
+ "indexed": true,
734
+ "internalType": "bytes32",
735
+ "name": "slowRelayRoot",
736
+ "type": "bytes32"
737
+ }
738
+ ],
739
+ "name": "RelayedRootBundle",
740
+ "type": "event"
741
+ },
742
+ {
743
+ "anonymous": false,
744
+ "inputs": [
745
+ {
746
+ "indexed": false,
747
+ "internalType": "bytes32",
748
+ "name": "inputToken",
749
+ "type": "bytes32"
750
+ },
751
+ {
752
+ "indexed": false,
753
+ "internalType": "bytes32",
754
+ "name": "outputToken",
755
+ "type": "bytes32"
756
+ },
757
+ {
758
+ "indexed": false,
759
+ "internalType": "uint256",
760
+ "name": "inputAmount",
761
+ "type": "uint256"
762
+ },
763
+ {
764
+ "indexed": false,
765
+ "internalType": "uint256",
766
+ "name": "outputAmount",
767
+ "type": "uint256"
768
+ },
769
+ {
770
+ "indexed": true,
771
+ "internalType": "uint256",
772
+ "name": "originChainId",
773
+ "type": "uint256"
774
+ },
775
+ {
776
+ "indexed": true,
777
+ "internalType": "uint256",
778
+ "name": "depositId",
779
+ "type": "uint256"
780
+ },
781
+ {
782
+ "indexed": false,
783
+ "internalType": "uint32",
784
+ "name": "fillDeadline",
785
+ "type": "uint32"
786
+ },
787
+ {
788
+ "indexed": false,
789
+ "internalType": "uint32",
790
+ "name": "exclusivityDeadline",
791
+ "type": "uint32"
792
+ },
793
+ {
794
+ "indexed": false,
795
+ "internalType": "bytes32",
796
+ "name": "exclusiveRelayer",
797
+ "type": "bytes32"
798
+ },
799
+ {
800
+ "indexed": false,
801
+ "internalType": "bytes32",
802
+ "name": "depositor",
803
+ "type": "bytes32"
804
+ },
805
+ {
806
+ "indexed": false,
807
+ "internalType": "bytes32",
808
+ "name": "recipient",
809
+ "type": "bytes32"
810
+ },
811
+ {
812
+ "indexed": false,
813
+ "internalType": "bytes32",
814
+ "name": "messageHash",
815
+ "type": "bytes32"
816
+ }
817
+ ],
818
+ "name": "RequestedSlowFill",
819
+ "type": "event"
820
+ },
821
+ {
822
+ "anonymous": false,
823
+ "inputs": [
824
+ {
825
+ "indexed": false,
826
+ "internalType": "uint256",
827
+ "name": "updatedOutputAmount",
828
+ "type": "uint256"
829
+ },
830
+ {
831
+ "indexed": true,
832
+ "internalType": "uint256",
833
+ "name": "depositId",
834
+ "type": "uint256"
835
+ },
836
+ {
837
+ "indexed": true,
838
+ "internalType": "bytes32",
839
+ "name": "depositor",
840
+ "type": "bytes32"
841
+ },
842
+ {
843
+ "indexed": false,
844
+ "internalType": "bytes32",
845
+ "name": "updatedRecipient",
846
+ "type": "bytes32"
847
+ },
848
+ {
849
+ "indexed": false,
850
+ "internalType": "bytes",
851
+ "name": "updatedMessage",
852
+ "type": "bytes"
853
+ },
854
+ {
855
+ "indexed": false,
856
+ "internalType": "bytes",
857
+ "name": "depositorSignature",
858
+ "type": "bytes"
859
+ }
860
+ ],
861
+ "name": "RequestedSpeedUpDeposit",
862
+ "type": "event"
863
+ },
864
+ {
865
+ "anonymous": false,
866
+ "inputs": [
867
+ {
868
+ "indexed": false,
869
+ "internalType": "uint256",
870
+ "name": "updatedOutputAmount",
871
+ "type": "uint256"
872
+ },
873
+ {
874
+ "indexed": true,
875
+ "internalType": "uint32",
876
+ "name": "depositId",
877
+ "type": "uint32"
878
+ },
879
+ {
880
+ "indexed": true,
881
+ "internalType": "address",
882
+ "name": "depositor",
883
+ "type": "address"
884
+ },
885
+ {
886
+ "indexed": false,
887
+ "internalType": "address",
888
+ "name": "updatedRecipient",
889
+ "type": "address"
890
+ },
891
+ {
892
+ "indexed": false,
893
+ "internalType": "bytes",
894
+ "name": "updatedMessage",
895
+ "type": "bytes"
896
+ },
897
+ {
898
+ "indexed": false,
899
+ "internalType": "bytes",
900
+ "name": "depositorSignature",
901
+ "type": "bytes"
902
+ }
903
+ ],
904
+ "name": "RequestedSpeedUpV3Deposit",
905
+ "type": "event"
906
+ },
907
+ {
908
+ "anonymous": false,
909
+ "inputs": [
910
+ {
911
+ "indexed": false,
912
+ "internalType": "address",
913
+ "name": "inputToken",
914
+ "type": "address"
915
+ },
916
+ {
917
+ "indexed": false,
918
+ "internalType": "address",
919
+ "name": "outputToken",
920
+ "type": "address"
921
+ },
922
+ {
923
+ "indexed": false,
924
+ "internalType": "uint256",
925
+ "name": "inputAmount",
926
+ "type": "uint256"
927
+ },
928
+ {
929
+ "indexed": false,
930
+ "internalType": "uint256",
931
+ "name": "outputAmount",
932
+ "type": "uint256"
933
+ },
934
+ {
935
+ "indexed": true,
936
+ "internalType": "uint256",
937
+ "name": "originChainId",
938
+ "type": "uint256"
939
+ },
940
+ {
941
+ "indexed": true,
942
+ "internalType": "uint32",
943
+ "name": "depositId",
944
+ "type": "uint32"
945
+ },
946
+ {
947
+ "indexed": false,
948
+ "internalType": "uint32",
949
+ "name": "fillDeadline",
950
+ "type": "uint32"
951
+ },
952
+ {
953
+ "indexed": false,
954
+ "internalType": "uint32",
955
+ "name": "exclusivityDeadline",
956
+ "type": "uint32"
957
+ },
958
+ {
959
+ "indexed": false,
960
+ "internalType": "address",
961
+ "name": "exclusiveRelayer",
962
+ "type": "address"
963
+ },
964
+ {
965
+ "indexed": false,
966
+ "internalType": "address",
967
+ "name": "depositor",
968
+ "type": "address"
969
+ },
970
+ {
971
+ "indexed": false,
972
+ "internalType": "address",
973
+ "name": "recipient",
974
+ "type": "address"
975
+ },
976
+ {
977
+ "indexed": false,
978
+ "internalType": "bytes",
979
+ "name": "message",
980
+ "type": "bytes"
981
+ }
982
+ ],
983
+ "name": "RequestedV3SlowFill",
984
+ "type": "event"
985
+ },
986
+ {
987
+ "anonymous": false,
988
+ "inputs": [
989
+ {
990
+ "indexed": true,
991
+ "internalType": "uint32",
992
+ "name": "newL1Gas",
993
+ "type": "uint32"
994
+ }
995
+ ],
996
+ "name": "SetL1Gas",
997
+ "type": "event"
998
+ },
999
+ {
1000
+ "anonymous": false,
1001
+ "inputs": [
1002
+ {
1003
+ "indexed": true,
1004
+ "internalType": "address",
1005
+ "name": "l2Token",
1006
+ "type": "address"
1007
+ },
1008
+ {
1009
+ "indexed": true,
1010
+ "internalType": "address",
1011
+ "name": "tokenBridge",
1012
+ "type": "address"
1013
+ }
1014
+ ],
1015
+ "name": "SetL2TokenBridge",
1016
+ "type": "event"
1017
+ },
1018
+ {
1019
+ "anonymous": false,
1020
+ "inputs": [
1021
+ {
1022
+ "indexed": true,
1023
+ "internalType": "address",
1024
+ "name": "l2Token",
1025
+ "type": "address"
1026
+ },
1027
+ {
1028
+ "indexed": true,
1029
+ "internalType": "address",
1030
+ "name": "l1Token",
1031
+ "type": "address"
1032
+ }
1033
+ ],
1034
+ "name": "SetRemoteL1Token",
1035
+ "type": "event"
1036
+ },
1037
+ {
1038
+ "anonymous": false,
1039
+ "inputs": [
1040
+ {
1041
+ "indexed": true,
1042
+ "internalType": "address",
1043
+ "name": "newWithdrawalRecipient",
1044
+ "type": "address"
1045
+ }
1046
+ ],
1047
+ "name": "SetWithdrawalRecipient",
1048
+ "type": "event"
1049
+ },
1050
+ {
1051
+ "anonymous": false,
1052
+ "inputs": [
1053
+ {
1054
+ "indexed": true,
1055
+ "internalType": "address",
1056
+ "name": "newAdmin",
1057
+ "type": "address"
1058
+ }
1059
+ ],
1060
+ "name": "SetXDomainAdmin",
1061
+ "type": "event"
1062
+ },
1063
+ {
1064
+ "anonymous": false,
1065
+ "inputs": [
1066
+ {
1067
+ "indexed": false,
1068
+ "internalType": "uint256",
1069
+ "name": "amountToReturn",
1070
+ "type": "uint256"
1071
+ },
1072
+ {
1073
+ "indexed": true,
1074
+ "internalType": "uint256",
1075
+ "name": "chainId",
1076
+ "type": "uint256"
1077
+ },
1078
+ {
1079
+ "indexed": true,
1080
+ "internalType": "uint32",
1081
+ "name": "leafId",
1082
+ "type": "uint32"
1083
+ },
1084
+ {
1085
+ "indexed": true,
1086
+ "internalType": "bytes32",
1087
+ "name": "l2TokenAddress",
1088
+ "type": "bytes32"
1089
+ },
1090
+ {
1091
+ "indexed": false,
1092
+ "internalType": "address",
1093
+ "name": "caller",
1094
+ "type": "address"
1095
+ }
1096
+ ],
1097
+ "name": "TokensBridged",
1098
+ "type": "event"
1099
+ },
1100
+ {
1101
+ "anonymous": false,
1102
+ "inputs": [
1103
+ {
1104
+ "indexed": true,
1105
+ "internalType": "address",
1106
+ "name": "implementation",
1107
+ "type": "address"
1108
+ }
1109
+ ],
1110
+ "name": "Upgraded",
1111
+ "type": "event"
1112
+ },
1113
+ {
1114
+ "anonymous": false,
1115
+ "inputs": [
1116
+ {
1117
+ "indexed": false,
1118
+ "internalType": "address",
1119
+ "name": "inputToken",
1120
+ "type": "address"
1121
+ },
1122
+ {
1123
+ "indexed": false,
1124
+ "internalType": "address",
1125
+ "name": "outputToken",
1126
+ "type": "address"
1127
+ },
1128
+ {
1129
+ "indexed": false,
1130
+ "internalType": "uint256",
1131
+ "name": "inputAmount",
1132
+ "type": "uint256"
1133
+ },
1134
+ {
1135
+ "indexed": false,
1136
+ "internalType": "uint256",
1137
+ "name": "outputAmount",
1138
+ "type": "uint256"
1139
+ },
1140
+ {
1141
+ "indexed": true,
1142
+ "internalType": "uint256",
1143
+ "name": "destinationChainId",
1144
+ "type": "uint256"
1145
+ },
1146
+ {
1147
+ "indexed": true,
1148
+ "internalType": "uint32",
1149
+ "name": "depositId",
1150
+ "type": "uint32"
1151
+ },
1152
+ {
1153
+ "indexed": false,
1154
+ "internalType": "uint32",
1155
+ "name": "quoteTimestamp",
1156
+ "type": "uint32"
1157
+ },
1158
+ {
1159
+ "indexed": false,
1160
+ "internalType": "uint32",
1161
+ "name": "fillDeadline",
1162
+ "type": "uint32"
1163
+ },
1164
+ {
1165
+ "indexed": false,
1166
+ "internalType": "uint32",
1167
+ "name": "exclusivityDeadline",
1168
+ "type": "uint32"
1169
+ },
1170
+ {
1171
+ "indexed": true,
1172
+ "internalType": "address",
1173
+ "name": "depositor",
1174
+ "type": "address"
1175
+ },
1176
+ {
1177
+ "indexed": false,
1178
+ "internalType": "address",
1179
+ "name": "recipient",
1180
+ "type": "address"
1181
+ },
1182
+ {
1183
+ "indexed": false,
1184
+ "internalType": "address",
1185
+ "name": "exclusiveRelayer",
1186
+ "type": "address"
1187
+ },
1188
+ {
1189
+ "indexed": false,
1190
+ "internalType": "bytes",
1191
+ "name": "message",
1192
+ "type": "bytes"
1193
+ }
1194
+ ],
1195
+ "name": "V3FundsDeposited",
1196
+ "type": "event"
1197
+ },
1198
+ {
1199
+ "inputs": [],
1200
+ "name": "EMPTY_RELAYER",
1201
+ "outputs": [
1202
+ {
1203
+ "internalType": "bytes32",
1204
+ "name": "",
1205
+ "type": "bytes32"
1206
+ }
1207
+ ],
1208
+ "stateMutability": "view",
1209
+ "type": "function"
1210
+ },
1211
+ {
1212
+ "inputs": [],
1213
+ "name": "EMPTY_REPAYMENT_CHAIN_ID",
1214
+ "outputs": [
1215
+ {
1216
+ "internalType": "uint256",
1217
+ "name": "",
1218
+ "type": "uint256"
1219
+ }
1220
+ ],
1221
+ "stateMutability": "view",
1222
+ "type": "function"
1223
+ },
1224
+ {
1225
+ "inputs": [],
1226
+ "name": "INFINITE_FILL_DEADLINE",
1227
+ "outputs": [
1228
+ {
1229
+ "internalType": "uint32",
1230
+ "name": "",
1231
+ "type": "uint32"
1232
+ }
1233
+ ],
1234
+ "stateMutability": "view",
1235
+ "type": "function"
1236
+ },
1237
+ {
1238
+ "inputs": [],
1239
+ "name": "MAX_EXCLUSIVITY_PERIOD_SECONDS",
1240
+ "outputs": [
1241
+ {
1242
+ "internalType": "uint32",
1243
+ "name": "",
1244
+ "type": "uint32"
1245
+ }
1246
+ ],
1247
+ "stateMutability": "view",
1248
+ "type": "function"
1249
+ },
1250
+ {
1251
+ "inputs": [],
1252
+ "name": "MAX_TRANSFER_SIZE",
1253
+ "outputs": [
1254
+ {
1255
+ "internalType": "uint256",
1256
+ "name": "",
1257
+ "type": "uint256"
1258
+ }
1259
+ ],
1260
+ "stateMutability": "view",
1261
+ "type": "function"
1262
+ },
1263
+ {
1264
+ "inputs": [],
1265
+ "name": "MESSENGER",
1266
+ "outputs": [
1267
+ {
1268
+ "internalType": "address",
1269
+ "name": "",
1270
+ "type": "address"
1271
+ }
1272
+ ],
1273
+ "stateMutability": "view",
1274
+ "type": "function"
1275
+ },
1276
+ {
1277
+ "inputs": [],
1278
+ "name": "UPDATE_BYTES32_DEPOSIT_DETAILS_HASH",
1279
+ "outputs": [
1280
+ {
1281
+ "internalType": "bytes32",
1282
+ "name": "",
1283
+ "type": "bytes32"
1284
+ }
1285
+ ],
1286
+ "stateMutability": "view",
1287
+ "type": "function"
1288
+ },
1289
+ {
1290
+ "inputs": [
1291
+ {
1292
+ "internalType": "uint32",
1293
+ "name": "_initialDepositId",
1294
+ "type": "uint32"
1295
+ },
1296
+ {
1297
+ "internalType": "address",
1298
+ "name": "_crossDomainAdmin",
1299
+ "type": "address"
1300
+ },
1301
+ {
1302
+ "internalType": "address",
1303
+ "name": "_withdrawalRecipient",
1304
+ "type": "address"
1305
+ },
1306
+ {
1307
+ "internalType": "address",
1308
+ "name": "_l2Eth",
1309
+ "type": "address"
1310
+ }
1311
+ ],
1312
+ "name": "__OvmSpokePool_init",
1313
+ "outputs": [],
1314
+ "stateMutability": "nonpayable",
1315
+ "type": "function"
1316
+ },
1317
+ {
1318
+ "inputs": [
1319
+ {
1320
+ "internalType": "uint32",
1321
+ "name": "_initialDepositId",
1322
+ "type": "uint32"
1323
+ },
1324
+ {
1325
+ "internalType": "address",
1326
+ "name": "_crossDomainAdmin",
1327
+ "type": "address"
1328
+ },
1329
+ {
1330
+ "internalType": "address",
1331
+ "name": "_withdrawalRecipient",
1332
+ "type": "address"
1333
+ }
1334
+ ],
1335
+ "name": "__SpokePool_init",
1336
+ "outputs": [],
1337
+ "stateMutability": "nonpayable",
1338
+ "type": "function"
1339
+ },
1340
+ {
1341
+ "inputs": [],
1342
+ "name": "cctpTokenMessenger",
1343
+ "outputs": [
1344
+ {
1345
+ "internalType": "contract ITokenMessenger",
1346
+ "name": "",
1347
+ "type": "address"
1348
+ }
1349
+ ],
1350
+ "stateMutability": "view",
1351
+ "type": "function"
1352
+ },
1353
+ {
1354
+ "inputs": [],
1355
+ "name": "cctpV2",
1356
+ "outputs": [
1357
+ {
1358
+ "internalType": "bool",
1359
+ "name": "",
1360
+ "type": "bool"
1361
+ }
1362
+ ],
1363
+ "stateMutability": "view",
1364
+ "type": "function"
1365
+ },
1366
+ {
1367
+ "inputs": [],
1368
+ "name": "chainId",
1369
+ "outputs": [
1370
+ {
1371
+ "internalType": "uint256",
1372
+ "name": "",
1373
+ "type": "uint256"
1374
+ }
1375
+ ],
1376
+ "stateMutability": "view",
1377
+ "type": "function"
1378
+ },
1379
+ {
1380
+ "inputs": [
1381
+ {
1382
+ "internalType": "bytes32",
1383
+ "name": "l2TokenAddress",
1384
+ "type": "bytes32"
1385
+ },
1386
+ {
1387
+ "internalType": "bytes32",
1388
+ "name": "refundAddress",
1389
+ "type": "bytes32"
1390
+ }
1391
+ ],
1392
+ "name": "claimRelayerRefund",
1393
+ "outputs": [],
1394
+ "stateMutability": "nonpayable",
1395
+ "type": "function"
1396
+ },
1397
+ {
1398
+ "inputs": [],
1399
+ "name": "crossDomainAdmin",
1400
+ "outputs": [
1401
+ {
1402
+ "internalType": "address",
1403
+ "name": "",
1404
+ "type": "address"
1405
+ }
1406
+ ],
1407
+ "stateMutability": "view",
1408
+ "type": "function"
1409
+ },
1410
+ {
1411
+ "inputs": [
1412
+ {
1413
+ "internalType": "bytes32",
1414
+ "name": "depositor",
1415
+ "type": "bytes32"
1416
+ },
1417
+ {
1418
+ "internalType": "bytes32",
1419
+ "name": "recipient",
1420
+ "type": "bytes32"
1421
+ },
1422
+ {
1423
+ "internalType": "bytes32",
1424
+ "name": "inputToken",
1425
+ "type": "bytes32"
1426
+ },
1427
+ {
1428
+ "internalType": "bytes32",
1429
+ "name": "outputToken",
1430
+ "type": "bytes32"
1431
+ },
1432
+ {
1433
+ "internalType": "uint256",
1434
+ "name": "inputAmount",
1435
+ "type": "uint256"
1436
+ },
1437
+ {
1438
+ "internalType": "uint256",
1439
+ "name": "outputAmount",
1440
+ "type": "uint256"
1441
+ },
1442
+ {
1443
+ "internalType": "uint256",
1444
+ "name": "destinationChainId",
1445
+ "type": "uint256"
1446
+ },
1447
+ {
1448
+ "internalType": "bytes32",
1449
+ "name": "exclusiveRelayer",
1450
+ "type": "bytes32"
1451
+ },
1452
+ {
1453
+ "internalType": "uint32",
1454
+ "name": "quoteTimestamp",
1455
+ "type": "uint32"
1456
+ },
1457
+ {
1458
+ "internalType": "uint32",
1459
+ "name": "fillDeadline",
1460
+ "type": "uint32"
1461
+ },
1462
+ {
1463
+ "internalType": "uint32",
1464
+ "name": "exclusivityParameter",
1465
+ "type": "uint32"
1466
+ },
1467
+ {
1468
+ "internalType": "bytes",
1469
+ "name": "message",
1470
+ "type": "bytes"
1471
+ }
1472
+ ],
1473
+ "name": "deposit",
1474
+ "outputs": [],
1475
+ "stateMutability": "payable",
1476
+ "type": "function"
1477
+ },
1478
+ {
1479
+ "inputs": [
1480
+ {
1481
+ "internalType": "address",
1482
+ "name": "recipient",
1483
+ "type": "address"
1484
+ },
1485
+ {
1486
+ "internalType": "address",
1487
+ "name": "originToken",
1488
+ "type": "address"
1489
+ },
1490
+ {
1491
+ "internalType": "uint256",
1492
+ "name": "amount",
1493
+ "type": "uint256"
1494
+ },
1495
+ {
1496
+ "internalType": "uint256",
1497
+ "name": "destinationChainId",
1498
+ "type": "uint256"
1499
+ },
1500
+ {
1501
+ "internalType": "int64",
1502
+ "name": "relayerFeePct",
1503
+ "type": "int64"
1504
+ },
1505
+ {
1506
+ "internalType": "uint32",
1507
+ "name": "quoteTimestamp",
1508
+ "type": "uint32"
1509
+ },
1510
+ {
1511
+ "internalType": "bytes",
1512
+ "name": "message",
1513
+ "type": "bytes"
1514
+ },
1515
+ {
1516
+ "internalType": "uint256",
1517
+ "name": "",
1518
+ "type": "uint256"
1519
+ }
1520
+ ],
1521
+ "name": "depositDeprecated_5947912356",
1522
+ "outputs": [],
1523
+ "stateMutability": "payable",
1524
+ "type": "function"
1525
+ },
1526
+ {
1527
+ "inputs": [
1528
+ {
1529
+ "internalType": "address",
1530
+ "name": "depositor",
1531
+ "type": "address"
1532
+ },
1533
+ {
1534
+ "internalType": "address",
1535
+ "name": "recipient",
1536
+ "type": "address"
1537
+ },
1538
+ {
1539
+ "internalType": "address",
1540
+ "name": "originToken",
1541
+ "type": "address"
1542
+ },
1543
+ {
1544
+ "internalType": "uint256",
1545
+ "name": "amount",
1546
+ "type": "uint256"
1547
+ },
1548
+ {
1549
+ "internalType": "uint256",
1550
+ "name": "destinationChainId",
1551
+ "type": "uint256"
1552
+ },
1553
+ {
1554
+ "internalType": "int64",
1555
+ "name": "relayerFeePct",
1556
+ "type": "int64"
1557
+ },
1558
+ {
1559
+ "internalType": "uint32",
1560
+ "name": "quoteTimestamp",
1561
+ "type": "uint32"
1562
+ },
1563
+ {
1564
+ "internalType": "bytes",
1565
+ "name": "message",
1566
+ "type": "bytes"
1567
+ },
1568
+ {
1569
+ "internalType": "uint256",
1570
+ "name": "",
1571
+ "type": "uint256"
1572
+ }
1573
+ ],
1574
+ "name": "depositFor",
1575
+ "outputs": [],
1576
+ "stateMutability": "payable",
1577
+ "type": "function"
1578
+ },
1579
+ {
1580
+ "inputs": [
1581
+ {
1582
+ "internalType": "bytes32",
1583
+ "name": "depositor",
1584
+ "type": "bytes32"
1585
+ },
1586
+ {
1587
+ "internalType": "bytes32",
1588
+ "name": "recipient",
1589
+ "type": "bytes32"
1590
+ },
1591
+ {
1592
+ "internalType": "bytes32",
1593
+ "name": "inputToken",
1594
+ "type": "bytes32"
1595
+ },
1596
+ {
1597
+ "internalType": "bytes32",
1598
+ "name": "outputToken",
1599
+ "type": "bytes32"
1600
+ },
1601
+ {
1602
+ "internalType": "uint256",
1603
+ "name": "inputAmount",
1604
+ "type": "uint256"
1605
+ },
1606
+ {
1607
+ "internalType": "uint256",
1608
+ "name": "outputAmount",
1609
+ "type": "uint256"
1610
+ },
1611
+ {
1612
+ "internalType": "uint256",
1613
+ "name": "destinationChainId",
1614
+ "type": "uint256"
1615
+ },
1616
+ {
1617
+ "internalType": "bytes32",
1618
+ "name": "exclusiveRelayer",
1619
+ "type": "bytes32"
1620
+ },
1621
+ {
1622
+ "internalType": "uint32",
1623
+ "name": "fillDeadlineOffset",
1624
+ "type": "uint32"
1625
+ },
1626
+ {
1627
+ "internalType": "uint32",
1628
+ "name": "exclusivityParameter",
1629
+ "type": "uint32"
1630
+ },
1631
+ {
1632
+ "internalType": "bytes",
1633
+ "name": "message",
1634
+ "type": "bytes"
1635
+ }
1636
+ ],
1637
+ "name": "depositNow",
1638
+ "outputs": [],
1639
+ "stateMutability": "payable",
1640
+ "type": "function"
1641
+ },
1642
+ {
1643
+ "inputs": [],
1644
+ "name": "depositQuoteTimeBuffer",
1645
+ "outputs": [
1646
+ {
1647
+ "internalType": "uint32",
1648
+ "name": "",
1649
+ "type": "uint32"
1650
+ }
1651
+ ],
1652
+ "stateMutability": "view",
1653
+ "type": "function"
1654
+ },
1655
+ {
1656
+ "inputs": [
1657
+ {
1658
+ "internalType": "address",
1659
+ "name": "depositor",
1660
+ "type": "address"
1661
+ },
1662
+ {
1663
+ "internalType": "address",
1664
+ "name": "recipient",
1665
+ "type": "address"
1666
+ },
1667
+ {
1668
+ "internalType": "address",
1669
+ "name": "inputToken",
1670
+ "type": "address"
1671
+ },
1672
+ {
1673
+ "internalType": "address",
1674
+ "name": "outputToken",
1675
+ "type": "address"
1676
+ },
1677
+ {
1678
+ "internalType": "uint256",
1679
+ "name": "inputAmount",
1680
+ "type": "uint256"
1681
+ },
1682
+ {
1683
+ "internalType": "uint256",
1684
+ "name": "outputAmount",
1685
+ "type": "uint256"
1686
+ },
1687
+ {
1688
+ "internalType": "uint256",
1689
+ "name": "destinationChainId",
1690
+ "type": "uint256"
1691
+ },
1692
+ {
1693
+ "internalType": "address",
1694
+ "name": "exclusiveRelayer",
1695
+ "type": "address"
1696
+ },
1697
+ {
1698
+ "internalType": "uint32",
1699
+ "name": "quoteTimestamp",
1700
+ "type": "uint32"
1701
+ },
1702
+ {
1703
+ "internalType": "uint32",
1704
+ "name": "fillDeadline",
1705
+ "type": "uint32"
1706
+ },
1707
+ {
1708
+ "internalType": "uint32",
1709
+ "name": "exclusivityParameter",
1710
+ "type": "uint32"
1711
+ },
1712
+ {
1713
+ "internalType": "bytes",
1714
+ "name": "message",
1715
+ "type": "bytes"
1716
+ }
1717
+ ],
1718
+ "name": "depositV3",
1719
+ "outputs": [],
1720
+ "stateMutability": "payable",
1721
+ "type": "function"
1722
+ },
1723
+ {
1724
+ "inputs": [
1725
+ {
1726
+ "internalType": "address",
1727
+ "name": "depositor",
1728
+ "type": "address"
1729
+ },
1730
+ {
1731
+ "internalType": "address",
1732
+ "name": "recipient",
1733
+ "type": "address"
1734
+ },
1735
+ {
1736
+ "internalType": "address",
1737
+ "name": "inputToken",
1738
+ "type": "address"
1739
+ },
1740
+ {
1741
+ "internalType": "address",
1742
+ "name": "outputToken",
1743
+ "type": "address"
1744
+ },
1745
+ {
1746
+ "internalType": "uint256",
1747
+ "name": "inputAmount",
1748
+ "type": "uint256"
1749
+ },
1750
+ {
1751
+ "internalType": "uint256",
1752
+ "name": "outputAmount",
1753
+ "type": "uint256"
1754
+ },
1755
+ {
1756
+ "internalType": "uint256",
1757
+ "name": "destinationChainId",
1758
+ "type": "uint256"
1759
+ },
1760
+ {
1761
+ "internalType": "address",
1762
+ "name": "exclusiveRelayer",
1763
+ "type": "address"
1764
+ },
1765
+ {
1766
+ "internalType": "uint32",
1767
+ "name": "fillDeadlineOffset",
1768
+ "type": "uint32"
1769
+ },
1770
+ {
1771
+ "internalType": "uint32",
1772
+ "name": "exclusivityParameter",
1773
+ "type": "uint32"
1774
+ },
1775
+ {
1776
+ "internalType": "bytes",
1777
+ "name": "message",
1778
+ "type": "bytes"
1779
+ }
1780
+ ],
1781
+ "name": "depositV3Now",
1782
+ "outputs": [],
1783
+ "stateMutability": "payable",
1784
+ "type": "function"
1785
+ },
1786
+ {
1787
+ "inputs": [
1788
+ {
1789
+ "internalType": "uint256",
1790
+ "name": "rootBundleId",
1791
+ "type": "uint256"
1792
+ }
1793
+ ],
1794
+ "name": "emergencyDeleteRootBundle",
1795
+ "outputs": [],
1796
+ "stateMutability": "nonpayable",
1797
+ "type": "function"
1798
+ },
1799
+ {
1800
+ "inputs": [
1801
+ {
1802
+ "internalType": "uint32",
1803
+ "name": "rootBundleId",
1804
+ "type": "uint32"
1805
+ },
1806
+ {
1807
+ "components": [
1808
+ {
1809
+ "internalType": "uint256",
1810
+ "name": "amountToReturn",
1811
+ "type": "uint256"
1812
+ },
1813
+ {
1814
+ "internalType": "uint256",
1815
+ "name": "chainId",
1816
+ "type": "uint256"
1817
+ },
1818
+ {
1819
+ "internalType": "uint256[]",
1820
+ "name": "refundAmounts",
1821
+ "type": "uint256[]"
1822
+ },
1823
+ {
1824
+ "internalType": "uint32",
1825
+ "name": "leafId",
1826
+ "type": "uint32"
1827
+ },
1828
+ {
1829
+ "internalType": "address",
1830
+ "name": "l2TokenAddress",
1831
+ "type": "address"
1832
+ },
1833
+ {
1834
+ "internalType": "address[]",
1835
+ "name": "refundAddresses",
1836
+ "type": "address[]"
1837
+ }
1838
+ ],
1839
+ "internalType": "struct SpokePoolInterface.RelayerRefundLeaf",
1840
+ "name": "relayerRefundLeaf",
1841
+ "type": "tuple"
1842
+ },
1843
+ {
1844
+ "internalType": "bytes32[]",
1845
+ "name": "proof",
1846
+ "type": "bytes32[]"
1847
+ }
1848
+ ],
1849
+ "name": "executeRelayerRefundLeaf",
1850
+ "outputs": [],
1851
+ "stateMutability": "payable",
1852
+ "type": "function"
1853
+ },
1854
+ {
1855
+ "inputs": [
1856
+ {
1857
+ "components": [
1858
+ {
1859
+ "components": [
1860
+ {
1861
+ "internalType": "bytes32",
1862
+ "name": "depositor",
1863
+ "type": "bytes32"
1864
+ },
1865
+ {
1866
+ "internalType": "bytes32",
1867
+ "name": "recipient",
1868
+ "type": "bytes32"
1869
+ },
1870
+ {
1871
+ "internalType": "bytes32",
1872
+ "name": "exclusiveRelayer",
1873
+ "type": "bytes32"
1874
+ },
1875
+ {
1876
+ "internalType": "bytes32",
1877
+ "name": "inputToken",
1878
+ "type": "bytes32"
1879
+ },
1880
+ {
1881
+ "internalType": "bytes32",
1882
+ "name": "outputToken",
1883
+ "type": "bytes32"
1884
+ },
1885
+ {
1886
+ "internalType": "uint256",
1887
+ "name": "inputAmount",
1888
+ "type": "uint256"
1889
+ },
1890
+ {
1891
+ "internalType": "uint256",
1892
+ "name": "outputAmount",
1893
+ "type": "uint256"
1894
+ },
1895
+ {
1896
+ "internalType": "uint256",
1897
+ "name": "originChainId",
1898
+ "type": "uint256"
1899
+ },
1900
+ {
1901
+ "internalType": "uint256",
1902
+ "name": "depositId",
1903
+ "type": "uint256"
1904
+ },
1905
+ {
1906
+ "internalType": "uint32",
1907
+ "name": "fillDeadline",
1908
+ "type": "uint32"
1909
+ },
1910
+ {
1911
+ "internalType": "uint32",
1912
+ "name": "exclusivityDeadline",
1913
+ "type": "uint32"
1914
+ },
1915
+ {
1916
+ "internalType": "bytes",
1917
+ "name": "message",
1918
+ "type": "bytes"
1919
+ }
1920
+ ],
1921
+ "internalType": "struct V3SpokePoolInterface.V3RelayData",
1922
+ "name": "relayData",
1923
+ "type": "tuple"
1924
+ },
1925
+ {
1926
+ "internalType": "uint256",
1927
+ "name": "chainId",
1928
+ "type": "uint256"
1929
+ },
1930
+ {
1931
+ "internalType": "uint256",
1932
+ "name": "updatedOutputAmount",
1933
+ "type": "uint256"
1934
+ }
1935
+ ],
1936
+ "internalType": "struct V3SpokePoolInterface.V3SlowFill",
1937
+ "name": "slowFillLeaf",
1938
+ "type": "tuple"
1939
+ },
1940
+ {
1941
+ "internalType": "uint32",
1942
+ "name": "rootBundleId",
1943
+ "type": "uint32"
1944
+ },
1945
+ {
1946
+ "internalType": "bytes32[]",
1947
+ "name": "proof",
1948
+ "type": "bytes32[]"
1949
+ }
1950
+ ],
1951
+ "name": "executeSlowRelayLeaf",
1952
+ "outputs": [],
1953
+ "stateMutability": "nonpayable",
1954
+ "type": "function"
1955
+ },
1956
+ {
1957
+ "inputs": [
1958
+ {
1959
+ "internalType": "bytes32",
1960
+ "name": "orderId",
1961
+ "type": "bytes32"
1962
+ },
1963
+ {
1964
+ "internalType": "bytes",
1965
+ "name": "originData",
1966
+ "type": "bytes"
1967
+ },
1968
+ {
1969
+ "internalType": "bytes",
1970
+ "name": "fillerData",
1971
+ "type": "bytes"
1972
+ }
1973
+ ],
1974
+ "name": "fill",
1975
+ "outputs": [],
1976
+ "stateMutability": "nonpayable",
1977
+ "type": "function"
1978
+ },
1979
+ {
1980
+ "inputs": [],
1981
+ "name": "fillDeadlineBuffer",
1982
+ "outputs": [
1983
+ {
1984
+ "internalType": "uint32",
1985
+ "name": "",
1986
+ "type": "uint32"
1987
+ }
1988
+ ],
1989
+ "stateMutability": "view",
1990
+ "type": "function"
1991
+ },
1992
+ {
1993
+ "inputs": [
1994
+ {
1995
+ "components": [
1996
+ {
1997
+ "internalType": "bytes32",
1998
+ "name": "depositor",
1999
+ "type": "bytes32"
2000
+ },
2001
+ {
2002
+ "internalType": "bytes32",
2003
+ "name": "recipient",
2004
+ "type": "bytes32"
2005
+ },
2006
+ {
2007
+ "internalType": "bytes32",
2008
+ "name": "exclusiveRelayer",
2009
+ "type": "bytes32"
2010
+ },
2011
+ {
2012
+ "internalType": "bytes32",
2013
+ "name": "inputToken",
2014
+ "type": "bytes32"
2015
+ },
2016
+ {
2017
+ "internalType": "bytes32",
2018
+ "name": "outputToken",
2019
+ "type": "bytes32"
2020
+ },
2021
+ {
2022
+ "internalType": "uint256",
2023
+ "name": "inputAmount",
2024
+ "type": "uint256"
2025
+ },
2026
+ {
2027
+ "internalType": "uint256",
2028
+ "name": "outputAmount",
2029
+ "type": "uint256"
2030
+ },
2031
+ {
2032
+ "internalType": "uint256",
2033
+ "name": "originChainId",
2034
+ "type": "uint256"
2035
+ },
2036
+ {
2037
+ "internalType": "uint256",
2038
+ "name": "depositId",
2039
+ "type": "uint256"
2040
+ },
2041
+ {
2042
+ "internalType": "uint32",
2043
+ "name": "fillDeadline",
2044
+ "type": "uint32"
2045
+ },
2046
+ {
2047
+ "internalType": "uint32",
2048
+ "name": "exclusivityDeadline",
2049
+ "type": "uint32"
2050
+ },
2051
+ {
2052
+ "internalType": "bytes",
2053
+ "name": "message",
2054
+ "type": "bytes"
2055
+ }
2056
+ ],
2057
+ "internalType": "struct V3SpokePoolInterface.V3RelayData",
2058
+ "name": "relayData",
2059
+ "type": "tuple"
2060
+ },
2061
+ {
2062
+ "internalType": "uint256",
2063
+ "name": "repaymentChainId",
2064
+ "type": "uint256"
2065
+ },
2066
+ {
2067
+ "internalType": "bytes32",
2068
+ "name": "repaymentAddress",
2069
+ "type": "bytes32"
2070
+ }
2071
+ ],
2072
+ "name": "fillRelay",
2073
+ "outputs": [],
2074
+ "stateMutability": "nonpayable",
2075
+ "type": "function"
2076
+ },
2077
+ {
2078
+ "inputs": [
2079
+ {
2080
+ "components": [
2081
+ {
2082
+ "internalType": "bytes32",
2083
+ "name": "depositor",
2084
+ "type": "bytes32"
2085
+ },
2086
+ {
2087
+ "internalType": "bytes32",
2088
+ "name": "recipient",
2089
+ "type": "bytes32"
2090
+ },
2091
+ {
2092
+ "internalType": "bytes32",
2093
+ "name": "exclusiveRelayer",
2094
+ "type": "bytes32"
2095
+ },
2096
+ {
2097
+ "internalType": "bytes32",
2098
+ "name": "inputToken",
2099
+ "type": "bytes32"
2100
+ },
2101
+ {
2102
+ "internalType": "bytes32",
2103
+ "name": "outputToken",
2104
+ "type": "bytes32"
2105
+ },
2106
+ {
2107
+ "internalType": "uint256",
2108
+ "name": "inputAmount",
2109
+ "type": "uint256"
2110
+ },
2111
+ {
2112
+ "internalType": "uint256",
2113
+ "name": "outputAmount",
2114
+ "type": "uint256"
2115
+ },
2116
+ {
2117
+ "internalType": "uint256",
2118
+ "name": "originChainId",
2119
+ "type": "uint256"
2120
+ },
2121
+ {
2122
+ "internalType": "uint256",
2123
+ "name": "depositId",
2124
+ "type": "uint256"
2125
+ },
2126
+ {
2127
+ "internalType": "uint32",
2128
+ "name": "fillDeadline",
2129
+ "type": "uint32"
2130
+ },
2131
+ {
2132
+ "internalType": "uint32",
2133
+ "name": "exclusivityDeadline",
2134
+ "type": "uint32"
2135
+ },
2136
+ {
2137
+ "internalType": "bytes",
2138
+ "name": "message",
2139
+ "type": "bytes"
2140
+ }
2141
+ ],
2142
+ "internalType": "struct V3SpokePoolInterface.V3RelayData",
2143
+ "name": "relayData",
2144
+ "type": "tuple"
2145
+ },
2146
+ {
2147
+ "internalType": "uint256",
2148
+ "name": "repaymentChainId",
2149
+ "type": "uint256"
2150
+ },
2151
+ {
2152
+ "internalType": "bytes32",
2153
+ "name": "repaymentAddress",
2154
+ "type": "bytes32"
2155
+ },
2156
+ {
2157
+ "internalType": "uint256",
2158
+ "name": "updatedOutputAmount",
2159
+ "type": "uint256"
2160
+ },
2161
+ {
2162
+ "internalType": "bytes32",
2163
+ "name": "updatedRecipient",
2164
+ "type": "bytes32"
2165
+ },
2166
+ {
2167
+ "internalType": "bytes",
2168
+ "name": "updatedMessage",
2169
+ "type": "bytes"
2170
+ },
2171
+ {
2172
+ "internalType": "bytes",
2173
+ "name": "depositorSignature",
2174
+ "type": "bytes"
2175
+ }
2176
+ ],
2177
+ "name": "fillRelayWithUpdatedDeposit",
2178
+ "outputs": [],
2179
+ "stateMutability": "nonpayable",
2180
+ "type": "function"
2181
+ },
2182
+ {
2183
+ "inputs": [
2184
+ {
2185
+ "internalType": "bytes32",
2186
+ "name": "",
2187
+ "type": "bytes32"
2188
+ }
2189
+ ],
2190
+ "name": "fillStatuses",
2191
+ "outputs": [
2192
+ {
2193
+ "internalType": "uint256",
2194
+ "name": "",
2195
+ "type": "uint256"
2196
+ }
2197
+ ],
2198
+ "stateMutability": "view",
2199
+ "type": "function"
2200
+ },
2201
+ {
2202
+ "inputs": [
2203
+ {
2204
+ "components": [
2205
+ {
2206
+ "internalType": "address",
2207
+ "name": "depositor",
2208
+ "type": "address"
2209
+ },
2210
+ {
2211
+ "internalType": "address",
2212
+ "name": "recipient",
2213
+ "type": "address"
2214
+ },
2215
+ {
2216
+ "internalType": "address",
2217
+ "name": "exclusiveRelayer",
2218
+ "type": "address"
2219
+ },
2220
+ {
2221
+ "internalType": "address",
2222
+ "name": "inputToken",
2223
+ "type": "address"
2224
+ },
2225
+ {
2226
+ "internalType": "address",
2227
+ "name": "outputToken",
2228
+ "type": "address"
2229
+ },
2230
+ {
2231
+ "internalType": "uint256",
2232
+ "name": "inputAmount",
2233
+ "type": "uint256"
2234
+ },
2235
+ {
2236
+ "internalType": "uint256",
2237
+ "name": "outputAmount",
2238
+ "type": "uint256"
2239
+ },
2240
+ {
2241
+ "internalType": "uint256",
2242
+ "name": "originChainId",
2243
+ "type": "uint256"
2244
+ },
2245
+ {
2246
+ "internalType": "uint32",
2247
+ "name": "depositId",
2248
+ "type": "uint32"
2249
+ },
2250
+ {
2251
+ "internalType": "uint32",
2252
+ "name": "fillDeadline",
2253
+ "type": "uint32"
2254
+ },
2255
+ {
2256
+ "internalType": "uint32",
2257
+ "name": "exclusivityDeadline",
2258
+ "type": "uint32"
2259
+ },
2260
+ {
2261
+ "internalType": "bytes",
2262
+ "name": "message",
2263
+ "type": "bytes"
2264
+ }
2265
+ ],
2266
+ "internalType": "struct V3SpokePoolInterface.V3RelayDataLegacy",
2267
+ "name": "relayData",
2268
+ "type": "tuple"
2269
+ },
2270
+ {
2271
+ "internalType": "uint256",
2272
+ "name": "repaymentChainId",
2273
+ "type": "uint256"
2274
+ }
2275
+ ],
2276
+ "name": "fillV3Relay",
2277
+ "outputs": [],
2278
+ "stateMutability": "nonpayable",
2279
+ "type": "function"
2280
+ },
2281
+ {
2282
+ "inputs": [],
2283
+ "name": "getCurrentTime",
2284
+ "outputs": [
2285
+ {
2286
+ "internalType": "uint256",
2287
+ "name": "",
2288
+ "type": "uint256"
2289
+ }
2290
+ ],
2291
+ "stateMutability": "view",
2292
+ "type": "function"
2293
+ },
2294
+ {
2295
+ "inputs": [
2296
+ {
2297
+ "internalType": "address",
2298
+ "name": "l2TokenAddress",
2299
+ "type": "address"
2300
+ },
2301
+ {
2302
+ "internalType": "address",
2303
+ "name": "refundAddress",
2304
+ "type": "address"
2305
+ }
2306
+ ],
2307
+ "name": "getRelayerRefund",
2308
+ "outputs": [
2309
+ {
2310
+ "internalType": "uint256",
2311
+ "name": "",
2312
+ "type": "uint256"
2313
+ }
2314
+ ],
2315
+ "stateMutability": "view",
2316
+ "type": "function"
2317
+ },
2318
+ {
2319
+ "inputs": [
2320
+ {
2321
+ "internalType": "address",
2322
+ "name": "msgSender",
2323
+ "type": "address"
2324
+ },
2325
+ {
2326
+ "internalType": "bytes32",
2327
+ "name": "depositor",
2328
+ "type": "bytes32"
2329
+ },
2330
+ {
2331
+ "internalType": "uint256",
2332
+ "name": "depositNonce",
2333
+ "type": "uint256"
2334
+ }
2335
+ ],
2336
+ "name": "getUnsafeDepositId",
2337
+ "outputs": [
2338
+ {
2339
+ "internalType": "uint256",
2340
+ "name": "",
2341
+ "type": "uint256"
2342
+ }
2343
+ ],
2344
+ "stateMutability": "pure",
2345
+ "type": "function"
2346
+ },
2347
+ {
2348
+ "inputs": [
2349
+ {
2350
+ "components": [
2351
+ {
2352
+ "internalType": "bytes32",
2353
+ "name": "depositor",
2354
+ "type": "bytes32"
2355
+ },
2356
+ {
2357
+ "internalType": "bytes32",
2358
+ "name": "recipient",
2359
+ "type": "bytes32"
2360
+ },
2361
+ {
2362
+ "internalType": "bytes32",
2363
+ "name": "exclusiveRelayer",
2364
+ "type": "bytes32"
2365
+ },
2366
+ {
2367
+ "internalType": "bytes32",
2368
+ "name": "inputToken",
2369
+ "type": "bytes32"
2370
+ },
2371
+ {
2372
+ "internalType": "bytes32",
2373
+ "name": "outputToken",
2374
+ "type": "bytes32"
2375
+ },
2376
+ {
2377
+ "internalType": "uint256",
2378
+ "name": "inputAmount",
2379
+ "type": "uint256"
2380
+ },
2381
+ {
2382
+ "internalType": "uint256",
2383
+ "name": "outputAmount",
2384
+ "type": "uint256"
2385
+ },
2386
+ {
2387
+ "internalType": "uint256",
2388
+ "name": "originChainId",
2389
+ "type": "uint256"
2390
+ },
2391
+ {
2392
+ "internalType": "uint256",
2393
+ "name": "depositId",
2394
+ "type": "uint256"
2395
+ },
2396
+ {
2397
+ "internalType": "uint32",
2398
+ "name": "fillDeadline",
2399
+ "type": "uint32"
2400
+ },
2401
+ {
2402
+ "internalType": "uint32",
2403
+ "name": "exclusivityDeadline",
2404
+ "type": "uint32"
2405
+ },
2406
+ {
2407
+ "internalType": "bytes",
2408
+ "name": "message",
2409
+ "type": "bytes"
2410
+ }
2411
+ ],
2412
+ "internalType": "struct V3SpokePoolInterface.V3RelayData",
2413
+ "name": "relayData",
2414
+ "type": "tuple"
2415
+ }
2416
+ ],
2417
+ "name": "getV3RelayHash",
2418
+ "outputs": [
2419
+ {
2420
+ "internalType": "bytes32",
2421
+ "name": "",
2422
+ "type": "bytes32"
2423
+ }
2424
+ ],
2425
+ "stateMutability": "view",
2426
+ "type": "function"
2427
+ },
2428
+ {
2429
+ "inputs": [
2430
+ {
2431
+ "internalType": "uint32",
2432
+ "name": "_initialDepositId",
2433
+ "type": "uint32"
2434
+ },
2435
+ {
2436
+ "internalType": "address",
2437
+ "name": "_crossDomainAdmin",
2438
+ "type": "address"
2439
+ },
2440
+ {
2441
+ "internalType": "address",
2442
+ "name": "_withdrawalRecipient",
2443
+ "type": "address"
2444
+ }
2445
+ ],
2446
+ "name": "initialize",
2447
+ "outputs": [],
2448
+ "stateMutability": "nonpayable",
2449
+ "type": "function"
2450
+ },
2451
+ {
2452
+ "inputs": [],
2453
+ "name": "l1Gas",
2454
+ "outputs": [
2455
+ {
2456
+ "internalType": "uint32",
2457
+ "name": "",
2458
+ "type": "uint32"
2459
+ }
2460
+ ],
2461
+ "stateMutability": "view",
2462
+ "type": "function"
2463
+ },
2464
+ {
2465
+ "inputs": [],
2466
+ "name": "l2Eth",
2467
+ "outputs": [
2468
+ {
2469
+ "internalType": "address",
2470
+ "name": "",
2471
+ "type": "address"
2472
+ }
2473
+ ],
2474
+ "stateMutability": "view",
2475
+ "type": "function"
2476
+ },
2477
+ {
2478
+ "inputs": [
2479
+ {
2480
+ "internalType": "bytes[]",
2481
+ "name": "data",
2482
+ "type": "bytes[]"
2483
+ }
2484
+ ],
2485
+ "name": "multicall",
2486
+ "outputs": [
2487
+ {
2488
+ "internalType": "bytes[]",
2489
+ "name": "results",
2490
+ "type": "bytes[]"
2491
+ }
2492
+ ],
2493
+ "stateMutability": "nonpayable",
2494
+ "type": "function"
2495
+ },
2496
+ {
2497
+ "inputs": [],
2498
+ "name": "numberOfDeposits",
2499
+ "outputs": [
2500
+ {
2501
+ "internalType": "uint32",
2502
+ "name": "",
2503
+ "type": "uint32"
2504
+ }
2505
+ ],
2506
+ "stateMutability": "view",
2507
+ "type": "function"
2508
+ },
2509
+ {
2510
+ "inputs": [
2511
+ {
2512
+ "internalType": "bool",
2513
+ "name": "pause",
2514
+ "type": "bool"
2515
+ }
2516
+ ],
2517
+ "name": "pauseDeposits",
2518
+ "outputs": [],
2519
+ "stateMutability": "nonpayable",
2520
+ "type": "function"
2521
+ },
2522
+ {
2523
+ "inputs": [
2524
+ {
2525
+ "internalType": "bool",
2526
+ "name": "pause",
2527
+ "type": "bool"
2528
+ }
2529
+ ],
2530
+ "name": "pauseFills",
2531
+ "outputs": [],
2532
+ "stateMutability": "nonpayable",
2533
+ "type": "function"
2534
+ },
2535
+ {
2536
+ "inputs": [],
2537
+ "name": "pausedDeposits",
2538
+ "outputs": [
2539
+ {
2540
+ "internalType": "bool",
2541
+ "name": "",
2542
+ "type": "bool"
2543
+ }
2544
+ ],
2545
+ "stateMutability": "view",
2546
+ "type": "function"
2547
+ },
2548
+ {
2549
+ "inputs": [],
2550
+ "name": "pausedFills",
2551
+ "outputs": [
2552
+ {
2553
+ "internalType": "bool",
2554
+ "name": "",
2555
+ "type": "bool"
2556
+ }
2557
+ ],
2558
+ "stateMutability": "view",
2559
+ "type": "function"
2560
+ },
2561
+ {
2562
+ "inputs": [],
2563
+ "name": "proxiableUUID",
2564
+ "outputs": [
2565
+ {
2566
+ "internalType": "bytes32",
2567
+ "name": "",
2568
+ "type": "bytes32"
2569
+ }
2570
+ ],
2571
+ "stateMutability": "view",
2572
+ "type": "function"
2573
+ },
2574
+ {
2575
+ "inputs": [],
2576
+ "name": "recipientCircleDomainId",
2577
+ "outputs": [
2578
+ {
2579
+ "internalType": "uint32",
2580
+ "name": "",
2581
+ "type": "uint32"
2582
+ }
2583
+ ],
2584
+ "stateMutability": "view",
2585
+ "type": "function"
2586
+ },
2587
+ {
2588
+ "inputs": [
2589
+ {
2590
+ "internalType": "bytes32",
2591
+ "name": "relayerRefundRoot",
2592
+ "type": "bytes32"
2593
+ },
2594
+ {
2595
+ "internalType": "bytes32",
2596
+ "name": "slowRelayRoot",
2597
+ "type": "bytes32"
2598
+ }
2599
+ ],
2600
+ "name": "relayRootBundle",
2601
+ "outputs": [],
2602
+ "stateMutability": "nonpayable",
2603
+ "type": "function"
2604
+ },
2605
+ {
2606
+ "inputs": [
2607
+ {
2608
+ "internalType": "address",
2609
+ "name": "",
2610
+ "type": "address"
2611
+ },
2612
+ {
2613
+ "internalType": "address",
2614
+ "name": "",
2615
+ "type": "address"
2616
+ }
2617
+ ],
2618
+ "name": "relayerRefund",
2619
+ "outputs": [
2620
+ {
2621
+ "internalType": "uint256",
2622
+ "name": "",
2623
+ "type": "uint256"
2624
+ }
2625
+ ],
2626
+ "stateMutability": "view",
2627
+ "type": "function"
2628
+ },
2629
+ {
2630
+ "inputs": [
2631
+ {
2632
+ "internalType": "address",
2633
+ "name": "",
2634
+ "type": "address"
2635
+ }
2636
+ ],
2637
+ "name": "remoteL1Tokens",
2638
+ "outputs": [
2639
+ {
2640
+ "internalType": "address",
2641
+ "name": "",
2642
+ "type": "address"
2643
+ }
2644
+ ],
2645
+ "stateMutability": "view",
2646
+ "type": "function"
2647
+ },
2648
+ {
2649
+ "inputs": [
2650
+ {
2651
+ "components": [
2652
+ {
2653
+ "internalType": "bytes32",
2654
+ "name": "depositor",
2655
+ "type": "bytes32"
2656
+ },
2657
+ {
2658
+ "internalType": "bytes32",
2659
+ "name": "recipient",
2660
+ "type": "bytes32"
2661
+ },
2662
+ {
2663
+ "internalType": "bytes32",
2664
+ "name": "exclusiveRelayer",
2665
+ "type": "bytes32"
2666
+ },
2667
+ {
2668
+ "internalType": "bytes32",
2669
+ "name": "inputToken",
2670
+ "type": "bytes32"
2671
+ },
2672
+ {
2673
+ "internalType": "bytes32",
2674
+ "name": "outputToken",
2675
+ "type": "bytes32"
2676
+ },
2677
+ {
2678
+ "internalType": "uint256",
2679
+ "name": "inputAmount",
2680
+ "type": "uint256"
2681
+ },
2682
+ {
2683
+ "internalType": "uint256",
2684
+ "name": "outputAmount",
2685
+ "type": "uint256"
2686
+ },
2687
+ {
2688
+ "internalType": "uint256",
2689
+ "name": "originChainId",
2690
+ "type": "uint256"
2691
+ },
2692
+ {
2693
+ "internalType": "uint256",
2694
+ "name": "depositId",
2695
+ "type": "uint256"
2696
+ },
2697
+ {
2698
+ "internalType": "uint32",
2699
+ "name": "fillDeadline",
2700
+ "type": "uint32"
2701
+ },
2702
+ {
2703
+ "internalType": "uint32",
2704
+ "name": "exclusivityDeadline",
2705
+ "type": "uint32"
2706
+ },
2707
+ {
2708
+ "internalType": "bytes",
2709
+ "name": "message",
2710
+ "type": "bytes"
2711
+ }
2712
+ ],
2713
+ "internalType": "struct V3SpokePoolInterface.V3RelayData",
2714
+ "name": "relayData",
2715
+ "type": "tuple"
2716
+ }
2717
+ ],
2718
+ "name": "requestSlowFill",
2719
+ "outputs": [],
2720
+ "stateMutability": "nonpayable",
2721
+ "type": "function"
2722
+ },
2723
+ {
2724
+ "inputs": [
2725
+ {
2726
+ "internalType": "uint256",
2727
+ "name": "",
2728
+ "type": "uint256"
2729
+ }
2730
+ ],
2731
+ "name": "rootBundles",
2732
+ "outputs": [
2733
+ {
2734
+ "internalType": "bytes32",
2735
+ "name": "slowRelayRoot",
2736
+ "type": "bytes32"
2737
+ },
2738
+ {
2739
+ "internalType": "bytes32",
2740
+ "name": "relayerRefundRoot",
2741
+ "type": "bytes32"
2742
+ }
2743
+ ],
2744
+ "stateMutability": "view",
2745
+ "type": "function"
2746
+ },
2747
+ {
2748
+ "inputs": [
2749
+ {
2750
+ "internalType": "address",
2751
+ "name": "newCrossDomainAdmin",
2752
+ "type": "address"
2753
+ }
2754
+ ],
2755
+ "name": "setCrossDomainAdmin",
2756
+ "outputs": [],
2757
+ "stateMutability": "nonpayable",
2758
+ "type": "function"
2759
+ },
2760
+ {
2761
+ "inputs": [
2762
+ {
2763
+ "internalType": "uint32",
2764
+ "name": "newl1Gas",
2765
+ "type": "uint32"
2766
+ }
2767
+ ],
2768
+ "name": "setL1GasLimit",
2769
+ "outputs": [],
2770
+ "stateMutability": "nonpayable",
2771
+ "type": "function"
2772
+ },
2773
+ {
2774
+ "inputs": [
2775
+ {
2776
+ "internalType": "address",
2777
+ "name": "l2Token",
2778
+ "type": "address"
2779
+ },
2780
+ {
2781
+ "internalType": "address",
2782
+ "name": "l1Token",
2783
+ "type": "address"
2784
+ }
2785
+ ],
2786
+ "name": "setRemoteL1Token",
2787
+ "outputs": [],
2788
+ "stateMutability": "nonpayable",
2789
+ "type": "function"
2790
+ },
2791
+ {
2792
+ "inputs": [
2793
+ {
2794
+ "internalType": "address",
2795
+ "name": "l2Token",
2796
+ "type": "address"
2797
+ },
2798
+ {
2799
+ "internalType": "address",
2800
+ "name": "tokenBridge",
2801
+ "type": "address"
2802
+ }
2803
+ ],
2804
+ "name": "setTokenBridge",
2805
+ "outputs": [],
2806
+ "stateMutability": "nonpayable",
2807
+ "type": "function"
2808
+ },
2809
+ {
2810
+ "inputs": [
2811
+ {
2812
+ "internalType": "address",
2813
+ "name": "newWithdrawalRecipient",
2814
+ "type": "address"
2815
+ }
2816
+ ],
2817
+ "name": "setWithdrawalRecipient",
2818
+ "outputs": [],
2819
+ "stateMutability": "nonpayable",
2820
+ "type": "function"
2821
+ },
2822
+ {
2823
+ "inputs": [
2824
+ {
2825
+ "internalType": "bytes32",
2826
+ "name": "depositor",
2827
+ "type": "bytes32"
2828
+ },
2829
+ {
2830
+ "internalType": "uint256",
2831
+ "name": "depositId",
2832
+ "type": "uint256"
2833
+ },
2834
+ {
2835
+ "internalType": "uint256",
2836
+ "name": "updatedOutputAmount",
2837
+ "type": "uint256"
2838
+ },
2839
+ {
2840
+ "internalType": "bytes32",
2841
+ "name": "updatedRecipient",
2842
+ "type": "bytes32"
2843
+ },
2844
+ {
2845
+ "internalType": "bytes",
2846
+ "name": "updatedMessage",
2847
+ "type": "bytes"
2848
+ },
2849
+ {
2850
+ "internalType": "bytes",
2851
+ "name": "depositorSignature",
2852
+ "type": "bytes"
2853
+ }
2854
+ ],
2855
+ "name": "speedUpDeposit",
2856
+ "outputs": [],
2857
+ "stateMutability": "nonpayable",
2858
+ "type": "function"
2859
+ },
2860
+ {
2861
+ "inputs": [
2862
+ {
2863
+ "internalType": "address",
2864
+ "name": "depositor",
2865
+ "type": "address"
2866
+ },
2867
+ {
2868
+ "internalType": "uint256",
2869
+ "name": "depositId",
2870
+ "type": "uint256"
2871
+ },
2872
+ {
2873
+ "internalType": "uint256",
2874
+ "name": "updatedOutputAmount",
2875
+ "type": "uint256"
2876
+ },
2877
+ {
2878
+ "internalType": "address",
2879
+ "name": "updatedRecipient",
2880
+ "type": "address"
2881
+ },
2882
+ {
2883
+ "internalType": "bytes",
2884
+ "name": "updatedMessage",
2885
+ "type": "bytes"
2886
+ },
2887
+ {
2888
+ "internalType": "bytes",
2889
+ "name": "depositorSignature",
2890
+ "type": "bytes"
2891
+ }
2892
+ ],
2893
+ "name": "speedUpV3Deposit",
2894
+ "outputs": [],
2895
+ "stateMutability": "nonpayable",
2896
+ "type": "function"
2897
+ },
2898
+ {
2899
+ "inputs": [
2900
+ {
2901
+ "internalType": "address",
2902
+ "name": "",
2903
+ "type": "address"
2904
+ }
2905
+ ],
2906
+ "name": "tokenBridges",
2907
+ "outputs": [
2908
+ {
2909
+ "internalType": "address",
2910
+ "name": "",
2911
+ "type": "address"
2912
+ }
2913
+ ],
2914
+ "stateMutability": "view",
2915
+ "type": "function"
2916
+ },
2917
+ {
2918
+ "inputs": [
2919
+ {
2920
+ "internalType": "bytes[]",
2921
+ "name": "data",
2922
+ "type": "bytes[]"
2923
+ }
2924
+ ],
2925
+ "name": "tryMulticall",
2926
+ "outputs": [
2927
+ {
2928
+ "components": [
2929
+ {
2930
+ "internalType": "bool",
2931
+ "name": "success",
2932
+ "type": "bool"
2933
+ },
2934
+ {
2935
+ "internalType": "bytes",
2936
+ "name": "returnData",
2937
+ "type": "bytes"
2938
+ }
2939
+ ],
2940
+ "internalType": "struct MultiCallerUpgradeable.Result[]",
2941
+ "name": "results",
2942
+ "type": "tuple[]"
2943
+ }
2944
+ ],
2945
+ "stateMutability": "nonpayable",
2946
+ "type": "function"
2947
+ },
2948
+ {
2949
+ "inputs": [
2950
+ {
2951
+ "internalType": "bytes32",
2952
+ "name": "depositor",
2953
+ "type": "bytes32"
2954
+ },
2955
+ {
2956
+ "internalType": "bytes32",
2957
+ "name": "recipient",
2958
+ "type": "bytes32"
2959
+ },
2960
+ {
2961
+ "internalType": "bytes32",
2962
+ "name": "inputToken",
2963
+ "type": "bytes32"
2964
+ },
2965
+ {
2966
+ "internalType": "bytes32",
2967
+ "name": "outputToken",
2968
+ "type": "bytes32"
2969
+ },
2970
+ {
2971
+ "internalType": "uint256",
2972
+ "name": "inputAmount",
2973
+ "type": "uint256"
2974
+ },
2975
+ {
2976
+ "internalType": "uint256",
2977
+ "name": "outputAmount",
2978
+ "type": "uint256"
2979
+ },
2980
+ {
2981
+ "internalType": "uint256",
2982
+ "name": "destinationChainId",
2983
+ "type": "uint256"
2984
+ },
2985
+ {
2986
+ "internalType": "bytes32",
2987
+ "name": "exclusiveRelayer",
2988
+ "type": "bytes32"
2989
+ },
2990
+ {
2991
+ "internalType": "uint256",
2992
+ "name": "depositNonce",
2993
+ "type": "uint256"
2994
+ },
2995
+ {
2996
+ "internalType": "uint32",
2997
+ "name": "quoteTimestamp",
2998
+ "type": "uint32"
2999
+ },
3000
+ {
3001
+ "internalType": "uint32",
3002
+ "name": "fillDeadline",
3003
+ "type": "uint32"
3004
+ },
3005
+ {
3006
+ "internalType": "uint32",
3007
+ "name": "exclusivityParameter",
3008
+ "type": "uint32"
3009
+ },
3010
+ {
3011
+ "internalType": "bytes",
3012
+ "name": "message",
3013
+ "type": "bytes"
3014
+ }
3015
+ ],
3016
+ "name": "unsafeDeposit",
3017
+ "outputs": [],
3018
+ "stateMutability": "payable",
3019
+ "type": "function"
3020
+ },
3021
+ {
3022
+ "inputs": [
3023
+ {
3024
+ "internalType": "address",
3025
+ "name": "newImplementation",
3026
+ "type": "address"
3027
+ }
3028
+ ],
3029
+ "name": "upgradeTo",
3030
+ "outputs": [],
3031
+ "stateMutability": "nonpayable",
3032
+ "type": "function"
3033
+ },
3034
+ {
3035
+ "inputs": [
3036
+ {
3037
+ "internalType": "address",
3038
+ "name": "newImplementation",
3039
+ "type": "address"
3040
+ },
3041
+ {
3042
+ "internalType": "bytes",
3043
+ "name": "data",
3044
+ "type": "bytes"
3045
+ }
3046
+ ],
3047
+ "name": "upgradeToAndCall",
3048
+ "outputs": [],
3049
+ "stateMutability": "payable",
3050
+ "type": "function"
3051
+ },
3052
+ {
3053
+ "inputs": [],
3054
+ "name": "usdcToken",
3055
+ "outputs": [
3056
+ {
3057
+ "internalType": "contract IERC20",
3058
+ "name": "",
3059
+ "type": "address"
3060
+ }
3061
+ ],
3062
+ "stateMutability": "view",
3063
+ "type": "function"
3064
+ },
3065
+ {
3066
+ "inputs": [],
3067
+ "name": "withdrawalRecipient",
3068
+ "outputs": [
3069
+ {
3070
+ "internalType": "address",
3071
+ "name": "",
3072
+ "type": "address"
3073
+ }
3074
+ ],
3075
+ "stateMutability": "view",
3076
+ "type": "function"
3077
+ },
3078
+ {
3079
+ "inputs": [],
3080
+ "name": "wrappedNativeToken",
3081
+ "outputs": [
3082
+ {
3083
+ "internalType": "contract WETH9Interface",
3084
+ "name": "",
3085
+ "type": "address"
3086
+ }
3087
+ ],
3088
+ "stateMutability": "view",
3089
+ "type": "function"
3090
+ },
3091
+ {
3092
+ "stateMutability": "payable",
3093
+ "type": "receive"
3094
+ }
3095
+ ],
3096
+ "bytecode": "0x610180604090808252346200036457506200626260a0813803918284519384926200002b8285620003b1565b833981010312620003155780516001600160a01b03808216939184900362000311576020916200005d838501620003d5565b916200006b828601620003d5565b6060860151958287168703620003115760800151938285169788860362000311573060805260a05260c05260e0525f5460ff8160081c16620002bd5760ff8082160362000284575b506101209485526101409283525f610100908152825163011a412160e61b8682019081526004825291976001600160401b039282860191908483118484101762000266575f938493885251915afa943d156200027a573d91821162000266578351916200012a601f8201601f1916830184620003b1565b82523d5f8284013e5b856200025a575b8562000225575b5050506101609283525192615e7a9485620003e88639608051858181611363015281816119210152611abc015260a051858181610a3a01528181613e8401528181613fe30152818161460d0152818161489801528181614bd90152818161504c015281816153f80152615473015260c051858181611d3001528181613e380152614d92015260e0518581816104ea0152614b82015251848181611f4401528181615a840152615b360152518381816109dd0152818161539801526159590152518281816124400152818161516a015261597c0152518181816120420152615a240152f35b90919294508082519201519181811062000249575b5050161515915f808062000141565b5f19910360031b1b165f806200023a565b8151811495506200013a565b634e487b7160e01b5f52604160045260245ffd5b6060915062000133565b60ff90811916175f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249884835160ff8152a15f620000b3565b825162461bcd60e51b815260048101869052602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b5f80fd5b815162461bcd60e51b815260206004820152602260248201527f414249206465636f64696e673a207475706c65206461746120746f6f2073686f6044820152611c9d60f21b6064820152608490fd5b62461bcd60e51b815260206004820152602260248201527f45746865722073656e7420746f206e6f6e2d70617961626c652066756e63746960448201526137b760f11b6064820152608490fd5b601f909101601f19168101906001600160401b038211908210176200026657604052565b519063ffffffff82168203620003115756fe60806040526004361015610015575b3661303c57005b5f3560e01c8063079bd2c71461041a5780630c5d5f73146104155780630eaac9f0146104105780631186ec331461040b57806311eac8551461040657806315348e441461039d57806317fcb39b146104015780631b3d5559146103fc5780631fab657c146103f757806329cb924d146103f25780632e378115146103ed5780632e63e59a146103e85780633659cfe6146103e3578063431023b8146103de578063437b9116146103d9578063490e49ef146103d4578063493a4f84146103cf5780634f1ef286146103ca5780635285e058146103c557806352d1902d146103c0578063541f4f14146103bb578063577f51f8146103b657806357f6dcb8146103b15780636068d6cb146103ac578063647c576c146103a7578063670fa8ac146103a25780636bbbcd2e1461039d5780636e40098314610398578063738b62e514610393578063766e07031461038e578063775c0d03146103895780637aef642c146103845780637b9392321461037f5780637ef413e11461037a57806382e2c43f146103755780638a7860ce146103705780638b15788e1461036b578063927ede2d146103665780639748cf7c1461036157806397943aa91461035c578063979f2bc21461035757806399cc2968146103525780639a8a05921461034d578063a1244c6714610348578063a18a096e14610343578063ac9650d81461033e578063ad5425c614610339578063adb5a6a6146102ee578063b27a430014610334578063b370b7f51461032f578063babb6aac1461032a578063bf10268d14610325578063c35c83fc14610320578063ceb4c9871461031b578063d7e1583a14610316578063dda5211314610311578063ddd224f11461030c578063de7eba7814610307578063deff4b2414610302578063e3229211146102fd578063ea86bd46146102f8578063ee2a53f8146102f3578063f79f29ed146102ee578063fbbba9ac146102e95763fc8a584f0361000e5761300c565b612f88565b612947565b612f4a565b612e47565b612e1e565b612d29565b612cf9565b612cd0565b612caa565b612c74565b612b7a565b612b4f565b612acb565b6129f4565b6129cd565b61298e565b612809565b61274b565b6125e4565b6125bd565b6125a3565b61250e565b6124e4565b612464565b612421565b6123f3565b612375565b6122fd565b6121e6565b6121af565b612107565b612067565b61202b565b612007565b611f72565b611f28565b610a01565b611eee565b611dac565b611d54565b611d14565b611c3b565b611b78565b611aa2565b611a7b565b6118dc565b611855565b611837565b61176a565b6114e6565b61133a565b611140565b610fe0565b610fb7565b610eab565b610cbb565b610a1b565b6109be565b610918565b6105eb565b610585565b6104ce565b60405162461bcd60e51b815260206004820152602260248201527f45746865722073656e7420746f206e6f6e2d70617961626c652066756e63746960448201526137b760f11b6064820152608490fd5b60405162461bcd60e51b815260206004820152602260248201527f414249206465636f64696e673a207475706c65206461746120746f6f2073686f6044820152611c9d60f21b6064820152608490fd5b5f9103126104c957565b61046f565b3461050e575f3660031901126104c957602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b61041f565b60405162461bcd60e51b815260206004820152602260248201527f414249206465636f64696e673a20696e76616c6964207475706c65206f666673604482015261195d60f21b6064820152608490fd5b6001600160a01b0381160361057457565b5f80fd5b359061058382610563565b565b3461050e5760203660031901126104c95760206004356105a481610563565b6001600160a01b038091165f52610c5d825260405f205416604051908152f35b63ffffffff81160361057457565b6101443590610583826105c4565b3590610583826105c4565b3461050e5760203660031901126104c95763ffffffff60043561060d816105c4565b610615613bf6565b61061d613cbf565b16610c5a8163ffffffff198254161790557fe486a5c4bd7b36eabbfe274c99b39130277417be8d2209b4dae04c4fba64ee3a5f80a26001606555005b60405162461bcd60e51b815260206004820152602b60248201527f414249206465636f64696e673a20696e76616c69642063616c6c64617461206160448201527f72726179206f66667365740000000000000000000000000000000000000000006064820152608490fd5b60405162461bcd60e51b815260206004820152602760248201527f414249206465636f64696e673a20696e76616c6964206279746520617272617960448201527f206c656e677468000000000000000000000000000000000000000000000000006064820152608490fd5b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761075f57604052565b61072f565b6101a0810190811067ffffffffffffffff82111761075f57604052565b67ffffffffffffffff811161075f57604052565b6060810190811067ffffffffffffffff82111761075f57604052565b6080810190811067ffffffffffffffff82111761075f57604052565b6020810190811067ffffffffffffffff82111761075f57604052565b60e0810190811067ffffffffffffffff82111761075f57604052565b60a0810190811067ffffffffffffffff82111761075f57604052565b90601f8019910116810190811067ffffffffffffffff82111761075f57604052565b6040519060c0820182811067ffffffffffffffff82111761075f57604052565b60405190610180820182811067ffffffffffffffff82111761075f57604052565b6040519061058382610764565b60405190610583826107b1565b67ffffffffffffffff811161075f57601f01601f191660200190565b9291926108c68261089e565b916108d46040519384610821565b8294818452818301116108f0578281602093845f960137010152565b6106c4565b9080601f8301121561091357816020610910933591016108ba565b90565b610659565b6101003660031901126104c95760043561093181610563565b60243561093d81610563565b6084358060070b81036105745760a43590610957826105c4565b60c43567ffffffffffffffff81116109b9576109779036906004016108f5565b92610980613cbf565b60ff61086b5460e81c166109a7576109a094606435916044359133613dea565b6001606555005b604051630b4cba3160e31b8152600490fd5b610513565b3461050e575f3660031901126104c95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461050e575f3660031901126104c95760206040515f8152f35b3461050e575f3660031901126104c95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b60405162461bcd60e51b815260206004820152602360248201527f414249206465636f64696e673a20737472756374206461746120746f6f2073686044820152621bdc9d60ea1b6064820152608490fd5b60405162461bcd60e51b815260206004820152602360248201527f414249206465636f64696e673a20696e76616c696420737472756374206f66666044820152621cd95d60ea1b6064820152608490fd5b67ffffffffffffffff811161075f5760051b60200190565b60405162461bcd60e51b815260206004820152602b60248201527f414249206465636f64696e673a20696e76616c69642063616c6c64617461206160448201527f72726179207374726964650000000000000000000000000000000000000000006064820152608490fd5b9080601f83011215610913576020908235610b9d81610b00565b93610bab6040519586610821565b81855260208086019260051b820101928311610be357602001905b828210610bd4575050505090565b81358152908301908301610bc6565b610b18565b9080601f83011215610913576020908235610c0281610b00565b93610c106040519586610821565b81855260208086019260051b820101928311610be357602001905b828210610c39575050505090565b8380918335610c4781610563565b815201910190610c2b565b9291610c5d82610b00565b91610c6b6040519384610821565b829481845260208094019160051b8101928311610be357905b828210610c915750505050565b81358152908301908301610c84565b9080601f830112156109135781602061091093359101610c52565b6003196060368201126104c957600435610cd4816105c4565b60243567ffffffffffffffff928382116109b95760c0908236030112610d9a57610cfc610843565b9080600401358252602481013560208301526044810135848111610d9557610d2a9060043691840101610b83565b6040830152610d3b606482016105e0565b6060830152610d4c60848201610578565b608083015260a481013590848211610d95576004610d6d9236920101610be8565b60a08201526044359283116109b957610d8d610d93933690600401610ca0565b916130a7565b005b610aaf565b610a5e565b60405162461bcd60e51b815260206004820152602760248201527f414249206465636f64696e673a207374727563742063616c6c6461746120746f60448201527f6f2073686f7274000000000000000000000000000000000000000000000000006064820152608490fd5b60405162461bcd60e51b815260206004820152602b60248201527f414249206465636f64696e673a20696e76616c69642063616c6c64617461206160448201527f72726179206c656e6774680000000000000000000000000000000000000000006064820152608490fd5b9181601f840112156109135782359167ffffffffffffffff8311610ea6576020808501948460051b010111610be357565b610e0a565b3461050e576003196060368201126104c95760043567ffffffffffffffff8082116109b957606082360393840112610fb25760243590610eea826105c4565b6044359081116109b957610f02903690600401610e75565b919093610f0d613cbf565b6004840135906101821901811215610fad57610fa394610f9e93610f3a610f979360043691890101612b98565b95610f50610f4b608089015161433a565b613fd9565b610f5987613b29565b9060446020890151916101608a015193610f71610843565b9a8b5260208b015201356040890152606088015260808701525f60a08701523691610c52565b9083614350565b6144a1565b610d936001606555565b61329f565b610d9f565b3461050e575f3660031901126104c9576020604051428152f35b9081610180910312610fb25790565b3461050e5760403660031901126104c95760043567ffffffffffffffff81116109b957611011903690600401610fd1565b61101a816132e4565b6001600160a01b031690611030602082016132e4565b6001600160a01b031691611046604083016132e4565b6001600160a01b031661105b606084016132e4565b6001600160a01b031692611071608082016132e4565b6001600160a01b0316906101006110898183016132ee565b90610120906110998483016132ee565b92610140948581016110aa906132ee565b966101609a8b83016110bc90846132f8565b9a909b6110c7610863565b9e8f91825260208201526040015260608d015260808c015260a081013560a08c015260c081013560c08c015260e0013560e08b015263ffffffff1690890152870190611118919063ffffffff169052565b63ffffffff90911690850152369061112f926108ba565b9082015233602435610d9392613b5a565b3461050e5760203660031901126104c9576004803567ffffffffffffffff81116109b9576111719036908301610fd1565b611179613cbf565b60ff61086b5460e01c1661132a5763ffffffff804216926101408301936111b2816111a3876132ee565b63ffffffff9182169116101590565b61131a576101208401926111c5846132ee565b161061130b576111dd6111d83685612b98565b613b29565b906111f1825f5261087260205260405f2090565b546112fd57506112407f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c329261123b611235611246945f5261087260205260405f2090565b60019055565b6132ee565b936132ee565b61126661126161125a6101608601866132f8565b36916108ba565b61496e565b906112f06040519283926101008701359760e08801359760208101359281359260408301359260c08101359060a081013590606060808201359101358b9693909a999895919261012098959361014089019c895260208901526040880152606087015263ffffffff80921660808701521660a085015260c084015260e08301526101008201520152565b0390a3610d936001606555565b604051624be79160e21b8152fd5b60405163d642b7d960e01b8152fd5b50604051630277ae7b60e21b8152fd5b50604051633d90fc5560e11b8152fd5b3461050e5760203660031901126104c95760043561135781610563565b6001600160a01b0390817f00000000000000000000000000000000000000000000000000000000000000001691611390833014156133d8565b6113bf7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc93828554161461344a565b6113c7613bf6565b604051906113d4826107cd565b5f82527f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561140d575050610d939150615618565b82919216803b156114e1576020600491604051928380926352d1902d60e01b82525afa5f91816114b0575b5061149d5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608490fd5b0390fd5b610d93936114ab9114614983565b6154fa565b6114d391925060203d6020116114da575b6114cb8183610821565b810190614133565b905f611438565b503d6114c1565b613d22565b3461050e5760803660031901126104c957610d93600435611506816105c4565b61163860243561151581610563565b6116336044359161152583610563565b6115846064359561153587610563565b61156160ff5f5460081c16611549816134bc565b610c5a805463ffffffff1916624c4b401790556134bc565b61086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b60405161159081610743565b6009815260208101907f4143524f53532d563200000000000000000000000000000000000000000000008252604051916115c983610743565b6005835260208301917f312e302e30000000000000000000000000000000000000000000000000000000835261160e60ff5f5460081c16611609816134bc565b6134bc565b519020915190209061047f5561048055611626614db9565b61162e614dc9565b614de4565b614e3e565b610c5a9077ffffffffffffffffffffffffffffffffffffffff000000001977ffffffffffffffffffffffffffffffffffffffff0000000083549260201b169116179055565b60206003198201126104c9576004359067ffffffffffffffff82116109b9576116a891600401610e75565b9091565b5f5b8381106116bd5750505f910152565b81810151838201526020016116ae565b906020916116e6815180928185528580860191016116ac565b601f01601f1916010190565b6020808201908083528351809252604092604081018260408560051b8401019601945f925b858410611728575050505050505090565b909192939495968580611759600193603f1986820301885286838d51805115158452015191818582015201906116cd565b990194019401929594939190611717565b3461050e576117783661167d565b61178181610b00565b9160406117916040519485610821565b828452601f196117a084610b00565b015f5b8181106118145750505f5b8381106117c757604051806117c387826116f2565b0390f35b8061180e6117d76001938861352e565b515f806117e5858a8a613542565b906117f4895180938193613559565b0390305af490611802613566565b60208201529015159052565b016117ae565b602090835161182281610743565b5f8152826060818301528289010152016117a3565b3461050e575f3660031901126104c95760206040516301e133808152f35b3461050e5760403660031901126104c957602435600435611874613bf6565b61187c613cbf565b61086c80546801000000000000000081101561075f5763ffffffff91600182019055836118a882612f0b565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b60403660031901126104c9576004356118f481610563565b60243567ffffffffffffffff81116109b9576119149036906004016108f5565b906001600160a01b0391827f0000000000000000000000000000000000000000000000000000000000000000169261194e843014156133d8565b61197d7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc94828654161461344a565b611985613bf6565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156119bb575050610d939150615618565b82919216803b156114e1576020600491604051928380926352d1902d60e01b82525afa5f9181611a5a575b50611a475760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608490fd5b610d9393611a559114614983565b6155c6565b611a7491925060203d6020116114da576114cb8183610821565b905f6119e6565b3461050e575f3660031901126104c95760206001600160a01b036108695416604051908152f35b3461050e575f3660031901126104c9576001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611b0d576040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152602090f35b60405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608490fd5b6101203660031901126104c957600435611b9181610563565b60243590611b9e82610563565b60443591611bab83610563565b60a4358060070b81036105745760c43591611bc5836105c4565b60e43567ffffffffffffffff81116109b957611be59036906004016108f5565b93611bee613cbf565b60ff61086b5460e81c166109a7576109a0956084359260643592613dea565b9181601f840112156109135782359167ffffffffffffffff8311610ea65760208381860195010111610be357565b3461050e5760c03660031901126104c957600435611c5881610563565b60243560443591606435611c6b81610563565b67ffffffffffffffff916084358381116109b957611c8d903690600401611c0d565b60a4949194359182116109b9577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c2694611ccd611d0f933690600401611c0d565b9290916001600160a01b03809716611d018a8c83611cec3688886108ba565b91611cf8368b8b6108ba565b9346908d6149f5565b604051978897169a876135b5565b0390a3005b3461050e575f3660031901126104c957602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461050e575f3660031901126104c957602060ff61086b5460e81c166040519015158152f35b60609060031901126104c957600435611d92816105c4565b90602435611d9f81610563565b9060443561091081610563565b3461050e57611dba36611d7a565b5f54600881901c60ff1615939290849081611ee0575b8115611ec0575b5015611e5557611dfb9284611df2600160ff195f5416175f55565b611e3e576135e8565b611e0157005b611e0f61ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b611e5061010061ff00195f5416175f55565b6135e8565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608490fd5b303b15915081611ed2575b505f611dd7565b6001915060ff16145f611ecb565b600160ff8216109150611dd0565b3461050e575f3660031901126104c95760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b3461050e575f3660031901126104c957602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8015150361057457565b3461050e5760203660031901126104c9577fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae492196020600435611fb281611f68565b611fba613bf6565b611fc2613cbf565b151561086b80547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8460e81b169116179055604051908152a16001606555005b3461050e575f3660031901126104c957602063ffffffff610c5a5416604051908152f35b3461050e575f3660031901126104c95760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b6101603660031901126104c95760043561208081610563565b6024359061208d82610563565b60443561209981610563565b606435906120a682610563565b60e4356120b281610563565b61010435906120c0826105c4565b61012435926120ce846105c4565b610144359667ffffffffffffffff88116109b9576120f3610d93983690600401611c0d565b97909660c4359360a435936084359361367a565b6101803660031901126104c95760043561212081610563565b6024359061212d82610563565b60443561213981610563565b6064359061214682610563565b60e43561215281610563565b6101043561215f816105c4565b610124359161216d836105c4565b6121756105d2565b93610164359767ffffffffffffffff89116109b95761219b610d93993690600401611c0d565b98909760c4359360a435936084359361369c565b3461050e5760603660031901126104c95760206121de6004356121d181610563565b60443590602435906137b7565b604051908152f35b3461050e5760603660031901126104c95767ffffffffffffffff6024358181116109b957612218903690600401611c0d565b916044359081116109b957612231903690600401611c0d565b90604051936020850194806122484684888a6137f3565b039561225c601f1997888101845283610821565b60043591519020036122eb575f9461228b6122ad93612282876122b9958a990190612c4e565b95810190613810565b519360405193849160208301966337bfd2c960e21b88523391602485016138d8565b03908101835282610821565b5190305af46122c6613566565b90156122ce57005b60405163b8fe37a760e01b815290819061149990600483016138fa565b604051630f0c8f4760e11b8152600490fd5b3461050e5760203660031901126104c957600435612319613bf6565b612321613cbf565b61232a81612f0b565b612362576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a03660031901126104c9576101243561238f816105c4565b6101443561239c816105c4565b61016435916123aa836105c4565b610184359267ffffffffffffffff84116109b9576123cf610d93943690600401611c0d565b9390926101043560e43560c43560a43560843560643560443560243560043561390b565b3461050e575f3660031901126104c95760206040517342000000000000000000000000000000000000078152f35b3461050e575f3660031901126104c95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461050e5760e03660031901126104c95767ffffffffffffffff6004358181116109b957612496903690600401610fd1565b60a4358281116109b9576124ae903690600401611c0d565b60c4929192359384116109b9576124cc610d93943690600401611c0d565b93909260843590606435906044359060243590613983565b3461050e57610d936115846116336124fb36611d7a565b93909161156160ff5f5460081c166134bc565b3461050e5760203660031901126104c9577f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e602060043561254e81611f68565b612556613bf6565b61255e613cbf565b151561086b80547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8460e01b169116179055604051908152a16001606555005b3461050e575f3660031901126104c9576020604051468152f35b3461050e575f3660031901126104c957602063ffffffff61086b5460c01c16604051908152f35b3461050e5760403660031901126104c957600435602435612604826153bf565b6001600160a01b0382165f5261087360205261263360405f20336001600160a01b03165f5260205260405f2090565b549182156126d6575f61267a3361266461264c8561433a565b6001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b556126a68361269761268b8461433a565b6001600160a01b031690565b6126a08561433a565b90614e98565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6040516336542bf760e21b8152600490fd5b6020808201906020835283518092526040830192602060408460051b8301019501935f915b84831061271d5750505050505090565b909192939495848061273b600193603f198682030187528a516116cd565b980193019301919493929061270d565b3461050e576127593661167d565b9061276382613a6c565b915f5b81811061277b57604051806117c386826126e8565b5f80612788838587613542565b6040939161279a855180938193613559565b0390305af4906127a8613566565b91156127cf5750906001916127bd828761352e565b526127c8818661352e565b5001612766565b906044815110610574576114996127f460049283810151602480918301019101613ab5565b925162461bcd60e51b815292839283016138fa565b610180806003193601126104c95761010435612824816105c4565b6101243591612832836105c4565b6101443592612840846105c4565b6101643567ffffffffffffffff81116109b957612861903690600401611c0d565b612869613cbf565b61086b549260ff8460e81c166109a757610fa39661290b61125a926128fd63ffffffff6129199860c01c16996128a16115618c613b14565b6128a9610884565b9a6004358c5260243560208d015260443560408d015260643560608d015260843560808d015260a43560a08d015260c43560c08d015260e43560e08d01526101008c01526101208b019063ffffffff169052565b63ffffffff16610140890152565b63ffffffff16610160870152565b90820152614b27565b60409060031901126104c95760043561293a81610563565b9060243561091081610563565b3461050e5760206129856001600160a01b0361296236612922565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b3461050e5760203660031901126104c95760206004356129ad81610563565b6001600160a01b038091165f52610c5c825260405f205416604051908152f35b3461050e575f3660031901126104c95760206001600160a01b0361086a5416604051908152f35b3461050e5760c03660031901126104c95760043560243567ffffffffffffffff6064356044356084358381116109b957612a32903690600401611c0d565b60a4949194359182116109b9577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c2694612a72612ac1933690600401611c0d565b929091612a7d613cbf565b612a868a6153bf565b612ab5898b8989612a983688886108ba565b92612aa4368b8b6108ba565b946001600160a01b034692166149f5565b604051968796876135b5565b0390a36001606555005b3461050e57612ad936612922565b90612ae2613bf6565b612aea613cbf565b6001600160a01b0380911691825f52610c5d602052612b228160405f20906001600160a01b03166001600160a01b0319825416179055565b16907fcb84c2022106a6f2b6f805d446f32fbfd2a528474364fa755f37dac1c0c1b6c85f80a36001606555005b3461050e5760203660031901126104c9576004355f52610872602052602060405f2054604051908152f35b3461050e575f3660031901126104c957602060405163ffffffff8152f35b919061018083820312610d9a57612bad610863565b92803584526020810135602085015260408101356040850152606081013560608501526080810135608085015260a081013560a085015260c081013560c085015260e081013560e08501526101008082013590850152610120612c118183016105e0565b90850152610140612c238183016105e0565b90850152610160918282013567ffffffffffffffff8111610d9557612c4892016108f5565b90830152565b906020828203126104c957813567ffffffffffffffff81116109b9576109109201612b98565b3461050e5760203660031901126104c95760043567ffffffffffffffff81116109b9576121de6111d86020923690600401612b98565b3461050e575f3660031901126104c957602060ff61086b5460e01c166040519015158152f35b3461050e575f3660031901126104c95760206040516ec097ce7bc90715b34b9f10000000008152f35b3461050e5760203660031901126104c9576109a0600435612d1981610563565b612d21613bf6565b61162e613cbf565b3461050e5760603660031901126104c95760043567ffffffffffffffff81116109b957612d5a903690600401612b98565b612d62613cbf565b60ff61086b5460e01c16612e0c5761014081015163ffffffff4281169116101580612ded575b612ddb5780612d99610fa392613b29565b60c082015160208301519061016084015192612db3610843565b948552602085015260408401526060830152608082015260243560a08201526044359061470d565b604051630c3a9b9d60e41b8152600490fd5b50612dfb604082015161433a565b6001600160a01b0316331415612d88565b604051633d90fc5560e11b8152600490fd5b3461050e575f3660031901126104c9576020610c5a546001600160a01b0360405191831c168152f35b610160806003193601126104c95761010435612e62816105c4565b61012435612e6f816105c4565b6101443567ffffffffffffffff81116109b957612e90903690600401611c0d565b63ffffffff94612ea3864216958661365d565b93612eac613cbf565b61086b549160ff8360e81c166109a757612edf612eec966128fd610fa39a61125a9660c01c16996128a16115618c613b14565b86019063ffffffff169052565b610180820152614b27565b634e487b7160e01b5f52603260045260245ffd5b61086c908154811015612f45576003915f52027f71cd7344f4eb2efc8e30291f6dbdb44d618ca368ea5425d217c1d604bf26b84d01905f90565b612ef7565b3461050e5760203660031901126104c95760043561086c5481101561057457612f74604091612f0b565b506001815491015482519182526020820152f35b3461050e57612f9636612922565b90612f9f613bf6565b612fa7613cbf565b6001600160a01b0380911691825f52610c5c602052612fdf8160405f20906001600160a01b03166001600160a01b0319825416179055565b16907ff3dc137d2246f9b8abd0bb821e185ba01122c9b3ea3745ffca6208037674d6705f80a36001606555005b3461050e5760203660031901126104c9576109a060043561302c81610563565b613034613bf6565b611633613cbf565b60405162461bcd60e51b815260206004820152602960248201527f556e6b6e6f776e207369676e617475726520616e64206e6f2066616c6c62616360448201527f6b20646566696e656400000000000000000000000000000000000000000000006064820152608490fd5b916130b0613cbf565b60808201916130c9610f4b84516001600160a01b031690565b6020810191825146036131d0576130f16130f5918360016130e989612f0b565b50015461404c565b1590565b6131be578060607ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e920193613137613131865163ffffffff1690565b876140de565b6131b184519483519361319661318861317760408401998a5161315e8d5163ffffffff1690565b89516001600160a01b03169160a088019b8c519461414f565b925193519851995163ffffffff1690565b94516001600160a01b031690565b945163ffffffff9586604051978897169b1699339487613251565b0390a46105836001606555565b60405163582f497d60e11b8152600490fd5b604051633d23e4d160e11b8152600490fd5b9081518082526020808093019301915f5b828110613201575050505090565b8351855293810193928101926001016131f3565b9081518082526020808093019301915f5b828110613234575050505090565b83516001600160a01b031685529381019392810192600101613226565b949695919361327360a09561329193885260c0602089015260c08801906131e2565b906001600160a01b0380951660408801528682036060880152613215565b951515608085015216910152565b60405162461bcd60e51b815260206004820152601c60248201527f496e76616c69642063616c6c64617461207461696c206f6666736574000000006044820152606490fd5b3561091081610563565b35610910816105c4565b903590601e1981360301821215610fad570180359067ffffffffffffffff82116133705760200191813603831361332b57565b60405162461bcd60e51b815260206004820152601760248201527f43616c6c64617461207461696c20746f6f2073686f72740000000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601c60248201527f496e76616c69642063616c6c64617461207461696c206c656e677468000000006044820152606490fd5b634e487b7160e01b5f52602160045260245ffd5b600311156133d357565b6133b5565b156133df57565b60405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608490fd5b1561345157565b60405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f787900000000000000000000000000000000000000006064820152608490fd5b156134c357565b60405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608490fd5b8051821015612f455760209160051b010190565b90821015612f45576116a89160051b8101906132f8565b908092918237015f815290565b3d15613590573d906135778261089e565b916135856040519384610821565b82523d5f602084013e565b606090565b908060209392818452848401375f828201840152601f01601f1916010190565b949290936135da92610910979587526020870152608060408701526080860191613595565b926060818503910152613595565b61360892916115846116339261156160ff5f5460081c16611549816134bc565b610583610c5a77deaddeaddeaddeaddeaddeaddeaddeaddead00000000000077ffffffffffffffffffffffffffffffffffffffff0000000019825416179055565b634e487b7160e01b5f52601160045260245ffd5b91909163ffffffff8080941691160191821161367557565b613649565b96949290916105839b9a999896949261369a63ffffffff4216988961365d565b985b9593919b999897969492909b6136b0613cbf565b61086b549660ff8860e81c166109a7578760c01c63ffffffff166136d390613b14565b6136fa9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b613702610884565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015260c01c63ffffffff1661010087015261012086019061377b919063ffffffff169052565b63ffffffff1661014085015263ffffffff16610160840152369061379e926108ba565b6101808201526137ad90614b27565b6105836001606555565b916040519160208301936bffffffffffffffffffffffff199060601b16845260348301526054820152605481526137ed816107b1565b51902090565b93929160209161380b91604087526040870191613595565b930152565b908160209103126104c957604051906020820182811067ffffffffffffffff82111761075f5760405235815290565b6109109161018090825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e082015261010080840151908201526138b4610120808501519083019063ffffffff169052565b6101408381015163ffffffff169082015281610160809401519382015201906116cd565b6138f06040929594939560608352606083019061383f565b9460208201520152565b9060206109109281815201906116cd565b9c9a9998979695949392919096613920613cbf565b60ff61086b5460e81c166109a757613939908e336137b7565b96604051809e61394882610764565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff1661012086015261377b565b979290959391969497613994613cbf565b60ff61086b5460e01c16612e0c576139af61014082016132ee565b63ffffffff8042169116101580613a4d575b612ddb57613a36613a4896613a2e6137ad9b6139e06111d83687612b98565b9a6139e9610843565b9b6139f43688612b98565b8d5260208d01528660408d01528760608d0152613a12368b846108ba565b60808d015260a08c0152613a26853561433a565b9836916108ba565b9536916108ba565b9461010060e0830135920135906149f5565b61470d565b50613a5b604082013561433a565b6001600160a01b03163314156139c1565b90613a7682610b00565b613a836040519182610821565b8281528092613a94601f1991610b00565b01905f5b828110613aa457505050565b806060602080938501015201613a98565b6020818303126104c95780519067ffffffffffffffff82116109b9570181601f82011215610913578051613ae88161089e565b92613af66040519485610821565b818452602082840101116108f05761091091602080850191016116ac565b63ffffffff8091169081146136755760010190565b6040516137ed81613b46602082019460408652606083019061383f565b46604083015203601f198101835282610821565b919091613b65613cbf565b60ff61086b5460e01c16612e0c5761014081015163ffffffff4281169116101580613bd7575b612ddb576137ad92613b9c82613b29565b60c083015160208401519061016085015192613bb6610843565b958652602086015260408501526060840152608083015260a082015261470d565b50613be5604082015161433a565b6001600160a01b0316331415613b8b565b734200000000000000000000000000000000000007803303613cad57803b156114e157602060049160405192838092636e296e4560e01b82525afa908115613ca8575f91613c79575b506001600160a01b03613c5e61268b610869546001600160a01b031690565b911603613c6757565b6040516336a816d960e01b8152600490fd5b613c9b915060203d602011613ca1575b613c938183610821565b810190614ee0565b5f613c3f565b503d613c89565b613d8d565b60405163253a6fc960e11b8152600490fd5b600260655414613cd0576002606555565b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b9190820391821161367557565b60405162461bcd60e51b815260206004820152602560248201527f54617267657420636f6e747261637420646f6573206e6f7420636f6e7461696e60448201527f20636f64650000000000000000000000000000000000000000000000000000006064820152608490fd5b6040513d5f823e3d90fd5b926109109695929491946101409585525f60208601526040850152606084015263ffffffff809116608084015260a08301525f60c083015260e08201525f6101008201528161012082015201906116cd565b9193949690959660070b906706f05b59d3b20000613e0783614ef5565b1015613fc7576ec097ce7bc90715b34b9f10000000008411613fb55763ffffffff93613e35858a1642613d15565b857f00000000000000000000000000000000000000000000000000000000000000001610613fa35761086b5460c01c63ffffffff1698613e776115618b613b14565b6001600160a01b039586807f00000000000000000000000000000000000000000000000000000000000000001698169288841480613f9a575b15613f5e57803403613f4c57883b156114e1575f6004996040519a8b8092630d0e30db60e41b825234905af1988915613ca857613f1b613f2e978a927f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39c613f33575b505b83614f43565b92604051998a99169d169b169387613d98565b0390a4565b80613f40613f4692610781565b806104bf565b5f613f13565b604051636452a35d60e01b8152600490fd5b7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3985087613f1b613f2e97613f958430338a614f04565b613f15565b50341515613eb0565b60405163f722177f60e01b8152600490fd5b60405163622db5a960e11b8152600490fd5b60405163284f109760e21b8152600490fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691168114614010575b50565b476140185750565b4790803b156114e1575f90600460405180948193630d0e30db60e41b83525af18015613ca8571561400d5761058390610781565b61091092916040516140d5816140c7602082019460208652805160408401526020810151606084015260a0614091604083015160c060808701526101008601906131e2565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152613215565b03601f198101835282610821565b51902091614f79565b6140e9600291612f0b565b500162ffffff8260081c16805f5281602052600160ff60405f205494161b8080941614614121575f5260205260405f20908154179055565b60405163954476d960e01b8152600490fd5b908160209103126104c9575190565b9190820180921161367557565b91959495939092935f968151908181510361432857816141ce575b50505082614179575b50505050565b6001600160a01b03816141ad7ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb357938661503c565b6040805195865233602087015291169463ffffffff1693a45f808080614173565b6001600160a01b038416803b156114e157604080516370a0823160e01b81523060048083019190915292602090829060249082905afa908115613ca8575f91614309575b505f805b86811061422757505050505061416a565b614231818961352e565b5161423f575b600101614216565b906142559061424e838a61352e565b5190614142565b908282116142f95761428f6130f161427d614270848a61352e565b516001600160a01b031690565b614287848c61352e565b51908c614fca565b15614237579c50876142ef6142e78f6142d26142706142cb6142b1848f61352e565b51966001600160a01b03165f5261087360205260405f2090565b928b61352e565b6001600160a01b03165f5260205260405f2090565b918254614142565b905560019c614237565b50505051632ddaa83160e11b8152fd5b614322915060203d6020116114da576114cb8183610821565b5f614212565b6040516319a5316760e31b8152600490fd5b6001600160a01b039061434c816153bf565b1690565b916130f1906143c99284516040809601519186519161436e83610795565b82526140d56143896020840192468452898501958652612f0b565b50549388519283916143ae6020840196602088525160608d86015260a085019061383f565b9151606084015251608083015203601f198101835282610821565b6143d05750565b5163582f497d60e11b8152600490fd5b6143e9826133c9565b52565b9a989693919c9b9997959492909c6101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff80921660a08901521660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a0830152606001519061446c826133c9565b6101c00152565b9061091094936080936001600160a01b038093168452602084015216604082015281606082015201906116cd565b5f815161012081016144b7815163ffffffff1690565b63ffffffff429116106146fb5760208401519060026144df835f5261087260205260405f2090565b54146146e9576144f985925f5261087260205260405f2090565b6002905560608301519060808401519160a08501519260c0860151918560a0810151938860e08101519561010082015197516145389063ffffffff1690565b61014083015163ffffffff1660408401519184519360208601519561016001516145619061496e565b966060890151986080019e8f516145779061496e565b906040015190614585610891565b9a8b5260208b015260408a0152600260608a01526040519d8e9b6145a99b8d6143ec565b037f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa750374690137208905f94a460808201516145dd9061433a565b90604085015194606001516145f19061433a565b92608001516145ff9061433a565b6001600160a01b03919082167f00000000000000000000000000000000000000000000000000000000000000008316036146d457846146c1575b614645868386166153da565b519283511515806146b7575b61465e575b505050505050565b1690813b156114e1578361468b9560405196879586948593633a5be8cb60e01b8552339160048601614473565b03925af18015613ca8576146a4575b8080808080614656565b80613f406146b192610781565b5f61469a565b50803b1515614651565b6146cf863033858716614f04565b614639565b5f94506146e48685858516614e98565b614645565b604051630479306360e51b8152600490fd5b60405163d642b7d960e01b8152600490fd5b8051916101208301614723815163ffffffff1690565b63ffffffff429116106146fb576020830151600161474a825f5261087260205260405f2090565b5403614967576001905b6002614769825f5261087260205260405f2090565b54146146e95761478561478b915f5261087260205260405f2090565b60029055565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa75037469013720860608601516080870151906148588760a08a0151958a60c08101519760a08401519860e0830151996147e86101008501519c5163ffffffff1690565b61014085015163ffffffff169160408601519386519561484c61481461016060208b01519a015161496e565b9960608c01519b604061482a608083015161496e565b910151906020614838610891565b9e8f528e015260408d015260608c016143e0565b6040519c8d9c8d6143ec565b0390a4614868608083015161433a565b91604082015191608061488a81614882606085015161433a565b94015161433a565b6001600160a01b03929083167f0000000000000000000000000000000000000000000000000000000000000000841603614954576148cc853033868a16614f04565b6148d8858486166153da565b015191825115158061494a575b6148f1575b5050505050565b16803b156114e15761491f935f809460405196879586948593633a5be8cb60e01b8552339160048601614473565b03925af18015613ca857614937575b808080806148ea565b80613f4061494492610781565b5f61492e565b50803b15156148e5565b614962858533868a16614f04565b6148d8565b5f90614754565b8051908161497c5750505f90565b6020012090565b1561498a57565b60405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c655555494400000000000000000000000000000000000000000000006064820152608490fd5b9392604293610583979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c08152614a5a816107e9565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e855260408401526060830152608082015260808152614ab081610805565b519020906040519161190160f01b83526002830152602282015220906156c6565b96926109109a9996949198959261014099895260208901526040880152606087015263ffffffff928380921660808801521660a08601521660c084015260e08301526101008201528161012082015201906116cd565b614b3181516153bf565b6101208101614b50614b47825163ffffffff1690565b63ffffffff1690565b804210908115614d80575b50613fa357610140820191614b74835163ffffffff1690565b9063ffffffff9182614ba8817f00000000000000000000000000000000000000000000000000000000000000001642614142565b911611614d6e5761016081015163ffffffff169180831680614d29575b505060408101908151916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680931480614d20575b15614cd35760808201513403613f4c57823b156114e1575f60049360405194858092630d0e30db60e41b825234905af1928315613ca8577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad393614cc0575b505b51613f2e60608301519260808101519060a081015160c082015197614c9f614c946101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b614ad1565b80613f40614ccd92610781565b5f614c60565b915034613f4c5781614d1b614d0c61268b7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3955161433a565b60808401519030903390614f04565b614c62565b50341515614c02565b6301e133801015614d59575b5060e081015115614d47575f80614bc5565b60405163495d907f60e01b8152600490fd5b91614d67919242169061365d565b905f614d35565b60405163582e388960e01b8152600490fd5b614d8b915042613d15565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f614b5b565b61058360ff5f5460081c166134bc565b614ddd60ff5f5460081c16611609816134bc565b6001606555565b6001600160a01b03168015614e2c57610869816001600160a01b03198254161790557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b60405163ba97b39d60e01b8152600490fd5b6001600160a01b03168015614e865761086a816001600160a01b03198254161790557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b604051635b03092b60e11b8152600490fd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604482019290925261058391614edb82606481015b03601f198101845283610821565b6157a4565b908160209103126104c9575161091081610563565b5f8112614eff5790565b5f0390565b909261058393604051936323b872dd60e01b60208601526001600160a01b038092166024860152166044840152606483015260648252614edb82610805565b90670de0b6b3a7640000915f82840392128383128116908484139015161761367557818102918183041490151715613675570490565b929091905f915b8451831015614fc257614f93838661352e565b519081811015614fb1575f52602052600160405f205b920191614f80565b905f52602052600160405f20614fa9565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f9161500681606481016140c7565b519082855af1903d5f51908361501d575b50505090565b9192509061503257503b15155b5f8080615017565b600191501461502a565b906001600160a01b0390818116907f0000000000000000000000000000000000000000000000000000000000000000831682036151665750803b156114e157604051632e1a7d4d60e01b815260048101849052905f908290602490829084905af18015613ca857615153575b50610c5a54916150c161086a546001600160a01b031690565b73420000000000000000000000000000000000001090813b156114e157604051631474f2a960e31b8152602086901c949094166001600160a01b0390811660048601521660248401526044830182905263ffffffff909316606483015260a060848301525f60a483018190529192839160c4918391905af18015613ca8576151465750565b80613f4061058392610781565b80613f4061516092610781565b5f6150a8565b91807f000000000000000000000000000000000000000000000000000000000000000016151580615394575b156151b657505050610583906151b161086a546001600160a01b031690565b61594c565b806151e36151d6856001600160a01b03165f52610c5c60205260405f2090565b546001600160a01b031690565b16615370577342000000000000000000000000000000000000105b169061522261268b6151d6856001600160a01b03165f52610c5d60205260405f2090565b156152ea5783826152329261589e565b6152516151d6836001600160a01b03165f52610c5d60205260405f2090565b9061526561086a546001600160a01b031690565b91615276610c5a5463ffffffff1690565b823b156114e15760405163540abf7360e01b81526001600160a01b0395861660048201529185166024830152929093166044840152606483019390935263ffffffff16608482015260c060a48201525f60c482018190529091829081838160e481015b03925af18015613ca8576151465750565b50916152ff61086a546001600160a01b031690565b92615310610c5a5463ffffffff1690565b93813b156114e157604051631474f2a960e31b81526001600160a01b03948516600482015293166024840152604483019190915263ffffffff909216606482015260a060848201525f60a482018190529091829081838160c481016152d9565b61538f6151d6846001600160a01b03165f52610c5c60205260405f2090565b6151fe565b50807f0000000000000000000000000000000000000000000000000000000000000000168214615192565b60a01c6153c857565b6040516379ec0ed760e11b8152600490fd5b906001600160a01b03808316803b158015615498575b1561546b57507f00000000000000000000000000000000000000000000000000000000000000001691823b156114e157604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af1928315613ca85761058393615458575b50615c07565b80613f4061546592610781565b5f615452565b9061058393507f000000000000000000000000000000000000000000000000000000000000000016614e98565b50803b6154a48161089e565b6154b16040519182610821565b81815260208101915f83853c51905162ffffff60e81b9081811692600381106154e4575b50501661ef0160f01b146153f0565b829350829060030360031b1b1616905f806154d5565b9061550482615618565b6001600160a01b0382167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28051158015906155bf575b615545575050565b61400d915f806040519361555885610795565b602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208601527f206661696c6564000000000000000000000000000000000000000000000000006040860152602081519101845af46155b9613566565b91615d30565b505f61553d565b906155d082615618565b6001600160a01b0382167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a280511580159061561057615545575050565b50600161553d565b803b1561565b576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91166001600160a01b0319825416179055565b60405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152608490fd5b6156d08383615cff565b60058195929510156133d35715938461578e575b508315615708575b505050156156f657565b60405163938a182160e01b8152600490fd5b5f929350908291604051615740816140c76020820194630b135d3f60e11b998a875260248401526040604484015260648301906116cd565b51915afa9061574d613566565b82615780575b82615763575b50505f80806156ec565b61577891925060208082518301019101614133565b145f80615759565b915060208251101591615753565b6001600160a01b0383811691161493505f6156e4565b6040516157fb916001600160a01b03166157bd82610743565b5f806020958685527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656487860152868151910182855af16155b9613566565b805182811591821561587e575b50509050156158145750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152fd5b83809293500103126104c95781015161589681611f68565b80825f615808565b6001600160a01b038116803b156114e157604051636eb1769f60e11b81523060048201526001600160a01b038416602482015290602090829060449082905afa908115613ca85761058394614edb926158fe925f9161592d575b50614142565b60405163095ea7b360e01b60208201526001600160a01b03909416602485015260448401528260648101614ecd565b615946915060203d6020116114da576114cb8183610821565b5f6158f8565b6001600160a01b038091167f000000000000000000000000000000000000000000000000000000000000000090827f000000000000000000000000000000000000000000000000000000000000000016936159a881868561589e565b843b156114e157604094604051926332dd704760e21b84526020956004948781600481875afa8015613ca85782915f91615bea575b5016951692853b156114e1576040516352b7631960e11b81526001600160a01b0385166004820152958790879060249082905afa958615613ca8575f96615bcb575b5095867f0000000000000000000000000000000000000000000000000000000000000000975b615a5457505050505050505050565b86811115615bc557865b8815615b1657843b156114e1578951634701287760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b03881660608201525f6080820181905260a082018190526107d060c0830152919391908490819060e0010381838a5af1928315613ca857615afd93615b03575b50613d15565b80615a45565b80613f40615b1092610781565b5f615af7565b843b156114e15789516337e9a82760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b038816606082015290929084908490819060800103815f8a5af1928315613ca857615afd93615b985750613d15565b615bb790853d8711615bbe575b615baf8183610821565b810190615cdf565b505f615af7565b503d615ba5565b80615a5e565b615be3919650873d89116114da576114cb8183610821565b945f615a1f565b615c019150893d8b11613ca157613c938183610821565b5f6159dd565b814710615c9a575f8080936001600160a01b038294165af1615c27613566565b5015615c2f57565b60405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608490fd5b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606490fd5b908160209103126104c9575167ffffffffffffffff811681036105745790565b9060418151145f14615d27576116a891602082015190606060408401519301515f1a90615dc9565b50505f90600290565b91929015615d925750815115615d44575090565b3b15615d4d5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015615da55750805190602001fd5b60405162461bcd60e51b8152602060048201529081906114999060248301906116cd565b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411615e39576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15613ca8575f516001600160a01b03811615615e3157905f90565b505f90600190565b505050505f9060039056fea2646970667358221220967a24a3b654da0218b2c6707b53108fb6d8aed7c6a6dc41b0579d7bbc3768c564736f6c63430008170033",
3097
+ "deployedBytecode": "0x60806040526004361015610015575b3661303c57005b5f3560e01c8063079bd2c71461041a5780630c5d5f73146104155780630eaac9f0146104105780631186ec331461040b57806311eac8551461040657806315348e441461039d57806317fcb39b146104015780631b3d5559146103fc5780631fab657c146103f757806329cb924d146103f25780632e378115146103ed5780632e63e59a146103e85780633659cfe6146103e3578063431023b8146103de578063437b9116146103d9578063490e49ef146103d4578063493a4f84146103cf5780634f1ef286146103ca5780635285e058146103c557806352d1902d146103c0578063541f4f14146103bb578063577f51f8146103b657806357f6dcb8146103b15780636068d6cb146103ac578063647c576c146103a7578063670fa8ac146103a25780636bbbcd2e1461039d5780636e40098314610398578063738b62e514610393578063766e07031461038e578063775c0d03146103895780637aef642c146103845780637b9392321461037f5780637ef413e11461037a57806382e2c43f146103755780638a7860ce146103705780638b15788e1461036b578063927ede2d146103665780639748cf7c1461036157806397943aa91461035c578063979f2bc21461035757806399cc2968146103525780639a8a05921461034d578063a1244c6714610348578063a18a096e14610343578063ac9650d81461033e578063ad5425c614610339578063adb5a6a6146102ee578063b27a430014610334578063b370b7f51461032f578063babb6aac1461032a578063bf10268d14610325578063c35c83fc14610320578063ceb4c9871461031b578063d7e1583a14610316578063dda5211314610311578063ddd224f11461030c578063de7eba7814610307578063deff4b2414610302578063e3229211146102fd578063ea86bd46146102f8578063ee2a53f8146102f3578063f79f29ed146102ee578063fbbba9ac146102e95763fc8a584f0361000e5761300c565b612f88565b612947565b612f4a565b612e47565b612e1e565b612d29565b612cf9565b612cd0565b612caa565b612c74565b612b7a565b612b4f565b612acb565b6129f4565b6129cd565b61298e565b612809565b61274b565b6125e4565b6125bd565b6125a3565b61250e565b6124e4565b612464565b612421565b6123f3565b612375565b6122fd565b6121e6565b6121af565b612107565b612067565b61202b565b612007565b611f72565b611f28565b610a01565b611eee565b611dac565b611d54565b611d14565b611c3b565b611b78565b611aa2565b611a7b565b6118dc565b611855565b611837565b61176a565b6114e6565b61133a565b611140565b610fe0565b610fb7565b610eab565b610cbb565b610a1b565b6109be565b610918565b6105eb565b610585565b6104ce565b60405162461bcd60e51b815260206004820152602260248201527f45746865722073656e7420746f206e6f6e2d70617961626c652066756e63746960448201526137b760f11b6064820152608490fd5b60405162461bcd60e51b815260206004820152602260248201527f414249206465636f64696e673a207475706c65206461746120746f6f2073686f6044820152611c9d60f21b6064820152608490fd5b5f9103126104c957565b61046f565b3461050e575f3660031901126104c957602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b61041f565b60405162461bcd60e51b815260206004820152602260248201527f414249206465636f64696e673a20696e76616c6964207475706c65206f666673604482015261195d60f21b6064820152608490fd5b6001600160a01b0381160361057457565b5f80fd5b359061058382610563565b565b3461050e5760203660031901126104c95760206004356105a481610563565b6001600160a01b038091165f52610c5d825260405f205416604051908152f35b63ffffffff81160361057457565b6101443590610583826105c4565b3590610583826105c4565b3461050e5760203660031901126104c95763ffffffff60043561060d816105c4565b610615613bf6565b61061d613cbf565b16610c5a8163ffffffff198254161790557fe486a5c4bd7b36eabbfe274c99b39130277417be8d2209b4dae04c4fba64ee3a5f80a26001606555005b60405162461bcd60e51b815260206004820152602b60248201527f414249206465636f64696e673a20696e76616c69642063616c6c64617461206160448201527f72726179206f66667365740000000000000000000000000000000000000000006064820152608490fd5b60405162461bcd60e51b815260206004820152602760248201527f414249206465636f64696e673a20696e76616c6964206279746520617272617960448201527f206c656e677468000000000000000000000000000000000000000000000000006064820152608490fd5b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761075f57604052565b61072f565b6101a0810190811067ffffffffffffffff82111761075f57604052565b67ffffffffffffffff811161075f57604052565b6060810190811067ffffffffffffffff82111761075f57604052565b6080810190811067ffffffffffffffff82111761075f57604052565b6020810190811067ffffffffffffffff82111761075f57604052565b60e0810190811067ffffffffffffffff82111761075f57604052565b60a0810190811067ffffffffffffffff82111761075f57604052565b90601f8019910116810190811067ffffffffffffffff82111761075f57604052565b6040519060c0820182811067ffffffffffffffff82111761075f57604052565b60405190610180820182811067ffffffffffffffff82111761075f57604052565b6040519061058382610764565b60405190610583826107b1565b67ffffffffffffffff811161075f57601f01601f191660200190565b9291926108c68261089e565b916108d46040519384610821565b8294818452818301116108f0578281602093845f960137010152565b6106c4565b9080601f8301121561091357816020610910933591016108ba565b90565b610659565b6101003660031901126104c95760043561093181610563565b60243561093d81610563565b6084358060070b81036105745760a43590610957826105c4565b60c43567ffffffffffffffff81116109b9576109779036906004016108f5565b92610980613cbf565b60ff61086b5460e81c166109a7576109a094606435916044359133613dea565b6001606555005b604051630b4cba3160e31b8152600490fd5b610513565b3461050e575f3660031901126104c95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461050e575f3660031901126104c95760206040515f8152f35b3461050e575f3660031901126104c95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b60405162461bcd60e51b815260206004820152602360248201527f414249206465636f64696e673a20737472756374206461746120746f6f2073686044820152621bdc9d60ea1b6064820152608490fd5b60405162461bcd60e51b815260206004820152602360248201527f414249206465636f64696e673a20696e76616c696420737472756374206f66666044820152621cd95d60ea1b6064820152608490fd5b67ffffffffffffffff811161075f5760051b60200190565b60405162461bcd60e51b815260206004820152602b60248201527f414249206465636f64696e673a20696e76616c69642063616c6c64617461206160448201527f72726179207374726964650000000000000000000000000000000000000000006064820152608490fd5b9080601f83011215610913576020908235610b9d81610b00565b93610bab6040519586610821565b81855260208086019260051b820101928311610be357602001905b828210610bd4575050505090565b81358152908301908301610bc6565b610b18565b9080601f83011215610913576020908235610c0281610b00565b93610c106040519586610821565b81855260208086019260051b820101928311610be357602001905b828210610c39575050505090565b8380918335610c4781610563565b815201910190610c2b565b9291610c5d82610b00565b91610c6b6040519384610821565b829481845260208094019160051b8101928311610be357905b828210610c915750505050565b81358152908301908301610c84565b9080601f830112156109135781602061091093359101610c52565b6003196060368201126104c957600435610cd4816105c4565b60243567ffffffffffffffff928382116109b95760c0908236030112610d9a57610cfc610843565b9080600401358252602481013560208301526044810135848111610d9557610d2a9060043691840101610b83565b6040830152610d3b606482016105e0565b6060830152610d4c60848201610578565b608083015260a481013590848211610d95576004610d6d9236920101610be8565b60a08201526044359283116109b957610d8d610d93933690600401610ca0565b916130a7565b005b610aaf565b610a5e565b60405162461bcd60e51b815260206004820152602760248201527f414249206465636f64696e673a207374727563742063616c6c6461746120746f60448201527f6f2073686f7274000000000000000000000000000000000000000000000000006064820152608490fd5b60405162461bcd60e51b815260206004820152602b60248201527f414249206465636f64696e673a20696e76616c69642063616c6c64617461206160448201527f72726179206c656e6774680000000000000000000000000000000000000000006064820152608490fd5b9181601f840112156109135782359167ffffffffffffffff8311610ea6576020808501948460051b010111610be357565b610e0a565b3461050e576003196060368201126104c95760043567ffffffffffffffff8082116109b957606082360393840112610fb25760243590610eea826105c4565b6044359081116109b957610f02903690600401610e75565b919093610f0d613cbf565b6004840135906101821901811215610fad57610fa394610f9e93610f3a610f979360043691890101612b98565b95610f50610f4b608089015161433a565b613fd9565b610f5987613b29565b9060446020890151916101608a015193610f71610843565b9a8b5260208b015201356040890152606088015260808701525f60a08701523691610c52565b9083614350565b6144a1565b610d936001606555565b61329f565b610d9f565b3461050e575f3660031901126104c9576020604051428152f35b9081610180910312610fb25790565b3461050e5760403660031901126104c95760043567ffffffffffffffff81116109b957611011903690600401610fd1565b61101a816132e4565b6001600160a01b031690611030602082016132e4565b6001600160a01b031691611046604083016132e4565b6001600160a01b031661105b606084016132e4565b6001600160a01b031692611071608082016132e4565b6001600160a01b0316906101006110898183016132ee565b90610120906110998483016132ee565b92610140948581016110aa906132ee565b966101609a8b83016110bc90846132f8565b9a909b6110c7610863565b9e8f91825260208201526040015260608d015260808c015260a081013560a08c015260c081013560c08c015260e0013560e08b015263ffffffff1690890152870190611118919063ffffffff169052565b63ffffffff90911690850152369061112f926108ba565b9082015233602435610d9392613b5a565b3461050e5760203660031901126104c9576004803567ffffffffffffffff81116109b9576111719036908301610fd1565b611179613cbf565b60ff61086b5460e01c1661132a5763ffffffff804216926101408301936111b2816111a3876132ee565b63ffffffff9182169116101590565b61131a576101208401926111c5846132ee565b161061130b576111dd6111d83685612b98565b613b29565b906111f1825f5261087260205260405f2090565b546112fd57506112407f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c329261123b611235611246945f5261087260205260405f2090565b60019055565b6132ee565b936132ee565b61126661126161125a6101608601866132f8565b36916108ba565b61496e565b906112f06040519283926101008701359760e08801359760208101359281359260408301359260c08101359060a081013590606060808201359101358b9693909a999895919261012098959361014089019c895260208901526040880152606087015263ffffffff80921660808701521660a085015260c084015260e08301526101008201520152565b0390a3610d936001606555565b604051624be79160e21b8152fd5b60405163d642b7d960e01b8152fd5b50604051630277ae7b60e21b8152fd5b50604051633d90fc5560e11b8152fd5b3461050e5760203660031901126104c95760043561135781610563565b6001600160a01b0390817f00000000000000000000000000000000000000000000000000000000000000001691611390833014156133d8565b6113bf7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc93828554161461344a565b6113c7613bf6565b604051906113d4826107cd565b5f82527f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561140d575050610d939150615618565b82919216803b156114e1576020600491604051928380926352d1902d60e01b82525afa5f91816114b0575b5061149d5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608490fd5b0390fd5b610d93936114ab9114614983565b6154fa565b6114d391925060203d6020116114da575b6114cb8183610821565b810190614133565b905f611438565b503d6114c1565b613d22565b3461050e5760803660031901126104c957610d93600435611506816105c4565b61163860243561151581610563565b6116336044359161152583610563565b6115846064359561153587610563565b61156160ff5f5460081c16611549816134bc565b610c5a805463ffffffff1916624c4b401790556134bc565b61086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b60405161159081610743565b6009815260208101907f4143524f53532d563200000000000000000000000000000000000000000000008252604051916115c983610743565b6005835260208301917f312e302e30000000000000000000000000000000000000000000000000000000835261160e60ff5f5460081c16611609816134bc565b6134bc565b519020915190209061047f5561048055611626614db9565b61162e614dc9565b614de4565b614e3e565b610c5a9077ffffffffffffffffffffffffffffffffffffffff000000001977ffffffffffffffffffffffffffffffffffffffff0000000083549260201b169116179055565b60206003198201126104c9576004359067ffffffffffffffff82116109b9576116a891600401610e75565b9091565b5f5b8381106116bd5750505f910152565b81810151838201526020016116ae565b906020916116e6815180928185528580860191016116ac565b601f01601f1916010190565b6020808201908083528351809252604092604081018260408560051b8401019601945f925b858410611728575050505050505090565b909192939495968580611759600193603f1986820301885286838d51805115158452015191818582015201906116cd565b990194019401929594939190611717565b3461050e576117783661167d565b61178181610b00565b9160406117916040519485610821565b828452601f196117a084610b00565b015f5b8181106118145750505f5b8381106117c757604051806117c387826116f2565b0390f35b8061180e6117d76001938861352e565b515f806117e5858a8a613542565b906117f4895180938193613559565b0390305af490611802613566565b60208201529015159052565b016117ae565b602090835161182281610743565b5f8152826060818301528289010152016117a3565b3461050e575f3660031901126104c95760206040516301e133808152f35b3461050e5760403660031901126104c957602435600435611874613bf6565b61187c613cbf565b61086c80546801000000000000000081101561075f5763ffffffff91600182019055836118a882612f0b565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b60403660031901126104c9576004356118f481610563565b60243567ffffffffffffffff81116109b9576119149036906004016108f5565b906001600160a01b0391827f0000000000000000000000000000000000000000000000000000000000000000169261194e843014156133d8565b61197d7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc94828654161461344a565b611985613bf6565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156119bb575050610d939150615618565b82919216803b156114e1576020600491604051928380926352d1902d60e01b82525afa5f9181611a5a575b50611a475760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608490fd5b610d9393611a559114614983565b6155c6565b611a7491925060203d6020116114da576114cb8183610821565b905f6119e6565b3461050e575f3660031901126104c95760206001600160a01b036108695416604051908152f35b3461050e575f3660031901126104c9576001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611b0d576040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152602090f35b60405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608490fd5b6101203660031901126104c957600435611b9181610563565b60243590611b9e82610563565b60443591611bab83610563565b60a4358060070b81036105745760c43591611bc5836105c4565b60e43567ffffffffffffffff81116109b957611be59036906004016108f5565b93611bee613cbf565b60ff61086b5460e81c166109a7576109a0956084359260643592613dea565b9181601f840112156109135782359167ffffffffffffffff8311610ea65760208381860195010111610be357565b3461050e5760c03660031901126104c957600435611c5881610563565b60243560443591606435611c6b81610563565b67ffffffffffffffff916084358381116109b957611c8d903690600401611c0d565b60a4949194359182116109b9577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c2694611ccd611d0f933690600401611c0d565b9290916001600160a01b03809716611d018a8c83611cec3688886108ba565b91611cf8368b8b6108ba565b9346908d6149f5565b604051978897169a876135b5565b0390a3005b3461050e575f3660031901126104c957602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461050e575f3660031901126104c957602060ff61086b5460e81c166040519015158152f35b60609060031901126104c957600435611d92816105c4565b90602435611d9f81610563565b9060443561091081610563565b3461050e57611dba36611d7a565b5f54600881901c60ff1615939290849081611ee0575b8115611ec0575b5015611e5557611dfb9284611df2600160ff195f5416175f55565b611e3e576135e8565b611e0157005b611e0f61ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b611e5061010061ff00195f5416175f55565b6135e8565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608490fd5b303b15915081611ed2575b505f611dd7565b6001915060ff16145f611ecb565b600160ff8216109150611dd0565b3461050e575f3660031901126104c95760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b3461050e575f3660031901126104c957602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8015150361057457565b3461050e5760203660031901126104c9577fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae492196020600435611fb281611f68565b611fba613bf6565b611fc2613cbf565b151561086b80547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8460e81b169116179055604051908152a16001606555005b3461050e575f3660031901126104c957602063ffffffff610c5a5416604051908152f35b3461050e575f3660031901126104c95760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b6101603660031901126104c95760043561208081610563565b6024359061208d82610563565b60443561209981610563565b606435906120a682610563565b60e4356120b281610563565b61010435906120c0826105c4565b61012435926120ce846105c4565b610144359667ffffffffffffffff88116109b9576120f3610d93983690600401611c0d565b97909660c4359360a435936084359361367a565b6101803660031901126104c95760043561212081610563565b6024359061212d82610563565b60443561213981610563565b6064359061214682610563565b60e43561215281610563565b6101043561215f816105c4565b610124359161216d836105c4565b6121756105d2565b93610164359767ffffffffffffffff89116109b95761219b610d93993690600401611c0d565b98909760c4359360a435936084359361369c565b3461050e5760603660031901126104c95760206121de6004356121d181610563565b60443590602435906137b7565b604051908152f35b3461050e5760603660031901126104c95767ffffffffffffffff6024358181116109b957612218903690600401611c0d565b916044359081116109b957612231903690600401611c0d565b90604051936020850194806122484684888a6137f3565b039561225c601f1997888101845283610821565b60043591519020036122eb575f9461228b6122ad93612282876122b9958a990190612c4e565b95810190613810565b519360405193849160208301966337bfd2c960e21b88523391602485016138d8565b03908101835282610821565b5190305af46122c6613566565b90156122ce57005b60405163b8fe37a760e01b815290819061149990600483016138fa565b604051630f0c8f4760e11b8152600490fd5b3461050e5760203660031901126104c957600435612319613bf6565b612321613cbf565b61232a81612f0b565b612362576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a03660031901126104c9576101243561238f816105c4565b6101443561239c816105c4565b61016435916123aa836105c4565b610184359267ffffffffffffffff84116109b9576123cf610d93943690600401611c0d565b9390926101043560e43560c43560a43560843560643560443560243560043561390b565b3461050e575f3660031901126104c95760206040517342000000000000000000000000000000000000078152f35b3461050e575f3660031901126104c95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461050e5760e03660031901126104c95767ffffffffffffffff6004358181116109b957612496903690600401610fd1565b60a4358281116109b9576124ae903690600401611c0d565b60c4929192359384116109b9576124cc610d93943690600401611c0d565b93909260843590606435906044359060243590613983565b3461050e57610d936115846116336124fb36611d7a565b93909161156160ff5f5460081c166134bc565b3461050e5760203660031901126104c9577f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e602060043561254e81611f68565b612556613bf6565b61255e613cbf565b151561086b80547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8460e01b169116179055604051908152a16001606555005b3461050e575f3660031901126104c9576020604051468152f35b3461050e575f3660031901126104c957602063ffffffff61086b5460c01c16604051908152f35b3461050e5760403660031901126104c957600435602435612604826153bf565b6001600160a01b0382165f5261087360205261263360405f20336001600160a01b03165f5260205260405f2090565b549182156126d6575f61267a3361266461264c8561433a565b6001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b556126a68361269761268b8461433a565b6001600160a01b031690565b6126a08561433a565b90614e98565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6040516336542bf760e21b8152600490fd5b6020808201906020835283518092526040830192602060408460051b8301019501935f915b84831061271d5750505050505090565b909192939495848061273b600193603f198682030187528a516116cd565b980193019301919493929061270d565b3461050e576127593661167d565b9061276382613a6c565b915f5b81811061277b57604051806117c386826126e8565b5f80612788838587613542565b6040939161279a855180938193613559565b0390305af4906127a8613566565b91156127cf5750906001916127bd828761352e565b526127c8818661352e565b5001612766565b906044815110610574576114996127f460049283810151602480918301019101613ab5565b925162461bcd60e51b815292839283016138fa565b610180806003193601126104c95761010435612824816105c4565b6101243591612832836105c4565b6101443592612840846105c4565b6101643567ffffffffffffffff81116109b957612861903690600401611c0d565b612869613cbf565b61086b549260ff8460e81c166109a757610fa39661290b61125a926128fd63ffffffff6129199860c01c16996128a16115618c613b14565b6128a9610884565b9a6004358c5260243560208d015260443560408d015260643560608d015260843560808d015260a43560a08d015260c43560c08d015260e43560e08d01526101008c01526101208b019063ffffffff169052565b63ffffffff16610140890152565b63ffffffff16610160870152565b90820152614b27565b60409060031901126104c95760043561293a81610563565b9060243561091081610563565b3461050e5760206129856001600160a01b0361296236612922565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b3461050e5760203660031901126104c95760206004356129ad81610563565b6001600160a01b038091165f52610c5c825260405f205416604051908152f35b3461050e575f3660031901126104c95760206001600160a01b0361086a5416604051908152f35b3461050e5760c03660031901126104c95760043560243567ffffffffffffffff6064356044356084358381116109b957612a32903690600401611c0d565b60a4949194359182116109b9577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c2694612a72612ac1933690600401611c0d565b929091612a7d613cbf565b612a868a6153bf565b612ab5898b8989612a983688886108ba565b92612aa4368b8b6108ba565b946001600160a01b034692166149f5565b604051968796876135b5565b0390a36001606555005b3461050e57612ad936612922565b90612ae2613bf6565b612aea613cbf565b6001600160a01b0380911691825f52610c5d602052612b228160405f20906001600160a01b03166001600160a01b0319825416179055565b16907fcb84c2022106a6f2b6f805d446f32fbfd2a528474364fa755f37dac1c0c1b6c85f80a36001606555005b3461050e5760203660031901126104c9576004355f52610872602052602060405f2054604051908152f35b3461050e575f3660031901126104c957602060405163ffffffff8152f35b919061018083820312610d9a57612bad610863565b92803584526020810135602085015260408101356040850152606081013560608501526080810135608085015260a081013560a085015260c081013560c085015260e081013560e08501526101008082013590850152610120612c118183016105e0565b90850152610140612c238183016105e0565b90850152610160918282013567ffffffffffffffff8111610d9557612c4892016108f5565b90830152565b906020828203126104c957813567ffffffffffffffff81116109b9576109109201612b98565b3461050e5760203660031901126104c95760043567ffffffffffffffff81116109b9576121de6111d86020923690600401612b98565b3461050e575f3660031901126104c957602060ff61086b5460e01c166040519015158152f35b3461050e575f3660031901126104c95760206040516ec097ce7bc90715b34b9f10000000008152f35b3461050e5760203660031901126104c9576109a0600435612d1981610563565b612d21613bf6565b61162e613cbf565b3461050e5760603660031901126104c95760043567ffffffffffffffff81116109b957612d5a903690600401612b98565b612d62613cbf565b60ff61086b5460e01c16612e0c5761014081015163ffffffff4281169116101580612ded575b612ddb5780612d99610fa392613b29565b60c082015160208301519061016084015192612db3610843565b948552602085015260408401526060830152608082015260243560a08201526044359061470d565b604051630c3a9b9d60e41b8152600490fd5b50612dfb604082015161433a565b6001600160a01b0316331415612d88565b604051633d90fc5560e11b8152600490fd5b3461050e575f3660031901126104c9576020610c5a546001600160a01b0360405191831c168152f35b610160806003193601126104c95761010435612e62816105c4565b61012435612e6f816105c4565b6101443567ffffffffffffffff81116109b957612e90903690600401611c0d565b63ffffffff94612ea3864216958661365d565b93612eac613cbf565b61086b549160ff8360e81c166109a757612edf612eec966128fd610fa39a61125a9660c01c16996128a16115618c613b14565b86019063ffffffff169052565b610180820152614b27565b634e487b7160e01b5f52603260045260245ffd5b61086c908154811015612f45576003915f52027f71cd7344f4eb2efc8e30291f6dbdb44d618ca368ea5425d217c1d604bf26b84d01905f90565b612ef7565b3461050e5760203660031901126104c95760043561086c5481101561057457612f74604091612f0b565b506001815491015482519182526020820152f35b3461050e57612f9636612922565b90612f9f613bf6565b612fa7613cbf565b6001600160a01b0380911691825f52610c5c602052612fdf8160405f20906001600160a01b03166001600160a01b0319825416179055565b16907ff3dc137d2246f9b8abd0bb821e185ba01122c9b3ea3745ffca6208037674d6705f80a36001606555005b3461050e5760203660031901126104c9576109a060043561302c81610563565b613034613bf6565b611633613cbf565b60405162461bcd60e51b815260206004820152602960248201527f556e6b6e6f776e207369676e617475726520616e64206e6f2066616c6c62616360448201527f6b20646566696e656400000000000000000000000000000000000000000000006064820152608490fd5b916130b0613cbf565b60808201916130c9610f4b84516001600160a01b031690565b6020810191825146036131d0576130f16130f5918360016130e989612f0b565b50015461404c565b1590565b6131be578060607ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e920193613137613131865163ffffffff1690565b876140de565b6131b184519483519361319661318861317760408401998a5161315e8d5163ffffffff1690565b89516001600160a01b03169160a088019b8c519461414f565b925193519851995163ffffffff1690565b94516001600160a01b031690565b945163ffffffff9586604051978897169b1699339487613251565b0390a46105836001606555565b60405163582f497d60e11b8152600490fd5b604051633d23e4d160e11b8152600490fd5b9081518082526020808093019301915f5b828110613201575050505090565b8351855293810193928101926001016131f3565b9081518082526020808093019301915f5b828110613234575050505090565b83516001600160a01b031685529381019392810192600101613226565b949695919361327360a09561329193885260c0602089015260c08801906131e2565b906001600160a01b0380951660408801528682036060880152613215565b951515608085015216910152565b60405162461bcd60e51b815260206004820152601c60248201527f496e76616c69642063616c6c64617461207461696c206f6666736574000000006044820152606490fd5b3561091081610563565b35610910816105c4565b903590601e1981360301821215610fad570180359067ffffffffffffffff82116133705760200191813603831361332b57565b60405162461bcd60e51b815260206004820152601760248201527f43616c6c64617461207461696c20746f6f2073686f72740000000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601c60248201527f496e76616c69642063616c6c64617461207461696c206c656e677468000000006044820152606490fd5b634e487b7160e01b5f52602160045260245ffd5b600311156133d357565b6133b5565b156133df57565b60405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608490fd5b1561345157565b60405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f787900000000000000000000000000000000000000006064820152608490fd5b156134c357565b60405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608490fd5b8051821015612f455760209160051b010190565b90821015612f45576116a89160051b8101906132f8565b908092918237015f815290565b3d15613590573d906135778261089e565b916135856040519384610821565b82523d5f602084013e565b606090565b908060209392818452848401375f828201840152601f01601f1916010190565b949290936135da92610910979587526020870152608060408701526080860191613595565b926060818503910152613595565b61360892916115846116339261156160ff5f5460081c16611549816134bc565b610583610c5a77deaddeaddeaddeaddeaddeaddeaddeaddead00000000000077ffffffffffffffffffffffffffffffffffffffff0000000019825416179055565b634e487b7160e01b5f52601160045260245ffd5b91909163ffffffff8080941691160191821161367557565b613649565b96949290916105839b9a999896949261369a63ffffffff4216988961365d565b985b9593919b999897969492909b6136b0613cbf565b61086b549660ff8860e81c166109a7578760c01c63ffffffff166136d390613b14565b6136fa9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b613702610884565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015260c01c63ffffffff1661010087015261012086019061377b919063ffffffff169052565b63ffffffff1661014085015263ffffffff16610160840152369061379e926108ba565b6101808201526137ad90614b27565b6105836001606555565b916040519160208301936bffffffffffffffffffffffff199060601b16845260348301526054820152605481526137ed816107b1565b51902090565b93929160209161380b91604087526040870191613595565b930152565b908160209103126104c957604051906020820182811067ffffffffffffffff82111761075f5760405235815290565b6109109161018090825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e082015261010080840151908201526138b4610120808501519083019063ffffffff169052565b6101408381015163ffffffff169082015281610160809401519382015201906116cd565b6138f06040929594939560608352606083019061383f565b9460208201520152565b9060206109109281815201906116cd565b9c9a9998979695949392919096613920613cbf565b60ff61086b5460e81c166109a757613939908e336137b7565b96604051809e61394882610764565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff1661012086015261377b565b979290959391969497613994613cbf565b60ff61086b5460e01c16612e0c576139af61014082016132ee565b63ffffffff8042169116101580613a4d575b612ddb57613a36613a4896613a2e6137ad9b6139e06111d83687612b98565b9a6139e9610843565b9b6139f43688612b98565b8d5260208d01528660408d01528760608d0152613a12368b846108ba565b60808d015260a08c0152613a26853561433a565b9836916108ba565b9536916108ba565b9461010060e0830135920135906149f5565b61470d565b50613a5b604082013561433a565b6001600160a01b03163314156139c1565b90613a7682610b00565b613a836040519182610821565b8281528092613a94601f1991610b00565b01905f5b828110613aa457505050565b806060602080938501015201613a98565b6020818303126104c95780519067ffffffffffffffff82116109b9570181601f82011215610913578051613ae88161089e565b92613af66040519485610821565b818452602082840101116108f05761091091602080850191016116ac565b63ffffffff8091169081146136755760010190565b6040516137ed81613b46602082019460408652606083019061383f565b46604083015203601f198101835282610821565b919091613b65613cbf565b60ff61086b5460e01c16612e0c5761014081015163ffffffff4281169116101580613bd7575b612ddb576137ad92613b9c82613b29565b60c083015160208401519061016085015192613bb6610843565b958652602086015260408501526060840152608083015260a082015261470d565b50613be5604082015161433a565b6001600160a01b0316331415613b8b565b734200000000000000000000000000000000000007803303613cad57803b156114e157602060049160405192838092636e296e4560e01b82525afa908115613ca8575f91613c79575b506001600160a01b03613c5e61268b610869546001600160a01b031690565b911603613c6757565b6040516336a816d960e01b8152600490fd5b613c9b915060203d602011613ca1575b613c938183610821565b810190614ee0565b5f613c3f565b503d613c89565b613d8d565b60405163253a6fc960e11b8152600490fd5b600260655414613cd0576002606555565b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b9190820391821161367557565b60405162461bcd60e51b815260206004820152602560248201527f54617267657420636f6e747261637420646f6573206e6f7420636f6e7461696e60448201527f20636f64650000000000000000000000000000000000000000000000000000006064820152608490fd5b6040513d5f823e3d90fd5b926109109695929491946101409585525f60208601526040850152606084015263ffffffff809116608084015260a08301525f60c083015260e08201525f6101008201528161012082015201906116cd565b9193949690959660070b906706f05b59d3b20000613e0783614ef5565b1015613fc7576ec097ce7bc90715b34b9f10000000008411613fb55763ffffffff93613e35858a1642613d15565b857f00000000000000000000000000000000000000000000000000000000000000001610613fa35761086b5460c01c63ffffffff1698613e776115618b613b14565b6001600160a01b039586807f00000000000000000000000000000000000000000000000000000000000000001698169288841480613f9a575b15613f5e57803403613f4c57883b156114e1575f6004996040519a8b8092630d0e30db60e41b825234905af1988915613ca857613f1b613f2e978a927f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39c613f33575b505b83614f43565b92604051998a99169d169b169387613d98565b0390a4565b80613f40613f4692610781565b806104bf565b5f613f13565b604051636452a35d60e01b8152600490fd5b7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3985087613f1b613f2e97613f958430338a614f04565b613f15565b50341515613eb0565b60405163f722177f60e01b8152600490fd5b60405163622db5a960e11b8152600490fd5b60405163284f109760e21b8152600490fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691168114614010575b50565b476140185750565b4790803b156114e1575f90600460405180948193630d0e30db60e41b83525af18015613ca8571561400d5761058390610781565b61091092916040516140d5816140c7602082019460208652805160408401526020810151606084015260a0614091604083015160c060808701526101008601906131e2565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152613215565b03601f198101835282610821565b51902091614f79565b6140e9600291612f0b565b500162ffffff8260081c16805f5281602052600160ff60405f205494161b8080941614614121575f5260205260405f20908154179055565b60405163954476d960e01b8152600490fd5b908160209103126104c9575190565b9190820180921161367557565b91959495939092935f968151908181510361432857816141ce575b50505082614179575b50505050565b6001600160a01b03816141ad7ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb357938661503c565b6040805195865233602087015291169463ffffffff1693a45f808080614173565b6001600160a01b038416803b156114e157604080516370a0823160e01b81523060048083019190915292602090829060249082905afa908115613ca8575f91614309575b505f805b86811061422757505050505061416a565b614231818961352e565b5161423f575b600101614216565b906142559061424e838a61352e565b5190614142565b908282116142f95761428f6130f161427d614270848a61352e565b516001600160a01b031690565b614287848c61352e565b51908c614fca565b15614237579c50876142ef6142e78f6142d26142706142cb6142b1848f61352e565b51966001600160a01b03165f5261087360205260405f2090565b928b61352e565b6001600160a01b03165f5260205260405f2090565b918254614142565b905560019c614237565b50505051632ddaa83160e11b8152fd5b614322915060203d6020116114da576114cb8183610821565b5f614212565b6040516319a5316760e31b8152600490fd5b6001600160a01b039061434c816153bf565b1690565b916130f1906143c99284516040809601519186519161436e83610795565b82526140d56143896020840192468452898501958652612f0b565b50549388519283916143ae6020840196602088525160608d86015260a085019061383f565b9151606084015251608083015203601f198101835282610821565b6143d05750565b5163582f497d60e11b8152600490fd5b6143e9826133c9565b52565b9a989693919c9b9997959492909c6101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff80921660a08901521660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a0830152606001519061446c826133c9565b6101c00152565b9061091094936080936001600160a01b038093168452602084015216604082015281606082015201906116cd565b5f815161012081016144b7815163ffffffff1690565b63ffffffff429116106146fb5760208401519060026144df835f5261087260205260405f2090565b54146146e9576144f985925f5261087260205260405f2090565b6002905560608301519060808401519160a08501519260c0860151918560a0810151938860e08101519561010082015197516145389063ffffffff1690565b61014083015163ffffffff1660408401519184519360208601519561016001516145619061496e565b966060890151986080019e8f516145779061496e565b906040015190614585610891565b9a8b5260208b015260408a0152600260608a01526040519d8e9b6145a99b8d6143ec565b037f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa750374690137208905f94a460808201516145dd9061433a565b90604085015194606001516145f19061433a565b92608001516145ff9061433a565b6001600160a01b03919082167f00000000000000000000000000000000000000000000000000000000000000008316036146d457846146c1575b614645868386166153da565b519283511515806146b7575b61465e575b505050505050565b1690813b156114e1578361468b9560405196879586948593633a5be8cb60e01b8552339160048601614473565b03925af18015613ca8576146a4575b8080808080614656565b80613f406146b192610781565b5f61469a565b50803b1515614651565b6146cf863033858716614f04565b614639565b5f94506146e48685858516614e98565b614645565b604051630479306360e51b8152600490fd5b60405163d642b7d960e01b8152600490fd5b8051916101208301614723815163ffffffff1690565b63ffffffff429116106146fb576020830151600161474a825f5261087260205260405f2090565b5403614967576001905b6002614769825f5261087260205260405f2090565b54146146e95761478561478b915f5261087260205260405f2090565b60029055565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa75037469013720860608601516080870151906148588760a08a0151958a60c08101519760a08401519860e0830151996147e86101008501519c5163ffffffff1690565b61014085015163ffffffff169160408601519386519561484c61481461016060208b01519a015161496e565b9960608c01519b604061482a608083015161496e565b910151906020614838610891565b9e8f528e015260408d015260608c016143e0565b6040519c8d9c8d6143ec565b0390a4614868608083015161433a565b91604082015191608061488a81614882606085015161433a565b94015161433a565b6001600160a01b03929083167f0000000000000000000000000000000000000000000000000000000000000000841603614954576148cc853033868a16614f04565b6148d8858486166153da565b015191825115158061494a575b6148f1575b5050505050565b16803b156114e15761491f935f809460405196879586948593633a5be8cb60e01b8552339160048601614473565b03925af18015613ca857614937575b808080806148ea565b80613f4061494492610781565b5f61492e565b50803b15156148e5565b614962858533868a16614f04565b6148d8565b5f90614754565b8051908161497c5750505f90565b6020012090565b1561498a57565b60405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c655555494400000000000000000000000000000000000000000000006064820152608490fd5b9392604293610583979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c08152614a5a816107e9565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e855260408401526060830152608082015260808152614ab081610805565b519020906040519161190160f01b83526002830152602282015220906156c6565b96926109109a9996949198959261014099895260208901526040880152606087015263ffffffff928380921660808801521660a08601521660c084015260e08301526101008201528161012082015201906116cd565b614b3181516153bf565b6101208101614b50614b47825163ffffffff1690565b63ffffffff1690565b804210908115614d80575b50613fa357610140820191614b74835163ffffffff1690565b9063ffffffff9182614ba8817f00000000000000000000000000000000000000000000000000000000000000001642614142565b911611614d6e5761016081015163ffffffff169180831680614d29575b505060408101908151916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680931480614d20575b15614cd35760808201513403613f4c57823b156114e1575f60049360405194858092630d0e30db60e41b825234905af1928315613ca8577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad393614cc0575b505b51613f2e60608301519260808101519060a081015160c082015197614c9f614c946101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b614ad1565b80613f40614ccd92610781565b5f614c60565b915034613f4c5781614d1b614d0c61268b7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3955161433a565b60808401519030903390614f04565b614c62565b50341515614c02565b6301e133801015614d59575b5060e081015115614d47575f80614bc5565b60405163495d907f60e01b8152600490fd5b91614d67919242169061365d565b905f614d35565b60405163582e388960e01b8152600490fd5b614d8b915042613d15565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f614b5b565b61058360ff5f5460081c166134bc565b614ddd60ff5f5460081c16611609816134bc565b6001606555565b6001600160a01b03168015614e2c57610869816001600160a01b03198254161790557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b60405163ba97b39d60e01b8152600490fd5b6001600160a01b03168015614e865761086a816001600160a01b03198254161790557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b604051635b03092b60e11b8152600490fd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604482019290925261058391614edb82606481015b03601f198101845283610821565b6157a4565b908160209103126104c9575161091081610563565b5f8112614eff5790565b5f0390565b909261058393604051936323b872dd60e01b60208601526001600160a01b038092166024860152166044840152606483015260648252614edb82610805565b90670de0b6b3a7640000915f82840392128383128116908484139015161761367557818102918183041490151715613675570490565b929091905f915b8451831015614fc257614f93838661352e565b519081811015614fb1575f52602052600160405f205b920191614f80565b905f52602052600160405f20614fa9565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f9161500681606481016140c7565b519082855af1903d5f51908361501d575b50505090565b9192509061503257503b15155b5f8080615017565b600191501461502a565b906001600160a01b0390818116907f0000000000000000000000000000000000000000000000000000000000000000831682036151665750803b156114e157604051632e1a7d4d60e01b815260048101849052905f908290602490829084905af18015613ca857615153575b50610c5a54916150c161086a546001600160a01b031690565b73420000000000000000000000000000000000001090813b156114e157604051631474f2a960e31b8152602086901c949094166001600160a01b0390811660048601521660248401526044830182905263ffffffff909316606483015260a060848301525f60a483018190529192839160c4918391905af18015613ca8576151465750565b80613f4061058392610781565b80613f4061516092610781565b5f6150a8565b91807f000000000000000000000000000000000000000000000000000000000000000016151580615394575b156151b657505050610583906151b161086a546001600160a01b031690565b61594c565b806151e36151d6856001600160a01b03165f52610c5c60205260405f2090565b546001600160a01b031690565b16615370577342000000000000000000000000000000000000105b169061522261268b6151d6856001600160a01b03165f52610c5d60205260405f2090565b156152ea5783826152329261589e565b6152516151d6836001600160a01b03165f52610c5d60205260405f2090565b9061526561086a546001600160a01b031690565b91615276610c5a5463ffffffff1690565b823b156114e15760405163540abf7360e01b81526001600160a01b0395861660048201529185166024830152929093166044840152606483019390935263ffffffff16608482015260c060a48201525f60c482018190529091829081838160e481015b03925af18015613ca8576151465750565b50916152ff61086a546001600160a01b031690565b92615310610c5a5463ffffffff1690565b93813b156114e157604051631474f2a960e31b81526001600160a01b03948516600482015293166024840152604483019190915263ffffffff909216606482015260a060848201525f60a482018190529091829081838160c481016152d9565b61538f6151d6846001600160a01b03165f52610c5c60205260405f2090565b6151fe565b50807f0000000000000000000000000000000000000000000000000000000000000000168214615192565b60a01c6153c857565b6040516379ec0ed760e11b8152600490fd5b906001600160a01b03808316803b158015615498575b1561546b57507f00000000000000000000000000000000000000000000000000000000000000001691823b156114e157604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af1928315613ca85761058393615458575b50615c07565b80613f4061546592610781565b5f615452565b9061058393507f000000000000000000000000000000000000000000000000000000000000000016614e98565b50803b6154a48161089e565b6154b16040519182610821565b81815260208101915f83853c51905162ffffff60e81b9081811692600381106154e4575b50501661ef0160f01b146153f0565b829350829060030360031b1b1616905f806154d5565b9061550482615618565b6001600160a01b0382167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28051158015906155bf575b615545575050565b61400d915f806040519361555885610795565b602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208601527f206661696c6564000000000000000000000000000000000000000000000000006040860152602081519101845af46155b9613566565b91615d30565b505f61553d565b906155d082615618565b6001600160a01b0382167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a280511580159061561057615545575050565b50600161553d565b803b1561565b576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91166001600160a01b0319825416179055565b60405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152608490fd5b6156d08383615cff565b60058195929510156133d35715938461578e575b508315615708575b505050156156f657565b60405163938a182160e01b8152600490fd5b5f929350908291604051615740816140c76020820194630b135d3f60e11b998a875260248401526040604484015260648301906116cd565b51915afa9061574d613566565b82615780575b82615763575b50505f80806156ec565b61577891925060208082518301019101614133565b145f80615759565b915060208251101591615753565b6001600160a01b0383811691161493505f6156e4565b6040516157fb916001600160a01b03166157bd82610743565b5f806020958685527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656487860152868151910182855af16155b9613566565b805182811591821561587e575b50509050156158145750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152fd5b83809293500103126104c95781015161589681611f68565b80825f615808565b6001600160a01b038116803b156114e157604051636eb1769f60e11b81523060048201526001600160a01b038416602482015290602090829060449082905afa908115613ca85761058394614edb926158fe925f9161592d575b50614142565b60405163095ea7b360e01b60208201526001600160a01b03909416602485015260448401528260648101614ecd565b615946915060203d6020116114da576114cb8183610821565b5f6158f8565b6001600160a01b038091167f000000000000000000000000000000000000000000000000000000000000000090827f000000000000000000000000000000000000000000000000000000000000000016936159a881868561589e565b843b156114e157604094604051926332dd704760e21b84526020956004948781600481875afa8015613ca85782915f91615bea575b5016951692853b156114e1576040516352b7631960e11b81526001600160a01b0385166004820152958790879060249082905afa958615613ca8575f96615bcb575b5095867f0000000000000000000000000000000000000000000000000000000000000000975b615a5457505050505050505050565b86811115615bc557865b8815615b1657843b156114e1578951634701287760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b03881660608201525f6080820181905260a082018190526107d060c0830152919391908490819060e0010381838a5af1928315613ca857615afd93615b03575b50613d15565b80615a45565b80613f40615b1092610781565b5f615af7565b843b156114e15789516337e9a82760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b038816606082015290929084908490819060800103815f8a5af1928315613ca857615afd93615b985750613d15565b615bb790853d8711615bbe575b615baf8183610821565b810190615cdf565b505f615af7565b503d615ba5565b80615a5e565b615be3919650873d89116114da576114cb8183610821565b945f615a1f565b615c019150893d8b11613ca157613c938183610821565b5f6159dd565b814710615c9a575f8080936001600160a01b038294165af1615c27613566565b5015615c2f57565b60405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608490fd5b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606490fd5b908160209103126104c9575167ffffffffffffffff811681036105745790565b9060418151145f14615d27576116a891602082015190606060408401519301515f1a90615dc9565b50505f90600290565b91929015615d925750815115615d44575090565b3b15615d4d5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015615da55750805190602001fd5b60405162461bcd60e51b8152602060048201529081906114999060248301906116cd565b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411615e39576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15613ca8575f516001600160a01b03811615615e3157905f90565b505f90600190565b505050505f9060039056fea2646970667358221220967a24a3b654da0218b2c6707b53108fb6d8aed7c6a6dc41b0579d7bbc3768c564736f6c63430008170033",
3098
+ "linkReferences": {},
3099
+ "deployedLinkReferences": {}
3100
+ }