@across-protocol/contracts 4.0.4 → 4.0.5

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