hotshot_contract_adapter/bindings/
reward_claim.rs

1/**
2
3Generated by the following Solidity interface...
4```solidity
5interface RewardClaim {
6    error AccessControlBadConfirmation();
7    error AccessControlUnauthorizedAccount(address account, bytes32 neededRole);
8    error AddressEmptyCode(address target);
9    error AlreadyClaimed();
10    error DailyLimitExceeded();
11    error DailyLimitTooHigh();
12    error DefaultAdminCannotBeRenounced();
13    error DefaultAdminCannotBeRevoked();
14    error ERC1967InvalidImplementation(address implementation);
15    error ERC1967NonPayable();
16    error EnforcedPause();
17    error ExpectedPause();
18    error FailedInnerCall();
19    error InvalidAuthRoot();
20    error InvalidInitialization();
21    error InvalidRewardAmount();
22    error NoChangeRequired();
23    error NotInitializing();
24    error ReentrancyGuardReentrantCall();
25    error UUPSUnauthorizedCallContext();
26    error UUPSUnsupportedProxiableUUID(bytes32 slot);
27    error ZeroAdminAddress();
28    error ZeroDailyLimit();
29    error ZeroLightClientAddress();
30    error ZeroPauserAddress();
31    error ZeroTokenAddress();
32    error ZeroTotalSupply();
33
34    event DailyLimitUpdated(uint256 oldLimit, uint256 newLimit);
35    event Initialized(uint64 version);
36    event Paused(address account);
37    event RewardsClaimed(address indexed user, uint256 amount);
38    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);
39    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);
40    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);
41    event Unpaused(address account);
42    event Upgraded(address indexed implementation);
43
44    constructor();
45
46    function BPS_DENOMINATOR() external view returns (uint256);
47    function DEFAULT_ADMIN_ROLE() external view returns (bytes32);
48    function MAX_DAILY_LIMIT_BASIS_POINTS() external view returns (uint256);
49    function PAUSER_ROLE() external view returns (bytes32);
50    function UPGRADE_INTERFACE_VERSION() external view returns (string memory);
51    function claimRewards(uint256 lifetimeRewards, bytes memory authData) external;
52    function claimedRewards(address claimer) external view returns (uint256 claimed);
53    function currentAdmin() external view returns (address);
54    function dailyLimitWei() external view returns (uint256);
55    function espToken() external view returns (address);
56    function getRoleAdmin(bytes32 role) external view returns (bytes32);
57    function getVersion() external pure returns (uint8 majorVersion, uint8 minorVersion, uint8 patchVersion);
58    function grantRole(bytes32 role, address account) external;
59    function hasRole(bytes32 role, address account) external view returns (bool);
60    function initialize(address _admin, address _espToken, address _lightClient, address _pauser) external;
61    function lastSetDailyLimitBasisPoints() external view returns (uint256);
62    function lightClient() external view returns (address);
63    function pause() external;
64    function paused() external view returns (bool);
65    function proxiableUUID() external view returns (bytes32);
66    function renounceRole(bytes32 role, address callerConfirmation) external;
67    function revokeRole(bytes32 role, address account) external;
68    function setDailyLimit(uint256 basisPoints) external;
69    function supportsInterface(bytes4 interfaceId) external view returns (bool);
70    function totalClaimed() external view returns (uint256);
71    function unpause() external;
72    function upgradeToAndCall(address newImplementation, bytes memory data) external payable;
73}
74```
75
76...which was generated by the following JSON ABI:
77```json
78[
79  {
80    "type": "constructor",
81    "inputs": [],
82    "stateMutability": "nonpayable"
83  },
84  {
85    "type": "function",
86    "name": "BPS_DENOMINATOR",
87    "inputs": [],
88    "outputs": [
89      {
90        "name": "",
91        "type": "uint256",
92        "internalType": "uint256"
93      }
94    ],
95    "stateMutability": "view"
96  },
97  {
98    "type": "function",
99    "name": "DEFAULT_ADMIN_ROLE",
100    "inputs": [],
101    "outputs": [
102      {
103        "name": "",
104        "type": "bytes32",
105        "internalType": "bytes32"
106      }
107    ],
108    "stateMutability": "view"
109  },
110  {
111    "type": "function",
112    "name": "MAX_DAILY_LIMIT_BASIS_POINTS",
113    "inputs": [],
114    "outputs": [
115      {
116        "name": "",
117        "type": "uint256",
118        "internalType": "uint256"
119      }
120    ],
121    "stateMutability": "view"
122  },
123  {
124    "type": "function",
125    "name": "PAUSER_ROLE",
126    "inputs": [],
127    "outputs": [
128      {
129        "name": "",
130        "type": "bytes32",
131        "internalType": "bytes32"
132      }
133    ],
134    "stateMutability": "view"
135  },
136  {
137    "type": "function",
138    "name": "UPGRADE_INTERFACE_VERSION",
139    "inputs": [],
140    "outputs": [
141      {
142        "name": "",
143        "type": "string",
144        "internalType": "string"
145      }
146    ],
147    "stateMutability": "view"
148  },
149  {
150    "type": "function",
151    "name": "claimRewards",
152    "inputs": [
153      {
154        "name": "lifetimeRewards",
155        "type": "uint256",
156        "internalType": "uint256"
157      },
158      {
159        "name": "authData",
160        "type": "bytes",
161        "internalType": "bytes"
162      }
163    ],
164    "outputs": [],
165    "stateMutability": "nonpayable"
166  },
167  {
168    "type": "function",
169    "name": "claimedRewards",
170    "inputs": [
171      {
172        "name": "claimer",
173        "type": "address",
174        "internalType": "address"
175      }
176    ],
177    "outputs": [
178      {
179        "name": "claimed",
180        "type": "uint256",
181        "internalType": "uint256"
182      }
183    ],
184    "stateMutability": "view"
185  },
186  {
187    "type": "function",
188    "name": "currentAdmin",
189    "inputs": [],
190    "outputs": [
191      {
192        "name": "",
193        "type": "address",
194        "internalType": "address"
195      }
196    ],
197    "stateMutability": "view"
198  },
199  {
200    "type": "function",
201    "name": "dailyLimitWei",
202    "inputs": [],
203    "outputs": [
204      {
205        "name": "",
206        "type": "uint256",
207        "internalType": "uint256"
208      }
209    ],
210    "stateMutability": "view"
211  },
212  {
213    "type": "function",
214    "name": "espToken",
215    "inputs": [],
216    "outputs": [
217      {
218        "name": "",
219        "type": "address",
220        "internalType": "contract EspTokenV2"
221      }
222    ],
223    "stateMutability": "view"
224  },
225  {
226    "type": "function",
227    "name": "getRoleAdmin",
228    "inputs": [
229      {
230        "name": "role",
231        "type": "bytes32",
232        "internalType": "bytes32"
233      }
234    ],
235    "outputs": [
236      {
237        "name": "",
238        "type": "bytes32",
239        "internalType": "bytes32"
240      }
241    ],
242    "stateMutability": "view"
243  },
244  {
245    "type": "function",
246    "name": "getVersion",
247    "inputs": [],
248    "outputs": [
249      {
250        "name": "majorVersion",
251        "type": "uint8",
252        "internalType": "uint8"
253      },
254      {
255        "name": "minorVersion",
256        "type": "uint8",
257        "internalType": "uint8"
258      },
259      {
260        "name": "patchVersion",
261        "type": "uint8",
262        "internalType": "uint8"
263      }
264    ],
265    "stateMutability": "pure"
266  },
267  {
268    "type": "function",
269    "name": "grantRole",
270    "inputs": [
271      {
272        "name": "role",
273        "type": "bytes32",
274        "internalType": "bytes32"
275      },
276      {
277        "name": "account",
278        "type": "address",
279        "internalType": "address"
280      }
281    ],
282    "outputs": [],
283    "stateMutability": "nonpayable"
284  },
285  {
286    "type": "function",
287    "name": "hasRole",
288    "inputs": [
289      {
290        "name": "role",
291        "type": "bytes32",
292        "internalType": "bytes32"
293      },
294      {
295        "name": "account",
296        "type": "address",
297        "internalType": "address"
298      }
299    ],
300    "outputs": [
301      {
302        "name": "",
303        "type": "bool",
304        "internalType": "bool"
305      }
306    ],
307    "stateMutability": "view"
308  },
309  {
310    "type": "function",
311    "name": "initialize",
312    "inputs": [
313      {
314        "name": "_admin",
315        "type": "address",
316        "internalType": "address"
317      },
318      {
319        "name": "_espToken",
320        "type": "address",
321        "internalType": "address"
322      },
323      {
324        "name": "_lightClient",
325        "type": "address",
326        "internalType": "address"
327      },
328      {
329        "name": "_pauser",
330        "type": "address",
331        "internalType": "address"
332      }
333    ],
334    "outputs": [],
335    "stateMutability": "nonpayable"
336  },
337  {
338    "type": "function",
339    "name": "lastSetDailyLimitBasisPoints",
340    "inputs": [],
341    "outputs": [
342      {
343        "name": "",
344        "type": "uint256",
345        "internalType": "uint256"
346      }
347    ],
348    "stateMutability": "view"
349  },
350  {
351    "type": "function",
352    "name": "lightClient",
353    "inputs": [],
354    "outputs": [
355      {
356        "name": "",
357        "type": "address",
358        "internalType": "contract LightClientV3"
359      }
360    ],
361    "stateMutability": "view"
362  },
363  {
364    "type": "function",
365    "name": "pause",
366    "inputs": [],
367    "outputs": [],
368    "stateMutability": "nonpayable"
369  },
370  {
371    "type": "function",
372    "name": "paused",
373    "inputs": [],
374    "outputs": [
375      {
376        "name": "",
377        "type": "bool",
378        "internalType": "bool"
379      }
380    ],
381    "stateMutability": "view"
382  },
383  {
384    "type": "function",
385    "name": "proxiableUUID",
386    "inputs": [],
387    "outputs": [
388      {
389        "name": "",
390        "type": "bytes32",
391        "internalType": "bytes32"
392      }
393    ],
394    "stateMutability": "view"
395  },
396  {
397    "type": "function",
398    "name": "renounceRole",
399    "inputs": [
400      {
401        "name": "role",
402        "type": "bytes32",
403        "internalType": "bytes32"
404      },
405      {
406        "name": "callerConfirmation",
407        "type": "address",
408        "internalType": "address"
409      }
410    ],
411    "outputs": [],
412    "stateMutability": "nonpayable"
413  },
414  {
415    "type": "function",
416    "name": "revokeRole",
417    "inputs": [
418      {
419        "name": "role",
420        "type": "bytes32",
421        "internalType": "bytes32"
422      },
423      {
424        "name": "account",
425        "type": "address",
426        "internalType": "address"
427      }
428    ],
429    "outputs": [],
430    "stateMutability": "nonpayable"
431  },
432  {
433    "type": "function",
434    "name": "setDailyLimit",
435    "inputs": [
436      {
437        "name": "basisPoints",
438        "type": "uint256",
439        "internalType": "uint256"
440      }
441    ],
442    "outputs": [],
443    "stateMutability": "nonpayable"
444  },
445  {
446    "type": "function",
447    "name": "supportsInterface",
448    "inputs": [
449      {
450        "name": "interfaceId",
451        "type": "bytes4",
452        "internalType": "bytes4"
453      }
454    ],
455    "outputs": [
456      {
457        "name": "",
458        "type": "bool",
459        "internalType": "bool"
460      }
461    ],
462    "stateMutability": "view"
463  },
464  {
465    "type": "function",
466    "name": "totalClaimed",
467    "inputs": [],
468    "outputs": [
469      {
470        "name": "",
471        "type": "uint256",
472        "internalType": "uint256"
473      }
474    ],
475    "stateMutability": "view"
476  },
477  {
478    "type": "function",
479    "name": "unpause",
480    "inputs": [],
481    "outputs": [],
482    "stateMutability": "nonpayable"
483  },
484  {
485    "type": "function",
486    "name": "upgradeToAndCall",
487    "inputs": [
488      {
489        "name": "newImplementation",
490        "type": "address",
491        "internalType": "address"
492      },
493      {
494        "name": "data",
495        "type": "bytes",
496        "internalType": "bytes"
497      }
498    ],
499    "outputs": [],
500    "stateMutability": "payable"
501  },
502  {
503    "type": "event",
504    "name": "DailyLimitUpdated",
505    "inputs": [
506      {
507        "name": "oldLimit",
508        "type": "uint256",
509        "indexed": false,
510        "internalType": "uint256"
511      },
512      {
513        "name": "newLimit",
514        "type": "uint256",
515        "indexed": false,
516        "internalType": "uint256"
517      }
518    ],
519    "anonymous": false
520  },
521  {
522    "type": "event",
523    "name": "Initialized",
524    "inputs": [
525      {
526        "name": "version",
527        "type": "uint64",
528        "indexed": false,
529        "internalType": "uint64"
530      }
531    ],
532    "anonymous": false
533  },
534  {
535    "type": "event",
536    "name": "Paused",
537    "inputs": [
538      {
539        "name": "account",
540        "type": "address",
541        "indexed": false,
542        "internalType": "address"
543      }
544    ],
545    "anonymous": false
546  },
547  {
548    "type": "event",
549    "name": "RewardsClaimed",
550    "inputs": [
551      {
552        "name": "user",
553        "type": "address",
554        "indexed": true,
555        "internalType": "address"
556      },
557      {
558        "name": "amount",
559        "type": "uint256",
560        "indexed": false,
561        "internalType": "uint256"
562      }
563    ],
564    "anonymous": false
565  },
566  {
567    "type": "event",
568    "name": "RoleAdminChanged",
569    "inputs": [
570      {
571        "name": "role",
572        "type": "bytes32",
573        "indexed": true,
574        "internalType": "bytes32"
575      },
576      {
577        "name": "previousAdminRole",
578        "type": "bytes32",
579        "indexed": true,
580        "internalType": "bytes32"
581      },
582      {
583        "name": "newAdminRole",
584        "type": "bytes32",
585        "indexed": true,
586        "internalType": "bytes32"
587      }
588    ],
589    "anonymous": false
590  },
591  {
592    "type": "event",
593    "name": "RoleGranted",
594    "inputs": [
595      {
596        "name": "role",
597        "type": "bytes32",
598        "indexed": true,
599        "internalType": "bytes32"
600      },
601      {
602        "name": "account",
603        "type": "address",
604        "indexed": true,
605        "internalType": "address"
606      },
607      {
608        "name": "sender",
609        "type": "address",
610        "indexed": true,
611        "internalType": "address"
612      }
613    ],
614    "anonymous": false
615  },
616  {
617    "type": "event",
618    "name": "RoleRevoked",
619    "inputs": [
620      {
621        "name": "role",
622        "type": "bytes32",
623        "indexed": true,
624        "internalType": "bytes32"
625      },
626      {
627        "name": "account",
628        "type": "address",
629        "indexed": true,
630        "internalType": "address"
631      },
632      {
633        "name": "sender",
634        "type": "address",
635        "indexed": true,
636        "internalType": "address"
637      }
638    ],
639    "anonymous": false
640  },
641  {
642    "type": "event",
643    "name": "Unpaused",
644    "inputs": [
645      {
646        "name": "account",
647        "type": "address",
648        "indexed": false,
649        "internalType": "address"
650      }
651    ],
652    "anonymous": false
653  },
654  {
655    "type": "event",
656    "name": "Upgraded",
657    "inputs": [
658      {
659        "name": "implementation",
660        "type": "address",
661        "indexed": true,
662        "internalType": "address"
663      }
664    ],
665    "anonymous": false
666  },
667  {
668    "type": "error",
669    "name": "AccessControlBadConfirmation",
670    "inputs": []
671  },
672  {
673    "type": "error",
674    "name": "AccessControlUnauthorizedAccount",
675    "inputs": [
676      {
677        "name": "account",
678        "type": "address",
679        "internalType": "address"
680      },
681      {
682        "name": "neededRole",
683        "type": "bytes32",
684        "internalType": "bytes32"
685      }
686    ]
687  },
688  {
689    "type": "error",
690    "name": "AddressEmptyCode",
691    "inputs": [
692      {
693        "name": "target",
694        "type": "address",
695        "internalType": "address"
696      }
697    ]
698  },
699  {
700    "type": "error",
701    "name": "AlreadyClaimed",
702    "inputs": []
703  },
704  {
705    "type": "error",
706    "name": "DailyLimitExceeded",
707    "inputs": []
708  },
709  {
710    "type": "error",
711    "name": "DailyLimitTooHigh",
712    "inputs": []
713  },
714  {
715    "type": "error",
716    "name": "DefaultAdminCannotBeRenounced",
717    "inputs": []
718  },
719  {
720    "type": "error",
721    "name": "DefaultAdminCannotBeRevoked",
722    "inputs": []
723  },
724  {
725    "type": "error",
726    "name": "ERC1967InvalidImplementation",
727    "inputs": [
728      {
729        "name": "implementation",
730        "type": "address",
731        "internalType": "address"
732      }
733    ]
734  },
735  {
736    "type": "error",
737    "name": "ERC1967NonPayable",
738    "inputs": []
739  },
740  {
741    "type": "error",
742    "name": "EnforcedPause",
743    "inputs": []
744  },
745  {
746    "type": "error",
747    "name": "ExpectedPause",
748    "inputs": []
749  },
750  {
751    "type": "error",
752    "name": "FailedInnerCall",
753    "inputs": []
754  },
755  {
756    "type": "error",
757    "name": "InvalidAuthRoot",
758    "inputs": []
759  },
760  {
761    "type": "error",
762    "name": "InvalidInitialization",
763    "inputs": []
764  },
765  {
766    "type": "error",
767    "name": "InvalidRewardAmount",
768    "inputs": []
769  },
770  {
771    "type": "error",
772    "name": "NoChangeRequired",
773    "inputs": []
774  },
775  {
776    "type": "error",
777    "name": "NotInitializing",
778    "inputs": []
779  },
780  {
781    "type": "error",
782    "name": "ReentrancyGuardReentrantCall",
783    "inputs": []
784  },
785  {
786    "type": "error",
787    "name": "UUPSUnauthorizedCallContext",
788    "inputs": []
789  },
790  {
791    "type": "error",
792    "name": "UUPSUnsupportedProxiableUUID",
793    "inputs": [
794      {
795        "name": "slot",
796        "type": "bytes32",
797        "internalType": "bytes32"
798      }
799    ]
800  },
801  {
802    "type": "error",
803    "name": "ZeroAdminAddress",
804    "inputs": []
805  },
806  {
807    "type": "error",
808    "name": "ZeroDailyLimit",
809    "inputs": []
810  },
811  {
812    "type": "error",
813    "name": "ZeroLightClientAddress",
814    "inputs": []
815  },
816  {
817    "type": "error",
818    "name": "ZeroPauserAddress",
819    "inputs": []
820  },
821  {
822    "type": "error",
823    "name": "ZeroTokenAddress",
824    "inputs": []
825  },
826  {
827    "type": "error",
828    "name": "ZeroTotalSupply",
829    "inputs": []
830  }
831]
832```*/
833#[allow(
834    non_camel_case_types,
835    non_snake_case,
836    clippy::pub_underscore_fields,
837    clippy::style,
838    clippy::empty_structs_with_brackets
839)]
840pub mod RewardClaim {
841    use super::*;
842    use alloy::sol_types as alloy_sol_types;
843    /// The creation / init bytecode of the contract.
844    ///
845    /// ```text
846    ///0x60a060405230608052348015610013575f5ffd5b5061001c610021565b6100d3565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100715760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100d05780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051611ae06100f95f395f8181610e1201528181610e3b0152610f830152611ae05ff3fe608060405260043610610195575f3560e01c806391d14854116100e7578063cf21395b11610087578063e1a4521811610062578063e1a4521814610478578063e63ab1e91461048d578063f092e13a146104ad578063f8c8765e146104cb575f5ffd5b8063cf21395b1461042f578063d547741f14610444578063d54ad2a114610463575f5ffd5b8063b20d30a9116100c2578063b20d30a91461038f578063b5700e68146103ae578063ba4bcd72146103e5578063bd83434514610404575f5ffd5b806391d1485414610320578063a217fddf1461033f578063ad3cb1cc14610352575f5ffd5b806336568abe1161015257806352d1902d1161012d57806352d1902d146102b6578063549dd8c3146102ca5780635c975abb146102e95780638456cb591461030c575f5ffd5b806336568abe146102705780633f4ba83a1461028f5780634f1ef286146102a3575f5ffd5b806301ffc9a7146101995780630d8e6e2c146101cd5780630f6ca1d6146101f8578063248a9ca31461021b5780632cca74d81461023a5780632f2ff15d1461024f575b5f5ffd5b3480156101a4575f5ffd5b506101b86101b3366004611638565b6104ea565b60405190151581526020015b60405180910390f35b3480156101d8575f5ffd5b5060408051600181525f60208201819052918101919091526060016101c4565b348015610203575f5ffd5b5061020d60045481565b6040519081526020016101c4565b348015610226575f5ffd5b5061020d61023536600461165f565b610520565b348015610245575f5ffd5b5061020d60035481565b34801561025a575f5ffd5b5061026e610269366004611691565b610540565b005b34801561027b575f5ffd5b5061026e61028a366004611691565b6105a4565b34801561029a575f5ffd5b5061026e6105cc565b61026e6102b1366004611700565b6105ee565b3480156102c1575f5ffd5b5061020d610609565b3480156102d5575f5ffd5b5061026e6102e43660046117a5565b610624565b3480156102f4575f5ffd5b505f516020611a945f395f51905f525460ff166101b8565b348015610317575f5ffd5b5061026e6107c3565b34801561032b575f5ffd5b506101b861033a366004611691565b6107e2565b34801561034a575f5ffd5b5061020d5f81565b34801561035d575f5ffd5b50610382604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c4919061181c565b34801561039a575f5ffd5b5061026e6103a936600461165f565b610818565b3480156103b9575f5ffd5b506001546103cd906001600160a01b031681565b6040516001600160a01b0390911681526020016101c4565b3480156103f0575f5ffd5b506007546103cd906001600160a01b031681565b34801561040f575f5ffd5b5061020d61041e366004611851565b60026020525f908152604090205481565b34801561043a575f5ffd5b5061020d6101f481565b34801561044f575f5ffd5b5061026e61045e366004611691565b610997565b34801561046e575f5ffd5b5061020d60085481565b348015610483575f5ffd5b5061020d61271081565b348015610498575f5ffd5b5061020d5f516020611a545f395f51905f5281565b3480156104b8575f5ffd5b505f546103cd906001600160a01b031681565b3480156104d6575f5ffd5b5061026e6104e536600461186a565b6109bf565b5f6001600160e01b03198216637965db0b60e01b148061051a57506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f9081525f516020611a745f395f51905f52602052604090206001015490565b61054a8282610ccd565b816105a0576007546001600160a01b03908116908216810361056b57505050565b600780546001600160a01b0319166001600160a01b038481169190911790915581161561059e5761059c5f82610ce9565b505b505b5050565b816105c257604051638b78631d60e01b815260040160405180910390fd5b6105a08282610d6b565b5f516020611a545f395f51905f526105e381610d9e565b6105eb610da8565b50565b6105f6610e07565b6105ff82610ead565b6105a08282610eb7565b5f610612610f78565b505f516020611a345f395f51905f5290565b61062c610fc1565b610634610ff1565b825f0361065457604051633853986560e01b815260040160405180910390fd5b335f81815260026020526040902054841161068257604051630c8d9eab60e31b815260040160405180910390fd5b6001600160a01b0381165f908152600260205260408120546106a490866118cf565b90506106af81611028565b6106ba858585611086565b6106d757604051630651710f60e31b815260040160405180910390fd5b6001600160a01b0382165f908152600260205260408120869055600880548392906107039084906118e2565b90915550505f546040516340c10f1960e01b81526001600160a01b03848116600483015260248201849052909116906340c10f19906044015f604051808303815f87803b158015610752575f5ffd5b505af1158015610764573d5f5f3e3d5ffd5b50505050816001600160a01b03167ffc30cddea38e2bf4d6ea7d3f9ed3b6ad7f176419f4963bd81318067a4aee73fe826040516107a391815260200190565b60405180910390a2505061059e60015f516020611ab45f395f51905f5255565b5f516020611a545f395f51905f526107da81610d9e565b6105eb6111ac565b5f9182525f516020611a745f395f51905f52602090815260408084206001600160a01b0393909316845291905290205460ff1690565b5f61082281610d9e565b61082a610ff1565b5f821161084a57604051639b11a8bd60e01b815260040160405180910390fd5b6101f482111561086d5760405163c5d2ae5360e01b815260040160405180910390fd5b5f612710835f5f9054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108c1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e591906118f5565b6108ef919061190c565b6108f99190611923565b90505f811161091b57604051639b11a8bd60e01b815260040160405180910390fd5b600354810361093d5760405163a863aec960e01b815260040160405180910390fd5b60035460408051918252602082018390527f207c4cbdf55ec315a13f0d5e047732ec5d947da056e706593aa509909941cedf910160405180910390a160035560048290556105a060015f516020611ab45f395f51905f5255565b816109b55760405163b0b5fb9960e01b815260040160405180910390fd5b6105a082826111f4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f81158015610a045750825b90505f8267ffffffffffffffff166001148015610a205750303b155b905081158015610a2e575080155b15610a4c5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610a7657845460ff60401b1916600160401b1785555b6001600160a01b038916610a9d57604051633ef39b8160e01b815260040160405180910390fd5b6001600160a01b038716610ac45760405163fcabddbd60e01b815260040160405180910390fd5b6001600160a01b038616610aeb5760405163a74995ab60e01b815260040160405180910390fd5b6001600160a01b038816610b1257604051636b093aad60e01b815260040160405180910390fd5b5f886001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b4f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b7391906118f5565b90505f8111610b95576040516348b5002360e01b815260040160405180910390fd5b60645f612710610ba5838561190c565b610baf9190611923565b90505f8111610bd157604051639b11a8bd60e01b815260040160405180910390fd5b610bd9611210565b610be1611218565b610be9611210565b610bf1611228565b610bfb5f8d611238565b50600780546001600160a01b0319166001600160a01b038e16179055610c2e5f516020611a545f395f51905f528a611238565b505f80546001600160a01b03808e166001600160a01b03199283161790925560018054928d169290911691909117905560038190556004829055610c756201518042611923565b600555505084159050610cc257845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b610cd682610520565b610cdf81610d9e565b61059c8383611238565b5f5f516020611a745f395f51905f52610d0284846107e2565b15610d62575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4600191505061051a565b5f91505061051a565b6001600160a01b0381163314610d945760405163334bd91960e11b815260040160405180910390fd5b61059e8282610ce9565b6105eb81336112d0565b610db0611309565b5f516020611a945f395f51905f52805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610e8d57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610e815f516020611a345f395f51905f52546001600160a01b031690565b6001600160a01b031614155b15610eab5760405163703e46dd60e11b815260040160405180910390fd5b565b5f6105a081610d9e565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610f11575060408051601f3d908101601f19168201909252610f0e918101906118f5565b60015b610f3e57604051634c9c8ce360e01b81526001600160a01b03831660048201526024015b60405180910390fd5b5f516020611a345f395f51905f528114610f6e57604051632a87526960e21b815260048101829052602401610f35565b61059e8383611338565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610eab5760405163703e46dd60e11b815260040160405180910390fd5b5f516020611a945f395f51905f525460ff1615610eab5760405163d93c066560e01b815260040160405180910390fd5b5f516020611ab45f395f51905f5280546001190161102257604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b5f6110366201518042611923565b9050600554811461104b5760058190555f6006555b8160065f82825461105c91906118e2565b909155505060035460065411156105a057604051630652f4c560e21b815260040160405180910390fd5b5f808061109584860186611983565b915091505f6110a533888561138d565b82516020808501516040808701516060808901516080808b015160a0808d015160c0808f015189519b8c018e9052988b019b909b529489019790975290870193909352938501939093529383019390935260e08201526101008101919091529091505f906101200160408051601f198184030181528282528051602091820120600154631330651d60e31b855292519094506001600160a01b039092169263998328e892600480830193928290030181865afa158015611167573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061118b91906118f5565b1493505050505b9392505050565b60015f516020611ab45f395f51905f5255565b6111b4610fc1565b5f516020611a945f395f51905f52805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833610de9565b6111fd82610520565b61120681610d9e565b61059c8383610ce9565b610eab611402565b611220611402565b610eab61144b565b611230611402565b610eab61146b565b5f5f516020611a745f395f51905f5261125184846107e2565b610d62575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556112863390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600191505061051a565b6112da82826107e2565b6105a05760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610f35565b5f516020611a945f395f51905f525460ff16610eab57604051638dfc202b60e01b815260040160405180910390fd5b61134182611473565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156113855761059e82826114d6565b6105a0611548565b5f5f61139884611567565b90505f5b60a08110156113f9575f848260a081106113b8576113b8611a09565b60200201519050600187831c1680156113df575f82815260208590526040902093506113ef565b5f84815260208390526040902093505b505060010161139c565b50949350505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16610eab57604051631afcd79f60e31b815260040160405180910390fd5b611453611402565b5f516020611a945f395f51905f52805460ff19169055565b611199611402565b806001600160a01b03163b5f036114a857604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610f35565b5f516020611a345f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f5f846001600160a01b0316846040516114f29190611a1d565b5f60405180830381855af49150503d805f811461152a576040519150601f19603f3d011682016040523d82523d5f602084013e61152f565b606091505b509150915061153f8583836115b3565b95945050505050565b3415610eab5760405163b398979f60e01b815260040160405180910390fd5b5f5f8260405160200161157c91815260200190565b60408051808303601f1901815282825280516020918201208184015281518084038201815292820190915281519101209392505050565b6060826115c8576115c38261160f565b611192565b81511580156115df57506001600160a01b0384163b155b1561160857604051639996b31560e01b81526001600160a01b0385166004820152602401610f35565b5080611192565b80511561161f5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b5f60208284031215611648575f5ffd5b81356001600160e01b031981168114611192575f5ffd5b5f6020828403121561166f575f5ffd5b5035919050565b80356001600160a01b038116811461168c575f5ffd5b919050565b5f5f604083850312156116a2575f5ffd5b823591506116b260208401611676565b90509250929050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156116f8576116f86116bb565b604052919050565b5f5f60408385031215611711575f5ffd5b61171a83611676565b9150602083013567ffffffffffffffff811115611735575f5ffd5b8301601f81018513611745575f5ffd5b803567ffffffffffffffff81111561175f5761175f6116bb565b611772601f8201601f19166020016116cf565b818152866020838501011115611786575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f5f5f604084860312156117b7575f5ffd5b83359250602084013567ffffffffffffffff8111156117d4575f5ffd5b8401601f810186136117e4575f5ffd5b803567ffffffffffffffff8111156117fa575f5ffd5b86602082840101111561180b575f5ffd5b939660209190910195509293505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215611861575f5ffd5b61119282611676565b5f5f5f5f6080858703121561187d575f5ffd5b61188685611676565b935061189460208601611676565b92506118a260408601611676565b91506118b060608601611676565b905092959194509250565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561051a5761051a6118bb565b8082018082111561051a5761051a6118bb565b5f60208284031215611905575f5ffd5b5051919050565b808202811582820484141761051a5761051a6118bb565b5f8261193d57634e487b7160e01b5f52601260045260245ffd5b500490565b5f61194d60e06116cf565b90508060e0830184811115611960575f5ffd5b835b8181101561197a578035835260209283019201611962565b50505092915050565b5f5f6114e08385031215611995575f5ffd5b5f84601f8501126119a4575f5ffd5b505f806114006119b3816116cf565b92508291508501868111156119c6575f5ffd5b855b818110156119e05780358452602093840193016119c8565b508194508661141f8701126119f3575f5ffd5b6119fd8782611942565b93505050509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f82518060208501845e5f92019182525091905056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a164736f6c634300081c000a
847    /// ```
848    #[rustfmt::skip]
849    #[allow(clippy::all)]
850    pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
851        b"`\xA0`@R0`\x80R4\x80\x15a\0\x13W__\xFD[Pa\0\x1Ca\0!V[a\0\xD3V[\x7F\xF0\xC5~\x16\x84\r\xF0@\xF1P\x88\xDC/\x81\xFE9\x1C9#\xBE\xC7>#\xA9f.\xFC\x9C\"\x9Cj\0\x80Th\x01\0\0\0\0\0\0\0\0\x90\x04`\xFF\x16\x15a\0qW`@Qc\xF9.\xE8\xA9`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x80T`\x01`\x01`@\x1B\x03\x90\x81\x16\x14a\0\xD0W\x80T`\x01`\x01`@\x1B\x03\x19\x16`\x01`\x01`@\x1B\x03\x90\x81\x17\x82U`@Q\x90\x81R\x7F\xC7\xF5\x05\xB2\xF3q\xAE!u\xEEI\x13\xF4I\x9E\x1F&3\xA7\xB5\x93c!\xEE\xD1\xCD\xAE\xB6\x11Q\x81\xD2\x90` \x01`@Q\x80\x91\x03\x90\xA1[PV[`\x80Qa\x1A\xE0a\0\xF9_9_\x81\x81a\x0E\x12\x01R\x81\x81a\x0E;\x01Ra\x0F\x83\x01Ra\x1A\xE0_\xF3\xFE`\x80`@R`\x046\x10a\x01\x95W_5`\xE0\x1C\x80c\x91\xD1HT\x11a\0\xE7W\x80c\xCF!9[\x11a\0\x87W\x80c\xE1\xA4R\x18\x11a\0bW\x80c\xE1\xA4R\x18\x14a\x04xW\x80c\xE6:\xB1\xE9\x14a\x04\x8DW\x80c\xF0\x92\xE1:\x14a\x04\xADW\x80c\xF8\xC8v^\x14a\x04\xCBW__\xFD[\x80c\xCF!9[\x14a\x04/W\x80c\xD5Gt\x1F\x14a\x04DW\x80c\xD5J\xD2\xA1\x14a\x04cW__\xFD[\x80c\xB2\r0\xA9\x11a\0\xC2W\x80c\xB2\r0\xA9\x14a\x03\x8FW\x80c\xB5p\x0Eh\x14a\x03\xAEW\x80c\xBAK\xCDr\x14a\x03\xE5W\x80c\xBD\x83CE\x14a\x04\x04W__\xFD[\x80c\x91\xD1HT\x14a\x03 W\x80c\xA2\x17\xFD\xDF\x14a\x03?W\x80c\xAD<\xB1\xCC\x14a\x03RW__\xFD[\x80c6V\x8A\xBE\x11a\x01RW\x80cR\xD1\x90-\x11a\x01-W\x80cR\xD1\x90-\x14a\x02\xB6W\x80cT\x9D\xD8\xC3\x14a\x02\xCAW\x80c\\\x97Z\xBB\x14a\x02\xE9W\x80c\x84V\xCBY\x14a\x03\x0CW__\xFD[\x80c6V\x8A\xBE\x14a\x02pW\x80c?K\xA8:\x14a\x02\x8FW\x80cO\x1E\xF2\x86\x14a\x02\xA3W__\xFD[\x80c\x01\xFF\xC9\xA7\x14a\x01\x99W\x80c\r\x8En,\x14a\x01\xCDW\x80c\x0Fl\xA1\xD6\x14a\x01\xF8W\x80c$\x8A\x9C\xA3\x14a\x02\x1BW\x80c,\xCAt\xD8\x14a\x02:W\x80c//\xF1]\x14a\x02OW[__\xFD[4\x80\x15a\x01\xA4W__\xFD[Pa\x01\xB8a\x01\xB36`\x04a\x168V[a\x04\xEAV[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x01\xD8W__\xFD[P`@\x80Q`\x01\x81R_` \x82\x01\x81\x90R\x91\x81\x01\x91\x90\x91R``\x01a\x01\xC4V[4\x80\x15a\x02\x03W__\xFD[Pa\x02\r`\x04T\x81V[`@Q\x90\x81R` \x01a\x01\xC4V[4\x80\x15a\x02&W__\xFD[Pa\x02\ra\x0256`\x04a\x16_V[a\x05 V[4\x80\x15a\x02EW__\xFD[Pa\x02\r`\x03T\x81V[4\x80\x15a\x02ZW__\xFD[Pa\x02na\x02i6`\x04a\x16\x91V[a\x05@V[\0[4\x80\x15a\x02{W__\xFD[Pa\x02na\x02\x8A6`\x04a\x16\x91V[a\x05\xA4V[4\x80\x15a\x02\x9AW__\xFD[Pa\x02na\x05\xCCV[a\x02na\x02\xB16`\x04a\x17\0V[a\x05\xEEV[4\x80\x15a\x02\xC1W__\xFD[Pa\x02\ra\x06\tV[4\x80\x15a\x02\xD5W__\xFD[Pa\x02na\x02\xE46`\x04a\x17\xA5V[a\x06$V[4\x80\x15a\x02\xF4W__\xFD[P_Q` a\x1A\x94_9_Q\x90_RT`\xFF\x16a\x01\xB8V[4\x80\x15a\x03\x17W__\xFD[Pa\x02na\x07\xC3V[4\x80\x15a\x03+W__\xFD[Pa\x01\xB8a\x03:6`\x04a\x16\x91V[a\x07\xE2V[4\x80\x15a\x03JW__\xFD[Pa\x02\r_\x81V[4\x80\x15a\x03]W__\xFD[Pa\x03\x82`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01d\x03R\xE3\x02\xE3`\xDC\x1B\x81RP\x81V[`@Qa\x01\xC4\x91\x90a\x18\x1CV[4\x80\x15a\x03\x9AW__\xFD[Pa\x02na\x03\xA96`\x04a\x16_V[a\x08\x18V[4\x80\x15a\x03\xB9W__\xFD[P`\x01Ta\x03\xCD\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x01\xC4V[4\x80\x15a\x03\xF0W__\xFD[P`\x07Ta\x03\xCD\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[4\x80\x15a\x04\x0FW__\xFD[Pa\x02\ra\x04\x1E6`\x04a\x18QV[`\x02` R_\x90\x81R`@\x90 T\x81V[4\x80\x15a\x04:W__\xFD[Pa\x02\ra\x01\xF4\x81V[4\x80\x15a\x04OW__\xFD[Pa\x02na\x04^6`\x04a\x16\x91V[a\t\x97V[4\x80\x15a\x04nW__\xFD[Pa\x02\r`\x08T\x81V[4\x80\x15a\x04\x83W__\xFD[Pa\x02\ra'\x10\x81V[4\x80\x15a\x04\x98W__\xFD[Pa\x02\r_Q` a\x1AT_9_Q\x90_R\x81V[4\x80\x15a\x04\xB8W__\xFD[P_Ta\x03\xCD\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[4\x80\x15a\x04\xD6W__\xFD[Pa\x02na\x04\xE56`\x04a\x18jV[a\t\xBFV[_`\x01`\x01`\xE0\x1B\x03\x19\x82\x16cye\xDB\x0B`\xE0\x1B\x14\x80a\x05\x1AWPc\x01\xFF\xC9\xA7`\xE0\x1B`\x01`\x01`\xE0\x1B\x03\x19\x83\x16\x14[\x92\x91PPV[_\x90\x81R_Q` a\x1At_9_Q\x90_R` R`@\x90 `\x01\x01T\x90V[a\x05J\x82\x82a\x0C\xCDV[\x81a\x05\xA0W`\x07T`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x90\x82\x16\x81\x03a\x05kWPPPV[`\x07\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x84\x81\x16\x91\x90\x91\x17\x90\x91U\x81\x16\x15a\x05\x9EWa\x05\x9C_\x82a\x0C\xE9V[P[P[PPV[\x81a\x05\xC2W`@Qc\x8Bxc\x1D`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x05\xA0\x82\x82a\rkV[_Q` a\x1AT_9_Q\x90_Ra\x05\xE3\x81a\r\x9EV[a\x05\xEBa\r\xA8V[PV[a\x05\xF6a\x0E\x07V[a\x05\xFF\x82a\x0E\xADV[a\x05\xA0\x82\x82a\x0E\xB7V[_a\x06\x12a\x0FxV[P_Q` a\x1A4_9_Q\x90_R\x90V[a\x06,a\x0F\xC1V[a\x064a\x0F\xF1V[\x82_\x03a\x06TW`@Qc8S\x98e`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[3_\x81\x81R`\x02` R`@\x90 T\x84\x11a\x06\x82W`@Qc\x0C\x8D\x9E\xAB`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x81\x16_\x90\x81R`\x02` R`@\x81 Ta\x06\xA4\x90\x86a\x18\xCFV[\x90Pa\x06\xAF\x81a\x10(V[a\x06\xBA\x85\x85\x85a\x10\x86V[a\x06\xD7W`@Qc\x06Qq\x0F`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x82\x16_\x90\x81R`\x02` R`@\x81 \x86\x90U`\x08\x80T\x83\x92\x90a\x07\x03\x90\x84\x90a\x18\xE2V[\x90\x91UPP_T`@Qc@\xC1\x0F\x19`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x84\x81\x16`\x04\x83\x01R`$\x82\x01\x84\x90R\x90\x91\x16\x90c@\xC1\x0F\x19\x90`D\x01_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a\x07RW__\xFD[PZ\xF1\x15\x80\x15a\x07dW=__>=_\xFD[PPPP\x81`\x01`\x01`\xA0\x1B\x03\x16\x7F\xFC0\xCD\xDE\xA3\x8E+\xF4\xD6\xEA}?\x9E\xD3\xB6\xAD\x7F\x17d\x19\xF4\x96;\xD8\x13\x18\x06zJ\xEEs\xFE\x82`@Qa\x07\xA3\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2PPa\x05\x9E`\x01_Q` a\x1A\xB4_9_Q\x90_RUV[_Q` a\x1AT_9_Q\x90_Ra\x07\xDA\x81a\r\x9EV[a\x05\xEBa\x11\xACV[_\x91\x82R_Q` a\x1At_9_Q\x90_R` \x90\x81R`@\x80\x84 `\x01`\x01`\xA0\x1B\x03\x93\x90\x93\x16\x84R\x91\x90R\x90 T`\xFF\x16\x90V[_a\x08\"\x81a\r\x9EV[a\x08*a\x0F\xF1V[_\x82\x11a\x08JW`@Qc\x9B\x11\xA8\xBD`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x01\xF4\x82\x11\x15a\x08mW`@Qc\xC5\xD2\xAES`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a'\x10\x83__\x90T\x90a\x01\0\n\x90\x04`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16c\x18\x16\r\xDD`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x08\xC1W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x08\xE5\x91\x90a\x18\xF5V[a\x08\xEF\x91\x90a\x19\x0CV[a\x08\xF9\x91\x90a\x19#V[\x90P_\x81\x11a\t\x1BW`@Qc\x9B\x11\xA8\xBD`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x03T\x81\x03a\t=W`@Qc\xA8c\xAE\xC9`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x03T`@\x80Q\x91\x82R` \x82\x01\x83\x90R\x7F |L\xBD\xF5^\xC3\x15\xA1?\r^\x04w2\xEC]\x94}\xA0V\xE7\x06Y:\xA5\t\x90\x99A\xCE\xDF\x91\x01`@Q\x80\x91\x03\x90\xA1`\x03U`\x04\x82\x90Ua\x05\xA0`\x01_Q` a\x1A\xB4_9_Q\x90_RUV[\x81a\t\xB5W`@Qc\xB0\xB5\xFB\x99`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x05\xA0\x82\x82a\x11\xF4V[\x7F\xF0\xC5~\x16\x84\r\xF0@\xF1P\x88\xDC/\x81\xFE9\x1C9#\xBE\xC7>#\xA9f.\xFC\x9C\"\x9Cj\0\x80T`\x01`@\x1B\x81\x04`\xFF\x16\x15\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16_\x81\x15\x80\x15a\n\x04WP\x82[\x90P_\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x01\x14\x80\x15a\n WP0;\x15[\x90P\x81\x15\x80\x15a\n.WP\x80\x15[\x15a\nLW`@Qc\xF9.\xE8\xA9`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x84Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16`\x01\x17\x85U\x83\x15a\nvW\x84T`\xFF`@\x1B\x19\x16`\x01`@\x1B\x17\x85U[`\x01`\x01`\xA0\x1B\x03\x89\x16a\n\x9DW`@Qc>\xF3\x9B\x81`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x87\x16a\n\xC4W`@Qc\xFC\xAB\xDD\xBD`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x86\x16a\n\xEBW`@Qc\xA7I\x95\xAB`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x88\x16a\x0B\x12W`@Qck\t:\xAD`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x88`\x01`\x01`\xA0\x1B\x03\x16c\x18\x16\r\xDD`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0BOW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0Bs\x91\x90a\x18\xF5V[\x90P_\x81\x11a\x0B\x95W`@QcH\xB5\0#`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`d_a'\x10a\x0B\xA5\x83\x85a\x19\x0CV[a\x0B\xAF\x91\x90a\x19#V[\x90P_\x81\x11a\x0B\xD1W`@Qc\x9B\x11\xA8\xBD`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0B\xD9a\x12\x10V[a\x0B\xE1a\x12\x18V[a\x0B\xE9a\x12\x10V[a\x0B\xF1a\x12(V[a\x0B\xFB_\x8Da\x128V[P`\x07\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x8E\x16\x17\x90Ua\x0C._Q` a\x1AT_9_Q\x90_R\x8Aa\x128V[P_\x80T`\x01`\x01`\xA0\x1B\x03\x80\x8E\x16`\x01`\x01`\xA0\x1B\x03\x19\x92\x83\x16\x17\x90\x92U`\x01\x80T\x92\x8D\x16\x92\x90\x91\x16\x91\x90\x91\x17\x90U`\x03\x81\x90U`\x04\x82\x90Ua\x0Cub\x01Q\x80Ba\x19#V[`\x05UPP\x84\x15\x90Pa\x0C\xC2W\x84T`\xFF`@\x1B\x19\x16\x85U`@Q`\x01\x81R\x7F\xC7\xF5\x05\xB2\xF3q\xAE!u\xEEI\x13\xF4I\x9E\x1F&3\xA7\xB5\x93c!\xEE\xD1\xCD\xAE\xB6\x11Q\x81\xD2\x90` \x01`@Q\x80\x91\x03\x90\xA1[PPPPPPPPPV[a\x0C\xD6\x82a\x05 V[a\x0C\xDF\x81a\r\x9EV[a\x05\x9C\x83\x83a\x128V[__Q` a\x1At_9_Q\x90_Ra\r\x02\x84\x84a\x07\xE2V[\x15a\rbW_\x84\x81R` \x82\x81R`@\x80\x83 `\x01`\x01`\xA0\x1B\x03\x87\x16\x80\x85R\x92R\x80\x83 \x80T`\xFF\x19\x16\x90UQ3\x92\x87\x91\x7F\xF69\x1F\\2\xD9\xC6\x9D*G\xEAg\x0BD)t\xB595\xD1\xED\xC7\xFDd\xEB!\xE0G\xA89\x17\x1B\x91\x90\xA4`\x01\x91PPa\x05\x1AV[_\x91PPa\x05\x1AV[`\x01`\x01`\xA0\x1B\x03\x81\x163\x14a\r\x94W`@Qc3K\xD9\x19`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x05\x9E\x82\x82a\x0C\xE9V[a\x05\xEB\x813a\x12\xD0V[a\r\xB0a\x13\tV[_Q` a\x1A\x94_9_Q\x90_R\x80T`\xFF\x19\x16\x81U\x7F]\xB9\xEE\nI[\xF2\xE6\xFF\x9C\x91\xA7\x83L\x1B\xA4\xFD\xD2D\xA5\xE8\xAANS{\xD3\x8A\xEA\xE4\xB0s\xAA3[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01`@Q\x80\x91\x03\x90\xA1PV[0`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14\x80a\x0E\x8DWP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16a\x0E\x81_Q` a\x1A4_9_Q\x90_RT`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x14\x15[\x15a\x0E\xABW`@Qcp>F\xDD`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[V[_a\x05\xA0\x81a\r\x9EV[\x81`\x01`\x01`\xA0\x1B\x03\x16cR\xD1\x90-`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x92PPP\x80\x15a\x0F\x11WP`@\x80Q`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01\x90\x92Ra\x0F\x0E\x91\x81\x01\x90a\x18\xF5V[`\x01[a\x0F>W`@QcL\x9C\x8C\xE3`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x83\x16`\x04\x82\x01R`$\x01[`@Q\x80\x91\x03\x90\xFD[_Q` a\x1A4_9_Q\x90_R\x81\x14a\x0FnW`@Qc*\x87Ri`\xE2\x1B\x81R`\x04\x81\x01\x82\x90R`$\x01a\x0F5V[a\x05\x9E\x83\x83a\x138V[0`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x0E\xABW`@Qcp>F\xDD`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_Q` a\x1A\x94_9_Q\x90_RT`\xFF\x16\x15a\x0E\xABW`@Qc\xD9<\x06e`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_Q` a\x1A\xB4_9_Q\x90_R\x80T`\x01\x19\x01a\x10\"W`@Qc>\xE5\xAE\xB5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x90UV[_a\x106b\x01Q\x80Ba\x19#V[\x90P`\x05T\x81\x14a\x10KW`\x05\x81\x90U_`\x06U[\x81`\x06_\x82\x82Ta\x10\\\x91\x90a\x18\xE2V[\x90\x91UPP`\x03T`\x06T\x11\x15a\x05\xA0W`@Qc\x06R\xF4\xC5`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x80\x80a\x10\x95\x84\x86\x01\x86a\x19\x83V[\x91P\x91P_a\x10\xA53\x88\x85a\x13\x8DV[\x82Q` \x80\x85\x01Q`@\x80\x87\x01Q``\x80\x89\x01Q`\x80\x80\x8B\x01Q`\xA0\x80\x8D\x01Q`\xC0\x80\x8F\x01Q\x89Q\x9B\x8C\x01\x8E\x90R\x98\x8B\x01\x9B\x90\x9BR\x94\x89\x01\x97\x90\x97R\x90\x87\x01\x93\x90\x93R\x93\x85\x01\x93\x90\x93R\x93\x83\x01\x93\x90\x93R`\xE0\x82\x01Ra\x01\0\x81\x01\x91\x90\x91R\x90\x91P_\x90a\x01 \x01`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x82\x82R\x80Q` \x91\x82\x01 `\x01Tc\x130e\x1D`\xE3\x1B\x85R\x92Q\x90\x94P`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x92c\x99\x83(\xE8\x92`\x04\x80\x83\x01\x93\x92\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x11gW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x11\x8B\x91\x90a\x18\xF5V[\x14\x93PPPP[\x93\x92PPPV[`\x01_Q` a\x1A\xB4_9_Q\x90_RUV[a\x11\xB4a\x0F\xC1V[_Q` a\x1A\x94_9_Q\x90_R\x80T`\xFF\x19\x16`\x01\x17\x81U\x7Fb\xE7\x8C\xEA\x01\xBE\xE3 \xCDNB\x02p\xB5\xEAt\0\r\x11\xB0\xC9\xF7GT\xEB\xDB\xFCTK\x05\xA2X3a\r\xE9V[a\x11\xFD\x82a\x05 V[a\x12\x06\x81a\r\x9EV[a\x05\x9C\x83\x83a\x0C\xE9V[a\x0E\xABa\x14\x02V[a\x12 a\x14\x02V[a\x0E\xABa\x14KV[a\x120a\x14\x02V[a\x0E\xABa\x14kV[__Q` a\x1At_9_Q\x90_Ra\x12Q\x84\x84a\x07\xE2V[a\rbW_\x84\x81R` \x82\x81R`@\x80\x83 `\x01`\x01`\xA0\x1B\x03\x87\x16\x84R\x90\x91R\x90 \x80T`\xFF\x19\x16`\x01\x17\x90Ua\x12\x863\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16\x85\x7F/\x87\x88\x11~~\xFF\x1D\x82\xE9&\xECyI\x01\xD1|x\x02JP'\t@0E@\xA73eo\r`@Q`@Q\x80\x91\x03\x90\xA4`\x01\x91PPa\x05\x1AV[a\x12\xDA\x82\x82a\x07\xE2V[a\x05\xA0W`@Qc\xE2Q}?`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x82\x16`\x04\x82\x01R`$\x81\x01\x83\x90R`D\x01a\x0F5V[_Q` a\x1A\x94_9_Q\x90_RT`\xFF\x16a\x0E\xABW`@Qc\x8D\xFC +`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x13A\x82a\x14sV[`@Q`\x01`\x01`\xA0\x1B\x03\x83\x16\x90\x7F\xBC|\xD7Z \xEE'\xFD\x9A\xDE\xBA\xB3 A\xF7U!M\xBCk\xFF\xA9\x0C\xC0\"[9\xDA.\\-;\x90_\x90\xA2\x80Q\x15a\x13\x85Wa\x05\x9E\x82\x82a\x14\xD6V[a\x05\xA0a\x15HV[__a\x13\x98\x84a\x15gV[\x90P_[`\xA0\x81\x10\x15a\x13\xF9W_\x84\x82`\xA0\x81\x10a\x13\xB8Wa\x13\xB8a\x1A\tV[` \x02\x01Q\x90P`\x01\x87\x83\x1C\x16\x80\x15a\x13\xDFW_\x82\x81R` \x85\x90R`@\x90 \x93Pa\x13\xEFV[_\x84\x81R` \x83\x90R`@\x90 \x93P[PP`\x01\x01a\x13\x9CV[P\x94\x93PPPPV[\x7F\xF0\xC5~\x16\x84\r\xF0@\xF1P\x88\xDC/\x81\xFE9\x1C9#\xBE\xC7>#\xA9f.\xFC\x9C\"\x9Cj\0T`\x01`@\x1B\x90\x04`\xFF\x16a\x0E\xABW`@Qc\x1A\xFC\xD7\x9F`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x14Sa\x14\x02V[_Q` a\x1A\x94_9_Q\x90_R\x80T`\xFF\x19\x16\x90UV[a\x11\x99a\x14\x02V[\x80`\x01`\x01`\xA0\x1B\x03\x16;_\x03a\x14\xA8W`@QcL\x9C\x8C\xE3`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x82\x16`\x04\x82\x01R`$\x01a\x0F5V[_Q` a\x1A4_9_Q\x90_R\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x90\x91\x17\x90UV[``__\x84`\x01`\x01`\xA0\x1B\x03\x16\x84`@Qa\x14\xF2\x91\x90a\x1A\x1DV[_`@Q\x80\x83\x03\x81\x85Z\xF4\x91PP=\x80_\x81\x14a\x15*W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=_` \x84\x01>a\x15/V[``\x91P[P\x91P\x91Pa\x15?\x85\x83\x83a\x15\xB3V[\x95\x94PPPPPV[4\x15a\x0E\xABW`@Qc\xB3\x98\x97\x9F`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[__\x82`@Q` \x01a\x15|\x91\x81R` \x01\x90V[`@\x80Q\x80\x83\x03`\x1F\x19\x01\x81R\x82\x82R\x80Q` \x91\x82\x01 \x81\x84\x01R\x81Q\x80\x84\x03\x82\x01\x81R\x92\x82\x01\x90\x91R\x81Q\x91\x01 \x93\x92PPPV[``\x82a\x15\xC8Wa\x15\xC3\x82a\x16\x0FV[a\x11\x92V[\x81Q\x15\x80\x15a\x15\xDFWP`\x01`\x01`\xA0\x1B\x03\x84\x16;\x15[\x15a\x16\x08W`@Qc\x99\x96\xB3\x15`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x85\x16`\x04\x82\x01R`$\x01a\x0F5V[P\x80a\x11\x92V[\x80Q\x15a\x16\x1FW\x80Q\x80\x82` \x01\xFD[`@Qc\n\x12\xF5!`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_` \x82\x84\x03\x12\x15a\x16HW__\xFD[\x815`\x01`\x01`\xE0\x1B\x03\x19\x81\x16\x81\x14a\x11\x92W__\xFD[_` \x82\x84\x03\x12\x15a\x16oW__\xFD[P5\x91\x90PV[\x805`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x16\x8CW__\xFD[\x91\x90PV[__`@\x83\x85\x03\x12\x15a\x16\xA2W__\xFD[\x825\x91Pa\x16\xB2` \x84\x01a\x16vV[\x90P\x92P\x92\x90PV[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[`@Q`\x1F\x82\x01`\x1F\x19\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x16\xF8Wa\x16\xF8a\x16\xBBV[`@R\x91\x90PV[__`@\x83\x85\x03\x12\x15a\x17\x11W__\xFD[a\x17\x1A\x83a\x16vV[\x91P` \x83\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x175W__\xFD[\x83\x01`\x1F\x81\x01\x85\x13a\x17EW__\xFD[\x805g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x17_Wa\x17_a\x16\xBBV[a\x17r`\x1F\x82\x01`\x1F\x19\x16` \x01a\x16\xCFV[\x81\x81R\x86` \x83\x85\x01\x01\x11\x15a\x17\x86W__\xFD[\x81` \x84\x01` \x83\x017_` \x83\x83\x01\x01R\x80\x93PPPP\x92P\x92\x90PV[___`@\x84\x86\x03\x12\x15a\x17\xB7W__\xFD[\x835\x92P` \x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x17\xD4W__\xFD[\x84\x01`\x1F\x81\x01\x86\x13a\x17\xE4W__\xFD[\x805g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x17\xFAW__\xFD[\x86` \x82\x84\x01\x01\x11\x15a\x18\x0BW__\xFD[\x93\x96` \x91\x90\x91\x01\x95P\x92\x93PPPV[` \x81R_\x82Q\x80` \x84\x01R\x80` \x85\x01`@\x85\x01^_`@\x82\x85\x01\x01R`@`\x1F\x19`\x1F\x83\x01\x16\x84\x01\x01\x91PP\x92\x91PPV[_` \x82\x84\x03\x12\x15a\x18aW__\xFD[a\x11\x92\x82a\x16vV[____`\x80\x85\x87\x03\x12\x15a\x18}W__\xFD[a\x18\x86\x85a\x16vV[\x93Pa\x18\x94` \x86\x01a\x16vV[\x92Pa\x18\xA2`@\x86\x01a\x16vV[\x91Pa\x18\xB0``\x86\x01a\x16vV[\x90P\x92\x95\x91\x94P\x92PV[cNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[\x81\x81\x03\x81\x81\x11\x15a\x05\x1AWa\x05\x1Aa\x18\xBBV[\x80\x82\x01\x80\x82\x11\x15a\x05\x1AWa\x05\x1Aa\x18\xBBV[_` \x82\x84\x03\x12\x15a\x19\x05W__\xFD[PQ\x91\x90PV[\x80\x82\x02\x81\x15\x82\x82\x04\x84\x14\x17a\x05\x1AWa\x05\x1Aa\x18\xBBV[_\x82a\x19=WcNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[P\x04\x90V[_a\x19M`\xE0a\x16\xCFV[\x90P\x80`\xE0\x83\x01\x84\x81\x11\x15a\x19`W__\xFD[\x83[\x81\x81\x10\x15a\x19zW\x805\x83R` \x92\x83\x01\x92\x01a\x19bV[PPP\x92\x91PPV[__a\x14\xE0\x83\x85\x03\x12\x15a\x19\x95W__\xFD[_\x84`\x1F\x85\x01\x12a\x19\xA4W__\xFD[P_\x80a\x14\0a\x19\xB3\x81a\x16\xCFV[\x92P\x82\x91P\x85\x01\x86\x81\x11\x15a\x19\xC6W__\xFD[\x85[\x81\x81\x10\x15a\x19\xE0W\x805\x84R` \x93\x84\x01\x93\x01a\x19\xC8V[P\x81\x94P\x86a\x14\x1F\x87\x01\x12a\x19\xF3W__\xFD[a\x19\xFD\x87\x82a\x19BV[\x93PPPP\x92P\x92\x90PV[cNH{q`\xE0\x1B_R`2`\x04R`$_\xFD[_\x82Q\x80` \x85\x01\x84^_\x92\x01\x91\x82RP\x91\x90PV\xFE6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBCe\xD7\xA2\x8E2e\xB3zdt\x92\x9F3e!\xB32\xC1h\x1B\x93?l\xB9\xF37fsD\r\x86*\x02\xDD{\xC7\xDE\xC4\xDC\xEE\xDD\xA7u\xE5\x8D\xD5A\xE0\x8A\x11llS\x81\\\x0B\xD0(\x19/{bh\0\xCD^\xD1\\n\x18~w\xE9\xAE\xE8\x81\x84\xC2\x1FO!\x82\xABX'\xCB;~\x07\xFB\xED\xCDc\xF03\0\x9Bw\x9B\x17B-\r\xF9\"#\x01\x8B2\xB4\xD1\xFAF\xE0qr=h\x17\xE2Hm\0;\xEC\xC5_\0\xA1dsolcC\0\x08\x1C\0\n",
852    );
853    /// The runtime bytecode of the contract, as deployed on the network.
854    ///
855    /// ```text
856    ///0x608060405260043610610195575f3560e01c806391d14854116100e7578063cf21395b11610087578063e1a4521811610062578063e1a4521814610478578063e63ab1e91461048d578063f092e13a146104ad578063f8c8765e146104cb575f5ffd5b8063cf21395b1461042f578063d547741f14610444578063d54ad2a114610463575f5ffd5b8063b20d30a9116100c2578063b20d30a91461038f578063b5700e68146103ae578063ba4bcd72146103e5578063bd83434514610404575f5ffd5b806391d1485414610320578063a217fddf1461033f578063ad3cb1cc14610352575f5ffd5b806336568abe1161015257806352d1902d1161012d57806352d1902d146102b6578063549dd8c3146102ca5780635c975abb146102e95780638456cb591461030c575f5ffd5b806336568abe146102705780633f4ba83a1461028f5780634f1ef286146102a3575f5ffd5b806301ffc9a7146101995780630d8e6e2c146101cd5780630f6ca1d6146101f8578063248a9ca31461021b5780632cca74d81461023a5780632f2ff15d1461024f575b5f5ffd5b3480156101a4575f5ffd5b506101b86101b3366004611638565b6104ea565b60405190151581526020015b60405180910390f35b3480156101d8575f5ffd5b5060408051600181525f60208201819052918101919091526060016101c4565b348015610203575f5ffd5b5061020d60045481565b6040519081526020016101c4565b348015610226575f5ffd5b5061020d61023536600461165f565b610520565b348015610245575f5ffd5b5061020d60035481565b34801561025a575f5ffd5b5061026e610269366004611691565b610540565b005b34801561027b575f5ffd5b5061026e61028a366004611691565b6105a4565b34801561029a575f5ffd5b5061026e6105cc565b61026e6102b1366004611700565b6105ee565b3480156102c1575f5ffd5b5061020d610609565b3480156102d5575f5ffd5b5061026e6102e43660046117a5565b610624565b3480156102f4575f5ffd5b505f516020611a945f395f51905f525460ff166101b8565b348015610317575f5ffd5b5061026e6107c3565b34801561032b575f5ffd5b506101b861033a366004611691565b6107e2565b34801561034a575f5ffd5b5061020d5f81565b34801561035d575f5ffd5b50610382604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c4919061181c565b34801561039a575f5ffd5b5061026e6103a936600461165f565b610818565b3480156103b9575f5ffd5b506001546103cd906001600160a01b031681565b6040516001600160a01b0390911681526020016101c4565b3480156103f0575f5ffd5b506007546103cd906001600160a01b031681565b34801561040f575f5ffd5b5061020d61041e366004611851565b60026020525f908152604090205481565b34801561043a575f5ffd5b5061020d6101f481565b34801561044f575f5ffd5b5061026e61045e366004611691565b610997565b34801561046e575f5ffd5b5061020d60085481565b348015610483575f5ffd5b5061020d61271081565b348015610498575f5ffd5b5061020d5f516020611a545f395f51905f5281565b3480156104b8575f5ffd5b505f546103cd906001600160a01b031681565b3480156104d6575f5ffd5b5061026e6104e536600461186a565b6109bf565b5f6001600160e01b03198216637965db0b60e01b148061051a57506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f9081525f516020611a745f395f51905f52602052604090206001015490565b61054a8282610ccd565b816105a0576007546001600160a01b03908116908216810361056b57505050565b600780546001600160a01b0319166001600160a01b038481169190911790915581161561059e5761059c5f82610ce9565b505b505b5050565b816105c257604051638b78631d60e01b815260040160405180910390fd5b6105a08282610d6b565b5f516020611a545f395f51905f526105e381610d9e565b6105eb610da8565b50565b6105f6610e07565b6105ff82610ead565b6105a08282610eb7565b5f610612610f78565b505f516020611a345f395f51905f5290565b61062c610fc1565b610634610ff1565b825f0361065457604051633853986560e01b815260040160405180910390fd5b335f81815260026020526040902054841161068257604051630c8d9eab60e31b815260040160405180910390fd5b6001600160a01b0381165f908152600260205260408120546106a490866118cf565b90506106af81611028565b6106ba858585611086565b6106d757604051630651710f60e31b815260040160405180910390fd5b6001600160a01b0382165f908152600260205260408120869055600880548392906107039084906118e2565b90915550505f546040516340c10f1960e01b81526001600160a01b03848116600483015260248201849052909116906340c10f19906044015f604051808303815f87803b158015610752575f5ffd5b505af1158015610764573d5f5f3e3d5ffd5b50505050816001600160a01b03167ffc30cddea38e2bf4d6ea7d3f9ed3b6ad7f176419f4963bd81318067a4aee73fe826040516107a391815260200190565b60405180910390a2505061059e60015f516020611ab45f395f51905f5255565b5f516020611a545f395f51905f526107da81610d9e565b6105eb6111ac565b5f9182525f516020611a745f395f51905f52602090815260408084206001600160a01b0393909316845291905290205460ff1690565b5f61082281610d9e565b61082a610ff1565b5f821161084a57604051639b11a8bd60e01b815260040160405180910390fd5b6101f482111561086d5760405163c5d2ae5360e01b815260040160405180910390fd5b5f612710835f5f9054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108c1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e591906118f5565b6108ef919061190c565b6108f99190611923565b90505f811161091b57604051639b11a8bd60e01b815260040160405180910390fd5b600354810361093d5760405163a863aec960e01b815260040160405180910390fd5b60035460408051918252602082018390527f207c4cbdf55ec315a13f0d5e047732ec5d947da056e706593aa509909941cedf910160405180910390a160035560048290556105a060015f516020611ab45f395f51905f5255565b816109b55760405163b0b5fb9960e01b815260040160405180910390fd5b6105a082826111f4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f81158015610a045750825b90505f8267ffffffffffffffff166001148015610a205750303b155b905081158015610a2e575080155b15610a4c5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610a7657845460ff60401b1916600160401b1785555b6001600160a01b038916610a9d57604051633ef39b8160e01b815260040160405180910390fd5b6001600160a01b038716610ac45760405163fcabddbd60e01b815260040160405180910390fd5b6001600160a01b038616610aeb5760405163a74995ab60e01b815260040160405180910390fd5b6001600160a01b038816610b1257604051636b093aad60e01b815260040160405180910390fd5b5f886001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b4f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b7391906118f5565b90505f8111610b95576040516348b5002360e01b815260040160405180910390fd5b60645f612710610ba5838561190c565b610baf9190611923565b90505f8111610bd157604051639b11a8bd60e01b815260040160405180910390fd5b610bd9611210565b610be1611218565b610be9611210565b610bf1611228565b610bfb5f8d611238565b50600780546001600160a01b0319166001600160a01b038e16179055610c2e5f516020611a545f395f51905f528a611238565b505f80546001600160a01b03808e166001600160a01b03199283161790925560018054928d169290911691909117905560038190556004829055610c756201518042611923565b600555505084159050610cc257845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b610cd682610520565b610cdf81610d9e565b61059c8383611238565b5f5f516020611a745f395f51905f52610d0284846107e2565b15610d62575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4600191505061051a565b5f91505061051a565b6001600160a01b0381163314610d945760405163334bd91960e11b815260040160405180910390fd5b61059e8282610ce9565b6105eb81336112d0565b610db0611309565b5f516020611a945f395f51905f52805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610e8d57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610e815f516020611a345f395f51905f52546001600160a01b031690565b6001600160a01b031614155b15610eab5760405163703e46dd60e11b815260040160405180910390fd5b565b5f6105a081610d9e565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610f11575060408051601f3d908101601f19168201909252610f0e918101906118f5565b60015b610f3e57604051634c9c8ce360e01b81526001600160a01b03831660048201526024015b60405180910390fd5b5f516020611a345f395f51905f528114610f6e57604051632a87526960e21b815260048101829052602401610f35565b61059e8383611338565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610eab5760405163703e46dd60e11b815260040160405180910390fd5b5f516020611a945f395f51905f525460ff1615610eab5760405163d93c066560e01b815260040160405180910390fd5b5f516020611ab45f395f51905f5280546001190161102257604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b5f6110366201518042611923565b9050600554811461104b5760058190555f6006555b8160065f82825461105c91906118e2565b909155505060035460065411156105a057604051630652f4c560e21b815260040160405180910390fd5b5f808061109584860186611983565b915091505f6110a533888561138d565b82516020808501516040808701516060808901516080808b015160a0808d015160c0808f015189519b8c018e9052988b019b909b529489019790975290870193909352938501939093529383019390935260e08201526101008101919091529091505f906101200160408051601f198184030181528282528051602091820120600154631330651d60e31b855292519094506001600160a01b039092169263998328e892600480830193928290030181865afa158015611167573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061118b91906118f5565b1493505050505b9392505050565b60015f516020611ab45f395f51905f5255565b6111b4610fc1565b5f516020611a945f395f51905f52805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833610de9565b6111fd82610520565b61120681610d9e565b61059c8383610ce9565b610eab611402565b611220611402565b610eab61144b565b611230611402565b610eab61146b565b5f5f516020611a745f395f51905f5261125184846107e2565b610d62575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556112863390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600191505061051a565b6112da82826107e2565b6105a05760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610f35565b5f516020611a945f395f51905f525460ff16610eab57604051638dfc202b60e01b815260040160405180910390fd5b61134182611473565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156113855761059e82826114d6565b6105a0611548565b5f5f61139884611567565b90505f5b60a08110156113f9575f848260a081106113b8576113b8611a09565b60200201519050600187831c1680156113df575f82815260208590526040902093506113ef565b5f84815260208390526040902093505b505060010161139c565b50949350505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16610eab57604051631afcd79f60e31b815260040160405180910390fd5b611453611402565b5f516020611a945f395f51905f52805460ff19169055565b611199611402565b806001600160a01b03163b5f036114a857604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610f35565b5f516020611a345f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f5f846001600160a01b0316846040516114f29190611a1d565b5f60405180830381855af49150503d805f811461152a576040519150601f19603f3d011682016040523d82523d5f602084013e61152f565b606091505b509150915061153f8583836115b3565b95945050505050565b3415610eab5760405163b398979f60e01b815260040160405180910390fd5b5f5f8260405160200161157c91815260200190565b60408051808303601f1901815282825280516020918201208184015281518084038201815292820190915281519101209392505050565b6060826115c8576115c38261160f565b611192565b81511580156115df57506001600160a01b0384163b155b1561160857604051639996b31560e01b81526001600160a01b0385166004820152602401610f35565b5080611192565b80511561161f5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b5f60208284031215611648575f5ffd5b81356001600160e01b031981168114611192575f5ffd5b5f6020828403121561166f575f5ffd5b5035919050565b80356001600160a01b038116811461168c575f5ffd5b919050565b5f5f604083850312156116a2575f5ffd5b823591506116b260208401611676565b90509250929050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156116f8576116f86116bb565b604052919050565b5f5f60408385031215611711575f5ffd5b61171a83611676565b9150602083013567ffffffffffffffff811115611735575f5ffd5b8301601f81018513611745575f5ffd5b803567ffffffffffffffff81111561175f5761175f6116bb565b611772601f8201601f19166020016116cf565b818152866020838501011115611786575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f5f5f604084860312156117b7575f5ffd5b83359250602084013567ffffffffffffffff8111156117d4575f5ffd5b8401601f810186136117e4575f5ffd5b803567ffffffffffffffff8111156117fa575f5ffd5b86602082840101111561180b575f5ffd5b939660209190910195509293505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215611861575f5ffd5b61119282611676565b5f5f5f5f6080858703121561187d575f5ffd5b61188685611676565b935061189460208601611676565b92506118a260408601611676565b91506118b060608601611676565b905092959194509250565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561051a5761051a6118bb565b8082018082111561051a5761051a6118bb565b5f60208284031215611905575f5ffd5b5051919050565b808202811582820484141761051a5761051a6118bb565b5f8261193d57634e487b7160e01b5f52601260045260245ffd5b500490565b5f61194d60e06116cf565b90508060e0830184811115611960575f5ffd5b835b8181101561197a578035835260209283019201611962565b50505092915050565b5f5f6114e08385031215611995575f5ffd5b5f84601f8501126119a4575f5ffd5b505f806114006119b3816116cf565b92508291508501868111156119c6575f5ffd5b855b818110156119e05780358452602093840193016119c8565b508194508661141f8701126119f3575f5ffd5b6119fd8782611942565b93505050509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f82518060208501845e5f92019182525091905056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a164736f6c634300081c000a
857    /// ```
858    #[rustfmt::skip]
859    #[allow(clippy::all)]
860    pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
861        b"`\x80`@R`\x046\x10a\x01\x95W_5`\xE0\x1C\x80c\x91\xD1HT\x11a\0\xE7W\x80c\xCF!9[\x11a\0\x87W\x80c\xE1\xA4R\x18\x11a\0bW\x80c\xE1\xA4R\x18\x14a\x04xW\x80c\xE6:\xB1\xE9\x14a\x04\x8DW\x80c\xF0\x92\xE1:\x14a\x04\xADW\x80c\xF8\xC8v^\x14a\x04\xCBW__\xFD[\x80c\xCF!9[\x14a\x04/W\x80c\xD5Gt\x1F\x14a\x04DW\x80c\xD5J\xD2\xA1\x14a\x04cW__\xFD[\x80c\xB2\r0\xA9\x11a\0\xC2W\x80c\xB2\r0\xA9\x14a\x03\x8FW\x80c\xB5p\x0Eh\x14a\x03\xAEW\x80c\xBAK\xCDr\x14a\x03\xE5W\x80c\xBD\x83CE\x14a\x04\x04W__\xFD[\x80c\x91\xD1HT\x14a\x03 W\x80c\xA2\x17\xFD\xDF\x14a\x03?W\x80c\xAD<\xB1\xCC\x14a\x03RW__\xFD[\x80c6V\x8A\xBE\x11a\x01RW\x80cR\xD1\x90-\x11a\x01-W\x80cR\xD1\x90-\x14a\x02\xB6W\x80cT\x9D\xD8\xC3\x14a\x02\xCAW\x80c\\\x97Z\xBB\x14a\x02\xE9W\x80c\x84V\xCBY\x14a\x03\x0CW__\xFD[\x80c6V\x8A\xBE\x14a\x02pW\x80c?K\xA8:\x14a\x02\x8FW\x80cO\x1E\xF2\x86\x14a\x02\xA3W__\xFD[\x80c\x01\xFF\xC9\xA7\x14a\x01\x99W\x80c\r\x8En,\x14a\x01\xCDW\x80c\x0Fl\xA1\xD6\x14a\x01\xF8W\x80c$\x8A\x9C\xA3\x14a\x02\x1BW\x80c,\xCAt\xD8\x14a\x02:W\x80c//\xF1]\x14a\x02OW[__\xFD[4\x80\x15a\x01\xA4W__\xFD[Pa\x01\xB8a\x01\xB36`\x04a\x168V[a\x04\xEAV[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x01\xD8W__\xFD[P`@\x80Q`\x01\x81R_` \x82\x01\x81\x90R\x91\x81\x01\x91\x90\x91R``\x01a\x01\xC4V[4\x80\x15a\x02\x03W__\xFD[Pa\x02\r`\x04T\x81V[`@Q\x90\x81R` \x01a\x01\xC4V[4\x80\x15a\x02&W__\xFD[Pa\x02\ra\x0256`\x04a\x16_V[a\x05 V[4\x80\x15a\x02EW__\xFD[Pa\x02\r`\x03T\x81V[4\x80\x15a\x02ZW__\xFD[Pa\x02na\x02i6`\x04a\x16\x91V[a\x05@V[\0[4\x80\x15a\x02{W__\xFD[Pa\x02na\x02\x8A6`\x04a\x16\x91V[a\x05\xA4V[4\x80\x15a\x02\x9AW__\xFD[Pa\x02na\x05\xCCV[a\x02na\x02\xB16`\x04a\x17\0V[a\x05\xEEV[4\x80\x15a\x02\xC1W__\xFD[Pa\x02\ra\x06\tV[4\x80\x15a\x02\xD5W__\xFD[Pa\x02na\x02\xE46`\x04a\x17\xA5V[a\x06$V[4\x80\x15a\x02\xF4W__\xFD[P_Q` a\x1A\x94_9_Q\x90_RT`\xFF\x16a\x01\xB8V[4\x80\x15a\x03\x17W__\xFD[Pa\x02na\x07\xC3V[4\x80\x15a\x03+W__\xFD[Pa\x01\xB8a\x03:6`\x04a\x16\x91V[a\x07\xE2V[4\x80\x15a\x03JW__\xFD[Pa\x02\r_\x81V[4\x80\x15a\x03]W__\xFD[Pa\x03\x82`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01d\x03R\xE3\x02\xE3`\xDC\x1B\x81RP\x81V[`@Qa\x01\xC4\x91\x90a\x18\x1CV[4\x80\x15a\x03\x9AW__\xFD[Pa\x02na\x03\xA96`\x04a\x16_V[a\x08\x18V[4\x80\x15a\x03\xB9W__\xFD[P`\x01Ta\x03\xCD\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x01\xC4V[4\x80\x15a\x03\xF0W__\xFD[P`\x07Ta\x03\xCD\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[4\x80\x15a\x04\x0FW__\xFD[Pa\x02\ra\x04\x1E6`\x04a\x18QV[`\x02` R_\x90\x81R`@\x90 T\x81V[4\x80\x15a\x04:W__\xFD[Pa\x02\ra\x01\xF4\x81V[4\x80\x15a\x04OW__\xFD[Pa\x02na\x04^6`\x04a\x16\x91V[a\t\x97V[4\x80\x15a\x04nW__\xFD[Pa\x02\r`\x08T\x81V[4\x80\x15a\x04\x83W__\xFD[Pa\x02\ra'\x10\x81V[4\x80\x15a\x04\x98W__\xFD[Pa\x02\r_Q` a\x1AT_9_Q\x90_R\x81V[4\x80\x15a\x04\xB8W__\xFD[P_Ta\x03\xCD\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[4\x80\x15a\x04\xD6W__\xFD[Pa\x02na\x04\xE56`\x04a\x18jV[a\t\xBFV[_`\x01`\x01`\xE0\x1B\x03\x19\x82\x16cye\xDB\x0B`\xE0\x1B\x14\x80a\x05\x1AWPc\x01\xFF\xC9\xA7`\xE0\x1B`\x01`\x01`\xE0\x1B\x03\x19\x83\x16\x14[\x92\x91PPV[_\x90\x81R_Q` a\x1At_9_Q\x90_R` R`@\x90 `\x01\x01T\x90V[a\x05J\x82\x82a\x0C\xCDV[\x81a\x05\xA0W`\x07T`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x90\x82\x16\x81\x03a\x05kWPPPV[`\x07\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x84\x81\x16\x91\x90\x91\x17\x90\x91U\x81\x16\x15a\x05\x9EWa\x05\x9C_\x82a\x0C\xE9V[P[P[PPV[\x81a\x05\xC2W`@Qc\x8Bxc\x1D`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x05\xA0\x82\x82a\rkV[_Q` a\x1AT_9_Q\x90_Ra\x05\xE3\x81a\r\x9EV[a\x05\xEBa\r\xA8V[PV[a\x05\xF6a\x0E\x07V[a\x05\xFF\x82a\x0E\xADV[a\x05\xA0\x82\x82a\x0E\xB7V[_a\x06\x12a\x0FxV[P_Q` a\x1A4_9_Q\x90_R\x90V[a\x06,a\x0F\xC1V[a\x064a\x0F\xF1V[\x82_\x03a\x06TW`@Qc8S\x98e`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[3_\x81\x81R`\x02` R`@\x90 T\x84\x11a\x06\x82W`@Qc\x0C\x8D\x9E\xAB`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x81\x16_\x90\x81R`\x02` R`@\x81 Ta\x06\xA4\x90\x86a\x18\xCFV[\x90Pa\x06\xAF\x81a\x10(V[a\x06\xBA\x85\x85\x85a\x10\x86V[a\x06\xD7W`@Qc\x06Qq\x0F`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x82\x16_\x90\x81R`\x02` R`@\x81 \x86\x90U`\x08\x80T\x83\x92\x90a\x07\x03\x90\x84\x90a\x18\xE2V[\x90\x91UPP_T`@Qc@\xC1\x0F\x19`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x84\x81\x16`\x04\x83\x01R`$\x82\x01\x84\x90R\x90\x91\x16\x90c@\xC1\x0F\x19\x90`D\x01_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a\x07RW__\xFD[PZ\xF1\x15\x80\x15a\x07dW=__>=_\xFD[PPPP\x81`\x01`\x01`\xA0\x1B\x03\x16\x7F\xFC0\xCD\xDE\xA3\x8E+\xF4\xD6\xEA}?\x9E\xD3\xB6\xAD\x7F\x17d\x19\xF4\x96;\xD8\x13\x18\x06zJ\xEEs\xFE\x82`@Qa\x07\xA3\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2PPa\x05\x9E`\x01_Q` a\x1A\xB4_9_Q\x90_RUV[_Q` a\x1AT_9_Q\x90_Ra\x07\xDA\x81a\r\x9EV[a\x05\xEBa\x11\xACV[_\x91\x82R_Q` a\x1At_9_Q\x90_R` \x90\x81R`@\x80\x84 `\x01`\x01`\xA0\x1B\x03\x93\x90\x93\x16\x84R\x91\x90R\x90 T`\xFF\x16\x90V[_a\x08\"\x81a\r\x9EV[a\x08*a\x0F\xF1V[_\x82\x11a\x08JW`@Qc\x9B\x11\xA8\xBD`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x01\xF4\x82\x11\x15a\x08mW`@Qc\xC5\xD2\xAES`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a'\x10\x83__\x90T\x90a\x01\0\n\x90\x04`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16c\x18\x16\r\xDD`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x08\xC1W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x08\xE5\x91\x90a\x18\xF5V[a\x08\xEF\x91\x90a\x19\x0CV[a\x08\xF9\x91\x90a\x19#V[\x90P_\x81\x11a\t\x1BW`@Qc\x9B\x11\xA8\xBD`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x03T\x81\x03a\t=W`@Qc\xA8c\xAE\xC9`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x03T`@\x80Q\x91\x82R` \x82\x01\x83\x90R\x7F |L\xBD\xF5^\xC3\x15\xA1?\r^\x04w2\xEC]\x94}\xA0V\xE7\x06Y:\xA5\t\x90\x99A\xCE\xDF\x91\x01`@Q\x80\x91\x03\x90\xA1`\x03U`\x04\x82\x90Ua\x05\xA0`\x01_Q` a\x1A\xB4_9_Q\x90_RUV[\x81a\t\xB5W`@Qc\xB0\xB5\xFB\x99`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x05\xA0\x82\x82a\x11\xF4V[\x7F\xF0\xC5~\x16\x84\r\xF0@\xF1P\x88\xDC/\x81\xFE9\x1C9#\xBE\xC7>#\xA9f.\xFC\x9C\"\x9Cj\0\x80T`\x01`@\x1B\x81\x04`\xFF\x16\x15\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16_\x81\x15\x80\x15a\n\x04WP\x82[\x90P_\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x01\x14\x80\x15a\n WP0;\x15[\x90P\x81\x15\x80\x15a\n.WP\x80\x15[\x15a\nLW`@Qc\xF9.\xE8\xA9`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x84Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x16`\x01\x17\x85U\x83\x15a\nvW\x84T`\xFF`@\x1B\x19\x16`\x01`@\x1B\x17\x85U[`\x01`\x01`\xA0\x1B\x03\x89\x16a\n\x9DW`@Qc>\xF3\x9B\x81`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x87\x16a\n\xC4W`@Qc\xFC\xAB\xDD\xBD`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x86\x16a\n\xEBW`@Qc\xA7I\x95\xAB`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x88\x16a\x0B\x12W`@Qck\t:\xAD`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x88`\x01`\x01`\xA0\x1B\x03\x16c\x18\x16\r\xDD`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0BOW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0Bs\x91\x90a\x18\xF5V[\x90P_\x81\x11a\x0B\x95W`@QcH\xB5\0#`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`d_a'\x10a\x0B\xA5\x83\x85a\x19\x0CV[a\x0B\xAF\x91\x90a\x19#V[\x90P_\x81\x11a\x0B\xD1W`@Qc\x9B\x11\xA8\xBD`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0B\xD9a\x12\x10V[a\x0B\xE1a\x12\x18V[a\x0B\xE9a\x12\x10V[a\x0B\xF1a\x12(V[a\x0B\xFB_\x8Da\x128V[P`\x07\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x8E\x16\x17\x90Ua\x0C._Q` a\x1AT_9_Q\x90_R\x8Aa\x128V[P_\x80T`\x01`\x01`\xA0\x1B\x03\x80\x8E\x16`\x01`\x01`\xA0\x1B\x03\x19\x92\x83\x16\x17\x90\x92U`\x01\x80T\x92\x8D\x16\x92\x90\x91\x16\x91\x90\x91\x17\x90U`\x03\x81\x90U`\x04\x82\x90Ua\x0Cub\x01Q\x80Ba\x19#V[`\x05UPP\x84\x15\x90Pa\x0C\xC2W\x84T`\xFF`@\x1B\x19\x16\x85U`@Q`\x01\x81R\x7F\xC7\xF5\x05\xB2\xF3q\xAE!u\xEEI\x13\xF4I\x9E\x1F&3\xA7\xB5\x93c!\xEE\xD1\xCD\xAE\xB6\x11Q\x81\xD2\x90` \x01`@Q\x80\x91\x03\x90\xA1[PPPPPPPPPV[a\x0C\xD6\x82a\x05 V[a\x0C\xDF\x81a\r\x9EV[a\x05\x9C\x83\x83a\x128V[__Q` a\x1At_9_Q\x90_Ra\r\x02\x84\x84a\x07\xE2V[\x15a\rbW_\x84\x81R` \x82\x81R`@\x80\x83 `\x01`\x01`\xA0\x1B\x03\x87\x16\x80\x85R\x92R\x80\x83 \x80T`\xFF\x19\x16\x90UQ3\x92\x87\x91\x7F\xF69\x1F\\2\xD9\xC6\x9D*G\xEAg\x0BD)t\xB595\xD1\xED\xC7\xFDd\xEB!\xE0G\xA89\x17\x1B\x91\x90\xA4`\x01\x91PPa\x05\x1AV[_\x91PPa\x05\x1AV[`\x01`\x01`\xA0\x1B\x03\x81\x163\x14a\r\x94W`@Qc3K\xD9\x19`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x05\x9E\x82\x82a\x0C\xE9V[a\x05\xEB\x813a\x12\xD0V[a\r\xB0a\x13\tV[_Q` a\x1A\x94_9_Q\x90_R\x80T`\xFF\x19\x16\x81U\x7F]\xB9\xEE\nI[\xF2\xE6\xFF\x9C\x91\xA7\x83L\x1B\xA4\xFD\xD2D\xA5\xE8\xAANS{\xD3\x8A\xEA\xE4\xB0s\xAA3[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01`@Q\x80\x91\x03\x90\xA1PV[0`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14\x80a\x0E\x8DWP\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16a\x0E\x81_Q` a\x1A4_9_Q\x90_RT`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x14\x15[\x15a\x0E\xABW`@Qcp>F\xDD`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[V[_a\x05\xA0\x81a\r\x9EV[\x81`\x01`\x01`\xA0\x1B\x03\x16cR\xD1\x90-`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x92PPP\x80\x15a\x0F\x11WP`@\x80Q`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01\x90\x92Ra\x0F\x0E\x91\x81\x01\x90a\x18\xF5V[`\x01[a\x0F>W`@QcL\x9C\x8C\xE3`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x83\x16`\x04\x82\x01R`$\x01[`@Q\x80\x91\x03\x90\xFD[_Q` a\x1A4_9_Q\x90_R\x81\x14a\x0FnW`@Qc*\x87Ri`\xE2\x1B\x81R`\x04\x81\x01\x82\x90R`$\x01a\x0F5V[a\x05\x9E\x83\x83a\x138V[0`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x0E\xABW`@Qcp>F\xDD`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_Q` a\x1A\x94_9_Q\x90_RT`\xFF\x16\x15a\x0E\xABW`@Qc\xD9<\x06e`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_Q` a\x1A\xB4_9_Q\x90_R\x80T`\x01\x19\x01a\x10\"W`@Qc>\xE5\xAE\xB5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x90UV[_a\x106b\x01Q\x80Ba\x19#V[\x90P`\x05T\x81\x14a\x10KW`\x05\x81\x90U_`\x06U[\x81`\x06_\x82\x82Ta\x10\\\x91\x90a\x18\xE2V[\x90\x91UPP`\x03T`\x06T\x11\x15a\x05\xA0W`@Qc\x06R\xF4\xC5`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x80\x80a\x10\x95\x84\x86\x01\x86a\x19\x83V[\x91P\x91P_a\x10\xA53\x88\x85a\x13\x8DV[\x82Q` \x80\x85\x01Q`@\x80\x87\x01Q``\x80\x89\x01Q`\x80\x80\x8B\x01Q`\xA0\x80\x8D\x01Q`\xC0\x80\x8F\x01Q\x89Q\x9B\x8C\x01\x8E\x90R\x98\x8B\x01\x9B\x90\x9BR\x94\x89\x01\x97\x90\x97R\x90\x87\x01\x93\x90\x93R\x93\x85\x01\x93\x90\x93R\x93\x83\x01\x93\x90\x93R`\xE0\x82\x01Ra\x01\0\x81\x01\x91\x90\x91R\x90\x91P_\x90a\x01 \x01`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x82\x82R\x80Q` \x91\x82\x01 `\x01Tc\x130e\x1D`\xE3\x1B\x85R\x92Q\x90\x94P`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x92c\x99\x83(\xE8\x92`\x04\x80\x83\x01\x93\x92\x82\x90\x03\x01\x81\x86Z\xFA\x15\x80\x15a\x11gW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x11\x8B\x91\x90a\x18\xF5V[\x14\x93PPPP[\x93\x92PPPV[`\x01_Q` a\x1A\xB4_9_Q\x90_RUV[a\x11\xB4a\x0F\xC1V[_Q` a\x1A\x94_9_Q\x90_R\x80T`\xFF\x19\x16`\x01\x17\x81U\x7Fb\xE7\x8C\xEA\x01\xBE\xE3 \xCDNB\x02p\xB5\xEAt\0\r\x11\xB0\xC9\xF7GT\xEB\xDB\xFCTK\x05\xA2X3a\r\xE9V[a\x11\xFD\x82a\x05 V[a\x12\x06\x81a\r\x9EV[a\x05\x9C\x83\x83a\x0C\xE9V[a\x0E\xABa\x14\x02V[a\x12 a\x14\x02V[a\x0E\xABa\x14KV[a\x120a\x14\x02V[a\x0E\xABa\x14kV[__Q` a\x1At_9_Q\x90_Ra\x12Q\x84\x84a\x07\xE2V[a\rbW_\x84\x81R` \x82\x81R`@\x80\x83 `\x01`\x01`\xA0\x1B\x03\x87\x16\x84R\x90\x91R\x90 \x80T`\xFF\x19\x16`\x01\x17\x90Ua\x12\x863\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16\x85\x7F/\x87\x88\x11~~\xFF\x1D\x82\xE9&\xECyI\x01\xD1|x\x02JP'\t@0E@\xA73eo\r`@Q`@Q\x80\x91\x03\x90\xA4`\x01\x91PPa\x05\x1AV[a\x12\xDA\x82\x82a\x07\xE2V[a\x05\xA0W`@Qc\xE2Q}?`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x82\x16`\x04\x82\x01R`$\x81\x01\x83\x90R`D\x01a\x0F5V[_Q` a\x1A\x94_9_Q\x90_RT`\xFF\x16a\x0E\xABW`@Qc\x8D\xFC +`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x13A\x82a\x14sV[`@Q`\x01`\x01`\xA0\x1B\x03\x83\x16\x90\x7F\xBC|\xD7Z \xEE'\xFD\x9A\xDE\xBA\xB3 A\xF7U!M\xBCk\xFF\xA9\x0C\xC0\"[9\xDA.\\-;\x90_\x90\xA2\x80Q\x15a\x13\x85Wa\x05\x9E\x82\x82a\x14\xD6V[a\x05\xA0a\x15HV[__a\x13\x98\x84a\x15gV[\x90P_[`\xA0\x81\x10\x15a\x13\xF9W_\x84\x82`\xA0\x81\x10a\x13\xB8Wa\x13\xB8a\x1A\tV[` \x02\x01Q\x90P`\x01\x87\x83\x1C\x16\x80\x15a\x13\xDFW_\x82\x81R` \x85\x90R`@\x90 \x93Pa\x13\xEFV[_\x84\x81R` \x83\x90R`@\x90 \x93P[PP`\x01\x01a\x13\x9CV[P\x94\x93PPPPV[\x7F\xF0\xC5~\x16\x84\r\xF0@\xF1P\x88\xDC/\x81\xFE9\x1C9#\xBE\xC7>#\xA9f.\xFC\x9C\"\x9Cj\0T`\x01`@\x1B\x90\x04`\xFF\x16a\x0E\xABW`@Qc\x1A\xFC\xD7\x9F`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x14Sa\x14\x02V[_Q` a\x1A\x94_9_Q\x90_R\x80T`\xFF\x19\x16\x90UV[a\x11\x99a\x14\x02V[\x80`\x01`\x01`\xA0\x1B\x03\x16;_\x03a\x14\xA8W`@QcL\x9C\x8C\xE3`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x82\x16`\x04\x82\x01R`$\x01a\x0F5V[_Q` a\x1A4_9_Q\x90_R\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x90\x91\x17\x90UV[``__\x84`\x01`\x01`\xA0\x1B\x03\x16\x84`@Qa\x14\xF2\x91\x90a\x1A\x1DV[_`@Q\x80\x83\x03\x81\x85Z\xF4\x91PP=\x80_\x81\x14a\x15*W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=_` \x84\x01>a\x15/V[``\x91P[P\x91P\x91Pa\x15?\x85\x83\x83a\x15\xB3V[\x95\x94PPPPPV[4\x15a\x0E\xABW`@Qc\xB3\x98\x97\x9F`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[__\x82`@Q` \x01a\x15|\x91\x81R` \x01\x90V[`@\x80Q\x80\x83\x03`\x1F\x19\x01\x81R\x82\x82R\x80Q` \x91\x82\x01 \x81\x84\x01R\x81Q\x80\x84\x03\x82\x01\x81R\x92\x82\x01\x90\x91R\x81Q\x91\x01 \x93\x92PPPV[``\x82a\x15\xC8Wa\x15\xC3\x82a\x16\x0FV[a\x11\x92V[\x81Q\x15\x80\x15a\x15\xDFWP`\x01`\x01`\xA0\x1B\x03\x84\x16;\x15[\x15a\x16\x08W`@Qc\x99\x96\xB3\x15`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x85\x16`\x04\x82\x01R`$\x01a\x0F5V[P\x80a\x11\x92V[\x80Q\x15a\x16\x1FW\x80Q\x80\x82` \x01\xFD[`@Qc\n\x12\xF5!`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_` \x82\x84\x03\x12\x15a\x16HW__\xFD[\x815`\x01`\x01`\xE0\x1B\x03\x19\x81\x16\x81\x14a\x11\x92W__\xFD[_` \x82\x84\x03\x12\x15a\x16oW__\xFD[P5\x91\x90PV[\x805`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x16\x8CW__\xFD[\x91\x90PV[__`@\x83\x85\x03\x12\x15a\x16\xA2W__\xFD[\x825\x91Pa\x16\xB2` \x84\x01a\x16vV[\x90P\x92P\x92\x90PV[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[`@Q`\x1F\x82\x01`\x1F\x19\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x16\xF8Wa\x16\xF8a\x16\xBBV[`@R\x91\x90PV[__`@\x83\x85\x03\x12\x15a\x17\x11W__\xFD[a\x17\x1A\x83a\x16vV[\x91P` \x83\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x175W__\xFD[\x83\x01`\x1F\x81\x01\x85\x13a\x17EW__\xFD[\x805g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x17_Wa\x17_a\x16\xBBV[a\x17r`\x1F\x82\x01`\x1F\x19\x16` \x01a\x16\xCFV[\x81\x81R\x86` \x83\x85\x01\x01\x11\x15a\x17\x86W__\xFD[\x81` \x84\x01` \x83\x017_` \x83\x83\x01\x01R\x80\x93PPPP\x92P\x92\x90PV[___`@\x84\x86\x03\x12\x15a\x17\xB7W__\xFD[\x835\x92P` \x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x17\xD4W__\xFD[\x84\x01`\x1F\x81\x01\x86\x13a\x17\xE4W__\xFD[\x805g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x17\xFAW__\xFD[\x86` \x82\x84\x01\x01\x11\x15a\x18\x0BW__\xFD[\x93\x96` \x91\x90\x91\x01\x95P\x92\x93PPPV[` \x81R_\x82Q\x80` \x84\x01R\x80` \x85\x01`@\x85\x01^_`@\x82\x85\x01\x01R`@`\x1F\x19`\x1F\x83\x01\x16\x84\x01\x01\x91PP\x92\x91PPV[_` \x82\x84\x03\x12\x15a\x18aW__\xFD[a\x11\x92\x82a\x16vV[____`\x80\x85\x87\x03\x12\x15a\x18}W__\xFD[a\x18\x86\x85a\x16vV[\x93Pa\x18\x94` \x86\x01a\x16vV[\x92Pa\x18\xA2`@\x86\x01a\x16vV[\x91Pa\x18\xB0``\x86\x01a\x16vV[\x90P\x92\x95\x91\x94P\x92PV[cNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[\x81\x81\x03\x81\x81\x11\x15a\x05\x1AWa\x05\x1Aa\x18\xBBV[\x80\x82\x01\x80\x82\x11\x15a\x05\x1AWa\x05\x1Aa\x18\xBBV[_` \x82\x84\x03\x12\x15a\x19\x05W__\xFD[PQ\x91\x90PV[\x80\x82\x02\x81\x15\x82\x82\x04\x84\x14\x17a\x05\x1AWa\x05\x1Aa\x18\xBBV[_\x82a\x19=WcNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[P\x04\x90V[_a\x19M`\xE0a\x16\xCFV[\x90P\x80`\xE0\x83\x01\x84\x81\x11\x15a\x19`W__\xFD[\x83[\x81\x81\x10\x15a\x19zW\x805\x83R` \x92\x83\x01\x92\x01a\x19bV[PPP\x92\x91PPV[__a\x14\xE0\x83\x85\x03\x12\x15a\x19\x95W__\xFD[_\x84`\x1F\x85\x01\x12a\x19\xA4W__\xFD[P_\x80a\x14\0a\x19\xB3\x81a\x16\xCFV[\x92P\x82\x91P\x85\x01\x86\x81\x11\x15a\x19\xC6W__\xFD[\x85[\x81\x81\x10\x15a\x19\xE0W\x805\x84R` \x93\x84\x01\x93\x01a\x19\xC8V[P\x81\x94P\x86a\x14\x1F\x87\x01\x12a\x19\xF3W__\xFD[a\x19\xFD\x87\x82a\x19BV[\x93PPPP\x92P\x92\x90PV[cNH{q`\xE0\x1B_R`2`\x04R`$_\xFD[_\x82Q\x80` \x85\x01\x84^_\x92\x01\x91\x82RP\x91\x90PV\xFE6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBCe\xD7\xA2\x8E2e\xB3zdt\x92\x9F3e!\xB32\xC1h\x1B\x93?l\xB9\xF37fsD\r\x86*\x02\xDD{\xC7\xDE\xC4\xDC\xEE\xDD\xA7u\xE5\x8D\xD5A\xE0\x8A\x11llS\x81\\\x0B\xD0(\x19/{bh\0\xCD^\xD1\\n\x18~w\xE9\xAE\xE8\x81\x84\xC2\x1FO!\x82\xABX'\xCB;~\x07\xFB\xED\xCDc\xF03\0\x9Bw\x9B\x17B-\r\xF9\"#\x01\x8B2\xB4\xD1\xFAF\xE0qr=h\x17\xE2Hm\0;\xEC\xC5_\0\xA1dsolcC\0\x08\x1C\0\n",
862    );
863    #[derive(serde::Serialize, serde::Deserialize)]
864    #[derive(Default, Debug, PartialEq, Eq, Hash)]
865    /**Custom error with signature `AccessControlBadConfirmation()` and selector `0x6697b232`.
866```solidity
867error AccessControlBadConfirmation();
868```*/
869    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
870    #[derive(Clone)]
871    pub struct AccessControlBadConfirmation;
872    #[allow(
873        non_camel_case_types,
874        non_snake_case,
875        clippy::pub_underscore_fields,
876        clippy::style
877    )]
878    const _: () = {
879        use alloy::sol_types as alloy_sol_types;
880        #[doc(hidden)]
881        type UnderlyingSolTuple<'a> = ();
882        #[doc(hidden)]
883        type UnderlyingRustTuple<'a> = ();
884        #[cfg(test)]
885        #[allow(dead_code, unreachable_patterns)]
886        fn _type_assertion(
887            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
888        ) {
889            match _t {
890                alloy_sol_types::private::AssertTypeEq::<
891                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
892                >(_) => {}
893            }
894        }
895        #[automatically_derived]
896        #[doc(hidden)]
897        impl ::core::convert::From<AccessControlBadConfirmation>
898        for UnderlyingRustTuple<'_> {
899            fn from(value: AccessControlBadConfirmation) -> Self {
900                ()
901            }
902        }
903        #[automatically_derived]
904        #[doc(hidden)]
905        impl ::core::convert::From<UnderlyingRustTuple<'_>>
906        for AccessControlBadConfirmation {
907            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
908                Self
909            }
910        }
911        #[automatically_derived]
912        impl alloy_sol_types::SolError for AccessControlBadConfirmation {
913            type Parameters<'a> = UnderlyingSolTuple<'a>;
914            type Token<'a> = <Self::Parameters<
915                'a,
916            > as alloy_sol_types::SolType>::Token<'a>;
917            const SIGNATURE: &'static str = "AccessControlBadConfirmation()";
918            const SELECTOR: [u8; 4] = [102u8, 151u8, 178u8, 50u8];
919            #[inline]
920            fn new<'a>(
921                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
922            ) -> Self {
923                tuple.into()
924            }
925            #[inline]
926            fn tokenize(&self) -> Self::Token<'_> {
927                ()
928            }
929            #[inline]
930            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
931                <Self::Parameters<
932                    '_,
933                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
934                    .map(Self::new)
935            }
936        }
937    };
938    #[derive(serde::Serialize, serde::Deserialize)]
939    #[derive(Default, Debug, PartialEq, Eq, Hash)]
940    /**Custom error with signature `AccessControlUnauthorizedAccount(address,bytes32)` and selector `0xe2517d3f`.
941```solidity
942error AccessControlUnauthorizedAccount(address account, bytes32 neededRole);
943```*/
944    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
945    #[derive(Clone)]
946    pub struct AccessControlUnauthorizedAccount {
947        #[allow(missing_docs)]
948        pub account: alloy::sol_types::private::Address,
949        #[allow(missing_docs)]
950        pub neededRole: alloy::sol_types::private::FixedBytes<32>,
951    }
952    #[allow(
953        non_camel_case_types,
954        non_snake_case,
955        clippy::pub_underscore_fields,
956        clippy::style
957    )]
958    const _: () = {
959        use alloy::sol_types as alloy_sol_types;
960        #[doc(hidden)]
961        type UnderlyingSolTuple<'a> = (
962            alloy::sol_types::sol_data::Address,
963            alloy::sol_types::sol_data::FixedBytes<32>,
964        );
965        #[doc(hidden)]
966        type UnderlyingRustTuple<'a> = (
967            alloy::sol_types::private::Address,
968            alloy::sol_types::private::FixedBytes<32>,
969        );
970        #[cfg(test)]
971        #[allow(dead_code, unreachable_patterns)]
972        fn _type_assertion(
973            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
974        ) {
975            match _t {
976                alloy_sol_types::private::AssertTypeEq::<
977                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
978                >(_) => {}
979            }
980        }
981        #[automatically_derived]
982        #[doc(hidden)]
983        impl ::core::convert::From<AccessControlUnauthorizedAccount>
984        for UnderlyingRustTuple<'_> {
985            fn from(value: AccessControlUnauthorizedAccount) -> Self {
986                (value.account, value.neededRole)
987            }
988        }
989        #[automatically_derived]
990        #[doc(hidden)]
991        impl ::core::convert::From<UnderlyingRustTuple<'_>>
992        for AccessControlUnauthorizedAccount {
993            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
994                Self {
995                    account: tuple.0,
996                    neededRole: tuple.1,
997                }
998            }
999        }
1000        #[automatically_derived]
1001        impl alloy_sol_types::SolError for AccessControlUnauthorizedAccount {
1002            type Parameters<'a> = UnderlyingSolTuple<'a>;
1003            type Token<'a> = <Self::Parameters<
1004                'a,
1005            > as alloy_sol_types::SolType>::Token<'a>;
1006            const SIGNATURE: &'static str = "AccessControlUnauthorizedAccount(address,bytes32)";
1007            const SELECTOR: [u8; 4] = [226u8, 81u8, 125u8, 63u8];
1008            #[inline]
1009            fn new<'a>(
1010                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1011            ) -> Self {
1012                tuple.into()
1013            }
1014            #[inline]
1015            fn tokenize(&self) -> Self::Token<'_> {
1016                (
1017                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
1018                        &self.account,
1019                    ),
1020                    <alloy::sol_types::sol_data::FixedBytes<
1021                        32,
1022                    > as alloy_sol_types::SolType>::tokenize(&self.neededRole),
1023                )
1024            }
1025            #[inline]
1026            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1027                <Self::Parameters<
1028                    '_,
1029                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
1030                    .map(Self::new)
1031            }
1032        }
1033    };
1034    #[derive(serde::Serialize, serde::Deserialize)]
1035    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1036    /**Custom error with signature `AddressEmptyCode(address)` and selector `0x9996b315`.
1037```solidity
1038error AddressEmptyCode(address target);
1039```*/
1040    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1041    #[derive(Clone)]
1042    pub struct AddressEmptyCode {
1043        #[allow(missing_docs)]
1044        pub target: alloy::sol_types::private::Address,
1045    }
1046    #[allow(
1047        non_camel_case_types,
1048        non_snake_case,
1049        clippy::pub_underscore_fields,
1050        clippy::style
1051    )]
1052    const _: () = {
1053        use alloy::sol_types as alloy_sol_types;
1054        #[doc(hidden)]
1055        type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
1056        #[doc(hidden)]
1057        type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
1058        #[cfg(test)]
1059        #[allow(dead_code, unreachable_patterns)]
1060        fn _type_assertion(
1061            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1062        ) {
1063            match _t {
1064                alloy_sol_types::private::AssertTypeEq::<
1065                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1066                >(_) => {}
1067            }
1068        }
1069        #[automatically_derived]
1070        #[doc(hidden)]
1071        impl ::core::convert::From<AddressEmptyCode> for UnderlyingRustTuple<'_> {
1072            fn from(value: AddressEmptyCode) -> Self {
1073                (value.target,)
1074            }
1075        }
1076        #[automatically_derived]
1077        #[doc(hidden)]
1078        impl ::core::convert::From<UnderlyingRustTuple<'_>> for AddressEmptyCode {
1079            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1080                Self { target: tuple.0 }
1081            }
1082        }
1083        #[automatically_derived]
1084        impl alloy_sol_types::SolError for AddressEmptyCode {
1085            type Parameters<'a> = UnderlyingSolTuple<'a>;
1086            type Token<'a> = <Self::Parameters<
1087                'a,
1088            > as alloy_sol_types::SolType>::Token<'a>;
1089            const SIGNATURE: &'static str = "AddressEmptyCode(address)";
1090            const SELECTOR: [u8; 4] = [153u8, 150u8, 179u8, 21u8];
1091            #[inline]
1092            fn new<'a>(
1093                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1094            ) -> Self {
1095                tuple.into()
1096            }
1097            #[inline]
1098            fn tokenize(&self) -> Self::Token<'_> {
1099                (
1100                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
1101                        &self.target,
1102                    ),
1103                )
1104            }
1105            #[inline]
1106            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1107                <Self::Parameters<
1108                    '_,
1109                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
1110                    .map(Self::new)
1111            }
1112        }
1113    };
1114    #[derive(serde::Serialize, serde::Deserialize)]
1115    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1116    /**Custom error with signature `AlreadyClaimed()` and selector `0x646cf558`.
1117```solidity
1118error AlreadyClaimed();
1119```*/
1120    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1121    #[derive(Clone)]
1122    pub struct AlreadyClaimed;
1123    #[allow(
1124        non_camel_case_types,
1125        non_snake_case,
1126        clippy::pub_underscore_fields,
1127        clippy::style
1128    )]
1129    const _: () = {
1130        use alloy::sol_types as alloy_sol_types;
1131        #[doc(hidden)]
1132        type UnderlyingSolTuple<'a> = ();
1133        #[doc(hidden)]
1134        type UnderlyingRustTuple<'a> = ();
1135        #[cfg(test)]
1136        #[allow(dead_code, unreachable_patterns)]
1137        fn _type_assertion(
1138            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1139        ) {
1140            match _t {
1141                alloy_sol_types::private::AssertTypeEq::<
1142                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1143                >(_) => {}
1144            }
1145        }
1146        #[automatically_derived]
1147        #[doc(hidden)]
1148        impl ::core::convert::From<AlreadyClaimed> for UnderlyingRustTuple<'_> {
1149            fn from(value: AlreadyClaimed) -> Self {
1150                ()
1151            }
1152        }
1153        #[automatically_derived]
1154        #[doc(hidden)]
1155        impl ::core::convert::From<UnderlyingRustTuple<'_>> for AlreadyClaimed {
1156            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1157                Self
1158            }
1159        }
1160        #[automatically_derived]
1161        impl alloy_sol_types::SolError for AlreadyClaimed {
1162            type Parameters<'a> = UnderlyingSolTuple<'a>;
1163            type Token<'a> = <Self::Parameters<
1164                'a,
1165            > as alloy_sol_types::SolType>::Token<'a>;
1166            const SIGNATURE: &'static str = "AlreadyClaimed()";
1167            const SELECTOR: [u8; 4] = [100u8, 108u8, 245u8, 88u8];
1168            #[inline]
1169            fn new<'a>(
1170                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1171            ) -> Self {
1172                tuple.into()
1173            }
1174            #[inline]
1175            fn tokenize(&self) -> Self::Token<'_> {
1176                ()
1177            }
1178            #[inline]
1179            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1180                <Self::Parameters<
1181                    '_,
1182                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
1183                    .map(Self::new)
1184            }
1185        }
1186    };
1187    #[derive(serde::Serialize, serde::Deserialize)]
1188    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1189    /**Custom error with signature `DailyLimitExceeded()` and selector `0x194bd314`.
1190```solidity
1191error DailyLimitExceeded();
1192```*/
1193    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1194    #[derive(Clone)]
1195    pub struct DailyLimitExceeded;
1196    #[allow(
1197        non_camel_case_types,
1198        non_snake_case,
1199        clippy::pub_underscore_fields,
1200        clippy::style
1201    )]
1202    const _: () = {
1203        use alloy::sol_types as alloy_sol_types;
1204        #[doc(hidden)]
1205        type UnderlyingSolTuple<'a> = ();
1206        #[doc(hidden)]
1207        type UnderlyingRustTuple<'a> = ();
1208        #[cfg(test)]
1209        #[allow(dead_code, unreachable_patterns)]
1210        fn _type_assertion(
1211            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1212        ) {
1213            match _t {
1214                alloy_sol_types::private::AssertTypeEq::<
1215                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1216                >(_) => {}
1217            }
1218        }
1219        #[automatically_derived]
1220        #[doc(hidden)]
1221        impl ::core::convert::From<DailyLimitExceeded> for UnderlyingRustTuple<'_> {
1222            fn from(value: DailyLimitExceeded) -> Self {
1223                ()
1224            }
1225        }
1226        #[automatically_derived]
1227        #[doc(hidden)]
1228        impl ::core::convert::From<UnderlyingRustTuple<'_>> for DailyLimitExceeded {
1229            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1230                Self
1231            }
1232        }
1233        #[automatically_derived]
1234        impl alloy_sol_types::SolError for DailyLimitExceeded {
1235            type Parameters<'a> = UnderlyingSolTuple<'a>;
1236            type Token<'a> = <Self::Parameters<
1237                'a,
1238            > as alloy_sol_types::SolType>::Token<'a>;
1239            const SIGNATURE: &'static str = "DailyLimitExceeded()";
1240            const SELECTOR: [u8; 4] = [25u8, 75u8, 211u8, 20u8];
1241            #[inline]
1242            fn new<'a>(
1243                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1244            ) -> Self {
1245                tuple.into()
1246            }
1247            #[inline]
1248            fn tokenize(&self) -> Self::Token<'_> {
1249                ()
1250            }
1251            #[inline]
1252            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1253                <Self::Parameters<
1254                    '_,
1255                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
1256                    .map(Self::new)
1257            }
1258        }
1259    };
1260    #[derive(serde::Serialize, serde::Deserialize)]
1261    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1262    /**Custom error with signature `DailyLimitTooHigh()` and selector `0xc5d2ae53`.
1263```solidity
1264error DailyLimitTooHigh();
1265```*/
1266    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1267    #[derive(Clone)]
1268    pub struct DailyLimitTooHigh;
1269    #[allow(
1270        non_camel_case_types,
1271        non_snake_case,
1272        clippy::pub_underscore_fields,
1273        clippy::style
1274    )]
1275    const _: () = {
1276        use alloy::sol_types as alloy_sol_types;
1277        #[doc(hidden)]
1278        type UnderlyingSolTuple<'a> = ();
1279        #[doc(hidden)]
1280        type UnderlyingRustTuple<'a> = ();
1281        #[cfg(test)]
1282        #[allow(dead_code, unreachable_patterns)]
1283        fn _type_assertion(
1284            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1285        ) {
1286            match _t {
1287                alloy_sol_types::private::AssertTypeEq::<
1288                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1289                >(_) => {}
1290            }
1291        }
1292        #[automatically_derived]
1293        #[doc(hidden)]
1294        impl ::core::convert::From<DailyLimitTooHigh> for UnderlyingRustTuple<'_> {
1295            fn from(value: DailyLimitTooHigh) -> Self {
1296                ()
1297            }
1298        }
1299        #[automatically_derived]
1300        #[doc(hidden)]
1301        impl ::core::convert::From<UnderlyingRustTuple<'_>> for DailyLimitTooHigh {
1302            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1303                Self
1304            }
1305        }
1306        #[automatically_derived]
1307        impl alloy_sol_types::SolError for DailyLimitTooHigh {
1308            type Parameters<'a> = UnderlyingSolTuple<'a>;
1309            type Token<'a> = <Self::Parameters<
1310                'a,
1311            > as alloy_sol_types::SolType>::Token<'a>;
1312            const SIGNATURE: &'static str = "DailyLimitTooHigh()";
1313            const SELECTOR: [u8; 4] = [197u8, 210u8, 174u8, 83u8];
1314            #[inline]
1315            fn new<'a>(
1316                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1317            ) -> Self {
1318                tuple.into()
1319            }
1320            #[inline]
1321            fn tokenize(&self) -> Self::Token<'_> {
1322                ()
1323            }
1324            #[inline]
1325            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1326                <Self::Parameters<
1327                    '_,
1328                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
1329                    .map(Self::new)
1330            }
1331        }
1332    };
1333    #[derive(serde::Serialize, serde::Deserialize)]
1334    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1335    /**Custom error with signature `DefaultAdminCannotBeRenounced()` and selector `0x8b78631d`.
1336```solidity
1337error DefaultAdminCannotBeRenounced();
1338```*/
1339    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1340    #[derive(Clone)]
1341    pub struct DefaultAdminCannotBeRenounced;
1342    #[allow(
1343        non_camel_case_types,
1344        non_snake_case,
1345        clippy::pub_underscore_fields,
1346        clippy::style
1347    )]
1348    const _: () = {
1349        use alloy::sol_types as alloy_sol_types;
1350        #[doc(hidden)]
1351        type UnderlyingSolTuple<'a> = ();
1352        #[doc(hidden)]
1353        type UnderlyingRustTuple<'a> = ();
1354        #[cfg(test)]
1355        #[allow(dead_code, unreachable_patterns)]
1356        fn _type_assertion(
1357            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1358        ) {
1359            match _t {
1360                alloy_sol_types::private::AssertTypeEq::<
1361                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1362                >(_) => {}
1363            }
1364        }
1365        #[automatically_derived]
1366        #[doc(hidden)]
1367        impl ::core::convert::From<DefaultAdminCannotBeRenounced>
1368        for UnderlyingRustTuple<'_> {
1369            fn from(value: DefaultAdminCannotBeRenounced) -> Self {
1370                ()
1371            }
1372        }
1373        #[automatically_derived]
1374        #[doc(hidden)]
1375        impl ::core::convert::From<UnderlyingRustTuple<'_>>
1376        for DefaultAdminCannotBeRenounced {
1377            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1378                Self
1379            }
1380        }
1381        #[automatically_derived]
1382        impl alloy_sol_types::SolError for DefaultAdminCannotBeRenounced {
1383            type Parameters<'a> = UnderlyingSolTuple<'a>;
1384            type Token<'a> = <Self::Parameters<
1385                'a,
1386            > as alloy_sol_types::SolType>::Token<'a>;
1387            const SIGNATURE: &'static str = "DefaultAdminCannotBeRenounced()";
1388            const SELECTOR: [u8; 4] = [139u8, 120u8, 99u8, 29u8];
1389            #[inline]
1390            fn new<'a>(
1391                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1392            ) -> Self {
1393                tuple.into()
1394            }
1395            #[inline]
1396            fn tokenize(&self) -> Self::Token<'_> {
1397                ()
1398            }
1399            #[inline]
1400            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1401                <Self::Parameters<
1402                    '_,
1403                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
1404                    .map(Self::new)
1405            }
1406        }
1407    };
1408    #[derive(serde::Serialize, serde::Deserialize)]
1409    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1410    /**Custom error with signature `DefaultAdminCannotBeRevoked()` and selector `0xb0b5fb99`.
1411```solidity
1412error DefaultAdminCannotBeRevoked();
1413```*/
1414    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1415    #[derive(Clone)]
1416    pub struct DefaultAdminCannotBeRevoked;
1417    #[allow(
1418        non_camel_case_types,
1419        non_snake_case,
1420        clippy::pub_underscore_fields,
1421        clippy::style
1422    )]
1423    const _: () = {
1424        use alloy::sol_types as alloy_sol_types;
1425        #[doc(hidden)]
1426        type UnderlyingSolTuple<'a> = ();
1427        #[doc(hidden)]
1428        type UnderlyingRustTuple<'a> = ();
1429        #[cfg(test)]
1430        #[allow(dead_code, unreachable_patterns)]
1431        fn _type_assertion(
1432            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1433        ) {
1434            match _t {
1435                alloy_sol_types::private::AssertTypeEq::<
1436                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1437                >(_) => {}
1438            }
1439        }
1440        #[automatically_derived]
1441        #[doc(hidden)]
1442        impl ::core::convert::From<DefaultAdminCannotBeRevoked>
1443        for UnderlyingRustTuple<'_> {
1444            fn from(value: DefaultAdminCannotBeRevoked) -> Self {
1445                ()
1446            }
1447        }
1448        #[automatically_derived]
1449        #[doc(hidden)]
1450        impl ::core::convert::From<UnderlyingRustTuple<'_>>
1451        for DefaultAdminCannotBeRevoked {
1452            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1453                Self
1454            }
1455        }
1456        #[automatically_derived]
1457        impl alloy_sol_types::SolError for DefaultAdminCannotBeRevoked {
1458            type Parameters<'a> = UnderlyingSolTuple<'a>;
1459            type Token<'a> = <Self::Parameters<
1460                'a,
1461            > as alloy_sol_types::SolType>::Token<'a>;
1462            const SIGNATURE: &'static str = "DefaultAdminCannotBeRevoked()";
1463            const SELECTOR: [u8; 4] = [176u8, 181u8, 251u8, 153u8];
1464            #[inline]
1465            fn new<'a>(
1466                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1467            ) -> Self {
1468                tuple.into()
1469            }
1470            #[inline]
1471            fn tokenize(&self) -> Self::Token<'_> {
1472                ()
1473            }
1474            #[inline]
1475            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1476                <Self::Parameters<
1477                    '_,
1478                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
1479                    .map(Self::new)
1480            }
1481        }
1482    };
1483    #[derive(serde::Serialize, serde::Deserialize)]
1484    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1485    /**Custom error with signature `ERC1967InvalidImplementation(address)` and selector `0x4c9c8ce3`.
1486```solidity
1487error ERC1967InvalidImplementation(address implementation);
1488```*/
1489    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1490    #[derive(Clone)]
1491    pub struct ERC1967InvalidImplementation {
1492        #[allow(missing_docs)]
1493        pub implementation: alloy::sol_types::private::Address,
1494    }
1495    #[allow(
1496        non_camel_case_types,
1497        non_snake_case,
1498        clippy::pub_underscore_fields,
1499        clippy::style
1500    )]
1501    const _: () = {
1502        use alloy::sol_types as alloy_sol_types;
1503        #[doc(hidden)]
1504        type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
1505        #[doc(hidden)]
1506        type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
1507        #[cfg(test)]
1508        #[allow(dead_code, unreachable_patterns)]
1509        fn _type_assertion(
1510            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1511        ) {
1512            match _t {
1513                alloy_sol_types::private::AssertTypeEq::<
1514                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1515                >(_) => {}
1516            }
1517        }
1518        #[automatically_derived]
1519        #[doc(hidden)]
1520        impl ::core::convert::From<ERC1967InvalidImplementation>
1521        for UnderlyingRustTuple<'_> {
1522            fn from(value: ERC1967InvalidImplementation) -> Self {
1523                (value.implementation,)
1524            }
1525        }
1526        #[automatically_derived]
1527        #[doc(hidden)]
1528        impl ::core::convert::From<UnderlyingRustTuple<'_>>
1529        for ERC1967InvalidImplementation {
1530            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1531                Self { implementation: tuple.0 }
1532            }
1533        }
1534        #[automatically_derived]
1535        impl alloy_sol_types::SolError for ERC1967InvalidImplementation {
1536            type Parameters<'a> = UnderlyingSolTuple<'a>;
1537            type Token<'a> = <Self::Parameters<
1538                'a,
1539            > as alloy_sol_types::SolType>::Token<'a>;
1540            const SIGNATURE: &'static str = "ERC1967InvalidImplementation(address)";
1541            const SELECTOR: [u8; 4] = [76u8, 156u8, 140u8, 227u8];
1542            #[inline]
1543            fn new<'a>(
1544                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1545            ) -> Self {
1546                tuple.into()
1547            }
1548            #[inline]
1549            fn tokenize(&self) -> Self::Token<'_> {
1550                (
1551                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
1552                        &self.implementation,
1553                    ),
1554                )
1555            }
1556            #[inline]
1557            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1558                <Self::Parameters<
1559                    '_,
1560                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
1561                    .map(Self::new)
1562            }
1563        }
1564    };
1565    #[derive(serde::Serialize, serde::Deserialize)]
1566    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1567    /**Custom error with signature `ERC1967NonPayable()` and selector `0xb398979f`.
1568```solidity
1569error ERC1967NonPayable();
1570```*/
1571    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1572    #[derive(Clone)]
1573    pub struct ERC1967NonPayable;
1574    #[allow(
1575        non_camel_case_types,
1576        non_snake_case,
1577        clippy::pub_underscore_fields,
1578        clippy::style
1579    )]
1580    const _: () = {
1581        use alloy::sol_types as alloy_sol_types;
1582        #[doc(hidden)]
1583        type UnderlyingSolTuple<'a> = ();
1584        #[doc(hidden)]
1585        type UnderlyingRustTuple<'a> = ();
1586        #[cfg(test)]
1587        #[allow(dead_code, unreachable_patterns)]
1588        fn _type_assertion(
1589            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1590        ) {
1591            match _t {
1592                alloy_sol_types::private::AssertTypeEq::<
1593                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1594                >(_) => {}
1595            }
1596        }
1597        #[automatically_derived]
1598        #[doc(hidden)]
1599        impl ::core::convert::From<ERC1967NonPayable> for UnderlyingRustTuple<'_> {
1600            fn from(value: ERC1967NonPayable) -> Self {
1601                ()
1602            }
1603        }
1604        #[automatically_derived]
1605        #[doc(hidden)]
1606        impl ::core::convert::From<UnderlyingRustTuple<'_>> for ERC1967NonPayable {
1607            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1608                Self
1609            }
1610        }
1611        #[automatically_derived]
1612        impl alloy_sol_types::SolError for ERC1967NonPayable {
1613            type Parameters<'a> = UnderlyingSolTuple<'a>;
1614            type Token<'a> = <Self::Parameters<
1615                'a,
1616            > as alloy_sol_types::SolType>::Token<'a>;
1617            const SIGNATURE: &'static str = "ERC1967NonPayable()";
1618            const SELECTOR: [u8; 4] = [179u8, 152u8, 151u8, 159u8];
1619            #[inline]
1620            fn new<'a>(
1621                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1622            ) -> Self {
1623                tuple.into()
1624            }
1625            #[inline]
1626            fn tokenize(&self) -> Self::Token<'_> {
1627                ()
1628            }
1629            #[inline]
1630            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1631                <Self::Parameters<
1632                    '_,
1633                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
1634                    .map(Self::new)
1635            }
1636        }
1637    };
1638    #[derive(serde::Serialize, serde::Deserialize)]
1639    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1640    /**Custom error with signature `EnforcedPause()` and selector `0xd93c0665`.
1641```solidity
1642error EnforcedPause();
1643```*/
1644    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1645    #[derive(Clone)]
1646    pub struct EnforcedPause;
1647    #[allow(
1648        non_camel_case_types,
1649        non_snake_case,
1650        clippy::pub_underscore_fields,
1651        clippy::style
1652    )]
1653    const _: () = {
1654        use alloy::sol_types as alloy_sol_types;
1655        #[doc(hidden)]
1656        type UnderlyingSolTuple<'a> = ();
1657        #[doc(hidden)]
1658        type UnderlyingRustTuple<'a> = ();
1659        #[cfg(test)]
1660        #[allow(dead_code, unreachable_patterns)]
1661        fn _type_assertion(
1662            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1663        ) {
1664            match _t {
1665                alloy_sol_types::private::AssertTypeEq::<
1666                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1667                >(_) => {}
1668            }
1669        }
1670        #[automatically_derived]
1671        #[doc(hidden)]
1672        impl ::core::convert::From<EnforcedPause> for UnderlyingRustTuple<'_> {
1673            fn from(value: EnforcedPause) -> Self {
1674                ()
1675            }
1676        }
1677        #[automatically_derived]
1678        #[doc(hidden)]
1679        impl ::core::convert::From<UnderlyingRustTuple<'_>> for EnforcedPause {
1680            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1681                Self
1682            }
1683        }
1684        #[automatically_derived]
1685        impl alloy_sol_types::SolError for EnforcedPause {
1686            type Parameters<'a> = UnderlyingSolTuple<'a>;
1687            type Token<'a> = <Self::Parameters<
1688                'a,
1689            > as alloy_sol_types::SolType>::Token<'a>;
1690            const SIGNATURE: &'static str = "EnforcedPause()";
1691            const SELECTOR: [u8; 4] = [217u8, 60u8, 6u8, 101u8];
1692            #[inline]
1693            fn new<'a>(
1694                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1695            ) -> Self {
1696                tuple.into()
1697            }
1698            #[inline]
1699            fn tokenize(&self) -> Self::Token<'_> {
1700                ()
1701            }
1702            #[inline]
1703            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1704                <Self::Parameters<
1705                    '_,
1706                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
1707                    .map(Self::new)
1708            }
1709        }
1710    };
1711    #[derive(serde::Serialize, serde::Deserialize)]
1712    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1713    /**Custom error with signature `ExpectedPause()` and selector `0x8dfc202b`.
1714```solidity
1715error ExpectedPause();
1716```*/
1717    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1718    #[derive(Clone)]
1719    pub struct ExpectedPause;
1720    #[allow(
1721        non_camel_case_types,
1722        non_snake_case,
1723        clippy::pub_underscore_fields,
1724        clippy::style
1725    )]
1726    const _: () = {
1727        use alloy::sol_types as alloy_sol_types;
1728        #[doc(hidden)]
1729        type UnderlyingSolTuple<'a> = ();
1730        #[doc(hidden)]
1731        type UnderlyingRustTuple<'a> = ();
1732        #[cfg(test)]
1733        #[allow(dead_code, unreachable_patterns)]
1734        fn _type_assertion(
1735            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1736        ) {
1737            match _t {
1738                alloy_sol_types::private::AssertTypeEq::<
1739                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1740                >(_) => {}
1741            }
1742        }
1743        #[automatically_derived]
1744        #[doc(hidden)]
1745        impl ::core::convert::From<ExpectedPause> for UnderlyingRustTuple<'_> {
1746            fn from(value: ExpectedPause) -> Self {
1747                ()
1748            }
1749        }
1750        #[automatically_derived]
1751        #[doc(hidden)]
1752        impl ::core::convert::From<UnderlyingRustTuple<'_>> for ExpectedPause {
1753            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1754                Self
1755            }
1756        }
1757        #[automatically_derived]
1758        impl alloy_sol_types::SolError for ExpectedPause {
1759            type Parameters<'a> = UnderlyingSolTuple<'a>;
1760            type Token<'a> = <Self::Parameters<
1761                'a,
1762            > as alloy_sol_types::SolType>::Token<'a>;
1763            const SIGNATURE: &'static str = "ExpectedPause()";
1764            const SELECTOR: [u8; 4] = [141u8, 252u8, 32u8, 43u8];
1765            #[inline]
1766            fn new<'a>(
1767                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1768            ) -> Self {
1769                tuple.into()
1770            }
1771            #[inline]
1772            fn tokenize(&self) -> Self::Token<'_> {
1773                ()
1774            }
1775            #[inline]
1776            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1777                <Self::Parameters<
1778                    '_,
1779                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
1780                    .map(Self::new)
1781            }
1782        }
1783    };
1784    #[derive(serde::Serialize, serde::Deserialize)]
1785    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1786    /**Custom error with signature `FailedInnerCall()` and selector `0x1425ea42`.
1787```solidity
1788error FailedInnerCall();
1789```*/
1790    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1791    #[derive(Clone)]
1792    pub struct FailedInnerCall;
1793    #[allow(
1794        non_camel_case_types,
1795        non_snake_case,
1796        clippy::pub_underscore_fields,
1797        clippy::style
1798    )]
1799    const _: () = {
1800        use alloy::sol_types as alloy_sol_types;
1801        #[doc(hidden)]
1802        type UnderlyingSolTuple<'a> = ();
1803        #[doc(hidden)]
1804        type UnderlyingRustTuple<'a> = ();
1805        #[cfg(test)]
1806        #[allow(dead_code, unreachable_patterns)]
1807        fn _type_assertion(
1808            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1809        ) {
1810            match _t {
1811                alloy_sol_types::private::AssertTypeEq::<
1812                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1813                >(_) => {}
1814            }
1815        }
1816        #[automatically_derived]
1817        #[doc(hidden)]
1818        impl ::core::convert::From<FailedInnerCall> for UnderlyingRustTuple<'_> {
1819            fn from(value: FailedInnerCall) -> Self {
1820                ()
1821            }
1822        }
1823        #[automatically_derived]
1824        #[doc(hidden)]
1825        impl ::core::convert::From<UnderlyingRustTuple<'_>> for FailedInnerCall {
1826            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1827                Self
1828            }
1829        }
1830        #[automatically_derived]
1831        impl alloy_sol_types::SolError for FailedInnerCall {
1832            type Parameters<'a> = UnderlyingSolTuple<'a>;
1833            type Token<'a> = <Self::Parameters<
1834                'a,
1835            > as alloy_sol_types::SolType>::Token<'a>;
1836            const SIGNATURE: &'static str = "FailedInnerCall()";
1837            const SELECTOR: [u8; 4] = [20u8, 37u8, 234u8, 66u8];
1838            #[inline]
1839            fn new<'a>(
1840                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1841            ) -> Self {
1842                tuple.into()
1843            }
1844            #[inline]
1845            fn tokenize(&self) -> Self::Token<'_> {
1846                ()
1847            }
1848            #[inline]
1849            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1850                <Self::Parameters<
1851                    '_,
1852                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
1853                    .map(Self::new)
1854            }
1855        }
1856    };
1857    #[derive(serde::Serialize, serde::Deserialize)]
1858    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1859    /**Custom error with signature `InvalidAuthRoot()` and selector `0x328b8878`.
1860```solidity
1861error InvalidAuthRoot();
1862```*/
1863    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1864    #[derive(Clone)]
1865    pub struct InvalidAuthRoot;
1866    #[allow(
1867        non_camel_case_types,
1868        non_snake_case,
1869        clippy::pub_underscore_fields,
1870        clippy::style
1871    )]
1872    const _: () = {
1873        use alloy::sol_types as alloy_sol_types;
1874        #[doc(hidden)]
1875        type UnderlyingSolTuple<'a> = ();
1876        #[doc(hidden)]
1877        type UnderlyingRustTuple<'a> = ();
1878        #[cfg(test)]
1879        #[allow(dead_code, unreachable_patterns)]
1880        fn _type_assertion(
1881            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1882        ) {
1883            match _t {
1884                alloy_sol_types::private::AssertTypeEq::<
1885                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1886                >(_) => {}
1887            }
1888        }
1889        #[automatically_derived]
1890        #[doc(hidden)]
1891        impl ::core::convert::From<InvalidAuthRoot> for UnderlyingRustTuple<'_> {
1892            fn from(value: InvalidAuthRoot) -> Self {
1893                ()
1894            }
1895        }
1896        #[automatically_derived]
1897        #[doc(hidden)]
1898        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidAuthRoot {
1899            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1900                Self
1901            }
1902        }
1903        #[automatically_derived]
1904        impl alloy_sol_types::SolError for InvalidAuthRoot {
1905            type Parameters<'a> = UnderlyingSolTuple<'a>;
1906            type Token<'a> = <Self::Parameters<
1907                'a,
1908            > as alloy_sol_types::SolType>::Token<'a>;
1909            const SIGNATURE: &'static str = "InvalidAuthRoot()";
1910            const SELECTOR: [u8; 4] = [50u8, 139u8, 136u8, 120u8];
1911            #[inline]
1912            fn new<'a>(
1913                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1914            ) -> Self {
1915                tuple.into()
1916            }
1917            #[inline]
1918            fn tokenize(&self) -> Self::Token<'_> {
1919                ()
1920            }
1921            #[inline]
1922            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1923                <Self::Parameters<
1924                    '_,
1925                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
1926                    .map(Self::new)
1927            }
1928        }
1929    };
1930    #[derive(serde::Serialize, serde::Deserialize)]
1931    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1932    /**Custom error with signature `InvalidInitialization()` and selector `0xf92ee8a9`.
1933```solidity
1934error InvalidInitialization();
1935```*/
1936    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1937    #[derive(Clone)]
1938    pub struct InvalidInitialization;
1939    #[allow(
1940        non_camel_case_types,
1941        non_snake_case,
1942        clippy::pub_underscore_fields,
1943        clippy::style
1944    )]
1945    const _: () = {
1946        use alloy::sol_types as alloy_sol_types;
1947        #[doc(hidden)]
1948        type UnderlyingSolTuple<'a> = ();
1949        #[doc(hidden)]
1950        type UnderlyingRustTuple<'a> = ();
1951        #[cfg(test)]
1952        #[allow(dead_code, unreachable_patterns)]
1953        fn _type_assertion(
1954            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1955        ) {
1956            match _t {
1957                alloy_sol_types::private::AssertTypeEq::<
1958                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1959                >(_) => {}
1960            }
1961        }
1962        #[automatically_derived]
1963        #[doc(hidden)]
1964        impl ::core::convert::From<InvalidInitialization> for UnderlyingRustTuple<'_> {
1965            fn from(value: InvalidInitialization) -> Self {
1966                ()
1967            }
1968        }
1969        #[automatically_derived]
1970        #[doc(hidden)]
1971        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidInitialization {
1972            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1973                Self
1974            }
1975        }
1976        #[automatically_derived]
1977        impl alloy_sol_types::SolError for InvalidInitialization {
1978            type Parameters<'a> = UnderlyingSolTuple<'a>;
1979            type Token<'a> = <Self::Parameters<
1980                'a,
1981            > as alloy_sol_types::SolType>::Token<'a>;
1982            const SIGNATURE: &'static str = "InvalidInitialization()";
1983            const SELECTOR: [u8; 4] = [249u8, 46u8, 232u8, 169u8];
1984            #[inline]
1985            fn new<'a>(
1986                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1987            ) -> Self {
1988                tuple.into()
1989            }
1990            #[inline]
1991            fn tokenize(&self) -> Self::Token<'_> {
1992                ()
1993            }
1994            #[inline]
1995            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
1996                <Self::Parameters<
1997                    '_,
1998                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
1999                    .map(Self::new)
2000            }
2001        }
2002    };
2003    #[derive(serde::Serialize, serde::Deserialize)]
2004    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2005    /**Custom error with signature `InvalidRewardAmount()` and selector `0x38539865`.
2006```solidity
2007error InvalidRewardAmount();
2008```*/
2009    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
2010    #[derive(Clone)]
2011    pub struct InvalidRewardAmount;
2012    #[allow(
2013        non_camel_case_types,
2014        non_snake_case,
2015        clippy::pub_underscore_fields,
2016        clippy::style
2017    )]
2018    const _: () = {
2019        use alloy::sol_types as alloy_sol_types;
2020        #[doc(hidden)]
2021        type UnderlyingSolTuple<'a> = ();
2022        #[doc(hidden)]
2023        type UnderlyingRustTuple<'a> = ();
2024        #[cfg(test)]
2025        #[allow(dead_code, unreachable_patterns)]
2026        fn _type_assertion(
2027            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
2028        ) {
2029            match _t {
2030                alloy_sol_types::private::AssertTypeEq::<
2031                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
2032                >(_) => {}
2033            }
2034        }
2035        #[automatically_derived]
2036        #[doc(hidden)]
2037        impl ::core::convert::From<InvalidRewardAmount> for UnderlyingRustTuple<'_> {
2038            fn from(value: InvalidRewardAmount) -> Self {
2039                ()
2040            }
2041        }
2042        #[automatically_derived]
2043        #[doc(hidden)]
2044        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidRewardAmount {
2045            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
2046                Self
2047            }
2048        }
2049        #[automatically_derived]
2050        impl alloy_sol_types::SolError for InvalidRewardAmount {
2051            type Parameters<'a> = UnderlyingSolTuple<'a>;
2052            type Token<'a> = <Self::Parameters<
2053                'a,
2054            > as alloy_sol_types::SolType>::Token<'a>;
2055            const SIGNATURE: &'static str = "InvalidRewardAmount()";
2056            const SELECTOR: [u8; 4] = [56u8, 83u8, 152u8, 101u8];
2057            #[inline]
2058            fn new<'a>(
2059                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
2060            ) -> Self {
2061                tuple.into()
2062            }
2063            #[inline]
2064            fn tokenize(&self) -> Self::Token<'_> {
2065                ()
2066            }
2067            #[inline]
2068            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
2069                <Self::Parameters<
2070                    '_,
2071                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
2072                    .map(Self::new)
2073            }
2074        }
2075    };
2076    #[derive(serde::Serialize, serde::Deserialize)]
2077    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2078    /**Custom error with signature `NoChangeRequired()` and selector `0xa863aec9`.
2079```solidity
2080error NoChangeRequired();
2081```*/
2082    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
2083    #[derive(Clone)]
2084    pub struct NoChangeRequired;
2085    #[allow(
2086        non_camel_case_types,
2087        non_snake_case,
2088        clippy::pub_underscore_fields,
2089        clippy::style
2090    )]
2091    const _: () = {
2092        use alloy::sol_types as alloy_sol_types;
2093        #[doc(hidden)]
2094        type UnderlyingSolTuple<'a> = ();
2095        #[doc(hidden)]
2096        type UnderlyingRustTuple<'a> = ();
2097        #[cfg(test)]
2098        #[allow(dead_code, unreachable_patterns)]
2099        fn _type_assertion(
2100            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
2101        ) {
2102            match _t {
2103                alloy_sol_types::private::AssertTypeEq::<
2104                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
2105                >(_) => {}
2106            }
2107        }
2108        #[automatically_derived]
2109        #[doc(hidden)]
2110        impl ::core::convert::From<NoChangeRequired> for UnderlyingRustTuple<'_> {
2111            fn from(value: NoChangeRequired) -> Self {
2112                ()
2113            }
2114        }
2115        #[automatically_derived]
2116        #[doc(hidden)]
2117        impl ::core::convert::From<UnderlyingRustTuple<'_>> for NoChangeRequired {
2118            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
2119                Self
2120            }
2121        }
2122        #[automatically_derived]
2123        impl alloy_sol_types::SolError for NoChangeRequired {
2124            type Parameters<'a> = UnderlyingSolTuple<'a>;
2125            type Token<'a> = <Self::Parameters<
2126                'a,
2127            > as alloy_sol_types::SolType>::Token<'a>;
2128            const SIGNATURE: &'static str = "NoChangeRequired()";
2129            const SELECTOR: [u8; 4] = [168u8, 99u8, 174u8, 201u8];
2130            #[inline]
2131            fn new<'a>(
2132                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
2133            ) -> Self {
2134                tuple.into()
2135            }
2136            #[inline]
2137            fn tokenize(&self) -> Self::Token<'_> {
2138                ()
2139            }
2140            #[inline]
2141            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
2142                <Self::Parameters<
2143                    '_,
2144                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
2145                    .map(Self::new)
2146            }
2147        }
2148    };
2149    #[derive(serde::Serialize, serde::Deserialize)]
2150    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2151    /**Custom error with signature `NotInitializing()` and selector `0xd7e6bcf8`.
2152```solidity
2153error NotInitializing();
2154```*/
2155    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
2156    #[derive(Clone)]
2157    pub struct NotInitializing;
2158    #[allow(
2159        non_camel_case_types,
2160        non_snake_case,
2161        clippy::pub_underscore_fields,
2162        clippy::style
2163    )]
2164    const _: () = {
2165        use alloy::sol_types as alloy_sol_types;
2166        #[doc(hidden)]
2167        type UnderlyingSolTuple<'a> = ();
2168        #[doc(hidden)]
2169        type UnderlyingRustTuple<'a> = ();
2170        #[cfg(test)]
2171        #[allow(dead_code, unreachable_patterns)]
2172        fn _type_assertion(
2173            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
2174        ) {
2175            match _t {
2176                alloy_sol_types::private::AssertTypeEq::<
2177                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
2178                >(_) => {}
2179            }
2180        }
2181        #[automatically_derived]
2182        #[doc(hidden)]
2183        impl ::core::convert::From<NotInitializing> for UnderlyingRustTuple<'_> {
2184            fn from(value: NotInitializing) -> Self {
2185                ()
2186            }
2187        }
2188        #[automatically_derived]
2189        #[doc(hidden)]
2190        impl ::core::convert::From<UnderlyingRustTuple<'_>> for NotInitializing {
2191            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
2192                Self
2193            }
2194        }
2195        #[automatically_derived]
2196        impl alloy_sol_types::SolError for NotInitializing {
2197            type Parameters<'a> = UnderlyingSolTuple<'a>;
2198            type Token<'a> = <Self::Parameters<
2199                'a,
2200            > as alloy_sol_types::SolType>::Token<'a>;
2201            const SIGNATURE: &'static str = "NotInitializing()";
2202            const SELECTOR: [u8; 4] = [215u8, 230u8, 188u8, 248u8];
2203            #[inline]
2204            fn new<'a>(
2205                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
2206            ) -> Self {
2207                tuple.into()
2208            }
2209            #[inline]
2210            fn tokenize(&self) -> Self::Token<'_> {
2211                ()
2212            }
2213            #[inline]
2214            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
2215                <Self::Parameters<
2216                    '_,
2217                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
2218                    .map(Self::new)
2219            }
2220        }
2221    };
2222    #[derive(serde::Serialize, serde::Deserialize)]
2223    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2224    /**Custom error with signature `ReentrancyGuardReentrantCall()` and selector `0x3ee5aeb5`.
2225```solidity
2226error ReentrancyGuardReentrantCall();
2227```*/
2228    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
2229    #[derive(Clone)]
2230    pub struct ReentrancyGuardReentrantCall;
2231    #[allow(
2232        non_camel_case_types,
2233        non_snake_case,
2234        clippy::pub_underscore_fields,
2235        clippy::style
2236    )]
2237    const _: () = {
2238        use alloy::sol_types as alloy_sol_types;
2239        #[doc(hidden)]
2240        type UnderlyingSolTuple<'a> = ();
2241        #[doc(hidden)]
2242        type UnderlyingRustTuple<'a> = ();
2243        #[cfg(test)]
2244        #[allow(dead_code, unreachable_patterns)]
2245        fn _type_assertion(
2246            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
2247        ) {
2248            match _t {
2249                alloy_sol_types::private::AssertTypeEq::<
2250                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
2251                >(_) => {}
2252            }
2253        }
2254        #[automatically_derived]
2255        #[doc(hidden)]
2256        impl ::core::convert::From<ReentrancyGuardReentrantCall>
2257        for UnderlyingRustTuple<'_> {
2258            fn from(value: ReentrancyGuardReentrantCall) -> Self {
2259                ()
2260            }
2261        }
2262        #[automatically_derived]
2263        #[doc(hidden)]
2264        impl ::core::convert::From<UnderlyingRustTuple<'_>>
2265        for ReentrancyGuardReentrantCall {
2266            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
2267                Self
2268            }
2269        }
2270        #[automatically_derived]
2271        impl alloy_sol_types::SolError for ReentrancyGuardReentrantCall {
2272            type Parameters<'a> = UnderlyingSolTuple<'a>;
2273            type Token<'a> = <Self::Parameters<
2274                'a,
2275            > as alloy_sol_types::SolType>::Token<'a>;
2276            const SIGNATURE: &'static str = "ReentrancyGuardReentrantCall()";
2277            const SELECTOR: [u8; 4] = [62u8, 229u8, 174u8, 181u8];
2278            #[inline]
2279            fn new<'a>(
2280                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
2281            ) -> Self {
2282                tuple.into()
2283            }
2284            #[inline]
2285            fn tokenize(&self) -> Self::Token<'_> {
2286                ()
2287            }
2288            #[inline]
2289            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
2290                <Self::Parameters<
2291                    '_,
2292                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
2293                    .map(Self::new)
2294            }
2295        }
2296    };
2297    #[derive(serde::Serialize, serde::Deserialize)]
2298    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2299    /**Custom error with signature `UUPSUnauthorizedCallContext()` and selector `0xe07c8dba`.
2300```solidity
2301error UUPSUnauthorizedCallContext();
2302```*/
2303    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
2304    #[derive(Clone)]
2305    pub struct UUPSUnauthorizedCallContext;
2306    #[allow(
2307        non_camel_case_types,
2308        non_snake_case,
2309        clippy::pub_underscore_fields,
2310        clippy::style
2311    )]
2312    const _: () = {
2313        use alloy::sol_types as alloy_sol_types;
2314        #[doc(hidden)]
2315        type UnderlyingSolTuple<'a> = ();
2316        #[doc(hidden)]
2317        type UnderlyingRustTuple<'a> = ();
2318        #[cfg(test)]
2319        #[allow(dead_code, unreachable_patterns)]
2320        fn _type_assertion(
2321            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
2322        ) {
2323            match _t {
2324                alloy_sol_types::private::AssertTypeEq::<
2325                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
2326                >(_) => {}
2327            }
2328        }
2329        #[automatically_derived]
2330        #[doc(hidden)]
2331        impl ::core::convert::From<UUPSUnauthorizedCallContext>
2332        for UnderlyingRustTuple<'_> {
2333            fn from(value: UUPSUnauthorizedCallContext) -> Self {
2334                ()
2335            }
2336        }
2337        #[automatically_derived]
2338        #[doc(hidden)]
2339        impl ::core::convert::From<UnderlyingRustTuple<'_>>
2340        for UUPSUnauthorizedCallContext {
2341            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
2342                Self
2343            }
2344        }
2345        #[automatically_derived]
2346        impl alloy_sol_types::SolError for UUPSUnauthorizedCallContext {
2347            type Parameters<'a> = UnderlyingSolTuple<'a>;
2348            type Token<'a> = <Self::Parameters<
2349                'a,
2350            > as alloy_sol_types::SolType>::Token<'a>;
2351            const SIGNATURE: &'static str = "UUPSUnauthorizedCallContext()";
2352            const SELECTOR: [u8; 4] = [224u8, 124u8, 141u8, 186u8];
2353            #[inline]
2354            fn new<'a>(
2355                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
2356            ) -> Self {
2357                tuple.into()
2358            }
2359            #[inline]
2360            fn tokenize(&self) -> Self::Token<'_> {
2361                ()
2362            }
2363            #[inline]
2364            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
2365                <Self::Parameters<
2366                    '_,
2367                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
2368                    .map(Self::new)
2369            }
2370        }
2371    };
2372    #[derive(serde::Serialize, serde::Deserialize)]
2373    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2374    /**Custom error with signature `UUPSUnsupportedProxiableUUID(bytes32)` and selector `0xaa1d49a4`.
2375```solidity
2376error UUPSUnsupportedProxiableUUID(bytes32 slot);
2377```*/
2378    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
2379    #[derive(Clone)]
2380    pub struct UUPSUnsupportedProxiableUUID {
2381        #[allow(missing_docs)]
2382        pub slot: alloy::sol_types::private::FixedBytes<32>,
2383    }
2384    #[allow(
2385        non_camel_case_types,
2386        non_snake_case,
2387        clippy::pub_underscore_fields,
2388        clippy::style
2389    )]
2390    const _: () = {
2391        use alloy::sol_types as alloy_sol_types;
2392        #[doc(hidden)]
2393        type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
2394        #[doc(hidden)]
2395        type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
2396        #[cfg(test)]
2397        #[allow(dead_code, unreachable_patterns)]
2398        fn _type_assertion(
2399            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
2400        ) {
2401            match _t {
2402                alloy_sol_types::private::AssertTypeEq::<
2403                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
2404                >(_) => {}
2405            }
2406        }
2407        #[automatically_derived]
2408        #[doc(hidden)]
2409        impl ::core::convert::From<UUPSUnsupportedProxiableUUID>
2410        for UnderlyingRustTuple<'_> {
2411            fn from(value: UUPSUnsupportedProxiableUUID) -> Self {
2412                (value.slot,)
2413            }
2414        }
2415        #[automatically_derived]
2416        #[doc(hidden)]
2417        impl ::core::convert::From<UnderlyingRustTuple<'_>>
2418        for UUPSUnsupportedProxiableUUID {
2419            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
2420                Self { slot: tuple.0 }
2421            }
2422        }
2423        #[automatically_derived]
2424        impl alloy_sol_types::SolError for UUPSUnsupportedProxiableUUID {
2425            type Parameters<'a> = UnderlyingSolTuple<'a>;
2426            type Token<'a> = <Self::Parameters<
2427                'a,
2428            > as alloy_sol_types::SolType>::Token<'a>;
2429            const SIGNATURE: &'static str = "UUPSUnsupportedProxiableUUID(bytes32)";
2430            const SELECTOR: [u8; 4] = [170u8, 29u8, 73u8, 164u8];
2431            #[inline]
2432            fn new<'a>(
2433                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
2434            ) -> Self {
2435                tuple.into()
2436            }
2437            #[inline]
2438            fn tokenize(&self) -> Self::Token<'_> {
2439                (
2440                    <alloy::sol_types::sol_data::FixedBytes<
2441                        32,
2442                    > as alloy_sol_types::SolType>::tokenize(&self.slot),
2443                )
2444            }
2445            #[inline]
2446            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
2447                <Self::Parameters<
2448                    '_,
2449                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
2450                    .map(Self::new)
2451            }
2452        }
2453    };
2454    #[derive(serde::Serialize, serde::Deserialize)]
2455    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2456    /**Custom error with signature `ZeroAdminAddress()` and selector `0x3ef39b81`.
2457```solidity
2458error ZeroAdminAddress();
2459```*/
2460    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
2461    #[derive(Clone)]
2462    pub struct ZeroAdminAddress;
2463    #[allow(
2464        non_camel_case_types,
2465        non_snake_case,
2466        clippy::pub_underscore_fields,
2467        clippy::style
2468    )]
2469    const _: () = {
2470        use alloy::sol_types as alloy_sol_types;
2471        #[doc(hidden)]
2472        type UnderlyingSolTuple<'a> = ();
2473        #[doc(hidden)]
2474        type UnderlyingRustTuple<'a> = ();
2475        #[cfg(test)]
2476        #[allow(dead_code, unreachable_patterns)]
2477        fn _type_assertion(
2478            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
2479        ) {
2480            match _t {
2481                alloy_sol_types::private::AssertTypeEq::<
2482                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
2483                >(_) => {}
2484            }
2485        }
2486        #[automatically_derived]
2487        #[doc(hidden)]
2488        impl ::core::convert::From<ZeroAdminAddress> for UnderlyingRustTuple<'_> {
2489            fn from(value: ZeroAdminAddress) -> Self {
2490                ()
2491            }
2492        }
2493        #[automatically_derived]
2494        #[doc(hidden)]
2495        impl ::core::convert::From<UnderlyingRustTuple<'_>> for ZeroAdminAddress {
2496            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
2497                Self
2498            }
2499        }
2500        #[automatically_derived]
2501        impl alloy_sol_types::SolError for ZeroAdminAddress {
2502            type Parameters<'a> = UnderlyingSolTuple<'a>;
2503            type Token<'a> = <Self::Parameters<
2504                'a,
2505            > as alloy_sol_types::SolType>::Token<'a>;
2506            const SIGNATURE: &'static str = "ZeroAdminAddress()";
2507            const SELECTOR: [u8; 4] = [62u8, 243u8, 155u8, 129u8];
2508            #[inline]
2509            fn new<'a>(
2510                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
2511            ) -> Self {
2512                tuple.into()
2513            }
2514            #[inline]
2515            fn tokenize(&self) -> Self::Token<'_> {
2516                ()
2517            }
2518            #[inline]
2519            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
2520                <Self::Parameters<
2521                    '_,
2522                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
2523                    .map(Self::new)
2524            }
2525        }
2526    };
2527    #[derive(serde::Serialize, serde::Deserialize)]
2528    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2529    /**Custom error with signature `ZeroDailyLimit()` and selector `0x9b11a8bd`.
2530```solidity
2531error ZeroDailyLimit();
2532```*/
2533    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
2534    #[derive(Clone)]
2535    pub struct ZeroDailyLimit;
2536    #[allow(
2537        non_camel_case_types,
2538        non_snake_case,
2539        clippy::pub_underscore_fields,
2540        clippy::style
2541    )]
2542    const _: () = {
2543        use alloy::sol_types as alloy_sol_types;
2544        #[doc(hidden)]
2545        type UnderlyingSolTuple<'a> = ();
2546        #[doc(hidden)]
2547        type UnderlyingRustTuple<'a> = ();
2548        #[cfg(test)]
2549        #[allow(dead_code, unreachable_patterns)]
2550        fn _type_assertion(
2551            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
2552        ) {
2553            match _t {
2554                alloy_sol_types::private::AssertTypeEq::<
2555                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
2556                >(_) => {}
2557            }
2558        }
2559        #[automatically_derived]
2560        #[doc(hidden)]
2561        impl ::core::convert::From<ZeroDailyLimit> for UnderlyingRustTuple<'_> {
2562            fn from(value: ZeroDailyLimit) -> Self {
2563                ()
2564            }
2565        }
2566        #[automatically_derived]
2567        #[doc(hidden)]
2568        impl ::core::convert::From<UnderlyingRustTuple<'_>> for ZeroDailyLimit {
2569            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
2570                Self
2571            }
2572        }
2573        #[automatically_derived]
2574        impl alloy_sol_types::SolError for ZeroDailyLimit {
2575            type Parameters<'a> = UnderlyingSolTuple<'a>;
2576            type Token<'a> = <Self::Parameters<
2577                'a,
2578            > as alloy_sol_types::SolType>::Token<'a>;
2579            const SIGNATURE: &'static str = "ZeroDailyLimit()";
2580            const SELECTOR: [u8; 4] = [155u8, 17u8, 168u8, 189u8];
2581            #[inline]
2582            fn new<'a>(
2583                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
2584            ) -> Self {
2585                tuple.into()
2586            }
2587            #[inline]
2588            fn tokenize(&self) -> Self::Token<'_> {
2589                ()
2590            }
2591            #[inline]
2592            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
2593                <Self::Parameters<
2594                    '_,
2595                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
2596                    .map(Self::new)
2597            }
2598        }
2599    };
2600    #[derive(serde::Serialize, serde::Deserialize)]
2601    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2602    /**Custom error with signature `ZeroLightClientAddress()` and selector `0xfcabddbd`.
2603```solidity
2604error ZeroLightClientAddress();
2605```*/
2606    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
2607    #[derive(Clone)]
2608    pub struct ZeroLightClientAddress;
2609    #[allow(
2610        non_camel_case_types,
2611        non_snake_case,
2612        clippy::pub_underscore_fields,
2613        clippy::style
2614    )]
2615    const _: () = {
2616        use alloy::sol_types as alloy_sol_types;
2617        #[doc(hidden)]
2618        type UnderlyingSolTuple<'a> = ();
2619        #[doc(hidden)]
2620        type UnderlyingRustTuple<'a> = ();
2621        #[cfg(test)]
2622        #[allow(dead_code, unreachable_patterns)]
2623        fn _type_assertion(
2624            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
2625        ) {
2626            match _t {
2627                alloy_sol_types::private::AssertTypeEq::<
2628                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
2629                >(_) => {}
2630            }
2631        }
2632        #[automatically_derived]
2633        #[doc(hidden)]
2634        impl ::core::convert::From<ZeroLightClientAddress> for UnderlyingRustTuple<'_> {
2635            fn from(value: ZeroLightClientAddress) -> Self {
2636                ()
2637            }
2638        }
2639        #[automatically_derived]
2640        #[doc(hidden)]
2641        impl ::core::convert::From<UnderlyingRustTuple<'_>> for ZeroLightClientAddress {
2642            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
2643                Self
2644            }
2645        }
2646        #[automatically_derived]
2647        impl alloy_sol_types::SolError for ZeroLightClientAddress {
2648            type Parameters<'a> = UnderlyingSolTuple<'a>;
2649            type Token<'a> = <Self::Parameters<
2650                'a,
2651            > as alloy_sol_types::SolType>::Token<'a>;
2652            const SIGNATURE: &'static str = "ZeroLightClientAddress()";
2653            const SELECTOR: [u8; 4] = [252u8, 171u8, 221u8, 189u8];
2654            #[inline]
2655            fn new<'a>(
2656                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
2657            ) -> Self {
2658                tuple.into()
2659            }
2660            #[inline]
2661            fn tokenize(&self) -> Self::Token<'_> {
2662                ()
2663            }
2664            #[inline]
2665            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
2666                <Self::Parameters<
2667                    '_,
2668                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
2669                    .map(Self::new)
2670            }
2671        }
2672    };
2673    #[derive(serde::Serialize, serde::Deserialize)]
2674    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2675    /**Custom error with signature `ZeroPauserAddress()` and selector `0xa74995ab`.
2676```solidity
2677error ZeroPauserAddress();
2678```*/
2679    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
2680    #[derive(Clone)]
2681    pub struct ZeroPauserAddress;
2682    #[allow(
2683        non_camel_case_types,
2684        non_snake_case,
2685        clippy::pub_underscore_fields,
2686        clippy::style
2687    )]
2688    const _: () = {
2689        use alloy::sol_types as alloy_sol_types;
2690        #[doc(hidden)]
2691        type UnderlyingSolTuple<'a> = ();
2692        #[doc(hidden)]
2693        type UnderlyingRustTuple<'a> = ();
2694        #[cfg(test)]
2695        #[allow(dead_code, unreachable_patterns)]
2696        fn _type_assertion(
2697            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
2698        ) {
2699            match _t {
2700                alloy_sol_types::private::AssertTypeEq::<
2701                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
2702                >(_) => {}
2703            }
2704        }
2705        #[automatically_derived]
2706        #[doc(hidden)]
2707        impl ::core::convert::From<ZeroPauserAddress> for UnderlyingRustTuple<'_> {
2708            fn from(value: ZeroPauserAddress) -> Self {
2709                ()
2710            }
2711        }
2712        #[automatically_derived]
2713        #[doc(hidden)]
2714        impl ::core::convert::From<UnderlyingRustTuple<'_>> for ZeroPauserAddress {
2715            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
2716                Self
2717            }
2718        }
2719        #[automatically_derived]
2720        impl alloy_sol_types::SolError for ZeroPauserAddress {
2721            type Parameters<'a> = UnderlyingSolTuple<'a>;
2722            type Token<'a> = <Self::Parameters<
2723                'a,
2724            > as alloy_sol_types::SolType>::Token<'a>;
2725            const SIGNATURE: &'static str = "ZeroPauserAddress()";
2726            const SELECTOR: [u8; 4] = [167u8, 73u8, 149u8, 171u8];
2727            #[inline]
2728            fn new<'a>(
2729                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
2730            ) -> Self {
2731                tuple.into()
2732            }
2733            #[inline]
2734            fn tokenize(&self) -> Self::Token<'_> {
2735                ()
2736            }
2737            #[inline]
2738            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
2739                <Self::Parameters<
2740                    '_,
2741                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
2742                    .map(Self::new)
2743            }
2744        }
2745    };
2746    #[derive(serde::Serialize, serde::Deserialize)]
2747    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2748    /**Custom error with signature `ZeroTokenAddress()` and selector `0x6b093aad`.
2749```solidity
2750error ZeroTokenAddress();
2751```*/
2752    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
2753    #[derive(Clone)]
2754    pub struct ZeroTokenAddress;
2755    #[allow(
2756        non_camel_case_types,
2757        non_snake_case,
2758        clippy::pub_underscore_fields,
2759        clippy::style
2760    )]
2761    const _: () = {
2762        use alloy::sol_types as alloy_sol_types;
2763        #[doc(hidden)]
2764        type UnderlyingSolTuple<'a> = ();
2765        #[doc(hidden)]
2766        type UnderlyingRustTuple<'a> = ();
2767        #[cfg(test)]
2768        #[allow(dead_code, unreachable_patterns)]
2769        fn _type_assertion(
2770            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
2771        ) {
2772            match _t {
2773                alloy_sol_types::private::AssertTypeEq::<
2774                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
2775                >(_) => {}
2776            }
2777        }
2778        #[automatically_derived]
2779        #[doc(hidden)]
2780        impl ::core::convert::From<ZeroTokenAddress> for UnderlyingRustTuple<'_> {
2781            fn from(value: ZeroTokenAddress) -> Self {
2782                ()
2783            }
2784        }
2785        #[automatically_derived]
2786        #[doc(hidden)]
2787        impl ::core::convert::From<UnderlyingRustTuple<'_>> for ZeroTokenAddress {
2788            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
2789                Self
2790            }
2791        }
2792        #[automatically_derived]
2793        impl alloy_sol_types::SolError for ZeroTokenAddress {
2794            type Parameters<'a> = UnderlyingSolTuple<'a>;
2795            type Token<'a> = <Self::Parameters<
2796                'a,
2797            > as alloy_sol_types::SolType>::Token<'a>;
2798            const SIGNATURE: &'static str = "ZeroTokenAddress()";
2799            const SELECTOR: [u8; 4] = [107u8, 9u8, 58u8, 173u8];
2800            #[inline]
2801            fn new<'a>(
2802                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
2803            ) -> Self {
2804                tuple.into()
2805            }
2806            #[inline]
2807            fn tokenize(&self) -> Self::Token<'_> {
2808                ()
2809            }
2810            #[inline]
2811            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
2812                <Self::Parameters<
2813                    '_,
2814                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
2815                    .map(Self::new)
2816            }
2817        }
2818    };
2819    #[derive(serde::Serialize, serde::Deserialize)]
2820    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2821    /**Custom error with signature `ZeroTotalSupply()` and selector `0x48b50023`.
2822```solidity
2823error ZeroTotalSupply();
2824```*/
2825    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
2826    #[derive(Clone)]
2827    pub struct ZeroTotalSupply;
2828    #[allow(
2829        non_camel_case_types,
2830        non_snake_case,
2831        clippy::pub_underscore_fields,
2832        clippy::style
2833    )]
2834    const _: () = {
2835        use alloy::sol_types as alloy_sol_types;
2836        #[doc(hidden)]
2837        type UnderlyingSolTuple<'a> = ();
2838        #[doc(hidden)]
2839        type UnderlyingRustTuple<'a> = ();
2840        #[cfg(test)]
2841        #[allow(dead_code, unreachable_patterns)]
2842        fn _type_assertion(
2843            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
2844        ) {
2845            match _t {
2846                alloy_sol_types::private::AssertTypeEq::<
2847                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
2848                >(_) => {}
2849            }
2850        }
2851        #[automatically_derived]
2852        #[doc(hidden)]
2853        impl ::core::convert::From<ZeroTotalSupply> for UnderlyingRustTuple<'_> {
2854            fn from(value: ZeroTotalSupply) -> Self {
2855                ()
2856            }
2857        }
2858        #[automatically_derived]
2859        #[doc(hidden)]
2860        impl ::core::convert::From<UnderlyingRustTuple<'_>> for ZeroTotalSupply {
2861            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
2862                Self
2863            }
2864        }
2865        #[automatically_derived]
2866        impl alloy_sol_types::SolError for ZeroTotalSupply {
2867            type Parameters<'a> = UnderlyingSolTuple<'a>;
2868            type Token<'a> = <Self::Parameters<
2869                'a,
2870            > as alloy_sol_types::SolType>::Token<'a>;
2871            const SIGNATURE: &'static str = "ZeroTotalSupply()";
2872            const SELECTOR: [u8; 4] = [72u8, 181u8, 0u8, 35u8];
2873            #[inline]
2874            fn new<'a>(
2875                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
2876            ) -> Self {
2877                tuple.into()
2878            }
2879            #[inline]
2880            fn tokenize(&self) -> Self::Token<'_> {
2881                ()
2882            }
2883            #[inline]
2884            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
2885                <Self::Parameters<
2886                    '_,
2887                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
2888                    .map(Self::new)
2889            }
2890        }
2891    };
2892    #[derive(serde::Serialize, serde::Deserialize)]
2893    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2894    /**Event with signature `DailyLimitUpdated(uint256,uint256)` and selector `0x207c4cbdf55ec315a13f0d5e047732ec5d947da056e706593aa509909941cedf`.
2895```solidity
2896event DailyLimitUpdated(uint256 oldLimit, uint256 newLimit);
2897```*/
2898    #[allow(
2899        non_camel_case_types,
2900        non_snake_case,
2901        clippy::pub_underscore_fields,
2902        clippy::style
2903    )]
2904    #[derive(Clone)]
2905    pub struct DailyLimitUpdated {
2906        #[allow(missing_docs)]
2907        pub oldLimit: alloy::sol_types::private::primitives::aliases::U256,
2908        #[allow(missing_docs)]
2909        pub newLimit: alloy::sol_types::private::primitives::aliases::U256,
2910    }
2911    #[allow(
2912        non_camel_case_types,
2913        non_snake_case,
2914        clippy::pub_underscore_fields,
2915        clippy::style
2916    )]
2917    const _: () = {
2918        use alloy::sol_types as alloy_sol_types;
2919        #[automatically_derived]
2920        impl alloy_sol_types::SolEvent for DailyLimitUpdated {
2921            type DataTuple<'a> = (
2922                alloy::sol_types::sol_data::Uint<256>,
2923                alloy::sol_types::sol_data::Uint<256>,
2924            );
2925            type DataToken<'a> = <Self::DataTuple<
2926                'a,
2927            > as alloy_sol_types::SolType>::Token<'a>;
2928            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
2929            const SIGNATURE: &'static str = "DailyLimitUpdated(uint256,uint256)";
2930            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
2931                32u8, 124u8, 76u8, 189u8, 245u8, 94u8, 195u8, 21u8, 161u8, 63u8, 13u8,
2932                94u8, 4u8, 119u8, 50u8, 236u8, 93u8, 148u8, 125u8, 160u8, 86u8, 231u8,
2933                6u8, 89u8, 58u8, 165u8, 9u8, 144u8, 153u8, 65u8, 206u8, 223u8,
2934            ]);
2935            const ANONYMOUS: bool = false;
2936            #[allow(unused_variables)]
2937            #[inline]
2938            fn new(
2939                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
2940                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
2941            ) -> Self {
2942                Self {
2943                    oldLimit: data.0,
2944                    newLimit: data.1,
2945                }
2946            }
2947            #[inline]
2948            fn check_signature(
2949                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
2950            ) -> alloy_sol_types::Result<()> {
2951                if topics.0 != Self::SIGNATURE_HASH {
2952                    return Err(
2953                        alloy_sol_types::Error::invalid_event_signature_hash(
2954                            Self::SIGNATURE,
2955                            topics.0,
2956                            Self::SIGNATURE_HASH,
2957                        ),
2958                    );
2959                }
2960                Ok(())
2961            }
2962            #[inline]
2963            fn tokenize_body(&self) -> Self::DataToken<'_> {
2964                (
2965                    <alloy::sol_types::sol_data::Uint<
2966                        256,
2967                    > as alloy_sol_types::SolType>::tokenize(&self.oldLimit),
2968                    <alloy::sol_types::sol_data::Uint<
2969                        256,
2970                    > as alloy_sol_types::SolType>::tokenize(&self.newLimit),
2971                )
2972            }
2973            #[inline]
2974            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
2975                (Self::SIGNATURE_HASH.into(),)
2976            }
2977            #[inline]
2978            fn encode_topics_raw(
2979                &self,
2980                out: &mut [alloy_sol_types::abi::token::WordToken],
2981            ) -> alloy_sol_types::Result<()> {
2982                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
2983                    return Err(alloy_sol_types::Error::Overrun);
2984                }
2985                out[0usize] = alloy_sol_types::abi::token::WordToken(
2986                    Self::SIGNATURE_HASH,
2987                );
2988                Ok(())
2989            }
2990        }
2991        #[automatically_derived]
2992        impl alloy_sol_types::private::IntoLogData for DailyLimitUpdated {
2993            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
2994                From::from(self)
2995            }
2996            fn into_log_data(self) -> alloy_sol_types::private::LogData {
2997                From::from(&self)
2998            }
2999        }
3000        #[automatically_derived]
3001        impl From<&DailyLimitUpdated> for alloy_sol_types::private::LogData {
3002            #[inline]
3003            fn from(this: &DailyLimitUpdated) -> alloy_sol_types::private::LogData {
3004                alloy_sol_types::SolEvent::encode_log_data(this)
3005            }
3006        }
3007    };
3008    #[derive(serde::Serialize, serde::Deserialize)]
3009    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3010    /**Event with signature `Initialized(uint64)` and selector `0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2`.
3011```solidity
3012event Initialized(uint64 version);
3013```*/
3014    #[allow(
3015        non_camel_case_types,
3016        non_snake_case,
3017        clippy::pub_underscore_fields,
3018        clippy::style
3019    )]
3020    #[derive(Clone)]
3021    pub struct Initialized {
3022        #[allow(missing_docs)]
3023        pub version: u64,
3024    }
3025    #[allow(
3026        non_camel_case_types,
3027        non_snake_case,
3028        clippy::pub_underscore_fields,
3029        clippy::style
3030    )]
3031    const _: () = {
3032        use alloy::sol_types as alloy_sol_types;
3033        #[automatically_derived]
3034        impl alloy_sol_types::SolEvent for Initialized {
3035            type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,);
3036            type DataToken<'a> = <Self::DataTuple<
3037                'a,
3038            > as alloy_sol_types::SolType>::Token<'a>;
3039            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
3040            const SIGNATURE: &'static str = "Initialized(uint64)";
3041            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
3042                199u8, 245u8, 5u8, 178u8, 243u8, 113u8, 174u8, 33u8, 117u8, 238u8, 73u8,
3043                19u8, 244u8, 73u8, 158u8, 31u8, 38u8, 51u8, 167u8, 181u8, 147u8, 99u8,
3044                33u8, 238u8, 209u8, 205u8, 174u8, 182u8, 17u8, 81u8, 129u8, 210u8,
3045            ]);
3046            const ANONYMOUS: bool = false;
3047            #[allow(unused_variables)]
3048            #[inline]
3049            fn new(
3050                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
3051                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
3052            ) -> Self {
3053                Self { version: data.0 }
3054            }
3055            #[inline]
3056            fn check_signature(
3057                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
3058            ) -> alloy_sol_types::Result<()> {
3059                if topics.0 != Self::SIGNATURE_HASH {
3060                    return Err(
3061                        alloy_sol_types::Error::invalid_event_signature_hash(
3062                            Self::SIGNATURE,
3063                            topics.0,
3064                            Self::SIGNATURE_HASH,
3065                        ),
3066                    );
3067                }
3068                Ok(())
3069            }
3070            #[inline]
3071            fn tokenize_body(&self) -> Self::DataToken<'_> {
3072                (
3073                    <alloy::sol_types::sol_data::Uint<
3074                        64,
3075                    > as alloy_sol_types::SolType>::tokenize(&self.version),
3076                )
3077            }
3078            #[inline]
3079            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
3080                (Self::SIGNATURE_HASH.into(),)
3081            }
3082            #[inline]
3083            fn encode_topics_raw(
3084                &self,
3085                out: &mut [alloy_sol_types::abi::token::WordToken],
3086            ) -> alloy_sol_types::Result<()> {
3087                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
3088                    return Err(alloy_sol_types::Error::Overrun);
3089                }
3090                out[0usize] = alloy_sol_types::abi::token::WordToken(
3091                    Self::SIGNATURE_HASH,
3092                );
3093                Ok(())
3094            }
3095        }
3096        #[automatically_derived]
3097        impl alloy_sol_types::private::IntoLogData for Initialized {
3098            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
3099                From::from(self)
3100            }
3101            fn into_log_data(self) -> alloy_sol_types::private::LogData {
3102                From::from(&self)
3103            }
3104        }
3105        #[automatically_derived]
3106        impl From<&Initialized> for alloy_sol_types::private::LogData {
3107            #[inline]
3108            fn from(this: &Initialized) -> alloy_sol_types::private::LogData {
3109                alloy_sol_types::SolEvent::encode_log_data(this)
3110            }
3111        }
3112    };
3113    #[derive(serde::Serialize, serde::Deserialize)]
3114    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3115    /**Event with signature `Paused(address)` and selector `0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258`.
3116```solidity
3117event Paused(address account);
3118```*/
3119    #[allow(
3120        non_camel_case_types,
3121        non_snake_case,
3122        clippy::pub_underscore_fields,
3123        clippy::style
3124    )]
3125    #[derive(Clone)]
3126    pub struct Paused {
3127        #[allow(missing_docs)]
3128        pub account: alloy::sol_types::private::Address,
3129    }
3130    #[allow(
3131        non_camel_case_types,
3132        non_snake_case,
3133        clippy::pub_underscore_fields,
3134        clippy::style
3135    )]
3136    const _: () = {
3137        use alloy::sol_types as alloy_sol_types;
3138        #[automatically_derived]
3139        impl alloy_sol_types::SolEvent for Paused {
3140            type DataTuple<'a> = (alloy::sol_types::sol_data::Address,);
3141            type DataToken<'a> = <Self::DataTuple<
3142                'a,
3143            > as alloy_sol_types::SolType>::Token<'a>;
3144            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
3145            const SIGNATURE: &'static str = "Paused(address)";
3146            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
3147                98u8, 231u8, 140u8, 234u8, 1u8, 190u8, 227u8, 32u8, 205u8, 78u8, 66u8,
3148                2u8, 112u8, 181u8, 234u8, 116u8, 0u8, 13u8, 17u8, 176u8, 201u8, 247u8,
3149                71u8, 84u8, 235u8, 219u8, 252u8, 84u8, 75u8, 5u8, 162u8, 88u8,
3150            ]);
3151            const ANONYMOUS: bool = false;
3152            #[allow(unused_variables)]
3153            #[inline]
3154            fn new(
3155                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
3156                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
3157            ) -> Self {
3158                Self { account: data.0 }
3159            }
3160            #[inline]
3161            fn check_signature(
3162                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
3163            ) -> alloy_sol_types::Result<()> {
3164                if topics.0 != Self::SIGNATURE_HASH {
3165                    return Err(
3166                        alloy_sol_types::Error::invalid_event_signature_hash(
3167                            Self::SIGNATURE,
3168                            topics.0,
3169                            Self::SIGNATURE_HASH,
3170                        ),
3171                    );
3172                }
3173                Ok(())
3174            }
3175            #[inline]
3176            fn tokenize_body(&self) -> Self::DataToken<'_> {
3177                (
3178                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
3179                        &self.account,
3180                    ),
3181                )
3182            }
3183            #[inline]
3184            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
3185                (Self::SIGNATURE_HASH.into(),)
3186            }
3187            #[inline]
3188            fn encode_topics_raw(
3189                &self,
3190                out: &mut [alloy_sol_types::abi::token::WordToken],
3191            ) -> alloy_sol_types::Result<()> {
3192                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
3193                    return Err(alloy_sol_types::Error::Overrun);
3194                }
3195                out[0usize] = alloy_sol_types::abi::token::WordToken(
3196                    Self::SIGNATURE_HASH,
3197                );
3198                Ok(())
3199            }
3200        }
3201        #[automatically_derived]
3202        impl alloy_sol_types::private::IntoLogData for Paused {
3203            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
3204                From::from(self)
3205            }
3206            fn into_log_data(self) -> alloy_sol_types::private::LogData {
3207                From::from(&self)
3208            }
3209        }
3210        #[automatically_derived]
3211        impl From<&Paused> for alloy_sol_types::private::LogData {
3212            #[inline]
3213            fn from(this: &Paused) -> alloy_sol_types::private::LogData {
3214                alloy_sol_types::SolEvent::encode_log_data(this)
3215            }
3216        }
3217    };
3218    #[derive(serde::Serialize, serde::Deserialize)]
3219    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3220    /**Event with signature `RewardsClaimed(address,uint256)` and selector `0xfc30cddea38e2bf4d6ea7d3f9ed3b6ad7f176419f4963bd81318067a4aee73fe`.
3221```solidity
3222event RewardsClaimed(address indexed user, uint256 amount);
3223```*/
3224    #[allow(
3225        non_camel_case_types,
3226        non_snake_case,
3227        clippy::pub_underscore_fields,
3228        clippy::style
3229    )]
3230    #[derive(Clone)]
3231    pub struct RewardsClaimed {
3232        #[allow(missing_docs)]
3233        pub user: alloy::sol_types::private::Address,
3234        #[allow(missing_docs)]
3235        pub amount: alloy::sol_types::private::primitives::aliases::U256,
3236    }
3237    #[allow(
3238        non_camel_case_types,
3239        non_snake_case,
3240        clippy::pub_underscore_fields,
3241        clippy::style
3242    )]
3243    const _: () = {
3244        use alloy::sol_types as alloy_sol_types;
3245        #[automatically_derived]
3246        impl alloy_sol_types::SolEvent for RewardsClaimed {
3247            type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
3248            type DataToken<'a> = <Self::DataTuple<
3249                'a,
3250            > as alloy_sol_types::SolType>::Token<'a>;
3251            type TopicList = (
3252                alloy_sol_types::sol_data::FixedBytes<32>,
3253                alloy::sol_types::sol_data::Address,
3254            );
3255            const SIGNATURE: &'static str = "RewardsClaimed(address,uint256)";
3256            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
3257                252u8, 48u8, 205u8, 222u8, 163u8, 142u8, 43u8, 244u8, 214u8, 234u8,
3258                125u8, 63u8, 158u8, 211u8, 182u8, 173u8, 127u8, 23u8, 100u8, 25u8, 244u8,
3259                150u8, 59u8, 216u8, 19u8, 24u8, 6u8, 122u8, 74u8, 238u8, 115u8, 254u8,
3260            ]);
3261            const ANONYMOUS: bool = false;
3262            #[allow(unused_variables)]
3263            #[inline]
3264            fn new(
3265                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
3266                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
3267            ) -> Self {
3268                Self {
3269                    user: topics.1,
3270                    amount: data.0,
3271                }
3272            }
3273            #[inline]
3274            fn check_signature(
3275                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
3276            ) -> alloy_sol_types::Result<()> {
3277                if topics.0 != Self::SIGNATURE_HASH {
3278                    return Err(
3279                        alloy_sol_types::Error::invalid_event_signature_hash(
3280                            Self::SIGNATURE,
3281                            topics.0,
3282                            Self::SIGNATURE_HASH,
3283                        ),
3284                    );
3285                }
3286                Ok(())
3287            }
3288            #[inline]
3289            fn tokenize_body(&self) -> Self::DataToken<'_> {
3290                (
3291                    <alloy::sol_types::sol_data::Uint<
3292                        256,
3293                    > as alloy_sol_types::SolType>::tokenize(&self.amount),
3294                )
3295            }
3296            #[inline]
3297            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
3298                (Self::SIGNATURE_HASH.into(), self.user.clone())
3299            }
3300            #[inline]
3301            fn encode_topics_raw(
3302                &self,
3303                out: &mut [alloy_sol_types::abi::token::WordToken],
3304            ) -> alloy_sol_types::Result<()> {
3305                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
3306                    return Err(alloy_sol_types::Error::Overrun);
3307                }
3308                out[0usize] = alloy_sol_types::abi::token::WordToken(
3309                    Self::SIGNATURE_HASH,
3310                );
3311                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
3312                    &self.user,
3313                );
3314                Ok(())
3315            }
3316        }
3317        #[automatically_derived]
3318        impl alloy_sol_types::private::IntoLogData for RewardsClaimed {
3319            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
3320                From::from(self)
3321            }
3322            fn into_log_data(self) -> alloy_sol_types::private::LogData {
3323                From::from(&self)
3324            }
3325        }
3326        #[automatically_derived]
3327        impl From<&RewardsClaimed> for alloy_sol_types::private::LogData {
3328            #[inline]
3329            fn from(this: &RewardsClaimed) -> alloy_sol_types::private::LogData {
3330                alloy_sol_types::SolEvent::encode_log_data(this)
3331            }
3332        }
3333    };
3334    #[derive(serde::Serialize, serde::Deserialize)]
3335    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3336    /**Event with signature `RoleAdminChanged(bytes32,bytes32,bytes32)` and selector `0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff`.
3337```solidity
3338event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);
3339```*/
3340    #[allow(
3341        non_camel_case_types,
3342        non_snake_case,
3343        clippy::pub_underscore_fields,
3344        clippy::style
3345    )]
3346    #[derive(Clone)]
3347    pub struct RoleAdminChanged {
3348        #[allow(missing_docs)]
3349        pub role: alloy::sol_types::private::FixedBytes<32>,
3350        #[allow(missing_docs)]
3351        pub previousAdminRole: alloy::sol_types::private::FixedBytes<32>,
3352        #[allow(missing_docs)]
3353        pub newAdminRole: alloy::sol_types::private::FixedBytes<32>,
3354    }
3355    #[allow(
3356        non_camel_case_types,
3357        non_snake_case,
3358        clippy::pub_underscore_fields,
3359        clippy::style
3360    )]
3361    const _: () = {
3362        use alloy::sol_types as alloy_sol_types;
3363        #[automatically_derived]
3364        impl alloy_sol_types::SolEvent for RoleAdminChanged {
3365            type DataTuple<'a> = ();
3366            type DataToken<'a> = <Self::DataTuple<
3367                'a,
3368            > as alloy_sol_types::SolType>::Token<'a>;
3369            type TopicList = (
3370                alloy_sol_types::sol_data::FixedBytes<32>,
3371                alloy::sol_types::sol_data::FixedBytes<32>,
3372                alloy::sol_types::sol_data::FixedBytes<32>,
3373                alloy::sol_types::sol_data::FixedBytes<32>,
3374            );
3375            const SIGNATURE: &'static str = "RoleAdminChanged(bytes32,bytes32,bytes32)";
3376            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
3377                189u8, 121u8, 184u8, 111u8, 254u8, 10u8, 184u8, 232u8, 119u8, 97u8, 81u8,
3378                81u8, 66u8, 23u8, 205u8, 124u8, 172u8, 213u8, 44u8, 144u8, 159u8, 102u8,
3379                71u8, 92u8, 58u8, 244u8, 78u8, 18u8, 159u8, 11u8, 0u8, 255u8,
3380            ]);
3381            const ANONYMOUS: bool = false;
3382            #[allow(unused_variables)]
3383            #[inline]
3384            fn new(
3385                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
3386                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
3387            ) -> Self {
3388                Self {
3389                    role: topics.1,
3390                    previousAdminRole: topics.2,
3391                    newAdminRole: topics.3,
3392                }
3393            }
3394            #[inline]
3395            fn check_signature(
3396                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
3397            ) -> alloy_sol_types::Result<()> {
3398                if topics.0 != Self::SIGNATURE_HASH {
3399                    return Err(
3400                        alloy_sol_types::Error::invalid_event_signature_hash(
3401                            Self::SIGNATURE,
3402                            topics.0,
3403                            Self::SIGNATURE_HASH,
3404                        ),
3405                    );
3406                }
3407                Ok(())
3408            }
3409            #[inline]
3410            fn tokenize_body(&self) -> Self::DataToken<'_> {
3411                ()
3412            }
3413            #[inline]
3414            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
3415                (
3416                    Self::SIGNATURE_HASH.into(),
3417                    self.role.clone(),
3418                    self.previousAdminRole.clone(),
3419                    self.newAdminRole.clone(),
3420                )
3421            }
3422            #[inline]
3423            fn encode_topics_raw(
3424                &self,
3425                out: &mut [alloy_sol_types::abi::token::WordToken],
3426            ) -> alloy_sol_types::Result<()> {
3427                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
3428                    return Err(alloy_sol_types::Error::Overrun);
3429                }
3430                out[0usize] = alloy_sol_types::abi::token::WordToken(
3431                    Self::SIGNATURE_HASH,
3432                );
3433                out[1usize] = <alloy::sol_types::sol_data::FixedBytes<
3434                    32,
3435                > as alloy_sol_types::EventTopic>::encode_topic(&self.role);
3436                out[2usize] = <alloy::sol_types::sol_data::FixedBytes<
3437                    32,
3438                > as alloy_sol_types::EventTopic>::encode_topic(&self.previousAdminRole);
3439                out[3usize] = <alloy::sol_types::sol_data::FixedBytes<
3440                    32,
3441                > as alloy_sol_types::EventTopic>::encode_topic(&self.newAdminRole);
3442                Ok(())
3443            }
3444        }
3445        #[automatically_derived]
3446        impl alloy_sol_types::private::IntoLogData for RoleAdminChanged {
3447            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
3448                From::from(self)
3449            }
3450            fn into_log_data(self) -> alloy_sol_types::private::LogData {
3451                From::from(&self)
3452            }
3453        }
3454        #[automatically_derived]
3455        impl From<&RoleAdminChanged> for alloy_sol_types::private::LogData {
3456            #[inline]
3457            fn from(this: &RoleAdminChanged) -> alloy_sol_types::private::LogData {
3458                alloy_sol_types::SolEvent::encode_log_data(this)
3459            }
3460        }
3461    };
3462    #[derive(serde::Serialize, serde::Deserialize)]
3463    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3464    /**Event with signature `RoleGranted(bytes32,address,address)` and selector `0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d`.
3465```solidity
3466event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);
3467```*/
3468    #[allow(
3469        non_camel_case_types,
3470        non_snake_case,
3471        clippy::pub_underscore_fields,
3472        clippy::style
3473    )]
3474    #[derive(Clone)]
3475    pub struct RoleGranted {
3476        #[allow(missing_docs)]
3477        pub role: alloy::sol_types::private::FixedBytes<32>,
3478        #[allow(missing_docs)]
3479        pub account: alloy::sol_types::private::Address,
3480        #[allow(missing_docs)]
3481        pub sender: alloy::sol_types::private::Address,
3482    }
3483    #[allow(
3484        non_camel_case_types,
3485        non_snake_case,
3486        clippy::pub_underscore_fields,
3487        clippy::style
3488    )]
3489    const _: () = {
3490        use alloy::sol_types as alloy_sol_types;
3491        #[automatically_derived]
3492        impl alloy_sol_types::SolEvent for RoleGranted {
3493            type DataTuple<'a> = ();
3494            type DataToken<'a> = <Self::DataTuple<
3495                'a,
3496            > as alloy_sol_types::SolType>::Token<'a>;
3497            type TopicList = (
3498                alloy_sol_types::sol_data::FixedBytes<32>,
3499                alloy::sol_types::sol_data::FixedBytes<32>,
3500                alloy::sol_types::sol_data::Address,
3501                alloy::sol_types::sol_data::Address,
3502            );
3503            const SIGNATURE: &'static str = "RoleGranted(bytes32,address,address)";
3504            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
3505                47u8, 135u8, 136u8, 17u8, 126u8, 126u8, 255u8, 29u8, 130u8, 233u8, 38u8,
3506                236u8, 121u8, 73u8, 1u8, 209u8, 124u8, 120u8, 2u8, 74u8, 80u8, 39u8, 9u8,
3507                64u8, 48u8, 69u8, 64u8, 167u8, 51u8, 101u8, 111u8, 13u8,
3508            ]);
3509            const ANONYMOUS: bool = false;
3510            #[allow(unused_variables)]
3511            #[inline]
3512            fn new(
3513                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
3514                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
3515            ) -> Self {
3516                Self {
3517                    role: topics.1,
3518                    account: topics.2,
3519                    sender: topics.3,
3520                }
3521            }
3522            #[inline]
3523            fn check_signature(
3524                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
3525            ) -> alloy_sol_types::Result<()> {
3526                if topics.0 != Self::SIGNATURE_HASH {
3527                    return Err(
3528                        alloy_sol_types::Error::invalid_event_signature_hash(
3529                            Self::SIGNATURE,
3530                            topics.0,
3531                            Self::SIGNATURE_HASH,
3532                        ),
3533                    );
3534                }
3535                Ok(())
3536            }
3537            #[inline]
3538            fn tokenize_body(&self) -> Self::DataToken<'_> {
3539                ()
3540            }
3541            #[inline]
3542            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
3543                (
3544                    Self::SIGNATURE_HASH.into(),
3545                    self.role.clone(),
3546                    self.account.clone(),
3547                    self.sender.clone(),
3548                )
3549            }
3550            #[inline]
3551            fn encode_topics_raw(
3552                &self,
3553                out: &mut [alloy_sol_types::abi::token::WordToken],
3554            ) -> alloy_sol_types::Result<()> {
3555                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
3556                    return Err(alloy_sol_types::Error::Overrun);
3557                }
3558                out[0usize] = alloy_sol_types::abi::token::WordToken(
3559                    Self::SIGNATURE_HASH,
3560                );
3561                out[1usize] = <alloy::sol_types::sol_data::FixedBytes<
3562                    32,
3563                > as alloy_sol_types::EventTopic>::encode_topic(&self.role);
3564                out[2usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
3565                    &self.account,
3566                );
3567                out[3usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
3568                    &self.sender,
3569                );
3570                Ok(())
3571            }
3572        }
3573        #[automatically_derived]
3574        impl alloy_sol_types::private::IntoLogData for RoleGranted {
3575            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
3576                From::from(self)
3577            }
3578            fn into_log_data(self) -> alloy_sol_types::private::LogData {
3579                From::from(&self)
3580            }
3581        }
3582        #[automatically_derived]
3583        impl From<&RoleGranted> for alloy_sol_types::private::LogData {
3584            #[inline]
3585            fn from(this: &RoleGranted) -> alloy_sol_types::private::LogData {
3586                alloy_sol_types::SolEvent::encode_log_data(this)
3587            }
3588        }
3589    };
3590    #[derive(serde::Serialize, serde::Deserialize)]
3591    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3592    /**Event with signature `RoleRevoked(bytes32,address,address)` and selector `0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b`.
3593```solidity
3594event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);
3595```*/
3596    #[allow(
3597        non_camel_case_types,
3598        non_snake_case,
3599        clippy::pub_underscore_fields,
3600        clippy::style
3601    )]
3602    #[derive(Clone)]
3603    pub struct RoleRevoked {
3604        #[allow(missing_docs)]
3605        pub role: alloy::sol_types::private::FixedBytes<32>,
3606        #[allow(missing_docs)]
3607        pub account: alloy::sol_types::private::Address,
3608        #[allow(missing_docs)]
3609        pub sender: alloy::sol_types::private::Address,
3610    }
3611    #[allow(
3612        non_camel_case_types,
3613        non_snake_case,
3614        clippy::pub_underscore_fields,
3615        clippy::style
3616    )]
3617    const _: () = {
3618        use alloy::sol_types as alloy_sol_types;
3619        #[automatically_derived]
3620        impl alloy_sol_types::SolEvent for RoleRevoked {
3621            type DataTuple<'a> = ();
3622            type DataToken<'a> = <Self::DataTuple<
3623                'a,
3624            > as alloy_sol_types::SolType>::Token<'a>;
3625            type TopicList = (
3626                alloy_sol_types::sol_data::FixedBytes<32>,
3627                alloy::sol_types::sol_data::FixedBytes<32>,
3628                alloy::sol_types::sol_data::Address,
3629                alloy::sol_types::sol_data::Address,
3630            );
3631            const SIGNATURE: &'static str = "RoleRevoked(bytes32,address,address)";
3632            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
3633                246u8, 57u8, 31u8, 92u8, 50u8, 217u8, 198u8, 157u8, 42u8, 71u8, 234u8,
3634                103u8, 11u8, 68u8, 41u8, 116u8, 181u8, 57u8, 53u8, 209u8, 237u8, 199u8,
3635                253u8, 100u8, 235u8, 33u8, 224u8, 71u8, 168u8, 57u8, 23u8, 27u8,
3636            ]);
3637            const ANONYMOUS: bool = false;
3638            #[allow(unused_variables)]
3639            #[inline]
3640            fn new(
3641                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
3642                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
3643            ) -> Self {
3644                Self {
3645                    role: topics.1,
3646                    account: topics.2,
3647                    sender: topics.3,
3648                }
3649            }
3650            #[inline]
3651            fn check_signature(
3652                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
3653            ) -> alloy_sol_types::Result<()> {
3654                if topics.0 != Self::SIGNATURE_HASH {
3655                    return Err(
3656                        alloy_sol_types::Error::invalid_event_signature_hash(
3657                            Self::SIGNATURE,
3658                            topics.0,
3659                            Self::SIGNATURE_HASH,
3660                        ),
3661                    );
3662                }
3663                Ok(())
3664            }
3665            #[inline]
3666            fn tokenize_body(&self) -> Self::DataToken<'_> {
3667                ()
3668            }
3669            #[inline]
3670            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
3671                (
3672                    Self::SIGNATURE_HASH.into(),
3673                    self.role.clone(),
3674                    self.account.clone(),
3675                    self.sender.clone(),
3676                )
3677            }
3678            #[inline]
3679            fn encode_topics_raw(
3680                &self,
3681                out: &mut [alloy_sol_types::abi::token::WordToken],
3682            ) -> alloy_sol_types::Result<()> {
3683                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
3684                    return Err(alloy_sol_types::Error::Overrun);
3685                }
3686                out[0usize] = alloy_sol_types::abi::token::WordToken(
3687                    Self::SIGNATURE_HASH,
3688                );
3689                out[1usize] = <alloy::sol_types::sol_data::FixedBytes<
3690                    32,
3691                > as alloy_sol_types::EventTopic>::encode_topic(&self.role);
3692                out[2usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
3693                    &self.account,
3694                );
3695                out[3usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
3696                    &self.sender,
3697                );
3698                Ok(())
3699            }
3700        }
3701        #[automatically_derived]
3702        impl alloy_sol_types::private::IntoLogData for RoleRevoked {
3703            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
3704                From::from(self)
3705            }
3706            fn into_log_data(self) -> alloy_sol_types::private::LogData {
3707                From::from(&self)
3708            }
3709        }
3710        #[automatically_derived]
3711        impl From<&RoleRevoked> for alloy_sol_types::private::LogData {
3712            #[inline]
3713            fn from(this: &RoleRevoked) -> alloy_sol_types::private::LogData {
3714                alloy_sol_types::SolEvent::encode_log_data(this)
3715            }
3716        }
3717    };
3718    #[derive(serde::Serialize, serde::Deserialize)]
3719    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3720    /**Event with signature `Unpaused(address)` and selector `0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa`.
3721```solidity
3722event Unpaused(address account);
3723```*/
3724    #[allow(
3725        non_camel_case_types,
3726        non_snake_case,
3727        clippy::pub_underscore_fields,
3728        clippy::style
3729    )]
3730    #[derive(Clone)]
3731    pub struct Unpaused {
3732        #[allow(missing_docs)]
3733        pub account: alloy::sol_types::private::Address,
3734    }
3735    #[allow(
3736        non_camel_case_types,
3737        non_snake_case,
3738        clippy::pub_underscore_fields,
3739        clippy::style
3740    )]
3741    const _: () = {
3742        use alloy::sol_types as alloy_sol_types;
3743        #[automatically_derived]
3744        impl alloy_sol_types::SolEvent for Unpaused {
3745            type DataTuple<'a> = (alloy::sol_types::sol_data::Address,);
3746            type DataToken<'a> = <Self::DataTuple<
3747                'a,
3748            > as alloy_sol_types::SolType>::Token<'a>;
3749            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
3750            const SIGNATURE: &'static str = "Unpaused(address)";
3751            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
3752                93u8, 185u8, 238u8, 10u8, 73u8, 91u8, 242u8, 230u8, 255u8, 156u8, 145u8,
3753                167u8, 131u8, 76u8, 27u8, 164u8, 253u8, 210u8, 68u8, 165u8, 232u8, 170u8,
3754                78u8, 83u8, 123u8, 211u8, 138u8, 234u8, 228u8, 176u8, 115u8, 170u8,
3755            ]);
3756            const ANONYMOUS: bool = false;
3757            #[allow(unused_variables)]
3758            #[inline]
3759            fn new(
3760                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
3761                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
3762            ) -> Self {
3763                Self { account: data.0 }
3764            }
3765            #[inline]
3766            fn check_signature(
3767                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
3768            ) -> alloy_sol_types::Result<()> {
3769                if topics.0 != Self::SIGNATURE_HASH {
3770                    return Err(
3771                        alloy_sol_types::Error::invalid_event_signature_hash(
3772                            Self::SIGNATURE,
3773                            topics.0,
3774                            Self::SIGNATURE_HASH,
3775                        ),
3776                    );
3777                }
3778                Ok(())
3779            }
3780            #[inline]
3781            fn tokenize_body(&self) -> Self::DataToken<'_> {
3782                (
3783                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
3784                        &self.account,
3785                    ),
3786                )
3787            }
3788            #[inline]
3789            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
3790                (Self::SIGNATURE_HASH.into(),)
3791            }
3792            #[inline]
3793            fn encode_topics_raw(
3794                &self,
3795                out: &mut [alloy_sol_types::abi::token::WordToken],
3796            ) -> alloy_sol_types::Result<()> {
3797                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
3798                    return Err(alloy_sol_types::Error::Overrun);
3799                }
3800                out[0usize] = alloy_sol_types::abi::token::WordToken(
3801                    Self::SIGNATURE_HASH,
3802                );
3803                Ok(())
3804            }
3805        }
3806        #[automatically_derived]
3807        impl alloy_sol_types::private::IntoLogData for Unpaused {
3808            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
3809                From::from(self)
3810            }
3811            fn into_log_data(self) -> alloy_sol_types::private::LogData {
3812                From::from(&self)
3813            }
3814        }
3815        #[automatically_derived]
3816        impl From<&Unpaused> for alloy_sol_types::private::LogData {
3817            #[inline]
3818            fn from(this: &Unpaused) -> alloy_sol_types::private::LogData {
3819                alloy_sol_types::SolEvent::encode_log_data(this)
3820            }
3821        }
3822    };
3823    #[derive(serde::Serialize, serde::Deserialize)]
3824    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3825    /**Event with signature `Upgraded(address)` and selector `0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b`.
3826```solidity
3827event Upgraded(address indexed implementation);
3828```*/
3829    #[allow(
3830        non_camel_case_types,
3831        non_snake_case,
3832        clippy::pub_underscore_fields,
3833        clippy::style
3834    )]
3835    #[derive(Clone)]
3836    pub struct Upgraded {
3837        #[allow(missing_docs)]
3838        pub implementation: alloy::sol_types::private::Address,
3839    }
3840    #[allow(
3841        non_camel_case_types,
3842        non_snake_case,
3843        clippy::pub_underscore_fields,
3844        clippy::style
3845    )]
3846    const _: () = {
3847        use alloy::sol_types as alloy_sol_types;
3848        #[automatically_derived]
3849        impl alloy_sol_types::SolEvent for Upgraded {
3850            type DataTuple<'a> = ();
3851            type DataToken<'a> = <Self::DataTuple<
3852                'a,
3853            > as alloy_sol_types::SolType>::Token<'a>;
3854            type TopicList = (
3855                alloy_sol_types::sol_data::FixedBytes<32>,
3856                alloy::sol_types::sol_data::Address,
3857            );
3858            const SIGNATURE: &'static str = "Upgraded(address)";
3859            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
3860                188u8, 124u8, 215u8, 90u8, 32u8, 238u8, 39u8, 253u8, 154u8, 222u8, 186u8,
3861                179u8, 32u8, 65u8, 247u8, 85u8, 33u8, 77u8, 188u8, 107u8, 255u8, 169u8,
3862                12u8, 192u8, 34u8, 91u8, 57u8, 218u8, 46u8, 92u8, 45u8, 59u8,
3863            ]);
3864            const ANONYMOUS: bool = false;
3865            #[allow(unused_variables)]
3866            #[inline]
3867            fn new(
3868                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
3869                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
3870            ) -> Self {
3871                Self { implementation: topics.1 }
3872            }
3873            #[inline]
3874            fn check_signature(
3875                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
3876            ) -> alloy_sol_types::Result<()> {
3877                if topics.0 != Self::SIGNATURE_HASH {
3878                    return Err(
3879                        alloy_sol_types::Error::invalid_event_signature_hash(
3880                            Self::SIGNATURE,
3881                            topics.0,
3882                            Self::SIGNATURE_HASH,
3883                        ),
3884                    );
3885                }
3886                Ok(())
3887            }
3888            #[inline]
3889            fn tokenize_body(&self) -> Self::DataToken<'_> {
3890                ()
3891            }
3892            #[inline]
3893            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
3894                (Self::SIGNATURE_HASH.into(), self.implementation.clone())
3895            }
3896            #[inline]
3897            fn encode_topics_raw(
3898                &self,
3899                out: &mut [alloy_sol_types::abi::token::WordToken],
3900            ) -> alloy_sol_types::Result<()> {
3901                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
3902                    return Err(alloy_sol_types::Error::Overrun);
3903                }
3904                out[0usize] = alloy_sol_types::abi::token::WordToken(
3905                    Self::SIGNATURE_HASH,
3906                );
3907                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
3908                    &self.implementation,
3909                );
3910                Ok(())
3911            }
3912        }
3913        #[automatically_derived]
3914        impl alloy_sol_types::private::IntoLogData for Upgraded {
3915            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
3916                From::from(self)
3917            }
3918            fn into_log_data(self) -> alloy_sol_types::private::LogData {
3919                From::from(&self)
3920            }
3921        }
3922        #[automatically_derived]
3923        impl From<&Upgraded> for alloy_sol_types::private::LogData {
3924            #[inline]
3925            fn from(this: &Upgraded) -> alloy_sol_types::private::LogData {
3926                alloy_sol_types::SolEvent::encode_log_data(this)
3927            }
3928        }
3929    };
3930    /**Constructor`.
3931```solidity
3932constructor();
3933```*/
3934    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3935    #[derive(Clone)]
3936    pub struct constructorCall {}
3937    const _: () = {
3938        use alloy::sol_types as alloy_sol_types;
3939        {
3940            #[doc(hidden)]
3941            type UnderlyingSolTuple<'a> = ();
3942            #[doc(hidden)]
3943            type UnderlyingRustTuple<'a> = ();
3944            #[cfg(test)]
3945            #[allow(dead_code, unreachable_patterns)]
3946            fn _type_assertion(
3947                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3948            ) {
3949                match _t {
3950                    alloy_sol_types::private::AssertTypeEq::<
3951                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3952                    >(_) => {}
3953                }
3954            }
3955            #[automatically_derived]
3956            #[doc(hidden)]
3957            impl ::core::convert::From<constructorCall> for UnderlyingRustTuple<'_> {
3958                fn from(value: constructorCall) -> Self {
3959                    ()
3960                }
3961            }
3962            #[automatically_derived]
3963            #[doc(hidden)]
3964            impl ::core::convert::From<UnderlyingRustTuple<'_>> for constructorCall {
3965                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3966                    Self {}
3967                }
3968            }
3969        }
3970        #[automatically_derived]
3971        impl alloy_sol_types::SolConstructor for constructorCall {
3972            type Parameters<'a> = ();
3973            type Token<'a> = <Self::Parameters<
3974                'a,
3975            > as alloy_sol_types::SolType>::Token<'a>;
3976            #[inline]
3977            fn new<'a>(
3978                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3979            ) -> Self {
3980                tuple.into()
3981            }
3982            #[inline]
3983            fn tokenize(&self) -> Self::Token<'_> {
3984                ()
3985            }
3986        }
3987    };
3988    #[derive(serde::Serialize, serde::Deserialize)]
3989    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3990    /**Function with signature `BPS_DENOMINATOR()` and selector `0xe1a45218`.
3991```solidity
3992function BPS_DENOMINATOR() external view returns (uint256);
3993```*/
3994    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3995    #[derive(Clone)]
3996    pub struct BPS_DENOMINATORCall;
3997    #[derive(serde::Serialize, serde::Deserialize)]
3998    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3999    ///Container type for the return parameters of the [`BPS_DENOMINATOR()`](BPS_DENOMINATORCall) function.
4000    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4001    #[derive(Clone)]
4002    pub struct BPS_DENOMINATORReturn {
4003        #[allow(missing_docs)]
4004        pub _0: alloy::sol_types::private::primitives::aliases::U256,
4005    }
4006    #[allow(
4007        non_camel_case_types,
4008        non_snake_case,
4009        clippy::pub_underscore_fields,
4010        clippy::style
4011    )]
4012    const _: () = {
4013        use alloy::sol_types as alloy_sol_types;
4014        {
4015            #[doc(hidden)]
4016            type UnderlyingSolTuple<'a> = ();
4017            #[doc(hidden)]
4018            type UnderlyingRustTuple<'a> = ();
4019            #[cfg(test)]
4020            #[allow(dead_code, unreachable_patterns)]
4021            fn _type_assertion(
4022                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4023            ) {
4024                match _t {
4025                    alloy_sol_types::private::AssertTypeEq::<
4026                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4027                    >(_) => {}
4028                }
4029            }
4030            #[automatically_derived]
4031            #[doc(hidden)]
4032            impl ::core::convert::From<BPS_DENOMINATORCall> for UnderlyingRustTuple<'_> {
4033                fn from(value: BPS_DENOMINATORCall) -> Self {
4034                    ()
4035                }
4036            }
4037            #[automatically_derived]
4038            #[doc(hidden)]
4039            impl ::core::convert::From<UnderlyingRustTuple<'_>> for BPS_DENOMINATORCall {
4040                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4041                    Self
4042                }
4043            }
4044        }
4045        {
4046            #[doc(hidden)]
4047            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4048            #[doc(hidden)]
4049            type UnderlyingRustTuple<'a> = (
4050                alloy::sol_types::private::primitives::aliases::U256,
4051            );
4052            #[cfg(test)]
4053            #[allow(dead_code, unreachable_patterns)]
4054            fn _type_assertion(
4055                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4056            ) {
4057                match _t {
4058                    alloy_sol_types::private::AssertTypeEq::<
4059                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4060                    >(_) => {}
4061                }
4062            }
4063            #[automatically_derived]
4064            #[doc(hidden)]
4065            impl ::core::convert::From<BPS_DENOMINATORReturn>
4066            for UnderlyingRustTuple<'_> {
4067                fn from(value: BPS_DENOMINATORReturn) -> Self {
4068                    (value._0,)
4069                }
4070            }
4071            #[automatically_derived]
4072            #[doc(hidden)]
4073            impl ::core::convert::From<UnderlyingRustTuple<'_>>
4074            for BPS_DENOMINATORReturn {
4075                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4076                    Self { _0: tuple.0 }
4077                }
4078            }
4079        }
4080        #[automatically_derived]
4081        impl alloy_sol_types::SolCall for BPS_DENOMINATORCall {
4082            type Parameters<'a> = ();
4083            type Token<'a> = <Self::Parameters<
4084                'a,
4085            > as alloy_sol_types::SolType>::Token<'a>;
4086            type Return = alloy::sol_types::private::primitives::aliases::U256;
4087            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4088            type ReturnToken<'a> = <Self::ReturnTuple<
4089                'a,
4090            > as alloy_sol_types::SolType>::Token<'a>;
4091            const SIGNATURE: &'static str = "BPS_DENOMINATOR()";
4092            const SELECTOR: [u8; 4] = [225u8, 164u8, 82u8, 24u8];
4093            #[inline]
4094            fn new<'a>(
4095                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4096            ) -> Self {
4097                tuple.into()
4098            }
4099            #[inline]
4100            fn tokenize(&self) -> Self::Token<'_> {
4101                ()
4102            }
4103            #[inline]
4104            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
4105                (
4106                    <alloy::sol_types::sol_data::Uint<
4107                        256,
4108                    > as alloy_sol_types::SolType>::tokenize(ret),
4109                )
4110            }
4111            #[inline]
4112            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4113                <Self::ReturnTuple<
4114                    '_,
4115                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4116                    .map(|r| {
4117                        let r: BPS_DENOMINATORReturn = r.into();
4118                        r._0
4119                    })
4120            }
4121            #[inline]
4122            fn abi_decode_returns_validate(
4123                data: &[u8],
4124            ) -> alloy_sol_types::Result<Self::Return> {
4125                <Self::ReturnTuple<
4126                    '_,
4127                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4128                    .map(|r| {
4129                        let r: BPS_DENOMINATORReturn = r.into();
4130                        r._0
4131                    })
4132            }
4133        }
4134    };
4135    #[derive(serde::Serialize, serde::Deserialize)]
4136    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4137    /**Function with signature `DEFAULT_ADMIN_ROLE()` and selector `0xa217fddf`.
4138```solidity
4139function DEFAULT_ADMIN_ROLE() external view returns (bytes32);
4140```*/
4141    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4142    #[derive(Clone)]
4143    pub struct DEFAULT_ADMIN_ROLECall;
4144    #[derive(serde::Serialize, serde::Deserialize)]
4145    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4146    ///Container type for the return parameters of the [`DEFAULT_ADMIN_ROLE()`](DEFAULT_ADMIN_ROLECall) function.
4147    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4148    #[derive(Clone)]
4149    pub struct DEFAULT_ADMIN_ROLEReturn {
4150        #[allow(missing_docs)]
4151        pub _0: alloy::sol_types::private::FixedBytes<32>,
4152    }
4153    #[allow(
4154        non_camel_case_types,
4155        non_snake_case,
4156        clippy::pub_underscore_fields,
4157        clippy::style
4158    )]
4159    const _: () = {
4160        use alloy::sol_types as alloy_sol_types;
4161        {
4162            #[doc(hidden)]
4163            type UnderlyingSolTuple<'a> = ();
4164            #[doc(hidden)]
4165            type UnderlyingRustTuple<'a> = ();
4166            #[cfg(test)]
4167            #[allow(dead_code, unreachable_patterns)]
4168            fn _type_assertion(
4169                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4170            ) {
4171                match _t {
4172                    alloy_sol_types::private::AssertTypeEq::<
4173                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4174                    >(_) => {}
4175                }
4176            }
4177            #[automatically_derived]
4178            #[doc(hidden)]
4179            impl ::core::convert::From<DEFAULT_ADMIN_ROLECall>
4180            for UnderlyingRustTuple<'_> {
4181                fn from(value: DEFAULT_ADMIN_ROLECall) -> Self {
4182                    ()
4183                }
4184            }
4185            #[automatically_derived]
4186            #[doc(hidden)]
4187            impl ::core::convert::From<UnderlyingRustTuple<'_>>
4188            for DEFAULT_ADMIN_ROLECall {
4189                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4190                    Self
4191                }
4192            }
4193        }
4194        {
4195            #[doc(hidden)]
4196            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
4197            #[doc(hidden)]
4198            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
4199            #[cfg(test)]
4200            #[allow(dead_code, unreachable_patterns)]
4201            fn _type_assertion(
4202                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4203            ) {
4204                match _t {
4205                    alloy_sol_types::private::AssertTypeEq::<
4206                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4207                    >(_) => {}
4208                }
4209            }
4210            #[automatically_derived]
4211            #[doc(hidden)]
4212            impl ::core::convert::From<DEFAULT_ADMIN_ROLEReturn>
4213            for UnderlyingRustTuple<'_> {
4214                fn from(value: DEFAULT_ADMIN_ROLEReturn) -> Self {
4215                    (value._0,)
4216                }
4217            }
4218            #[automatically_derived]
4219            #[doc(hidden)]
4220            impl ::core::convert::From<UnderlyingRustTuple<'_>>
4221            for DEFAULT_ADMIN_ROLEReturn {
4222                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4223                    Self { _0: tuple.0 }
4224                }
4225            }
4226        }
4227        #[automatically_derived]
4228        impl alloy_sol_types::SolCall for DEFAULT_ADMIN_ROLECall {
4229            type Parameters<'a> = ();
4230            type Token<'a> = <Self::Parameters<
4231                'a,
4232            > as alloy_sol_types::SolType>::Token<'a>;
4233            type Return = alloy::sol_types::private::FixedBytes<32>;
4234            type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
4235            type ReturnToken<'a> = <Self::ReturnTuple<
4236                'a,
4237            > as alloy_sol_types::SolType>::Token<'a>;
4238            const SIGNATURE: &'static str = "DEFAULT_ADMIN_ROLE()";
4239            const SELECTOR: [u8; 4] = [162u8, 23u8, 253u8, 223u8];
4240            #[inline]
4241            fn new<'a>(
4242                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4243            ) -> Self {
4244                tuple.into()
4245            }
4246            #[inline]
4247            fn tokenize(&self) -> Self::Token<'_> {
4248                ()
4249            }
4250            #[inline]
4251            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
4252                (
4253                    <alloy::sol_types::sol_data::FixedBytes<
4254                        32,
4255                    > as alloy_sol_types::SolType>::tokenize(ret),
4256                )
4257            }
4258            #[inline]
4259            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4260                <Self::ReturnTuple<
4261                    '_,
4262                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4263                    .map(|r| {
4264                        let r: DEFAULT_ADMIN_ROLEReturn = r.into();
4265                        r._0
4266                    })
4267            }
4268            #[inline]
4269            fn abi_decode_returns_validate(
4270                data: &[u8],
4271            ) -> alloy_sol_types::Result<Self::Return> {
4272                <Self::ReturnTuple<
4273                    '_,
4274                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4275                    .map(|r| {
4276                        let r: DEFAULT_ADMIN_ROLEReturn = r.into();
4277                        r._0
4278                    })
4279            }
4280        }
4281    };
4282    #[derive(serde::Serialize, serde::Deserialize)]
4283    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4284    /**Function with signature `MAX_DAILY_LIMIT_BASIS_POINTS()` and selector `0xcf21395b`.
4285```solidity
4286function MAX_DAILY_LIMIT_BASIS_POINTS() external view returns (uint256);
4287```*/
4288    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4289    #[derive(Clone)]
4290    pub struct MAX_DAILY_LIMIT_BASIS_POINTSCall;
4291    #[derive(serde::Serialize, serde::Deserialize)]
4292    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4293    ///Container type for the return parameters of the [`MAX_DAILY_LIMIT_BASIS_POINTS()`](MAX_DAILY_LIMIT_BASIS_POINTSCall) function.
4294    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4295    #[derive(Clone)]
4296    pub struct MAX_DAILY_LIMIT_BASIS_POINTSReturn {
4297        #[allow(missing_docs)]
4298        pub _0: alloy::sol_types::private::primitives::aliases::U256,
4299    }
4300    #[allow(
4301        non_camel_case_types,
4302        non_snake_case,
4303        clippy::pub_underscore_fields,
4304        clippy::style
4305    )]
4306    const _: () = {
4307        use alloy::sol_types as alloy_sol_types;
4308        {
4309            #[doc(hidden)]
4310            type UnderlyingSolTuple<'a> = ();
4311            #[doc(hidden)]
4312            type UnderlyingRustTuple<'a> = ();
4313            #[cfg(test)]
4314            #[allow(dead_code, unreachable_patterns)]
4315            fn _type_assertion(
4316                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4317            ) {
4318                match _t {
4319                    alloy_sol_types::private::AssertTypeEq::<
4320                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4321                    >(_) => {}
4322                }
4323            }
4324            #[automatically_derived]
4325            #[doc(hidden)]
4326            impl ::core::convert::From<MAX_DAILY_LIMIT_BASIS_POINTSCall>
4327            for UnderlyingRustTuple<'_> {
4328                fn from(value: MAX_DAILY_LIMIT_BASIS_POINTSCall) -> Self {
4329                    ()
4330                }
4331            }
4332            #[automatically_derived]
4333            #[doc(hidden)]
4334            impl ::core::convert::From<UnderlyingRustTuple<'_>>
4335            for MAX_DAILY_LIMIT_BASIS_POINTSCall {
4336                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4337                    Self
4338                }
4339            }
4340        }
4341        {
4342            #[doc(hidden)]
4343            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4344            #[doc(hidden)]
4345            type UnderlyingRustTuple<'a> = (
4346                alloy::sol_types::private::primitives::aliases::U256,
4347            );
4348            #[cfg(test)]
4349            #[allow(dead_code, unreachable_patterns)]
4350            fn _type_assertion(
4351                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4352            ) {
4353                match _t {
4354                    alloy_sol_types::private::AssertTypeEq::<
4355                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4356                    >(_) => {}
4357                }
4358            }
4359            #[automatically_derived]
4360            #[doc(hidden)]
4361            impl ::core::convert::From<MAX_DAILY_LIMIT_BASIS_POINTSReturn>
4362            for UnderlyingRustTuple<'_> {
4363                fn from(value: MAX_DAILY_LIMIT_BASIS_POINTSReturn) -> Self {
4364                    (value._0,)
4365                }
4366            }
4367            #[automatically_derived]
4368            #[doc(hidden)]
4369            impl ::core::convert::From<UnderlyingRustTuple<'_>>
4370            for MAX_DAILY_LIMIT_BASIS_POINTSReturn {
4371                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4372                    Self { _0: tuple.0 }
4373                }
4374            }
4375        }
4376        #[automatically_derived]
4377        impl alloy_sol_types::SolCall for MAX_DAILY_LIMIT_BASIS_POINTSCall {
4378            type Parameters<'a> = ();
4379            type Token<'a> = <Self::Parameters<
4380                'a,
4381            > as alloy_sol_types::SolType>::Token<'a>;
4382            type Return = alloy::sol_types::private::primitives::aliases::U256;
4383            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4384            type ReturnToken<'a> = <Self::ReturnTuple<
4385                'a,
4386            > as alloy_sol_types::SolType>::Token<'a>;
4387            const SIGNATURE: &'static str = "MAX_DAILY_LIMIT_BASIS_POINTS()";
4388            const SELECTOR: [u8; 4] = [207u8, 33u8, 57u8, 91u8];
4389            #[inline]
4390            fn new<'a>(
4391                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4392            ) -> Self {
4393                tuple.into()
4394            }
4395            #[inline]
4396            fn tokenize(&self) -> Self::Token<'_> {
4397                ()
4398            }
4399            #[inline]
4400            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
4401                (
4402                    <alloy::sol_types::sol_data::Uint<
4403                        256,
4404                    > as alloy_sol_types::SolType>::tokenize(ret),
4405                )
4406            }
4407            #[inline]
4408            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4409                <Self::ReturnTuple<
4410                    '_,
4411                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4412                    .map(|r| {
4413                        let r: MAX_DAILY_LIMIT_BASIS_POINTSReturn = r.into();
4414                        r._0
4415                    })
4416            }
4417            #[inline]
4418            fn abi_decode_returns_validate(
4419                data: &[u8],
4420            ) -> alloy_sol_types::Result<Self::Return> {
4421                <Self::ReturnTuple<
4422                    '_,
4423                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4424                    .map(|r| {
4425                        let r: MAX_DAILY_LIMIT_BASIS_POINTSReturn = r.into();
4426                        r._0
4427                    })
4428            }
4429        }
4430    };
4431    #[derive(serde::Serialize, serde::Deserialize)]
4432    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4433    /**Function with signature `PAUSER_ROLE()` and selector `0xe63ab1e9`.
4434```solidity
4435function PAUSER_ROLE() external view returns (bytes32);
4436```*/
4437    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4438    #[derive(Clone)]
4439    pub struct PAUSER_ROLECall;
4440    #[derive(serde::Serialize, serde::Deserialize)]
4441    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4442    ///Container type for the return parameters of the [`PAUSER_ROLE()`](PAUSER_ROLECall) function.
4443    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4444    #[derive(Clone)]
4445    pub struct PAUSER_ROLEReturn {
4446        #[allow(missing_docs)]
4447        pub _0: alloy::sol_types::private::FixedBytes<32>,
4448    }
4449    #[allow(
4450        non_camel_case_types,
4451        non_snake_case,
4452        clippy::pub_underscore_fields,
4453        clippy::style
4454    )]
4455    const _: () = {
4456        use alloy::sol_types as alloy_sol_types;
4457        {
4458            #[doc(hidden)]
4459            type UnderlyingSolTuple<'a> = ();
4460            #[doc(hidden)]
4461            type UnderlyingRustTuple<'a> = ();
4462            #[cfg(test)]
4463            #[allow(dead_code, unreachable_patterns)]
4464            fn _type_assertion(
4465                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4466            ) {
4467                match _t {
4468                    alloy_sol_types::private::AssertTypeEq::<
4469                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4470                    >(_) => {}
4471                }
4472            }
4473            #[automatically_derived]
4474            #[doc(hidden)]
4475            impl ::core::convert::From<PAUSER_ROLECall> for UnderlyingRustTuple<'_> {
4476                fn from(value: PAUSER_ROLECall) -> Self {
4477                    ()
4478                }
4479            }
4480            #[automatically_derived]
4481            #[doc(hidden)]
4482            impl ::core::convert::From<UnderlyingRustTuple<'_>> for PAUSER_ROLECall {
4483                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4484                    Self
4485                }
4486            }
4487        }
4488        {
4489            #[doc(hidden)]
4490            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
4491            #[doc(hidden)]
4492            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
4493            #[cfg(test)]
4494            #[allow(dead_code, unreachable_patterns)]
4495            fn _type_assertion(
4496                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4497            ) {
4498                match _t {
4499                    alloy_sol_types::private::AssertTypeEq::<
4500                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4501                    >(_) => {}
4502                }
4503            }
4504            #[automatically_derived]
4505            #[doc(hidden)]
4506            impl ::core::convert::From<PAUSER_ROLEReturn> for UnderlyingRustTuple<'_> {
4507                fn from(value: PAUSER_ROLEReturn) -> Self {
4508                    (value._0,)
4509                }
4510            }
4511            #[automatically_derived]
4512            #[doc(hidden)]
4513            impl ::core::convert::From<UnderlyingRustTuple<'_>> for PAUSER_ROLEReturn {
4514                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4515                    Self { _0: tuple.0 }
4516                }
4517            }
4518        }
4519        #[automatically_derived]
4520        impl alloy_sol_types::SolCall for PAUSER_ROLECall {
4521            type Parameters<'a> = ();
4522            type Token<'a> = <Self::Parameters<
4523                'a,
4524            > as alloy_sol_types::SolType>::Token<'a>;
4525            type Return = alloy::sol_types::private::FixedBytes<32>;
4526            type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
4527            type ReturnToken<'a> = <Self::ReturnTuple<
4528                'a,
4529            > as alloy_sol_types::SolType>::Token<'a>;
4530            const SIGNATURE: &'static str = "PAUSER_ROLE()";
4531            const SELECTOR: [u8; 4] = [230u8, 58u8, 177u8, 233u8];
4532            #[inline]
4533            fn new<'a>(
4534                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4535            ) -> Self {
4536                tuple.into()
4537            }
4538            #[inline]
4539            fn tokenize(&self) -> Self::Token<'_> {
4540                ()
4541            }
4542            #[inline]
4543            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
4544                (
4545                    <alloy::sol_types::sol_data::FixedBytes<
4546                        32,
4547                    > as alloy_sol_types::SolType>::tokenize(ret),
4548                )
4549            }
4550            #[inline]
4551            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4552                <Self::ReturnTuple<
4553                    '_,
4554                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4555                    .map(|r| {
4556                        let r: PAUSER_ROLEReturn = r.into();
4557                        r._0
4558                    })
4559            }
4560            #[inline]
4561            fn abi_decode_returns_validate(
4562                data: &[u8],
4563            ) -> alloy_sol_types::Result<Self::Return> {
4564                <Self::ReturnTuple<
4565                    '_,
4566                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4567                    .map(|r| {
4568                        let r: PAUSER_ROLEReturn = r.into();
4569                        r._0
4570                    })
4571            }
4572        }
4573    };
4574    #[derive(serde::Serialize, serde::Deserialize)]
4575    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4576    /**Function with signature `UPGRADE_INTERFACE_VERSION()` and selector `0xad3cb1cc`.
4577```solidity
4578function UPGRADE_INTERFACE_VERSION() external view returns (string memory);
4579```*/
4580    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4581    #[derive(Clone)]
4582    pub struct UPGRADE_INTERFACE_VERSIONCall;
4583    #[derive(serde::Serialize, serde::Deserialize)]
4584    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4585    ///Container type for the return parameters of the [`UPGRADE_INTERFACE_VERSION()`](UPGRADE_INTERFACE_VERSIONCall) function.
4586    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4587    #[derive(Clone)]
4588    pub struct UPGRADE_INTERFACE_VERSIONReturn {
4589        #[allow(missing_docs)]
4590        pub _0: alloy::sol_types::private::String,
4591    }
4592    #[allow(
4593        non_camel_case_types,
4594        non_snake_case,
4595        clippy::pub_underscore_fields,
4596        clippy::style
4597    )]
4598    const _: () = {
4599        use alloy::sol_types as alloy_sol_types;
4600        {
4601            #[doc(hidden)]
4602            type UnderlyingSolTuple<'a> = ();
4603            #[doc(hidden)]
4604            type UnderlyingRustTuple<'a> = ();
4605            #[cfg(test)]
4606            #[allow(dead_code, unreachable_patterns)]
4607            fn _type_assertion(
4608                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4609            ) {
4610                match _t {
4611                    alloy_sol_types::private::AssertTypeEq::<
4612                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4613                    >(_) => {}
4614                }
4615            }
4616            #[automatically_derived]
4617            #[doc(hidden)]
4618            impl ::core::convert::From<UPGRADE_INTERFACE_VERSIONCall>
4619            for UnderlyingRustTuple<'_> {
4620                fn from(value: UPGRADE_INTERFACE_VERSIONCall) -> Self {
4621                    ()
4622                }
4623            }
4624            #[automatically_derived]
4625            #[doc(hidden)]
4626            impl ::core::convert::From<UnderlyingRustTuple<'_>>
4627            for UPGRADE_INTERFACE_VERSIONCall {
4628                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4629                    Self
4630                }
4631            }
4632        }
4633        {
4634            #[doc(hidden)]
4635            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,);
4636            #[doc(hidden)]
4637            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,);
4638            #[cfg(test)]
4639            #[allow(dead_code, unreachable_patterns)]
4640            fn _type_assertion(
4641                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4642            ) {
4643                match _t {
4644                    alloy_sol_types::private::AssertTypeEq::<
4645                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4646                    >(_) => {}
4647                }
4648            }
4649            #[automatically_derived]
4650            #[doc(hidden)]
4651            impl ::core::convert::From<UPGRADE_INTERFACE_VERSIONReturn>
4652            for UnderlyingRustTuple<'_> {
4653                fn from(value: UPGRADE_INTERFACE_VERSIONReturn) -> Self {
4654                    (value._0,)
4655                }
4656            }
4657            #[automatically_derived]
4658            #[doc(hidden)]
4659            impl ::core::convert::From<UnderlyingRustTuple<'_>>
4660            for UPGRADE_INTERFACE_VERSIONReturn {
4661                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4662                    Self { _0: tuple.0 }
4663                }
4664            }
4665        }
4666        #[automatically_derived]
4667        impl alloy_sol_types::SolCall for UPGRADE_INTERFACE_VERSIONCall {
4668            type Parameters<'a> = ();
4669            type Token<'a> = <Self::Parameters<
4670                'a,
4671            > as alloy_sol_types::SolType>::Token<'a>;
4672            type Return = alloy::sol_types::private::String;
4673            type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,);
4674            type ReturnToken<'a> = <Self::ReturnTuple<
4675                'a,
4676            > as alloy_sol_types::SolType>::Token<'a>;
4677            const SIGNATURE: &'static str = "UPGRADE_INTERFACE_VERSION()";
4678            const SELECTOR: [u8; 4] = [173u8, 60u8, 177u8, 204u8];
4679            #[inline]
4680            fn new<'a>(
4681                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4682            ) -> Self {
4683                tuple.into()
4684            }
4685            #[inline]
4686            fn tokenize(&self) -> Self::Token<'_> {
4687                ()
4688            }
4689            #[inline]
4690            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
4691                (
4692                    <alloy::sol_types::sol_data::String as alloy_sol_types::SolType>::tokenize(
4693                        ret,
4694                    ),
4695                )
4696            }
4697            #[inline]
4698            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4699                <Self::ReturnTuple<
4700                    '_,
4701                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4702                    .map(|r| {
4703                        let r: UPGRADE_INTERFACE_VERSIONReturn = r.into();
4704                        r._0
4705                    })
4706            }
4707            #[inline]
4708            fn abi_decode_returns_validate(
4709                data: &[u8],
4710            ) -> alloy_sol_types::Result<Self::Return> {
4711                <Self::ReturnTuple<
4712                    '_,
4713                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4714                    .map(|r| {
4715                        let r: UPGRADE_INTERFACE_VERSIONReturn = r.into();
4716                        r._0
4717                    })
4718            }
4719        }
4720    };
4721    #[derive(serde::Serialize, serde::Deserialize)]
4722    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4723    /**Function with signature `claimRewards(uint256,bytes)` and selector `0x549dd8c3`.
4724```solidity
4725function claimRewards(uint256 lifetimeRewards, bytes memory authData) external;
4726```*/
4727    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4728    #[derive(Clone)]
4729    pub struct claimRewardsCall {
4730        #[allow(missing_docs)]
4731        pub lifetimeRewards: alloy::sol_types::private::primitives::aliases::U256,
4732        #[allow(missing_docs)]
4733        pub authData: alloy::sol_types::private::Bytes,
4734    }
4735    ///Container type for the return parameters of the [`claimRewards(uint256,bytes)`](claimRewardsCall) function.
4736    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4737    #[derive(Clone)]
4738    pub struct claimRewardsReturn {}
4739    #[allow(
4740        non_camel_case_types,
4741        non_snake_case,
4742        clippy::pub_underscore_fields,
4743        clippy::style
4744    )]
4745    const _: () = {
4746        use alloy::sol_types as alloy_sol_types;
4747        {
4748            #[doc(hidden)]
4749            type UnderlyingSolTuple<'a> = (
4750                alloy::sol_types::sol_data::Uint<256>,
4751                alloy::sol_types::sol_data::Bytes,
4752            );
4753            #[doc(hidden)]
4754            type UnderlyingRustTuple<'a> = (
4755                alloy::sol_types::private::primitives::aliases::U256,
4756                alloy::sol_types::private::Bytes,
4757            );
4758            #[cfg(test)]
4759            #[allow(dead_code, unreachable_patterns)]
4760            fn _type_assertion(
4761                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4762            ) {
4763                match _t {
4764                    alloy_sol_types::private::AssertTypeEq::<
4765                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4766                    >(_) => {}
4767                }
4768            }
4769            #[automatically_derived]
4770            #[doc(hidden)]
4771            impl ::core::convert::From<claimRewardsCall> for UnderlyingRustTuple<'_> {
4772                fn from(value: claimRewardsCall) -> Self {
4773                    (value.lifetimeRewards, value.authData)
4774                }
4775            }
4776            #[automatically_derived]
4777            #[doc(hidden)]
4778            impl ::core::convert::From<UnderlyingRustTuple<'_>> for claimRewardsCall {
4779                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4780                    Self {
4781                        lifetimeRewards: tuple.0,
4782                        authData: tuple.1,
4783                    }
4784                }
4785            }
4786        }
4787        {
4788            #[doc(hidden)]
4789            type UnderlyingSolTuple<'a> = ();
4790            #[doc(hidden)]
4791            type UnderlyingRustTuple<'a> = ();
4792            #[cfg(test)]
4793            #[allow(dead_code, unreachable_patterns)]
4794            fn _type_assertion(
4795                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4796            ) {
4797                match _t {
4798                    alloy_sol_types::private::AssertTypeEq::<
4799                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4800                    >(_) => {}
4801                }
4802            }
4803            #[automatically_derived]
4804            #[doc(hidden)]
4805            impl ::core::convert::From<claimRewardsReturn> for UnderlyingRustTuple<'_> {
4806                fn from(value: claimRewardsReturn) -> Self {
4807                    ()
4808                }
4809            }
4810            #[automatically_derived]
4811            #[doc(hidden)]
4812            impl ::core::convert::From<UnderlyingRustTuple<'_>> for claimRewardsReturn {
4813                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4814                    Self {}
4815                }
4816            }
4817        }
4818        impl claimRewardsReturn {
4819            fn _tokenize(
4820                &self,
4821            ) -> <claimRewardsCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
4822                ()
4823            }
4824        }
4825        #[automatically_derived]
4826        impl alloy_sol_types::SolCall for claimRewardsCall {
4827            type Parameters<'a> = (
4828                alloy::sol_types::sol_data::Uint<256>,
4829                alloy::sol_types::sol_data::Bytes,
4830            );
4831            type Token<'a> = <Self::Parameters<
4832                'a,
4833            > as alloy_sol_types::SolType>::Token<'a>;
4834            type Return = claimRewardsReturn;
4835            type ReturnTuple<'a> = ();
4836            type ReturnToken<'a> = <Self::ReturnTuple<
4837                'a,
4838            > as alloy_sol_types::SolType>::Token<'a>;
4839            const SIGNATURE: &'static str = "claimRewards(uint256,bytes)";
4840            const SELECTOR: [u8; 4] = [84u8, 157u8, 216u8, 195u8];
4841            #[inline]
4842            fn new<'a>(
4843                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4844            ) -> Self {
4845                tuple.into()
4846            }
4847            #[inline]
4848            fn tokenize(&self) -> Self::Token<'_> {
4849                (
4850                    <alloy::sol_types::sol_data::Uint<
4851                        256,
4852                    > as alloy_sol_types::SolType>::tokenize(&self.lifetimeRewards),
4853                    <alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
4854                        &self.authData,
4855                    ),
4856                )
4857            }
4858            #[inline]
4859            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
4860                claimRewardsReturn::_tokenize(ret)
4861            }
4862            #[inline]
4863            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
4864                <Self::ReturnTuple<
4865                    '_,
4866                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
4867                    .map(Into::into)
4868            }
4869            #[inline]
4870            fn abi_decode_returns_validate(
4871                data: &[u8],
4872            ) -> alloy_sol_types::Result<Self::Return> {
4873                <Self::ReturnTuple<
4874                    '_,
4875                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
4876                    .map(Into::into)
4877            }
4878        }
4879    };
4880    #[derive(serde::Serialize, serde::Deserialize)]
4881    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4882    /**Function with signature `claimedRewards(address)` and selector `0xbd834345`.
4883```solidity
4884function claimedRewards(address claimer) external view returns (uint256 claimed);
4885```*/
4886    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4887    #[derive(Clone)]
4888    pub struct claimedRewardsCall {
4889        #[allow(missing_docs)]
4890        pub claimer: alloy::sol_types::private::Address,
4891    }
4892    #[derive(serde::Serialize, serde::Deserialize)]
4893    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4894    ///Container type for the return parameters of the [`claimedRewards(address)`](claimedRewardsCall) function.
4895    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4896    #[derive(Clone)]
4897    pub struct claimedRewardsReturn {
4898        #[allow(missing_docs)]
4899        pub claimed: alloy::sol_types::private::primitives::aliases::U256,
4900    }
4901    #[allow(
4902        non_camel_case_types,
4903        non_snake_case,
4904        clippy::pub_underscore_fields,
4905        clippy::style
4906    )]
4907    const _: () = {
4908        use alloy::sol_types as alloy_sol_types;
4909        {
4910            #[doc(hidden)]
4911            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
4912            #[doc(hidden)]
4913            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
4914            #[cfg(test)]
4915            #[allow(dead_code, unreachable_patterns)]
4916            fn _type_assertion(
4917                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4918            ) {
4919                match _t {
4920                    alloy_sol_types::private::AssertTypeEq::<
4921                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4922                    >(_) => {}
4923                }
4924            }
4925            #[automatically_derived]
4926            #[doc(hidden)]
4927            impl ::core::convert::From<claimedRewardsCall> for UnderlyingRustTuple<'_> {
4928                fn from(value: claimedRewardsCall) -> Self {
4929                    (value.claimer,)
4930                }
4931            }
4932            #[automatically_derived]
4933            #[doc(hidden)]
4934            impl ::core::convert::From<UnderlyingRustTuple<'_>> for claimedRewardsCall {
4935                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4936                    Self { claimer: tuple.0 }
4937                }
4938            }
4939        }
4940        {
4941            #[doc(hidden)]
4942            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4943            #[doc(hidden)]
4944            type UnderlyingRustTuple<'a> = (
4945                alloy::sol_types::private::primitives::aliases::U256,
4946            );
4947            #[cfg(test)]
4948            #[allow(dead_code, unreachable_patterns)]
4949            fn _type_assertion(
4950                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4951            ) {
4952                match _t {
4953                    alloy_sol_types::private::AssertTypeEq::<
4954                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4955                    >(_) => {}
4956                }
4957            }
4958            #[automatically_derived]
4959            #[doc(hidden)]
4960            impl ::core::convert::From<claimedRewardsReturn>
4961            for UnderlyingRustTuple<'_> {
4962                fn from(value: claimedRewardsReturn) -> Self {
4963                    (value.claimed,)
4964                }
4965            }
4966            #[automatically_derived]
4967            #[doc(hidden)]
4968            impl ::core::convert::From<UnderlyingRustTuple<'_>>
4969            for claimedRewardsReturn {
4970                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4971                    Self { claimed: tuple.0 }
4972                }
4973            }
4974        }
4975        #[automatically_derived]
4976        impl alloy_sol_types::SolCall for claimedRewardsCall {
4977            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
4978            type Token<'a> = <Self::Parameters<
4979                'a,
4980            > as alloy_sol_types::SolType>::Token<'a>;
4981            type Return = alloy::sol_types::private::primitives::aliases::U256;
4982            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4983            type ReturnToken<'a> = <Self::ReturnTuple<
4984                'a,
4985            > as alloy_sol_types::SolType>::Token<'a>;
4986            const SIGNATURE: &'static str = "claimedRewards(address)";
4987            const SELECTOR: [u8; 4] = [189u8, 131u8, 67u8, 69u8];
4988            #[inline]
4989            fn new<'a>(
4990                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4991            ) -> Self {
4992                tuple.into()
4993            }
4994            #[inline]
4995            fn tokenize(&self) -> Self::Token<'_> {
4996                (
4997                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
4998                        &self.claimer,
4999                    ),
5000                )
5001            }
5002            #[inline]
5003            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
5004                (
5005                    <alloy::sol_types::sol_data::Uint<
5006                        256,
5007                    > as alloy_sol_types::SolType>::tokenize(ret),
5008                )
5009            }
5010            #[inline]
5011            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
5012                <Self::ReturnTuple<
5013                    '_,
5014                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
5015                    .map(|r| {
5016                        let r: claimedRewardsReturn = r.into();
5017                        r.claimed
5018                    })
5019            }
5020            #[inline]
5021            fn abi_decode_returns_validate(
5022                data: &[u8],
5023            ) -> alloy_sol_types::Result<Self::Return> {
5024                <Self::ReturnTuple<
5025                    '_,
5026                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
5027                    .map(|r| {
5028                        let r: claimedRewardsReturn = r.into();
5029                        r.claimed
5030                    })
5031            }
5032        }
5033    };
5034    #[derive(serde::Serialize, serde::Deserialize)]
5035    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5036    /**Function with signature `currentAdmin()` and selector `0xba4bcd72`.
5037```solidity
5038function currentAdmin() external view returns (address);
5039```*/
5040    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5041    #[derive(Clone)]
5042    pub struct currentAdminCall;
5043    #[derive(serde::Serialize, serde::Deserialize)]
5044    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5045    ///Container type for the return parameters of the [`currentAdmin()`](currentAdminCall) function.
5046    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5047    #[derive(Clone)]
5048    pub struct currentAdminReturn {
5049        #[allow(missing_docs)]
5050        pub _0: alloy::sol_types::private::Address,
5051    }
5052    #[allow(
5053        non_camel_case_types,
5054        non_snake_case,
5055        clippy::pub_underscore_fields,
5056        clippy::style
5057    )]
5058    const _: () = {
5059        use alloy::sol_types as alloy_sol_types;
5060        {
5061            #[doc(hidden)]
5062            type UnderlyingSolTuple<'a> = ();
5063            #[doc(hidden)]
5064            type UnderlyingRustTuple<'a> = ();
5065            #[cfg(test)]
5066            #[allow(dead_code, unreachable_patterns)]
5067            fn _type_assertion(
5068                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5069            ) {
5070                match _t {
5071                    alloy_sol_types::private::AssertTypeEq::<
5072                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5073                    >(_) => {}
5074                }
5075            }
5076            #[automatically_derived]
5077            #[doc(hidden)]
5078            impl ::core::convert::From<currentAdminCall> for UnderlyingRustTuple<'_> {
5079                fn from(value: currentAdminCall) -> Self {
5080                    ()
5081                }
5082            }
5083            #[automatically_derived]
5084            #[doc(hidden)]
5085            impl ::core::convert::From<UnderlyingRustTuple<'_>> for currentAdminCall {
5086                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5087                    Self
5088                }
5089            }
5090        }
5091        {
5092            #[doc(hidden)]
5093            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
5094            #[doc(hidden)]
5095            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
5096            #[cfg(test)]
5097            #[allow(dead_code, unreachable_patterns)]
5098            fn _type_assertion(
5099                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5100            ) {
5101                match _t {
5102                    alloy_sol_types::private::AssertTypeEq::<
5103                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5104                    >(_) => {}
5105                }
5106            }
5107            #[automatically_derived]
5108            #[doc(hidden)]
5109            impl ::core::convert::From<currentAdminReturn> for UnderlyingRustTuple<'_> {
5110                fn from(value: currentAdminReturn) -> Self {
5111                    (value._0,)
5112                }
5113            }
5114            #[automatically_derived]
5115            #[doc(hidden)]
5116            impl ::core::convert::From<UnderlyingRustTuple<'_>> for currentAdminReturn {
5117                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5118                    Self { _0: tuple.0 }
5119                }
5120            }
5121        }
5122        #[automatically_derived]
5123        impl alloy_sol_types::SolCall for currentAdminCall {
5124            type Parameters<'a> = ();
5125            type Token<'a> = <Self::Parameters<
5126                'a,
5127            > as alloy_sol_types::SolType>::Token<'a>;
5128            type Return = alloy::sol_types::private::Address;
5129            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
5130            type ReturnToken<'a> = <Self::ReturnTuple<
5131                'a,
5132            > as alloy_sol_types::SolType>::Token<'a>;
5133            const SIGNATURE: &'static str = "currentAdmin()";
5134            const SELECTOR: [u8; 4] = [186u8, 75u8, 205u8, 114u8];
5135            #[inline]
5136            fn new<'a>(
5137                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5138            ) -> Self {
5139                tuple.into()
5140            }
5141            #[inline]
5142            fn tokenize(&self) -> Self::Token<'_> {
5143                ()
5144            }
5145            #[inline]
5146            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
5147                (
5148                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
5149                        ret,
5150                    ),
5151                )
5152            }
5153            #[inline]
5154            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
5155                <Self::ReturnTuple<
5156                    '_,
5157                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
5158                    .map(|r| {
5159                        let r: currentAdminReturn = r.into();
5160                        r._0
5161                    })
5162            }
5163            #[inline]
5164            fn abi_decode_returns_validate(
5165                data: &[u8],
5166            ) -> alloy_sol_types::Result<Self::Return> {
5167                <Self::ReturnTuple<
5168                    '_,
5169                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
5170                    .map(|r| {
5171                        let r: currentAdminReturn = r.into();
5172                        r._0
5173                    })
5174            }
5175        }
5176    };
5177    #[derive(serde::Serialize, serde::Deserialize)]
5178    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5179    /**Function with signature `dailyLimitWei()` and selector `0x2cca74d8`.
5180```solidity
5181function dailyLimitWei() external view returns (uint256);
5182```*/
5183    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5184    #[derive(Clone)]
5185    pub struct dailyLimitWeiCall;
5186    #[derive(serde::Serialize, serde::Deserialize)]
5187    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5188    ///Container type for the return parameters of the [`dailyLimitWei()`](dailyLimitWeiCall) function.
5189    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5190    #[derive(Clone)]
5191    pub struct dailyLimitWeiReturn {
5192        #[allow(missing_docs)]
5193        pub _0: alloy::sol_types::private::primitives::aliases::U256,
5194    }
5195    #[allow(
5196        non_camel_case_types,
5197        non_snake_case,
5198        clippy::pub_underscore_fields,
5199        clippy::style
5200    )]
5201    const _: () = {
5202        use alloy::sol_types as alloy_sol_types;
5203        {
5204            #[doc(hidden)]
5205            type UnderlyingSolTuple<'a> = ();
5206            #[doc(hidden)]
5207            type UnderlyingRustTuple<'a> = ();
5208            #[cfg(test)]
5209            #[allow(dead_code, unreachable_patterns)]
5210            fn _type_assertion(
5211                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5212            ) {
5213                match _t {
5214                    alloy_sol_types::private::AssertTypeEq::<
5215                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5216                    >(_) => {}
5217                }
5218            }
5219            #[automatically_derived]
5220            #[doc(hidden)]
5221            impl ::core::convert::From<dailyLimitWeiCall> for UnderlyingRustTuple<'_> {
5222                fn from(value: dailyLimitWeiCall) -> Self {
5223                    ()
5224                }
5225            }
5226            #[automatically_derived]
5227            #[doc(hidden)]
5228            impl ::core::convert::From<UnderlyingRustTuple<'_>> for dailyLimitWeiCall {
5229                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5230                    Self
5231                }
5232            }
5233        }
5234        {
5235            #[doc(hidden)]
5236            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
5237            #[doc(hidden)]
5238            type UnderlyingRustTuple<'a> = (
5239                alloy::sol_types::private::primitives::aliases::U256,
5240            );
5241            #[cfg(test)]
5242            #[allow(dead_code, unreachable_patterns)]
5243            fn _type_assertion(
5244                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5245            ) {
5246                match _t {
5247                    alloy_sol_types::private::AssertTypeEq::<
5248                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5249                    >(_) => {}
5250                }
5251            }
5252            #[automatically_derived]
5253            #[doc(hidden)]
5254            impl ::core::convert::From<dailyLimitWeiReturn> for UnderlyingRustTuple<'_> {
5255                fn from(value: dailyLimitWeiReturn) -> Self {
5256                    (value._0,)
5257                }
5258            }
5259            #[automatically_derived]
5260            #[doc(hidden)]
5261            impl ::core::convert::From<UnderlyingRustTuple<'_>> for dailyLimitWeiReturn {
5262                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5263                    Self { _0: tuple.0 }
5264                }
5265            }
5266        }
5267        #[automatically_derived]
5268        impl alloy_sol_types::SolCall for dailyLimitWeiCall {
5269            type Parameters<'a> = ();
5270            type Token<'a> = <Self::Parameters<
5271                'a,
5272            > as alloy_sol_types::SolType>::Token<'a>;
5273            type Return = alloy::sol_types::private::primitives::aliases::U256;
5274            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
5275            type ReturnToken<'a> = <Self::ReturnTuple<
5276                'a,
5277            > as alloy_sol_types::SolType>::Token<'a>;
5278            const SIGNATURE: &'static str = "dailyLimitWei()";
5279            const SELECTOR: [u8; 4] = [44u8, 202u8, 116u8, 216u8];
5280            #[inline]
5281            fn new<'a>(
5282                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5283            ) -> Self {
5284                tuple.into()
5285            }
5286            #[inline]
5287            fn tokenize(&self) -> Self::Token<'_> {
5288                ()
5289            }
5290            #[inline]
5291            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
5292                (
5293                    <alloy::sol_types::sol_data::Uint<
5294                        256,
5295                    > as alloy_sol_types::SolType>::tokenize(ret),
5296                )
5297            }
5298            #[inline]
5299            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
5300                <Self::ReturnTuple<
5301                    '_,
5302                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
5303                    .map(|r| {
5304                        let r: dailyLimitWeiReturn = r.into();
5305                        r._0
5306                    })
5307            }
5308            #[inline]
5309            fn abi_decode_returns_validate(
5310                data: &[u8],
5311            ) -> alloy_sol_types::Result<Self::Return> {
5312                <Self::ReturnTuple<
5313                    '_,
5314                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
5315                    .map(|r| {
5316                        let r: dailyLimitWeiReturn = r.into();
5317                        r._0
5318                    })
5319            }
5320        }
5321    };
5322    #[derive(serde::Serialize, serde::Deserialize)]
5323    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5324    /**Function with signature `espToken()` and selector `0xf092e13a`.
5325```solidity
5326function espToken() external view returns (address);
5327```*/
5328    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5329    #[derive(Clone)]
5330    pub struct espTokenCall;
5331    #[derive(serde::Serialize, serde::Deserialize)]
5332    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5333    ///Container type for the return parameters of the [`espToken()`](espTokenCall) function.
5334    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5335    #[derive(Clone)]
5336    pub struct espTokenReturn {
5337        #[allow(missing_docs)]
5338        pub _0: alloy::sol_types::private::Address,
5339    }
5340    #[allow(
5341        non_camel_case_types,
5342        non_snake_case,
5343        clippy::pub_underscore_fields,
5344        clippy::style
5345    )]
5346    const _: () = {
5347        use alloy::sol_types as alloy_sol_types;
5348        {
5349            #[doc(hidden)]
5350            type UnderlyingSolTuple<'a> = ();
5351            #[doc(hidden)]
5352            type UnderlyingRustTuple<'a> = ();
5353            #[cfg(test)]
5354            #[allow(dead_code, unreachable_patterns)]
5355            fn _type_assertion(
5356                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5357            ) {
5358                match _t {
5359                    alloy_sol_types::private::AssertTypeEq::<
5360                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5361                    >(_) => {}
5362                }
5363            }
5364            #[automatically_derived]
5365            #[doc(hidden)]
5366            impl ::core::convert::From<espTokenCall> for UnderlyingRustTuple<'_> {
5367                fn from(value: espTokenCall) -> Self {
5368                    ()
5369                }
5370            }
5371            #[automatically_derived]
5372            #[doc(hidden)]
5373            impl ::core::convert::From<UnderlyingRustTuple<'_>> for espTokenCall {
5374                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5375                    Self
5376                }
5377            }
5378        }
5379        {
5380            #[doc(hidden)]
5381            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
5382            #[doc(hidden)]
5383            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
5384            #[cfg(test)]
5385            #[allow(dead_code, unreachable_patterns)]
5386            fn _type_assertion(
5387                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5388            ) {
5389                match _t {
5390                    alloy_sol_types::private::AssertTypeEq::<
5391                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5392                    >(_) => {}
5393                }
5394            }
5395            #[automatically_derived]
5396            #[doc(hidden)]
5397            impl ::core::convert::From<espTokenReturn> for UnderlyingRustTuple<'_> {
5398                fn from(value: espTokenReturn) -> Self {
5399                    (value._0,)
5400                }
5401            }
5402            #[automatically_derived]
5403            #[doc(hidden)]
5404            impl ::core::convert::From<UnderlyingRustTuple<'_>> for espTokenReturn {
5405                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5406                    Self { _0: tuple.0 }
5407                }
5408            }
5409        }
5410        #[automatically_derived]
5411        impl alloy_sol_types::SolCall for espTokenCall {
5412            type Parameters<'a> = ();
5413            type Token<'a> = <Self::Parameters<
5414                'a,
5415            > as alloy_sol_types::SolType>::Token<'a>;
5416            type Return = alloy::sol_types::private::Address;
5417            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
5418            type ReturnToken<'a> = <Self::ReturnTuple<
5419                'a,
5420            > as alloy_sol_types::SolType>::Token<'a>;
5421            const SIGNATURE: &'static str = "espToken()";
5422            const SELECTOR: [u8; 4] = [240u8, 146u8, 225u8, 58u8];
5423            #[inline]
5424            fn new<'a>(
5425                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5426            ) -> Self {
5427                tuple.into()
5428            }
5429            #[inline]
5430            fn tokenize(&self) -> Self::Token<'_> {
5431                ()
5432            }
5433            #[inline]
5434            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
5435                (
5436                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
5437                        ret,
5438                    ),
5439                )
5440            }
5441            #[inline]
5442            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
5443                <Self::ReturnTuple<
5444                    '_,
5445                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
5446                    .map(|r| {
5447                        let r: espTokenReturn = r.into();
5448                        r._0
5449                    })
5450            }
5451            #[inline]
5452            fn abi_decode_returns_validate(
5453                data: &[u8],
5454            ) -> alloy_sol_types::Result<Self::Return> {
5455                <Self::ReturnTuple<
5456                    '_,
5457                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
5458                    .map(|r| {
5459                        let r: espTokenReturn = r.into();
5460                        r._0
5461                    })
5462            }
5463        }
5464    };
5465    #[derive(serde::Serialize, serde::Deserialize)]
5466    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5467    /**Function with signature `getRoleAdmin(bytes32)` and selector `0x248a9ca3`.
5468```solidity
5469function getRoleAdmin(bytes32 role) external view returns (bytes32);
5470```*/
5471    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5472    #[derive(Clone)]
5473    pub struct getRoleAdminCall {
5474        #[allow(missing_docs)]
5475        pub role: alloy::sol_types::private::FixedBytes<32>,
5476    }
5477    #[derive(serde::Serialize, serde::Deserialize)]
5478    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5479    ///Container type for the return parameters of the [`getRoleAdmin(bytes32)`](getRoleAdminCall) function.
5480    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5481    #[derive(Clone)]
5482    pub struct getRoleAdminReturn {
5483        #[allow(missing_docs)]
5484        pub _0: alloy::sol_types::private::FixedBytes<32>,
5485    }
5486    #[allow(
5487        non_camel_case_types,
5488        non_snake_case,
5489        clippy::pub_underscore_fields,
5490        clippy::style
5491    )]
5492    const _: () = {
5493        use alloy::sol_types as alloy_sol_types;
5494        {
5495            #[doc(hidden)]
5496            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
5497            #[doc(hidden)]
5498            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
5499            #[cfg(test)]
5500            #[allow(dead_code, unreachable_patterns)]
5501            fn _type_assertion(
5502                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5503            ) {
5504                match _t {
5505                    alloy_sol_types::private::AssertTypeEq::<
5506                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5507                    >(_) => {}
5508                }
5509            }
5510            #[automatically_derived]
5511            #[doc(hidden)]
5512            impl ::core::convert::From<getRoleAdminCall> for UnderlyingRustTuple<'_> {
5513                fn from(value: getRoleAdminCall) -> Self {
5514                    (value.role,)
5515                }
5516            }
5517            #[automatically_derived]
5518            #[doc(hidden)]
5519            impl ::core::convert::From<UnderlyingRustTuple<'_>> for getRoleAdminCall {
5520                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5521                    Self { role: tuple.0 }
5522                }
5523            }
5524        }
5525        {
5526            #[doc(hidden)]
5527            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
5528            #[doc(hidden)]
5529            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
5530            #[cfg(test)]
5531            #[allow(dead_code, unreachable_patterns)]
5532            fn _type_assertion(
5533                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5534            ) {
5535                match _t {
5536                    alloy_sol_types::private::AssertTypeEq::<
5537                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5538                    >(_) => {}
5539                }
5540            }
5541            #[automatically_derived]
5542            #[doc(hidden)]
5543            impl ::core::convert::From<getRoleAdminReturn> for UnderlyingRustTuple<'_> {
5544                fn from(value: getRoleAdminReturn) -> Self {
5545                    (value._0,)
5546                }
5547            }
5548            #[automatically_derived]
5549            #[doc(hidden)]
5550            impl ::core::convert::From<UnderlyingRustTuple<'_>> for getRoleAdminReturn {
5551                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5552                    Self { _0: tuple.0 }
5553                }
5554            }
5555        }
5556        #[automatically_derived]
5557        impl alloy_sol_types::SolCall for getRoleAdminCall {
5558            type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
5559            type Token<'a> = <Self::Parameters<
5560                'a,
5561            > as alloy_sol_types::SolType>::Token<'a>;
5562            type Return = alloy::sol_types::private::FixedBytes<32>;
5563            type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
5564            type ReturnToken<'a> = <Self::ReturnTuple<
5565                'a,
5566            > as alloy_sol_types::SolType>::Token<'a>;
5567            const SIGNATURE: &'static str = "getRoleAdmin(bytes32)";
5568            const SELECTOR: [u8; 4] = [36u8, 138u8, 156u8, 163u8];
5569            #[inline]
5570            fn new<'a>(
5571                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5572            ) -> Self {
5573                tuple.into()
5574            }
5575            #[inline]
5576            fn tokenize(&self) -> Self::Token<'_> {
5577                (
5578                    <alloy::sol_types::sol_data::FixedBytes<
5579                        32,
5580                    > as alloy_sol_types::SolType>::tokenize(&self.role),
5581                )
5582            }
5583            #[inline]
5584            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
5585                (
5586                    <alloy::sol_types::sol_data::FixedBytes<
5587                        32,
5588                    > as alloy_sol_types::SolType>::tokenize(ret),
5589                )
5590            }
5591            #[inline]
5592            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
5593                <Self::ReturnTuple<
5594                    '_,
5595                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
5596                    .map(|r| {
5597                        let r: getRoleAdminReturn = r.into();
5598                        r._0
5599                    })
5600            }
5601            #[inline]
5602            fn abi_decode_returns_validate(
5603                data: &[u8],
5604            ) -> alloy_sol_types::Result<Self::Return> {
5605                <Self::ReturnTuple<
5606                    '_,
5607                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
5608                    .map(|r| {
5609                        let r: getRoleAdminReturn = r.into();
5610                        r._0
5611                    })
5612            }
5613        }
5614    };
5615    #[derive(serde::Serialize, serde::Deserialize)]
5616    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5617    /**Function with signature `getVersion()` and selector `0x0d8e6e2c`.
5618```solidity
5619function getVersion() external pure returns (uint8 majorVersion, uint8 minorVersion, uint8 patchVersion);
5620```*/
5621    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5622    #[derive(Clone)]
5623    pub struct getVersionCall;
5624    #[derive(serde::Serialize, serde::Deserialize)]
5625    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5626    ///Container type for the return parameters of the [`getVersion()`](getVersionCall) function.
5627    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5628    #[derive(Clone)]
5629    pub struct getVersionReturn {
5630        #[allow(missing_docs)]
5631        pub majorVersion: u8,
5632        #[allow(missing_docs)]
5633        pub minorVersion: u8,
5634        #[allow(missing_docs)]
5635        pub patchVersion: u8,
5636    }
5637    #[allow(
5638        non_camel_case_types,
5639        non_snake_case,
5640        clippy::pub_underscore_fields,
5641        clippy::style
5642    )]
5643    const _: () = {
5644        use alloy::sol_types as alloy_sol_types;
5645        {
5646            #[doc(hidden)]
5647            type UnderlyingSolTuple<'a> = ();
5648            #[doc(hidden)]
5649            type UnderlyingRustTuple<'a> = ();
5650            #[cfg(test)]
5651            #[allow(dead_code, unreachable_patterns)]
5652            fn _type_assertion(
5653                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5654            ) {
5655                match _t {
5656                    alloy_sol_types::private::AssertTypeEq::<
5657                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5658                    >(_) => {}
5659                }
5660            }
5661            #[automatically_derived]
5662            #[doc(hidden)]
5663            impl ::core::convert::From<getVersionCall> for UnderlyingRustTuple<'_> {
5664                fn from(value: getVersionCall) -> Self {
5665                    ()
5666                }
5667            }
5668            #[automatically_derived]
5669            #[doc(hidden)]
5670            impl ::core::convert::From<UnderlyingRustTuple<'_>> for getVersionCall {
5671                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5672                    Self
5673                }
5674            }
5675        }
5676        {
5677            #[doc(hidden)]
5678            type UnderlyingSolTuple<'a> = (
5679                alloy::sol_types::sol_data::Uint<8>,
5680                alloy::sol_types::sol_data::Uint<8>,
5681                alloy::sol_types::sol_data::Uint<8>,
5682            );
5683            #[doc(hidden)]
5684            type UnderlyingRustTuple<'a> = (u8, u8, u8);
5685            #[cfg(test)]
5686            #[allow(dead_code, unreachable_patterns)]
5687            fn _type_assertion(
5688                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5689            ) {
5690                match _t {
5691                    alloy_sol_types::private::AssertTypeEq::<
5692                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5693                    >(_) => {}
5694                }
5695            }
5696            #[automatically_derived]
5697            #[doc(hidden)]
5698            impl ::core::convert::From<getVersionReturn> for UnderlyingRustTuple<'_> {
5699                fn from(value: getVersionReturn) -> Self {
5700                    (value.majorVersion, value.minorVersion, value.patchVersion)
5701                }
5702            }
5703            #[automatically_derived]
5704            #[doc(hidden)]
5705            impl ::core::convert::From<UnderlyingRustTuple<'_>> for getVersionReturn {
5706                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5707                    Self {
5708                        majorVersion: tuple.0,
5709                        minorVersion: tuple.1,
5710                        patchVersion: tuple.2,
5711                    }
5712                }
5713            }
5714        }
5715        impl getVersionReturn {
5716            fn _tokenize(
5717                &self,
5718            ) -> <getVersionCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
5719                (
5720                    <alloy::sol_types::sol_data::Uint<
5721                        8,
5722                    > as alloy_sol_types::SolType>::tokenize(&self.majorVersion),
5723                    <alloy::sol_types::sol_data::Uint<
5724                        8,
5725                    > as alloy_sol_types::SolType>::tokenize(&self.minorVersion),
5726                    <alloy::sol_types::sol_data::Uint<
5727                        8,
5728                    > as alloy_sol_types::SolType>::tokenize(&self.patchVersion),
5729                )
5730            }
5731        }
5732        #[automatically_derived]
5733        impl alloy_sol_types::SolCall for getVersionCall {
5734            type Parameters<'a> = ();
5735            type Token<'a> = <Self::Parameters<
5736                'a,
5737            > as alloy_sol_types::SolType>::Token<'a>;
5738            type Return = getVersionReturn;
5739            type ReturnTuple<'a> = (
5740                alloy::sol_types::sol_data::Uint<8>,
5741                alloy::sol_types::sol_data::Uint<8>,
5742                alloy::sol_types::sol_data::Uint<8>,
5743            );
5744            type ReturnToken<'a> = <Self::ReturnTuple<
5745                'a,
5746            > as alloy_sol_types::SolType>::Token<'a>;
5747            const SIGNATURE: &'static str = "getVersion()";
5748            const SELECTOR: [u8; 4] = [13u8, 142u8, 110u8, 44u8];
5749            #[inline]
5750            fn new<'a>(
5751                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5752            ) -> Self {
5753                tuple.into()
5754            }
5755            #[inline]
5756            fn tokenize(&self) -> Self::Token<'_> {
5757                ()
5758            }
5759            #[inline]
5760            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
5761                getVersionReturn::_tokenize(ret)
5762            }
5763            #[inline]
5764            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
5765                <Self::ReturnTuple<
5766                    '_,
5767                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
5768                    .map(Into::into)
5769            }
5770            #[inline]
5771            fn abi_decode_returns_validate(
5772                data: &[u8],
5773            ) -> alloy_sol_types::Result<Self::Return> {
5774                <Self::ReturnTuple<
5775                    '_,
5776                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
5777                    .map(Into::into)
5778            }
5779        }
5780    };
5781    #[derive(serde::Serialize, serde::Deserialize)]
5782    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5783    /**Function with signature `grantRole(bytes32,address)` and selector `0x2f2ff15d`.
5784```solidity
5785function grantRole(bytes32 role, address account) external;
5786```*/
5787    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5788    #[derive(Clone)]
5789    pub struct grantRoleCall {
5790        #[allow(missing_docs)]
5791        pub role: alloy::sol_types::private::FixedBytes<32>,
5792        #[allow(missing_docs)]
5793        pub account: alloy::sol_types::private::Address,
5794    }
5795    ///Container type for the return parameters of the [`grantRole(bytes32,address)`](grantRoleCall) function.
5796    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5797    #[derive(Clone)]
5798    pub struct grantRoleReturn {}
5799    #[allow(
5800        non_camel_case_types,
5801        non_snake_case,
5802        clippy::pub_underscore_fields,
5803        clippy::style
5804    )]
5805    const _: () = {
5806        use alloy::sol_types as alloy_sol_types;
5807        {
5808            #[doc(hidden)]
5809            type UnderlyingSolTuple<'a> = (
5810                alloy::sol_types::sol_data::FixedBytes<32>,
5811                alloy::sol_types::sol_data::Address,
5812            );
5813            #[doc(hidden)]
5814            type UnderlyingRustTuple<'a> = (
5815                alloy::sol_types::private::FixedBytes<32>,
5816                alloy::sol_types::private::Address,
5817            );
5818            #[cfg(test)]
5819            #[allow(dead_code, unreachable_patterns)]
5820            fn _type_assertion(
5821                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5822            ) {
5823                match _t {
5824                    alloy_sol_types::private::AssertTypeEq::<
5825                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5826                    >(_) => {}
5827                }
5828            }
5829            #[automatically_derived]
5830            #[doc(hidden)]
5831            impl ::core::convert::From<grantRoleCall> for UnderlyingRustTuple<'_> {
5832                fn from(value: grantRoleCall) -> Self {
5833                    (value.role, value.account)
5834                }
5835            }
5836            #[automatically_derived]
5837            #[doc(hidden)]
5838            impl ::core::convert::From<UnderlyingRustTuple<'_>> for grantRoleCall {
5839                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5840                    Self {
5841                        role: tuple.0,
5842                        account: tuple.1,
5843                    }
5844                }
5845            }
5846        }
5847        {
5848            #[doc(hidden)]
5849            type UnderlyingSolTuple<'a> = ();
5850            #[doc(hidden)]
5851            type UnderlyingRustTuple<'a> = ();
5852            #[cfg(test)]
5853            #[allow(dead_code, unreachable_patterns)]
5854            fn _type_assertion(
5855                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5856            ) {
5857                match _t {
5858                    alloy_sol_types::private::AssertTypeEq::<
5859                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5860                    >(_) => {}
5861                }
5862            }
5863            #[automatically_derived]
5864            #[doc(hidden)]
5865            impl ::core::convert::From<grantRoleReturn> for UnderlyingRustTuple<'_> {
5866                fn from(value: grantRoleReturn) -> Self {
5867                    ()
5868                }
5869            }
5870            #[automatically_derived]
5871            #[doc(hidden)]
5872            impl ::core::convert::From<UnderlyingRustTuple<'_>> for grantRoleReturn {
5873                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5874                    Self {}
5875                }
5876            }
5877        }
5878        impl grantRoleReturn {
5879            fn _tokenize(
5880                &self,
5881            ) -> <grantRoleCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
5882                ()
5883            }
5884        }
5885        #[automatically_derived]
5886        impl alloy_sol_types::SolCall for grantRoleCall {
5887            type Parameters<'a> = (
5888                alloy::sol_types::sol_data::FixedBytes<32>,
5889                alloy::sol_types::sol_data::Address,
5890            );
5891            type Token<'a> = <Self::Parameters<
5892                'a,
5893            > as alloy_sol_types::SolType>::Token<'a>;
5894            type Return = grantRoleReturn;
5895            type ReturnTuple<'a> = ();
5896            type ReturnToken<'a> = <Self::ReturnTuple<
5897                'a,
5898            > as alloy_sol_types::SolType>::Token<'a>;
5899            const SIGNATURE: &'static str = "grantRole(bytes32,address)";
5900            const SELECTOR: [u8; 4] = [47u8, 47u8, 241u8, 93u8];
5901            #[inline]
5902            fn new<'a>(
5903                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5904            ) -> Self {
5905                tuple.into()
5906            }
5907            #[inline]
5908            fn tokenize(&self) -> Self::Token<'_> {
5909                (
5910                    <alloy::sol_types::sol_data::FixedBytes<
5911                        32,
5912                    > as alloy_sol_types::SolType>::tokenize(&self.role),
5913                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
5914                        &self.account,
5915                    ),
5916                )
5917            }
5918            #[inline]
5919            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
5920                grantRoleReturn::_tokenize(ret)
5921            }
5922            #[inline]
5923            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
5924                <Self::ReturnTuple<
5925                    '_,
5926                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
5927                    .map(Into::into)
5928            }
5929            #[inline]
5930            fn abi_decode_returns_validate(
5931                data: &[u8],
5932            ) -> alloy_sol_types::Result<Self::Return> {
5933                <Self::ReturnTuple<
5934                    '_,
5935                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
5936                    .map(Into::into)
5937            }
5938        }
5939    };
5940    #[derive(serde::Serialize, serde::Deserialize)]
5941    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5942    /**Function with signature `hasRole(bytes32,address)` and selector `0x91d14854`.
5943```solidity
5944function hasRole(bytes32 role, address account) external view returns (bool);
5945```*/
5946    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5947    #[derive(Clone)]
5948    pub struct hasRoleCall {
5949        #[allow(missing_docs)]
5950        pub role: alloy::sol_types::private::FixedBytes<32>,
5951        #[allow(missing_docs)]
5952        pub account: alloy::sol_types::private::Address,
5953    }
5954    #[derive(serde::Serialize, serde::Deserialize)]
5955    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5956    ///Container type for the return parameters of the [`hasRole(bytes32,address)`](hasRoleCall) function.
5957    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5958    #[derive(Clone)]
5959    pub struct hasRoleReturn {
5960        #[allow(missing_docs)]
5961        pub _0: bool,
5962    }
5963    #[allow(
5964        non_camel_case_types,
5965        non_snake_case,
5966        clippy::pub_underscore_fields,
5967        clippy::style
5968    )]
5969    const _: () = {
5970        use alloy::sol_types as alloy_sol_types;
5971        {
5972            #[doc(hidden)]
5973            type UnderlyingSolTuple<'a> = (
5974                alloy::sol_types::sol_data::FixedBytes<32>,
5975                alloy::sol_types::sol_data::Address,
5976            );
5977            #[doc(hidden)]
5978            type UnderlyingRustTuple<'a> = (
5979                alloy::sol_types::private::FixedBytes<32>,
5980                alloy::sol_types::private::Address,
5981            );
5982            #[cfg(test)]
5983            #[allow(dead_code, unreachable_patterns)]
5984            fn _type_assertion(
5985                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5986            ) {
5987                match _t {
5988                    alloy_sol_types::private::AssertTypeEq::<
5989                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5990                    >(_) => {}
5991                }
5992            }
5993            #[automatically_derived]
5994            #[doc(hidden)]
5995            impl ::core::convert::From<hasRoleCall> for UnderlyingRustTuple<'_> {
5996                fn from(value: hasRoleCall) -> Self {
5997                    (value.role, value.account)
5998                }
5999            }
6000            #[automatically_derived]
6001            #[doc(hidden)]
6002            impl ::core::convert::From<UnderlyingRustTuple<'_>> for hasRoleCall {
6003                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6004                    Self {
6005                        role: tuple.0,
6006                        account: tuple.1,
6007                    }
6008                }
6009            }
6010        }
6011        {
6012            #[doc(hidden)]
6013            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,);
6014            #[doc(hidden)]
6015            type UnderlyingRustTuple<'a> = (bool,);
6016            #[cfg(test)]
6017            #[allow(dead_code, unreachable_patterns)]
6018            fn _type_assertion(
6019                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6020            ) {
6021                match _t {
6022                    alloy_sol_types::private::AssertTypeEq::<
6023                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6024                    >(_) => {}
6025                }
6026            }
6027            #[automatically_derived]
6028            #[doc(hidden)]
6029            impl ::core::convert::From<hasRoleReturn> for UnderlyingRustTuple<'_> {
6030                fn from(value: hasRoleReturn) -> Self {
6031                    (value._0,)
6032                }
6033            }
6034            #[automatically_derived]
6035            #[doc(hidden)]
6036            impl ::core::convert::From<UnderlyingRustTuple<'_>> for hasRoleReturn {
6037                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6038                    Self { _0: tuple.0 }
6039                }
6040            }
6041        }
6042        #[automatically_derived]
6043        impl alloy_sol_types::SolCall for hasRoleCall {
6044            type Parameters<'a> = (
6045                alloy::sol_types::sol_data::FixedBytes<32>,
6046                alloy::sol_types::sol_data::Address,
6047            );
6048            type Token<'a> = <Self::Parameters<
6049                'a,
6050            > as alloy_sol_types::SolType>::Token<'a>;
6051            type Return = bool;
6052            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,);
6053            type ReturnToken<'a> = <Self::ReturnTuple<
6054                'a,
6055            > as alloy_sol_types::SolType>::Token<'a>;
6056            const SIGNATURE: &'static str = "hasRole(bytes32,address)";
6057            const SELECTOR: [u8; 4] = [145u8, 209u8, 72u8, 84u8];
6058            #[inline]
6059            fn new<'a>(
6060                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
6061            ) -> Self {
6062                tuple.into()
6063            }
6064            #[inline]
6065            fn tokenize(&self) -> Self::Token<'_> {
6066                (
6067                    <alloy::sol_types::sol_data::FixedBytes<
6068                        32,
6069                    > as alloy_sol_types::SolType>::tokenize(&self.role),
6070                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6071                        &self.account,
6072                    ),
6073                )
6074            }
6075            #[inline]
6076            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
6077                (
6078                    <alloy::sol_types::sol_data::Bool as alloy_sol_types::SolType>::tokenize(
6079                        ret,
6080                    ),
6081                )
6082            }
6083            #[inline]
6084            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
6085                <Self::ReturnTuple<
6086                    '_,
6087                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
6088                    .map(|r| {
6089                        let r: hasRoleReturn = r.into();
6090                        r._0
6091                    })
6092            }
6093            #[inline]
6094            fn abi_decode_returns_validate(
6095                data: &[u8],
6096            ) -> alloy_sol_types::Result<Self::Return> {
6097                <Self::ReturnTuple<
6098                    '_,
6099                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
6100                    .map(|r| {
6101                        let r: hasRoleReturn = r.into();
6102                        r._0
6103                    })
6104            }
6105        }
6106    };
6107    #[derive(serde::Serialize, serde::Deserialize)]
6108    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6109    /**Function with signature `initialize(address,address,address,address)` and selector `0xf8c8765e`.
6110```solidity
6111function initialize(address _admin, address _espToken, address _lightClient, address _pauser) external;
6112```*/
6113    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6114    #[derive(Clone)]
6115    pub struct initializeCall {
6116        #[allow(missing_docs)]
6117        pub _admin: alloy::sol_types::private::Address,
6118        #[allow(missing_docs)]
6119        pub _espToken: alloy::sol_types::private::Address,
6120        #[allow(missing_docs)]
6121        pub _lightClient: alloy::sol_types::private::Address,
6122        #[allow(missing_docs)]
6123        pub _pauser: alloy::sol_types::private::Address,
6124    }
6125    ///Container type for the return parameters of the [`initialize(address,address,address,address)`](initializeCall) function.
6126    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6127    #[derive(Clone)]
6128    pub struct initializeReturn {}
6129    #[allow(
6130        non_camel_case_types,
6131        non_snake_case,
6132        clippy::pub_underscore_fields,
6133        clippy::style
6134    )]
6135    const _: () = {
6136        use alloy::sol_types as alloy_sol_types;
6137        {
6138            #[doc(hidden)]
6139            type UnderlyingSolTuple<'a> = (
6140                alloy::sol_types::sol_data::Address,
6141                alloy::sol_types::sol_data::Address,
6142                alloy::sol_types::sol_data::Address,
6143                alloy::sol_types::sol_data::Address,
6144            );
6145            #[doc(hidden)]
6146            type UnderlyingRustTuple<'a> = (
6147                alloy::sol_types::private::Address,
6148                alloy::sol_types::private::Address,
6149                alloy::sol_types::private::Address,
6150                alloy::sol_types::private::Address,
6151            );
6152            #[cfg(test)]
6153            #[allow(dead_code, unreachable_patterns)]
6154            fn _type_assertion(
6155                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6156            ) {
6157                match _t {
6158                    alloy_sol_types::private::AssertTypeEq::<
6159                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6160                    >(_) => {}
6161                }
6162            }
6163            #[automatically_derived]
6164            #[doc(hidden)]
6165            impl ::core::convert::From<initializeCall> for UnderlyingRustTuple<'_> {
6166                fn from(value: initializeCall) -> Self {
6167                    (value._admin, value._espToken, value._lightClient, value._pauser)
6168                }
6169            }
6170            #[automatically_derived]
6171            #[doc(hidden)]
6172            impl ::core::convert::From<UnderlyingRustTuple<'_>> for initializeCall {
6173                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6174                    Self {
6175                        _admin: tuple.0,
6176                        _espToken: tuple.1,
6177                        _lightClient: tuple.2,
6178                        _pauser: tuple.3,
6179                    }
6180                }
6181            }
6182        }
6183        {
6184            #[doc(hidden)]
6185            type UnderlyingSolTuple<'a> = ();
6186            #[doc(hidden)]
6187            type UnderlyingRustTuple<'a> = ();
6188            #[cfg(test)]
6189            #[allow(dead_code, unreachable_patterns)]
6190            fn _type_assertion(
6191                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6192            ) {
6193                match _t {
6194                    alloy_sol_types::private::AssertTypeEq::<
6195                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6196                    >(_) => {}
6197                }
6198            }
6199            #[automatically_derived]
6200            #[doc(hidden)]
6201            impl ::core::convert::From<initializeReturn> for UnderlyingRustTuple<'_> {
6202                fn from(value: initializeReturn) -> Self {
6203                    ()
6204                }
6205            }
6206            #[automatically_derived]
6207            #[doc(hidden)]
6208            impl ::core::convert::From<UnderlyingRustTuple<'_>> for initializeReturn {
6209                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6210                    Self {}
6211                }
6212            }
6213        }
6214        impl initializeReturn {
6215            fn _tokenize(
6216                &self,
6217            ) -> <initializeCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
6218                ()
6219            }
6220        }
6221        #[automatically_derived]
6222        impl alloy_sol_types::SolCall for initializeCall {
6223            type Parameters<'a> = (
6224                alloy::sol_types::sol_data::Address,
6225                alloy::sol_types::sol_data::Address,
6226                alloy::sol_types::sol_data::Address,
6227                alloy::sol_types::sol_data::Address,
6228            );
6229            type Token<'a> = <Self::Parameters<
6230                'a,
6231            > as alloy_sol_types::SolType>::Token<'a>;
6232            type Return = initializeReturn;
6233            type ReturnTuple<'a> = ();
6234            type ReturnToken<'a> = <Self::ReturnTuple<
6235                'a,
6236            > as alloy_sol_types::SolType>::Token<'a>;
6237            const SIGNATURE: &'static str = "initialize(address,address,address,address)";
6238            const SELECTOR: [u8; 4] = [248u8, 200u8, 118u8, 94u8];
6239            #[inline]
6240            fn new<'a>(
6241                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
6242            ) -> Self {
6243                tuple.into()
6244            }
6245            #[inline]
6246            fn tokenize(&self) -> Self::Token<'_> {
6247                (
6248                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6249                        &self._admin,
6250                    ),
6251                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6252                        &self._espToken,
6253                    ),
6254                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6255                        &self._lightClient,
6256                    ),
6257                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6258                        &self._pauser,
6259                    ),
6260                )
6261            }
6262            #[inline]
6263            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
6264                initializeReturn::_tokenize(ret)
6265            }
6266            #[inline]
6267            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
6268                <Self::ReturnTuple<
6269                    '_,
6270                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
6271                    .map(Into::into)
6272            }
6273            #[inline]
6274            fn abi_decode_returns_validate(
6275                data: &[u8],
6276            ) -> alloy_sol_types::Result<Self::Return> {
6277                <Self::ReturnTuple<
6278                    '_,
6279                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
6280                    .map(Into::into)
6281            }
6282        }
6283    };
6284    #[derive(serde::Serialize, serde::Deserialize)]
6285    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6286    /**Function with signature `lastSetDailyLimitBasisPoints()` and selector `0x0f6ca1d6`.
6287```solidity
6288function lastSetDailyLimitBasisPoints() external view returns (uint256);
6289```*/
6290    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6291    #[derive(Clone)]
6292    pub struct lastSetDailyLimitBasisPointsCall;
6293    #[derive(serde::Serialize, serde::Deserialize)]
6294    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6295    ///Container type for the return parameters of the [`lastSetDailyLimitBasisPoints()`](lastSetDailyLimitBasisPointsCall) function.
6296    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6297    #[derive(Clone)]
6298    pub struct lastSetDailyLimitBasisPointsReturn {
6299        #[allow(missing_docs)]
6300        pub _0: alloy::sol_types::private::primitives::aliases::U256,
6301    }
6302    #[allow(
6303        non_camel_case_types,
6304        non_snake_case,
6305        clippy::pub_underscore_fields,
6306        clippy::style
6307    )]
6308    const _: () = {
6309        use alloy::sol_types as alloy_sol_types;
6310        {
6311            #[doc(hidden)]
6312            type UnderlyingSolTuple<'a> = ();
6313            #[doc(hidden)]
6314            type UnderlyingRustTuple<'a> = ();
6315            #[cfg(test)]
6316            #[allow(dead_code, unreachable_patterns)]
6317            fn _type_assertion(
6318                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6319            ) {
6320                match _t {
6321                    alloy_sol_types::private::AssertTypeEq::<
6322                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6323                    >(_) => {}
6324                }
6325            }
6326            #[automatically_derived]
6327            #[doc(hidden)]
6328            impl ::core::convert::From<lastSetDailyLimitBasisPointsCall>
6329            for UnderlyingRustTuple<'_> {
6330                fn from(value: lastSetDailyLimitBasisPointsCall) -> Self {
6331                    ()
6332                }
6333            }
6334            #[automatically_derived]
6335            #[doc(hidden)]
6336            impl ::core::convert::From<UnderlyingRustTuple<'_>>
6337            for lastSetDailyLimitBasisPointsCall {
6338                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6339                    Self
6340                }
6341            }
6342        }
6343        {
6344            #[doc(hidden)]
6345            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
6346            #[doc(hidden)]
6347            type UnderlyingRustTuple<'a> = (
6348                alloy::sol_types::private::primitives::aliases::U256,
6349            );
6350            #[cfg(test)]
6351            #[allow(dead_code, unreachable_patterns)]
6352            fn _type_assertion(
6353                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6354            ) {
6355                match _t {
6356                    alloy_sol_types::private::AssertTypeEq::<
6357                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6358                    >(_) => {}
6359                }
6360            }
6361            #[automatically_derived]
6362            #[doc(hidden)]
6363            impl ::core::convert::From<lastSetDailyLimitBasisPointsReturn>
6364            for UnderlyingRustTuple<'_> {
6365                fn from(value: lastSetDailyLimitBasisPointsReturn) -> Self {
6366                    (value._0,)
6367                }
6368            }
6369            #[automatically_derived]
6370            #[doc(hidden)]
6371            impl ::core::convert::From<UnderlyingRustTuple<'_>>
6372            for lastSetDailyLimitBasisPointsReturn {
6373                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6374                    Self { _0: tuple.0 }
6375                }
6376            }
6377        }
6378        #[automatically_derived]
6379        impl alloy_sol_types::SolCall for lastSetDailyLimitBasisPointsCall {
6380            type Parameters<'a> = ();
6381            type Token<'a> = <Self::Parameters<
6382                'a,
6383            > as alloy_sol_types::SolType>::Token<'a>;
6384            type Return = alloy::sol_types::private::primitives::aliases::U256;
6385            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
6386            type ReturnToken<'a> = <Self::ReturnTuple<
6387                'a,
6388            > as alloy_sol_types::SolType>::Token<'a>;
6389            const SIGNATURE: &'static str = "lastSetDailyLimitBasisPoints()";
6390            const SELECTOR: [u8; 4] = [15u8, 108u8, 161u8, 214u8];
6391            #[inline]
6392            fn new<'a>(
6393                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
6394            ) -> Self {
6395                tuple.into()
6396            }
6397            #[inline]
6398            fn tokenize(&self) -> Self::Token<'_> {
6399                ()
6400            }
6401            #[inline]
6402            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
6403                (
6404                    <alloy::sol_types::sol_data::Uint<
6405                        256,
6406                    > as alloy_sol_types::SolType>::tokenize(ret),
6407                )
6408            }
6409            #[inline]
6410            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
6411                <Self::ReturnTuple<
6412                    '_,
6413                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
6414                    .map(|r| {
6415                        let r: lastSetDailyLimitBasisPointsReturn = r.into();
6416                        r._0
6417                    })
6418            }
6419            #[inline]
6420            fn abi_decode_returns_validate(
6421                data: &[u8],
6422            ) -> alloy_sol_types::Result<Self::Return> {
6423                <Self::ReturnTuple<
6424                    '_,
6425                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
6426                    .map(|r| {
6427                        let r: lastSetDailyLimitBasisPointsReturn = r.into();
6428                        r._0
6429                    })
6430            }
6431        }
6432    };
6433    #[derive(serde::Serialize, serde::Deserialize)]
6434    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6435    /**Function with signature `lightClient()` and selector `0xb5700e68`.
6436```solidity
6437function lightClient() external view returns (address);
6438```*/
6439    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6440    #[derive(Clone)]
6441    pub struct lightClientCall;
6442    #[derive(serde::Serialize, serde::Deserialize)]
6443    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6444    ///Container type for the return parameters of the [`lightClient()`](lightClientCall) function.
6445    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6446    #[derive(Clone)]
6447    pub struct lightClientReturn {
6448        #[allow(missing_docs)]
6449        pub _0: alloy::sol_types::private::Address,
6450    }
6451    #[allow(
6452        non_camel_case_types,
6453        non_snake_case,
6454        clippy::pub_underscore_fields,
6455        clippy::style
6456    )]
6457    const _: () = {
6458        use alloy::sol_types as alloy_sol_types;
6459        {
6460            #[doc(hidden)]
6461            type UnderlyingSolTuple<'a> = ();
6462            #[doc(hidden)]
6463            type UnderlyingRustTuple<'a> = ();
6464            #[cfg(test)]
6465            #[allow(dead_code, unreachable_patterns)]
6466            fn _type_assertion(
6467                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6468            ) {
6469                match _t {
6470                    alloy_sol_types::private::AssertTypeEq::<
6471                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6472                    >(_) => {}
6473                }
6474            }
6475            #[automatically_derived]
6476            #[doc(hidden)]
6477            impl ::core::convert::From<lightClientCall> for UnderlyingRustTuple<'_> {
6478                fn from(value: lightClientCall) -> Self {
6479                    ()
6480                }
6481            }
6482            #[automatically_derived]
6483            #[doc(hidden)]
6484            impl ::core::convert::From<UnderlyingRustTuple<'_>> for lightClientCall {
6485                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6486                    Self
6487                }
6488            }
6489        }
6490        {
6491            #[doc(hidden)]
6492            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
6493            #[doc(hidden)]
6494            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
6495            #[cfg(test)]
6496            #[allow(dead_code, unreachable_patterns)]
6497            fn _type_assertion(
6498                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6499            ) {
6500                match _t {
6501                    alloy_sol_types::private::AssertTypeEq::<
6502                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6503                    >(_) => {}
6504                }
6505            }
6506            #[automatically_derived]
6507            #[doc(hidden)]
6508            impl ::core::convert::From<lightClientReturn> for UnderlyingRustTuple<'_> {
6509                fn from(value: lightClientReturn) -> Self {
6510                    (value._0,)
6511                }
6512            }
6513            #[automatically_derived]
6514            #[doc(hidden)]
6515            impl ::core::convert::From<UnderlyingRustTuple<'_>> for lightClientReturn {
6516                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6517                    Self { _0: tuple.0 }
6518                }
6519            }
6520        }
6521        #[automatically_derived]
6522        impl alloy_sol_types::SolCall for lightClientCall {
6523            type Parameters<'a> = ();
6524            type Token<'a> = <Self::Parameters<
6525                'a,
6526            > as alloy_sol_types::SolType>::Token<'a>;
6527            type Return = alloy::sol_types::private::Address;
6528            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
6529            type ReturnToken<'a> = <Self::ReturnTuple<
6530                'a,
6531            > as alloy_sol_types::SolType>::Token<'a>;
6532            const SIGNATURE: &'static str = "lightClient()";
6533            const SELECTOR: [u8; 4] = [181u8, 112u8, 14u8, 104u8];
6534            #[inline]
6535            fn new<'a>(
6536                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
6537            ) -> Self {
6538                tuple.into()
6539            }
6540            #[inline]
6541            fn tokenize(&self) -> Self::Token<'_> {
6542                ()
6543            }
6544            #[inline]
6545            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
6546                (
6547                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6548                        ret,
6549                    ),
6550                )
6551            }
6552            #[inline]
6553            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
6554                <Self::ReturnTuple<
6555                    '_,
6556                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
6557                    .map(|r| {
6558                        let r: lightClientReturn = r.into();
6559                        r._0
6560                    })
6561            }
6562            #[inline]
6563            fn abi_decode_returns_validate(
6564                data: &[u8],
6565            ) -> alloy_sol_types::Result<Self::Return> {
6566                <Self::ReturnTuple<
6567                    '_,
6568                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
6569                    .map(|r| {
6570                        let r: lightClientReturn = r.into();
6571                        r._0
6572                    })
6573            }
6574        }
6575    };
6576    #[derive(serde::Serialize, serde::Deserialize)]
6577    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6578    /**Function with signature `pause()` and selector `0x8456cb59`.
6579```solidity
6580function pause() external;
6581```*/
6582    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6583    #[derive(Clone)]
6584    pub struct pauseCall;
6585    ///Container type for the return parameters of the [`pause()`](pauseCall) function.
6586    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6587    #[derive(Clone)]
6588    pub struct pauseReturn {}
6589    #[allow(
6590        non_camel_case_types,
6591        non_snake_case,
6592        clippy::pub_underscore_fields,
6593        clippy::style
6594    )]
6595    const _: () = {
6596        use alloy::sol_types as alloy_sol_types;
6597        {
6598            #[doc(hidden)]
6599            type UnderlyingSolTuple<'a> = ();
6600            #[doc(hidden)]
6601            type UnderlyingRustTuple<'a> = ();
6602            #[cfg(test)]
6603            #[allow(dead_code, unreachable_patterns)]
6604            fn _type_assertion(
6605                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6606            ) {
6607                match _t {
6608                    alloy_sol_types::private::AssertTypeEq::<
6609                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6610                    >(_) => {}
6611                }
6612            }
6613            #[automatically_derived]
6614            #[doc(hidden)]
6615            impl ::core::convert::From<pauseCall> for UnderlyingRustTuple<'_> {
6616                fn from(value: pauseCall) -> Self {
6617                    ()
6618                }
6619            }
6620            #[automatically_derived]
6621            #[doc(hidden)]
6622            impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauseCall {
6623                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6624                    Self
6625                }
6626            }
6627        }
6628        {
6629            #[doc(hidden)]
6630            type UnderlyingSolTuple<'a> = ();
6631            #[doc(hidden)]
6632            type UnderlyingRustTuple<'a> = ();
6633            #[cfg(test)]
6634            #[allow(dead_code, unreachable_patterns)]
6635            fn _type_assertion(
6636                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6637            ) {
6638                match _t {
6639                    alloy_sol_types::private::AssertTypeEq::<
6640                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6641                    >(_) => {}
6642                }
6643            }
6644            #[automatically_derived]
6645            #[doc(hidden)]
6646            impl ::core::convert::From<pauseReturn> for UnderlyingRustTuple<'_> {
6647                fn from(value: pauseReturn) -> Self {
6648                    ()
6649                }
6650            }
6651            #[automatically_derived]
6652            #[doc(hidden)]
6653            impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauseReturn {
6654                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6655                    Self {}
6656                }
6657            }
6658        }
6659        impl pauseReturn {
6660            fn _tokenize(
6661                &self,
6662            ) -> <pauseCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
6663                ()
6664            }
6665        }
6666        #[automatically_derived]
6667        impl alloy_sol_types::SolCall for pauseCall {
6668            type Parameters<'a> = ();
6669            type Token<'a> = <Self::Parameters<
6670                'a,
6671            > as alloy_sol_types::SolType>::Token<'a>;
6672            type Return = pauseReturn;
6673            type ReturnTuple<'a> = ();
6674            type ReturnToken<'a> = <Self::ReturnTuple<
6675                'a,
6676            > as alloy_sol_types::SolType>::Token<'a>;
6677            const SIGNATURE: &'static str = "pause()";
6678            const SELECTOR: [u8; 4] = [132u8, 86u8, 203u8, 89u8];
6679            #[inline]
6680            fn new<'a>(
6681                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
6682            ) -> Self {
6683                tuple.into()
6684            }
6685            #[inline]
6686            fn tokenize(&self) -> Self::Token<'_> {
6687                ()
6688            }
6689            #[inline]
6690            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
6691                pauseReturn::_tokenize(ret)
6692            }
6693            #[inline]
6694            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
6695                <Self::ReturnTuple<
6696                    '_,
6697                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
6698                    .map(Into::into)
6699            }
6700            #[inline]
6701            fn abi_decode_returns_validate(
6702                data: &[u8],
6703            ) -> alloy_sol_types::Result<Self::Return> {
6704                <Self::ReturnTuple<
6705                    '_,
6706                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
6707                    .map(Into::into)
6708            }
6709        }
6710    };
6711    #[derive(serde::Serialize, serde::Deserialize)]
6712    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6713    /**Function with signature `paused()` and selector `0x5c975abb`.
6714```solidity
6715function paused() external view returns (bool);
6716```*/
6717    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6718    #[derive(Clone)]
6719    pub struct pausedCall;
6720    #[derive(serde::Serialize, serde::Deserialize)]
6721    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6722    ///Container type for the return parameters of the [`paused()`](pausedCall) function.
6723    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6724    #[derive(Clone)]
6725    pub struct pausedReturn {
6726        #[allow(missing_docs)]
6727        pub _0: bool,
6728    }
6729    #[allow(
6730        non_camel_case_types,
6731        non_snake_case,
6732        clippy::pub_underscore_fields,
6733        clippy::style
6734    )]
6735    const _: () = {
6736        use alloy::sol_types as alloy_sol_types;
6737        {
6738            #[doc(hidden)]
6739            type UnderlyingSolTuple<'a> = ();
6740            #[doc(hidden)]
6741            type UnderlyingRustTuple<'a> = ();
6742            #[cfg(test)]
6743            #[allow(dead_code, unreachable_patterns)]
6744            fn _type_assertion(
6745                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6746            ) {
6747                match _t {
6748                    alloy_sol_types::private::AssertTypeEq::<
6749                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6750                    >(_) => {}
6751                }
6752            }
6753            #[automatically_derived]
6754            #[doc(hidden)]
6755            impl ::core::convert::From<pausedCall> for UnderlyingRustTuple<'_> {
6756                fn from(value: pausedCall) -> Self {
6757                    ()
6758                }
6759            }
6760            #[automatically_derived]
6761            #[doc(hidden)]
6762            impl ::core::convert::From<UnderlyingRustTuple<'_>> for pausedCall {
6763                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6764                    Self
6765                }
6766            }
6767        }
6768        {
6769            #[doc(hidden)]
6770            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,);
6771            #[doc(hidden)]
6772            type UnderlyingRustTuple<'a> = (bool,);
6773            #[cfg(test)]
6774            #[allow(dead_code, unreachable_patterns)]
6775            fn _type_assertion(
6776                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6777            ) {
6778                match _t {
6779                    alloy_sol_types::private::AssertTypeEq::<
6780                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6781                    >(_) => {}
6782                }
6783            }
6784            #[automatically_derived]
6785            #[doc(hidden)]
6786            impl ::core::convert::From<pausedReturn> for UnderlyingRustTuple<'_> {
6787                fn from(value: pausedReturn) -> Self {
6788                    (value._0,)
6789                }
6790            }
6791            #[automatically_derived]
6792            #[doc(hidden)]
6793            impl ::core::convert::From<UnderlyingRustTuple<'_>> for pausedReturn {
6794                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6795                    Self { _0: tuple.0 }
6796                }
6797            }
6798        }
6799        #[automatically_derived]
6800        impl alloy_sol_types::SolCall for pausedCall {
6801            type Parameters<'a> = ();
6802            type Token<'a> = <Self::Parameters<
6803                'a,
6804            > as alloy_sol_types::SolType>::Token<'a>;
6805            type Return = bool;
6806            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,);
6807            type ReturnToken<'a> = <Self::ReturnTuple<
6808                'a,
6809            > as alloy_sol_types::SolType>::Token<'a>;
6810            const SIGNATURE: &'static str = "paused()";
6811            const SELECTOR: [u8; 4] = [92u8, 151u8, 90u8, 187u8];
6812            #[inline]
6813            fn new<'a>(
6814                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
6815            ) -> Self {
6816                tuple.into()
6817            }
6818            #[inline]
6819            fn tokenize(&self) -> Self::Token<'_> {
6820                ()
6821            }
6822            #[inline]
6823            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
6824                (
6825                    <alloy::sol_types::sol_data::Bool as alloy_sol_types::SolType>::tokenize(
6826                        ret,
6827                    ),
6828                )
6829            }
6830            #[inline]
6831            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
6832                <Self::ReturnTuple<
6833                    '_,
6834                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
6835                    .map(|r| {
6836                        let r: pausedReturn = r.into();
6837                        r._0
6838                    })
6839            }
6840            #[inline]
6841            fn abi_decode_returns_validate(
6842                data: &[u8],
6843            ) -> alloy_sol_types::Result<Self::Return> {
6844                <Self::ReturnTuple<
6845                    '_,
6846                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
6847                    .map(|r| {
6848                        let r: pausedReturn = r.into();
6849                        r._0
6850                    })
6851            }
6852        }
6853    };
6854    #[derive(serde::Serialize, serde::Deserialize)]
6855    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6856    /**Function with signature `proxiableUUID()` and selector `0x52d1902d`.
6857```solidity
6858function proxiableUUID() external view returns (bytes32);
6859```*/
6860    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6861    #[derive(Clone)]
6862    pub struct proxiableUUIDCall;
6863    #[derive(serde::Serialize, serde::Deserialize)]
6864    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6865    ///Container type for the return parameters of the [`proxiableUUID()`](proxiableUUIDCall) function.
6866    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6867    #[derive(Clone)]
6868    pub struct proxiableUUIDReturn {
6869        #[allow(missing_docs)]
6870        pub _0: alloy::sol_types::private::FixedBytes<32>,
6871    }
6872    #[allow(
6873        non_camel_case_types,
6874        non_snake_case,
6875        clippy::pub_underscore_fields,
6876        clippy::style
6877    )]
6878    const _: () = {
6879        use alloy::sol_types as alloy_sol_types;
6880        {
6881            #[doc(hidden)]
6882            type UnderlyingSolTuple<'a> = ();
6883            #[doc(hidden)]
6884            type UnderlyingRustTuple<'a> = ();
6885            #[cfg(test)]
6886            #[allow(dead_code, unreachable_patterns)]
6887            fn _type_assertion(
6888                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6889            ) {
6890                match _t {
6891                    alloy_sol_types::private::AssertTypeEq::<
6892                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6893                    >(_) => {}
6894                }
6895            }
6896            #[automatically_derived]
6897            #[doc(hidden)]
6898            impl ::core::convert::From<proxiableUUIDCall> for UnderlyingRustTuple<'_> {
6899                fn from(value: proxiableUUIDCall) -> Self {
6900                    ()
6901                }
6902            }
6903            #[automatically_derived]
6904            #[doc(hidden)]
6905            impl ::core::convert::From<UnderlyingRustTuple<'_>> for proxiableUUIDCall {
6906                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6907                    Self
6908                }
6909            }
6910        }
6911        {
6912            #[doc(hidden)]
6913            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
6914            #[doc(hidden)]
6915            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
6916            #[cfg(test)]
6917            #[allow(dead_code, unreachable_patterns)]
6918            fn _type_assertion(
6919                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6920            ) {
6921                match _t {
6922                    alloy_sol_types::private::AssertTypeEq::<
6923                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6924                    >(_) => {}
6925                }
6926            }
6927            #[automatically_derived]
6928            #[doc(hidden)]
6929            impl ::core::convert::From<proxiableUUIDReturn> for UnderlyingRustTuple<'_> {
6930                fn from(value: proxiableUUIDReturn) -> Self {
6931                    (value._0,)
6932                }
6933            }
6934            #[automatically_derived]
6935            #[doc(hidden)]
6936            impl ::core::convert::From<UnderlyingRustTuple<'_>> for proxiableUUIDReturn {
6937                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6938                    Self { _0: tuple.0 }
6939                }
6940            }
6941        }
6942        #[automatically_derived]
6943        impl alloy_sol_types::SolCall for proxiableUUIDCall {
6944            type Parameters<'a> = ();
6945            type Token<'a> = <Self::Parameters<
6946                'a,
6947            > as alloy_sol_types::SolType>::Token<'a>;
6948            type Return = alloy::sol_types::private::FixedBytes<32>;
6949            type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
6950            type ReturnToken<'a> = <Self::ReturnTuple<
6951                'a,
6952            > as alloy_sol_types::SolType>::Token<'a>;
6953            const SIGNATURE: &'static str = "proxiableUUID()";
6954            const SELECTOR: [u8; 4] = [82u8, 209u8, 144u8, 45u8];
6955            #[inline]
6956            fn new<'a>(
6957                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
6958            ) -> Self {
6959                tuple.into()
6960            }
6961            #[inline]
6962            fn tokenize(&self) -> Self::Token<'_> {
6963                ()
6964            }
6965            #[inline]
6966            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
6967                (
6968                    <alloy::sol_types::sol_data::FixedBytes<
6969                        32,
6970                    > as alloy_sol_types::SolType>::tokenize(ret),
6971                )
6972            }
6973            #[inline]
6974            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
6975                <Self::ReturnTuple<
6976                    '_,
6977                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
6978                    .map(|r| {
6979                        let r: proxiableUUIDReturn = r.into();
6980                        r._0
6981                    })
6982            }
6983            #[inline]
6984            fn abi_decode_returns_validate(
6985                data: &[u8],
6986            ) -> alloy_sol_types::Result<Self::Return> {
6987                <Self::ReturnTuple<
6988                    '_,
6989                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
6990                    .map(|r| {
6991                        let r: proxiableUUIDReturn = r.into();
6992                        r._0
6993                    })
6994            }
6995        }
6996    };
6997    #[derive(serde::Serialize, serde::Deserialize)]
6998    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6999    /**Function with signature `renounceRole(bytes32,address)` and selector `0x36568abe`.
7000```solidity
7001function renounceRole(bytes32 role, address callerConfirmation) external;
7002```*/
7003    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7004    #[derive(Clone)]
7005    pub struct renounceRoleCall {
7006        #[allow(missing_docs)]
7007        pub role: alloy::sol_types::private::FixedBytes<32>,
7008        #[allow(missing_docs)]
7009        pub callerConfirmation: alloy::sol_types::private::Address,
7010    }
7011    ///Container type for the return parameters of the [`renounceRole(bytes32,address)`](renounceRoleCall) function.
7012    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7013    #[derive(Clone)]
7014    pub struct renounceRoleReturn {}
7015    #[allow(
7016        non_camel_case_types,
7017        non_snake_case,
7018        clippy::pub_underscore_fields,
7019        clippy::style
7020    )]
7021    const _: () = {
7022        use alloy::sol_types as alloy_sol_types;
7023        {
7024            #[doc(hidden)]
7025            type UnderlyingSolTuple<'a> = (
7026                alloy::sol_types::sol_data::FixedBytes<32>,
7027                alloy::sol_types::sol_data::Address,
7028            );
7029            #[doc(hidden)]
7030            type UnderlyingRustTuple<'a> = (
7031                alloy::sol_types::private::FixedBytes<32>,
7032                alloy::sol_types::private::Address,
7033            );
7034            #[cfg(test)]
7035            #[allow(dead_code, unreachable_patterns)]
7036            fn _type_assertion(
7037                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7038            ) {
7039                match _t {
7040                    alloy_sol_types::private::AssertTypeEq::<
7041                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7042                    >(_) => {}
7043                }
7044            }
7045            #[automatically_derived]
7046            #[doc(hidden)]
7047            impl ::core::convert::From<renounceRoleCall> for UnderlyingRustTuple<'_> {
7048                fn from(value: renounceRoleCall) -> Self {
7049                    (value.role, value.callerConfirmation)
7050                }
7051            }
7052            #[automatically_derived]
7053            #[doc(hidden)]
7054            impl ::core::convert::From<UnderlyingRustTuple<'_>> for renounceRoleCall {
7055                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7056                    Self {
7057                        role: tuple.0,
7058                        callerConfirmation: tuple.1,
7059                    }
7060                }
7061            }
7062        }
7063        {
7064            #[doc(hidden)]
7065            type UnderlyingSolTuple<'a> = ();
7066            #[doc(hidden)]
7067            type UnderlyingRustTuple<'a> = ();
7068            #[cfg(test)]
7069            #[allow(dead_code, unreachable_patterns)]
7070            fn _type_assertion(
7071                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7072            ) {
7073                match _t {
7074                    alloy_sol_types::private::AssertTypeEq::<
7075                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7076                    >(_) => {}
7077                }
7078            }
7079            #[automatically_derived]
7080            #[doc(hidden)]
7081            impl ::core::convert::From<renounceRoleReturn> for UnderlyingRustTuple<'_> {
7082                fn from(value: renounceRoleReturn) -> Self {
7083                    ()
7084                }
7085            }
7086            #[automatically_derived]
7087            #[doc(hidden)]
7088            impl ::core::convert::From<UnderlyingRustTuple<'_>> for renounceRoleReturn {
7089                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7090                    Self {}
7091                }
7092            }
7093        }
7094        impl renounceRoleReturn {
7095            fn _tokenize(
7096                &self,
7097            ) -> <renounceRoleCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
7098                ()
7099            }
7100        }
7101        #[automatically_derived]
7102        impl alloy_sol_types::SolCall for renounceRoleCall {
7103            type Parameters<'a> = (
7104                alloy::sol_types::sol_data::FixedBytes<32>,
7105                alloy::sol_types::sol_data::Address,
7106            );
7107            type Token<'a> = <Self::Parameters<
7108                'a,
7109            > as alloy_sol_types::SolType>::Token<'a>;
7110            type Return = renounceRoleReturn;
7111            type ReturnTuple<'a> = ();
7112            type ReturnToken<'a> = <Self::ReturnTuple<
7113                'a,
7114            > as alloy_sol_types::SolType>::Token<'a>;
7115            const SIGNATURE: &'static str = "renounceRole(bytes32,address)";
7116            const SELECTOR: [u8; 4] = [54u8, 86u8, 138u8, 190u8];
7117            #[inline]
7118            fn new<'a>(
7119                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
7120            ) -> Self {
7121                tuple.into()
7122            }
7123            #[inline]
7124            fn tokenize(&self) -> Self::Token<'_> {
7125                (
7126                    <alloy::sol_types::sol_data::FixedBytes<
7127                        32,
7128                    > as alloy_sol_types::SolType>::tokenize(&self.role),
7129                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
7130                        &self.callerConfirmation,
7131                    ),
7132                )
7133            }
7134            #[inline]
7135            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
7136                renounceRoleReturn::_tokenize(ret)
7137            }
7138            #[inline]
7139            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
7140                <Self::ReturnTuple<
7141                    '_,
7142                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
7143                    .map(Into::into)
7144            }
7145            #[inline]
7146            fn abi_decode_returns_validate(
7147                data: &[u8],
7148            ) -> alloy_sol_types::Result<Self::Return> {
7149                <Self::ReturnTuple<
7150                    '_,
7151                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
7152                    .map(Into::into)
7153            }
7154        }
7155    };
7156    #[derive(serde::Serialize, serde::Deserialize)]
7157    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7158    /**Function with signature `revokeRole(bytes32,address)` and selector `0xd547741f`.
7159```solidity
7160function revokeRole(bytes32 role, address account) external;
7161```*/
7162    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7163    #[derive(Clone)]
7164    pub struct revokeRoleCall {
7165        #[allow(missing_docs)]
7166        pub role: alloy::sol_types::private::FixedBytes<32>,
7167        #[allow(missing_docs)]
7168        pub account: alloy::sol_types::private::Address,
7169    }
7170    ///Container type for the return parameters of the [`revokeRole(bytes32,address)`](revokeRoleCall) function.
7171    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7172    #[derive(Clone)]
7173    pub struct revokeRoleReturn {}
7174    #[allow(
7175        non_camel_case_types,
7176        non_snake_case,
7177        clippy::pub_underscore_fields,
7178        clippy::style
7179    )]
7180    const _: () = {
7181        use alloy::sol_types as alloy_sol_types;
7182        {
7183            #[doc(hidden)]
7184            type UnderlyingSolTuple<'a> = (
7185                alloy::sol_types::sol_data::FixedBytes<32>,
7186                alloy::sol_types::sol_data::Address,
7187            );
7188            #[doc(hidden)]
7189            type UnderlyingRustTuple<'a> = (
7190                alloy::sol_types::private::FixedBytes<32>,
7191                alloy::sol_types::private::Address,
7192            );
7193            #[cfg(test)]
7194            #[allow(dead_code, unreachable_patterns)]
7195            fn _type_assertion(
7196                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7197            ) {
7198                match _t {
7199                    alloy_sol_types::private::AssertTypeEq::<
7200                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7201                    >(_) => {}
7202                }
7203            }
7204            #[automatically_derived]
7205            #[doc(hidden)]
7206            impl ::core::convert::From<revokeRoleCall> for UnderlyingRustTuple<'_> {
7207                fn from(value: revokeRoleCall) -> Self {
7208                    (value.role, value.account)
7209                }
7210            }
7211            #[automatically_derived]
7212            #[doc(hidden)]
7213            impl ::core::convert::From<UnderlyingRustTuple<'_>> for revokeRoleCall {
7214                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7215                    Self {
7216                        role: tuple.0,
7217                        account: tuple.1,
7218                    }
7219                }
7220            }
7221        }
7222        {
7223            #[doc(hidden)]
7224            type UnderlyingSolTuple<'a> = ();
7225            #[doc(hidden)]
7226            type UnderlyingRustTuple<'a> = ();
7227            #[cfg(test)]
7228            #[allow(dead_code, unreachable_patterns)]
7229            fn _type_assertion(
7230                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7231            ) {
7232                match _t {
7233                    alloy_sol_types::private::AssertTypeEq::<
7234                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7235                    >(_) => {}
7236                }
7237            }
7238            #[automatically_derived]
7239            #[doc(hidden)]
7240            impl ::core::convert::From<revokeRoleReturn> for UnderlyingRustTuple<'_> {
7241                fn from(value: revokeRoleReturn) -> Self {
7242                    ()
7243                }
7244            }
7245            #[automatically_derived]
7246            #[doc(hidden)]
7247            impl ::core::convert::From<UnderlyingRustTuple<'_>> for revokeRoleReturn {
7248                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7249                    Self {}
7250                }
7251            }
7252        }
7253        impl revokeRoleReturn {
7254            fn _tokenize(
7255                &self,
7256            ) -> <revokeRoleCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
7257                ()
7258            }
7259        }
7260        #[automatically_derived]
7261        impl alloy_sol_types::SolCall for revokeRoleCall {
7262            type Parameters<'a> = (
7263                alloy::sol_types::sol_data::FixedBytes<32>,
7264                alloy::sol_types::sol_data::Address,
7265            );
7266            type Token<'a> = <Self::Parameters<
7267                'a,
7268            > as alloy_sol_types::SolType>::Token<'a>;
7269            type Return = revokeRoleReturn;
7270            type ReturnTuple<'a> = ();
7271            type ReturnToken<'a> = <Self::ReturnTuple<
7272                'a,
7273            > as alloy_sol_types::SolType>::Token<'a>;
7274            const SIGNATURE: &'static str = "revokeRole(bytes32,address)";
7275            const SELECTOR: [u8; 4] = [213u8, 71u8, 116u8, 31u8];
7276            #[inline]
7277            fn new<'a>(
7278                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
7279            ) -> Self {
7280                tuple.into()
7281            }
7282            #[inline]
7283            fn tokenize(&self) -> Self::Token<'_> {
7284                (
7285                    <alloy::sol_types::sol_data::FixedBytes<
7286                        32,
7287                    > as alloy_sol_types::SolType>::tokenize(&self.role),
7288                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
7289                        &self.account,
7290                    ),
7291                )
7292            }
7293            #[inline]
7294            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
7295                revokeRoleReturn::_tokenize(ret)
7296            }
7297            #[inline]
7298            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
7299                <Self::ReturnTuple<
7300                    '_,
7301                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
7302                    .map(Into::into)
7303            }
7304            #[inline]
7305            fn abi_decode_returns_validate(
7306                data: &[u8],
7307            ) -> alloy_sol_types::Result<Self::Return> {
7308                <Self::ReturnTuple<
7309                    '_,
7310                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
7311                    .map(Into::into)
7312            }
7313        }
7314    };
7315    #[derive(serde::Serialize, serde::Deserialize)]
7316    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7317    /**Function with signature `setDailyLimit(uint256)` and selector `0xb20d30a9`.
7318```solidity
7319function setDailyLimit(uint256 basisPoints) external;
7320```*/
7321    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7322    #[derive(Clone)]
7323    pub struct setDailyLimitCall {
7324        #[allow(missing_docs)]
7325        pub basisPoints: alloy::sol_types::private::primitives::aliases::U256,
7326    }
7327    ///Container type for the return parameters of the [`setDailyLimit(uint256)`](setDailyLimitCall) function.
7328    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7329    #[derive(Clone)]
7330    pub struct setDailyLimitReturn {}
7331    #[allow(
7332        non_camel_case_types,
7333        non_snake_case,
7334        clippy::pub_underscore_fields,
7335        clippy::style
7336    )]
7337    const _: () = {
7338        use alloy::sol_types as alloy_sol_types;
7339        {
7340            #[doc(hidden)]
7341            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
7342            #[doc(hidden)]
7343            type UnderlyingRustTuple<'a> = (
7344                alloy::sol_types::private::primitives::aliases::U256,
7345            );
7346            #[cfg(test)]
7347            #[allow(dead_code, unreachable_patterns)]
7348            fn _type_assertion(
7349                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7350            ) {
7351                match _t {
7352                    alloy_sol_types::private::AssertTypeEq::<
7353                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7354                    >(_) => {}
7355                }
7356            }
7357            #[automatically_derived]
7358            #[doc(hidden)]
7359            impl ::core::convert::From<setDailyLimitCall> for UnderlyingRustTuple<'_> {
7360                fn from(value: setDailyLimitCall) -> Self {
7361                    (value.basisPoints,)
7362                }
7363            }
7364            #[automatically_derived]
7365            #[doc(hidden)]
7366            impl ::core::convert::From<UnderlyingRustTuple<'_>> for setDailyLimitCall {
7367                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7368                    Self { basisPoints: tuple.0 }
7369                }
7370            }
7371        }
7372        {
7373            #[doc(hidden)]
7374            type UnderlyingSolTuple<'a> = ();
7375            #[doc(hidden)]
7376            type UnderlyingRustTuple<'a> = ();
7377            #[cfg(test)]
7378            #[allow(dead_code, unreachable_patterns)]
7379            fn _type_assertion(
7380                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7381            ) {
7382                match _t {
7383                    alloy_sol_types::private::AssertTypeEq::<
7384                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7385                    >(_) => {}
7386                }
7387            }
7388            #[automatically_derived]
7389            #[doc(hidden)]
7390            impl ::core::convert::From<setDailyLimitReturn> for UnderlyingRustTuple<'_> {
7391                fn from(value: setDailyLimitReturn) -> Self {
7392                    ()
7393                }
7394            }
7395            #[automatically_derived]
7396            #[doc(hidden)]
7397            impl ::core::convert::From<UnderlyingRustTuple<'_>> for setDailyLimitReturn {
7398                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7399                    Self {}
7400                }
7401            }
7402        }
7403        impl setDailyLimitReturn {
7404            fn _tokenize(
7405                &self,
7406            ) -> <setDailyLimitCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
7407                ()
7408            }
7409        }
7410        #[automatically_derived]
7411        impl alloy_sol_types::SolCall for setDailyLimitCall {
7412            type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,);
7413            type Token<'a> = <Self::Parameters<
7414                'a,
7415            > as alloy_sol_types::SolType>::Token<'a>;
7416            type Return = setDailyLimitReturn;
7417            type ReturnTuple<'a> = ();
7418            type ReturnToken<'a> = <Self::ReturnTuple<
7419                'a,
7420            > as alloy_sol_types::SolType>::Token<'a>;
7421            const SIGNATURE: &'static str = "setDailyLimit(uint256)";
7422            const SELECTOR: [u8; 4] = [178u8, 13u8, 48u8, 169u8];
7423            #[inline]
7424            fn new<'a>(
7425                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
7426            ) -> Self {
7427                tuple.into()
7428            }
7429            #[inline]
7430            fn tokenize(&self) -> Self::Token<'_> {
7431                (
7432                    <alloy::sol_types::sol_data::Uint<
7433                        256,
7434                    > as alloy_sol_types::SolType>::tokenize(&self.basisPoints),
7435                )
7436            }
7437            #[inline]
7438            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
7439                setDailyLimitReturn::_tokenize(ret)
7440            }
7441            #[inline]
7442            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
7443                <Self::ReturnTuple<
7444                    '_,
7445                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
7446                    .map(Into::into)
7447            }
7448            #[inline]
7449            fn abi_decode_returns_validate(
7450                data: &[u8],
7451            ) -> alloy_sol_types::Result<Self::Return> {
7452                <Self::ReturnTuple<
7453                    '_,
7454                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
7455                    .map(Into::into)
7456            }
7457        }
7458    };
7459    #[derive(serde::Serialize, serde::Deserialize)]
7460    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7461    /**Function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7`.
7462```solidity
7463function supportsInterface(bytes4 interfaceId) external view returns (bool);
7464```*/
7465    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7466    #[derive(Clone)]
7467    pub struct supportsInterfaceCall {
7468        #[allow(missing_docs)]
7469        pub interfaceId: alloy::sol_types::private::FixedBytes<4>,
7470    }
7471    #[derive(serde::Serialize, serde::Deserialize)]
7472    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7473    ///Container type for the return parameters of the [`supportsInterface(bytes4)`](supportsInterfaceCall) function.
7474    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7475    #[derive(Clone)]
7476    pub struct supportsInterfaceReturn {
7477        #[allow(missing_docs)]
7478        pub _0: bool,
7479    }
7480    #[allow(
7481        non_camel_case_types,
7482        non_snake_case,
7483        clippy::pub_underscore_fields,
7484        clippy::style
7485    )]
7486    const _: () = {
7487        use alloy::sol_types as alloy_sol_types;
7488        {
7489            #[doc(hidden)]
7490            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<4>,);
7491            #[doc(hidden)]
7492            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<4>,);
7493            #[cfg(test)]
7494            #[allow(dead_code, unreachable_patterns)]
7495            fn _type_assertion(
7496                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7497            ) {
7498                match _t {
7499                    alloy_sol_types::private::AssertTypeEq::<
7500                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7501                    >(_) => {}
7502                }
7503            }
7504            #[automatically_derived]
7505            #[doc(hidden)]
7506            impl ::core::convert::From<supportsInterfaceCall>
7507            for UnderlyingRustTuple<'_> {
7508                fn from(value: supportsInterfaceCall) -> Self {
7509                    (value.interfaceId,)
7510                }
7511            }
7512            #[automatically_derived]
7513            #[doc(hidden)]
7514            impl ::core::convert::From<UnderlyingRustTuple<'_>>
7515            for supportsInterfaceCall {
7516                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7517                    Self { interfaceId: tuple.0 }
7518                }
7519            }
7520        }
7521        {
7522            #[doc(hidden)]
7523            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,);
7524            #[doc(hidden)]
7525            type UnderlyingRustTuple<'a> = (bool,);
7526            #[cfg(test)]
7527            #[allow(dead_code, unreachable_patterns)]
7528            fn _type_assertion(
7529                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7530            ) {
7531                match _t {
7532                    alloy_sol_types::private::AssertTypeEq::<
7533                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7534                    >(_) => {}
7535                }
7536            }
7537            #[automatically_derived]
7538            #[doc(hidden)]
7539            impl ::core::convert::From<supportsInterfaceReturn>
7540            for UnderlyingRustTuple<'_> {
7541                fn from(value: supportsInterfaceReturn) -> Self {
7542                    (value._0,)
7543                }
7544            }
7545            #[automatically_derived]
7546            #[doc(hidden)]
7547            impl ::core::convert::From<UnderlyingRustTuple<'_>>
7548            for supportsInterfaceReturn {
7549                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7550                    Self { _0: tuple.0 }
7551                }
7552            }
7553        }
7554        #[automatically_derived]
7555        impl alloy_sol_types::SolCall for supportsInterfaceCall {
7556            type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<4>,);
7557            type Token<'a> = <Self::Parameters<
7558                'a,
7559            > as alloy_sol_types::SolType>::Token<'a>;
7560            type Return = bool;
7561            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,);
7562            type ReturnToken<'a> = <Self::ReturnTuple<
7563                'a,
7564            > as alloy_sol_types::SolType>::Token<'a>;
7565            const SIGNATURE: &'static str = "supportsInterface(bytes4)";
7566            const SELECTOR: [u8; 4] = [1u8, 255u8, 201u8, 167u8];
7567            #[inline]
7568            fn new<'a>(
7569                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
7570            ) -> Self {
7571                tuple.into()
7572            }
7573            #[inline]
7574            fn tokenize(&self) -> Self::Token<'_> {
7575                (
7576                    <alloy::sol_types::sol_data::FixedBytes<
7577                        4,
7578                    > as alloy_sol_types::SolType>::tokenize(&self.interfaceId),
7579                )
7580            }
7581            #[inline]
7582            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
7583                (
7584                    <alloy::sol_types::sol_data::Bool as alloy_sol_types::SolType>::tokenize(
7585                        ret,
7586                    ),
7587                )
7588            }
7589            #[inline]
7590            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
7591                <Self::ReturnTuple<
7592                    '_,
7593                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
7594                    .map(|r| {
7595                        let r: supportsInterfaceReturn = r.into();
7596                        r._0
7597                    })
7598            }
7599            #[inline]
7600            fn abi_decode_returns_validate(
7601                data: &[u8],
7602            ) -> alloy_sol_types::Result<Self::Return> {
7603                <Self::ReturnTuple<
7604                    '_,
7605                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
7606                    .map(|r| {
7607                        let r: supportsInterfaceReturn = r.into();
7608                        r._0
7609                    })
7610            }
7611        }
7612    };
7613    #[derive(serde::Serialize, serde::Deserialize)]
7614    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7615    /**Function with signature `totalClaimed()` and selector `0xd54ad2a1`.
7616```solidity
7617function totalClaimed() external view returns (uint256);
7618```*/
7619    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7620    #[derive(Clone)]
7621    pub struct totalClaimedCall;
7622    #[derive(serde::Serialize, serde::Deserialize)]
7623    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7624    ///Container type for the return parameters of the [`totalClaimed()`](totalClaimedCall) function.
7625    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7626    #[derive(Clone)]
7627    pub struct totalClaimedReturn {
7628        #[allow(missing_docs)]
7629        pub _0: alloy::sol_types::private::primitives::aliases::U256,
7630    }
7631    #[allow(
7632        non_camel_case_types,
7633        non_snake_case,
7634        clippy::pub_underscore_fields,
7635        clippy::style
7636    )]
7637    const _: () = {
7638        use alloy::sol_types as alloy_sol_types;
7639        {
7640            #[doc(hidden)]
7641            type UnderlyingSolTuple<'a> = ();
7642            #[doc(hidden)]
7643            type UnderlyingRustTuple<'a> = ();
7644            #[cfg(test)]
7645            #[allow(dead_code, unreachable_patterns)]
7646            fn _type_assertion(
7647                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7648            ) {
7649                match _t {
7650                    alloy_sol_types::private::AssertTypeEq::<
7651                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7652                    >(_) => {}
7653                }
7654            }
7655            #[automatically_derived]
7656            #[doc(hidden)]
7657            impl ::core::convert::From<totalClaimedCall> for UnderlyingRustTuple<'_> {
7658                fn from(value: totalClaimedCall) -> Self {
7659                    ()
7660                }
7661            }
7662            #[automatically_derived]
7663            #[doc(hidden)]
7664            impl ::core::convert::From<UnderlyingRustTuple<'_>> for totalClaimedCall {
7665                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7666                    Self
7667                }
7668            }
7669        }
7670        {
7671            #[doc(hidden)]
7672            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
7673            #[doc(hidden)]
7674            type UnderlyingRustTuple<'a> = (
7675                alloy::sol_types::private::primitives::aliases::U256,
7676            );
7677            #[cfg(test)]
7678            #[allow(dead_code, unreachable_patterns)]
7679            fn _type_assertion(
7680                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7681            ) {
7682                match _t {
7683                    alloy_sol_types::private::AssertTypeEq::<
7684                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7685                    >(_) => {}
7686                }
7687            }
7688            #[automatically_derived]
7689            #[doc(hidden)]
7690            impl ::core::convert::From<totalClaimedReturn> for UnderlyingRustTuple<'_> {
7691                fn from(value: totalClaimedReturn) -> Self {
7692                    (value._0,)
7693                }
7694            }
7695            #[automatically_derived]
7696            #[doc(hidden)]
7697            impl ::core::convert::From<UnderlyingRustTuple<'_>> for totalClaimedReturn {
7698                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7699                    Self { _0: tuple.0 }
7700                }
7701            }
7702        }
7703        #[automatically_derived]
7704        impl alloy_sol_types::SolCall for totalClaimedCall {
7705            type Parameters<'a> = ();
7706            type Token<'a> = <Self::Parameters<
7707                'a,
7708            > as alloy_sol_types::SolType>::Token<'a>;
7709            type Return = alloy::sol_types::private::primitives::aliases::U256;
7710            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
7711            type ReturnToken<'a> = <Self::ReturnTuple<
7712                'a,
7713            > as alloy_sol_types::SolType>::Token<'a>;
7714            const SIGNATURE: &'static str = "totalClaimed()";
7715            const SELECTOR: [u8; 4] = [213u8, 74u8, 210u8, 161u8];
7716            #[inline]
7717            fn new<'a>(
7718                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
7719            ) -> Self {
7720                tuple.into()
7721            }
7722            #[inline]
7723            fn tokenize(&self) -> Self::Token<'_> {
7724                ()
7725            }
7726            #[inline]
7727            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
7728                (
7729                    <alloy::sol_types::sol_data::Uint<
7730                        256,
7731                    > as alloy_sol_types::SolType>::tokenize(ret),
7732                )
7733            }
7734            #[inline]
7735            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
7736                <Self::ReturnTuple<
7737                    '_,
7738                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
7739                    .map(|r| {
7740                        let r: totalClaimedReturn = r.into();
7741                        r._0
7742                    })
7743            }
7744            #[inline]
7745            fn abi_decode_returns_validate(
7746                data: &[u8],
7747            ) -> alloy_sol_types::Result<Self::Return> {
7748                <Self::ReturnTuple<
7749                    '_,
7750                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
7751                    .map(|r| {
7752                        let r: totalClaimedReturn = r.into();
7753                        r._0
7754                    })
7755            }
7756        }
7757    };
7758    #[derive(serde::Serialize, serde::Deserialize)]
7759    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7760    /**Function with signature `unpause()` and selector `0x3f4ba83a`.
7761```solidity
7762function unpause() external;
7763```*/
7764    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7765    #[derive(Clone)]
7766    pub struct unpauseCall;
7767    ///Container type for the return parameters of the [`unpause()`](unpauseCall) function.
7768    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7769    #[derive(Clone)]
7770    pub struct unpauseReturn {}
7771    #[allow(
7772        non_camel_case_types,
7773        non_snake_case,
7774        clippy::pub_underscore_fields,
7775        clippy::style
7776    )]
7777    const _: () = {
7778        use alloy::sol_types as alloy_sol_types;
7779        {
7780            #[doc(hidden)]
7781            type UnderlyingSolTuple<'a> = ();
7782            #[doc(hidden)]
7783            type UnderlyingRustTuple<'a> = ();
7784            #[cfg(test)]
7785            #[allow(dead_code, unreachable_patterns)]
7786            fn _type_assertion(
7787                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7788            ) {
7789                match _t {
7790                    alloy_sol_types::private::AssertTypeEq::<
7791                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7792                    >(_) => {}
7793                }
7794            }
7795            #[automatically_derived]
7796            #[doc(hidden)]
7797            impl ::core::convert::From<unpauseCall> for UnderlyingRustTuple<'_> {
7798                fn from(value: unpauseCall) -> Self {
7799                    ()
7800                }
7801            }
7802            #[automatically_derived]
7803            #[doc(hidden)]
7804            impl ::core::convert::From<UnderlyingRustTuple<'_>> for unpauseCall {
7805                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7806                    Self
7807                }
7808            }
7809        }
7810        {
7811            #[doc(hidden)]
7812            type UnderlyingSolTuple<'a> = ();
7813            #[doc(hidden)]
7814            type UnderlyingRustTuple<'a> = ();
7815            #[cfg(test)]
7816            #[allow(dead_code, unreachable_patterns)]
7817            fn _type_assertion(
7818                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7819            ) {
7820                match _t {
7821                    alloy_sol_types::private::AssertTypeEq::<
7822                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7823                    >(_) => {}
7824                }
7825            }
7826            #[automatically_derived]
7827            #[doc(hidden)]
7828            impl ::core::convert::From<unpauseReturn> for UnderlyingRustTuple<'_> {
7829                fn from(value: unpauseReturn) -> Self {
7830                    ()
7831                }
7832            }
7833            #[automatically_derived]
7834            #[doc(hidden)]
7835            impl ::core::convert::From<UnderlyingRustTuple<'_>> for unpauseReturn {
7836                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7837                    Self {}
7838                }
7839            }
7840        }
7841        impl unpauseReturn {
7842            fn _tokenize(
7843                &self,
7844            ) -> <unpauseCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
7845                ()
7846            }
7847        }
7848        #[automatically_derived]
7849        impl alloy_sol_types::SolCall for unpauseCall {
7850            type Parameters<'a> = ();
7851            type Token<'a> = <Self::Parameters<
7852                'a,
7853            > as alloy_sol_types::SolType>::Token<'a>;
7854            type Return = unpauseReturn;
7855            type ReturnTuple<'a> = ();
7856            type ReturnToken<'a> = <Self::ReturnTuple<
7857                'a,
7858            > as alloy_sol_types::SolType>::Token<'a>;
7859            const SIGNATURE: &'static str = "unpause()";
7860            const SELECTOR: [u8; 4] = [63u8, 75u8, 168u8, 58u8];
7861            #[inline]
7862            fn new<'a>(
7863                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
7864            ) -> Self {
7865                tuple.into()
7866            }
7867            #[inline]
7868            fn tokenize(&self) -> Self::Token<'_> {
7869                ()
7870            }
7871            #[inline]
7872            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
7873                unpauseReturn::_tokenize(ret)
7874            }
7875            #[inline]
7876            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
7877                <Self::ReturnTuple<
7878                    '_,
7879                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
7880                    .map(Into::into)
7881            }
7882            #[inline]
7883            fn abi_decode_returns_validate(
7884                data: &[u8],
7885            ) -> alloy_sol_types::Result<Self::Return> {
7886                <Self::ReturnTuple<
7887                    '_,
7888                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
7889                    .map(Into::into)
7890            }
7891        }
7892    };
7893    #[derive(serde::Serialize, serde::Deserialize)]
7894    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7895    /**Function with signature `upgradeToAndCall(address,bytes)` and selector `0x4f1ef286`.
7896```solidity
7897function upgradeToAndCall(address newImplementation, bytes memory data) external payable;
7898```*/
7899    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7900    #[derive(Clone)]
7901    pub struct upgradeToAndCallCall {
7902        #[allow(missing_docs)]
7903        pub newImplementation: alloy::sol_types::private::Address,
7904        #[allow(missing_docs)]
7905        pub data: alloy::sol_types::private::Bytes,
7906    }
7907    ///Container type for the return parameters of the [`upgradeToAndCall(address,bytes)`](upgradeToAndCallCall) function.
7908    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7909    #[derive(Clone)]
7910    pub struct upgradeToAndCallReturn {}
7911    #[allow(
7912        non_camel_case_types,
7913        non_snake_case,
7914        clippy::pub_underscore_fields,
7915        clippy::style
7916    )]
7917    const _: () = {
7918        use alloy::sol_types as alloy_sol_types;
7919        {
7920            #[doc(hidden)]
7921            type UnderlyingSolTuple<'a> = (
7922                alloy::sol_types::sol_data::Address,
7923                alloy::sol_types::sol_data::Bytes,
7924            );
7925            #[doc(hidden)]
7926            type UnderlyingRustTuple<'a> = (
7927                alloy::sol_types::private::Address,
7928                alloy::sol_types::private::Bytes,
7929            );
7930            #[cfg(test)]
7931            #[allow(dead_code, unreachable_patterns)]
7932            fn _type_assertion(
7933                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7934            ) {
7935                match _t {
7936                    alloy_sol_types::private::AssertTypeEq::<
7937                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7938                    >(_) => {}
7939                }
7940            }
7941            #[automatically_derived]
7942            #[doc(hidden)]
7943            impl ::core::convert::From<upgradeToAndCallCall>
7944            for UnderlyingRustTuple<'_> {
7945                fn from(value: upgradeToAndCallCall) -> Self {
7946                    (value.newImplementation, value.data)
7947                }
7948            }
7949            #[automatically_derived]
7950            #[doc(hidden)]
7951            impl ::core::convert::From<UnderlyingRustTuple<'_>>
7952            for upgradeToAndCallCall {
7953                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7954                    Self {
7955                        newImplementation: tuple.0,
7956                        data: tuple.1,
7957                    }
7958                }
7959            }
7960        }
7961        {
7962            #[doc(hidden)]
7963            type UnderlyingSolTuple<'a> = ();
7964            #[doc(hidden)]
7965            type UnderlyingRustTuple<'a> = ();
7966            #[cfg(test)]
7967            #[allow(dead_code, unreachable_patterns)]
7968            fn _type_assertion(
7969                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7970            ) {
7971                match _t {
7972                    alloy_sol_types::private::AssertTypeEq::<
7973                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7974                    >(_) => {}
7975                }
7976            }
7977            #[automatically_derived]
7978            #[doc(hidden)]
7979            impl ::core::convert::From<upgradeToAndCallReturn>
7980            for UnderlyingRustTuple<'_> {
7981                fn from(value: upgradeToAndCallReturn) -> Self {
7982                    ()
7983                }
7984            }
7985            #[automatically_derived]
7986            #[doc(hidden)]
7987            impl ::core::convert::From<UnderlyingRustTuple<'_>>
7988            for upgradeToAndCallReturn {
7989                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7990                    Self {}
7991                }
7992            }
7993        }
7994        impl upgradeToAndCallReturn {
7995            fn _tokenize(
7996                &self,
7997            ) -> <upgradeToAndCallCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
7998                ()
7999            }
8000        }
8001        #[automatically_derived]
8002        impl alloy_sol_types::SolCall for upgradeToAndCallCall {
8003            type Parameters<'a> = (
8004                alloy::sol_types::sol_data::Address,
8005                alloy::sol_types::sol_data::Bytes,
8006            );
8007            type Token<'a> = <Self::Parameters<
8008                'a,
8009            > as alloy_sol_types::SolType>::Token<'a>;
8010            type Return = upgradeToAndCallReturn;
8011            type ReturnTuple<'a> = ();
8012            type ReturnToken<'a> = <Self::ReturnTuple<
8013                'a,
8014            > as alloy_sol_types::SolType>::Token<'a>;
8015            const SIGNATURE: &'static str = "upgradeToAndCall(address,bytes)";
8016            const SELECTOR: [u8; 4] = [79u8, 30u8, 242u8, 134u8];
8017            #[inline]
8018            fn new<'a>(
8019                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
8020            ) -> Self {
8021                tuple.into()
8022            }
8023            #[inline]
8024            fn tokenize(&self) -> Self::Token<'_> {
8025                (
8026                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
8027                        &self.newImplementation,
8028                    ),
8029                    <alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
8030                        &self.data,
8031                    ),
8032                )
8033            }
8034            #[inline]
8035            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
8036                upgradeToAndCallReturn::_tokenize(ret)
8037            }
8038            #[inline]
8039            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
8040                <Self::ReturnTuple<
8041                    '_,
8042                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
8043                    .map(Into::into)
8044            }
8045            #[inline]
8046            fn abi_decode_returns_validate(
8047                data: &[u8],
8048            ) -> alloy_sol_types::Result<Self::Return> {
8049                <Self::ReturnTuple<
8050                    '_,
8051                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
8052                    .map(Into::into)
8053            }
8054        }
8055    };
8056    ///Container for all the [`RewardClaim`](self) function calls.
8057    #[derive(serde::Serialize, serde::Deserialize)]
8058    #[derive()]
8059    pub enum RewardClaimCalls {
8060        #[allow(missing_docs)]
8061        BPS_DENOMINATOR(BPS_DENOMINATORCall),
8062        #[allow(missing_docs)]
8063        DEFAULT_ADMIN_ROLE(DEFAULT_ADMIN_ROLECall),
8064        #[allow(missing_docs)]
8065        MAX_DAILY_LIMIT_BASIS_POINTS(MAX_DAILY_LIMIT_BASIS_POINTSCall),
8066        #[allow(missing_docs)]
8067        PAUSER_ROLE(PAUSER_ROLECall),
8068        #[allow(missing_docs)]
8069        UPGRADE_INTERFACE_VERSION(UPGRADE_INTERFACE_VERSIONCall),
8070        #[allow(missing_docs)]
8071        claimRewards(claimRewardsCall),
8072        #[allow(missing_docs)]
8073        claimedRewards(claimedRewardsCall),
8074        #[allow(missing_docs)]
8075        currentAdmin(currentAdminCall),
8076        #[allow(missing_docs)]
8077        dailyLimitWei(dailyLimitWeiCall),
8078        #[allow(missing_docs)]
8079        espToken(espTokenCall),
8080        #[allow(missing_docs)]
8081        getRoleAdmin(getRoleAdminCall),
8082        #[allow(missing_docs)]
8083        getVersion(getVersionCall),
8084        #[allow(missing_docs)]
8085        grantRole(grantRoleCall),
8086        #[allow(missing_docs)]
8087        hasRole(hasRoleCall),
8088        #[allow(missing_docs)]
8089        initialize(initializeCall),
8090        #[allow(missing_docs)]
8091        lastSetDailyLimitBasisPoints(lastSetDailyLimitBasisPointsCall),
8092        #[allow(missing_docs)]
8093        lightClient(lightClientCall),
8094        #[allow(missing_docs)]
8095        pause(pauseCall),
8096        #[allow(missing_docs)]
8097        paused(pausedCall),
8098        #[allow(missing_docs)]
8099        proxiableUUID(proxiableUUIDCall),
8100        #[allow(missing_docs)]
8101        renounceRole(renounceRoleCall),
8102        #[allow(missing_docs)]
8103        revokeRole(revokeRoleCall),
8104        #[allow(missing_docs)]
8105        setDailyLimit(setDailyLimitCall),
8106        #[allow(missing_docs)]
8107        supportsInterface(supportsInterfaceCall),
8108        #[allow(missing_docs)]
8109        totalClaimed(totalClaimedCall),
8110        #[allow(missing_docs)]
8111        unpause(unpauseCall),
8112        #[allow(missing_docs)]
8113        upgradeToAndCall(upgradeToAndCallCall),
8114    }
8115    #[automatically_derived]
8116    impl RewardClaimCalls {
8117        /// All the selectors of this enum.
8118        ///
8119        /// Note that the selectors might not be in the same order as the variants.
8120        /// No guarantees are made about the order of the selectors.
8121        ///
8122        /// Prefer using `SolInterface` methods instead.
8123        pub const SELECTORS: &'static [[u8; 4usize]] = &[
8124            [1u8, 255u8, 201u8, 167u8],
8125            [13u8, 142u8, 110u8, 44u8],
8126            [15u8, 108u8, 161u8, 214u8],
8127            [36u8, 138u8, 156u8, 163u8],
8128            [44u8, 202u8, 116u8, 216u8],
8129            [47u8, 47u8, 241u8, 93u8],
8130            [54u8, 86u8, 138u8, 190u8],
8131            [63u8, 75u8, 168u8, 58u8],
8132            [79u8, 30u8, 242u8, 134u8],
8133            [82u8, 209u8, 144u8, 45u8],
8134            [84u8, 157u8, 216u8, 195u8],
8135            [92u8, 151u8, 90u8, 187u8],
8136            [132u8, 86u8, 203u8, 89u8],
8137            [145u8, 209u8, 72u8, 84u8],
8138            [162u8, 23u8, 253u8, 223u8],
8139            [173u8, 60u8, 177u8, 204u8],
8140            [178u8, 13u8, 48u8, 169u8],
8141            [181u8, 112u8, 14u8, 104u8],
8142            [186u8, 75u8, 205u8, 114u8],
8143            [189u8, 131u8, 67u8, 69u8],
8144            [207u8, 33u8, 57u8, 91u8],
8145            [213u8, 71u8, 116u8, 31u8],
8146            [213u8, 74u8, 210u8, 161u8],
8147            [225u8, 164u8, 82u8, 24u8],
8148            [230u8, 58u8, 177u8, 233u8],
8149            [240u8, 146u8, 225u8, 58u8],
8150            [248u8, 200u8, 118u8, 94u8],
8151        ];
8152    }
8153    #[automatically_derived]
8154    impl alloy_sol_types::SolInterface for RewardClaimCalls {
8155        const NAME: &'static str = "RewardClaimCalls";
8156        const MIN_DATA_LENGTH: usize = 0usize;
8157        const COUNT: usize = 27usize;
8158        #[inline]
8159        fn selector(&self) -> [u8; 4] {
8160            match self {
8161                Self::BPS_DENOMINATOR(_) => {
8162                    <BPS_DENOMINATORCall as alloy_sol_types::SolCall>::SELECTOR
8163                }
8164                Self::DEFAULT_ADMIN_ROLE(_) => {
8165                    <DEFAULT_ADMIN_ROLECall as alloy_sol_types::SolCall>::SELECTOR
8166                }
8167                Self::MAX_DAILY_LIMIT_BASIS_POINTS(_) => {
8168                    <MAX_DAILY_LIMIT_BASIS_POINTSCall as alloy_sol_types::SolCall>::SELECTOR
8169                }
8170                Self::PAUSER_ROLE(_) => {
8171                    <PAUSER_ROLECall as alloy_sol_types::SolCall>::SELECTOR
8172                }
8173                Self::UPGRADE_INTERFACE_VERSION(_) => {
8174                    <UPGRADE_INTERFACE_VERSIONCall as alloy_sol_types::SolCall>::SELECTOR
8175                }
8176                Self::claimRewards(_) => {
8177                    <claimRewardsCall as alloy_sol_types::SolCall>::SELECTOR
8178                }
8179                Self::claimedRewards(_) => {
8180                    <claimedRewardsCall as alloy_sol_types::SolCall>::SELECTOR
8181                }
8182                Self::currentAdmin(_) => {
8183                    <currentAdminCall as alloy_sol_types::SolCall>::SELECTOR
8184                }
8185                Self::dailyLimitWei(_) => {
8186                    <dailyLimitWeiCall as alloy_sol_types::SolCall>::SELECTOR
8187                }
8188                Self::espToken(_) => <espTokenCall as alloy_sol_types::SolCall>::SELECTOR,
8189                Self::getRoleAdmin(_) => {
8190                    <getRoleAdminCall as alloy_sol_types::SolCall>::SELECTOR
8191                }
8192                Self::getVersion(_) => {
8193                    <getVersionCall as alloy_sol_types::SolCall>::SELECTOR
8194                }
8195                Self::grantRole(_) => {
8196                    <grantRoleCall as alloy_sol_types::SolCall>::SELECTOR
8197                }
8198                Self::hasRole(_) => <hasRoleCall as alloy_sol_types::SolCall>::SELECTOR,
8199                Self::initialize(_) => {
8200                    <initializeCall as alloy_sol_types::SolCall>::SELECTOR
8201                }
8202                Self::lastSetDailyLimitBasisPoints(_) => {
8203                    <lastSetDailyLimitBasisPointsCall as alloy_sol_types::SolCall>::SELECTOR
8204                }
8205                Self::lightClient(_) => {
8206                    <lightClientCall as alloy_sol_types::SolCall>::SELECTOR
8207                }
8208                Self::pause(_) => <pauseCall as alloy_sol_types::SolCall>::SELECTOR,
8209                Self::paused(_) => <pausedCall as alloy_sol_types::SolCall>::SELECTOR,
8210                Self::proxiableUUID(_) => {
8211                    <proxiableUUIDCall as alloy_sol_types::SolCall>::SELECTOR
8212                }
8213                Self::renounceRole(_) => {
8214                    <renounceRoleCall as alloy_sol_types::SolCall>::SELECTOR
8215                }
8216                Self::revokeRole(_) => {
8217                    <revokeRoleCall as alloy_sol_types::SolCall>::SELECTOR
8218                }
8219                Self::setDailyLimit(_) => {
8220                    <setDailyLimitCall as alloy_sol_types::SolCall>::SELECTOR
8221                }
8222                Self::supportsInterface(_) => {
8223                    <supportsInterfaceCall as alloy_sol_types::SolCall>::SELECTOR
8224                }
8225                Self::totalClaimed(_) => {
8226                    <totalClaimedCall as alloy_sol_types::SolCall>::SELECTOR
8227                }
8228                Self::unpause(_) => <unpauseCall as alloy_sol_types::SolCall>::SELECTOR,
8229                Self::upgradeToAndCall(_) => {
8230                    <upgradeToAndCallCall as alloy_sol_types::SolCall>::SELECTOR
8231                }
8232            }
8233        }
8234        #[inline]
8235        fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
8236            Self::SELECTORS.get(i).copied()
8237        }
8238        #[inline]
8239        fn valid_selector(selector: [u8; 4]) -> bool {
8240            Self::SELECTORS.binary_search(&selector).is_ok()
8241        }
8242        #[inline]
8243        #[allow(non_snake_case)]
8244        fn abi_decode_raw(
8245            selector: [u8; 4],
8246            data: &[u8],
8247        ) -> alloy_sol_types::Result<Self> {
8248            static DECODE_SHIMS: &[fn(
8249                &[u8],
8250            ) -> alloy_sol_types::Result<RewardClaimCalls>] = &[
8251                {
8252                    fn supportsInterface(
8253                        data: &[u8],
8254                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8255                        <supportsInterfaceCall as alloy_sol_types::SolCall>::abi_decode_raw(
8256                                data,
8257                            )
8258                            .map(RewardClaimCalls::supportsInterface)
8259                    }
8260                    supportsInterface
8261                },
8262                {
8263                    fn getVersion(
8264                        data: &[u8],
8265                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8266                        <getVersionCall as alloy_sol_types::SolCall>::abi_decode_raw(
8267                                data,
8268                            )
8269                            .map(RewardClaimCalls::getVersion)
8270                    }
8271                    getVersion
8272                },
8273                {
8274                    fn lastSetDailyLimitBasisPoints(
8275                        data: &[u8],
8276                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8277                        <lastSetDailyLimitBasisPointsCall as alloy_sol_types::SolCall>::abi_decode_raw(
8278                                data,
8279                            )
8280                            .map(RewardClaimCalls::lastSetDailyLimitBasisPoints)
8281                    }
8282                    lastSetDailyLimitBasisPoints
8283                },
8284                {
8285                    fn getRoleAdmin(
8286                        data: &[u8],
8287                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8288                        <getRoleAdminCall as alloy_sol_types::SolCall>::abi_decode_raw(
8289                                data,
8290                            )
8291                            .map(RewardClaimCalls::getRoleAdmin)
8292                    }
8293                    getRoleAdmin
8294                },
8295                {
8296                    fn dailyLimitWei(
8297                        data: &[u8],
8298                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8299                        <dailyLimitWeiCall as alloy_sol_types::SolCall>::abi_decode_raw(
8300                                data,
8301                            )
8302                            .map(RewardClaimCalls::dailyLimitWei)
8303                    }
8304                    dailyLimitWei
8305                },
8306                {
8307                    fn grantRole(
8308                        data: &[u8],
8309                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8310                        <grantRoleCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
8311                            .map(RewardClaimCalls::grantRole)
8312                    }
8313                    grantRole
8314                },
8315                {
8316                    fn renounceRole(
8317                        data: &[u8],
8318                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8319                        <renounceRoleCall as alloy_sol_types::SolCall>::abi_decode_raw(
8320                                data,
8321                            )
8322                            .map(RewardClaimCalls::renounceRole)
8323                    }
8324                    renounceRole
8325                },
8326                {
8327                    fn unpause(
8328                        data: &[u8],
8329                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8330                        <unpauseCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
8331                            .map(RewardClaimCalls::unpause)
8332                    }
8333                    unpause
8334                },
8335                {
8336                    fn upgradeToAndCall(
8337                        data: &[u8],
8338                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8339                        <upgradeToAndCallCall as alloy_sol_types::SolCall>::abi_decode_raw(
8340                                data,
8341                            )
8342                            .map(RewardClaimCalls::upgradeToAndCall)
8343                    }
8344                    upgradeToAndCall
8345                },
8346                {
8347                    fn proxiableUUID(
8348                        data: &[u8],
8349                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8350                        <proxiableUUIDCall as alloy_sol_types::SolCall>::abi_decode_raw(
8351                                data,
8352                            )
8353                            .map(RewardClaimCalls::proxiableUUID)
8354                    }
8355                    proxiableUUID
8356                },
8357                {
8358                    fn claimRewards(
8359                        data: &[u8],
8360                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8361                        <claimRewardsCall as alloy_sol_types::SolCall>::abi_decode_raw(
8362                                data,
8363                            )
8364                            .map(RewardClaimCalls::claimRewards)
8365                    }
8366                    claimRewards
8367                },
8368                {
8369                    fn paused(data: &[u8]) -> alloy_sol_types::Result<RewardClaimCalls> {
8370                        <pausedCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
8371                            .map(RewardClaimCalls::paused)
8372                    }
8373                    paused
8374                },
8375                {
8376                    fn pause(data: &[u8]) -> alloy_sol_types::Result<RewardClaimCalls> {
8377                        <pauseCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
8378                            .map(RewardClaimCalls::pause)
8379                    }
8380                    pause
8381                },
8382                {
8383                    fn hasRole(
8384                        data: &[u8],
8385                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8386                        <hasRoleCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
8387                            .map(RewardClaimCalls::hasRole)
8388                    }
8389                    hasRole
8390                },
8391                {
8392                    fn DEFAULT_ADMIN_ROLE(
8393                        data: &[u8],
8394                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8395                        <DEFAULT_ADMIN_ROLECall as alloy_sol_types::SolCall>::abi_decode_raw(
8396                                data,
8397                            )
8398                            .map(RewardClaimCalls::DEFAULT_ADMIN_ROLE)
8399                    }
8400                    DEFAULT_ADMIN_ROLE
8401                },
8402                {
8403                    fn UPGRADE_INTERFACE_VERSION(
8404                        data: &[u8],
8405                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8406                        <UPGRADE_INTERFACE_VERSIONCall as alloy_sol_types::SolCall>::abi_decode_raw(
8407                                data,
8408                            )
8409                            .map(RewardClaimCalls::UPGRADE_INTERFACE_VERSION)
8410                    }
8411                    UPGRADE_INTERFACE_VERSION
8412                },
8413                {
8414                    fn setDailyLimit(
8415                        data: &[u8],
8416                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8417                        <setDailyLimitCall as alloy_sol_types::SolCall>::abi_decode_raw(
8418                                data,
8419                            )
8420                            .map(RewardClaimCalls::setDailyLimit)
8421                    }
8422                    setDailyLimit
8423                },
8424                {
8425                    fn lightClient(
8426                        data: &[u8],
8427                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8428                        <lightClientCall as alloy_sol_types::SolCall>::abi_decode_raw(
8429                                data,
8430                            )
8431                            .map(RewardClaimCalls::lightClient)
8432                    }
8433                    lightClient
8434                },
8435                {
8436                    fn currentAdmin(
8437                        data: &[u8],
8438                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8439                        <currentAdminCall as alloy_sol_types::SolCall>::abi_decode_raw(
8440                                data,
8441                            )
8442                            .map(RewardClaimCalls::currentAdmin)
8443                    }
8444                    currentAdmin
8445                },
8446                {
8447                    fn claimedRewards(
8448                        data: &[u8],
8449                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8450                        <claimedRewardsCall as alloy_sol_types::SolCall>::abi_decode_raw(
8451                                data,
8452                            )
8453                            .map(RewardClaimCalls::claimedRewards)
8454                    }
8455                    claimedRewards
8456                },
8457                {
8458                    fn MAX_DAILY_LIMIT_BASIS_POINTS(
8459                        data: &[u8],
8460                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8461                        <MAX_DAILY_LIMIT_BASIS_POINTSCall as alloy_sol_types::SolCall>::abi_decode_raw(
8462                                data,
8463                            )
8464                            .map(RewardClaimCalls::MAX_DAILY_LIMIT_BASIS_POINTS)
8465                    }
8466                    MAX_DAILY_LIMIT_BASIS_POINTS
8467                },
8468                {
8469                    fn revokeRole(
8470                        data: &[u8],
8471                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8472                        <revokeRoleCall as alloy_sol_types::SolCall>::abi_decode_raw(
8473                                data,
8474                            )
8475                            .map(RewardClaimCalls::revokeRole)
8476                    }
8477                    revokeRole
8478                },
8479                {
8480                    fn totalClaimed(
8481                        data: &[u8],
8482                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8483                        <totalClaimedCall as alloy_sol_types::SolCall>::abi_decode_raw(
8484                                data,
8485                            )
8486                            .map(RewardClaimCalls::totalClaimed)
8487                    }
8488                    totalClaimed
8489                },
8490                {
8491                    fn BPS_DENOMINATOR(
8492                        data: &[u8],
8493                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8494                        <BPS_DENOMINATORCall as alloy_sol_types::SolCall>::abi_decode_raw(
8495                                data,
8496                            )
8497                            .map(RewardClaimCalls::BPS_DENOMINATOR)
8498                    }
8499                    BPS_DENOMINATOR
8500                },
8501                {
8502                    fn PAUSER_ROLE(
8503                        data: &[u8],
8504                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8505                        <PAUSER_ROLECall as alloy_sol_types::SolCall>::abi_decode_raw(
8506                                data,
8507                            )
8508                            .map(RewardClaimCalls::PAUSER_ROLE)
8509                    }
8510                    PAUSER_ROLE
8511                },
8512                {
8513                    fn espToken(
8514                        data: &[u8],
8515                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8516                        <espTokenCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
8517                            .map(RewardClaimCalls::espToken)
8518                    }
8519                    espToken
8520                },
8521                {
8522                    fn initialize(
8523                        data: &[u8],
8524                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8525                        <initializeCall as alloy_sol_types::SolCall>::abi_decode_raw(
8526                                data,
8527                            )
8528                            .map(RewardClaimCalls::initialize)
8529                    }
8530                    initialize
8531                },
8532            ];
8533            let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
8534                return Err(
8535                    alloy_sol_types::Error::unknown_selector(
8536                        <Self as alloy_sol_types::SolInterface>::NAME,
8537                        selector,
8538                    ),
8539                );
8540            };
8541            DECODE_SHIMS[idx](data)
8542        }
8543        #[inline]
8544        #[allow(non_snake_case)]
8545        fn abi_decode_raw_validate(
8546            selector: [u8; 4],
8547            data: &[u8],
8548        ) -> alloy_sol_types::Result<Self> {
8549            static DECODE_VALIDATE_SHIMS: &[fn(
8550                &[u8],
8551            ) -> alloy_sol_types::Result<RewardClaimCalls>] = &[
8552                {
8553                    fn supportsInterface(
8554                        data: &[u8],
8555                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8556                        <supportsInterfaceCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8557                                data,
8558                            )
8559                            .map(RewardClaimCalls::supportsInterface)
8560                    }
8561                    supportsInterface
8562                },
8563                {
8564                    fn getVersion(
8565                        data: &[u8],
8566                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8567                        <getVersionCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8568                                data,
8569                            )
8570                            .map(RewardClaimCalls::getVersion)
8571                    }
8572                    getVersion
8573                },
8574                {
8575                    fn lastSetDailyLimitBasisPoints(
8576                        data: &[u8],
8577                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8578                        <lastSetDailyLimitBasisPointsCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8579                                data,
8580                            )
8581                            .map(RewardClaimCalls::lastSetDailyLimitBasisPoints)
8582                    }
8583                    lastSetDailyLimitBasisPoints
8584                },
8585                {
8586                    fn getRoleAdmin(
8587                        data: &[u8],
8588                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8589                        <getRoleAdminCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8590                                data,
8591                            )
8592                            .map(RewardClaimCalls::getRoleAdmin)
8593                    }
8594                    getRoleAdmin
8595                },
8596                {
8597                    fn dailyLimitWei(
8598                        data: &[u8],
8599                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8600                        <dailyLimitWeiCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8601                                data,
8602                            )
8603                            .map(RewardClaimCalls::dailyLimitWei)
8604                    }
8605                    dailyLimitWei
8606                },
8607                {
8608                    fn grantRole(
8609                        data: &[u8],
8610                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8611                        <grantRoleCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8612                                data,
8613                            )
8614                            .map(RewardClaimCalls::grantRole)
8615                    }
8616                    grantRole
8617                },
8618                {
8619                    fn renounceRole(
8620                        data: &[u8],
8621                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8622                        <renounceRoleCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8623                                data,
8624                            )
8625                            .map(RewardClaimCalls::renounceRole)
8626                    }
8627                    renounceRole
8628                },
8629                {
8630                    fn unpause(
8631                        data: &[u8],
8632                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8633                        <unpauseCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8634                                data,
8635                            )
8636                            .map(RewardClaimCalls::unpause)
8637                    }
8638                    unpause
8639                },
8640                {
8641                    fn upgradeToAndCall(
8642                        data: &[u8],
8643                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8644                        <upgradeToAndCallCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8645                                data,
8646                            )
8647                            .map(RewardClaimCalls::upgradeToAndCall)
8648                    }
8649                    upgradeToAndCall
8650                },
8651                {
8652                    fn proxiableUUID(
8653                        data: &[u8],
8654                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8655                        <proxiableUUIDCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8656                                data,
8657                            )
8658                            .map(RewardClaimCalls::proxiableUUID)
8659                    }
8660                    proxiableUUID
8661                },
8662                {
8663                    fn claimRewards(
8664                        data: &[u8],
8665                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8666                        <claimRewardsCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8667                                data,
8668                            )
8669                            .map(RewardClaimCalls::claimRewards)
8670                    }
8671                    claimRewards
8672                },
8673                {
8674                    fn paused(data: &[u8]) -> alloy_sol_types::Result<RewardClaimCalls> {
8675                        <pausedCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8676                                data,
8677                            )
8678                            .map(RewardClaimCalls::paused)
8679                    }
8680                    paused
8681                },
8682                {
8683                    fn pause(data: &[u8]) -> alloy_sol_types::Result<RewardClaimCalls> {
8684                        <pauseCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8685                                data,
8686                            )
8687                            .map(RewardClaimCalls::pause)
8688                    }
8689                    pause
8690                },
8691                {
8692                    fn hasRole(
8693                        data: &[u8],
8694                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8695                        <hasRoleCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8696                                data,
8697                            )
8698                            .map(RewardClaimCalls::hasRole)
8699                    }
8700                    hasRole
8701                },
8702                {
8703                    fn DEFAULT_ADMIN_ROLE(
8704                        data: &[u8],
8705                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8706                        <DEFAULT_ADMIN_ROLECall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8707                                data,
8708                            )
8709                            .map(RewardClaimCalls::DEFAULT_ADMIN_ROLE)
8710                    }
8711                    DEFAULT_ADMIN_ROLE
8712                },
8713                {
8714                    fn UPGRADE_INTERFACE_VERSION(
8715                        data: &[u8],
8716                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8717                        <UPGRADE_INTERFACE_VERSIONCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8718                                data,
8719                            )
8720                            .map(RewardClaimCalls::UPGRADE_INTERFACE_VERSION)
8721                    }
8722                    UPGRADE_INTERFACE_VERSION
8723                },
8724                {
8725                    fn setDailyLimit(
8726                        data: &[u8],
8727                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8728                        <setDailyLimitCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8729                                data,
8730                            )
8731                            .map(RewardClaimCalls::setDailyLimit)
8732                    }
8733                    setDailyLimit
8734                },
8735                {
8736                    fn lightClient(
8737                        data: &[u8],
8738                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8739                        <lightClientCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8740                                data,
8741                            )
8742                            .map(RewardClaimCalls::lightClient)
8743                    }
8744                    lightClient
8745                },
8746                {
8747                    fn currentAdmin(
8748                        data: &[u8],
8749                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8750                        <currentAdminCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8751                                data,
8752                            )
8753                            .map(RewardClaimCalls::currentAdmin)
8754                    }
8755                    currentAdmin
8756                },
8757                {
8758                    fn claimedRewards(
8759                        data: &[u8],
8760                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8761                        <claimedRewardsCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8762                                data,
8763                            )
8764                            .map(RewardClaimCalls::claimedRewards)
8765                    }
8766                    claimedRewards
8767                },
8768                {
8769                    fn MAX_DAILY_LIMIT_BASIS_POINTS(
8770                        data: &[u8],
8771                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8772                        <MAX_DAILY_LIMIT_BASIS_POINTSCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8773                                data,
8774                            )
8775                            .map(RewardClaimCalls::MAX_DAILY_LIMIT_BASIS_POINTS)
8776                    }
8777                    MAX_DAILY_LIMIT_BASIS_POINTS
8778                },
8779                {
8780                    fn revokeRole(
8781                        data: &[u8],
8782                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8783                        <revokeRoleCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8784                                data,
8785                            )
8786                            .map(RewardClaimCalls::revokeRole)
8787                    }
8788                    revokeRole
8789                },
8790                {
8791                    fn totalClaimed(
8792                        data: &[u8],
8793                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8794                        <totalClaimedCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8795                                data,
8796                            )
8797                            .map(RewardClaimCalls::totalClaimed)
8798                    }
8799                    totalClaimed
8800                },
8801                {
8802                    fn BPS_DENOMINATOR(
8803                        data: &[u8],
8804                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8805                        <BPS_DENOMINATORCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8806                                data,
8807                            )
8808                            .map(RewardClaimCalls::BPS_DENOMINATOR)
8809                    }
8810                    BPS_DENOMINATOR
8811                },
8812                {
8813                    fn PAUSER_ROLE(
8814                        data: &[u8],
8815                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8816                        <PAUSER_ROLECall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8817                                data,
8818                            )
8819                            .map(RewardClaimCalls::PAUSER_ROLE)
8820                    }
8821                    PAUSER_ROLE
8822                },
8823                {
8824                    fn espToken(
8825                        data: &[u8],
8826                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8827                        <espTokenCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8828                                data,
8829                            )
8830                            .map(RewardClaimCalls::espToken)
8831                    }
8832                    espToken
8833                },
8834                {
8835                    fn initialize(
8836                        data: &[u8],
8837                    ) -> alloy_sol_types::Result<RewardClaimCalls> {
8838                        <initializeCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
8839                                data,
8840                            )
8841                            .map(RewardClaimCalls::initialize)
8842                    }
8843                    initialize
8844                },
8845            ];
8846            let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
8847                return Err(
8848                    alloy_sol_types::Error::unknown_selector(
8849                        <Self as alloy_sol_types::SolInterface>::NAME,
8850                        selector,
8851                    ),
8852                );
8853            };
8854            DECODE_VALIDATE_SHIMS[idx](data)
8855        }
8856        #[inline]
8857        fn abi_encoded_size(&self) -> usize {
8858            match self {
8859                Self::BPS_DENOMINATOR(inner) => {
8860                    <BPS_DENOMINATORCall as alloy_sol_types::SolCall>::abi_encoded_size(
8861                        inner,
8862                    )
8863                }
8864                Self::DEFAULT_ADMIN_ROLE(inner) => {
8865                    <DEFAULT_ADMIN_ROLECall as alloy_sol_types::SolCall>::abi_encoded_size(
8866                        inner,
8867                    )
8868                }
8869                Self::MAX_DAILY_LIMIT_BASIS_POINTS(inner) => {
8870                    <MAX_DAILY_LIMIT_BASIS_POINTSCall as alloy_sol_types::SolCall>::abi_encoded_size(
8871                        inner,
8872                    )
8873                }
8874                Self::PAUSER_ROLE(inner) => {
8875                    <PAUSER_ROLECall as alloy_sol_types::SolCall>::abi_encoded_size(
8876                        inner,
8877                    )
8878                }
8879                Self::UPGRADE_INTERFACE_VERSION(inner) => {
8880                    <UPGRADE_INTERFACE_VERSIONCall as alloy_sol_types::SolCall>::abi_encoded_size(
8881                        inner,
8882                    )
8883                }
8884                Self::claimRewards(inner) => {
8885                    <claimRewardsCall as alloy_sol_types::SolCall>::abi_encoded_size(
8886                        inner,
8887                    )
8888                }
8889                Self::claimedRewards(inner) => {
8890                    <claimedRewardsCall as alloy_sol_types::SolCall>::abi_encoded_size(
8891                        inner,
8892                    )
8893                }
8894                Self::currentAdmin(inner) => {
8895                    <currentAdminCall as alloy_sol_types::SolCall>::abi_encoded_size(
8896                        inner,
8897                    )
8898                }
8899                Self::dailyLimitWei(inner) => {
8900                    <dailyLimitWeiCall as alloy_sol_types::SolCall>::abi_encoded_size(
8901                        inner,
8902                    )
8903                }
8904                Self::espToken(inner) => {
8905                    <espTokenCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8906                }
8907                Self::getRoleAdmin(inner) => {
8908                    <getRoleAdminCall as alloy_sol_types::SolCall>::abi_encoded_size(
8909                        inner,
8910                    )
8911                }
8912                Self::getVersion(inner) => {
8913                    <getVersionCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8914                }
8915                Self::grantRole(inner) => {
8916                    <grantRoleCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8917                }
8918                Self::hasRole(inner) => {
8919                    <hasRoleCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8920                }
8921                Self::initialize(inner) => {
8922                    <initializeCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8923                }
8924                Self::lastSetDailyLimitBasisPoints(inner) => {
8925                    <lastSetDailyLimitBasisPointsCall as alloy_sol_types::SolCall>::abi_encoded_size(
8926                        inner,
8927                    )
8928                }
8929                Self::lightClient(inner) => {
8930                    <lightClientCall as alloy_sol_types::SolCall>::abi_encoded_size(
8931                        inner,
8932                    )
8933                }
8934                Self::pause(inner) => {
8935                    <pauseCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8936                }
8937                Self::paused(inner) => {
8938                    <pausedCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8939                }
8940                Self::proxiableUUID(inner) => {
8941                    <proxiableUUIDCall as alloy_sol_types::SolCall>::abi_encoded_size(
8942                        inner,
8943                    )
8944                }
8945                Self::renounceRole(inner) => {
8946                    <renounceRoleCall as alloy_sol_types::SolCall>::abi_encoded_size(
8947                        inner,
8948                    )
8949                }
8950                Self::revokeRole(inner) => {
8951                    <revokeRoleCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8952                }
8953                Self::setDailyLimit(inner) => {
8954                    <setDailyLimitCall as alloy_sol_types::SolCall>::abi_encoded_size(
8955                        inner,
8956                    )
8957                }
8958                Self::supportsInterface(inner) => {
8959                    <supportsInterfaceCall as alloy_sol_types::SolCall>::abi_encoded_size(
8960                        inner,
8961                    )
8962                }
8963                Self::totalClaimed(inner) => {
8964                    <totalClaimedCall as alloy_sol_types::SolCall>::abi_encoded_size(
8965                        inner,
8966                    )
8967                }
8968                Self::unpause(inner) => {
8969                    <unpauseCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8970                }
8971                Self::upgradeToAndCall(inner) => {
8972                    <upgradeToAndCallCall as alloy_sol_types::SolCall>::abi_encoded_size(
8973                        inner,
8974                    )
8975                }
8976            }
8977        }
8978        #[inline]
8979        fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
8980            match self {
8981                Self::BPS_DENOMINATOR(inner) => {
8982                    <BPS_DENOMINATORCall as alloy_sol_types::SolCall>::abi_encode_raw(
8983                        inner,
8984                        out,
8985                    )
8986                }
8987                Self::DEFAULT_ADMIN_ROLE(inner) => {
8988                    <DEFAULT_ADMIN_ROLECall as alloy_sol_types::SolCall>::abi_encode_raw(
8989                        inner,
8990                        out,
8991                    )
8992                }
8993                Self::MAX_DAILY_LIMIT_BASIS_POINTS(inner) => {
8994                    <MAX_DAILY_LIMIT_BASIS_POINTSCall as alloy_sol_types::SolCall>::abi_encode_raw(
8995                        inner,
8996                        out,
8997                    )
8998                }
8999                Self::PAUSER_ROLE(inner) => {
9000                    <PAUSER_ROLECall as alloy_sol_types::SolCall>::abi_encode_raw(
9001                        inner,
9002                        out,
9003                    )
9004                }
9005                Self::UPGRADE_INTERFACE_VERSION(inner) => {
9006                    <UPGRADE_INTERFACE_VERSIONCall as alloy_sol_types::SolCall>::abi_encode_raw(
9007                        inner,
9008                        out,
9009                    )
9010                }
9011                Self::claimRewards(inner) => {
9012                    <claimRewardsCall as alloy_sol_types::SolCall>::abi_encode_raw(
9013                        inner,
9014                        out,
9015                    )
9016                }
9017                Self::claimedRewards(inner) => {
9018                    <claimedRewardsCall as alloy_sol_types::SolCall>::abi_encode_raw(
9019                        inner,
9020                        out,
9021                    )
9022                }
9023                Self::currentAdmin(inner) => {
9024                    <currentAdminCall as alloy_sol_types::SolCall>::abi_encode_raw(
9025                        inner,
9026                        out,
9027                    )
9028                }
9029                Self::dailyLimitWei(inner) => {
9030                    <dailyLimitWeiCall as alloy_sol_types::SolCall>::abi_encode_raw(
9031                        inner,
9032                        out,
9033                    )
9034                }
9035                Self::espToken(inner) => {
9036                    <espTokenCall as alloy_sol_types::SolCall>::abi_encode_raw(
9037                        inner,
9038                        out,
9039                    )
9040                }
9041                Self::getRoleAdmin(inner) => {
9042                    <getRoleAdminCall as alloy_sol_types::SolCall>::abi_encode_raw(
9043                        inner,
9044                        out,
9045                    )
9046                }
9047                Self::getVersion(inner) => {
9048                    <getVersionCall as alloy_sol_types::SolCall>::abi_encode_raw(
9049                        inner,
9050                        out,
9051                    )
9052                }
9053                Self::grantRole(inner) => {
9054                    <grantRoleCall as alloy_sol_types::SolCall>::abi_encode_raw(
9055                        inner,
9056                        out,
9057                    )
9058                }
9059                Self::hasRole(inner) => {
9060                    <hasRoleCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
9061                }
9062                Self::initialize(inner) => {
9063                    <initializeCall as alloy_sol_types::SolCall>::abi_encode_raw(
9064                        inner,
9065                        out,
9066                    )
9067                }
9068                Self::lastSetDailyLimitBasisPoints(inner) => {
9069                    <lastSetDailyLimitBasisPointsCall as alloy_sol_types::SolCall>::abi_encode_raw(
9070                        inner,
9071                        out,
9072                    )
9073                }
9074                Self::lightClient(inner) => {
9075                    <lightClientCall as alloy_sol_types::SolCall>::abi_encode_raw(
9076                        inner,
9077                        out,
9078                    )
9079                }
9080                Self::pause(inner) => {
9081                    <pauseCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
9082                }
9083                Self::paused(inner) => {
9084                    <pausedCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
9085                }
9086                Self::proxiableUUID(inner) => {
9087                    <proxiableUUIDCall as alloy_sol_types::SolCall>::abi_encode_raw(
9088                        inner,
9089                        out,
9090                    )
9091                }
9092                Self::renounceRole(inner) => {
9093                    <renounceRoleCall as alloy_sol_types::SolCall>::abi_encode_raw(
9094                        inner,
9095                        out,
9096                    )
9097                }
9098                Self::revokeRole(inner) => {
9099                    <revokeRoleCall as alloy_sol_types::SolCall>::abi_encode_raw(
9100                        inner,
9101                        out,
9102                    )
9103                }
9104                Self::setDailyLimit(inner) => {
9105                    <setDailyLimitCall as alloy_sol_types::SolCall>::abi_encode_raw(
9106                        inner,
9107                        out,
9108                    )
9109                }
9110                Self::supportsInterface(inner) => {
9111                    <supportsInterfaceCall as alloy_sol_types::SolCall>::abi_encode_raw(
9112                        inner,
9113                        out,
9114                    )
9115                }
9116                Self::totalClaimed(inner) => {
9117                    <totalClaimedCall as alloy_sol_types::SolCall>::abi_encode_raw(
9118                        inner,
9119                        out,
9120                    )
9121                }
9122                Self::unpause(inner) => {
9123                    <unpauseCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
9124                }
9125                Self::upgradeToAndCall(inner) => {
9126                    <upgradeToAndCallCall as alloy_sol_types::SolCall>::abi_encode_raw(
9127                        inner,
9128                        out,
9129                    )
9130                }
9131            }
9132        }
9133    }
9134    ///Container for all the [`RewardClaim`](self) custom errors.
9135    #[derive(serde::Serialize, serde::Deserialize)]
9136    #[derive(Debug, PartialEq, Eq, Hash)]
9137    pub enum RewardClaimErrors {
9138        #[allow(missing_docs)]
9139        AccessControlBadConfirmation(AccessControlBadConfirmation),
9140        #[allow(missing_docs)]
9141        AccessControlUnauthorizedAccount(AccessControlUnauthorizedAccount),
9142        #[allow(missing_docs)]
9143        AddressEmptyCode(AddressEmptyCode),
9144        #[allow(missing_docs)]
9145        AlreadyClaimed(AlreadyClaimed),
9146        #[allow(missing_docs)]
9147        DailyLimitExceeded(DailyLimitExceeded),
9148        #[allow(missing_docs)]
9149        DailyLimitTooHigh(DailyLimitTooHigh),
9150        #[allow(missing_docs)]
9151        DefaultAdminCannotBeRenounced(DefaultAdminCannotBeRenounced),
9152        #[allow(missing_docs)]
9153        DefaultAdminCannotBeRevoked(DefaultAdminCannotBeRevoked),
9154        #[allow(missing_docs)]
9155        ERC1967InvalidImplementation(ERC1967InvalidImplementation),
9156        #[allow(missing_docs)]
9157        ERC1967NonPayable(ERC1967NonPayable),
9158        #[allow(missing_docs)]
9159        EnforcedPause(EnforcedPause),
9160        #[allow(missing_docs)]
9161        ExpectedPause(ExpectedPause),
9162        #[allow(missing_docs)]
9163        FailedInnerCall(FailedInnerCall),
9164        #[allow(missing_docs)]
9165        InvalidAuthRoot(InvalidAuthRoot),
9166        #[allow(missing_docs)]
9167        InvalidInitialization(InvalidInitialization),
9168        #[allow(missing_docs)]
9169        InvalidRewardAmount(InvalidRewardAmount),
9170        #[allow(missing_docs)]
9171        NoChangeRequired(NoChangeRequired),
9172        #[allow(missing_docs)]
9173        NotInitializing(NotInitializing),
9174        #[allow(missing_docs)]
9175        ReentrancyGuardReentrantCall(ReentrancyGuardReentrantCall),
9176        #[allow(missing_docs)]
9177        UUPSUnauthorizedCallContext(UUPSUnauthorizedCallContext),
9178        #[allow(missing_docs)]
9179        UUPSUnsupportedProxiableUUID(UUPSUnsupportedProxiableUUID),
9180        #[allow(missing_docs)]
9181        ZeroAdminAddress(ZeroAdminAddress),
9182        #[allow(missing_docs)]
9183        ZeroDailyLimit(ZeroDailyLimit),
9184        #[allow(missing_docs)]
9185        ZeroLightClientAddress(ZeroLightClientAddress),
9186        #[allow(missing_docs)]
9187        ZeroPauserAddress(ZeroPauserAddress),
9188        #[allow(missing_docs)]
9189        ZeroTokenAddress(ZeroTokenAddress),
9190        #[allow(missing_docs)]
9191        ZeroTotalSupply(ZeroTotalSupply),
9192    }
9193    #[automatically_derived]
9194    impl RewardClaimErrors {
9195        /// All the selectors of this enum.
9196        ///
9197        /// Note that the selectors might not be in the same order as the variants.
9198        /// No guarantees are made about the order of the selectors.
9199        ///
9200        /// Prefer using `SolInterface` methods instead.
9201        pub const SELECTORS: &'static [[u8; 4usize]] = &[
9202            [20u8, 37u8, 234u8, 66u8],
9203            [25u8, 75u8, 211u8, 20u8],
9204            [50u8, 139u8, 136u8, 120u8],
9205            [56u8, 83u8, 152u8, 101u8],
9206            [62u8, 229u8, 174u8, 181u8],
9207            [62u8, 243u8, 155u8, 129u8],
9208            [72u8, 181u8, 0u8, 35u8],
9209            [76u8, 156u8, 140u8, 227u8],
9210            [100u8, 108u8, 245u8, 88u8],
9211            [102u8, 151u8, 178u8, 50u8],
9212            [107u8, 9u8, 58u8, 173u8],
9213            [139u8, 120u8, 99u8, 29u8],
9214            [141u8, 252u8, 32u8, 43u8],
9215            [153u8, 150u8, 179u8, 21u8],
9216            [155u8, 17u8, 168u8, 189u8],
9217            [167u8, 73u8, 149u8, 171u8],
9218            [168u8, 99u8, 174u8, 201u8],
9219            [170u8, 29u8, 73u8, 164u8],
9220            [176u8, 181u8, 251u8, 153u8],
9221            [179u8, 152u8, 151u8, 159u8],
9222            [197u8, 210u8, 174u8, 83u8],
9223            [215u8, 230u8, 188u8, 248u8],
9224            [217u8, 60u8, 6u8, 101u8],
9225            [224u8, 124u8, 141u8, 186u8],
9226            [226u8, 81u8, 125u8, 63u8],
9227            [249u8, 46u8, 232u8, 169u8],
9228            [252u8, 171u8, 221u8, 189u8],
9229        ];
9230    }
9231    #[automatically_derived]
9232    impl alloy_sol_types::SolInterface for RewardClaimErrors {
9233        const NAME: &'static str = "RewardClaimErrors";
9234        const MIN_DATA_LENGTH: usize = 0usize;
9235        const COUNT: usize = 27usize;
9236        #[inline]
9237        fn selector(&self) -> [u8; 4] {
9238            match self {
9239                Self::AccessControlBadConfirmation(_) => {
9240                    <AccessControlBadConfirmation as alloy_sol_types::SolError>::SELECTOR
9241                }
9242                Self::AccessControlUnauthorizedAccount(_) => {
9243                    <AccessControlUnauthorizedAccount as alloy_sol_types::SolError>::SELECTOR
9244                }
9245                Self::AddressEmptyCode(_) => {
9246                    <AddressEmptyCode as alloy_sol_types::SolError>::SELECTOR
9247                }
9248                Self::AlreadyClaimed(_) => {
9249                    <AlreadyClaimed as alloy_sol_types::SolError>::SELECTOR
9250                }
9251                Self::DailyLimitExceeded(_) => {
9252                    <DailyLimitExceeded as alloy_sol_types::SolError>::SELECTOR
9253                }
9254                Self::DailyLimitTooHigh(_) => {
9255                    <DailyLimitTooHigh as alloy_sol_types::SolError>::SELECTOR
9256                }
9257                Self::DefaultAdminCannotBeRenounced(_) => {
9258                    <DefaultAdminCannotBeRenounced as alloy_sol_types::SolError>::SELECTOR
9259                }
9260                Self::DefaultAdminCannotBeRevoked(_) => {
9261                    <DefaultAdminCannotBeRevoked as alloy_sol_types::SolError>::SELECTOR
9262                }
9263                Self::ERC1967InvalidImplementation(_) => {
9264                    <ERC1967InvalidImplementation as alloy_sol_types::SolError>::SELECTOR
9265                }
9266                Self::ERC1967NonPayable(_) => {
9267                    <ERC1967NonPayable as alloy_sol_types::SolError>::SELECTOR
9268                }
9269                Self::EnforcedPause(_) => {
9270                    <EnforcedPause as alloy_sol_types::SolError>::SELECTOR
9271                }
9272                Self::ExpectedPause(_) => {
9273                    <ExpectedPause as alloy_sol_types::SolError>::SELECTOR
9274                }
9275                Self::FailedInnerCall(_) => {
9276                    <FailedInnerCall as alloy_sol_types::SolError>::SELECTOR
9277                }
9278                Self::InvalidAuthRoot(_) => {
9279                    <InvalidAuthRoot as alloy_sol_types::SolError>::SELECTOR
9280                }
9281                Self::InvalidInitialization(_) => {
9282                    <InvalidInitialization as alloy_sol_types::SolError>::SELECTOR
9283                }
9284                Self::InvalidRewardAmount(_) => {
9285                    <InvalidRewardAmount as alloy_sol_types::SolError>::SELECTOR
9286                }
9287                Self::NoChangeRequired(_) => {
9288                    <NoChangeRequired as alloy_sol_types::SolError>::SELECTOR
9289                }
9290                Self::NotInitializing(_) => {
9291                    <NotInitializing as alloy_sol_types::SolError>::SELECTOR
9292                }
9293                Self::ReentrancyGuardReentrantCall(_) => {
9294                    <ReentrancyGuardReentrantCall as alloy_sol_types::SolError>::SELECTOR
9295                }
9296                Self::UUPSUnauthorizedCallContext(_) => {
9297                    <UUPSUnauthorizedCallContext as alloy_sol_types::SolError>::SELECTOR
9298                }
9299                Self::UUPSUnsupportedProxiableUUID(_) => {
9300                    <UUPSUnsupportedProxiableUUID as alloy_sol_types::SolError>::SELECTOR
9301                }
9302                Self::ZeroAdminAddress(_) => {
9303                    <ZeroAdminAddress as alloy_sol_types::SolError>::SELECTOR
9304                }
9305                Self::ZeroDailyLimit(_) => {
9306                    <ZeroDailyLimit as alloy_sol_types::SolError>::SELECTOR
9307                }
9308                Self::ZeroLightClientAddress(_) => {
9309                    <ZeroLightClientAddress as alloy_sol_types::SolError>::SELECTOR
9310                }
9311                Self::ZeroPauserAddress(_) => {
9312                    <ZeroPauserAddress as alloy_sol_types::SolError>::SELECTOR
9313                }
9314                Self::ZeroTokenAddress(_) => {
9315                    <ZeroTokenAddress as alloy_sol_types::SolError>::SELECTOR
9316                }
9317                Self::ZeroTotalSupply(_) => {
9318                    <ZeroTotalSupply as alloy_sol_types::SolError>::SELECTOR
9319                }
9320            }
9321        }
9322        #[inline]
9323        fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
9324            Self::SELECTORS.get(i).copied()
9325        }
9326        #[inline]
9327        fn valid_selector(selector: [u8; 4]) -> bool {
9328            Self::SELECTORS.binary_search(&selector).is_ok()
9329        }
9330        #[inline]
9331        #[allow(non_snake_case)]
9332        fn abi_decode_raw(
9333            selector: [u8; 4],
9334            data: &[u8],
9335        ) -> alloy_sol_types::Result<Self> {
9336            static DECODE_SHIMS: &[fn(
9337                &[u8],
9338            ) -> alloy_sol_types::Result<RewardClaimErrors>] = &[
9339                {
9340                    fn FailedInnerCall(
9341                        data: &[u8],
9342                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9343                        <FailedInnerCall as alloy_sol_types::SolError>::abi_decode_raw(
9344                                data,
9345                            )
9346                            .map(RewardClaimErrors::FailedInnerCall)
9347                    }
9348                    FailedInnerCall
9349                },
9350                {
9351                    fn DailyLimitExceeded(
9352                        data: &[u8],
9353                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9354                        <DailyLimitExceeded as alloy_sol_types::SolError>::abi_decode_raw(
9355                                data,
9356                            )
9357                            .map(RewardClaimErrors::DailyLimitExceeded)
9358                    }
9359                    DailyLimitExceeded
9360                },
9361                {
9362                    fn InvalidAuthRoot(
9363                        data: &[u8],
9364                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9365                        <InvalidAuthRoot as alloy_sol_types::SolError>::abi_decode_raw(
9366                                data,
9367                            )
9368                            .map(RewardClaimErrors::InvalidAuthRoot)
9369                    }
9370                    InvalidAuthRoot
9371                },
9372                {
9373                    fn InvalidRewardAmount(
9374                        data: &[u8],
9375                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9376                        <InvalidRewardAmount as alloy_sol_types::SolError>::abi_decode_raw(
9377                                data,
9378                            )
9379                            .map(RewardClaimErrors::InvalidRewardAmount)
9380                    }
9381                    InvalidRewardAmount
9382                },
9383                {
9384                    fn ReentrancyGuardReentrantCall(
9385                        data: &[u8],
9386                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9387                        <ReentrancyGuardReentrantCall as alloy_sol_types::SolError>::abi_decode_raw(
9388                                data,
9389                            )
9390                            .map(RewardClaimErrors::ReentrancyGuardReentrantCall)
9391                    }
9392                    ReentrancyGuardReentrantCall
9393                },
9394                {
9395                    fn ZeroAdminAddress(
9396                        data: &[u8],
9397                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9398                        <ZeroAdminAddress as alloy_sol_types::SolError>::abi_decode_raw(
9399                                data,
9400                            )
9401                            .map(RewardClaimErrors::ZeroAdminAddress)
9402                    }
9403                    ZeroAdminAddress
9404                },
9405                {
9406                    fn ZeroTotalSupply(
9407                        data: &[u8],
9408                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9409                        <ZeroTotalSupply as alloy_sol_types::SolError>::abi_decode_raw(
9410                                data,
9411                            )
9412                            .map(RewardClaimErrors::ZeroTotalSupply)
9413                    }
9414                    ZeroTotalSupply
9415                },
9416                {
9417                    fn ERC1967InvalidImplementation(
9418                        data: &[u8],
9419                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9420                        <ERC1967InvalidImplementation as alloy_sol_types::SolError>::abi_decode_raw(
9421                                data,
9422                            )
9423                            .map(RewardClaimErrors::ERC1967InvalidImplementation)
9424                    }
9425                    ERC1967InvalidImplementation
9426                },
9427                {
9428                    fn AlreadyClaimed(
9429                        data: &[u8],
9430                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9431                        <AlreadyClaimed as alloy_sol_types::SolError>::abi_decode_raw(
9432                                data,
9433                            )
9434                            .map(RewardClaimErrors::AlreadyClaimed)
9435                    }
9436                    AlreadyClaimed
9437                },
9438                {
9439                    fn AccessControlBadConfirmation(
9440                        data: &[u8],
9441                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9442                        <AccessControlBadConfirmation as alloy_sol_types::SolError>::abi_decode_raw(
9443                                data,
9444                            )
9445                            .map(RewardClaimErrors::AccessControlBadConfirmation)
9446                    }
9447                    AccessControlBadConfirmation
9448                },
9449                {
9450                    fn ZeroTokenAddress(
9451                        data: &[u8],
9452                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9453                        <ZeroTokenAddress as alloy_sol_types::SolError>::abi_decode_raw(
9454                                data,
9455                            )
9456                            .map(RewardClaimErrors::ZeroTokenAddress)
9457                    }
9458                    ZeroTokenAddress
9459                },
9460                {
9461                    fn DefaultAdminCannotBeRenounced(
9462                        data: &[u8],
9463                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9464                        <DefaultAdminCannotBeRenounced as alloy_sol_types::SolError>::abi_decode_raw(
9465                                data,
9466                            )
9467                            .map(RewardClaimErrors::DefaultAdminCannotBeRenounced)
9468                    }
9469                    DefaultAdminCannotBeRenounced
9470                },
9471                {
9472                    fn ExpectedPause(
9473                        data: &[u8],
9474                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9475                        <ExpectedPause as alloy_sol_types::SolError>::abi_decode_raw(
9476                                data,
9477                            )
9478                            .map(RewardClaimErrors::ExpectedPause)
9479                    }
9480                    ExpectedPause
9481                },
9482                {
9483                    fn AddressEmptyCode(
9484                        data: &[u8],
9485                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9486                        <AddressEmptyCode as alloy_sol_types::SolError>::abi_decode_raw(
9487                                data,
9488                            )
9489                            .map(RewardClaimErrors::AddressEmptyCode)
9490                    }
9491                    AddressEmptyCode
9492                },
9493                {
9494                    fn ZeroDailyLimit(
9495                        data: &[u8],
9496                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9497                        <ZeroDailyLimit as alloy_sol_types::SolError>::abi_decode_raw(
9498                                data,
9499                            )
9500                            .map(RewardClaimErrors::ZeroDailyLimit)
9501                    }
9502                    ZeroDailyLimit
9503                },
9504                {
9505                    fn ZeroPauserAddress(
9506                        data: &[u8],
9507                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9508                        <ZeroPauserAddress as alloy_sol_types::SolError>::abi_decode_raw(
9509                                data,
9510                            )
9511                            .map(RewardClaimErrors::ZeroPauserAddress)
9512                    }
9513                    ZeroPauserAddress
9514                },
9515                {
9516                    fn NoChangeRequired(
9517                        data: &[u8],
9518                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9519                        <NoChangeRequired as alloy_sol_types::SolError>::abi_decode_raw(
9520                                data,
9521                            )
9522                            .map(RewardClaimErrors::NoChangeRequired)
9523                    }
9524                    NoChangeRequired
9525                },
9526                {
9527                    fn UUPSUnsupportedProxiableUUID(
9528                        data: &[u8],
9529                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9530                        <UUPSUnsupportedProxiableUUID as alloy_sol_types::SolError>::abi_decode_raw(
9531                                data,
9532                            )
9533                            .map(RewardClaimErrors::UUPSUnsupportedProxiableUUID)
9534                    }
9535                    UUPSUnsupportedProxiableUUID
9536                },
9537                {
9538                    fn DefaultAdminCannotBeRevoked(
9539                        data: &[u8],
9540                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9541                        <DefaultAdminCannotBeRevoked as alloy_sol_types::SolError>::abi_decode_raw(
9542                                data,
9543                            )
9544                            .map(RewardClaimErrors::DefaultAdminCannotBeRevoked)
9545                    }
9546                    DefaultAdminCannotBeRevoked
9547                },
9548                {
9549                    fn ERC1967NonPayable(
9550                        data: &[u8],
9551                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9552                        <ERC1967NonPayable as alloy_sol_types::SolError>::abi_decode_raw(
9553                                data,
9554                            )
9555                            .map(RewardClaimErrors::ERC1967NonPayable)
9556                    }
9557                    ERC1967NonPayable
9558                },
9559                {
9560                    fn DailyLimitTooHigh(
9561                        data: &[u8],
9562                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9563                        <DailyLimitTooHigh as alloy_sol_types::SolError>::abi_decode_raw(
9564                                data,
9565                            )
9566                            .map(RewardClaimErrors::DailyLimitTooHigh)
9567                    }
9568                    DailyLimitTooHigh
9569                },
9570                {
9571                    fn NotInitializing(
9572                        data: &[u8],
9573                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9574                        <NotInitializing as alloy_sol_types::SolError>::abi_decode_raw(
9575                                data,
9576                            )
9577                            .map(RewardClaimErrors::NotInitializing)
9578                    }
9579                    NotInitializing
9580                },
9581                {
9582                    fn EnforcedPause(
9583                        data: &[u8],
9584                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9585                        <EnforcedPause as alloy_sol_types::SolError>::abi_decode_raw(
9586                                data,
9587                            )
9588                            .map(RewardClaimErrors::EnforcedPause)
9589                    }
9590                    EnforcedPause
9591                },
9592                {
9593                    fn UUPSUnauthorizedCallContext(
9594                        data: &[u8],
9595                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9596                        <UUPSUnauthorizedCallContext as alloy_sol_types::SolError>::abi_decode_raw(
9597                                data,
9598                            )
9599                            .map(RewardClaimErrors::UUPSUnauthorizedCallContext)
9600                    }
9601                    UUPSUnauthorizedCallContext
9602                },
9603                {
9604                    fn AccessControlUnauthorizedAccount(
9605                        data: &[u8],
9606                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9607                        <AccessControlUnauthorizedAccount as alloy_sol_types::SolError>::abi_decode_raw(
9608                                data,
9609                            )
9610                            .map(RewardClaimErrors::AccessControlUnauthorizedAccount)
9611                    }
9612                    AccessControlUnauthorizedAccount
9613                },
9614                {
9615                    fn InvalidInitialization(
9616                        data: &[u8],
9617                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9618                        <InvalidInitialization as alloy_sol_types::SolError>::abi_decode_raw(
9619                                data,
9620                            )
9621                            .map(RewardClaimErrors::InvalidInitialization)
9622                    }
9623                    InvalidInitialization
9624                },
9625                {
9626                    fn ZeroLightClientAddress(
9627                        data: &[u8],
9628                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9629                        <ZeroLightClientAddress as alloy_sol_types::SolError>::abi_decode_raw(
9630                                data,
9631                            )
9632                            .map(RewardClaimErrors::ZeroLightClientAddress)
9633                    }
9634                    ZeroLightClientAddress
9635                },
9636            ];
9637            let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
9638                return Err(
9639                    alloy_sol_types::Error::unknown_selector(
9640                        <Self as alloy_sol_types::SolInterface>::NAME,
9641                        selector,
9642                    ),
9643                );
9644            };
9645            DECODE_SHIMS[idx](data)
9646        }
9647        #[inline]
9648        #[allow(non_snake_case)]
9649        fn abi_decode_raw_validate(
9650            selector: [u8; 4],
9651            data: &[u8],
9652        ) -> alloy_sol_types::Result<Self> {
9653            static DECODE_VALIDATE_SHIMS: &[fn(
9654                &[u8],
9655            ) -> alloy_sol_types::Result<RewardClaimErrors>] = &[
9656                {
9657                    fn FailedInnerCall(
9658                        data: &[u8],
9659                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9660                        <FailedInnerCall as alloy_sol_types::SolError>::abi_decode_raw_validate(
9661                                data,
9662                            )
9663                            .map(RewardClaimErrors::FailedInnerCall)
9664                    }
9665                    FailedInnerCall
9666                },
9667                {
9668                    fn DailyLimitExceeded(
9669                        data: &[u8],
9670                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9671                        <DailyLimitExceeded as alloy_sol_types::SolError>::abi_decode_raw_validate(
9672                                data,
9673                            )
9674                            .map(RewardClaimErrors::DailyLimitExceeded)
9675                    }
9676                    DailyLimitExceeded
9677                },
9678                {
9679                    fn InvalidAuthRoot(
9680                        data: &[u8],
9681                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9682                        <InvalidAuthRoot as alloy_sol_types::SolError>::abi_decode_raw_validate(
9683                                data,
9684                            )
9685                            .map(RewardClaimErrors::InvalidAuthRoot)
9686                    }
9687                    InvalidAuthRoot
9688                },
9689                {
9690                    fn InvalidRewardAmount(
9691                        data: &[u8],
9692                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9693                        <InvalidRewardAmount as alloy_sol_types::SolError>::abi_decode_raw_validate(
9694                                data,
9695                            )
9696                            .map(RewardClaimErrors::InvalidRewardAmount)
9697                    }
9698                    InvalidRewardAmount
9699                },
9700                {
9701                    fn ReentrancyGuardReentrantCall(
9702                        data: &[u8],
9703                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9704                        <ReentrancyGuardReentrantCall as alloy_sol_types::SolError>::abi_decode_raw_validate(
9705                                data,
9706                            )
9707                            .map(RewardClaimErrors::ReentrancyGuardReentrantCall)
9708                    }
9709                    ReentrancyGuardReentrantCall
9710                },
9711                {
9712                    fn ZeroAdminAddress(
9713                        data: &[u8],
9714                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9715                        <ZeroAdminAddress as alloy_sol_types::SolError>::abi_decode_raw_validate(
9716                                data,
9717                            )
9718                            .map(RewardClaimErrors::ZeroAdminAddress)
9719                    }
9720                    ZeroAdminAddress
9721                },
9722                {
9723                    fn ZeroTotalSupply(
9724                        data: &[u8],
9725                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9726                        <ZeroTotalSupply as alloy_sol_types::SolError>::abi_decode_raw_validate(
9727                                data,
9728                            )
9729                            .map(RewardClaimErrors::ZeroTotalSupply)
9730                    }
9731                    ZeroTotalSupply
9732                },
9733                {
9734                    fn ERC1967InvalidImplementation(
9735                        data: &[u8],
9736                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9737                        <ERC1967InvalidImplementation as alloy_sol_types::SolError>::abi_decode_raw_validate(
9738                                data,
9739                            )
9740                            .map(RewardClaimErrors::ERC1967InvalidImplementation)
9741                    }
9742                    ERC1967InvalidImplementation
9743                },
9744                {
9745                    fn AlreadyClaimed(
9746                        data: &[u8],
9747                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9748                        <AlreadyClaimed as alloy_sol_types::SolError>::abi_decode_raw_validate(
9749                                data,
9750                            )
9751                            .map(RewardClaimErrors::AlreadyClaimed)
9752                    }
9753                    AlreadyClaimed
9754                },
9755                {
9756                    fn AccessControlBadConfirmation(
9757                        data: &[u8],
9758                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9759                        <AccessControlBadConfirmation as alloy_sol_types::SolError>::abi_decode_raw_validate(
9760                                data,
9761                            )
9762                            .map(RewardClaimErrors::AccessControlBadConfirmation)
9763                    }
9764                    AccessControlBadConfirmation
9765                },
9766                {
9767                    fn ZeroTokenAddress(
9768                        data: &[u8],
9769                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9770                        <ZeroTokenAddress as alloy_sol_types::SolError>::abi_decode_raw_validate(
9771                                data,
9772                            )
9773                            .map(RewardClaimErrors::ZeroTokenAddress)
9774                    }
9775                    ZeroTokenAddress
9776                },
9777                {
9778                    fn DefaultAdminCannotBeRenounced(
9779                        data: &[u8],
9780                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9781                        <DefaultAdminCannotBeRenounced as alloy_sol_types::SolError>::abi_decode_raw_validate(
9782                                data,
9783                            )
9784                            .map(RewardClaimErrors::DefaultAdminCannotBeRenounced)
9785                    }
9786                    DefaultAdminCannotBeRenounced
9787                },
9788                {
9789                    fn ExpectedPause(
9790                        data: &[u8],
9791                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9792                        <ExpectedPause as alloy_sol_types::SolError>::abi_decode_raw_validate(
9793                                data,
9794                            )
9795                            .map(RewardClaimErrors::ExpectedPause)
9796                    }
9797                    ExpectedPause
9798                },
9799                {
9800                    fn AddressEmptyCode(
9801                        data: &[u8],
9802                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9803                        <AddressEmptyCode as alloy_sol_types::SolError>::abi_decode_raw_validate(
9804                                data,
9805                            )
9806                            .map(RewardClaimErrors::AddressEmptyCode)
9807                    }
9808                    AddressEmptyCode
9809                },
9810                {
9811                    fn ZeroDailyLimit(
9812                        data: &[u8],
9813                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9814                        <ZeroDailyLimit as alloy_sol_types::SolError>::abi_decode_raw_validate(
9815                                data,
9816                            )
9817                            .map(RewardClaimErrors::ZeroDailyLimit)
9818                    }
9819                    ZeroDailyLimit
9820                },
9821                {
9822                    fn ZeroPauserAddress(
9823                        data: &[u8],
9824                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9825                        <ZeroPauserAddress as alloy_sol_types::SolError>::abi_decode_raw_validate(
9826                                data,
9827                            )
9828                            .map(RewardClaimErrors::ZeroPauserAddress)
9829                    }
9830                    ZeroPauserAddress
9831                },
9832                {
9833                    fn NoChangeRequired(
9834                        data: &[u8],
9835                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9836                        <NoChangeRequired as alloy_sol_types::SolError>::abi_decode_raw_validate(
9837                                data,
9838                            )
9839                            .map(RewardClaimErrors::NoChangeRequired)
9840                    }
9841                    NoChangeRequired
9842                },
9843                {
9844                    fn UUPSUnsupportedProxiableUUID(
9845                        data: &[u8],
9846                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9847                        <UUPSUnsupportedProxiableUUID as alloy_sol_types::SolError>::abi_decode_raw_validate(
9848                                data,
9849                            )
9850                            .map(RewardClaimErrors::UUPSUnsupportedProxiableUUID)
9851                    }
9852                    UUPSUnsupportedProxiableUUID
9853                },
9854                {
9855                    fn DefaultAdminCannotBeRevoked(
9856                        data: &[u8],
9857                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9858                        <DefaultAdminCannotBeRevoked as alloy_sol_types::SolError>::abi_decode_raw_validate(
9859                                data,
9860                            )
9861                            .map(RewardClaimErrors::DefaultAdminCannotBeRevoked)
9862                    }
9863                    DefaultAdminCannotBeRevoked
9864                },
9865                {
9866                    fn ERC1967NonPayable(
9867                        data: &[u8],
9868                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9869                        <ERC1967NonPayable as alloy_sol_types::SolError>::abi_decode_raw_validate(
9870                                data,
9871                            )
9872                            .map(RewardClaimErrors::ERC1967NonPayable)
9873                    }
9874                    ERC1967NonPayable
9875                },
9876                {
9877                    fn DailyLimitTooHigh(
9878                        data: &[u8],
9879                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9880                        <DailyLimitTooHigh as alloy_sol_types::SolError>::abi_decode_raw_validate(
9881                                data,
9882                            )
9883                            .map(RewardClaimErrors::DailyLimitTooHigh)
9884                    }
9885                    DailyLimitTooHigh
9886                },
9887                {
9888                    fn NotInitializing(
9889                        data: &[u8],
9890                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9891                        <NotInitializing as alloy_sol_types::SolError>::abi_decode_raw_validate(
9892                                data,
9893                            )
9894                            .map(RewardClaimErrors::NotInitializing)
9895                    }
9896                    NotInitializing
9897                },
9898                {
9899                    fn EnforcedPause(
9900                        data: &[u8],
9901                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9902                        <EnforcedPause as alloy_sol_types::SolError>::abi_decode_raw_validate(
9903                                data,
9904                            )
9905                            .map(RewardClaimErrors::EnforcedPause)
9906                    }
9907                    EnforcedPause
9908                },
9909                {
9910                    fn UUPSUnauthorizedCallContext(
9911                        data: &[u8],
9912                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9913                        <UUPSUnauthorizedCallContext as alloy_sol_types::SolError>::abi_decode_raw_validate(
9914                                data,
9915                            )
9916                            .map(RewardClaimErrors::UUPSUnauthorizedCallContext)
9917                    }
9918                    UUPSUnauthorizedCallContext
9919                },
9920                {
9921                    fn AccessControlUnauthorizedAccount(
9922                        data: &[u8],
9923                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9924                        <AccessControlUnauthorizedAccount as alloy_sol_types::SolError>::abi_decode_raw_validate(
9925                                data,
9926                            )
9927                            .map(RewardClaimErrors::AccessControlUnauthorizedAccount)
9928                    }
9929                    AccessControlUnauthorizedAccount
9930                },
9931                {
9932                    fn InvalidInitialization(
9933                        data: &[u8],
9934                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9935                        <InvalidInitialization as alloy_sol_types::SolError>::abi_decode_raw_validate(
9936                                data,
9937                            )
9938                            .map(RewardClaimErrors::InvalidInitialization)
9939                    }
9940                    InvalidInitialization
9941                },
9942                {
9943                    fn ZeroLightClientAddress(
9944                        data: &[u8],
9945                    ) -> alloy_sol_types::Result<RewardClaimErrors> {
9946                        <ZeroLightClientAddress as alloy_sol_types::SolError>::abi_decode_raw_validate(
9947                                data,
9948                            )
9949                            .map(RewardClaimErrors::ZeroLightClientAddress)
9950                    }
9951                    ZeroLightClientAddress
9952                },
9953            ];
9954            let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
9955                return Err(
9956                    alloy_sol_types::Error::unknown_selector(
9957                        <Self as alloy_sol_types::SolInterface>::NAME,
9958                        selector,
9959                    ),
9960                );
9961            };
9962            DECODE_VALIDATE_SHIMS[idx](data)
9963        }
9964        #[inline]
9965        fn abi_encoded_size(&self) -> usize {
9966            match self {
9967                Self::AccessControlBadConfirmation(inner) => {
9968                    <AccessControlBadConfirmation as alloy_sol_types::SolError>::abi_encoded_size(
9969                        inner,
9970                    )
9971                }
9972                Self::AccessControlUnauthorizedAccount(inner) => {
9973                    <AccessControlUnauthorizedAccount as alloy_sol_types::SolError>::abi_encoded_size(
9974                        inner,
9975                    )
9976                }
9977                Self::AddressEmptyCode(inner) => {
9978                    <AddressEmptyCode as alloy_sol_types::SolError>::abi_encoded_size(
9979                        inner,
9980                    )
9981                }
9982                Self::AlreadyClaimed(inner) => {
9983                    <AlreadyClaimed as alloy_sol_types::SolError>::abi_encoded_size(
9984                        inner,
9985                    )
9986                }
9987                Self::DailyLimitExceeded(inner) => {
9988                    <DailyLimitExceeded as alloy_sol_types::SolError>::abi_encoded_size(
9989                        inner,
9990                    )
9991                }
9992                Self::DailyLimitTooHigh(inner) => {
9993                    <DailyLimitTooHigh as alloy_sol_types::SolError>::abi_encoded_size(
9994                        inner,
9995                    )
9996                }
9997                Self::DefaultAdminCannotBeRenounced(inner) => {
9998                    <DefaultAdminCannotBeRenounced as alloy_sol_types::SolError>::abi_encoded_size(
9999                        inner,
10000                    )
10001                }
10002                Self::DefaultAdminCannotBeRevoked(inner) => {
10003                    <DefaultAdminCannotBeRevoked as alloy_sol_types::SolError>::abi_encoded_size(
10004                        inner,
10005                    )
10006                }
10007                Self::ERC1967InvalidImplementation(inner) => {
10008                    <ERC1967InvalidImplementation as alloy_sol_types::SolError>::abi_encoded_size(
10009                        inner,
10010                    )
10011                }
10012                Self::ERC1967NonPayable(inner) => {
10013                    <ERC1967NonPayable as alloy_sol_types::SolError>::abi_encoded_size(
10014                        inner,
10015                    )
10016                }
10017                Self::EnforcedPause(inner) => {
10018                    <EnforcedPause as alloy_sol_types::SolError>::abi_encoded_size(inner)
10019                }
10020                Self::ExpectedPause(inner) => {
10021                    <ExpectedPause as alloy_sol_types::SolError>::abi_encoded_size(inner)
10022                }
10023                Self::FailedInnerCall(inner) => {
10024                    <FailedInnerCall as alloy_sol_types::SolError>::abi_encoded_size(
10025                        inner,
10026                    )
10027                }
10028                Self::InvalidAuthRoot(inner) => {
10029                    <InvalidAuthRoot as alloy_sol_types::SolError>::abi_encoded_size(
10030                        inner,
10031                    )
10032                }
10033                Self::InvalidInitialization(inner) => {
10034                    <InvalidInitialization as alloy_sol_types::SolError>::abi_encoded_size(
10035                        inner,
10036                    )
10037                }
10038                Self::InvalidRewardAmount(inner) => {
10039                    <InvalidRewardAmount as alloy_sol_types::SolError>::abi_encoded_size(
10040                        inner,
10041                    )
10042                }
10043                Self::NoChangeRequired(inner) => {
10044                    <NoChangeRequired as alloy_sol_types::SolError>::abi_encoded_size(
10045                        inner,
10046                    )
10047                }
10048                Self::NotInitializing(inner) => {
10049                    <NotInitializing as alloy_sol_types::SolError>::abi_encoded_size(
10050                        inner,
10051                    )
10052                }
10053                Self::ReentrancyGuardReentrantCall(inner) => {
10054                    <ReentrancyGuardReentrantCall as alloy_sol_types::SolError>::abi_encoded_size(
10055                        inner,
10056                    )
10057                }
10058                Self::UUPSUnauthorizedCallContext(inner) => {
10059                    <UUPSUnauthorizedCallContext as alloy_sol_types::SolError>::abi_encoded_size(
10060                        inner,
10061                    )
10062                }
10063                Self::UUPSUnsupportedProxiableUUID(inner) => {
10064                    <UUPSUnsupportedProxiableUUID as alloy_sol_types::SolError>::abi_encoded_size(
10065                        inner,
10066                    )
10067                }
10068                Self::ZeroAdminAddress(inner) => {
10069                    <ZeroAdminAddress as alloy_sol_types::SolError>::abi_encoded_size(
10070                        inner,
10071                    )
10072                }
10073                Self::ZeroDailyLimit(inner) => {
10074                    <ZeroDailyLimit as alloy_sol_types::SolError>::abi_encoded_size(
10075                        inner,
10076                    )
10077                }
10078                Self::ZeroLightClientAddress(inner) => {
10079                    <ZeroLightClientAddress as alloy_sol_types::SolError>::abi_encoded_size(
10080                        inner,
10081                    )
10082                }
10083                Self::ZeroPauserAddress(inner) => {
10084                    <ZeroPauserAddress as alloy_sol_types::SolError>::abi_encoded_size(
10085                        inner,
10086                    )
10087                }
10088                Self::ZeroTokenAddress(inner) => {
10089                    <ZeroTokenAddress as alloy_sol_types::SolError>::abi_encoded_size(
10090                        inner,
10091                    )
10092                }
10093                Self::ZeroTotalSupply(inner) => {
10094                    <ZeroTotalSupply as alloy_sol_types::SolError>::abi_encoded_size(
10095                        inner,
10096                    )
10097                }
10098            }
10099        }
10100        #[inline]
10101        fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
10102            match self {
10103                Self::AccessControlBadConfirmation(inner) => {
10104                    <AccessControlBadConfirmation as alloy_sol_types::SolError>::abi_encode_raw(
10105                        inner,
10106                        out,
10107                    )
10108                }
10109                Self::AccessControlUnauthorizedAccount(inner) => {
10110                    <AccessControlUnauthorizedAccount as alloy_sol_types::SolError>::abi_encode_raw(
10111                        inner,
10112                        out,
10113                    )
10114                }
10115                Self::AddressEmptyCode(inner) => {
10116                    <AddressEmptyCode as alloy_sol_types::SolError>::abi_encode_raw(
10117                        inner,
10118                        out,
10119                    )
10120                }
10121                Self::AlreadyClaimed(inner) => {
10122                    <AlreadyClaimed as alloy_sol_types::SolError>::abi_encode_raw(
10123                        inner,
10124                        out,
10125                    )
10126                }
10127                Self::DailyLimitExceeded(inner) => {
10128                    <DailyLimitExceeded as alloy_sol_types::SolError>::abi_encode_raw(
10129                        inner,
10130                        out,
10131                    )
10132                }
10133                Self::DailyLimitTooHigh(inner) => {
10134                    <DailyLimitTooHigh as alloy_sol_types::SolError>::abi_encode_raw(
10135                        inner,
10136                        out,
10137                    )
10138                }
10139                Self::DefaultAdminCannotBeRenounced(inner) => {
10140                    <DefaultAdminCannotBeRenounced as alloy_sol_types::SolError>::abi_encode_raw(
10141                        inner,
10142                        out,
10143                    )
10144                }
10145                Self::DefaultAdminCannotBeRevoked(inner) => {
10146                    <DefaultAdminCannotBeRevoked as alloy_sol_types::SolError>::abi_encode_raw(
10147                        inner,
10148                        out,
10149                    )
10150                }
10151                Self::ERC1967InvalidImplementation(inner) => {
10152                    <ERC1967InvalidImplementation as alloy_sol_types::SolError>::abi_encode_raw(
10153                        inner,
10154                        out,
10155                    )
10156                }
10157                Self::ERC1967NonPayable(inner) => {
10158                    <ERC1967NonPayable as alloy_sol_types::SolError>::abi_encode_raw(
10159                        inner,
10160                        out,
10161                    )
10162                }
10163                Self::EnforcedPause(inner) => {
10164                    <EnforcedPause as alloy_sol_types::SolError>::abi_encode_raw(
10165                        inner,
10166                        out,
10167                    )
10168                }
10169                Self::ExpectedPause(inner) => {
10170                    <ExpectedPause as alloy_sol_types::SolError>::abi_encode_raw(
10171                        inner,
10172                        out,
10173                    )
10174                }
10175                Self::FailedInnerCall(inner) => {
10176                    <FailedInnerCall as alloy_sol_types::SolError>::abi_encode_raw(
10177                        inner,
10178                        out,
10179                    )
10180                }
10181                Self::InvalidAuthRoot(inner) => {
10182                    <InvalidAuthRoot as alloy_sol_types::SolError>::abi_encode_raw(
10183                        inner,
10184                        out,
10185                    )
10186                }
10187                Self::InvalidInitialization(inner) => {
10188                    <InvalidInitialization as alloy_sol_types::SolError>::abi_encode_raw(
10189                        inner,
10190                        out,
10191                    )
10192                }
10193                Self::InvalidRewardAmount(inner) => {
10194                    <InvalidRewardAmount as alloy_sol_types::SolError>::abi_encode_raw(
10195                        inner,
10196                        out,
10197                    )
10198                }
10199                Self::NoChangeRequired(inner) => {
10200                    <NoChangeRequired as alloy_sol_types::SolError>::abi_encode_raw(
10201                        inner,
10202                        out,
10203                    )
10204                }
10205                Self::NotInitializing(inner) => {
10206                    <NotInitializing as alloy_sol_types::SolError>::abi_encode_raw(
10207                        inner,
10208                        out,
10209                    )
10210                }
10211                Self::ReentrancyGuardReentrantCall(inner) => {
10212                    <ReentrancyGuardReentrantCall as alloy_sol_types::SolError>::abi_encode_raw(
10213                        inner,
10214                        out,
10215                    )
10216                }
10217                Self::UUPSUnauthorizedCallContext(inner) => {
10218                    <UUPSUnauthorizedCallContext as alloy_sol_types::SolError>::abi_encode_raw(
10219                        inner,
10220                        out,
10221                    )
10222                }
10223                Self::UUPSUnsupportedProxiableUUID(inner) => {
10224                    <UUPSUnsupportedProxiableUUID as alloy_sol_types::SolError>::abi_encode_raw(
10225                        inner,
10226                        out,
10227                    )
10228                }
10229                Self::ZeroAdminAddress(inner) => {
10230                    <ZeroAdminAddress as alloy_sol_types::SolError>::abi_encode_raw(
10231                        inner,
10232                        out,
10233                    )
10234                }
10235                Self::ZeroDailyLimit(inner) => {
10236                    <ZeroDailyLimit as alloy_sol_types::SolError>::abi_encode_raw(
10237                        inner,
10238                        out,
10239                    )
10240                }
10241                Self::ZeroLightClientAddress(inner) => {
10242                    <ZeroLightClientAddress as alloy_sol_types::SolError>::abi_encode_raw(
10243                        inner,
10244                        out,
10245                    )
10246                }
10247                Self::ZeroPauserAddress(inner) => {
10248                    <ZeroPauserAddress as alloy_sol_types::SolError>::abi_encode_raw(
10249                        inner,
10250                        out,
10251                    )
10252                }
10253                Self::ZeroTokenAddress(inner) => {
10254                    <ZeroTokenAddress as alloy_sol_types::SolError>::abi_encode_raw(
10255                        inner,
10256                        out,
10257                    )
10258                }
10259                Self::ZeroTotalSupply(inner) => {
10260                    <ZeroTotalSupply as alloy_sol_types::SolError>::abi_encode_raw(
10261                        inner,
10262                        out,
10263                    )
10264                }
10265            }
10266        }
10267    }
10268    ///Container for all the [`RewardClaim`](self) events.
10269    #[derive(serde::Serialize, serde::Deserialize)]
10270    #[derive(Debug, PartialEq, Eq, Hash)]
10271    pub enum RewardClaimEvents {
10272        #[allow(missing_docs)]
10273        DailyLimitUpdated(DailyLimitUpdated),
10274        #[allow(missing_docs)]
10275        Initialized(Initialized),
10276        #[allow(missing_docs)]
10277        Paused(Paused),
10278        #[allow(missing_docs)]
10279        RewardsClaimed(RewardsClaimed),
10280        #[allow(missing_docs)]
10281        RoleAdminChanged(RoleAdminChanged),
10282        #[allow(missing_docs)]
10283        RoleGranted(RoleGranted),
10284        #[allow(missing_docs)]
10285        RoleRevoked(RoleRevoked),
10286        #[allow(missing_docs)]
10287        Unpaused(Unpaused),
10288        #[allow(missing_docs)]
10289        Upgraded(Upgraded),
10290    }
10291    #[automatically_derived]
10292    impl RewardClaimEvents {
10293        /// All the selectors of this enum.
10294        ///
10295        /// Note that the selectors might not be in the same order as the variants.
10296        /// No guarantees are made about the order of the selectors.
10297        ///
10298        /// Prefer using `SolInterface` methods instead.
10299        pub const SELECTORS: &'static [[u8; 32usize]] = &[
10300            [
10301                32u8, 124u8, 76u8, 189u8, 245u8, 94u8, 195u8, 21u8, 161u8, 63u8, 13u8,
10302                94u8, 4u8, 119u8, 50u8, 236u8, 93u8, 148u8, 125u8, 160u8, 86u8, 231u8,
10303                6u8, 89u8, 58u8, 165u8, 9u8, 144u8, 153u8, 65u8, 206u8, 223u8,
10304            ],
10305            [
10306                47u8, 135u8, 136u8, 17u8, 126u8, 126u8, 255u8, 29u8, 130u8, 233u8, 38u8,
10307                236u8, 121u8, 73u8, 1u8, 209u8, 124u8, 120u8, 2u8, 74u8, 80u8, 39u8, 9u8,
10308                64u8, 48u8, 69u8, 64u8, 167u8, 51u8, 101u8, 111u8, 13u8,
10309            ],
10310            [
10311                93u8, 185u8, 238u8, 10u8, 73u8, 91u8, 242u8, 230u8, 255u8, 156u8, 145u8,
10312                167u8, 131u8, 76u8, 27u8, 164u8, 253u8, 210u8, 68u8, 165u8, 232u8, 170u8,
10313                78u8, 83u8, 123u8, 211u8, 138u8, 234u8, 228u8, 176u8, 115u8, 170u8,
10314            ],
10315            [
10316                98u8, 231u8, 140u8, 234u8, 1u8, 190u8, 227u8, 32u8, 205u8, 78u8, 66u8,
10317                2u8, 112u8, 181u8, 234u8, 116u8, 0u8, 13u8, 17u8, 176u8, 201u8, 247u8,
10318                71u8, 84u8, 235u8, 219u8, 252u8, 84u8, 75u8, 5u8, 162u8, 88u8,
10319            ],
10320            [
10321                188u8, 124u8, 215u8, 90u8, 32u8, 238u8, 39u8, 253u8, 154u8, 222u8, 186u8,
10322                179u8, 32u8, 65u8, 247u8, 85u8, 33u8, 77u8, 188u8, 107u8, 255u8, 169u8,
10323                12u8, 192u8, 34u8, 91u8, 57u8, 218u8, 46u8, 92u8, 45u8, 59u8,
10324            ],
10325            [
10326                189u8, 121u8, 184u8, 111u8, 254u8, 10u8, 184u8, 232u8, 119u8, 97u8, 81u8,
10327                81u8, 66u8, 23u8, 205u8, 124u8, 172u8, 213u8, 44u8, 144u8, 159u8, 102u8,
10328                71u8, 92u8, 58u8, 244u8, 78u8, 18u8, 159u8, 11u8, 0u8, 255u8,
10329            ],
10330            [
10331                199u8, 245u8, 5u8, 178u8, 243u8, 113u8, 174u8, 33u8, 117u8, 238u8, 73u8,
10332                19u8, 244u8, 73u8, 158u8, 31u8, 38u8, 51u8, 167u8, 181u8, 147u8, 99u8,
10333                33u8, 238u8, 209u8, 205u8, 174u8, 182u8, 17u8, 81u8, 129u8, 210u8,
10334            ],
10335            [
10336                246u8, 57u8, 31u8, 92u8, 50u8, 217u8, 198u8, 157u8, 42u8, 71u8, 234u8,
10337                103u8, 11u8, 68u8, 41u8, 116u8, 181u8, 57u8, 53u8, 209u8, 237u8, 199u8,
10338                253u8, 100u8, 235u8, 33u8, 224u8, 71u8, 168u8, 57u8, 23u8, 27u8,
10339            ],
10340            [
10341                252u8, 48u8, 205u8, 222u8, 163u8, 142u8, 43u8, 244u8, 214u8, 234u8,
10342                125u8, 63u8, 158u8, 211u8, 182u8, 173u8, 127u8, 23u8, 100u8, 25u8, 244u8,
10343                150u8, 59u8, 216u8, 19u8, 24u8, 6u8, 122u8, 74u8, 238u8, 115u8, 254u8,
10344            ],
10345        ];
10346    }
10347    #[automatically_derived]
10348    impl alloy_sol_types::SolEventInterface for RewardClaimEvents {
10349        const NAME: &'static str = "RewardClaimEvents";
10350        const COUNT: usize = 9usize;
10351        fn decode_raw_log(
10352            topics: &[alloy_sol_types::Word],
10353            data: &[u8],
10354        ) -> alloy_sol_types::Result<Self> {
10355            match topics.first().copied() {
10356                Some(
10357                    <DailyLimitUpdated as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
10358                ) => {
10359                    <DailyLimitUpdated as alloy_sol_types::SolEvent>::decode_raw_log(
10360                            topics,
10361                            data,
10362                        )
10363                        .map(Self::DailyLimitUpdated)
10364                }
10365                Some(<Initialized as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
10366                    <Initialized as alloy_sol_types::SolEvent>::decode_raw_log(
10367                            topics,
10368                            data,
10369                        )
10370                        .map(Self::Initialized)
10371                }
10372                Some(<Paused as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
10373                    <Paused as alloy_sol_types::SolEvent>::decode_raw_log(topics, data)
10374                        .map(Self::Paused)
10375                }
10376                Some(<RewardsClaimed as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
10377                    <RewardsClaimed as alloy_sol_types::SolEvent>::decode_raw_log(
10378                            topics,
10379                            data,
10380                        )
10381                        .map(Self::RewardsClaimed)
10382                }
10383                Some(<RoleAdminChanged as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
10384                    <RoleAdminChanged as alloy_sol_types::SolEvent>::decode_raw_log(
10385                            topics,
10386                            data,
10387                        )
10388                        .map(Self::RoleAdminChanged)
10389                }
10390                Some(<RoleGranted as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
10391                    <RoleGranted as alloy_sol_types::SolEvent>::decode_raw_log(
10392                            topics,
10393                            data,
10394                        )
10395                        .map(Self::RoleGranted)
10396                }
10397                Some(<RoleRevoked as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
10398                    <RoleRevoked as alloy_sol_types::SolEvent>::decode_raw_log(
10399                            topics,
10400                            data,
10401                        )
10402                        .map(Self::RoleRevoked)
10403                }
10404                Some(<Unpaused as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
10405                    <Unpaused as alloy_sol_types::SolEvent>::decode_raw_log(topics, data)
10406                        .map(Self::Unpaused)
10407                }
10408                Some(<Upgraded as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
10409                    <Upgraded as alloy_sol_types::SolEvent>::decode_raw_log(topics, data)
10410                        .map(Self::Upgraded)
10411                }
10412                _ => {
10413                    alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog {
10414                        name: <Self as alloy_sol_types::SolEventInterface>::NAME,
10415                        log: alloy_sol_types::private::Box::new(
10416                            alloy_sol_types::private::LogData::new_unchecked(
10417                                topics.to_vec(),
10418                                data.to_vec().into(),
10419                            ),
10420                        ),
10421                    })
10422                }
10423            }
10424        }
10425    }
10426    #[automatically_derived]
10427    impl alloy_sol_types::private::IntoLogData for RewardClaimEvents {
10428        fn to_log_data(&self) -> alloy_sol_types::private::LogData {
10429            match self {
10430                Self::DailyLimitUpdated(inner) => {
10431                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
10432                }
10433                Self::Initialized(inner) => {
10434                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
10435                }
10436                Self::Paused(inner) => {
10437                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
10438                }
10439                Self::RewardsClaimed(inner) => {
10440                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
10441                }
10442                Self::RoleAdminChanged(inner) => {
10443                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
10444                }
10445                Self::RoleGranted(inner) => {
10446                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
10447                }
10448                Self::RoleRevoked(inner) => {
10449                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
10450                }
10451                Self::Unpaused(inner) => {
10452                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
10453                }
10454                Self::Upgraded(inner) => {
10455                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
10456                }
10457            }
10458        }
10459        fn into_log_data(self) -> alloy_sol_types::private::LogData {
10460            match self {
10461                Self::DailyLimitUpdated(inner) => {
10462                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
10463                }
10464                Self::Initialized(inner) => {
10465                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
10466                }
10467                Self::Paused(inner) => {
10468                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
10469                }
10470                Self::RewardsClaimed(inner) => {
10471                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
10472                }
10473                Self::RoleAdminChanged(inner) => {
10474                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
10475                }
10476                Self::RoleGranted(inner) => {
10477                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
10478                }
10479                Self::RoleRevoked(inner) => {
10480                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
10481                }
10482                Self::Unpaused(inner) => {
10483                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
10484                }
10485                Self::Upgraded(inner) => {
10486                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
10487                }
10488            }
10489        }
10490    }
10491    use alloy::contract as alloy_contract;
10492    /**Creates a new wrapper around an on-chain [`RewardClaim`](self) contract instance.
10493
10494See the [wrapper's documentation](`RewardClaimInstance`) for more details.*/
10495    #[inline]
10496    pub const fn new<
10497        P: alloy_contract::private::Provider<N>,
10498        N: alloy_contract::private::Network,
10499    >(
10500        address: alloy_sol_types::private::Address,
10501        provider: P,
10502    ) -> RewardClaimInstance<P, N> {
10503        RewardClaimInstance::<P, N>::new(address, provider)
10504    }
10505    /**Deploys this contract using the given `provider` and constructor arguments, if any.
10506
10507Returns a new instance of the contract, if the deployment was successful.
10508
10509For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/
10510    #[inline]
10511    pub fn deploy<
10512        P: alloy_contract::private::Provider<N>,
10513        N: alloy_contract::private::Network,
10514    >(
10515        provider: P,
10516    ) -> impl ::core::future::Future<
10517        Output = alloy_contract::Result<RewardClaimInstance<P, N>>,
10518    > {
10519        RewardClaimInstance::<P, N>::deploy(provider)
10520    }
10521    /**Creates a `RawCallBuilder` for deploying this contract using the given `provider`
10522and constructor arguments, if any.
10523
10524This is a simple wrapper around creating a `RawCallBuilder` with the data set to
10525the bytecode concatenated with the constructor's ABI-encoded arguments.*/
10526    #[inline]
10527    pub fn deploy_builder<
10528        P: alloy_contract::private::Provider<N>,
10529        N: alloy_contract::private::Network,
10530    >(provider: P) -> alloy_contract::RawCallBuilder<P, N> {
10531        RewardClaimInstance::<P, N>::deploy_builder(provider)
10532    }
10533    /**A [`RewardClaim`](self) instance.
10534
10535Contains type-safe methods for interacting with an on-chain instance of the
10536[`RewardClaim`](self) contract located at a given `address`, using a given
10537provider `P`.
10538
10539If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!)
10540documentation on how to provide it), the `deploy` and `deploy_builder` methods can
10541be used to deploy a new instance of the contract.
10542
10543See the [module-level documentation](self) for all the available methods.*/
10544    #[derive(Clone)]
10545    pub struct RewardClaimInstance<P, N = alloy_contract::private::Ethereum> {
10546        address: alloy_sol_types::private::Address,
10547        provider: P,
10548        _network: ::core::marker::PhantomData<N>,
10549    }
10550    #[automatically_derived]
10551    impl<P, N> ::core::fmt::Debug for RewardClaimInstance<P, N> {
10552        #[inline]
10553        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
10554            f.debug_tuple("RewardClaimInstance").field(&self.address).finish()
10555        }
10556    }
10557    /// Instantiation and getters/setters.
10558    #[automatically_derived]
10559    impl<
10560        P: alloy_contract::private::Provider<N>,
10561        N: alloy_contract::private::Network,
10562    > RewardClaimInstance<P, N> {
10563        /**Creates a new wrapper around an on-chain [`RewardClaim`](self) contract instance.
10564
10565See the [wrapper's documentation](`RewardClaimInstance`) for more details.*/
10566        #[inline]
10567        pub const fn new(
10568            address: alloy_sol_types::private::Address,
10569            provider: P,
10570        ) -> Self {
10571            Self {
10572                address,
10573                provider,
10574                _network: ::core::marker::PhantomData,
10575            }
10576        }
10577        /**Deploys this contract using the given `provider` and constructor arguments, if any.
10578
10579Returns a new instance of the contract, if the deployment was successful.
10580
10581For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/
10582        #[inline]
10583        pub async fn deploy(
10584            provider: P,
10585        ) -> alloy_contract::Result<RewardClaimInstance<P, N>> {
10586            let call_builder = Self::deploy_builder(provider);
10587            let contract_address = call_builder.deploy().await?;
10588            Ok(Self::new(contract_address, call_builder.provider))
10589        }
10590        /**Creates a `RawCallBuilder` for deploying this contract using the given `provider`
10591and constructor arguments, if any.
10592
10593This is a simple wrapper around creating a `RawCallBuilder` with the data set to
10594the bytecode concatenated with the constructor's ABI-encoded arguments.*/
10595        #[inline]
10596        pub fn deploy_builder(provider: P) -> alloy_contract::RawCallBuilder<P, N> {
10597            alloy_contract::RawCallBuilder::new_raw_deploy(
10598                provider,
10599                ::core::clone::Clone::clone(&BYTECODE),
10600            )
10601        }
10602        /// Returns a reference to the address.
10603        #[inline]
10604        pub const fn address(&self) -> &alloy_sol_types::private::Address {
10605            &self.address
10606        }
10607        /// Sets the address.
10608        #[inline]
10609        pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
10610            self.address = address;
10611        }
10612        /// Sets the address and returns `self`.
10613        pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
10614            self.set_address(address);
10615            self
10616        }
10617        /// Returns a reference to the provider.
10618        #[inline]
10619        pub const fn provider(&self) -> &P {
10620            &self.provider
10621        }
10622    }
10623    impl<P: ::core::clone::Clone, N> RewardClaimInstance<&P, N> {
10624        /// Clones the provider and returns a new instance with the cloned provider.
10625        #[inline]
10626        pub fn with_cloned_provider(self) -> RewardClaimInstance<P, N> {
10627            RewardClaimInstance {
10628                address: self.address,
10629                provider: ::core::clone::Clone::clone(&self.provider),
10630                _network: ::core::marker::PhantomData,
10631            }
10632        }
10633    }
10634    /// Function calls.
10635    #[automatically_derived]
10636    impl<
10637        P: alloy_contract::private::Provider<N>,
10638        N: alloy_contract::private::Network,
10639    > RewardClaimInstance<P, N> {
10640        /// Creates a new call builder using this contract instance's provider and address.
10641        ///
10642        /// Note that the call can be any function call, not just those defined in this
10643        /// contract. Prefer using the other methods for building type-safe contract calls.
10644        pub fn call_builder<C: alloy_sol_types::SolCall>(
10645            &self,
10646            call: &C,
10647        ) -> alloy_contract::SolCallBuilder<&P, C, N> {
10648            alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
10649        }
10650        ///Creates a new call builder for the [`BPS_DENOMINATOR`] function.
10651        pub fn BPS_DENOMINATOR(
10652            &self,
10653        ) -> alloy_contract::SolCallBuilder<&P, BPS_DENOMINATORCall, N> {
10654            self.call_builder(&BPS_DENOMINATORCall)
10655        }
10656        ///Creates a new call builder for the [`DEFAULT_ADMIN_ROLE`] function.
10657        pub fn DEFAULT_ADMIN_ROLE(
10658            &self,
10659        ) -> alloy_contract::SolCallBuilder<&P, DEFAULT_ADMIN_ROLECall, N> {
10660            self.call_builder(&DEFAULT_ADMIN_ROLECall)
10661        }
10662        ///Creates a new call builder for the [`MAX_DAILY_LIMIT_BASIS_POINTS`] function.
10663        pub fn MAX_DAILY_LIMIT_BASIS_POINTS(
10664            &self,
10665        ) -> alloy_contract::SolCallBuilder<&P, MAX_DAILY_LIMIT_BASIS_POINTSCall, N> {
10666            self.call_builder(&MAX_DAILY_LIMIT_BASIS_POINTSCall)
10667        }
10668        ///Creates a new call builder for the [`PAUSER_ROLE`] function.
10669        pub fn PAUSER_ROLE(
10670            &self,
10671        ) -> alloy_contract::SolCallBuilder<&P, PAUSER_ROLECall, N> {
10672            self.call_builder(&PAUSER_ROLECall)
10673        }
10674        ///Creates a new call builder for the [`UPGRADE_INTERFACE_VERSION`] function.
10675        pub fn UPGRADE_INTERFACE_VERSION(
10676            &self,
10677        ) -> alloy_contract::SolCallBuilder<&P, UPGRADE_INTERFACE_VERSIONCall, N> {
10678            self.call_builder(&UPGRADE_INTERFACE_VERSIONCall)
10679        }
10680        ///Creates a new call builder for the [`claimRewards`] function.
10681        pub fn claimRewards(
10682            &self,
10683            lifetimeRewards: alloy::sol_types::private::primitives::aliases::U256,
10684            authData: alloy::sol_types::private::Bytes,
10685        ) -> alloy_contract::SolCallBuilder<&P, claimRewardsCall, N> {
10686            self.call_builder(
10687                &claimRewardsCall {
10688                    lifetimeRewards,
10689                    authData,
10690                },
10691            )
10692        }
10693        ///Creates a new call builder for the [`claimedRewards`] function.
10694        pub fn claimedRewards(
10695            &self,
10696            claimer: alloy::sol_types::private::Address,
10697        ) -> alloy_contract::SolCallBuilder<&P, claimedRewardsCall, N> {
10698            self.call_builder(&claimedRewardsCall { claimer })
10699        }
10700        ///Creates a new call builder for the [`currentAdmin`] function.
10701        pub fn currentAdmin(
10702            &self,
10703        ) -> alloy_contract::SolCallBuilder<&P, currentAdminCall, N> {
10704            self.call_builder(&currentAdminCall)
10705        }
10706        ///Creates a new call builder for the [`dailyLimitWei`] function.
10707        pub fn dailyLimitWei(
10708            &self,
10709        ) -> alloy_contract::SolCallBuilder<&P, dailyLimitWeiCall, N> {
10710            self.call_builder(&dailyLimitWeiCall)
10711        }
10712        ///Creates a new call builder for the [`espToken`] function.
10713        pub fn espToken(&self) -> alloy_contract::SolCallBuilder<&P, espTokenCall, N> {
10714            self.call_builder(&espTokenCall)
10715        }
10716        ///Creates a new call builder for the [`getRoleAdmin`] function.
10717        pub fn getRoleAdmin(
10718            &self,
10719            role: alloy::sol_types::private::FixedBytes<32>,
10720        ) -> alloy_contract::SolCallBuilder<&P, getRoleAdminCall, N> {
10721            self.call_builder(&getRoleAdminCall { role })
10722        }
10723        ///Creates a new call builder for the [`getVersion`] function.
10724        pub fn getVersion(
10725            &self,
10726        ) -> alloy_contract::SolCallBuilder<&P, getVersionCall, N> {
10727            self.call_builder(&getVersionCall)
10728        }
10729        ///Creates a new call builder for the [`grantRole`] function.
10730        pub fn grantRole(
10731            &self,
10732            role: alloy::sol_types::private::FixedBytes<32>,
10733            account: alloy::sol_types::private::Address,
10734        ) -> alloy_contract::SolCallBuilder<&P, grantRoleCall, N> {
10735            self.call_builder(&grantRoleCall { role, account })
10736        }
10737        ///Creates a new call builder for the [`hasRole`] function.
10738        pub fn hasRole(
10739            &self,
10740            role: alloy::sol_types::private::FixedBytes<32>,
10741            account: alloy::sol_types::private::Address,
10742        ) -> alloy_contract::SolCallBuilder<&P, hasRoleCall, N> {
10743            self.call_builder(&hasRoleCall { role, account })
10744        }
10745        ///Creates a new call builder for the [`initialize`] function.
10746        pub fn initialize(
10747            &self,
10748            _admin: alloy::sol_types::private::Address,
10749            _espToken: alloy::sol_types::private::Address,
10750            _lightClient: alloy::sol_types::private::Address,
10751            _pauser: alloy::sol_types::private::Address,
10752        ) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> {
10753            self.call_builder(
10754                &initializeCall {
10755                    _admin,
10756                    _espToken,
10757                    _lightClient,
10758                    _pauser,
10759                },
10760            )
10761        }
10762        ///Creates a new call builder for the [`lastSetDailyLimitBasisPoints`] function.
10763        pub fn lastSetDailyLimitBasisPoints(
10764            &self,
10765        ) -> alloy_contract::SolCallBuilder<&P, lastSetDailyLimitBasisPointsCall, N> {
10766            self.call_builder(&lastSetDailyLimitBasisPointsCall)
10767        }
10768        ///Creates a new call builder for the [`lightClient`] function.
10769        pub fn lightClient(
10770            &self,
10771        ) -> alloy_contract::SolCallBuilder<&P, lightClientCall, N> {
10772            self.call_builder(&lightClientCall)
10773        }
10774        ///Creates a new call builder for the [`pause`] function.
10775        pub fn pause(&self) -> alloy_contract::SolCallBuilder<&P, pauseCall, N> {
10776            self.call_builder(&pauseCall)
10777        }
10778        ///Creates a new call builder for the [`paused`] function.
10779        pub fn paused(&self) -> alloy_contract::SolCallBuilder<&P, pausedCall, N> {
10780            self.call_builder(&pausedCall)
10781        }
10782        ///Creates a new call builder for the [`proxiableUUID`] function.
10783        pub fn proxiableUUID(
10784            &self,
10785        ) -> alloy_contract::SolCallBuilder<&P, proxiableUUIDCall, N> {
10786            self.call_builder(&proxiableUUIDCall)
10787        }
10788        ///Creates a new call builder for the [`renounceRole`] function.
10789        pub fn renounceRole(
10790            &self,
10791            role: alloy::sol_types::private::FixedBytes<32>,
10792            callerConfirmation: alloy::sol_types::private::Address,
10793        ) -> alloy_contract::SolCallBuilder<&P, renounceRoleCall, N> {
10794            self.call_builder(
10795                &renounceRoleCall {
10796                    role,
10797                    callerConfirmation,
10798                },
10799            )
10800        }
10801        ///Creates a new call builder for the [`revokeRole`] function.
10802        pub fn revokeRole(
10803            &self,
10804            role: alloy::sol_types::private::FixedBytes<32>,
10805            account: alloy::sol_types::private::Address,
10806        ) -> alloy_contract::SolCallBuilder<&P, revokeRoleCall, N> {
10807            self.call_builder(&revokeRoleCall { role, account })
10808        }
10809        ///Creates a new call builder for the [`setDailyLimit`] function.
10810        pub fn setDailyLimit(
10811            &self,
10812            basisPoints: alloy::sol_types::private::primitives::aliases::U256,
10813        ) -> alloy_contract::SolCallBuilder<&P, setDailyLimitCall, N> {
10814            self.call_builder(&setDailyLimitCall { basisPoints })
10815        }
10816        ///Creates a new call builder for the [`supportsInterface`] function.
10817        pub fn supportsInterface(
10818            &self,
10819            interfaceId: alloy::sol_types::private::FixedBytes<4>,
10820        ) -> alloy_contract::SolCallBuilder<&P, supportsInterfaceCall, N> {
10821            self.call_builder(
10822                &supportsInterfaceCall {
10823                    interfaceId,
10824                },
10825            )
10826        }
10827        ///Creates a new call builder for the [`totalClaimed`] function.
10828        pub fn totalClaimed(
10829            &self,
10830        ) -> alloy_contract::SolCallBuilder<&P, totalClaimedCall, N> {
10831            self.call_builder(&totalClaimedCall)
10832        }
10833        ///Creates a new call builder for the [`unpause`] function.
10834        pub fn unpause(&self) -> alloy_contract::SolCallBuilder<&P, unpauseCall, N> {
10835            self.call_builder(&unpauseCall)
10836        }
10837        ///Creates a new call builder for the [`upgradeToAndCall`] function.
10838        pub fn upgradeToAndCall(
10839            &self,
10840            newImplementation: alloy::sol_types::private::Address,
10841            data: alloy::sol_types::private::Bytes,
10842        ) -> alloy_contract::SolCallBuilder<&P, upgradeToAndCallCall, N> {
10843            self.call_builder(
10844                &upgradeToAndCallCall {
10845                    newImplementation,
10846                    data,
10847                },
10848            )
10849        }
10850    }
10851    /// Event filters.
10852    #[automatically_derived]
10853    impl<
10854        P: alloy_contract::private::Provider<N>,
10855        N: alloy_contract::private::Network,
10856    > RewardClaimInstance<P, N> {
10857        /// Creates a new event filter using this contract instance's provider and address.
10858        ///
10859        /// Note that the type can be any event, not just those defined in this contract.
10860        /// Prefer using the other methods for building type-safe event filters.
10861        pub fn event_filter<E: alloy_sol_types::SolEvent>(
10862            &self,
10863        ) -> alloy_contract::Event<&P, E, N> {
10864            alloy_contract::Event::new_sol(&self.provider, &self.address)
10865        }
10866        ///Creates a new event filter for the [`DailyLimitUpdated`] event.
10867        pub fn DailyLimitUpdated_filter(
10868            &self,
10869        ) -> alloy_contract::Event<&P, DailyLimitUpdated, N> {
10870            self.event_filter::<DailyLimitUpdated>()
10871        }
10872        ///Creates a new event filter for the [`Initialized`] event.
10873        pub fn Initialized_filter(&self) -> alloy_contract::Event<&P, Initialized, N> {
10874            self.event_filter::<Initialized>()
10875        }
10876        ///Creates a new event filter for the [`Paused`] event.
10877        pub fn Paused_filter(&self) -> alloy_contract::Event<&P, Paused, N> {
10878            self.event_filter::<Paused>()
10879        }
10880        ///Creates a new event filter for the [`RewardsClaimed`] event.
10881        pub fn RewardsClaimed_filter(
10882            &self,
10883        ) -> alloy_contract::Event<&P, RewardsClaimed, N> {
10884            self.event_filter::<RewardsClaimed>()
10885        }
10886        ///Creates a new event filter for the [`RoleAdminChanged`] event.
10887        pub fn RoleAdminChanged_filter(
10888            &self,
10889        ) -> alloy_contract::Event<&P, RoleAdminChanged, N> {
10890            self.event_filter::<RoleAdminChanged>()
10891        }
10892        ///Creates a new event filter for the [`RoleGranted`] event.
10893        pub fn RoleGranted_filter(&self) -> alloy_contract::Event<&P, RoleGranted, N> {
10894            self.event_filter::<RoleGranted>()
10895        }
10896        ///Creates a new event filter for the [`RoleRevoked`] event.
10897        pub fn RoleRevoked_filter(&self) -> alloy_contract::Event<&P, RoleRevoked, N> {
10898            self.event_filter::<RoleRevoked>()
10899        }
10900        ///Creates a new event filter for the [`Unpaused`] event.
10901        pub fn Unpaused_filter(&self) -> alloy_contract::Event<&P, Unpaused, N> {
10902            self.event_filter::<Unpaused>()
10903        }
10904        ///Creates a new event filter for the [`Upgraded`] event.
10905        pub fn Upgraded_filter(&self) -> alloy_contract::Event<&P, Upgraded, N> {
10906            self.event_filter::<Upgraded>()
10907        }
10908    }
10909}