eigenlayer_contract_deployer/bindings/core/
slashingregistrycoordinator.rs

1#![allow(clippy::all, clippy::pedantic, clippy::nursery, warnings, unknown_lints, rustdoc::all, elided_lifetimes_in_paths)]
2use SlashingRegistryCoordinator::*;
3
4///Module containing a contract's types and functions.
5/**
6
7```solidity
8library BN254 {
9    struct G1Point { uint256 X; uint256 Y; }
10}
11```*/
12#[allow(
13    non_camel_case_types,
14    non_snake_case,
15    clippy::pub_underscore_fields,
16    clippy::style,
17    clippy::empty_structs_with_brackets
18)]
19pub mod BN254 {
20    use super::*;
21    use alloy::sol_types as alloy_sol_types;
22    #[derive(Default, Debug, PartialEq, Eq, Hash)]
23    /**```solidity
24struct G1Point { uint256 X; uint256 Y; }
25```*/
26    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
27    #[derive(Clone)]
28    pub struct G1Point {
29        #[allow(missing_docs)]
30        pub X: alloy::sol_types::private::primitives::aliases::U256,
31        #[allow(missing_docs)]
32        pub Y: alloy::sol_types::private::primitives::aliases::U256,
33    }
34    #[allow(
35        non_camel_case_types,
36        non_snake_case,
37        clippy::pub_underscore_fields,
38        clippy::style
39    )]
40    const _: () = {
41        use alloy::sol_types as alloy_sol_types;
42        #[doc(hidden)]
43        type UnderlyingSolTuple<'a> = (
44            alloy::sol_types::sol_data::Uint<256>,
45            alloy::sol_types::sol_data::Uint<256>,
46        );
47        #[doc(hidden)]
48        type UnderlyingRustTuple<'a> = (
49            alloy::sol_types::private::primitives::aliases::U256,
50            alloy::sol_types::private::primitives::aliases::U256,
51        );
52        #[cfg(test)]
53        #[allow(dead_code, unreachable_patterns)]
54        fn _type_assertion(
55            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
56        ) {
57            match _t {
58                alloy_sol_types::private::AssertTypeEq::<
59                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
60                >(_) => {}
61            }
62        }
63        #[automatically_derived]
64        #[doc(hidden)]
65        impl ::core::convert::From<G1Point> for UnderlyingRustTuple<'_> {
66            fn from(value: G1Point) -> Self {
67                (value.X, value.Y)
68            }
69        }
70        #[automatically_derived]
71        #[doc(hidden)]
72        impl ::core::convert::From<UnderlyingRustTuple<'_>> for G1Point {
73            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
74                Self { X: tuple.0, Y: tuple.1 }
75            }
76        }
77        #[automatically_derived]
78        impl alloy_sol_types::SolValue for G1Point {
79            type SolType = Self;
80        }
81        #[automatically_derived]
82        impl alloy_sol_types::private::SolTypeValue<Self> for G1Point {
83            #[inline]
84            fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
85                (
86                    <alloy::sol_types::sol_data::Uint<
87                        256,
88                    > as alloy_sol_types::SolType>::tokenize(&self.X),
89                    <alloy::sol_types::sol_data::Uint<
90                        256,
91                    > as alloy_sol_types::SolType>::tokenize(&self.Y),
92                )
93            }
94            #[inline]
95            fn stv_abi_encoded_size(&self) -> usize {
96                if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
97                    return size;
98                }
99                let tuple = <UnderlyingRustTuple<
100                    '_,
101                > as ::core::convert::From<Self>>::from(self.clone());
102                <UnderlyingSolTuple<
103                    '_,
104                > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
105            }
106            #[inline]
107            fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
108                <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
109            }
110            #[inline]
111            fn stv_abi_encode_packed_to(
112                &self,
113                out: &mut alloy_sol_types::private::Vec<u8>,
114            ) {
115                let tuple = <UnderlyingRustTuple<
116                    '_,
117                > as ::core::convert::From<Self>>::from(self.clone());
118                <UnderlyingSolTuple<
119                    '_,
120                > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
121            }
122            #[inline]
123            fn stv_abi_packed_encoded_size(&self) -> usize {
124                if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
125                    return size;
126                }
127                let tuple = <UnderlyingRustTuple<
128                    '_,
129                > as ::core::convert::From<Self>>::from(self.clone());
130                <UnderlyingSolTuple<
131                    '_,
132                > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
133            }
134        }
135        #[automatically_derived]
136        impl alloy_sol_types::SolType for G1Point {
137            type RustType = Self;
138            type Token<'a> = <UnderlyingSolTuple<
139                'a,
140            > as alloy_sol_types::SolType>::Token<'a>;
141            const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
142            const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
143                '_,
144            > as alloy_sol_types::SolType>::ENCODED_SIZE;
145            const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
146                '_,
147            > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
148            #[inline]
149            fn valid_token(token: &Self::Token<'_>) -> bool {
150                <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
151            }
152            #[inline]
153            fn detokenize(token: Self::Token<'_>) -> Self::RustType {
154                let tuple = <UnderlyingSolTuple<
155                    '_,
156                > as alloy_sol_types::SolType>::detokenize(token);
157                <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
158            }
159        }
160        #[automatically_derived]
161        impl alloy_sol_types::SolStruct for G1Point {
162            const NAME: &'static str = "G1Point";
163            #[inline]
164            fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
165                alloy_sol_types::private::Cow::Borrowed("G1Point(uint256 X,uint256 Y)")
166            }
167            #[inline]
168            fn eip712_components() -> alloy_sol_types::private::Vec<
169                alloy_sol_types::private::Cow<'static, str>,
170            > {
171                alloy_sol_types::private::Vec::new()
172            }
173            #[inline]
174            fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
175                <Self as alloy_sol_types::SolStruct>::eip712_root_type()
176            }
177            #[inline]
178            fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
179                [
180                    <alloy::sol_types::sol_data::Uint<
181                        256,
182                    > as alloy_sol_types::SolType>::eip712_data_word(&self.X)
183                        .0,
184                    <alloy::sol_types::sol_data::Uint<
185                        256,
186                    > as alloy_sol_types::SolType>::eip712_data_word(&self.Y)
187                        .0,
188                ]
189                    .concat()
190            }
191        }
192        #[automatically_derived]
193        impl alloy_sol_types::EventTopic for G1Point {
194            #[inline]
195            fn topic_preimage_length(rust: &Self::RustType) -> usize {
196                0usize
197                    + <alloy::sol_types::sol_data::Uint<
198                        256,
199                    > as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.X)
200                    + <alloy::sol_types::sol_data::Uint<
201                        256,
202                    > as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.Y)
203            }
204            #[inline]
205            fn encode_topic_preimage(
206                rust: &Self::RustType,
207                out: &mut alloy_sol_types::private::Vec<u8>,
208            ) {
209                out.reserve(
210                    <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
211                );
212                <alloy::sol_types::sol_data::Uint<
213                    256,
214                > as alloy_sol_types::EventTopic>::encode_topic_preimage(&rust.X, out);
215                <alloy::sol_types::sol_data::Uint<
216                    256,
217                > as alloy_sol_types::EventTopic>::encode_topic_preimage(&rust.Y, out);
218            }
219            #[inline]
220            fn encode_topic(
221                rust: &Self::RustType,
222            ) -> alloy_sol_types::abi::token::WordToken {
223                let mut out = alloy_sol_types::private::Vec::new();
224                <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
225                    rust,
226                    &mut out,
227                );
228                alloy_sol_types::abi::token::WordToken(
229                    alloy_sol_types::private::keccak256(out),
230                )
231            }
232        }
233    };
234    use alloy::contract as alloy_contract;
235    /**Creates a new wrapper around an on-chain [`BN254`](self) contract instance.
236
237See the [wrapper's documentation](`BN254Instance`) for more details.*/
238    #[inline]
239    pub const fn new<
240        T: alloy_contract::private::Transport + ::core::clone::Clone,
241        P: alloy_contract::private::Provider<T, N>,
242        N: alloy_contract::private::Network,
243    >(
244        address: alloy_sol_types::private::Address,
245        provider: P,
246    ) -> BN254Instance<T, P, N> {
247        BN254Instance::<T, P, N>::new(address, provider)
248    }
249    /**A [`BN254`](self) instance.
250
251Contains type-safe methods for interacting with an on-chain instance of the
252[`BN254`](self) contract located at a given `address`, using a given
253provider `P`.
254
255If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!)
256documentation on how to provide it), the `deploy` and `deploy_builder` methods can
257be used to deploy a new instance of the contract.
258
259See the [module-level documentation](self) for all the available methods.*/
260    #[derive(Clone)]
261    pub struct BN254Instance<T, P, N = alloy_contract::private::Ethereum> {
262        address: alloy_sol_types::private::Address,
263        provider: P,
264        _network_transport: ::core::marker::PhantomData<(N, T)>,
265    }
266    #[automatically_derived]
267    impl<T, P, N> ::core::fmt::Debug for BN254Instance<T, P, N> {
268        #[inline]
269        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
270            f.debug_tuple("BN254Instance").field(&self.address).finish()
271        }
272    }
273    /// Instantiation and getters/setters.
274    #[automatically_derived]
275    impl<
276        T: alloy_contract::private::Transport + ::core::clone::Clone,
277        P: alloy_contract::private::Provider<T, N>,
278        N: alloy_contract::private::Network,
279    > BN254Instance<T, P, N> {
280        /**Creates a new wrapper around an on-chain [`BN254`](self) contract instance.
281
282See the [wrapper's documentation](`BN254Instance`) for more details.*/
283        #[inline]
284        pub const fn new(
285            address: alloy_sol_types::private::Address,
286            provider: P,
287        ) -> Self {
288            Self {
289                address,
290                provider,
291                _network_transport: ::core::marker::PhantomData,
292            }
293        }
294        /// Returns a reference to the address.
295        #[inline]
296        pub const fn address(&self) -> &alloy_sol_types::private::Address {
297            &self.address
298        }
299        /// Sets the address.
300        #[inline]
301        pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
302            self.address = address;
303        }
304        /// Sets the address and returns `self`.
305        pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
306            self.set_address(address);
307            self
308        }
309        /// Returns a reference to the provider.
310        #[inline]
311        pub const fn provider(&self) -> &P {
312            &self.provider
313        }
314    }
315    impl<T, P: ::core::clone::Clone, N> BN254Instance<T, &P, N> {
316        /// Clones the provider and returns a new instance with the cloned provider.
317        #[inline]
318        pub fn with_cloned_provider(self) -> BN254Instance<T, P, N> {
319            BN254Instance {
320                address: self.address,
321                provider: ::core::clone::Clone::clone(&self.provider),
322                _network_transport: ::core::marker::PhantomData,
323            }
324        }
325    }
326    /// Function calls.
327    #[automatically_derived]
328    impl<
329        T: alloy_contract::private::Transport + ::core::clone::Clone,
330        P: alloy_contract::private::Provider<T, N>,
331        N: alloy_contract::private::Network,
332    > BN254Instance<T, P, N> {
333        /// Creates a new call builder using this contract instance's provider and address.
334        ///
335        /// Note that the call can be any function call, not just those defined in this
336        /// contract. Prefer using the other methods for building type-safe contract calls.
337        pub fn call_builder<C: alloy_sol_types::SolCall>(
338            &self,
339            call: &C,
340        ) -> alloy_contract::SolCallBuilder<T, &P, C, N> {
341            alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
342        }
343    }
344    /// Event filters.
345    #[automatically_derived]
346    impl<
347        T: alloy_contract::private::Transport + ::core::clone::Clone,
348        P: alloy_contract::private::Provider<T, N>,
349        N: alloy_contract::private::Network,
350    > BN254Instance<T, P, N> {
351        /// Creates a new event filter using this contract instance's provider and address.
352        ///
353        /// Note that the type can be any event, not just those defined in this contract.
354        /// Prefer using the other methods for building type-safe event filters.
355        pub fn event_filter<E: alloy_sol_types::SolEvent>(
356            &self,
357        ) -> alloy_contract::Event<T, &P, E, N> {
358            alloy_contract::Event::new_sol(&self.provider, &self.address)
359        }
360    }
361}
362///Module containing a contract's types and functions.
363/**
364
365```solidity
366library ISlashingRegistryCoordinatorTypes {
367    type OperatorStatus is uint8;
368    struct OperatorInfo { bytes32 operatorId; OperatorStatus status; }
369    struct OperatorKickParam { uint8 quorumNumber; address operator; }
370    struct OperatorSetParam { uint32 maxOperatorCount; uint16 kickBIPsOfOperatorStake; uint16 kickBIPsOfTotalStake; }
371    struct QuorumBitmapUpdate { uint32 updateBlockNumber; uint32 nextUpdateBlockNumber; uint192 quorumBitmap; }
372}
373```*/
374#[allow(
375    non_camel_case_types,
376    non_snake_case,
377    clippy::pub_underscore_fields,
378    clippy::style,
379    clippy::empty_structs_with_brackets
380)]
381pub mod ISlashingRegistryCoordinatorTypes {
382    use super::*;
383    use alloy::sol_types as alloy_sol_types;
384    #[derive(Default, Debug, PartialEq, Eq, Hash)]
385    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
386    #[derive(Clone)]
387    pub struct OperatorStatus(u8);
388    const _: () = {
389        use alloy::sol_types as alloy_sol_types;
390        #[automatically_derived]
391        impl alloy_sol_types::private::SolTypeValue<OperatorStatus> for u8 {
392            #[inline]
393            fn stv_to_tokens(
394                &self,
395            ) -> <alloy::sol_types::sol_data::Uint<
396                8,
397            > as alloy_sol_types::SolType>::Token<'_> {
398                alloy_sol_types::private::SolTypeValue::<
399                    alloy::sol_types::sol_data::Uint<8>,
400                >::stv_to_tokens(self)
401            }
402            #[inline]
403            fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
404                <alloy::sol_types::sol_data::Uint<
405                    8,
406                > as alloy_sol_types::SolType>::tokenize(self)
407                    .0
408            }
409            #[inline]
410            fn stv_abi_encode_packed_to(
411                &self,
412                out: &mut alloy_sol_types::private::Vec<u8>,
413            ) {
414                <alloy::sol_types::sol_data::Uint<
415                    8,
416                > as alloy_sol_types::SolType>::abi_encode_packed_to(self, out)
417            }
418            #[inline]
419            fn stv_abi_packed_encoded_size(&self) -> usize {
420                <alloy::sol_types::sol_data::Uint<
421                    8,
422                > as alloy_sol_types::SolType>::abi_encoded_size(self)
423            }
424        }
425        #[automatically_derived]
426        impl OperatorStatus {
427            /// The Solidity type name.
428            pub const NAME: &'static str = stringify!(@ name);
429            /// Convert from the underlying value type.
430            #[inline]
431            pub const fn from(value: u8) -> Self {
432                Self(value)
433            }
434            /// Return the underlying value.
435            #[inline]
436            pub const fn into(self) -> u8 {
437                self.0
438            }
439            /// Return the single encoding of this value, delegating to the
440            /// underlying type.
441            #[inline]
442            pub fn abi_encode(&self) -> alloy_sol_types::private::Vec<u8> {
443                <Self as alloy_sol_types::SolType>::abi_encode(&self.0)
444            }
445            /// Return the packed encoding of this value, delegating to the
446            /// underlying type.
447            #[inline]
448            pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec<u8> {
449                <Self as alloy_sol_types::SolType>::abi_encode_packed(&self.0)
450            }
451        }
452        #[automatically_derived]
453        impl alloy_sol_types::SolType for OperatorStatus {
454            type RustType = u8;
455            type Token<'a> = <alloy::sol_types::sol_data::Uint<
456                8,
457            > as alloy_sol_types::SolType>::Token<'a>;
458            const SOL_NAME: &'static str = Self::NAME;
459            const ENCODED_SIZE: Option<usize> = <alloy::sol_types::sol_data::Uint<
460                8,
461            > as alloy_sol_types::SolType>::ENCODED_SIZE;
462            const PACKED_ENCODED_SIZE: Option<usize> = <alloy::sol_types::sol_data::Uint<
463                8,
464            > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
465            #[inline]
466            fn valid_token(token: &Self::Token<'_>) -> bool {
467                Self::type_check(token).is_ok()
468            }
469            #[inline]
470            fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> {
471                <alloy::sol_types::sol_data::Uint<
472                    8,
473                > as alloy_sol_types::SolType>::type_check(token)
474            }
475            #[inline]
476            fn detokenize(token: Self::Token<'_>) -> Self::RustType {
477                <alloy::sol_types::sol_data::Uint<
478                    8,
479                > as alloy_sol_types::SolType>::detokenize(token)
480            }
481        }
482        #[automatically_derived]
483        impl alloy_sol_types::EventTopic for OperatorStatus {
484            #[inline]
485            fn topic_preimage_length(rust: &Self::RustType) -> usize {
486                <alloy::sol_types::sol_data::Uint<
487                    8,
488                > as alloy_sol_types::EventTopic>::topic_preimage_length(rust)
489            }
490            #[inline]
491            fn encode_topic_preimage(
492                rust: &Self::RustType,
493                out: &mut alloy_sol_types::private::Vec<u8>,
494            ) {
495                <alloy::sol_types::sol_data::Uint<
496                    8,
497                > as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out)
498            }
499            #[inline]
500            fn encode_topic(
501                rust: &Self::RustType,
502            ) -> alloy_sol_types::abi::token::WordToken {
503                <alloy::sol_types::sol_data::Uint<
504                    8,
505                > as alloy_sol_types::EventTopic>::encode_topic(rust)
506            }
507        }
508    };
509    #[derive(Default, Debug, PartialEq, Eq, Hash)]
510    /**```solidity
511struct OperatorInfo { bytes32 operatorId; OperatorStatus status; }
512```*/
513    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
514    #[derive(Clone)]
515    pub struct OperatorInfo {
516        #[allow(missing_docs)]
517        pub operatorId: alloy::sol_types::private::FixedBytes<32>,
518        #[allow(missing_docs)]
519        pub status: <OperatorStatus as alloy::sol_types::SolType>::RustType,
520    }
521    #[allow(
522        non_camel_case_types,
523        non_snake_case,
524        clippy::pub_underscore_fields,
525        clippy::style
526    )]
527    const _: () = {
528        use alloy::sol_types as alloy_sol_types;
529        #[doc(hidden)]
530        type UnderlyingSolTuple<'a> = (
531            alloy::sol_types::sol_data::FixedBytes<32>,
532            OperatorStatus,
533        );
534        #[doc(hidden)]
535        type UnderlyingRustTuple<'a> = (
536            alloy::sol_types::private::FixedBytes<32>,
537            <OperatorStatus as alloy::sol_types::SolType>::RustType,
538        );
539        #[cfg(test)]
540        #[allow(dead_code, unreachable_patterns)]
541        fn _type_assertion(
542            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
543        ) {
544            match _t {
545                alloy_sol_types::private::AssertTypeEq::<
546                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
547                >(_) => {}
548            }
549        }
550        #[automatically_derived]
551        #[doc(hidden)]
552        impl ::core::convert::From<OperatorInfo> for UnderlyingRustTuple<'_> {
553            fn from(value: OperatorInfo) -> Self {
554                (value.operatorId, value.status)
555            }
556        }
557        #[automatically_derived]
558        #[doc(hidden)]
559        impl ::core::convert::From<UnderlyingRustTuple<'_>> for OperatorInfo {
560            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
561                Self {
562                    operatorId: tuple.0,
563                    status: tuple.1,
564                }
565            }
566        }
567        #[automatically_derived]
568        impl alloy_sol_types::SolValue for OperatorInfo {
569            type SolType = Self;
570        }
571        #[automatically_derived]
572        impl alloy_sol_types::private::SolTypeValue<Self> for OperatorInfo {
573            #[inline]
574            fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
575                (
576                    <alloy::sol_types::sol_data::FixedBytes<
577                        32,
578                    > as alloy_sol_types::SolType>::tokenize(&self.operatorId),
579                    <OperatorStatus as alloy_sol_types::SolType>::tokenize(&self.status),
580                )
581            }
582            #[inline]
583            fn stv_abi_encoded_size(&self) -> usize {
584                if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
585                    return size;
586                }
587                let tuple = <UnderlyingRustTuple<
588                    '_,
589                > as ::core::convert::From<Self>>::from(self.clone());
590                <UnderlyingSolTuple<
591                    '_,
592                > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
593            }
594            #[inline]
595            fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
596                <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
597            }
598            #[inline]
599            fn stv_abi_encode_packed_to(
600                &self,
601                out: &mut alloy_sol_types::private::Vec<u8>,
602            ) {
603                let tuple = <UnderlyingRustTuple<
604                    '_,
605                > as ::core::convert::From<Self>>::from(self.clone());
606                <UnderlyingSolTuple<
607                    '_,
608                > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
609            }
610            #[inline]
611            fn stv_abi_packed_encoded_size(&self) -> usize {
612                if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
613                    return size;
614                }
615                let tuple = <UnderlyingRustTuple<
616                    '_,
617                > as ::core::convert::From<Self>>::from(self.clone());
618                <UnderlyingSolTuple<
619                    '_,
620                > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
621            }
622        }
623        #[automatically_derived]
624        impl alloy_sol_types::SolType for OperatorInfo {
625            type RustType = Self;
626            type Token<'a> = <UnderlyingSolTuple<
627                'a,
628            > as alloy_sol_types::SolType>::Token<'a>;
629            const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
630            const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
631                '_,
632            > as alloy_sol_types::SolType>::ENCODED_SIZE;
633            const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
634                '_,
635            > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
636            #[inline]
637            fn valid_token(token: &Self::Token<'_>) -> bool {
638                <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
639            }
640            #[inline]
641            fn detokenize(token: Self::Token<'_>) -> Self::RustType {
642                let tuple = <UnderlyingSolTuple<
643                    '_,
644                > as alloy_sol_types::SolType>::detokenize(token);
645                <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
646            }
647        }
648        #[automatically_derived]
649        impl alloy_sol_types::SolStruct for OperatorInfo {
650            const NAME: &'static str = "OperatorInfo";
651            #[inline]
652            fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
653                alloy_sol_types::private::Cow::Borrowed(
654                    "OperatorInfo(bytes32 operatorId,uint8 status)",
655                )
656            }
657            #[inline]
658            fn eip712_components() -> alloy_sol_types::private::Vec<
659                alloy_sol_types::private::Cow<'static, str>,
660            > {
661                alloy_sol_types::private::Vec::new()
662            }
663            #[inline]
664            fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
665                <Self as alloy_sol_types::SolStruct>::eip712_root_type()
666            }
667            #[inline]
668            fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
669                [
670                    <alloy::sol_types::sol_data::FixedBytes<
671                        32,
672                    > as alloy_sol_types::SolType>::eip712_data_word(&self.operatorId)
673                        .0,
674                    <OperatorStatus as alloy_sol_types::SolType>::eip712_data_word(
675                            &self.status,
676                        )
677                        .0,
678                ]
679                    .concat()
680            }
681        }
682        #[automatically_derived]
683        impl alloy_sol_types::EventTopic for OperatorInfo {
684            #[inline]
685            fn topic_preimage_length(rust: &Self::RustType) -> usize {
686                0usize
687                    + <alloy::sol_types::sol_data::FixedBytes<
688                        32,
689                    > as alloy_sol_types::EventTopic>::topic_preimage_length(
690                        &rust.operatorId,
691                    )
692                    + <OperatorStatus as alloy_sol_types::EventTopic>::topic_preimage_length(
693                        &rust.status,
694                    )
695            }
696            #[inline]
697            fn encode_topic_preimage(
698                rust: &Self::RustType,
699                out: &mut alloy_sol_types::private::Vec<u8>,
700            ) {
701                out.reserve(
702                    <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
703                );
704                <alloy::sol_types::sol_data::FixedBytes<
705                    32,
706                > as alloy_sol_types::EventTopic>::encode_topic_preimage(
707                    &rust.operatorId,
708                    out,
709                );
710                <OperatorStatus as alloy_sol_types::EventTopic>::encode_topic_preimage(
711                    &rust.status,
712                    out,
713                );
714            }
715            #[inline]
716            fn encode_topic(
717                rust: &Self::RustType,
718            ) -> alloy_sol_types::abi::token::WordToken {
719                let mut out = alloy_sol_types::private::Vec::new();
720                <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
721                    rust,
722                    &mut out,
723                );
724                alloy_sol_types::abi::token::WordToken(
725                    alloy_sol_types::private::keccak256(out),
726                )
727            }
728        }
729    };
730    #[derive(Default, Debug, PartialEq, Eq, Hash)]
731    /**```solidity
732struct OperatorKickParam { uint8 quorumNumber; address operator; }
733```*/
734    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
735    #[derive(Clone)]
736    pub struct OperatorKickParam {
737        #[allow(missing_docs)]
738        pub quorumNumber: u8,
739        #[allow(missing_docs)]
740        pub operator: alloy::sol_types::private::Address,
741    }
742    #[allow(
743        non_camel_case_types,
744        non_snake_case,
745        clippy::pub_underscore_fields,
746        clippy::style
747    )]
748    const _: () = {
749        use alloy::sol_types as alloy_sol_types;
750        #[doc(hidden)]
751        type UnderlyingSolTuple<'a> = (
752            alloy::sol_types::sol_data::Uint<8>,
753            alloy::sol_types::sol_data::Address,
754        );
755        #[doc(hidden)]
756        type UnderlyingRustTuple<'a> = (u8, alloy::sol_types::private::Address);
757        #[cfg(test)]
758        #[allow(dead_code, unreachable_patterns)]
759        fn _type_assertion(
760            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
761        ) {
762            match _t {
763                alloy_sol_types::private::AssertTypeEq::<
764                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
765                >(_) => {}
766            }
767        }
768        #[automatically_derived]
769        #[doc(hidden)]
770        impl ::core::convert::From<OperatorKickParam> for UnderlyingRustTuple<'_> {
771            fn from(value: OperatorKickParam) -> Self {
772                (value.quorumNumber, value.operator)
773            }
774        }
775        #[automatically_derived]
776        #[doc(hidden)]
777        impl ::core::convert::From<UnderlyingRustTuple<'_>> for OperatorKickParam {
778            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
779                Self {
780                    quorumNumber: tuple.0,
781                    operator: tuple.1,
782                }
783            }
784        }
785        #[automatically_derived]
786        impl alloy_sol_types::SolValue for OperatorKickParam {
787            type SolType = Self;
788        }
789        #[automatically_derived]
790        impl alloy_sol_types::private::SolTypeValue<Self> for OperatorKickParam {
791            #[inline]
792            fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
793                (
794                    <alloy::sol_types::sol_data::Uint<
795                        8,
796                    > as alloy_sol_types::SolType>::tokenize(&self.quorumNumber),
797                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
798                        &self.operator,
799                    ),
800                )
801            }
802            #[inline]
803            fn stv_abi_encoded_size(&self) -> usize {
804                if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
805                    return size;
806                }
807                let tuple = <UnderlyingRustTuple<
808                    '_,
809                > as ::core::convert::From<Self>>::from(self.clone());
810                <UnderlyingSolTuple<
811                    '_,
812                > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
813            }
814            #[inline]
815            fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
816                <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
817            }
818            #[inline]
819            fn stv_abi_encode_packed_to(
820                &self,
821                out: &mut alloy_sol_types::private::Vec<u8>,
822            ) {
823                let tuple = <UnderlyingRustTuple<
824                    '_,
825                > as ::core::convert::From<Self>>::from(self.clone());
826                <UnderlyingSolTuple<
827                    '_,
828                > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
829            }
830            #[inline]
831            fn stv_abi_packed_encoded_size(&self) -> usize {
832                if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
833                    return size;
834                }
835                let tuple = <UnderlyingRustTuple<
836                    '_,
837                > as ::core::convert::From<Self>>::from(self.clone());
838                <UnderlyingSolTuple<
839                    '_,
840                > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
841            }
842        }
843        #[automatically_derived]
844        impl alloy_sol_types::SolType for OperatorKickParam {
845            type RustType = Self;
846            type Token<'a> = <UnderlyingSolTuple<
847                'a,
848            > as alloy_sol_types::SolType>::Token<'a>;
849            const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
850            const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
851                '_,
852            > as alloy_sol_types::SolType>::ENCODED_SIZE;
853            const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
854                '_,
855            > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
856            #[inline]
857            fn valid_token(token: &Self::Token<'_>) -> bool {
858                <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
859            }
860            #[inline]
861            fn detokenize(token: Self::Token<'_>) -> Self::RustType {
862                let tuple = <UnderlyingSolTuple<
863                    '_,
864                > as alloy_sol_types::SolType>::detokenize(token);
865                <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
866            }
867        }
868        #[automatically_derived]
869        impl alloy_sol_types::SolStruct for OperatorKickParam {
870            const NAME: &'static str = "OperatorKickParam";
871            #[inline]
872            fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
873                alloy_sol_types::private::Cow::Borrowed(
874                    "OperatorKickParam(uint8 quorumNumber,address operator)",
875                )
876            }
877            #[inline]
878            fn eip712_components() -> alloy_sol_types::private::Vec<
879                alloy_sol_types::private::Cow<'static, str>,
880            > {
881                alloy_sol_types::private::Vec::new()
882            }
883            #[inline]
884            fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
885                <Self as alloy_sol_types::SolStruct>::eip712_root_type()
886            }
887            #[inline]
888            fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
889                [
890                    <alloy::sol_types::sol_data::Uint<
891                        8,
892                    > as alloy_sol_types::SolType>::eip712_data_word(&self.quorumNumber)
893                        .0,
894                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::eip712_data_word(
895                            &self.operator,
896                        )
897                        .0,
898                ]
899                    .concat()
900            }
901        }
902        #[automatically_derived]
903        impl alloy_sol_types::EventTopic for OperatorKickParam {
904            #[inline]
905            fn topic_preimage_length(rust: &Self::RustType) -> usize {
906                0usize
907                    + <alloy::sol_types::sol_data::Uint<
908                        8,
909                    > as alloy_sol_types::EventTopic>::topic_preimage_length(
910                        &rust.quorumNumber,
911                    )
912                    + <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::topic_preimage_length(
913                        &rust.operator,
914                    )
915            }
916            #[inline]
917            fn encode_topic_preimage(
918                rust: &Self::RustType,
919                out: &mut alloy_sol_types::private::Vec<u8>,
920            ) {
921                out.reserve(
922                    <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
923                );
924                <alloy::sol_types::sol_data::Uint<
925                    8,
926                > as alloy_sol_types::EventTopic>::encode_topic_preimage(
927                    &rust.quorumNumber,
928                    out,
929                );
930                <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic_preimage(
931                    &rust.operator,
932                    out,
933                );
934            }
935            #[inline]
936            fn encode_topic(
937                rust: &Self::RustType,
938            ) -> alloy_sol_types::abi::token::WordToken {
939                let mut out = alloy_sol_types::private::Vec::new();
940                <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
941                    rust,
942                    &mut out,
943                );
944                alloy_sol_types::abi::token::WordToken(
945                    alloy_sol_types::private::keccak256(out),
946                )
947            }
948        }
949    };
950    #[derive(Default, Debug, PartialEq, Eq, Hash)]
951    /**```solidity
952struct OperatorSetParam { uint32 maxOperatorCount; uint16 kickBIPsOfOperatorStake; uint16 kickBIPsOfTotalStake; }
953```*/
954    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
955    #[derive(Clone)]
956    pub struct OperatorSetParam {
957        #[allow(missing_docs)]
958        pub maxOperatorCount: u32,
959        #[allow(missing_docs)]
960        pub kickBIPsOfOperatorStake: u16,
961        #[allow(missing_docs)]
962        pub kickBIPsOfTotalStake: u16,
963    }
964    #[allow(
965        non_camel_case_types,
966        non_snake_case,
967        clippy::pub_underscore_fields,
968        clippy::style
969    )]
970    const _: () = {
971        use alloy::sol_types as alloy_sol_types;
972        #[doc(hidden)]
973        type UnderlyingSolTuple<'a> = (
974            alloy::sol_types::sol_data::Uint<32>,
975            alloy::sol_types::sol_data::Uint<16>,
976            alloy::sol_types::sol_data::Uint<16>,
977        );
978        #[doc(hidden)]
979        type UnderlyingRustTuple<'a> = (u32, u16, u16);
980        #[cfg(test)]
981        #[allow(dead_code, unreachable_patterns)]
982        fn _type_assertion(
983            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
984        ) {
985            match _t {
986                alloy_sol_types::private::AssertTypeEq::<
987                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
988                >(_) => {}
989            }
990        }
991        #[automatically_derived]
992        #[doc(hidden)]
993        impl ::core::convert::From<OperatorSetParam> for UnderlyingRustTuple<'_> {
994            fn from(value: OperatorSetParam) -> Self {
995                (
996                    value.maxOperatorCount,
997                    value.kickBIPsOfOperatorStake,
998                    value.kickBIPsOfTotalStake,
999                )
1000            }
1001        }
1002        #[automatically_derived]
1003        #[doc(hidden)]
1004        impl ::core::convert::From<UnderlyingRustTuple<'_>> for OperatorSetParam {
1005            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1006                Self {
1007                    maxOperatorCount: tuple.0,
1008                    kickBIPsOfOperatorStake: tuple.1,
1009                    kickBIPsOfTotalStake: tuple.2,
1010                }
1011            }
1012        }
1013        #[automatically_derived]
1014        impl alloy_sol_types::SolValue for OperatorSetParam {
1015            type SolType = Self;
1016        }
1017        #[automatically_derived]
1018        impl alloy_sol_types::private::SolTypeValue<Self> for OperatorSetParam {
1019            #[inline]
1020            fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
1021                (
1022                    <alloy::sol_types::sol_data::Uint<
1023                        32,
1024                    > as alloy_sol_types::SolType>::tokenize(&self.maxOperatorCount),
1025                    <alloy::sol_types::sol_data::Uint<
1026                        16,
1027                    > as alloy_sol_types::SolType>::tokenize(
1028                        &self.kickBIPsOfOperatorStake,
1029                    ),
1030                    <alloy::sol_types::sol_data::Uint<
1031                        16,
1032                    > as alloy_sol_types::SolType>::tokenize(&self.kickBIPsOfTotalStake),
1033                )
1034            }
1035            #[inline]
1036            fn stv_abi_encoded_size(&self) -> usize {
1037                if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
1038                    return size;
1039                }
1040                let tuple = <UnderlyingRustTuple<
1041                    '_,
1042                > as ::core::convert::From<Self>>::from(self.clone());
1043                <UnderlyingSolTuple<
1044                    '_,
1045                > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
1046            }
1047            #[inline]
1048            fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
1049                <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
1050            }
1051            #[inline]
1052            fn stv_abi_encode_packed_to(
1053                &self,
1054                out: &mut alloy_sol_types::private::Vec<u8>,
1055            ) {
1056                let tuple = <UnderlyingRustTuple<
1057                    '_,
1058                > as ::core::convert::From<Self>>::from(self.clone());
1059                <UnderlyingSolTuple<
1060                    '_,
1061                > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
1062            }
1063            #[inline]
1064            fn stv_abi_packed_encoded_size(&self) -> usize {
1065                if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
1066                    return size;
1067                }
1068                let tuple = <UnderlyingRustTuple<
1069                    '_,
1070                > as ::core::convert::From<Self>>::from(self.clone());
1071                <UnderlyingSolTuple<
1072                    '_,
1073                > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
1074            }
1075        }
1076        #[automatically_derived]
1077        impl alloy_sol_types::SolType for OperatorSetParam {
1078            type RustType = Self;
1079            type Token<'a> = <UnderlyingSolTuple<
1080                'a,
1081            > as alloy_sol_types::SolType>::Token<'a>;
1082            const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
1083            const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
1084                '_,
1085            > as alloy_sol_types::SolType>::ENCODED_SIZE;
1086            const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
1087                '_,
1088            > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
1089            #[inline]
1090            fn valid_token(token: &Self::Token<'_>) -> bool {
1091                <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
1092            }
1093            #[inline]
1094            fn detokenize(token: Self::Token<'_>) -> Self::RustType {
1095                let tuple = <UnderlyingSolTuple<
1096                    '_,
1097                > as alloy_sol_types::SolType>::detokenize(token);
1098                <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
1099            }
1100        }
1101        #[automatically_derived]
1102        impl alloy_sol_types::SolStruct for OperatorSetParam {
1103            const NAME: &'static str = "OperatorSetParam";
1104            #[inline]
1105            fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
1106                alloy_sol_types::private::Cow::Borrowed(
1107                    "OperatorSetParam(uint32 maxOperatorCount,uint16 kickBIPsOfOperatorStake,uint16 kickBIPsOfTotalStake)",
1108                )
1109            }
1110            #[inline]
1111            fn eip712_components() -> alloy_sol_types::private::Vec<
1112                alloy_sol_types::private::Cow<'static, str>,
1113            > {
1114                alloy_sol_types::private::Vec::new()
1115            }
1116            #[inline]
1117            fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
1118                <Self as alloy_sol_types::SolStruct>::eip712_root_type()
1119            }
1120            #[inline]
1121            fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
1122                [
1123                    <alloy::sol_types::sol_data::Uint<
1124                        32,
1125                    > as alloy_sol_types::SolType>::eip712_data_word(
1126                            &self.maxOperatorCount,
1127                        )
1128                        .0,
1129                    <alloy::sol_types::sol_data::Uint<
1130                        16,
1131                    > as alloy_sol_types::SolType>::eip712_data_word(
1132                            &self.kickBIPsOfOperatorStake,
1133                        )
1134                        .0,
1135                    <alloy::sol_types::sol_data::Uint<
1136                        16,
1137                    > as alloy_sol_types::SolType>::eip712_data_word(
1138                            &self.kickBIPsOfTotalStake,
1139                        )
1140                        .0,
1141                ]
1142                    .concat()
1143            }
1144        }
1145        #[automatically_derived]
1146        impl alloy_sol_types::EventTopic for OperatorSetParam {
1147            #[inline]
1148            fn topic_preimage_length(rust: &Self::RustType) -> usize {
1149                0usize
1150                    + <alloy::sol_types::sol_data::Uint<
1151                        32,
1152                    > as alloy_sol_types::EventTopic>::topic_preimage_length(
1153                        &rust.maxOperatorCount,
1154                    )
1155                    + <alloy::sol_types::sol_data::Uint<
1156                        16,
1157                    > as alloy_sol_types::EventTopic>::topic_preimage_length(
1158                        &rust.kickBIPsOfOperatorStake,
1159                    )
1160                    + <alloy::sol_types::sol_data::Uint<
1161                        16,
1162                    > as alloy_sol_types::EventTopic>::topic_preimage_length(
1163                        &rust.kickBIPsOfTotalStake,
1164                    )
1165            }
1166            #[inline]
1167            fn encode_topic_preimage(
1168                rust: &Self::RustType,
1169                out: &mut alloy_sol_types::private::Vec<u8>,
1170            ) {
1171                out.reserve(
1172                    <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
1173                );
1174                <alloy::sol_types::sol_data::Uint<
1175                    32,
1176                > as alloy_sol_types::EventTopic>::encode_topic_preimage(
1177                    &rust.maxOperatorCount,
1178                    out,
1179                );
1180                <alloy::sol_types::sol_data::Uint<
1181                    16,
1182                > as alloy_sol_types::EventTopic>::encode_topic_preimage(
1183                    &rust.kickBIPsOfOperatorStake,
1184                    out,
1185                );
1186                <alloy::sol_types::sol_data::Uint<
1187                    16,
1188                > as alloy_sol_types::EventTopic>::encode_topic_preimage(
1189                    &rust.kickBIPsOfTotalStake,
1190                    out,
1191                );
1192            }
1193            #[inline]
1194            fn encode_topic(
1195                rust: &Self::RustType,
1196            ) -> alloy_sol_types::abi::token::WordToken {
1197                let mut out = alloy_sol_types::private::Vec::new();
1198                <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
1199                    rust,
1200                    &mut out,
1201                );
1202                alloy_sol_types::abi::token::WordToken(
1203                    alloy_sol_types::private::keccak256(out),
1204                )
1205            }
1206        }
1207    };
1208    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1209    /**```solidity
1210struct QuorumBitmapUpdate { uint32 updateBlockNumber; uint32 nextUpdateBlockNumber; uint192 quorumBitmap; }
1211```*/
1212    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1213    #[derive(Clone)]
1214    pub struct QuorumBitmapUpdate {
1215        #[allow(missing_docs)]
1216        pub updateBlockNumber: u32,
1217        #[allow(missing_docs)]
1218        pub nextUpdateBlockNumber: u32,
1219        #[allow(missing_docs)]
1220        pub quorumBitmap: alloy::sol_types::private::primitives::aliases::U192,
1221    }
1222    #[allow(
1223        non_camel_case_types,
1224        non_snake_case,
1225        clippy::pub_underscore_fields,
1226        clippy::style
1227    )]
1228    const _: () = {
1229        use alloy::sol_types as alloy_sol_types;
1230        #[doc(hidden)]
1231        type UnderlyingSolTuple<'a> = (
1232            alloy::sol_types::sol_data::Uint<32>,
1233            alloy::sol_types::sol_data::Uint<32>,
1234            alloy::sol_types::sol_data::Uint<192>,
1235        );
1236        #[doc(hidden)]
1237        type UnderlyingRustTuple<'a> = (
1238            u32,
1239            u32,
1240            alloy::sol_types::private::primitives::aliases::U192,
1241        );
1242        #[cfg(test)]
1243        #[allow(dead_code, unreachable_patterns)]
1244        fn _type_assertion(
1245            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1246        ) {
1247            match _t {
1248                alloy_sol_types::private::AssertTypeEq::<
1249                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1250                >(_) => {}
1251            }
1252        }
1253        #[automatically_derived]
1254        #[doc(hidden)]
1255        impl ::core::convert::From<QuorumBitmapUpdate> for UnderlyingRustTuple<'_> {
1256            fn from(value: QuorumBitmapUpdate) -> Self {
1257                (
1258                    value.updateBlockNumber,
1259                    value.nextUpdateBlockNumber,
1260                    value.quorumBitmap,
1261                )
1262            }
1263        }
1264        #[automatically_derived]
1265        #[doc(hidden)]
1266        impl ::core::convert::From<UnderlyingRustTuple<'_>> for QuorumBitmapUpdate {
1267            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1268                Self {
1269                    updateBlockNumber: tuple.0,
1270                    nextUpdateBlockNumber: tuple.1,
1271                    quorumBitmap: tuple.2,
1272                }
1273            }
1274        }
1275        #[automatically_derived]
1276        impl alloy_sol_types::SolValue for QuorumBitmapUpdate {
1277            type SolType = Self;
1278        }
1279        #[automatically_derived]
1280        impl alloy_sol_types::private::SolTypeValue<Self> for QuorumBitmapUpdate {
1281            #[inline]
1282            fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
1283                (
1284                    <alloy::sol_types::sol_data::Uint<
1285                        32,
1286                    > as alloy_sol_types::SolType>::tokenize(&self.updateBlockNumber),
1287                    <alloy::sol_types::sol_data::Uint<
1288                        32,
1289                    > as alloy_sol_types::SolType>::tokenize(
1290                        &self.nextUpdateBlockNumber,
1291                    ),
1292                    <alloy::sol_types::sol_data::Uint<
1293                        192,
1294                    > as alloy_sol_types::SolType>::tokenize(&self.quorumBitmap),
1295                )
1296            }
1297            #[inline]
1298            fn stv_abi_encoded_size(&self) -> usize {
1299                if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
1300                    return size;
1301                }
1302                let tuple = <UnderlyingRustTuple<
1303                    '_,
1304                > as ::core::convert::From<Self>>::from(self.clone());
1305                <UnderlyingSolTuple<
1306                    '_,
1307                > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
1308            }
1309            #[inline]
1310            fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
1311                <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
1312            }
1313            #[inline]
1314            fn stv_abi_encode_packed_to(
1315                &self,
1316                out: &mut alloy_sol_types::private::Vec<u8>,
1317            ) {
1318                let tuple = <UnderlyingRustTuple<
1319                    '_,
1320                > as ::core::convert::From<Self>>::from(self.clone());
1321                <UnderlyingSolTuple<
1322                    '_,
1323                > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
1324            }
1325            #[inline]
1326            fn stv_abi_packed_encoded_size(&self) -> usize {
1327                if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
1328                    return size;
1329                }
1330                let tuple = <UnderlyingRustTuple<
1331                    '_,
1332                > as ::core::convert::From<Self>>::from(self.clone());
1333                <UnderlyingSolTuple<
1334                    '_,
1335                > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
1336            }
1337        }
1338        #[automatically_derived]
1339        impl alloy_sol_types::SolType for QuorumBitmapUpdate {
1340            type RustType = Self;
1341            type Token<'a> = <UnderlyingSolTuple<
1342                'a,
1343            > as alloy_sol_types::SolType>::Token<'a>;
1344            const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
1345            const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
1346                '_,
1347            > as alloy_sol_types::SolType>::ENCODED_SIZE;
1348            const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
1349                '_,
1350            > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
1351            #[inline]
1352            fn valid_token(token: &Self::Token<'_>) -> bool {
1353                <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
1354            }
1355            #[inline]
1356            fn detokenize(token: Self::Token<'_>) -> Self::RustType {
1357                let tuple = <UnderlyingSolTuple<
1358                    '_,
1359                > as alloy_sol_types::SolType>::detokenize(token);
1360                <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
1361            }
1362        }
1363        #[automatically_derived]
1364        impl alloy_sol_types::SolStruct for QuorumBitmapUpdate {
1365            const NAME: &'static str = "QuorumBitmapUpdate";
1366            #[inline]
1367            fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
1368                alloy_sol_types::private::Cow::Borrowed(
1369                    "QuorumBitmapUpdate(uint32 updateBlockNumber,uint32 nextUpdateBlockNumber,uint192 quorumBitmap)",
1370                )
1371            }
1372            #[inline]
1373            fn eip712_components() -> alloy_sol_types::private::Vec<
1374                alloy_sol_types::private::Cow<'static, str>,
1375            > {
1376                alloy_sol_types::private::Vec::new()
1377            }
1378            #[inline]
1379            fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
1380                <Self as alloy_sol_types::SolStruct>::eip712_root_type()
1381            }
1382            #[inline]
1383            fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
1384                [
1385                    <alloy::sol_types::sol_data::Uint<
1386                        32,
1387                    > as alloy_sol_types::SolType>::eip712_data_word(
1388                            &self.updateBlockNumber,
1389                        )
1390                        .0,
1391                    <alloy::sol_types::sol_data::Uint<
1392                        32,
1393                    > as alloy_sol_types::SolType>::eip712_data_word(
1394                            &self.nextUpdateBlockNumber,
1395                        )
1396                        .0,
1397                    <alloy::sol_types::sol_data::Uint<
1398                        192,
1399                    > as alloy_sol_types::SolType>::eip712_data_word(&self.quorumBitmap)
1400                        .0,
1401                ]
1402                    .concat()
1403            }
1404        }
1405        #[automatically_derived]
1406        impl alloy_sol_types::EventTopic for QuorumBitmapUpdate {
1407            #[inline]
1408            fn topic_preimage_length(rust: &Self::RustType) -> usize {
1409                0usize
1410                    + <alloy::sol_types::sol_data::Uint<
1411                        32,
1412                    > as alloy_sol_types::EventTopic>::topic_preimage_length(
1413                        &rust.updateBlockNumber,
1414                    )
1415                    + <alloy::sol_types::sol_data::Uint<
1416                        32,
1417                    > as alloy_sol_types::EventTopic>::topic_preimage_length(
1418                        &rust.nextUpdateBlockNumber,
1419                    )
1420                    + <alloy::sol_types::sol_data::Uint<
1421                        192,
1422                    > as alloy_sol_types::EventTopic>::topic_preimage_length(
1423                        &rust.quorumBitmap,
1424                    )
1425            }
1426            #[inline]
1427            fn encode_topic_preimage(
1428                rust: &Self::RustType,
1429                out: &mut alloy_sol_types::private::Vec<u8>,
1430            ) {
1431                out.reserve(
1432                    <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
1433                );
1434                <alloy::sol_types::sol_data::Uint<
1435                    32,
1436                > as alloy_sol_types::EventTopic>::encode_topic_preimage(
1437                    &rust.updateBlockNumber,
1438                    out,
1439                );
1440                <alloy::sol_types::sol_data::Uint<
1441                    32,
1442                > as alloy_sol_types::EventTopic>::encode_topic_preimage(
1443                    &rust.nextUpdateBlockNumber,
1444                    out,
1445                );
1446                <alloy::sol_types::sol_data::Uint<
1447                    192,
1448                > as alloy_sol_types::EventTopic>::encode_topic_preimage(
1449                    &rust.quorumBitmap,
1450                    out,
1451                );
1452            }
1453            #[inline]
1454            fn encode_topic(
1455                rust: &Self::RustType,
1456            ) -> alloy_sol_types::abi::token::WordToken {
1457                let mut out = alloy_sol_types::private::Vec::new();
1458                <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
1459                    rust,
1460                    &mut out,
1461                );
1462                alloy_sol_types::abi::token::WordToken(
1463                    alloy_sol_types::private::keccak256(out),
1464                )
1465            }
1466        }
1467    };
1468    use alloy::contract as alloy_contract;
1469    /**Creates a new wrapper around an on-chain [`ISlashingRegistryCoordinatorTypes`](self) contract instance.
1470
1471See the [wrapper's documentation](`ISlashingRegistryCoordinatorTypesInstance`) for more details.*/
1472    #[inline]
1473    pub const fn new<
1474        T: alloy_contract::private::Transport + ::core::clone::Clone,
1475        P: alloy_contract::private::Provider<T, N>,
1476        N: alloy_contract::private::Network,
1477    >(
1478        address: alloy_sol_types::private::Address,
1479        provider: P,
1480    ) -> ISlashingRegistryCoordinatorTypesInstance<T, P, N> {
1481        ISlashingRegistryCoordinatorTypesInstance::<T, P, N>::new(address, provider)
1482    }
1483    /**A [`ISlashingRegistryCoordinatorTypes`](self) instance.
1484
1485Contains type-safe methods for interacting with an on-chain instance of the
1486[`ISlashingRegistryCoordinatorTypes`](self) contract located at a given `address`, using a given
1487provider `P`.
1488
1489If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!)
1490documentation on how to provide it), the `deploy` and `deploy_builder` methods can
1491be used to deploy a new instance of the contract.
1492
1493See the [module-level documentation](self) for all the available methods.*/
1494    #[derive(Clone)]
1495    pub struct ISlashingRegistryCoordinatorTypesInstance<
1496        T,
1497        P,
1498        N = alloy_contract::private::Ethereum,
1499    > {
1500        address: alloy_sol_types::private::Address,
1501        provider: P,
1502        _network_transport: ::core::marker::PhantomData<(N, T)>,
1503    }
1504    #[automatically_derived]
1505    impl<T, P, N> ::core::fmt::Debug
1506    for ISlashingRegistryCoordinatorTypesInstance<T, P, N> {
1507        #[inline]
1508        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1509            f.debug_tuple("ISlashingRegistryCoordinatorTypesInstance")
1510                .field(&self.address)
1511                .finish()
1512        }
1513    }
1514    /// Instantiation and getters/setters.
1515    #[automatically_derived]
1516    impl<
1517        T: alloy_contract::private::Transport + ::core::clone::Clone,
1518        P: alloy_contract::private::Provider<T, N>,
1519        N: alloy_contract::private::Network,
1520    > ISlashingRegistryCoordinatorTypesInstance<T, P, N> {
1521        /**Creates a new wrapper around an on-chain [`ISlashingRegistryCoordinatorTypes`](self) contract instance.
1522
1523See the [wrapper's documentation](`ISlashingRegistryCoordinatorTypesInstance`) for more details.*/
1524        #[inline]
1525        pub const fn new(
1526            address: alloy_sol_types::private::Address,
1527            provider: P,
1528        ) -> Self {
1529            Self {
1530                address,
1531                provider,
1532                _network_transport: ::core::marker::PhantomData,
1533            }
1534        }
1535        /// Returns a reference to the address.
1536        #[inline]
1537        pub const fn address(&self) -> &alloy_sol_types::private::Address {
1538            &self.address
1539        }
1540        /// Sets the address.
1541        #[inline]
1542        pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
1543            self.address = address;
1544        }
1545        /// Sets the address and returns `self`.
1546        pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
1547            self.set_address(address);
1548            self
1549        }
1550        /// Returns a reference to the provider.
1551        #[inline]
1552        pub const fn provider(&self) -> &P {
1553            &self.provider
1554        }
1555    }
1556    impl<
1557        T,
1558        P: ::core::clone::Clone,
1559        N,
1560    > ISlashingRegistryCoordinatorTypesInstance<T, &P, N> {
1561        /// Clones the provider and returns a new instance with the cloned provider.
1562        #[inline]
1563        pub fn with_cloned_provider(
1564            self,
1565        ) -> ISlashingRegistryCoordinatorTypesInstance<T, P, N> {
1566            ISlashingRegistryCoordinatorTypesInstance {
1567                address: self.address,
1568                provider: ::core::clone::Clone::clone(&self.provider),
1569                _network_transport: ::core::marker::PhantomData,
1570            }
1571        }
1572    }
1573    /// Function calls.
1574    #[automatically_derived]
1575    impl<
1576        T: alloy_contract::private::Transport + ::core::clone::Clone,
1577        P: alloy_contract::private::Provider<T, N>,
1578        N: alloy_contract::private::Network,
1579    > ISlashingRegistryCoordinatorTypesInstance<T, P, N> {
1580        /// Creates a new call builder using this contract instance's provider and address.
1581        ///
1582        /// Note that the call can be any function call, not just those defined in this
1583        /// contract. Prefer using the other methods for building type-safe contract calls.
1584        pub fn call_builder<C: alloy_sol_types::SolCall>(
1585            &self,
1586            call: &C,
1587        ) -> alloy_contract::SolCallBuilder<T, &P, C, N> {
1588            alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
1589        }
1590    }
1591    /// Event filters.
1592    #[automatically_derived]
1593    impl<
1594        T: alloy_contract::private::Transport + ::core::clone::Clone,
1595        P: alloy_contract::private::Provider<T, N>,
1596        N: alloy_contract::private::Network,
1597    > ISlashingRegistryCoordinatorTypesInstance<T, P, N> {
1598        /// Creates a new event filter using this contract instance's provider and address.
1599        ///
1600        /// Note that the type can be any event, not just those defined in this contract.
1601        /// Prefer using the other methods for building type-safe event filters.
1602        pub fn event_filter<E: alloy_sol_types::SolEvent>(
1603            &self,
1604        ) -> alloy_contract::Event<T, &P, E, N> {
1605            alloy_contract::Event::new_sol(&self.provider, &self.address)
1606        }
1607    }
1608}
1609///Module containing a contract's types and functions.
1610/**
1611
1612```solidity
1613library IStakeRegistryTypes {
1614    type StakeType is uint8;
1615    struct StrategyParams { address strategy; uint96 multiplier; }
1616}
1617```*/
1618#[allow(
1619    non_camel_case_types,
1620    non_snake_case,
1621    clippy::pub_underscore_fields,
1622    clippy::style,
1623    clippy::empty_structs_with_brackets
1624)]
1625pub mod IStakeRegistryTypes {
1626    use super::*;
1627    use alloy::sol_types as alloy_sol_types;
1628    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1629    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1630    #[derive(Clone)]
1631    pub struct StakeType(u8);
1632    const _: () = {
1633        use alloy::sol_types as alloy_sol_types;
1634        #[automatically_derived]
1635        impl alloy_sol_types::private::SolTypeValue<StakeType> for u8 {
1636            #[inline]
1637            fn stv_to_tokens(
1638                &self,
1639            ) -> <alloy::sol_types::sol_data::Uint<
1640                8,
1641            > as alloy_sol_types::SolType>::Token<'_> {
1642                alloy_sol_types::private::SolTypeValue::<
1643                    alloy::sol_types::sol_data::Uint<8>,
1644                >::stv_to_tokens(self)
1645            }
1646            #[inline]
1647            fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
1648                <alloy::sol_types::sol_data::Uint<
1649                    8,
1650                > as alloy_sol_types::SolType>::tokenize(self)
1651                    .0
1652            }
1653            #[inline]
1654            fn stv_abi_encode_packed_to(
1655                &self,
1656                out: &mut alloy_sol_types::private::Vec<u8>,
1657            ) {
1658                <alloy::sol_types::sol_data::Uint<
1659                    8,
1660                > as alloy_sol_types::SolType>::abi_encode_packed_to(self, out)
1661            }
1662            #[inline]
1663            fn stv_abi_packed_encoded_size(&self) -> usize {
1664                <alloy::sol_types::sol_data::Uint<
1665                    8,
1666                > as alloy_sol_types::SolType>::abi_encoded_size(self)
1667            }
1668        }
1669        #[automatically_derived]
1670        impl StakeType {
1671            /// The Solidity type name.
1672            pub const NAME: &'static str = stringify!(@ name);
1673            /// Convert from the underlying value type.
1674            #[inline]
1675            pub const fn from(value: u8) -> Self {
1676                Self(value)
1677            }
1678            /// Return the underlying value.
1679            #[inline]
1680            pub const fn into(self) -> u8 {
1681                self.0
1682            }
1683            /// Return the single encoding of this value, delegating to the
1684            /// underlying type.
1685            #[inline]
1686            pub fn abi_encode(&self) -> alloy_sol_types::private::Vec<u8> {
1687                <Self as alloy_sol_types::SolType>::abi_encode(&self.0)
1688            }
1689            /// Return the packed encoding of this value, delegating to the
1690            /// underlying type.
1691            #[inline]
1692            pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec<u8> {
1693                <Self as alloy_sol_types::SolType>::abi_encode_packed(&self.0)
1694            }
1695        }
1696        #[automatically_derived]
1697        impl alloy_sol_types::SolType for StakeType {
1698            type RustType = u8;
1699            type Token<'a> = <alloy::sol_types::sol_data::Uint<
1700                8,
1701            > as alloy_sol_types::SolType>::Token<'a>;
1702            const SOL_NAME: &'static str = Self::NAME;
1703            const ENCODED_SIZE: Option<usize> = <alloy::sol_types::sol_data::Uint<
1704                8,
1705            > as alloy_sol_types::SolType>::ENCODED_SIZE;
1706            const PACKED_ENCODED_SIZE: Option<usize> = <alloy::sol_types::sol_data::Uint<
1707                8,
1708            > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
1709            #[inline]
1710            fn valid_token(token: &Self::Token<'_>) -> bool {
1711                Self::type_check(token).is_ok()
1712            }
1713            #[inline]
1714            fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> {
1715                <alloy::sol_types::sol_data::Uint<
1716                    8,
1717                > as alloy_sol_types::SolType>::type_check(token)
1718            }
1719            #[inline]
1720            fn detokenize(token: Self::Token<'_>) -> Self::RustType {
1721                <alloy::sol_types::sol_data::Uint<
1722                    8,
1723                > as alloy_sol_types::SolType>::detokenize(token)
1724            }
1725        }
1726        #[automatically_derived]
1727        impl alloy_sol_types::EventTopic for StakeType {
1728            #[inline]
1729            fn topic_preimage_length(rust: &Self::RustType) -> usize {
1730                <alloy::sol_types::sol_data::Uint<
1731                    8,
1732                > as alloy_sol_types::EventTopic>::topic_preimage_length(rust)
1733            }
1734            #[inline]
1735            fn encode_topic_preimage(
1736                rust: &Self::RustType,
1737                out: &mut alloy_sol_types::private::Vec<u8>,
1738            ) {
1739                <alloy::sol_types::sol_data::Uint<
1740                    8,
1741                > as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out)
1742            }
1743            #[inline]
1744            fn encode_topic(
1745                rust: &Self::RustType,
1746            ) -> alloy_sol_types::abi::token::WordToken {
1747                <alloy::sol_types::sol_data::Uint<
1748                    8,
1749                > as alloy_sol_types::EventTopic>::encode_topic(rust)
1750            }
1751        }
1752    };
1753    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1754    /**```solidity
1755struct StrategyParams { address strategy; uint96 multiplier; }
1756```*/
1757    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1758    #[derive(Clone)]
1759    pub struct StrategyParams {
1760        #[allow(missing_docs)]
1761        pub strategy: alloy::sol_types::private::Address,
1762        #[allow(missing_docs)]
1763        pub multiplier: alloy::sol_types::private::primitives::aliases::U96,
1764    }
1765    #[allow(
1766        non_camel_case_types,
1767        non_snake_case,
1768        clippy::pub_underscore_fields,
1769        clippy::style
1770    )]
1771    const _: () = {
1772        use alloy::sol_types as alloy_sol_types;
1773        #[doc(hidden)]
1774        type UnderlyingSolTuple<'a> = (
1775            alloy::sol_types::sol_data::Address,
1776            alloy::sol_types::sol_data::Uint<96>,
1777        );
1778        #[doc(hidden)]
1779        type UnderlyingRustTuple<'a> = (
1780            alloy::sol_types::private::Address,
1781            alloy::sol_types::private::primitives::aliases::U96,
1782        );
1783        #[cfg(test)]
1784        #[allow(dead_code, unreachable_patterns)]
1785        fn _type_assertion(
1786            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1787        ) {
1788            match _t {
1789                alloy_sol_types::private::AssertTypeEq::<
1790                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1791                >(_) => {}
1792            }
1793        }
1794        #[automatically_derived]
1795        #[doc(hidden)]
1796        impl ::core::convert::From<StrategyParams> for UnderlyingRustTuple<'_> {
1797            fn from(value: StrategyParams) -> Self {
1798                (value.strategy, value.multiplier)
1799            }
1800        }
1801        #[automatically_derived]
1802        #[doc(hidden)]
1803        impl ::core::convert::From<UnderlyingRustTuple<'_>> for StrategyParams {
1804            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1805                Self {
1806                    strategy: tuple.0,
1807                    multiplier: tuple.1,
1808                }
1809            }
1810        }
1811        #[automatically_derived]
1812        impl alloy_sol_types::SolValue for StrategyParams {
1813            type SolType = Self;
1814        }
1815        #[automatically_derived]
1816        impl alloy_sol_types::private::SolTypeValue<Self> for StrategyParams {
1817            #[inline]
1818            fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
1819                (
1820                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
1821                        &self.strategy,
1822                    ),
1823                    <alloy::sol_types::sol_data::Uint<
1824                        96,
1825                    > as alloy_sol_types::SolType>::tokenize(&self.multiplier),
1826                )
1827            }
1828            #[inline]
1829            fn stv_abi_encoded_size(&self) -> usize {
1830                if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
1831                    return size;
1832                }
1833                let tuple = <UnderlyingRustTuple<
1834                    '_,
1835                > as ::core::convert::From<Self>>::from(self.clone());
1836                <UnderlyingSolTuple<
1837                    '_,
1838                > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
1839            }
1840            #[inline]
1841            fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
1842                <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
1843            }
1844            #[inline]
1845            fn stv_abi_encode_packed_to(
1846                &self,
1847                out: &mut alloy_sol_types::private::Vec<u8>,
1848            ) {
1849                let tuple = <UnderlyingRustTuple<
1850                    '_,
1851                > as ::core::convert::From<Self>>::from(self.clone());
1852                <UnderlyingSolTuple<
1853                    '_,
1854                > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
1855            }
1856            #[inline]
1857            fn stv_abi_packed_encoded_size(&self) -> usize {
1858                if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
1859                    return size;
1860                }
1861                let tuple = <UnderlyingRustTuple<
1862                    '_,
1863                > as ::core::convert::From<Self>>::from(self.clone());
1864                <UnderlyingSolTuple<
1865                    '_,
1866                > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
1867            }
1868        }
1869        #[automatically_derived]
1870        impl alloy_sol_types::SolType for StrategyParams {
1871            type RustType = Self;
1872            type Token<'a> = <UnderlyingSolTuple<
1873                'a,
1874            > as alloy_sol_types::SolType>::Token<'a>;
1875            const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
1876            const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
1877                '_,
1878            > as alloy_sol_types::SolType>::ENCODED_SIZE;
1879            const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
1880                '_,
1881            > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
1882            #[inline]
1883            fn valid_token(token: &Self::Token<'_>) -> bool {
1884                <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
1885            }
1886            #[inline]
1887            fn detokenize(token: Self::Token<'_>) -> Self::RustType {
1888                let tuple = <UnderlyingSolTuple<
1889                    '_,
1890                > as alloy_sol_types::SolType>::detokenize(token);
1891                <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
1892            }
1893        }
1894        #[automatically_derived]
1895        impl alloy_sol_types::SolStruct for StrategyParams {
1896            const NAME: &'static str = "StrategyParams";
1897            #[inline]
1898            fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
1899                alloy_sol_types::private::Cow::Borrowed(
1900                    "StrategyParams(address strategy,uint96 multiplier)",
1901                )
1902            }
1903            #[inline]
1904            fn eip712_components() -> alloy_sol_types::private::Vec<
1905                alloy_sol_types::private::Cow<'static, str>,
1906            > {
1907                alloy_sol_types::private::Vec::new()
1908            }
1909            #[inline]
1910            fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
1911                <Self as alloy_sol_types::SolStruct>::eip712_root_type()
1912            }
1913            #[inline]
1914            fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
1915                [
1916                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::eip712_data_word(
1917                            &self.strategy,
1918                        )
1919                        .0,
1920                    <alloy::sol_types::sol_data::Uint<
1921                        96,
1922                    > as alloy_sol_types::SolType>::eip712_data_word(&self.multiplier)
1923                        .0,
1924                ]
1925                    .concat()
1926            }
1927        }
1928        #[automatically_derived]
1929        impl alloy_sol_types::EventTopic for StrategyParams {
1930            #[inline]
1931            fn topic_preimage_length(rust: &Self::RustType) -> usize {
1932                0usize
1933                    + <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::topic_preimage_length(
1934                        &rust.strategy,
1935                    )
1936                    + <alloy::sol_types::sol_data::Uint<
1937                        96,
1938                    > as alloy_sol_types::EventTopic>::topic_preimage_length(
1939                        &rust.multiplier,
1940                    )
1941            }
1942            #[inline]
1943            fn encode_topic_preimage(
1944                rust: &Self::RustType,
1945                out: &mut alloy_sol_types::private::Vec<u8>,
1946            ) {
1947                out.reserve(
1948                    <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
1949                );
1950                <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic_preimage(
1951                    &rust.strategy,
1952                    out,
1953                );
1954                <alloy::sol_types::sol_data::Uint<
1955                    96,
1956                > as alloy_sol_types::EventTopic>::encode_topic_preimage(
1957                    &rust.multiplier,
1958                    out,
1959                );
1960            }
1961            #[inline]
1962            fn encode_topic(
1963                rust: &Self::RustType,
1964            ) -> alloy_sol_types::abi::token::WordToken {
1965                let mut out = alloy_sol_types::private::Vec::new();
1966                <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
1967                    rust,
1968                    &mut out,
1969                );
1970                alloy_sol_types::abi::token::WordToken(
1971                    alloy_sol_types::private::keccak256(out),
1972                )
1973            }
1974        }
1975    };
1976    use alloy::contract as alloy_contract;
1977    /**Creates a new wrapper around an on-chain [`IStakeRegistryTypes`](self) contract instance.
1978
1979See the [wrapper's documentation](`IStakeRegistryTypesInstance`) for more details.*/
1980    #[inline]
1981    pub const fn new<
1982        T: alloy_contract::private::Transport + ::core::clone::Clone,
1983        P: alloy_contract::private::Provider<T, N>,
1984        N: alloy_contract::private::Network,
1985    >(
1986        address: alloy_sol_types::private::Address,
1987        provider: P,
1988    ) -> IStakeRegistryTypesInstance<T, P, N> {
1989        IStakeRegistryTypesInstance::<T, P, N>::new(address, provider)
1990    }
1991    /**A [`IStakeRegistryTypes`](self) instance.
1992
1993Contains type-safe methods for interacting with an on-chain instance of the
1994[`IStakeRegistryTypes`](self) contract located at a given `address`, using a given
1995provider `P`.
1996
1997If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!)
1998documentation on how to provide it), the `deploy` and `deploy_builder` methods can
1999be used to deploy a new instance of the contract.
2000
2001See the [module-level documentation](self) for all the available methods.*/
2002    #[derive(Clone)]
2003    pub struct IStakeRegistryTypesInstance<T, P, N = alloy_contract::private::Ethereum> {
2004        address: alloy_sol_types::private::Address,
2005        provider: P,
2006        _network_transport: ::core::marker::PhantomData<(N, T)>,
2007    }
2008    #[automatically_derived]
2009    impl<T, P, N> ::core::fmt::Debug for IStakeRegistryTypesInstance<T, P, N> {
2010        #[inline]
2011        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2012            f.debug_tuple("IStakeRegistryTypesInstance").field(&self.address).finish()
2013        }
2014    }
2015    /// Instantiation and getters/setters.
2016    #[automatically_derived]
2017    impl<
2018        T: alloy_contract::private::Transport + ::core::clone::Clone,
2019        P: alloy_contract::private::Provider<T, N>,
2020        N: alloy_contract::private::Network,
2021    > IStakeRegistryTypesInstance<T, P, N> {
2022        /**Creates a new wrapper around an on-chain [`IStakeRegistryTypes`](self) contract instance.
2023
2024See the [wrapper's documentation](`IStakeRegistryTypesInstance`) for more details.*/
2025        #[inline]
2026        pub const fn new(
2027            address: alloy_sol_types::private::Address,
2028            provider: P,
2029        ) -> Self {
2030            Self {
2031                address,
2032                provider,
2033                _network_transport: ::core::marker::PhantomData,
2034            }
2035        }
2036        /// Returns a reference to the address.
2037        #[inline]
2038        pub const fn address(&self) -> &alloy_sol_types::private::Address {
2039            &self.address
2040        }
2041        /// Sets the address.
2042        #[inline]
2043        pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
2044            self.address = address;
2045        }
2046        /// Sets the address and returns `self`.
2047        pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
2048            self.set_address(address);
2049            self
2050        }
2051        /// Returns a reference to the provider.
2052        #[inline]
2053        pub const fn provider(&self) -> &P {
2054            &self.provider
2055        }
2056    }
2057    impl<T, P: ::core::clone::Clone, N> IStakeRegistryTypesInstance<T, &P, N> {
2058        /// Clones the provider and returns a new instance with the cloned provider.
2059        #[inline]
2060        pub fn with_cloned_provider(self) -> IStakeRegistryTypesInstance<T, P, N> {
2061            IStakeRegistryTypesInstance {
2062                address: self.address,
2063                provider: ::core::clone::Clone::clone(&self.provider),
2064                _network_transport: ::core::marker::PhantomData,
2065            }
2066        }
2067    }
2068    /// Function calls.
2069    #[automatically_derived]
2070    impl<
2071        T: alloy_contract::private::Transport + ::core::clone::Clone,
2072        P: alloy_contract::private::Provider<T, N>,
2073        N: alloy_contract::private::Network,
2074    > IStakeRegistryTypesInstance<T, P, N> {
2075        /// Creates a new call builder using this contract instance's provider and address.
2076        ///
2077        /// Note that the call can be any function call, not just those defined in this
2078        /// contract. Prefer using the other methods for building type-safe contract calls.
2079        pub fn call_builder<C: alloy_sol_types::SolCall>(
2080            &self,
2081            call: &C,
2082        ) -> alloy_contract::SolCallBuilder<T, &P, C, N> {
2083            alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
2084        }
2085    }
2086    /// Event filters.
2087    #[automatically_derived]
2088    impl<
2089        T: alloy_contract::private::Transport + ::core::clone::Clone,
2090        P: alloy_contract::private::Provider<T, N>,
2091        N: alloy_contract::private::Network,
2092    > IStakeRegistryTypesInstance<T, P, N> {
2093        /// Creates a new event filter using this contract instance's provider and address.
2094        ///
2095        /// Note that the type can be any event, not just those defined in this contract.
2096        /// Prefer using the other methods for building type-safe event filters.
2097        pub fn event_filter<E: alloy_sol_types::SolEvent>(
2098            &self,
2099        ) -> alloy_contract::Event<T, &P, E, N> {
2100            alloy_contract::Event::new_sol(&self.provider, &self.address)
2101        }
2102    }
2103}
2104/**
2105
2106Generated by the following Solidity interface...
2107```solidity
2108library BN254 {
2109    struct G1Point {
2110        uint256 X;
2111        uint256 Y;
2112    }
2113}
2114
2115library ISlashingRegistryCoordinatorTypes {
2116    type OperatorStatus is uint8;
2117    struct OperatorInfo {
2118        bytes32 operatorId;
2119        OperatorStatus status;
2120    }
2121    struct OperatorKickParam {
2122        uint8 quorumNumber;
2123        address operator;
2124    }
2125    struct OperatorSetParam {
2126        uint32 maxOperatorCount;
2127        uint16 kickBIPsOfOperatorStake;
2128        uint16 kickBIPsOfTotalStake;
2129    }
2130    struct QuorumBitmapUpdate {
2131        uint32 updateBlockNumber;
2132        uint32 nextUpdateBlockNumber;
2133        uint192 quorumBitmap;
2134    }
2135}
2136
2137library IStakeRegistryTypes {
2138    type StakeType is uint8;
2139    struct StrategyParams {
2140        address strategy;
2141        uint96 multiplier;
2142    }
2143}
2144
2145interface SlashingRegistryCoordinator {
2146    error AlreadyRegisteredForQuorums();
2147    error BitmapCannotBeZero();
2148    error BitmapEmpty();
2149    error BitmapUpdateIsAfterBlockNumber();
2150    error BitmapValueTooLarge();
2151    error BytesArrayLengthTooLong();
2152    error BytesArrayNotOrdered();
2153    error CannotChurnSelf();
2154    error CannotKickOperatorAboveThreshold();
2155    error CannotReregisterYet();
2156    error ChurnApproverSaltUsed();
2157    error CurrentlyPaused();
2158    error ExpModFailed();
2159    error InputAddressZero();
2160    error InputLengthMismatch();
2161    error InsufficientStakeForChurn();
2162    error InvalidAVS();
2163    error InvalidNewPausedStatus();
2164    error InvalidRegistrationType();
2165    error InvalidShortString();
2166    error InvalidSignature();
2167    error LookAheadPeriodTooLong();
2168    error MaxOperatorCountReached();
2169    error MaxQuorumsReached();
2170    error NextBitmapUpdateIsBeforeBlockNumber();
2171    error NotRegistered();
2172    error NotRegisteredForQuorum();
2173    error NotSorted();
2174    error OnlyAllocationManager();
2175    error OnlyEjector();
2176    error OnlyPauser();
2177    error OnlyUnpauser();
2178    error OperatorNotRegistered();
2179    error QuorumDoesNotExist();
2180    error QuorumOperatorCountMismatch();
2181    error SignatureExpired();
2182    error StringTooLong(string str);
2183
2184    event AVSUpdated(address prevAVS, address newAVS);
2185    event ChurnApproverUpdated(address prevChurnApprover, address newChurnApprover);
2186    event EIP712DomainChanged();
2187    event EjectionCooldownUpdated(uint256 prevEjectionCooldown, uint256 newEjectionCooldown);
2188    event EjectorUpdated(address prevEjector, address newEjector);
2189    event Initialized(uint8 version);
2190    event OperatorDeregistered(address indexed operator, bytes32 indexed operatorId);
2191    event OperatorRegistered(address indexed operator, bytes32 indexed operatorId);
2192    event OperatorSetParamsUpdated(uint8 indexed quorumNumber, ISlashingRegistryCoordinatorTypes.OperatorSetParam operatorSetParams);
2193    event OperatorSocketUpdate(bytes32 indexed operatorId, string socket);
2194    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
2195    event Paused(address indexed account, uint256 newPausedStatus);
2196    event QuorumBlockNumberUpdated(uint8 indexed quorumNumber, uint256 blocknumber);
2197    event QuorumCreated(uint8 indexed quorumNumber, ISlashingRegistryCoordinatorTypes.OperatorSetParam operatorSetParams, uint96 minimumStake, IStakeRegistryTypes.StrategyParams[] strategyParams, IStakeRegistryTypes.StakeType stakeType, uint32 lookAheadPeriod);
2198    event Unpaused(address indexed account, uint256 newPausedStatus);
2199
2200    constructor(address _stakeRegistry, address _blsApkRegistry, address _indexRegistry, address _socketRegistry, address _allocationManager, address _pauserRegistry, string _version);
2201
2202    function OPERATOR_CHURN_APPROVAL_TYPEHASH() external view returns (bytes32);
2203    function PUBKEY_REGISTRATION_TYPEHASH() external view returns (bytes32);
2204    function allocationManager() external view returns (address);
2205    function avs() external view returns (address);
2206    function blsApkRegistry() external view returns (address);
2207    function calculateOperatorChurnApprovalDigestHash(address registeringOperator, bytes32 registeringOperatorId, ISlashingRegistryCoordinatorTypes.OperatorKickParam[] memory operatorKickParams, bytes32 salt, uint256 expiry) external view returns (bytes32);
2208    function calculatePubkeyRegistrationMessageHash(address operator) external view returns (bytes32);
2209    function churnApprover() external view returns (address);
2210    function createSlashableStakeQuorum(ISlashingRegistryCoordinatorTypes.OperatorSetParam memory operatorSetParams, uint96 minimumStake, IStakeRegistryTypes.StrategyParams[] memory strategyParams, uint32 lookAheadPeriod) external;
2211    function createTotalDelegatedStakeQuorum(ISlashingRegistryCoordinatorTypes.OperatorSetParam memory operatorSetParams, uint96 minimumStake, IStakeRegistryTypes.StrategyParams[] memory strategyParams) external;
2212    function deregisterOperator(address operator, address avs, uint32[] memory operatorSetIds) external;
2213    function domainSeparator() external view returns (bytes32);
2214    function eip712Domain() external view returns (bytes1 fields, string memory name, string memory version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] memory extensions);
2215    function ejectOperator(address operator, bytes memory quorumNumbers) external;
2216    function ejectionCooldown() external view returns (uint256);
2217    function ejector() external view returns (address);
2218    function getCurrentQuorumBitmap(bytes32 operatorId) external view returns (uint192);
2219    function getOperator(address operator) external view returns (ISlashingRegistryCoordinatorTypes.OperatorInfo memory);
2220    function getOperatorFromId(bytes32 operatorId) external view returns (address);
2221    function getOperatorId(address operator) external view returns (bytes32);
2222    function getOperatorSetParams(uint8 quorumNumber) external view returns (ISlashingRegistryCoordinatorTypes.OperatorSetParam memory);
2223    function getOperatorStatus(address operator) external view returns (ISlashingRegistryCoordinatorTypes.OperatorStatus);
2224    function getQuorumBitmapAtBlockNumberByIndex(bytes32 operatorId, uint32 blockNumber, uint256 index) external view returns (uint192);
2225    function getQuorumBitmapHistoryLength(bytes32 operatorId) external view returns (uint256);
2226    function getQuorumBitmapIndicesAtBlockNumber(uint32 blockNumber, bytes32[] memory operatorIds) external view returns (uint32[] memory);
2227    function getQuorumBitmapUpdateByIndex(bytes32 operatorId, uint256 index) external view returns (ISlashingRegistryCoordinatorTypes.QuorumBitmapUpdate memory);
2228    function indexRegistry() external view returns (address);
2229    function initialize(address initialOwner, address churnApprover, address ejector, uint256 initialPausedStatus, address avs) external;
2230    function isChurnApproverSaltUsed(bytes32) external view returns (bool);
2231    function lastEjectionTimestamp(address) external view returns (uint256);
2232    function owner() external view returns (address);
2233    function pause(uint256 newPausedStatus) external;
2234    function pauseAll() external;
2235    function paused(uint8 index) external view returns (bool);
2236    function paused() external view returns (uint256);
2237    function pauserRegistry() external view returns (address);
2238    function pubkeyRegistrationMessageHash(address operator) external view returns (BN254.G1Point memory);
2239    function quorumCount() external view returns (uint8);
2240    function quorumUpdateBlockNumber(uint8) external view returns (uint256);
2241    function registerOperator(address operator, address avs, uint32[] memory operatorSetIds, bytes memory data) external;
2242    function renounceOwnership() external;
2243    function setAVS(address _avs) external;
2244    function setChurnApprover(address _churnApprover) external;
2245    function setEjectionCooldown(uint256 _ejectionCooldown) external;
2246    function setEjector(address _ejector) external;
2247    function setOperatorSetParams(uint8 quorumNumber, ISlashingRegistryCoordinatorTypes.OperatorSetParam memory operatorSetParams) external;
2248    function socketRegistry() external view returns (address);
2249    function stakeRegistry() external view returns (address);
2250    function supportsAVS(address _avs) external view returns (bool);
2251    function transferOwnership(address newOwner) external;
2252    function unpause(uint256 newPausedStatus) external;
2253    function updateOperators(address[] memory operators) external;
2254    function updateOperatorsForQuorum(address[][] memory operatorsPerQuorum, bytes memory quorumNumbers) external;
2255    function updateSocket(string memory socket) external;
2256    function version() external view returns (string memory);
2257}
2258```
2259
2260...which was generated by the following JSON ABI:
2261```json
2262[
2263  {
2264    "type": "constructor",
2265    "inputs": [
2266      {
2267        "name": "_stakeRegistry",
2268        "type": "address",
2269        "internalType": "contract IStakeRegistry"
2270      },
2271      {
2272        "name": "_blsApkRegistry",
2273        "type": "address",
2274        "internalType": "contract IBLSApkRegistry"
2275      },
2276      {
2277        "name": "_indexRegistry",
2278        "type": "address",
2279        "internalType": "contract IIndexRegistry"
2280      },
2281      {
2282        "name": "_socketRegistry",
2283        "type": "address",
2284        "internalType": "contract ISocketRegistry"
2285      },
2286      {
2287        "name": "_allocationManager",
2288        "type": "address",
2289        "internalType": "contract IAllocationManager"
2290      },
2291      {
2292        "name": "_pauserRegistry",
2293        "type": "address",
2294        "internalType": "contract IPauserRegistry"
2295      },
2296      {
2297        "name": "_version",
2298        "type": "string",
2299        "internalType": "string"
2300      }
2301    ],
2302    "stateMutability": "nonpayable"
2303  },
2304  {
2305    "type": "function",
2306    "name": "OPERATOR_CHURN_APPROVAL_TYPEHASH",
2307    "inputs": [],
2308    "outputs": [
2309      {
2310        "name": "",
2311        "type": "bytes32",
2312        "internalType": "bytes32"
2313      }
2314    ],
2315    "stateMutability": "view"
2316  },
2317  {
2318    "type": "function",
2319    "name": "PUBKEY_REGISTRATION_TYPEHASH",
2320    "inputs": [],
2321    "outputs": [
2322      {
2323        "name": "",
2324        "type": "bytes32",
2325        "internalType": "bytes32"
2326      }
2327    ],
2328    "stateMutability": "view"
2329  },
2330  {
2331    "type": "function",
2332    "name": "allocationManager",
2333    "inputs": [],
2334    "outputs": [
2335      {
2336        "name": "",
2337        "type": "address",
2338        "internalType": "contract IAllocationManager"
2339      }
2340    ],
2341    "stateMutability": "view"
2342  },
2343  {
2344    "type": "function",
2345    "name": "avs",
2346    "inputs": [],
2347    "outputs": [
2348      {
2349        "name": "",
2350        "type": "address",
2351        "internalType": "address"
2352      }
2353    ],
2354    "stateMutability": "view"
2355  },
2356  {
2357    "type": "function",
2358    "name": "blsApkRegistry",
2359    "inputs": [],
2360    "outputs": [
2361      {
2362        "name": "",
2363        "type": "address",
2364        "internalType": "contract IBLSApkRegistry"
2365      }
2366    ],
2367    "stateMutability": "view"
2368  },
2369  {
2370    "type": "function",
2371    "name": "calculateOperatorChurnApprovalDigestHash",
2372    "inputs": [
2373      {
2374        "name": "registeringOperator",
2375        "type": "address",
2376        "internalType": "address"
2377      },
2378      {
2379        "name": "registeringOperatorId",
2380        "type": "bytes32",
2381        "internalType": "bytes32"
2382      },
2383      {
2384        "name": "operatorKickParams",
2385        "type": "tuple[]",
2386        "internalType": "struct ISlashingRegistryCoordinatorTypes.OperatorKickParam[]",
2387        "components": [
2388          {
2389            "name": "quorumNumber",
2390            "type": "uint8",
2391            "internalType": "uint8"
2392          },
2393          {
2394            "name": "operator",
2395            "type": "address",
2396            "internalType": "address"
2397          }
2398        ]
2399      },
2400      {
2401        "name": "salt",
2402        "type": "bytes32",
2403        "internalType": "bytes32"
2404      },
2405      {
2406        "name": "expiry",
2407        "type": "uint256",
2408        "internalType": "uint256"
2409      }
2410    ],
2411    "outputs": [
2412      {
2413        "name": "",
2414        "type": "bytes32",
2415        "internalType": "bytes32"
2416      }
2417    ],
2418    "stateMutability": "view"
2419  },
2420  {
2421    "type": "function",
2422    "name": "calculatePubkeyRegistrationMessageHash",
2423    "inputs": [
2424      {
2425        "name": "operator",
2426        "type": "address",
2427        "internalType": "address"
2428      }
2429    ],
2430    "outputs": [
2431      {
2432        "name": "",
2433        "type": "bytes32",
2434        "internalType": "bytes32"
2435      }
2436    ],
2437    "stateMutability": "view"
2438  },
2439  {
2440    "type": "function",
2441    "name": "churnApprover",
2442    "inputs": [],
2443    "outputs": [
2444      {
2445        "name": "",
2446        "type": "address",
2447        "internalType": "address"
2448      }
2449    ],
2450    "stateMutability": "view"
2451  },
2452  {
2453    "type": "function",
2454    "name": "createSlashableStakeQuorum",
2455    "inputs": [
2456      {
2457        "name": "operatorSetParams",
2458        "type": "tuple",
2459        "internalType": "struct ISlashingRegistryCoordinatorTypes.OperatorSetParam",
2460        "components": [
2461          {
2462            "name": "maxOperatorCount",
2463            "type": "uint32",
2464            "internalType": "uint32"
2465          },
2466          {
2467            "name": "kickBIPsOfOperatorStake",
2468            "type": "uint16",
2469            "internalType": "uint16"
2470          },
2471          {
2472            "name": "kickBIPsOfTotalStake",
2473            "type": "uint16",
2474            "internalType": "uint16"
2475          }
2476        ]
2477      },
2478      {
2479        "name": "minimumStake",
2480        "type": "uint96",
2481        "internalType": "uint96"
2482      },
2483      {
2484        "name": "strategyParams",
2485        "type": "tuple[]",
2486        "internalType": "struct IStakeRegistryTypes.StrategyParams[]",
2487        "components": [
2488          {
2489            "name": "strategy",
2490            "type": "address",
2491            "internalType": "contract IStrategy"
2492          },
2493          {
2494            "name": "multiplier",
2495            "type": "uint96",
2496            "internalType": "uint96"
2497          }
2498        ]
2499      },
2500      {
2501        "name": "lookAheadPeriod",
2502        "type": "uint32",
2503        "internalType": "uint32"
2504      }
2505    ],
2506    "outputs": [],
2507    "stateMutability": "nonpayable"
2508  },
2509  {
2510    "type": "function",
2511    "name": "createTotalDelegatedStakeQuorum",
2512    "inputs": [
2513      {
2514        "name": "operatorSetParams",
2515        "type": "tuple",
2516        "internalType": "struct ISlashingRegistryCoordinatorTypes.OperatorSetParam",
2517        "components": [
2518          {
2519            "name": "maxOperatorCount",
2520            "type": "uint32",
2521            "internalType": "uint32"
2522          },
2523          {
2524            "name": "kickBIPsOfOperatorStake",
2525            "type": "uint16",
2526            "internalType": "uint16"
2527          },
2528          {
2529            "name": "kickBIPsOfTotalStake",
2530            "type": "uint16",
2531            "internalType": "uint16"
2532          }
2533        ]
2534      },
2535      {
2536        "name": "minimumStake",
2537        "type": "uint96",
2538        "internalType": "uint96"
2539      },
2540      {
2541        "name": "strategyParams",
2542        "type": "tuple[]",
2543        "internalType": "struct IStakeRegistryTypes.StrategyParams[]",
2544        "components": [
2545          {
2546            "name": "strategy",
2547            "type": "address",
2548            "internalType": "contract IStrategy"
2549          },
2550          {
2551            "name": "multiplier",
2552            "type": "uint96",
2553            "internalType": "uint96"
2554          }
2555        ]
2556      }
2557    ],
2558    "outputs": [],
2559    "stateMutability": "nonpayable"
2560  },
2561  {
2562    "type": "function",
2563    "name": "deregisterOperator",
2564    "inputs": [
2565      {
2566        "name": "operator",
2567        "type": "address",
2568        "internalType": "address"
2569      },
2570      {
2571        "name": "avs",
2572        "type": "address",
2573        "internalType": "address"
2574      },
2575      {
2576        "name": "operatorSetIds",
2577        "type": "uint32[]",
2578        "internalType": "uint32[]"
2579      }
2580    ],
2581    "outputs": [],
2582    "stateMutability": "nonpayable"
2583  },
2584  {
2585    "type": "function",
2586    "name": "domainSeparator",
2587    "inputs": [],
2588    "outputs": [
2589      {
2590        "name": "",
2591        "type": "bytes32",
2592        "internalType": "bytes32"
2593      }
2594    ],
2595    "stateMutability": "view"
2596  },
2597  {
2598    "type": "function",
2599    "name": "eip712Domain",
2600    "inputs": [],
2601    "outputs": [
2602      {
2603        "name": "fields",
2604        "type": "bytes1",
2605        "internalType": "bytes1"
2606      },
2607      {
2608        "name": "name",
2609        "type": "string",
2610        "internalType": "string"
2611      },
2612      {
2613        "name": "version",
2614        "type": "string",
2615        "internalType": "string"
2616      },
2617      {
2618        "name": "chainId",
2619        "type": "uint256",
2620        "internalType": "uint256"
2621      },
2622      {
2623        "name": "verifyingContract",
2624        "type": "address",
2625        "internalType": "address"
2626      },
2627      {
2628        "name": "salt",
2629        "type": "bytes32",
2630        "internalType": "bytes32"
2631      },
2632      {
2633        "name": "extensions",
2634        "type": "uint256[]",
2635        "internalType": "uint256[]"
2636      }
2637    ],
2638    "stateMutability": "view"
2639  },
2640  {
2641    "type": "function",
2642    "name": "ejectOperator",
2643    "inputs": [
2644      {
2645        "name": "operator",
2646        "type": "address",
2647        "internalType": "address"
2648      },
2649      {
2650        "name": "quorumNumbers",
2651        "type": "bytes",
2652        "internalType": "bytes"
2653      }
2654    ],
2655    "outputs": [],
2656    "stateMutability": "nonpayable"
2657  },
2658  {
2659    "type": "function",
2660    "name": "ejectionCooldown",
2661    "inputs": [],
2662    "outputs": [
2663      {
2664        "name": "",
2665        "type": "uint256",
2666        "internalType": "uint256"
2667      }
2668    ],
2669    "stateMutability": "view"
2670  },
2671  {
2672    "type": "function",
2673    "name": "ejector",
2674    "inputs": [],
2675    "outputs": [
2676      {
2677        "name": "",
2678        "type": "address",
2679        "internalType": "address"
2680      }
2681    ],
2682    "stateMutability": "view"
2683  },
2684  {
2685    "type": "function",
2686    "name": "getCurrentQuorumBitmap",
2687    "inputs": [
2688      {
2689        "name": "operatorId",
2690        "type": "bytes32",
2691        "internalType": "bytes32"
2692      }
2693    ],
2694    "outputs": [
2695      {
2696        "name": "",
2697        "type": "uint192",
2698        "internalType": "uint192"
2699      }
2700    ],
2701    "stateMutability": "view"
2702  },
2703  {
2704    "type": "function",
2705    "name": "getOperator",
2706    "inputs": [
2707      {
2708        "name": "operator",
2709        "type": "address",
2710        "internalType": "address"
2711      }
2712    ],
2713    "outputs": [
2714      {
2715        "name": "",
2716        "type": "tuple",
2717        "internalType": "struct ISlashingRegistryCoordinatorTypes.OperatorInfo",
2718        "components": [
2719          {
2720            "name": "operatorId",
2721            "type": "bytes32",
2722            "internalType": "bytes32"
2723          },
2724          {
2725            "name": "status",
2726            "type": "uint8",
2727            "internalType": "enum ISlashingRegistryCoordinatorTypes.OperatorStatus"
2728          }
2729        ]
2730      }
2731    ],
2732    "stateMutability": "view"
2733  },
2734  {
2735    "type": "function",
2736    "name": "getOperatorFromId",
2737    "inputs": [
2738      {
2739        "name": "operatorId",
2740        "type": "bytes32",
2741        "internalType": "bytes32"
2742      }
2743    ],
2744    "outputs": [
2745      {
2746        "name": "",
2747        "type": "address",
2748        "internalType": "address"
2749      }
2750    ],
2751    "stateMutability": "view"
2752  },
2753  {
2754    "type": "function",
2755    "name": "getOperatorId",
2756    "inputs": [
2757      {
2758        "name": "operator",
2759        "type": "address",
2760        "internalType": "address"
2761      }
2762    ],
2763    "outputs": [
2764      {
2765        "name": "",
2766        "type": "bytes32",
2767        "internalType": "bytes32"
2768      }
2769    ],
2770    "stateMutability": "view"
2771  },
2772  {
2773    "type": "function",
2774    "name": "getOperatorSetParams",
2775    "inputs": [
2776      {
2777        "name": "quorumNumber",
2778        "type": "uint8",
2779        "internalType": "uint8"
2780      }
2781    ],
2782    "outputs": [
2783      {
2784        "name": "",
2785        "type": "tuple",
2786        "internalType": "struct ISlashingRegistryCoordinatorTypes.OperatorSetParam",
2787        "components": [
2788          {
2789            "name": "maxOperatorCount",
2790            "type": "uint32",
2791            "internalType": "uint32"
2792          },
2793          {
2794            "name": "kickBIPsOfOperatorStake",
2795            "type": "uint16",
2796            "internalType": "uint16"
2797          },
2798          {
2799            "name": "kickBIPsOfTotalStake",
2800            "type": "uint16",
2801            "internalType": "uint16"
2802          }
2803        ]
2804      }
2805    ],
2806    "stateMutability": "view"
2807  },
2808  {
2809    "type": "function",
2810    "name": "getOperatorStatus",
2811    "inputs": [
2812      {
2813        "name": "operator",
2814        "type": "address",
2815        "internalType": "address"
2816      }
2817    ],
2818    "outputs": [
2819      {
2820        "name": "",
2821        "type": "uint8",
2822        "internalType": "enum ISlashingRegistryCoordinatorTypes.OperatorStatus"
2823      }
2824    ],
2825    "stateMutability": "view"
2826  },
2827  {
2828    "type": "function",
2829    "name": "getQuorumBitmapAtBlockNumberByIndex",
2830    "inputs": [
2831      {
2832        "name": "operatorId",
2833        "type": "bytes32",
2834        "internalType": "bytes32"
2835      },
2836      {
2837        "name": "blockNumber",
2838        "type": "uint32",
2839        "internalType": "uint32"
2840      },
2841      {
2842        "name": "index",
2843        "type": "uint256",
2844        "internalType": "uint256"
2845      }
2846    ],
2847    "outputs": [
2848      {
2849        "name": "",
2850        "type": "uint192",
2851        "internalType": "uint192"
2852      }
2853    ],
2854    "stateMutability": "view"
2855  },
2856  {
2857    "type": "function",
2858    "name": "getQuorumBitmapHistoryLength",
2859    "inputs": [
2860      {
2861        "name": "operatorId",
2862        "type": "bytes32",
2863        "internalType": "bytes32"
2864      }
2865    ],
2866    "outputs": [
2867      {
2868        "name": "",
2869        "type": "uint256",
2870        "internalType": "uint256"
2871      }
2872    ],
2873    "stateMutability": "view"
2874  },
2875  {
2876    "type": "function",
2877    "name": "getQuorumBitmapIndicesAtBlockNumber",
2878    "inputs": [
2879      {
2880        "name": "blockNumber",
2881        "type": "uint32",
2882        "internalType": "uint32"
2883      },
2884      {
2885        "name": "operatorIds",
2886        "type": "bytes32[]",
2887        "internalType": "bytes32[]"
2888      }
2889    ],
2890    "outputs": [
2891      {
2892        "name": "",
2893        "type": "uint32[]",
2894        "internalType": "uint32[]"
2895      }
2896    ],
2897    "stateMutability": "view"
2898  },
2899  {
2900    "type": "function",
2901    "name": "getQuorumBitmapUpdateByIndex",
2902    "inputs": [
2903      {
2904        "name": "operatorId",
2905        "type": "bytes32",
2906        "internalType": "bytes32"
2907      },
2908      {
2909        "name": "index",
2910        "type": "uint256",
2911        "internalType": "uint256"
2912      }
2913    ],
2914    "outputs": [
2915      {
2916        "name": "",
2917        "type": "tuple",
2918        "internalType": "struct ISlashingRegistryCoordinatorTypes.QuorumBitmapUpdate",
2919        "components": [
2920          {
2921            "name": "updateBlockNumber",
2922            "type": "uint32",
2923            "internalType": "uint32"
2924          },
2925          {
2926            "name": "nextUpdateBlockNumber",
2927            "type": "uint32",
2928            "internalType": "uint32"
2929          },
2930          {
2931            "name": "quorumBitmap",
2932            "type": "uint192",
2933            "internalType": "uint192"
2934          }
2935        ]
2936      }
2937    ],
2938    "stateMutability": "view"
2939  },
2940  {
2941    "type": "function",
2942    "name": "indexRegistry",
2943    "inputs": [],
2944    "outputs": [
2945      {
2946        "name": "",
2947        "type": "address",
2948        "internalType": "contract IIndexRegistry"
2949      }
2950    ],
2951    "stateMutability": "view"
2952  },
2953  {
2954    "type": "function",
2955    "name": "initialize",
2956    "inputs": [
2957      {
2958        "name": "initialOwner",
2959        "type": "address",
2960        "internalType": "address"
2961      },
2962      {
2963        "name": "churnApprover",
2964        "type": "address",
2965        "internalType": "address"
2966      },
2967      {
2968        "name": "ejector",
2969        "type": "address",
2970        "internalType": "address"
2971      },
2972      {
2973        "name": "initialPausedStatus",
2974        "type": "uint256",
2975        "internalType": "uint256"
2976      },
2977      {
2978        "name": "avs",
2979        "type": "address",
2980        "internalType": "address"
2981      }
2982    ],
2983    "outputs": [],
2984    "stateMutability": "nonpayable"
2985  },
2986  {
2987    "type": "function",
2988    "name": "isChurnApproverSaltUsed",
2989    "inputs": [
2990      {
2991        "name": "",
2992        "type": "bytes32",
2993        "internalType": "bytes32"
2994      }
2995    ],
2996    "outputs": [
2997      {
2998        "name": "",
2999        "type": "bool",
3000        "internalType": "bool"
3001      }
3002    ],
3003    "stateMutability": "view"
3004  },
3005  {
3006    "type": "function",
3007    "name": "lastEjectionTimestamp",
3008    "inputs": [
3009      {
3010        "name": "",
3011        "type": "address",
3012        "internalType": "address"
3013      }
3014    ],
3015    "outputs": [
3016      {
3017        "name": "",
3018        "type": "uint256",
3019        "internalType": "uint256"
3020      }
3021    ],
3022    "stateMutability": "view"
3023  },
3024  {
3025    "type": "function",
3026    "name": "owner",
3027    "inputs": [],
3028    "outputs": [
3029      {
3030        "name": "",
3031        "type": "address",
3032        "internalType": "address"
3033      }
3034    ],
3035    "stateMutability": "view"
3036  },
3037  {
3038    "type": "function",
3039    "name": "pause",
3040    "inputs": [
3041      {
3042        "name": "newPausedStatus",
3043        "type": "uint256",
3044        "internalType": "uint256"
3045      }
3046    ],
3047    "outputs": [],
3048    "stateMutability": "nonpayable"
3049  },
3050  {
3051    "type": "function",
3052    "name": "pauseAll",
3053    "inputs": [],
3054    "outputs": [],
3055    "stateMutability": "nonpayable"
3056  },
3057  {
3058    "type": "function",
3059    "name": "paused",
3060    "inputs": [
3061      {
3062        "name": "index",
3063        "type": "uint8",
3064        "internalType": "uint8"
3065      }
3066    ],
3067    "outputs": [
3068      {
3069        "name": "",
3070        "type": "bool",
3071        "internalType": "bool"
3072      }
3073    ],
3074    "stateMutability": "view"
3075  },
3076  {
3077    "type": "function",
3078    "name": "paused",
3079    "inputs": [],
3080    "outputs": [
3081      {
3082        "name": "",
3083        "type": "uint256",
3084        "internalType": "uint256"
3085      }
3086    ],
3087    "stateMutability": "view"
3088  },
3089  {
3090    "type": "function",
3091    "name": "pauserRegistry",
3092    "inputs": [],
3093    "outputs": [
3094      {
3095        "name": "",
3096        "type": "address",
3097        "internalType": "contract IPauserRegistry"
3098      }
3099    ],
3100    "stateMutability": "view"
3101  },
3102  {
3103    "type": "function",
3104    "name": "pubkeyRegistrationMessageHash",
3105    "inputs": [
3106      {
3107        "name": "operator",
3108        "type": "address",
3109        "internalType": "address"
3110      }
3111    ],
3112    "outputs": [
3113      {
3114        "name": "",
3115        "type": "tuple",
3116        "internalType": "struct BN254.G1Point",
3117        "components": [
3118          {
3119            "name": "X",
3120            "type": "uint256",
3121            "internalType": "uint256"
3122          },
3123          {
3124            "name": "Y",
3125            "type": "uint256",
3126            "internalType": "uint256"
3127          }
3128        ]
3129      }
3130    ],
3131    "stateMutability": "view"
3132  },
3133  {
3134    "type": "function",
3135    "name": "quorumCount",
3136    "inputs": [],
3137    "outputs": [
3138      {
3139        "name": "",
3140        "type": "uint8",
3141        "internalType": "uint8"
3142      }
3143    ],
3144    "stateMutability": "view"
3145  },
3146  {
3147    "type": "function",
3148    "name": "quorumUpdateBlockNumber",
3149    "inputs": [
3150      {
3151        "name": "",
3152        "type": "uint8",
3153        "internalType": "uint8"
3154      }
3155    ],
3156    "outputs": [
3157      {
3158        "name": "",
3159        "type": "uint256",
3160        "internalType": "uint256"
3161      }
3162    ],
3163    "stateMutability": "view"
3164  },
3165  {
3166    "type": "function",
3167    "name": "registerOperator",
3168    "inputs": [
3169      {
3170        "name": "operator",
3171        "type": "address",
3172        "internalType": "address"
3173      },
3174      {
3175        "name": "avs",
3176        "type": "address",
3177        "internalType": "address"
3178      },
3179      {
3180        "name": "operatorSetIds",
3181        "type": "uint32[]",
3182        "internalType": "uint32[]"
3183      },
3184      {
3185        "name": "data",
3186        "type": "bytes",
3187        "internalType": "bytes"
3188      }
3189    ],
3190    "outputs": [],
3191    "stateMutability": "nonpayable"
3192  },
3193  {
3194    "type": "function",
3195    "name": "renounceOwnership",
3196    "inputs": [],
3197    "outputs": [],
3198    "stateMutability": "nonpayable"
3199  },
3200  {
3201    "type": "function",
3202    "name": "setAVS",
3203    "inputs": [
3204      {
3205        "name": "_avs",
3206        "type": "address",
3207        "internalType": "address"
3208      }
3209    ],
3210    "outputs": [],
3211    "stateMutability": "nonpayable"
3212  },
3213  {
3214    "type": "function",
3215    "name": "setChurnApprover",
3216    "inputs": [
3217      {
3218        "name": "_churnApprover",
3219        "type": "address",
3220        "internalType": "address"
3221      }
3222    ],
3223    "outputs": [],
3224    "stateMutability": "nonpayable"
3225  },
3226  {
3227    "type": "function",
3228    "name": "setEjectionCooldown",
3229    "inputs": [
3230      {
3231        "name": "_ejectionCooldown",
3232        "type": "uint256",
3233        "internalType": "uint256"
3234      }
3235    ],
3236    "outputs": [],
3237    "stateMutability": "nonpayable"
3238  },
3239  {
3240    "type": "function",
3241    "name": "setEjector",
3242    "inputs": [
3243      {
3244        "name": "_ejector",
3245        "type": "address",
3246        "internalType": "address"
3247      }
3248    ],
3249    "outputs": [],
3250    "stateMutability": "nonpayable"
3251  },
3252  {
3253    "type": "function",
3254    "name": "setOperatorSetParams",
3255    "inputs": [
3256      {
3257        "name": "quorumNumber",
3258        "type": "uint8",
3259        "internalType": "uint8"
3260      },
3261      {
3262        "name": "operatorSetParams",
3263        "type": "tuple",
3264        "internalType": "struct ISlashingRegistryCoordinatorTypes.OperatorSetParam",
3265        "components": [
3266          {
3267            "name": "maxOperatorCount",
3268            "type": "uint32",
3269            "internalType": "uint32"
3270          },
3271          {
3272            "name": "kickBIPsOfOperatorStake",
3273            "type": "uint16",
3274            "internalType": "uint16"
3275          },
3276          {
3277            "name": "kickBIPsOfTotalStake",
3278            "type": "uint16",
3279            "internalType": "uint16"
3280          }
3281        ]
3282      }
3283    ],
3284    "outputs": [],
3285    "stateMutability": "nonpayable"
3286  },
3287  {
3288    "type": "function",
3289    "name": "socketRegistry",
3290    "inputs": [],
3291    "outputs": [
3292      {
3293        "name": "",
3294        "type": "address",
3295        "internalType": "contract ISocketRegistry"
3296      }
3297    ],
3298    "stateMutability": "view"
3299  },
3300  {
3301    "type": "function",
3302    "name": "stakeRegistry",
3303    "inputs": [],
3304    "outputs": [
3305      {
3306        "name": "",
3307        "type": "address",
3308        "internalType": "contract IStakeRegistry"
3309      }
3310    ],
3311    "stateMutability": "view"
3312  },
3313  {
3314    "type": "function",
3315    "name": "supportsAVS",
3316    "inputs": [
3317      {
3318        "name": "_avs",
3319        "type": "address",
3320        "internalType": "address"
3321      }
3322    ],
3323    "outputs": [
3324      {
3325        "name": "",
3326        "type": "bool",
3327        "internalType": "bool"
3328      }
3329    ],
3330    "stateMutability": "view"
3331  },
3332  {
3333    "type": "function",
3334    "name": "transferOwnership",
3335    "inputs": [
3336      {
3337        "name": "newOwner",
3338        "type": "address",
3339        "internalType": "address"
3340      }
3341    ],
3342    "outputs": [],
3343    "stateMutability": "nonpayable"
3344  },
3345  {
3346    "type": "function",
3347    "name": "unpause",
3348    "inputs": [
3349      {
3350        "name": "newPausedStatus",
3351        "type": "uint256",
3352        "internalType": "uint256"
3353      }
3354    ],
3355    "outputs": [],
3356    "stateMutability": "nonpayable"
3357  },
3358  {
3359    "type": "function",
3360    "name": "updateOperators",
3361    "inputs": [
3362      {
3363        "name": "operators",
3364        "type": "address[]",
3365        "internalType": "address[]"
3366      }
3367    ],
3368    "outputs": [],
3369    "stateMutability": "nonpayable"
3370  },
3371  {
3372    "type": "function",
3373    "name": "updateOperatorsForQuorum",
3374    "inputs": [
3375      {
3376        "name": "operatorsPerQuorum",
3377        "type": "address[][]",
3378        "internalType": "address[][]"
3379      },
3380      {
3381        "name": "quorumNumbers",
3382        "type": "bytes",
3383        "internalType": "bytes"
3384      }
3385    ],
3386    "outputs": [],
3387    "stateMutability": "nonpayable"
3388  },
3389  {
3390    "type": "function",
3391    "name": "updateSocket",
3392    "inputs": [
3393      {
3394        "name": "socket",
3395        "type": "string",
3396        "internalType": "string"
3397      }
3398    ],
3399    "outputs": [],
3400    "stateMutability": "nonpayable"
3401  },
3402  {
3403    "type": "function",
3404    "name": "version",
3405    "inputs": [],
3406    "outputs": [
3407      {
3408        "name": "",
3409        "type": "string",
3410        "internalType": "string"
3411      }
3412    ],
3413    "stateMutability": "view"
3414  },
3415  {
3416    "type": "event",
3417    "name": "AVSUpdated",
3418    "inputs": [
3419      {
3420        "name": "prevAVS",
3421        "type": "address",
3422        "indexed": false,
3423        "internalType": "address"
3424      },
3425      {
3426        "name": "newAVS",
3427        "type": "address",
3428        "indexed": false,
3429        "internalType": "address"
3430      }
3431    ],
3432    "anonymous": false
3433  },
3434  {
3435    "type": "event",
3436    "name": "ChurnApproverUpdated",
3437    "inputs": [
3438      {
3439        "name": "prevChurnApprover",
3440        "type": "address",
3441        "indexed": false,
3442        "internalType": "address"
3443      },
3444      {
3445        "name": "newChurnApprover",
3446        "type": "address",
3447        "indexed": false,
3448        "internalType": "address"
3449      }
3450    ],
3451    "anonymous": false
3452  },
3453  {
3454    "type": "event",
3455    "name": "EIP712DomainChanged",
3456    "inputs": [],
3457    "anonymous": false
3458  },
3459  {
3460    "type": "event",
3461    "name": "EjectionCooldownUpdated",
3462    "inputs": [
3463      {
3464        "name": "prevEjectionCooldown",
3465        "type": "uint256",
3466        "indexed": false,
3467        "internalType": "uint256"
3468      },
3469      {
3470        "name": "newEjectionCooldown",
3471        "type": "uint256",
3472        "indexed": false,
3473        "internalType": "uint256"
3474      }
3475    ],
3476    "anonymous": false
3477  },
3478  {
3479    "type": "event",
3480    "name": "EjectorUpdated",
3481    "inputs": [
3482      {
3483        "name": "prevEjector",
3484        "type": "address",
3485        "indexed": false,
3486        "internalType": "address"
3487      },
3488      {
3489        "name": "newEjector",
3490        "type": "address",
3491        "indexed": false,
3492        "internalType": "address"
3493      }
3494    ],
3495    "anonymous": false
3496  },
3497  {
3498    "type": "event",
3499    "name": "Initialized",
3500    "inputs": [
3501      {
3502        "name": "version",
3503        "type": "uint8",
3504        "indexed": false,
3505        "internalType": "uint8"
3506      }
3507    ],
3508    "anonymous": false
3509  },
3510  {
3511    "type": "event",
3512    "name": "OperatorDeregistered",
3513    "inputs": [
3514      {
3515        "name": "operator",
3516        "type": "address",
3517        "indexed": true,
3518        "internalType": "address"
3519      },
3520      {
3521        "name": "operatorId",
3522        "type": "bytes32",
3523        "indexed": true,
3524        "internalType": "bytes32"
3525      }
3526    ],
3527    "anonymous": false
3528  },
3529  {
3530    "type": "event",
3531    "name": "OperatorRegistered",
3532    "inputs": [
3533      {
3534        "name": "operator",
3535        "type": "address",
3536        "indexed": true,
3537        "internalType": "address"
3538      },
3539      {
3540        "name": "operatorId",
3541        "type": "bytes32",
3542        "indexed": true,
3543        "internalType": "bytes32"
3544      }
3545    ],
3546    "anonymous": false
3547  },
3548  {
3549    "type": "event",
3550    "name": "OperatorSetParamsUpdated",
3551    "inputs": [
3552      {
3553        "name": "quorumNumber",
3554        "type": "uint8",
3555        "indexed": true,
3556        "internalType": "uint8"
3557      },
3558      {
3559        "name": "operatorSetParams",
3560        "type": "tuple",
3561        "indexed": false,
3562        "internalType": "struct ISlashingRegistryCoordinatorTypes.OperatorSetParam",
3563        "components": [
3564          {
3565            "name": "maxOperatorCount",
3566            "type": "uint32",
3567            "internalType": "uint32"
3568          },
3569          {
3570            "name": "kickBIPsOfOperatorStake",
3571            "type": "uint16",
3572            "internalType": "uint16"
3573          },
3574          {
3575            "name": "kickBIPsOfTotalStake",
3576            "type": "uint16",
3577            "internalType": "uint16"
3578          }
3579        ]
3580      }
3581    ],
3582    "anonymous": false
3583  },
3584  {
3585    "type": "event",
3586    "name": "OperatorSocketUpdate",
3587    "inputs": [
3588      {
3589        "name": "operatorId",
3590        "type": "bytes32",
3591        "indexed": true,
3592        "internalType": "bytes32"
3593      },
3594      {
3595        "name": "socket",
3596        "type": "string",
3597        "indexed": false,
3598        "internalType": "string"
3599      }
3600    ],
3601    "anonymous": false
3602  },
3603  {
3604    "type": "event",
3605    "name": "OwnershipTransferred",
3606    "inputs": [
3607      {
3608        "name": "previousOwner",
3609        "type": "address",
3610        "indexed": true,
3611        "internalType": "address"
3612      },
3613      {
3614        "name": "newOwner",
3615        "type": "address",
3616        "indexed": true,
3617        "internalType": "address"
3618      }
3619    ],
3620    "anonymous": false
3621  },
3622  {
3623    "type": "event",
3624    "name": "Paused",
3625    "inputs": [
3626      {
3627        "name": "account",
3628        "type": "address",
3629        "indexed": true,
3630        "internalType": "address"
3631      },
3632      {
3633        "name": "newPausedStatus",
3634        "type": "uint256",
3635        "indexed": false,
3636        "internalType": "uint256"
3637      }
3638    ],
3639    "anonymous": false
3640  },
3641  {
3642    "type": "event",
3643    "name": "QuorumBlockNumberUpdated",
3644    "inputs": [
3645      {
3646        "name": "quorumNumber",
3647        "type": "uint8",
3648        "indexed": true,
3649        "internalType": "uint8"
3650      },
3651      {
3652        "name": "blocknumber",
3653        "type": "uint256",
3654        "indexed": false,
3655        "internalType": "uint256"
3656      }
3657    ],
3658    "anonymous": false
3659  },
3660  {
3661    "type": "event",
3662    "name": "QuorumCreated",
3663    "inputs": [
3664      {
3665        "name": "quorumNumber",
3666        "type": "uint8",
3667        "indexed": true,
3668        "internalType": "uint8"
3669      },
3670      {
3671        "name": "operatorSetParams",
3672        "type": "tuple",
3673        "indexed": false,
3674        "internalType": "struct ISlashingRegistryCoordinatorTypes.OperatorSetParam",
3675        "components": [
3676          {
3677            "name": "maxOperatorCount",
3678            "type": "uint32",
3679            "internalType": "uint32"
3680          },
3681          {
3682            "name": "kickBIPsOfOperatorStake",
3683            "type": "uint16",
3684            "internalType": "uint16"
3685          },
3686          {
3687            "name": "kickBIPsOfTotalStake",
3688            "type": "uint16",
3689            "internalType": "uint16"
3690          }
3691        ]
3692      },
3693      {
3694        "name": "minimumStake",
3695        "type": "uint96",
3696        "indexed": false,
3697        "internalType": "uint96"
3698      },
3699      {
3700        "name": "strategyParams",
3701        "type": "tuple[]",
3702        "indexed": false,
3703        "internalType": "struct IStakeRegistryTypes.StrategyParams[]",
3704        "components": [
3705          {
3706            "name": "strategy",
3707            "type": "address",
3708            "internalType": "contract IStrategy"
3709          },
3710          {
3711            "name": "multiplier",
3712            "type": "uint96",
3713            "internalType": "uint96"
3714          }
3715        ]
3716      },
3717      {
3718        "name": "stakeType",
3719        "type": "uint8",
3720        "indexed": false,
3721        "internalType": "enum IStakeRegistryTypes.StakeType"
3722      },
3723      {
3724        "name": "lookAheadPeriod",
3725        "type": "uint32",
3726        "indexed": false,
3727        "internalType": "uint32"
3728      }
3729    ],
3730    "anonymous": false
3731  },
3732  {
3733    "type": "event",
3734    "name": "Unpaused",
3735    "inputs": [
3736      {
3737        "name": "account",
3738        "type": "address",
3739        "indexed": true,
3740        "internalType": "address"
3741      },
3742      {
3743        "name": "newPausedStatus",
3744        "type": "uint256",
3745        "indexed": false,
3746        "internalType": "uint256"
3747      }
3748    ],
3749    "anonymous": false
3750  },
3751  {
3752    "type": "error",
3753    "name": "AlreadyRegisteredForQuorums",
3754    "inputs": []
3755  },
3756  {
3757    "type": "error",
3758    "name": "BitmapCannotBeZero",
3759    "inputs": []
3760  },
3761  {
3762    "type": "error",
3763    "name": "BitmapEmpty",
3764    "inputs": []
3765  },
3766  {
3767    "type": "error",
3768    "name": "BitmapUpdateIsAfterBlockNumber",
3769    "inputs": []
3770  },
3771  {
3772    "type": "error",
3773    "name": "BitmapValueTooLarge",
3774    "inputs": []
3775  },
3776  {
3777    "type": "error",
3778    "name": "BytesArrayLengthTooLong",
3779    "inputs": []
3780  },
3781  {
3782    "type": "error",
3783    "name": "BytesArrayNotOrdered",
3784    "inputs": []
3785  },
3786  {
3787    "type": "error",
3788    "name": "CannotChurnSelf",
3789    "inputs": []
3790  },
3791  {
3792    "type": "error",
3793    "name": "CannotKickOperatorAboveThreshold",
3794    "inputs": []
3795  },
3796  {
3797    "type": "error",
3798    "name": "CannotReregisterYet",
3799    "inputs": []
3800  },
3801  {
3802    "type": "error",
3803    "name": "ChurnApproverSaltUsed",
3804    "inputs": []
3805  },
3806  {
3807    "type": "error",
3808    "name": "CurrentlyPaused",
3809    "inputs": []
3810  },
3811  {
3812    "type": "error",
3813    "name": "ExpModFailed",
3814    "inputs": []
3815  },
3816  {
3817    "type": "error",
3818    "name": "InputAddressZero",
3819    "inputs": []
3820  },
3821  {
3822    "type": "error",
3823    "name": "InputLengthMismatch",
3824    "inputs": []
3825  },
3826  {
3827    "type": "error",
3828    "name": "InsufficientStakeForChurn",
3829    "inputs": []
3830  },
3831  {
3832    "type": "error",
3833    "name": "InvalidAVS",
3834    "inputs": []
3835  },
3836  {
3837    "type": "error",
3838    "name": "InvalidNewPausedStatus",
3839    "inputs": []
3840  },
3841  {
3842    "type": "error",
3843    "name": "InvalidRegistrationType",
3844    "inputs": []
3845  },
3846  {
3847    "type": "error",
3848    "name": "InvalidShortString",
3849    "inputs": []
3850  },
3851  {
3852    "type": "error",
3853    "name": "InvalidSignature",
3854    "inputs": []
3855  },
3856  {
3857    "type": "error",
3858    "name": "LookAheadPeriodTooLong",
3859    "inputs": []
3860  },
3861  {
3862    "type": "error",
3863    "name": "MaxOperatorCountReached",
3864    "inputs": []
3865  },
3866  {
3867    "type": "error",
3868    "name": "MaxQuorumsReached",
3869    "inputs": []
3870  },
3871  {
3872    "type": "error",
3873    "name": "NextBitmapUpdateIsBeforeBlockNumber",
3874    "inputs": []
3875  },
3876  {
3877    "type": "error",
3878    "name": "NotRegistered",
3879    "inputs": []
3880  },
3881  {
3882    "type": "error",
3883    "name": "NotRegisteredForQuorum",
3884    "inputs": []
3885  },
3886  {
3887    "type": "error",
3888    "name": "NotSorted",
3889    "inputs": []
3890  },
3891  {
3892    "type": "error",
3893    "name": "OnlyAllocationManager",
3894    "inputs": []
3895  },
3896  {
3897    "type": "error",
3898    "name": "OnlyEjector",
3899    "inputs": []
3900  },
3901  {
3902    "type": "error",
3903    "name": "OnlyPauser",
3904    "inputs": []
3905  },
3906  {
3907    "type": "error",
3908    "name": "OnlyUnpauser",
3909    "inputs": []
3910  },
3911  {
3912    "type": "error",
3913    "name": "OperatorNotRegistered",
3914    "inputs": []
3915  },
3916  {
3917    "type": "error",
3918    "name": "QuorumDoesNotExist",
3919    "inputs": []
3920  },
3921  {
3922    "type": "error",
3923    "name": "QuorumOperatorCountMismatch",
3924    "inputs": []
3925  },
3926  {
3927    "type": "error",
3928    "name": "SignatureExpired",
3929    "inputs": []
3930  },
3931  {
3932    "type": "error",
3933    "name": "StringTooLong",
3934    "inputs": [
3935      {
3936        "name": "str",
3937        "type": "string",
3938        "internalType": "string"
3939      }
3940    ]
3941  }
3942]
3943```*/
3944#[allow(
3945    non_camel_case_types,
3946    non_snake_case,
3947    clippy::pub_underscore_fields,
3948    clippy::style,
3949    clippy::empty_structs_with_brackets
3950)]
3951pub mod SlashingRegistryCoordinator {
3952    use super::*;
3953    use alloy::sol_types as alloy_sol_types;
3954    /// The creation / init bytecode of the contract.
3955    ///
3956    /// ```text
3957    ///0x610160604052348015610010575f5ffd5b50604051615bca380380615bca83398101604081905261002f916101fb565b6001600160a01b0380881660c05280871660a05280861660e0528085166080528316610100528181610060816100ad565b61012052506001600160a01b03811661008c576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b0316610140526100a16100f3565b50505050505050610375565b5f5f829050601f815111156100e0578260405163305a27a960e01b81526004016100d7919061031d565b60405180910390fd5b80516100eb8261034f565b179392505050565b603254610100900460ff161561015b5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100d7565b60325460ff908116146101ac576032805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146101c2575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b5f5b838110156101f35781810151838201526020016101db565b50505f910152565b5f5f5f5f5f5f5f60e0888a031215610211575f5ffd5b875161021c816101ae565b602089015190975061022d816101ae565b604089015190965061023e816101ae565b606089015190955061024f816101ae565b6080890151909450610260816101ae565b60a0890151909350610271816101ae565b60c08901519092506001600160401b0381111561028c575f5ffd5b8801601f81018a1361029c575f5ffd5b80516001600160401b038111156102b5576102b56101c5565b604051601f8201601f19908116603f011681016001600160401b03811182821017156102e3576102e36101c5565b6040528181528282016020018c10156102fa575f5ffd5b61030b8260208301602086016101d9565b80935050505092959891949750929550565b602081525f825180602084015261033b8160408501602087016101d9565b601f01601f19169190910160400192915050565b8051602080830151919081101561036f575f198160200360031b1b821691505b50919050565b60805160a05160c05160e0516101005161012051610140516157636104675f395f818161069b01528181610b87015281816113aa015261185b01525f6112f801525f81816107c801528181611e7f015281816124310152818161255c015261355a01525f81816106f101528181610f2e015281816121b1015281816126960152612f9d01525f81816105f201528181611aaa01528181612136015281816124cf0152818161261501528181612efb015261382501525f81816105cb01528181610cf0015281816120bd0152818161270b01528181612c100152612e8201525f818161087d0152611c7701526157635ff3fe608060405234801561000f575f5ffd5b50600436106102e3575f3560e01c80635df459461161018d578063a65497c6116100e0578063de1164bb1161008f578063de1164bb146107ea578063e65797ad146107fd578063ea32afae14610878578063f2fde38b1461089f578063f698da25146108b2578063fabc1cbc146108ba578063fd39105a146108cd575f5ffd5b8063a65497c61461073a578063a96f783e1461074d578063b526578714610756578063c391425e14610769578063c63fd50214610789578063ca0de8821461079c578063ca8aa7c7146107c3575f5ffd5b806384ca52131161013c57806384ca521314610670578063871ef04914610683578063886f1195146106965780638da5cb5b146106bd5780639aa1653d146106ce5780639e9923c2146106ec5780639feab85914610713575f5ffd5b80635df45946146105c657806368304835146105ed5780636e3b17db14610614578063715018a614610627578063734479921461062f5780638281ab751461064257806384b0196e14610655575f5ffd5b8063296bb06411610245578063530b97a4116101f4578063530b97a41461053857806354fd4d501461054b5780635865c60c14610560578063595c6a67146105805780635ac86ab7146105885780635b0b829f146105ab5780635c975abb146105be575f5ffd5b8063296bb064146104a657806329d1e0c3146104b95780632cdd1e86146104cc578063303ca956146104df5780633c2a7f4c146104f25780633eef3a51146105125780635140a54814610525575f5ffd5b8063125e0584116102a1578063125e05841461039f57806313542a4e146103be578063136439dd146103e65780631478851f146103f95780631eb812da1461042b578063249a0c421461047457806328f61b3114610493575f5ffd5b8062cf2ab5146102e757806303fd3492146102fc57806304ec63511461032e578063054310e6146103595780630cf4b767146103795780630d3f21341461038c575b5f5ffd5b6102fa6102f53660046140f2565b610908565b005b61031b61030a366004614123565b5f9081526002602052604090205490565b6040519081526020015b60405180910390f35b61034161033c36600461414b565b610aa9565b6040516001600160c01b039091168152602001610325565b60075461036c906001600160a01b031681565b6040516103259190614180565b6102fa610387366004614205565b610ac1565b6102fa61039a366004614123565b610b23565b61031b6103ad366004614236565b60096020525f908152604090205481565b61031b6103cc366004614236565b6001600160a01b03165f9081526003602052604090205490565b6102fa6103f4366004614123565b610b70565b61041b610407366004614123565b60046020525f908152604090205460ff1681565b6040519015158152602001610325565b61043e610439366004614251565b610c4a565b60408051825163ffffffff908116825260208085015190911690820152918101516001600160c01b031690820152606001610325565b61031b610482366004614286565b60056020525f908152604090205481565b60085461036c906001600160a01b031681565b61036c6104b4366004614123565b610cd8565b6102fa6104c7366004614236565b610d61565b6102fa6104da366004614236565b610d72565b6102fa6104ed366004614303565b610d83565b610505610500366004614236565b610df7565b6040516103259190614360565b6102fa610520366004614481565b610e1b565b6102fa61053336600461452d565b610e37565b6102fa61054636600461460a565b61115b565b6105536112f1565b60405161032591906146bb565b61057361056e366004614236565b611321565b60405161032591906146f5565b6102fa611393565b61041b610596366004614286565b603354600160ff9092169190911b9081161490565b6102fa6105b9366004614710565b611447565b60335461031b565b61036c7f000000000000000000000000000000000000000000000000000000000000000081565b61036c7f000000000000000000000000000000000000000000000000000000000000000081565b6102fa610622366004614742565b611463565b6102fa61148f565b61031b61063d366004614236565b6114a0565b6102fa61065036600461478e565b611504565b61065d611519565b60405161032597969594939291906147e0565b61031b61067e36600461490a565b6115b2565b610341610691366004614123565b6115fb565b61036c7f000000000000000000000000000000000000000000000000000000000000000081565b6096546001600160a01b031661036c565b5f546106da9060ff1681565b60405160ff9091168152602001610325565b61036c7f000000000000000000000000000000000000000000000000000000000000000081565b61031b7f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de681565b6102fa610748366004614236565b611605565b61031b600a5481565b61041b610764366004614236565b611616565b61077c61077736600461496f565b61162a565b6040516103259190614a54565b6102fa610797366004614a66565b611638565b61031b7f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a81565b61036c7f000000000000000000000000000000000000000000000000000000000000000081565b600b5461036c906001600160a01b031681565b61086b61080b366004614286565b60408051606080820183525f808352602080840182905292840181905260ff9490941684526001825292829020825193840183525463ffffffff8116845261ffff600160201b8204811692850192909252600160301b9004169082015290565b6040516103259190614af3565b61036c7f000000000000000000000000000000000000000000000000000000000000000081565b6102fa6108ad366004614236565b6117da565b61031b611850565b6102fa6108c8366004614123565b611859565b6108fb6108db366004614236565b6001600160a01b03165f9081526003602052604090206001015460ff1690565b6040516103259190614b26565b6033546002906004908116036109315760405163840a48d560e01b815260040160405180910390fd5b5f5b8251811015610aa4576040805160018082528183019092525f916020808301908036833701905050905083828151811061096f5761096f614b34565b6020026020010151815f8151811061098957610989614b34565b6001600160a01b0392909216602092830291909101909101526040805160018082528183019092525f9181602001602082028036833701905050905060035f8685815181106109da576109da614b34565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f0154815f81518110610a1657610a16614b34565b6020026020010181815250505f610a45825f81518110610a3857610a38614b34565b6020026020010151611970565b90505f610a5a826001600160c01b031661197c565b90505f5b8151811015610a9357610a8b8585848481518110610a7e57610a7e614b34565b016020015160f81c611a45565b600101610a5e565b505060019093019250610933915050565b505050565b5f610ab76002858585611b7c565b90505b9392505050565b6001335f9081526003602052604090206001015460ff166002811115610ae957610ae96146cd565b14610b075760405163aba4733960e01b815260040160405180910390fd5b335f90815260036020526040902054610b209082611c60565b50565b610b2b611d0b565b600a80549082905560408051828152602081018490527fa77a91bea7b6d95a8eb5a54878a1d9e3c875e26c86a9b70e3420c5c5db193b62910160405180910390a15050565b60405163237dfb4760e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906346fbf68e90610bbc903390600401614180565b602060405180830381865afa158015610bd7573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bfb9190614b57565b610c1857604051631d77d47760e21b815260040160405180910390fd5b6033548181168114610c3d5760405163c61dca5d60e01b815260040160405180910390fd5b610c4682611d65565b5050565b604080516060810182525f80825260208201819052918101919091525f838152600260205260409020805483908110610c8557610c85614b34565b5f91825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160c01b03600160401b909304929092169082015290505b92915050565b6040516308f6629d60e31b8152600481018290525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906347b314e890602401602060405180830381865afa158015610d3d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cd29190614b70565b610d69611d0b565b610b2081611da2565b610d7a611d0b565b610b2081611e0b565b610d8b611e74565b603354600190600290811603610db45760405163840a48d560e01b815260040160405180910390fd5b610dbd83611616565b610dda576040516366e565df60e01b815260040160405180910390fd5b5f610de483611ebd565b9050610df08582611f65565b5050505050565b604080518082019091525f8082526020820152610cd2610e16836114a0565b612213565b610e23611d0b565b610e3184848460018561229d565b50505050565b603354600290600490811603610e605760405163840a48d560e01b815260040160405180910390fd5b610ea283838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201829052505460ff1692506127ba915050565b5083518214610ec45760405163aaad13f760e01b815260040160405180910390fd5b5f5b82811015610df0575f848483818110610ee157610ee1614b34565b885192013560f81c92505f9188915084908110610f0057610f00614b34565b60209081029190910101516040516379a0849160e11b815260ff841660048201529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f341092290602401602060405180830381865afa158015610f73573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f979190614b8b565b63ffffffff16815114610fbd57604051638e5aeee760e01b815260040160405180910390fd5b5f81516001600160401b03811115610fd757610fd7613fbb565b604051908082528060200260200182016040528015611000578160200160208202803683370190505b5090505f805b83518110156110f6575f84828151811061102257611022614b34565b6020026020010151905060035f826001600160a01b03166001600160a01b031681526020019081526020015f205f015484838151811061106457611064614b34565b6020026020010181815250505f611086858481518110610a3857610a38614b34565b905060016001600160c01b03821660ff89161c8116146110b95760405163d053aa2160e01b815260040160405180910390fd5b836001600160a01b0316826001600160a01b0316116110eb5760405163ba50f91160e01b815260040160405180910390fd5b509150600101611006565b50611102838386611a45565b60ff84165f81815260056020908152604091829020439081905591519182527f46077d55330763f16269fd75e5761663f4192d2791747c0189b16ad31db07db4910160405180910390a250505050806001019050610ec6565b603254610100900460ff161580801561117b5750603254600160ff909116105b806111955750303b158015611195575060325460ff166001145b6111fd5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6032805460ff191660011790558015611220576032805461ff0019166101001790555b6112766040518060400160405280601681526020017520ab29a932b3b4b9ba393ca1b7b7b93234b730ba37b960511b8152506040518060400160405280600681526020016576302e302e3160d01b8152506127ee565b61127f8661281f565b61128885611da2565b61129183611d65565b61129a84611e0b565b6112a382612870565b80156112e9576032805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b606061131c7f00000000000000000000000000000000000000000000000000000000000000006128dc565b905090565b604080518082019091525f80825260208201526001600160a01b0382165f908152600360209081526040918290208251808401909352805483526001810154909183019060ff166002811115611379576113796146cd565b600281111561138a5761138a6146cd565b90525092915050565b60405163237dfb4760e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906346fbf68e906113df903390600401614180565b602060405180830381865afa1580156113fa573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061141e9190614b57565b61143b57604051631d77d47760e21b815260040160405180910390fd5b6114455f19611d65565b565b61144f611d0b565b8161145981612919565b610aa48383612941565b61146b6129d2565b6001600160a01b0382165f908152600960205260409020429055610c4682826129fd565b611497611d0b565b6114455f61281f565b5f610cd27f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de6836040516020016114e99291909182526001600160a01b0316602082015260400190565b60405160208183030381529060405280519060200120612a93565b61150c611d0b565b610aa48383835f5f61229d565b5f6060805f5f5f606060c8545f5f1b148015611535575060c954155b6115795760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b60448201526064016111f4565b611581612abf565b611589612b4f565b604080515f80825260208201909252600f60f81b9b939a50919850469750309650945092509050565b5f6115f17f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a87878787876040516020016114e996959493929190614ba6565b9695505050505050565b5f610cd282611970565b61160d611d0b565b610b2081612870565b600b546001600160a01b0391821691161490565b6060610aba60028484612b5e565b611640611e74565b6033545f906001908116036116685760405163840a48d560e01b815260040160405180910390fd5b61167185611616565b61168e576040516366e565df60e01b815260040160405180910390fd5b5f61169885611ebd565b90505f80806116a986880188614d35565b9250925092505f6116ba8b83612c0d565b90505f8460018111156116cf576116cf6146cd565b03611778575f6116e38c8388876001612ca6565b5190505f5b8651811015611771575f87828151811061170457611704614b34565b0160209081015160f81c5f8181526001909252604090912054845191925063ffffffff169084908490811061173b5761173b614b34565b602002602001015163ffffffff1611156117685760405163c6b9e76760e01b815260040160405180910390fd5b506001016116e8565b50506117cd565b600184600181111561178c5761178c6146cd565b036117b4575f8061179f898b018b614d90565b945094505050506117718d84898886866130ed565b60405163354bb8ab60e01b815260040160405180910390fd5b5050505050505050505050565b6117e2611d0b565b6001600160a01b0381166118475760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016111f4565b610b208161281f565b5f61131c6132e2565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118b5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118d99190614b70565b6001600160a01b0316336001600160a01b03161461190a5760405163794821ff60e01b815260040160405180910390fd5b603354801982198116146119315760405163c61dca5d60e01b815260040160405180910390fd5b603382905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020015b60405180910390a25050565b5f610cd26002836132eb565b60605f5f61198984613355565b61ffff166001600160401b038111156119a4576119a4613fbb565b6040519080825280601f01601f1916602001820160405280156119ce576020820181803683370190505b5090505f805b8251821080156119e5575061010081105b15611a3b576001811b935085841615611a2b578060f81b838381518110611a0e57611a0e614b34565b60200101906001600160f81b03191690815f1a9053508160010191505b611a3481614e9d565b90506119d4565b5090949350505050565b6040805160018082528183019092525f916020820181803683370190505090508160f81b815f81518110611a7b57611a7b614b34565b60200101906001600160f81b03191690815f1a905350604051636c3fb4bf60e01b81525f906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636c3fb4bf90611ae390889088908890600401614eb5565b5f604051808303815f875af1158015611afe573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611b259190810190614f45565b90505f5b85518110156112e957818181518110611b4457611b44614b34565b602002602001015115611b7457611b74868281518110611b6657611b66614b34565b6020026020010151846129fd565b600101611b29565b5f838152602085905260408120805482919084908110611b9e57611b9e614b34565b5f91825260209182902060408051606081018252929091015463ffffffff808216808552600160201b8304821695850195909552600160401b9091046001600160c01b03169183019190915290925085161015611c0e57604051636cb19aff60e01b815260040160405180910390fd5b602081015163ffffffff161580611c345750806020015163ffffffff168463ffffffff16105b611c515760405163bbba60cb60e01b815260040160405180910390fd5b6040015190505b949350505050565b6040516378219b3f60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f043367e90611cae9085908590600401614fd2565b5f604051808303815f87803b158015611cc5575f5ffd5b505af1158015611cd7573d5f5f3e3d5ffd5b50505050817fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa8260405161196491906146bb565b6096546001600160a01b031633146114455760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016111f4565b603381905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b6007546040517f315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c91611de1916001600160a01b03909116908490614fea565b60405180910390a1600780546001600160a01b0319166001600160a01b0392909216919091179055565b6008546040517f8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc991611e4a916001600160a01b03909116908490614fea565b60405180910390a1600880546001600160a01b0319166001600160a01b0392909216919091179055565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611445576040516323d871a560e01b815260040160405180910390fd5b60605f82516001600160401b03811115611ed957611ed9613fbb565b6040519080825280601f01601f191660200182016040528015611f03576020820181803683370190505b5090505f5b8351811015611f5e57838181518110611f2357611f23614b34565b602002602001015160f81b828281518110611f4057611f40614b34565b60200101906001600160f81b03191690815f1a905350600101611f08565b5092915050565b6001600160a01b0382165f90815260036020526040812080549091611f8982611970565b905060018084015460ff166002811115611fa557611fa56146cd565b14611fc35760405163aba4733960e01b815260040160405180910390fd5b5f8054611fd490869060ff166127ba565b90506001600160c01b038116611ffd576040516368b6a87560e11b815260040160405180910390fd5b6120146001600160c01b0382811690841681161490565b6120315760405163d053aa2160e01b815260040160405180910390fd5b6001600160c01b038181161983161661204a848261337f565b6001600160c01b0381166120a6576001600160a01b0387165f81815260036020526040808220600101805460ff19166002179055518692917f396fdcb180cb0fea26928113fb0fd1c3549863f9cd563e6a184f1d578116c8e491a35b60405163f4e24fe560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f4e24fe5906120f4908a908a90600401615004565b5f604051808303815f87803b15801561210b575f5ffd5b505af115801561211d573d5f5f3e3d5ffd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd915061216f9087908a90600401614fd2565b5f604051808303815f87803b158015612186575f5ffd5b505af1158015612198573d5f5f3e3d5ffd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd91506121ea9087908a90600401614fd2565b5f604051808303815f87803b158015612201575f5ffd5b505af11580156117cd573d5f5f3e3d5ffd5b604080518082019091525f80825260208201525f80806122405f51602061570e5f395f51905f528661503b565b90505b61224c8161338b565b90935091505f51602061570e5f395f51905f528283098303612284576040805180820190915290815260208101919091529392505050565b5f51602061570e5f395f51905f52600182089050612243565b5f5460ff1660c081106122c357604051633cb89c9760e01b815260040160405180910390fd5b5f80546001919081906122da90849060ff1661504e565b92506101000a81548160ff021916908360ff1602179055506122fc8187612941565b6040805160018082528183019092525f91816020015b604080518082019091525f8152606060208201528152602001906001900390816123125790505090505f85516001600160401b0381111561235557612355613fbb565b60405190808252806020026020018201604052801561237e578160200160208202803683370190505b5090505f5b86518110156123db5786818151811061239e5761239e614b34565b60200260200101515f01518282815181106123bb576123bb614b34565b6001600160a01b0390921660209283029190910190910152600101612383565b5060405180604001604052808460ff1663ffffffff16815260200182815250825f8151811061240c5761240c614b34565b6020908102919091010152600b54604051630130fc2760e51b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169263261f84e09261246c9291909116908690600401615067565b5f604051808303815f87803b158015612483575f5ffd5b505af1158015612495573d5f5f3e3d5ffd5b505f92506124a1915050565b8560018111156124b3576124b36146cd565b0361253a57604051633aea0b9d60e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906375d4173a906125089086908b908b90600401615177565b5f604051808303815f87803b15801561251f575f5ffd5b505af1158015612531573d5f5f3e3d5ffd5b5050505061267e565b600185600181111561254e5761254e6146cd565b0361267e578363ffffffff167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632981eb776040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125b6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125da9190614b8b565b63ffffffff16116125fe57604051630bd441b960e21b815260040160405180910390fd5b604051630662d3e160e51b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc5a7c20906126509086908b9089908c906004016151aa565b5f604051808303815f87803b158015612667575f5ffd5b505af1158015612679573d5f5f3e3d5ffd5b505050505b60405163136ca0f960e11b815260ff841660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906326d941f2906024015f604051808303815f87803b1580156126df575f5ffd5b505af11580156126f1573d5f5f3e3d5ffd5b505060405163136ca0f960e11b815260ff861660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506326d941f291506024015f604051808303815f87803b158015612756575f5ffd5b505af1158015612768573d5f5f3e3d5ffd5b505050508260ff167fa34835bc2b673ec37fcf1591a91295b163fc2e181e4ea4e733beb27de1ceac4c89898989896040516127a79594939291906151e0565b60405180910390a25b5050505050505050565b5f5f6127c584613407565b9050808360ff166001901b11610aba5760405163ca95733360e01b815260040160405180910390fd5b603254610100900460ff166128155760405162461bcd60e51b81526004016111f490615261565b610c4682826134c2565b609680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b600b546040516001600160a01b03909116907f9770f3cadfdcbb6f93af935e86047111590c3768271d237e4a2bc0b874bed693906128b19083908590614fea565b60405180910390a150600b80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f6128e883613510565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b5f5460ff90811690821610610b2057604051637310cff560e11b815260040160405180910390fd5b60ff82165f8181526001602090815260409182902084518154928601518487015161ffff908116600160301b0267ffff0000000000001991909216600160201b0265ffffffffffff1990951663ffffffff909316929092179390931716919091179055517f3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac90611964908490614af3565b6008546001600160a01b03163314611445576040516376d8ab1760e11b815260040160405180910390fd5b6001600160a01b0382165f90815260036020526040902060018082015460ff166002811115612a2e57612a2e6146cd565b14612a4c576040516325ec6c1f60e01b815260040160405180910390fd5b80545f8054612a5f90859060ff166127ba565b90505f612a6b83611970565b9050612a846001600160c01b0383811690831681161490565b156112e9576112e98686613537565b5f610cd2612a9f6132e2565b8360405161190160f01b8152600281019290925260228201526042902090565b606060ca8054612ace906152ac565b80601f0160208091040260200160405190810160405280929190818152602001828054612afa906152ac565b8015612b455780601f10612b1c57610100808354040283529160200191612b45565b820191905f5260205f20905b815481529060010190602001808311612b2857829003601f168201915b5050505050905090565b606060cb8054612ace906152ac565b60605f82516001600160401b03811115612b7a57612b7a613fbb565b604051908082528060200260200182016040528015612ba3578160200160208202803683370190505b5090505f5b8351811015612c0457612bd58686868481518110612bc857612bc8614b34565b60200260200101516135d5565b828281518110612be757612be7614b34565b63ffffffff90921660209283029190910190910152600101612ba8565b50949350505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166303c5a6b68484612c4887610df7565b6040518463ffffffff1660e01b8152600401612c6693929190615306565b6020604051808303815f875af1158015612c82573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aba919061537f565b612cca60405180606001604052806060815260200160608152602001606081525090565b5f8054612cdb90869060ff166127ba565b90505f612ce787611970565b90506001600160c01b038216612d10576040516313ca465760e01b815260040160405180910390fd5b8082166001600160c01b031615612d3a57604051630c6816cd60e01b815260040160405180910390fd5b600a546001600160a01b0389165f908152600960205260409020546001600160c01b0383811690851617914291612d719190615396565b10612d8f57604051631968677d60e11b815260040160405180910390fd5b612d99888261337f565b612da38887611c60565b60016001600160a01b038a165f9081526003602052604090206001015460ff166002811115612dd457612dd46146cd565b14612e6b57604080518082018252898152600160208083018281526001600160a01b038e165f908152600390925293902082518155925183820180549394939192909160ff191690836002811115612e2e57612e2e6146cd565b0217905550506040518991506001600160a01b038b16907fe8e68cef1c3a761ed7be7e8463a375f27f7bc335e51824223cacce636ec5c3fe905f90a35b604051631fd93ca960e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633fb2795290612eb9908c908b90600401615004565b5f604051808303815f87803b158015612ed0575f5ffd5b505af1158015612ee2573d5f5f3e3d5ffd5b5050604051632550477760e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063255047779150612f36908c908c908c906004016153a9565b5f604051808303815f875af1158015612f51573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612f789190810190615433565b60408087019190915260208601919091525162bff04d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169062bff04d90612fd3908b908b90600401614fd2565b5f604051808303815f875af1158015612fee573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052613015919081019061548c565b845284156130e1575f5b87518110156130df575f60015f8a848151811061303e5761303e614b34565b0160209081015160f81c82528181019290925260409081015f208151606081018352905463ffffffff811680835261ffff600160201b8304811695840195909552600160301b909104909316918101919091528751805191935090849081106130a9576130a9614b34565b602002602001015163ffffffff1611156130d65760405163c6b9e76760e01b815260040160405180910390fd5b5060010161301f565b505b50505095945050505050565b835182511461310f5760405163aaad13f760e01b815260040160405180910390fd5b61311b868684846136ed565b5f613129878787875f612ca6565b90505f5b85518110156127b0575f60015f88848151811061314c5761314c614b34565b0160209081015160f81c82528181019290925260409081015f208151606081018352905463ffffffff811680835261ffff600160201b8304811695840195909552600160301b909104909316918101919091528451805191935090849081106131b7576131b7614b34565b602002602001015163ffffffff1611156132d95761324b8783815181106131e0576131e0614b34565b602001015160f81c60f81b60f81c8460400151848151811061320457613204614b34565b60200260200101518b8660200151868151811061322357613223614b34565b602002602001015189878151811061323d5761323d614b34565b602002602001015186613798565b6040805160018082528183019092525f9160208201818036833701905050905087838151811061327d5761327d614b34565b602001015160f81c60f81b815f8151811061329a5761329a614b34565b60200101906001600160f81b03191690815f1a9053506132d78684815181106132c5576132c5614b34565b602002602001015160200151826129fd565b505b5060010161312d565b5f61131c613919565b5f81815260208390526040812054808203613309575f915050610cd2565b5f83815260208590526040902061332160018361551b565b8154811061333157613331614b34565b5f91825260209091200154600160401b90046001600160c01b03169150610cd29050565b5f805b8215610cd25761336960018461551b565b90921691806133778161552e565b915050613358565b610c466002838361398c565b5f80805f51602061570e5f395f51905f5260035f51602061570e5f395f51905f52865f51602061570e5f395f51905f52888909090890505f6133fb827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f525f51602061570e5f395f51905f52613b45565b91959194509092505050565b5f6101008251111561342c57604051637da54e4760e11b815260040160405180910390fd5b81515f0361343b57505f919050565b5f5f835f8151811061344f5761344f614b34565b0160200151600160f89190911c81901b92505b84518110156134b95784818151811061347d5761347d614b34565b0160200151600160f89190911c1b91508282116134ad57604051631019106960e31b815260040160405180910390fd5b91811791600101613462565b50909392505050565b603254610100900460ff166134e95760405162461bcd60e51b81526004016111f490615261565b60ca6134f58382615592565b5060cb6135028282615592565b50505f60c881905560c95550565b5f60ff8216601f811115610cd257604051632cd44ac360e21b815260040160405180910390fd5b604080516060810182526001600160a01b038481168252600b54811660208301527f00000000000000000000000000000000000000000000000000000000000000001691636e3492b59190810161358d85613bbe565b8152506040518263ffffffff1660e01b81526004016135ac919061564c565b5f604051808303815f87803b1580156135c3575f5ffd5b505af11580156112e9573d5f5f3e3d5ffd5b5f81815260208490526040812054815b818110156136585760016135f9828461551b565b613603919061551b565b92508463ffffffff16865f8681526020019081526020015f208463ffffffff168154811061363357613633614b34565b5f9182526020909120015463ffffffff1611613650575050610aba565b6001016135e5565b5060405162461bcd60e51b815260206004820152605c60248201527f5265676973747279436f6f7264696e61746f722e67657451756f72756d42697460448201527f6d6170496e6465784174426c6f636b4e756d6265723a206e6f206269746d617060648201527f2075706461746520666f756e6420666f72206f70657261746f72496400000000608482015260a4016111f4565b6020808201515f9081526004909152604090205460ff161561372257604051636fbefec360e11b815260040160405180910390fd5b428160400151101561374757604051630819bdcd60e01b815260040160405180910390fd5b602080820180515f9081526004909252604091829020805460ff19166001179055600754905191830151610e31926001600160a01b039092169161379191889188918891906115b2565b8351613c63565b6020808301516001600160a01b038082165f81815260039094526040909320549192908716036137db576040516356168b4160e11b815260040160405180910390fd5b8760ff16845f015160ff161461380457604051638e5aeee760e01b815260040160405180910390fd5b604051635401ed2760e01b81526004810182905260ff891660248201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635401ed2790604401602060405180830381865afa158015613872573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138969190615688565b90506138a28185613c8b565b6001600160601b0316866001600160601b0316116138d357604051634c44995d60e01b815260040160405180910390fd5b6138dd8885613cae565b6001600160601b0316816001600160601b03161061390e5760405163b187e86960e01b815260040160405180910390fd5b505050505050505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f613943613cc7565b61394b613d1f565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f8281526020849052604081205490819003613a30575f83815260208581526040808320815160608101835263ffffffff43811682528185018681526001600160c01b03808a16958401958652845460018101865594885295909620915191909201805495519351909416600160401b026001600160401b03938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055610e31565b5f838152602085905260408120613a4860018461551b565b81548110613a5857613a58614b34565b5f918252602090912001805490915063ffffffff438116911603613a995780546001600160401b0316600160401b6001600160c01b03851602178155610df0565b805463ffffffff438116600160201b81810267ffffffff00000000199094169390931784555f8781526020898152604080832081516060810183529485528483018481526001600160c01b03808c1693870193845282546001810184559286529390942094519401805493519151909216600160401b026001600160401b0391861690960267ffffffffffffffff19909316939094169290921717919091169190911790555050505050565b5f5f613b4f613f7f565b613b57613f9d565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280613b9457fe5b5082613bb35760405163d51edae360e01b815260040160405180910390fd5b505195945050505050565b60605f82516001600160401b03811115613bda57613bda613fbb565b604051908082528060200260200182016040528015613c03578160200160208202803683370190505b5090505f5b8351811015611f5e57838181518110613c2357613c23614b34565b602001015160f81c60f81b60f81c60ff16828281518110613c4657613c46614b34565b63ffffffff90921660209283029190910190910152600101613c08565b613c6e838383613d4f565b610aa457604051638baa579f60e01b815260040160405180910390fd5b60208101515f9061271090613ca49061ffff16856156a3565b610aba91906156c5565b60408101515f9061271090613ca49061ffff16856156a3565b5f5f613cd1612abf565b805190915015613ce8578051602090910120919050565b60c8548015613cf75792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b5f5f613d29612b4f565b805190915015613d40578051602090910120919050565b60c9548015613cf75792915050565b5f5f5f613d5c8585613da3565b90925090505f816004811115613d7457613d746146cd565b148015613d925750856001600160a01b0316826001600160a01b0316145b806115f157506115f1868686613de5565b5f5f8251604103613dd7576020830151604084015160608501515f1a613dcb87828585613ecc565b94509450505050613dde565b505f905060025b9250929050565b5f5f5f856001600160a01b0316631626ba7e60e01b8686604051602401613e0d929190614fd2565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051613e4b91906156f2565b5f60405180830381855afa9150503d805f8114613e83576040519150601f19603f3d011682016040523d82523d5f602084013e613e88565b606091505b5091509150818015613e9c57506020815110155b80156115f157508051630b135d3f60e11b90613ec1908301602090810190840161537f565b149695505050505050565b5f806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03831115613ef757505f90506003613f76565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015613f48573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116613f70575f60019250925050613f76565b91505f90505b94509492505050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b0381118282101715613ff157613ff1613fbb565b60405290565b604080519081016001600160401b0381118282101715613ff157613ff1613fbb565b604051601f8201601f191681016001600160401b038111828210171561404157614041613fbb565b604052919050565b5f6001600160401b0382111561406157614061613fbb565b5060051b60200190565b6001600160a01b0381168114610b20575f5ffd5b5f82601f83011261408e575f5ffd5b81356140a161409c82614049565b614019565b8082825260208201915060208360051b8601019250858311156140c2575f5ffd5b602085015b838110156140e85780356140da8161406b565b8352602092830192016140c7565b5095945050505050565b5f60208284031215614102575f5ffd5b81356001600160401b03811115614117575f5ffd5b611c588482850161407f565b5f60208284031215614133575f5ffd5b5035919050565b63ffffffff81168114610b20575f5ffd5b5f5f5f6060848603121561415d575f5ffd5b83359250602084013561416f8161413a565b929592945050506040919091013590565b6001600160a01b0391909116815260200190565b5f82601f8301126141a3575f5ffd5b8135602083015f5f6001600160401b038411156141c2576141c2613fbb565b50601f8301601f19166020016141d781614019565b9150508281528583830111156141eb575f5ffd5b828260208301375f92810160200192909252509392505050565b5f60208284031215614215575f5ffd5b81356001600160401b0381111561422a575f5ffd5b611c5884828501614194565b5f60208284031215614246575f5ffd5b8135610aba8161406b565b5f5f60408385031215614262575f5ffd5b50508035926020909101359150565b803560ff81168114614281575f5ffd5b919050565b5f60208284031215614296575f5ffd5b610aba82614271565b5f82601f8301126142ae575f5ffd5b81356142bc61409c82614049565b8082825260208201915060208360051b8601019250858311156142dd575f5ffd5b602085015b838110156140e85780356142f58161413a565b8352602092830192016142e2565b5f5f5f60608486031215614315575f5ffd5b83356143208161406b565b925060208401356143308161406b565b915060408401356001600160401b0381111561434a575f5ffd5b6143568682870161429f565b9150509250925092565b815181526020808301519082015260408101610cd2565b803561ffff81168114614281575f5ffd5b5f60608284031215614398575f5ffd5b6143a0613fcf565b905081356143ad8161413a565b81526143bb60208301614377565b60208201526143cc60408301614377565b604082015292915050565b6001600160601b0381168114610b20575f5ffd5b5f82601f8301126143fa575f5ffd5b813561440861409c82614049565b8082825260208201915060208360061b860101925085831115614429575f5ffd5b602085015b838110156140e85760408188031215614445575f5ffd5b61444d613ff7565b81356144588161406b565b81526020820135614468816143d7565b602082810191909152908452929092019160400161442e565b5f5f5f5f60c08587031215614494575f5ffd5b61449e8686614388565b935060608501356144ae816143d7565b925060808501356001600160401b038111156144c8575f5ffd5b6144d4878288016143eb565b92505060a08501356144e58161413a565b939692955090935050565b5f5f83601f840112614500575f5ffd5b5081356001600160401b03811115614516575f5ffd5b602083019150836020828501011115613dde575f5ffd5b5f5f5f6040848603121561453f575f5ffd5b83356001600160401b03811115614554575f5ffd5b8401601f81018613614564575f5ffd5b803561457261409c82614049565b8082825260208201915060208360051b850101925088831115614593575f5ffd5b602084015b838110156145d35780356001600160401b038111156145b5575f5ffd5b6145c48b60208389010161407f565b84525060209283019201614598565b50955050505060208401356001600160401b038111156145f1575f5ffd5b6145fd868287016144f0565b9497909650939450505050565b5f5f5f5f5f60a0868803121561461e575f5ffd5b85356146298161406b565b945060208601356146398161406b565b935060408601356146498161406b565b92506060860135915060808601356146608161406b565b809150509295509295909350565b5f5b83811015614688578181015183820152602001614670565b50505f910152565b5f81518084526146a781602086016020860161466e565b601f01601f19169290920160200192915050565b602081525f610aba6020830184614690565b634e487b7160e01b5f52602160045260245ffd5b600381106146f1576146f16146cd565b9052565b815181526020808301516040830191611f5e908401826146e1565b5f5f60808385031215614721575f5ffd5b61472a83614271565b91506147398460208501614388565b90509250929050565b5f5f60408385031215614753575f5ffd5b823561475e8161406b565b915060208301356001600160401b03811115614778575f5ffd5b61478485828601614194565b9150509250929050565b5f5f5f60a084860312156147a0575f5ffd5b6147aa8585614388565b925060608401356147ba816143d7565b915060808401356001600160401b038111156147d4575f5ffd5b614356868287016143eb565b60ff60f81b8816815260e060208201525f6147fe60e0830189614690565b82810360408401526148108189614690565b606084018890526001600160a01b038716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b81811015614865578351835260209384019390920191600101614847565b50909b9a5050505050505050505050565b5f82601f830112614885575f5ffd5b813561489361409c82614049565b8082825260208201915060208360061b8601019250858311156148b4575f5ffd5b602085015b838110156140e857604081880312156148d0575f5ffd5b6148d8613ff7565b6148e182614271565b815260208201356148f18161406b565b60208281019190915290845292909201916040016148b9565b5f5f5f5f5f60a0868803121561491e575f5ffd5b85356149298161406b565b94506020860135935060408601356001600160401b0381111561494a575f5ffd5b61495688828901614876565b9598949750949560608101359550608001359392505050565b5f5f60408385031215614980575f5ffd5b823561498b8161413a565b915060208301356001600160401b038111156149a5575f5ffd5b8301601f810185136149b5575f5ffd5b80356149c361409c82614049565b8082825260208201915060208360051b8501019250878311156149e4575f5ffd5b6020840193505b82841015614a065783358252602093840193909101906149eb565b809450505050509250929050565b5f8151808452602084019350602083015f5b82811015614a4a57815163ffffffff16865260209586019590910190600101614a26565b5093949350505050565b602081525f610aba6020830184614a14565b5f5f5f5f5f60808688031215614a7a575f5ffd5b8535614a858161406b565b94506020860135614a958161406b565b935060408601356001600160401b03811115614aaf575f5ffd5b614abb8882890161429f565b93505060608601356001600160401b03811115614ad6575f5ffd5b614ae2888289016144f0565b969995985093965092949392505050565b60608101610cd2828463ffffffff815116825261ffff602082015116602083015261ffff60408201511660408301525050565b60208101610cd282846146e1565b634e487b7160e01b5f52603260045260245ffd5b80518015158114614281575f5ffd5b5f60208284031215614b67575f5ffd5b610aba82614b48565b5f60208284031215614b80575f5ffd5b8151610aba8161406b565b5f60208284031215614b9b575f5ffd5b8151610aba8161413a565b5f60c0820188835260018060a01b038816602084015286604084015260c0606084015280865180835260e0850191506020880192505f5b81811015614c13578351805160ff1684526020908101516001600160a01b03168185015290930192604090920191600101614bdd565b50506080840195909552505060a00152949350505050565b803560028110614281575f5ffd5b5f60408284031215614c49575f5ffd5b614c51613ff7565b823581526020928301359281019290925250919050565b5f82601f830112614c77575f5ffd5b614c7f613ff7565b806040840185811115614c90575f5ffd5b845b81811015614caa578035845260209384019301614c92565b509095945050505050565b5f818303610100811215614cc7575f5ffd5b614ccf613fcf565b9150614cdb8484614c39565b8252614cea8460408501614c39565b60208301526080607f1982011215614d00575f5ffd5b50614d09613ff7565b614d168460808501614c68565b8152614d258460c08501614c68565b6020820152604082015292915050565b5f5f5f6101408486031215614d48575f5ffd5b614d5184614c2b565b925060208401356001600160401b03811115614d6b575f5ffd5b614d7786828701614194565b925050614d878560408601614cb5565b90509250925092565b5f5f5f5f5f6101808688031215614da5575f5ffd5b614dae86614c2b565b945060208601356001600160401b03811115614dc8575f5ffd5b614dd488828901614194565b945050614de48760408801614cb5565b92506101408601356001600160401b03811115614dff575f5ffd5b614e0b88828901614876565b9250506101608601356001600160401b03811115614e27575f5ffd5b860160608189031215614e38575f5ffd5b614e40613fcf565b81356001600160401b03811115614e55575f5ffd5b614e618a828501614194565b8252506020828101359082015260409182013591810191909152949793965091945092919050565b634e487b7160e01b5f52601160045260245ffd5b5f60018201614eae57614eae614e89565b5060010190565b606080825284519082018190525f9060208601906080840190835b81811015614ef75783516001600160a01b0316835260209384019390920191600101614ed0565b5050838103602080860191909152865180835291810192508601905f5b81811015614f32578251845260209384019390920191600101614f14565b50505060ff841660408401529050611c58565b5f60208284031215614f55575f5ffd5b81516001600160401b03811115614f6a575f5ffd5b8201601f81018413614f7a575f5ffd5b8051614f8861409c82614049565b8082825260208201915060208360051b850101925086831115614fa9575f5ffd5b6020840193505b828410156115f157614fc184614b48565b825260209384019390910190614fb0565b828152604060208201525f610ab76040830184614690565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03831681526040602082018190525f90610ab790830184614690565b634e487b7160e01b5f52601260045260245ffd5b5f8261504957615049615027565b500690565b60ff8181168382160190811115610cd257610cd2614e89565b5f6040820160018060a01b03851683526040602084015280845180835260608501915060608160051b8601019250602086015f5b8281101561511c57868503605f190184528151805163ffffffff168652602090810151604082880181905281519088018190529101905f9060608801905b808310156151045783516001600160a01b0316825260209384019360019390930192909101906150d9565b5096505050602093840193919091019060010161509b565b5092979650505050505050565b5f8151808452602084019350602083015f5b82811015614a4a57815180516001600160a01b031687526020908101516001600160601b0316818801526040909601959091019060010161513b565b60ff841681526001600160601b0383166020820152606060408201525f6151a16060830184615129565b95945050505050565b60ff851681526001600160601b038416602082015263ffffffff83166040820152608060608201525f6115f16080830184615129565b61520f818763ffffffff815116825261ffff602082015116602083015261ffff60408201511660408301525050565b6001600160601b038516606082015260e060808201525f61523360e0830186615129565b905060028410615245576152456146cd565b8360a083015263ffffffff831660c08301529695505050505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600181811c908216806152c057607f821691505b6020821081036152de57634e487b7160e01b5f52602260045260245ffd5b50919050565b805f5b6002811015610e315781518452602093840193909101906001016152e7565b6001600160a01b0384168152825180516020808401919091520151604082015261016081016020848101518051606085015290810151608084015250604084015161535560a0840182516152e4565b6020015161536660e08401826152e4565b5082516101208301526020830151610140830152611c58565b5f6020828403121561538f575f5ffd5b5051919050565b80820180821115610cd257610cd2614e89565b60018060a01b0384168152826020820152606060408201525f6151a16060830184614690565b5f82601f8301126153de575f5ffd5b81516153ec61409c82614049565b8082825260208201915060208360051b86010192508583111561540d575f5ffd5b602085015b838110156140e8578051615425816143d7565b835260209283019201615412565b5f5f60408385031215615444575f5ffd5b82516001600160401b03811115615459575f5ffd5b615465858286016153cf565b92505060208301516001600160401b03811115615480575f5ffd5b614784858286016153cf565b5f6020828403121561549c575f5ffd5b81516001600160401b038111156154b1575f5ffd5b8201601f810184136154c1575f5ffd5b80516154cf61409c82614049565b8082825260208201915060208360051b8501019250868311156154f0575f5ffd5b6020840193505b828410156115f157835161550a8161413a565b8252602093840193909101906154f7565b81810381811115610cd257610cd2614e89565b5f61ffff821661ffff810361554557615545614e89565b60010192915050565b601f821115610aa457805f5260205f20601f840160051c810160208510156155735750805b601f840160051c820191505b81811015610df0575f815560010161557f565b81516001600160401b038111156155ab576155ab613fbb565b6155bf816155b984546152ac565b8461554e565b6020601f8211600181146155f1575f83156155da5750848201515b5f19600385901b1c1916600184901b178455610df0565b5f84815260208120601f198516915b828110156156205787850151825560209485019460019092019101615600565b508482101561563d57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b602080825282516001600160a01b039081168383015290830151166040808301919091528201516060808301525f90611c586080840182614a14565b5f60208284031215615698575f5ffd5b8151610aba816143d7565b6001600160601b038181168382160290811690818114611f5e57611f5e614e89565b5f6001600160601b038316806156dd576156dd615027565b806001600160601b0384160491505092915050565b5f825161570381846020870161466e565b919091019291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47a2646970667358221220e90887aea0d2963b88e742569173c5a48f10510f48de197b1066471dd4575af764736f6c634300081b0033
3958    /// ```
3959    #[rustfmt::skip]
3960    #[allow(clippy::all)]
3961    pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
3962        b"a\x01``@R4\x80\x15a\0\x10W__\xFD[P`@Qa[\xCA8\x03\x80a[\xCA\x839\x81\x01`@\x81\x90Ra\0/\x91a\x01\xFBV[`\x01`\x01`\xA0\x1B\x03\x80\x88\x16`\xC0R\x80\x87\x16`\xA0R\x80\x86\x16`\xE0R\x80\x85\x16`\x80R\x83\x16a\x01\0R\x81\x81a\0`\x81a\0\xADV[a\x01 RP`\x01`\x01`\xA0\x1B\x03\x81\x16a\0\x8CW`@Qc9\xB1\x90\xBB`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x16a\x01@Ra\0\xA1a\0\xF3V[PPPPPPPa\x03uV[__\x82\x90P`\x1F\x81Q\x11\x15a\0\xE0W\x82`@Qc0Z'\xA9`\xE0\x1B\x81R`\x04\x01a\0\xD7\x91\x90a\x03\x1DV[`@Q\x80\x91\x03\x90\xFD[\x80Qa\0\xEB\x82a\x03OV[\x17\x93\x92PPPV[`2Ta\x01\0\x90\x04`\xFF\x16\x15a\x01[W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FInitializable: contract is initi`D\x82\x01Rfalizing`\xC8\x1B`d\x82\x01R`\x84\x01a\0\xD7V[`2T`\xFF\x90\x81\x16\x14a\x01\xACW`2\x80T`\xFF\x19\x16`\xFF\x90\x81\x17\x90\x91U`@Q\x90\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x01\xC2W__\xFD[PV[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[_[\x83\x81\x10\x15a\x01\xF3W\x81\x81\x01Q\x83\x82\x01R` \x01a\x01\xDBV[PP_\x91\x01RV[_______`\xE0\x88\x8A\x03\x12\x15a\x02\x11W__\xFD[\x87Qa\x02\x1C\x81a\x01\xAEV[` \x89\x01Q\x90\x97Pa\x02-\x81a\x01\xAEV[`@\x89\x01Q\x90\x96Pa\x02>\x81a\x01\xAEV[``\x89\x01Q\x90\x95Pa\x02O\x81a\x01\xAEV[`\x80\x89\x01Q\x90\x94Pa\x02`\x81a\x01\xAEV[`\xA0\x89\x01Q\x90\x93Pa\x02q\x81a\x01\xAEV[`\xC0\x89\x01Q\x90\x92P`\x01`\x01`@\x1B\x03\x81\x11\x15a\x02\x8CW__\xFD[\x88\x01`\x1F\x81\x01\x8A\x13a\x02\x9CW__\xFD[\x80Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\x02\xB5Wa\x02\xB5a\x01\xC5V[`@Q`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15a\x02\xE3Wa\x02\xE3a\x01\xC5V[`@R\x81\x81R\x82\x82\x01` \x01\x8C\x10\x15a\x02\xFAW__\xFD[a\x03\x0B\x82` \x83\x01` \x86\x01a\x01\xD9V[\x80\x93PPPP\x92\x95\x98\x91\x94\x97P\x92\x95PV[` \x81R_\x82Q\x80` \x84\x01Ra\x03;\x81`@\x85\x01` \x87\x01a\x01\xD9V[`\x1F\x01`\x1F\x19\x16\x91\x90\x91\x01`@\x01\x92\x91PPV[\x80Q` \x80\x83\x01Q\x91\x90\x81\x10\x15a\x03oW_\x19\x81` \x03`\x03\x1B\x1B\x82\x16\x91P[P\x91\x90PV[`\x80Q`\xA0Q`\xC0Q`\xE0Qa\x01\0Qa\x01 Qa\x01@QaWca\x04g_9_\x81\x81a\x06\x9B\x01R\x81\x81a\x0B\x87\x01R\x81\x81a\x13\xAA\x01Ra\x18[\x01R_a\x12\xF8\x01R_\x81\x81a\x07\xC8\x01R\x81\x81a\x1E\x7F\x01R\x81\x81a$1\x01R\x81\x81a%\\\x01Ra5Z\x01R_\x81\x81a\x06\xF1\x01R\x81\x81a\x0F.\x01R\x81\x81a!\xB1\x01R\x81\x81a&\x96\x01Ra/\x9D\x01R_\x81\x81a\x05\xF2\x01R\x81\x81a\x1A\xAA\x01R\x81\x81a!6\x01R\x81\x81a$\xCF\x01R\x81\x81a&\x15\x01R\x81\x81a.\xFB\x01Ra8%\x01R_\x81\x81a\x05\xCB\x01R\x81\x81a\x0C\xF0\x01R\x81\x81a \xBD\x01R\x81\x81a'\x0B\x01R\x81\x81a,\x10\x01Ra.\x82\x01R_\x81\x81a\x08}\x01Ra\x1Cw\x01RaWc_\xF3\xFE`\x80`@R4\x80\x15a\0\x0FW__\xFD[P`\x046\x10a\x02\xE3W_5`\xE0\x1C\x80c]\xF4YF\x11a\x01\x8DW\x80c\xA6T\x97\xC6\x11a\0\xE0W\x80c\xDE\x11d\xBB\x11a\0\x8FW\x80c\xDE\x11d\xBB\x14a\x07\xEAW\x80c\xE6W\x97\xAD\x14a\x07\xFDW\x80c\xEA2\xAF\xAE\x14a\x08xW\x80c\xF2\xFD\xE3\x8B\x14a\x08\x9FW\x80c\xF6\x98\xDA%\x14a\x08\xB2W\x80c\xFA\xBC\x1C\xBC\x14a\x08\xBAW\x80c\xFD9\x10Z\x14a\x08\xCDW__\xFD[\x80c\xA6T\x97\xC6\x14a\x07:W\x80c\xA9ox>\x14a\x07MW\x80c\xB5&W\x87\x14a\x07VW\x80c\xC3\x91B^\x14a\x07iW\x80c\xC6?\xD5\x02\x14a\x07\x89W\x80c\xCA\r\xE8\x82\x14a\x07\x9CW\x80c\xCA\x8A\xA7\xC7\x14a\x07\xC3W__\xFD[\x80c\x84\xCAR\x13\x11a\x01<W\x80c\x84\xCAR\x13\x14a\x06pW\x80c\x87\x1E\xF0I\x14a\x06\x83W\x80c\x88o\x11\x95\x14a\x06\x96W\x80c\x8D\xA5\xCB[\x14a\x06\xBDW\x80c\x9A\xA1e=\x14a\x06\xCEW\x80c\x9E\x99#\xC2\x14a\x06\xECW\x80c\x9F\xEA\xB8Y\x14a\x07\x13W__\xFD[\x80c]\xF4YF\x14a\x05\xC6W\x80ch0H5\x14a\x05\xEDW\x80cn;\x17\xDB\x14a\x06\x14W\x80cqP\x18\xA6\x14a\x06'W\x80csDy\x92\x14a\x06/W\x80c\x82\x81\xABu\x14a\x06BW\x80c\x84\xB0\x19n\x14a\x06UW__\xFD[\x80c)k\xB0d\x11a\x02EW\x80cS\x0B\x97\xA4\x11a\x01\xF4W\x80cS\x0B\x97\xA4\x14a\x058W\x80cT\xFDMP\x14a\x05KW\x80cXe\xC6\x0C\x14a\x05`W\x80cY\\jg\x14a\x05\x80W\x80cZ\xC8j\xB7\x14a\x05\x88W\x80c[\x0B\x82\x9F\x14a\x05\xABW\x80c\\\x97Z\xBB\x14a\x05\xBEW__\xFD[\x80c)k\xB0d\x14a\x04\xA6W\x80c)\xD1\xE0\xC3\x14a\x04\xB9W\x80c,\xDD\x1E\x86\x14a\x04\xCCW\x80c0<\xA9V\x14a\x04\xDFW\x80c<*\x7FL\x14a\x04\xF2W\x80c>\xEF:Q\x14a\x05\x12W\x80cQ@\xA5H\x14a\x05%W__\xFD[\x80c\x12^\x05\x84\x11a\x02\xA1W\x80c\x12^\x05\x84\x14a\x03\x9FW\x80c\x13T*N\x14a\x03\xBEW\x80c\x13d9\xDD\x14a\x03\xE6W\x80c\x14x\x85\x1F\x14a\x03\xF9W\x80c\x1E\xB8\x12\xDA\x14a\x04+W\x80c$\x9A\x0CB\x14a\x04tW\x80c(\xF6\x1B1\x14a\x04\x93W__\xFD[\x80b\xCF*\xB5\x14a\x02\xE7W\x80c\x03\xFD4\x92\x14a\x02\xFCW\x80c\x04\xECcQ\x14a\x03.W\x80c\x05C\x10\xE6\x14a\x03YW\x80c\x0C\xF4\xB7g\x14a\x03yW\x80c\r?!4\x14a\x03\x8CW[__\xFD[a\x02\xFAa\x02\xF56`\x04a@\xF2V[a\t\x08V[\0[a\x03\x1Ba\x03\n6`\x04aA#V[_\x90\x81R`\x02` R`@\x90 T\x90V[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x03Aa\x03<6`\x04aAKV[a\n\xA9V[`@Q`\x01`\x01`\xC0\x1B\x03\x90\x91\x16\x81R` \x01a\x03%V[`\x07Ta\x03l\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@Qa\x03%\x91\x90aA\x80V[a\x02\xFAa\x03\x876`\x04aB\x05V[a\n\xC1V[a\x02\xFAa\x03\x9A6`\x04aA#V[a\x0B#V[a\x03\x1Ba\x03\xAD6`\x04aB6V[`\t` R_\x90\x81R`@\x90 T\x81V[a\x03\x1Ba\x03\xCC6`\x04aB6V[`\x01`\x01`\xA0\x1B\x03\x16_\x90\x81R`\x03` R`@\x90 T\x90V[a\x02\xFAa\x03\xF46`\x04aA#V[a\x0BpV[a\x04\x1Ba\x04\x076`\x04aA#V[`\x04` R_\x90\x81R`@\x90 T`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01a\x03%V[a\x04>a\x0496`\x04aBQV[a\x0CJV[`@\x80Q\x82Qc\xFF\xFF\xFF\xFF\x90\x81\x16\x82R` \x80\x85\x01Q\x90\x91\x16\x90\x82\x01R\x91\x81\x01Q`\x01`\x01`\xC0\x1B\x03\x16\x90\x82\x01R``\x01a\x03%V[a\x03\x1Ba\x04\x826`\x04aB\x86V[`\x05` R_\x90\x81R`@\x90 T\x81V[`\x08Ta\x03l\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[a\x03la\x04\xB46`\x04aA#V[a\x0C\xD8V[a\x02\xFAa\x04\xC76`\x04aB6V[a\raV[a\x02\xFAa\x04\xDA6`\x04aB6V[a\rrV[a\x02\xFAa\x04\xED6`\x04aC\x03V[a\r\x83V[a\x05\x05a\x05\x006`\x04aB6V[a\r\xF7V[`@Qa\x03%\x91\x90aC`V[a\x02\xFAa\x05 6`\x04aD\x81V[a\x0E\x1BV[a\x02\xFAa\x0536`\x04aE-V[a\x0E7V[a\x02\xFAa\x05F6`\x04aF\nV[a\x11[V[a\x05Sa\x12\xF1V[`@Qa\x03%\x91\x90aF\xBBV[a\x05sa\x05n6`\x04aB6V[a\x13!V[`@Qa\x03%\x91\x90aF\xF5V[a\x02\xFAa\x13\x93V[a\x04\x1Ba\x05\x966`\x04aB\x86V[`3T`\x01`\xFF\x90\x92\x16\x91\x90\x91\x1B\x90\x81\x16\x14\x90V[a\x02\xFAa\x05\xB96`\x04aG\x10V[a\x14GV[`3Ta\x03\x1BV[a\x03l\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\x81V[a\x03l\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\x81V[a\x02\xFAa\x06\"6`\x04aGBV[a\x14cV[a\x02\xFAa\x14\x8FV[a\x03\x1Ba\x06=6`\x04aB6V[a\x14\xA0V[a\x02\xFAa\x06P6`\x04aG\x8EV[a\x15\x04V[a\x06]a\x15\x19V[`@Qa\x03%\x97\x96\x95\x94\x93\x92\x91\x90aG\xE0V[a\x03\x1Ba\x06~6`\x04aI\nV[a\x15\xB2V[a\x03Aa\x06\x916`\x04aA#V[a\x15\xFBV[a\x03l\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\x81V[`\x96T`\x01`\x01`\xA0\x1B\x03\x16a\x03lV[_Ta\x06\xDA\x90`\xFF\x16\x81V[`@Q`\xFF\x90\x91\x16\x81R` \x01a\x03%V[a\x03l\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\x81V[a\x03\x1B\x7F+\xD8!$\x05\x7F\t\x13\xBC;w,\xE7\xB8>\x80W\xC1\xAD\x1F5\x10\xFC\x83w\x8B\xE2\x0F\x10\xEC]\xE6\x81V[a\x02\xFAa\x07H6`\x04aB6V[a\x16\x05V[a\x03\x1B`\nT\x81V[a\x04\x1Ba\x07d6`\x04aB6V[a\x16\x16V[a\x07|a\x07w6`\x04aIoV[a\x16*V[`@Qa\x03%\x91\x90aJTV[a\x02\xFAa\x07\x976`\x04aJfV[a\x168V[a\x03\x1B\x7FM@N2v\xE7\xAC!c\xD8\xEEGj\xFAjA\xD1\xF6\x8F\xB7\x1F-\x8BeF\xB2NU\xCE\x01\xB7*\x81V[a\x03l\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\x81V[`\x0BTa\x03l\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[a\x08ka\x08\x0B6`\x04aB\x86V[`@\x80Q``\x80\x82\x01\x83R_\x80\x83R` \x80\x84\x01\x82\x90R\x92\x84\x01\x81\x90R`\xFF\x94\x90\x94\x16\x84R`\x01\x82R\x92\x82\x90 \x82Q\x93\x84\x01\x83RTc\xFF\xFF\xFF\xFF\x81\x16\x84Ra\xFF\xFF`\x01` \x1B\x82\x04\x81\x16\x92\x85\x01\x92\x90\x92R`\x01`0\x1B\x90\x04\x16\x90\x82\x01R\x90V[`@Qa\x03%\x91\x90aJ\xF3V[a\x03l\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\x81V[a\x02\xFAa\x08\xAD6`\x04aB6V[a\x17\xDAV[a\x03\x1Ba\x18PV[a\x02\xFAa\x08\xC86`\x04aA#V[a\x18YV[a\x08\xFBa\x08\xDB6`\x04aB6V[`\x01`\x01`\xA0\x1B\x03\x16_\x90\x81R`\x03` R`@\x90 `\x01\x01T`\xFF\x16\x90V[`@Qa\x03%\x91\x90aK&V[`3T`\x02\x90`\x04\x90\x81\x16\x03a\t1W`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_[\x82Q\x81\x10\x15a\n\xA4W`@\x80Q`\x01\x80\x82R\x81\x83\x01\x90\x92R_\x91` \x80\x83\x01\x90\x806\x837\x01\x90PP\x90P\x83\x82\x81Q\x81\x10a\toWa\toaK4V[` \x02` \x01\x01Q\x81_\x81Q\x81\x10a\t\x89Wa\t\x89aK4V[`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16` \x92\x83\x02\x91\x90\x91\x01\x90\x91\x01R`@\x80Q`\x01\x80\x82R\x81\x83\x01\x90\x92R_\x91\x81` \x01` \x82\x02\x806\x837\x01\x90PP\x90P`\x03_\x86\x85\x81Q\x81\x10a\t\xDAWa\t\xDAaK4V[` \x02` \x01\x01Q`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x90\x81R` \x01_ _\x01T\x81_\x81Q\x81\x10a\n\x16Wa\n\x16aK4V[` \x02` \x01\x01\x81\x81RPP_a\nE\x82_\x81Q\x81\x10a\n8Wa\n8aK4V[` \x02` \x01\x01Qa\x19pV[\x90P_a\nZ\x82`\x01`\x01`\xC0\x1B\x03\x16a\x19|V[\x90P_[\x81Q\x81\x10\x15a\n\x93Wa\n\x8B\x85\x85\x84\x84\x81Q\x81\x10a\n~Wa\n~aK4V[\x01` \x01Q`\xF8\x1Ca\x1AEV[`\x01\x01a\n^V[PP`\x01\x90\x93\x01\x92Pa\t3\x91PPV[PPPV[_a\n\xB7`\x02\x85\x85\x85a\x1B|V[\x90P[\x93\x92PPPV[`\x013_\x90\x81R`\x03` R`@\x90 `\x01\x01T`\xFF\x16`\x02\x81\x11\x15a\n\xE9Wa\n\xE9aF\xCDV[\x14a\x0B\x07W`@Qc\xAB\xA4s9`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[3_\x90\x81R`\x03` R`@\x90 Ta\x0B \x90\x82a\x1C`V[PV[a\x0B+a\x1D\x0BV[`\n\x80T\x90\x82\x90U`@\x80Q\x82\x81R` \x81\x01\x84\x90R\x7F\xA7z\x91\xBE\xA7\xB6\xD9Z\x8E\xB5\xA5Hx\xA1\xD9\xE3\xC8u\xE2l\x86\xA9\xB7\x0E4 \xC5\xC5\xDB\x19;b\x91\x01`@Q\x80\x91\x03\x90\xA1PPV[`@Qc#}\xFBG`\xE1\x1B\x81R`\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\x90cF\xFB\xF6\x8E\x90a\x0B\xBC\x903\x90`\x04\x01aA\x80V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0B\xD7W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0B\xFB\x91\x90aKWV[a\x0C\x18W`@Qc\x1Dw\xD4w`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`3T\x81\x81\x16\x81\x14a\x0C=W`@Qc\xC6\x1D\xCA]`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0CF\x82a\x1DeV[PPV[`@\x80Q``\x81\x01\x82R_\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x91\x90\x91R_\x83\x81R`\x02` R`@\x90 \x80T\x83\x90\x81\x10a\x0C\x85Wa\x0C\x85aK4V[_\x91\x82R` \x91\x82\x90 `@\x80Q``\x81\x01\x82R\x91\x90\x92\x01Tc\xFF\xFF\xFF\xFF\x80\x82\x16\x83R`\x01` \x1B\x82\x04\x16\x93\x82\x01\x93\x90\x93R`\x01`\x01`\xC0\x1B\x03`\x01`@\x1B\x90\x93\x04\x92\x90\x92\x16\x90\x82\x01R\x90P[\x92\x91PPV[`@Qc\x08\xF6b\x9D`\xE3\x1B\x81R`\x04\x81\x01\x82\x90R_\x90\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\x16\x90cG\xB3\x14\xE8\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\r=W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0C\xD2\x91\x90aKpV[a\ria\x1D\x0BV[a\x0B \x81a\x1D\xA2V[a\rza\x1D\x0BV[a\x0B \x81a\x1E\x0BV[a\r\x8Ba\x1EtV[`3T`\x01\x90`\x02\x90\x81\x16\x03a\r\xB4W`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\r\xBD\x83a\x16\x16V[a\r\xDAW`@Qcf\xE5e\xDF`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a\r\xE4\x83a\x1E\xBDV[\x90Pa\r\xF0\x85\x82a\x1FeV[PPPPPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x0C\xD2a\x0E\x16\x83a\x14\xA0V[a\"\x13V[a\x0E#a\x1D\x0BV[a\x0E1\x84\x84\x84`\x01\x85a\"\x9DV[PPPPV[`3T`\x02\x90`\x04\x90\x81\x16\x03a\x0E`W`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0E\xA2\x83\x83\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847_\x92\x01\x82\x90RPT`\xFF\x16\x92Pa'\xBA\x91PPV[P\x83Q\x82\x14a\x0E\xC4W`@Qc\xAA\xAD\x13\xF7`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_[\x82\x81\x10\x15a\r\xF0W_\x84\x84\x83\x81\x81\x10a\x0E\xE1Wa\x0E\xE1aK4V[\x88Q\x92\x015`\xF8\x1C\x92P_\x91\x88\x91P\x84\x90\x81\x10a\x0F\0Wa\x0F\0aK4V[` \x90\x81\x02\x91\x90\x91\x01\x01Q`@Qcy\xA0\x84\x91`\xE1\x1B\x81R`\xFF\x84\x16`\x04\x82\x01R\x90\x91P`\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\x90c\xF3A\t\"\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0FsW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0F\x97\x91\x90aK\x8BV[c\xFF\xFF\xFF\xFF\x16\x81Q\x14a\x0F\xBDW`@Qc\x8EZ\xEE\xE7`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x81Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\x0F\xD7Wa\x0F\xD7a?\xBBV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x10\0W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P_\x80[\x83Q\x81\x10\x15a\x10\xF6W_\x84\x82\x81Q\x81\x10a\x10\"Wa\x10\"aK4V[` \x02` \x01\x01Q\x90P`\x03_\x82`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x90\x81R` \x01_ _\x01T\x84\x83\x81Q\x81\x10a\x10dWa\x10daK4V[` \x02` \x01\x01\x81\x81RPP_a\x10\x86\x85\x84\x81Q\x81\x10a\n8Wa\n8aK4V[\x90P`\x01`\x01`\x01`\xC0\x1B\x03\x82\x16`\xFF\x89\x16\x1C\x81\x16\x14a\x10\xB9W`@Qc\xD0S\xAA!`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x83`\x01`\x01`\xA0\x1B\x03\x16\x82`\x01`\x01`\xA0\x1B\x03\x16\x11a\x10\xEBW`@Qc\xBAP\xF9\x11`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[P\x91P`\x01\x01a\x10\x06V[Pa\x11\x02\x83\x83\x86a\x1AEV[`\xFF\x84\x16_\x81\x81R`\x05` \x90\x81R`@\x91\x82\x90 C\x90\x81\x90U\x91Q\x91\x82R\x7FF\x07}U3\x07c\xF1bi\xFDu\xE5v\x16c\xF4\x19-'\x91t|\x01\x89\xB1j\xD3\x1D\xB0}\xB4\x91\x01`@Q\x80\x91\x03\x90\xA2PPPP\x80`\x01\x01\x90Pa\x0E\xC6V[`2Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x80\x15a\x11{WP`2T`\x01`\xFF\x90\x91\x16\x10[\x80a\x11\x95WP0;\x15\x80\x15a\x11\x95WP`2T`\xFF\x16`\x01\x14[a\x11\xFDW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01Rm\x19\x1EH\x1A[\x9A]\x1AX[\x1A^\x99Y`\x92\x1B`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[`2\x80T`\xFF\x19\x16`\x01\x17\x90U\x80\x15a\x12 W`2\x80Ta\xFF\0\x19\x16a\x01\0\x17\x90U[a\x12v`@Q\x80`@\x01`@R\x80`\x16\x81R` \x01u \xAB)\xA92\xB3\xB4\xB9\xBA9<\xA1\xB7\xB7\xB924\xB70\xBA7\xB9`Q\x1B\x81RP`@Q\x80`@\x01`@R\x80`\x06\x81R` \x01ev0.0.1`\xD0\x1B\x81RPa'\xEEV[a\x12\x7F\x86a(\x1FV[a\x12\x88\x85a\x1D\xA2V[a\x12\x91\x83a\x1DeV[a\x12\x9A\x84a\x1E\x0BV[a\x12\xA3\x82a(pV[\x80\x15a\x12\xE9W`2\x80Ta\xFF\0\x19\x16\x90U`@Q`\x01\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[PPPPPPV[``a\x13\x1C\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\0a(\xDCV[\x90P\x90V[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R`\x01`\x01`\xA0\x1B\x03\x82\x16_\x90\x81R`\x03` \x90\x81R`@\x91\x82\x90 \x82Q\x80\x84\x01\x90\x93R\x80T\x83R`\x01\x81\x01T\x90\x91\x83\x01\x90`\xFF\x16`\x02\x81\x11\x15a\x13yWa\x13yaF\xCDV[`\x02\x81\x11\x15a\x13\x8AWa\x13\x8AaF\xCDV[\x90RP\x92\x91PPV[`@Qc#}\xFBG`\xE1\x1B\x81R`\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\x90cF\xFB\xF6\x8E\x90a\x13\xDF\x903\x90`\x04\x01aA\x80V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x13\xFAW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x14\x1E\x91\x90aKWV[a\x14;W`@Qc\x1Dw\xD4w`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x14E_\x19a\x1DeV[V[a\x14Oa\x1D\x0BV[\x81a\x14Y\x81a)\x19V[a\n\xA4\x83\x83a)AV[a\x14ka)\xD2V[`\x01`\x01`\xA0\x1B\x03\x82\x16_\x90\x81R`\t` R`@\x90 B\x90Ua\x0CF\x82\x82a)\xFDV[a\x14\x97a\x1D\x0BV[a\x14E_a(\x1FV[_a\x0C\xD2\x7F+\xD8!$\x05\x7F\t\x13\xBC;w,\xE7\xB8>\x80W\xC1\xAD\x1F5\x10\xFC\x83w\x8B\xE2\x0F\x10\xEC]\xE6\x83`@Q` \x01a\x14\xE9\x92\x91\x90\x91\x82R`\x01`\x01`\xA0\x1B\x03\x16` \x82\x01R`@\x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 a*\x93V[a\x15\x0Ca\x1D\x0BV[a\n\xA4\x83\x83\x83__a\"\x9DV[_``\x80___```\xC8T__\x1B\x14\x80\x15a\x155WP`\xC9T\x15[a\x15yW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x15`$\x82\x01Rt\x11RT\r\xCCL\x8E\x88\x15[\x9A[\x9A]\x1AX[\x1A^\x99Y`Z\x1B`D\x82\x01R`d\x01a\x11\xF4V[a\x15\x81a*\xBFV[a\x15\x89a+OV[`@\x80Q_\x80\x82R` \x82\x01\x90\x92R`\x0F`\xF8\x1B\x9B\x93\x9AP\x91\x98PF\x97P0\x96P\x94P\x92P\x90PV[_a\x15\xF1\x7FM@N2v\xE7\xAC!c\xD8\xEEGj\xFAjA\xD1\xF6\x8F\xB7\x1F-\x8BeF\xB2NU\xCE\x01\xB7*\x87\x87\x87\x87\x87`@Q` \x01a\x14\xE9\x96\x95\x94\x93\x92\x91\x90aK\xA6V[\x96\x95PPPPPPV[_a\x0C\xD2\x82a\x19pV[a\x16\ra\x1D\x0BV[a\x0B \x81a(pV[`\x0BT`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x91\x16\x14\x90V[``a\n\xBA`\x02\x84\x84a+^V[a\x16@a\x1EtV[`3T_\x90`\x01\x90\x81\x16\x03a\x16hW`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x16q\x85a\x16\x16V[a\x16\x8EW`@Qcf\xE5e\xDF`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a\x16\x98\x85a\x1E\xBDV[\x90P_\x80\x80a\x16\xA9\x86\x88\x01\x88aM5V[\x92P\x92P\x92P_a\x16\xBA\x8B\x83a,\rV[\x90P_\x84`\x01\x81\x11\x15a\x16\xCFWa\x16\xCFaF\xCDV[\x03a\x17xW_a\x16\xE3\x8C\x83\x88\x87`\x01a,\xA6V[Q\x90P_[\x86Q\x81\x10\x15a\x17qW_\x87\x82\x81Q\x81\x10a\x17\x04Wa\x17\x04aK4V[\x01` \x90\x81\x01Q`\xF8\x1C_\x81\x81R`\x01\x90\x92R`@\x90\x91 T\x84Q\x91\x92Pc\xFF\xFF\xFF\xFF\x16\x90\x84\x90\x84\x90\x81\x10a\x17;Wa\x17;aK4V[` \x02` \x01\x01Qc\xFF\xFF\xFF\xFF\x16\x11\x15a\x17hW`@Qc\xC6\xB9\xE7g`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[P`\x01\x01a\x16\xE8V[PPa\x17\xCDV[`\x01\x84`\x01\x81\x11\x15a\x17\x8CWa\x17\x8CaF\xCDV[\x03a\x17\xB4W_\x80a\x17\x9F\x89\x8B\x01\x8BaM\x90V[\x94P\x94PPPPa\x17q\x8D\x84\x89\x88\x86\x86a0\xEDV[`@Qc5K\xB8\xAB`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PPPPPPPPPPPV[a\x17\xE2a\x1D\x0BV[`\x01`\x01`\xA0\x1B\x03\x81\x16a\x18GW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7FOwnable: new owner is the zero a`D\x82\x01Reddress`\xD0\x1B`d\x82\x01R`\x84\x01a\x11\xF4V[a\x0B \x81a(\x1FV[_a\x13\x1Ca2\xE2V[\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\x16c\xEA\xB6mz`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x18\xB5W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x18\xD9\x91\x90aKpV[`\x01`\x01`\xA0\x1B\x03\x163`\x01`\x01`\xA0\x1B\x03\x16\x14a\x19\nW`@QcyH!\xFF`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`3T\x80\x19\x82\x19\x81\x16\x14a\x191W`@Qc\xC6\x1D\xCA]`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`3\x82\x90U`@Q\x82\x81R3\x90\x7F5\x82\xD1\x82\x8E&\xBFV\xBD\x80\x15\x02\xBC\x02\x1A\xC0\xBC\x8A\xFBW\xC8&\xE4\x98kEY<\x8F\xAD8\x9C\x90` \x01[`@Q\x80\x91\x03\x90\xA2PPV[_a\x0C\xD2`\x02\x83a2\xEBV[``__a\x19\x89\x84a3UV[a\xFF\xFF\x16`\x01`\x01`@\x1B\x03\x81\x11\x15a\x19\xA4Wa\x19\xA4a?\xBBV[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15a\x19\xCEW` \x82\x01\x81\x806\x837\x01\x90P[P\x90P_\x80[\x82Q\x82\x10\x80\x15a\x19\xE5WPa\x01\0\x81\x10[\x15a\x1A;W`\x01\x81\x1B\x93P\x85\x84\x16\x15a\x1A+W\x80`\xF8\x1B\x83\x83\x81Q\x81\x10a\x1A\x0EWa\x1A\x0EaK4V[` \x01\x01\x90`\x01`\x01`\xF8\x1B\x03\x19\x16\x90\x81_\x1A\x90SP\x81`\x01\x01\x91P[a\x1A4\x81aN\x9DV[\x90Pa\x19\xD4V[P\x90\x94\x93PPPPV[`@\x80Q`\x01\x80\x82R\x81\x83\x01\x90\x92R_\x91` \x82\x01\x81\x806\x837\x01\x90PP\x90P\x81`\xF8\x1B\x81_\x81Q\x81\x10a\x1A{Wa\x1A{aK4V[` \x01\x01\x90`\x01`\x01`\xF8\x1B\x03\x19\x16\x90\x81_\x1A\x90SP`@Qcl?\xB4\xBF`\xE0\x1B\x81R_\x90`\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\x90cl?\xB4\xBF\x90a\x1A\xE3\x90\x88\x90\x88\x90\x88\x90`\x04\x01aN\xB5V[_`@Q\x80\x83\x03\x81_\x87Z\xF1\x15\x80\x15a\x1A\xFEW=__>=_\xFD[PPPP`@Q=_\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra\x1B%\x91\x90\x81\x01\x90aOEV[\x90P_[\x85Q\x81\x10\x15a\x12\xE9W\x81\x81\x81Q\x81\x10a\x1BDWa\x1BDaK4V[` \x02` \x01\x01Q\x15a\x1BtWa\x1Bt\x86\x82\x81Q\x81\x10a\x1BfWa\x1BfaK4V[` \x02` \x01\x01Q\x84a)\xFDV[`\x01\x01a\x1B)V[_\x83\x81R` \x85\x90R`@\x81 \x80T\x82\x91\x90\x84\x90\x81\x10a\x1B\x9EWa\x1B\x9EaK4V[_\x91\x82R` \x91\x82\x90 `@\x80Q``\x81\x01\x82R\x92\x90\x91\x01Tc\xFF\xFF\xFF\xFF\x80\x82\x16\x80\x85R`\x01` \x1B\x83\x04\x82\x16\x95\x85\x01\x95\x90\x95R`\x01`@\x1B\x90\x91\x04`\x01`\x01`\xC0\x1B\x03\x16\x91\x83\x01\x91\x90\x91R\x90\x92P\x85\x16\x10\x15a\x1C\x0EW`@Qcl\xB1\x9A\xFF`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[` \x81\x01Qc\xFF\xFF\xFF\xFF\x16\x15\x80a\x1C4WP\x80` \x01Qc\xFF\xFF\xFF\xFF\x16\x84c\xFF\xFF\xFF\xFF\x16\x10[a\x1CQW`@Qc\xBB\xBA`\xCB`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`@\x01Q\x90P[\x94\x93PPPPV[`@Qcx!\x9B?`\xE1\x1B\x81R`\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\x90c\xF0C6~\x90a\x1C\xAE\x90\x85\x90\x85\x90`\x04\x01aO\xD2V[_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a\x1C\xC5W__\xFD[PZ\xF1\x15\x80\x15a\x1C\xD7W=__>=_\xFD[PPPP\x81\x7F\xEC)c\xAB!\xC1\xE5\x0E\x1EX*\xA5B\xAF.K\xF7\xBF8\xE6\xE1@<'\xB4.\x1C]nb\x1E\xAA\x82`@Qa\x19d\x91\x90aF\xBBV[`\x96T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x14EW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FOwnable: caller is not the owner`D\x82\x01R`d\x01a\x11\xF4V[`3\x81\x90U`@Q\x81\x81R3\x90\x7F\xAB@\xA3t\xBCQ\xDE7\"\0\xA8\xBC\x98\x1A\xF8\xC9\xEC\xDC\x08\xDF\xDA\xEF\x0B\xB6\xE0\x9F\x88\xF3\xC6\x16\xEF=\x90` \x01`@Q\x80\x91\x03\x90\xA2PV[`\x07T`@Q\x7F1TW\xD8\xA8\xFE`\xF0J\xF1|\x16\xE2\xF5\xA5\xE1\xDBa+1d\x8EX\x03\x03`u\x9E\xF8\xF3R\x8C\x91a\x1D\xE1\x91`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90\x84\x90aO\xEAV[`@Q\x80\x91\x03\x90\xA1`\x07\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x90\x91\x17\x90UV[`\x08T`@Q\x7F\x8F0\xAB\t\xF4:l\x15}\x7F\xCE~\n\x13\xC0\x03\x04,\x1C\x95\xE8\xA7.z\x14j!\xC0\xCA\xA2M\xC9\x91a\x1EJ\x91`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90\x84\x90aO\xEAV[`@Q\x80\x91\x03\x90\xA1`\x08\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x90\x91\x17\x90UV[3`\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\x14EW`@Qc#\xD8q\xA5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[``_\x82Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\x1E\xD9Wa\x1E\xD9a?\xBBV[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15a\x1F\x03W` \x82\x01\x81\x806\x837\x01\x90P[P\x90P_[\x83Q\x81\x10\x15a\x1F^W\x83\x81\x81Q\x81\x10a\x1F#Wa\x1F#aK4V[` \x02` \x01\x01Q`\xF8\x1B\x82\x82\x81Q\x81\x10a\x1F@Wa\x1F@aK4V[` \x01\x01\x90`\x01`\x01`\xF8\x1B\x03\x19\x16\x90\x81_\x1A\x90SP`\x01\x01a\x1F\x08V[P\x92\x91PPV[`\x01`\x01`\xA0\x1B\x03\x82\x16_\x90\x81R`\x03` R`@\x81 \x80T\x90\x91a\x1F\x89\x82a\x19pV[\x90P`\x01\x80\x84\x01T`\xFF\x16`\x02\x81\x11\x15a\x1F\xA5Wa\x1F\xA5aF\xCDV[\x14a\x1F\xC3W`@Qc\xAB\xA4s9`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x80Ta\x1F\xD4\x90\x86\x90`\xFF\x16a'\xBAV[\x90P`\x01`\x01`\xC0\x1B\x03\x81\x16a\x1F\xFDW`@Qch\xB6\xA8u`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a \x14`\x01`\x01`\xC0\x1B\x03\x82\x81\x16\x90\x84\x16\x81\x16\x14\x90V[a 1W`@Qc\xD0S\xAA!`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xC0\x1B\x03\x81\x81\x16\x19\x83\x16\x16a J\x84\x82a3\x7FV[`\x01`\x01`\xC0\x1B\x03\x81\x16a \xA6W`\x01`\x01`\xA0\x1B\x03\x87\x16_\x81\x81R`\x03` R`@\x80\x82 `\x01\x01\x80T`\xFF\x19\x16`\x02\x17\x90UQ\x86\x92\x91\x7F9o\xDC\xB1\x80\xCB\x0F\xEA&\x92\x81\x13\xFB\x0F\xD1\xC3T\x98c\xF9\xCDV>j\x18O\x1DW\x81\x16\xC8\xE4\x91\xA3[`@Qc\xF4\xE2O\xE5`\xE0\x1B\x81R`\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\x90c\xF4\xE2O\xE5\x90a \xF4\x90\x8A\x90\x8A\x90`\x04\x01aP\x04V[_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a!\x0BW__\xFD[PZ\xF1\x15\x80\x15a!\x1DW=__>=_\xFD[PP`@Qc\xBD)\xB8\xCD`\xE0\x1B\x81R`\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\x92Pc\xBD)\xB8\xCD\x91Pa!o\x90\x87\x90\x8A\x90`\x04\x01aO\xD2V[_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a!\x86W__\xFD[PZ\xF1\x15\x80\x15a!\x98W=__>=_\xFD[PP`@Qc\xBD)\xB8\xCD`\xE0\x1B\x81R`\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\x92Pc\xBD)\xB8\xCD\x91Pa!\xEA\x90\x87\x90\x8A\x90`\x04\x01aO\xD2V[_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a\"\x01W__\xFD[PZ\xF1\x15\x80\x15a\x17\xCDW=__>=_\xFD[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R_\x80\x80a\"@_Q` aW\x0E_9_Q\x90_R\x86aP;V[\x90P[a\"L\x81a3\x8BV[\x90\x93P\x91P_Q` aW\x0E_9_Q\x90_R\x82\x83\t\x83\x03a\"\x84W`@\x80Q\x80\x82\x01\x90\x91R\x90\x81R` \x81\x01\x91\x90\x91R\x93\x92PPPV[_Q` aW\x0E_9_Q\x90_R`\x01\x82\x08\x90Pa\"CV[_T`\xFF\x16`\xC0\x81\x10a\"\xC3W`@Qc<\xB8\x9C\x97`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x80T`\x01\x91\x90\x81\x90a\"\xDA\x90\x84\x90`\xFF\x16aPNV[\x92Pa\x01\0\n\x81T\x81`\xFF\x02\x19\x16\x90\x83`\xFF\x16\x02\x17\x90UPa\"\xFC\x81\x87a)AV[`@\x80Q`\x01\x80\x82R\x81\x83\x01\x90\x92R_\x91\x81` \x01[`@\x80Q\x80\x82\x01\x90\x91R_\x81R``` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81a#\x12W\x90PP\x90P_\x85Q`\x01`\x01`@\x1B\x03\x81\x11\x15a#UWa#Ua?\xBBV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a#~W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P_[\x86Q\x81\x10\x15a#\xDBW\x86\x81\x81Q\x81\x10a#\x9EWa#\x9EaK4V[` \x02` \x01\x01Q_\x01Q\x82\x82\x81Q\x81\x10a#\xBBWa#\xBBaK4V[`\x01`\x01`\xA0\x1B\x03\x90\x92\x16` \x92\x83\x02\x91\x90\x91\x01\x90\x91\x01R`\x01\x01a#\x83V[P`@Q\x80`@\x01`@R\x80\x84`\xFF\x16c\xFF\xFF\xFF\xFF\x16\x81R` \x01\x82\x81RP\x82_\x81Q\x81\x10a$\x0CWa$\x0CaK4V[` \x90\x81\x02\x91\x90\x91\x01\x01R`\x0BT`@Qc\x010\xFC'`\xE5\x1B\x81R`\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\x81\x16\x92c&\x1F\x84\xE0\x92a$l\x92\x91\x90\x91\x16\x90\x86\x90`\x04\x01aPgV[_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a$\x83W__\xFD[PZ\xF1\x15\x80\x15a$\x95W=__>=_\xFD[P_\x92Pa$\xA1\x91PPV[\x85`\x01\x81\x11\x15a$\xB3Wa$\xB3aF\xCDV[\x03a%:W`@Qc:\xEA\x0B\x9D`\xE1\x1B\x81R`\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\x90cu\xD4\x17:\x90a%\x08\x90\x86\x90\x8B\x90\x8B\x90`\x04\x01aQwV[_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a%\x1FW__\xFD[PZ\xF1\x15\x80\x15a%1W=__>=_\xFD[PPPPa&~V[`\x01\x85`\x01\x81\x11\x15a%NWa%NaF\xCDV[\x03a&~W\x83c\xFF\xFF\xFF\xFF\x16\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\x16c)\x81\xEBw`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a%\xB6W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a%\xDA\x91\x90aK\x8BV[c\xFF\xFF\xFF\xFF\x16\x11a%\xFEW`@Qc\x0B\xD4A\xB9`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`@Qc\x06b\xD3\xE1`\xE5\x1B\x81R`\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\x90c\xCCZ| \x90a&P\x90\x86\x90\x8B\x90\x89\x90\x8C\x90`\x04\x01aQ\xAAV[_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a&gW__\xFD[PZ\xF1\x15\x80\x15a&yW=__>=_\xFD[PPPP[`@Qc\x13l\xA0\xF9`\xE1\x1B\x81R`\xFF\x84\x16`\x04\x82\x01R\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\x16\x90c&\xD9A\xF2\x90`$\x01_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a&\xDFW__\xFD[PZ\xF1\x15\x80\x15a&\xF1W=__>=_\xFD[PP`@Qc\x13l\xA0\xF9`\xE1\x1B\x81R`\xFF\x86\x16`\x04\x82\x01R\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\x16\x92Pc&\xD9A\xF2\x91P`$\x01_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a'VW__\xFD[PZ\xF1\x15\x80\x15a'hW=__>=_\xFD[PPPP\x82`\xFF\x16\x7F\xA3H5\xBC+g>\xC3\x7F\xCF\x15\x91\xA9\x12\x95\xB1c\xFC.\x18\x1EN\xA4\xE73\xBE\xB2}\xE1\xCE\xACL\x89\x89\x89\x89\x89`@Qa'\xA7\x95\x94\x93\x92\x91\x90aQ\xE0V[`@Q\x80\x91\x03\x90\xA2[PPPPPPPPV[__a'\xC5\x84a4\x07V[\x90P\x80\x83`\xFF\x16`\x01\x90\x1B\x11a\n\xBAW`@Qc\xCA\x95s3`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`2Ta\x01\0\x90\x04`\xFF\x16a(\x15W`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x11\xF4\x90aRaV[a\x0CF\x82\x82a4\xC2V[`\x96\x80T`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x01`\x01`\xA0\x1B\x03\x19\x83\x16\x81\x17\x90\x93U`@Q\x91\x16\x91\x90\x82\x90\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x90_\x90\xA3PPV[`\x0BT`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90\x7F\x97p\xF3\xCA\xDF\xDC\xBBo\x93\xAF\x93^\x86\x04q\x11Y\x0C7h'\x1D#~J+\xC0\xB8t\xBE\xD6\x93\x90a(\xB1\x90\x83\x90\x85\x90aO\xEAV[`@Q\x80\x91\x03\x90\xA1P`\x0B\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x90\x91\x17\x90UV[``_a(\xE8\x83a5\x10V[`@\x80Q` \x80\x82R\x81\x83\x01\x90\x92R\x91\x92P_\x91\x90` \x82\x01\x81\x806\x837PPP\x91\x82RP` \x81\x01\x92\x90\x92RP\x90V[_T`\xFF\x90\x81\x16\x90\x82\x16\x10a\x0B W`@Qcs\x10\xCF\xF5`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\xFF\x82\x16_\x81\x81R`\x01` \x90\x81R`@\x91\x82\x90 \x84Q\x81T\x92\x86\x01Q\x84\x87\x01Qa\xFF\xFF\x90\x81\x16`\x01`0\x1B\x02g\xFF\xFF\0\0\0\0\0\0\x19\x91\x90\x92\x16`\x01` \x1B\x02e\xFF\xFF\xFF\xFF\xFF\xFF\x19\x90\x95\x16c\xFF\xFF\xFF\xFF\x90\x93\x16\x92\x90\x92\x17\x93\x90\x93\x17\x16\x91\x90\x91\x17\x90UQ\x7F>\xE6\xFE\x8DTa\x02D\xC3\xE9\xD3\xC0f\xAEJ\xEE\x99x\x84\xAA(\xF1\x06\x16\xAE\x82\x19%@\x13\x18\xAC\x90a\x19d\x90\x84\x90aJ\xF3V[`\x08T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x14EW`@Qcv\xD8\xAB\x17`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x82\x16_\x90\x81R`\x03` R`@\x90 `\x01\x80\x82\x01T`\xFF\x16`\x02\x81\x11\x15a*.Wa*.aF\xCDV[\x14a*LW`@Qc%\xECl\x1F`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x80T_\x80Ta*_\x90\x85\x90`\xFF\x16a'\xBAV[\x90P_a*k\x83a\x19pV[\x90Pa*\x84`\x01`\x01`\xC0\x1B\x03\x83\x81\x16\x90\x83\x16\x81\x16\x14\x90V[\x15a\x12\xE9Wa\x12\xE9\x86\x86a57V[_a\x0C\xD2a*\x9Fa2\xE2V[\x83`@Qa\x19\x01`\xF0\x1B\x81R`\x02\x81\x01\x92\x90\x92R`\"\x82\x01R`B\x90 \x90V[```\xCA\x80Ta*\xCE\x90aR\xACV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta*\xFA\x90aR\xACV[\x80\x15a+EW\x80`\x1F\x10a+\x1CWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a+EV[\x82\x01\x91\x90_R` _ \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a+(W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x90P\x90V[```\xCB\x80Ta*\xCE\x90aR\xACV[``_\x82Q`\x01`\x01`@\x1B\x03\x81\x11\x15a+zWa+za?\xBBV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a+\xA3W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P_[\x83Q\x81\x10\x15a,\x04Wa+\xD5\x86\x86\x86\x84\x81Q\x81\x10a+\xC8Wa+\xC8aK4V[` \x02` \x01\x01Qa5\xD5V[\x82\x82\x81Q\x81\x10a+\xE7Wa+\xE7aK4V[c\xFF\xFF\xFF\xFF\x90\x92\x16` \x92\x83\x02\x91\x90\x91\x01\x90\x91\x01R`\x01\x01a+\xA8V[P\x94\x93PPPPV[_\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\x16c\x03\xC5\xA6\xB6\x84\x84a,H\x87a\r\xF7V[`@Q\x84c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a,f\x93\x92\x91\x90aS\x06V[` `@Q\x80\x83\x03\x81_\x87Z\xF1\x15\x80\x15a,\x82W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\n\xBA\x91\x90aS\x7FV[a,\xCA`@Q\x80``\x01`@R\x80``\x81R` \x01``\x81R` \x01``\x81RP\x90V[_\x80Ta,\xDB\x90\x86\x90`\xFF\x16a'\xBAV[\x90P_a,\xE7\x87a\x19pV[\x90P`\x01`\x01`\xC0\x1B\x03\x82\x16a-\x10W`@Qc\x13\xCAFW`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x80\x82\x16`\x01`\x01`\xC0\x1B\x03\x16\x15a-:W`@Qc\x0Ch\x16\xCD`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\nT`\x01`\x01`\xA0\x1B\x03\x89\x16_\x90\x81R`\t` R`@\x90 T`\x01`\x01`\xC0\x1B\x03\x83\x81\x16\x90\x85\x16\x17\x91B\x91a-q\x91\x90aS\x96V[\x10a-\x8FW`@Qc\x19hg}`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a-\x99\x88\x82a3\x7FV[a-\xA3\x88\x87a\x1C`V[`\x01`\x01`\x01`\xA0\x1B\x03\x8A\x16_\x90\x81R`\x03` R`@\x90 `\x01\x01T`\xFF\x16`\x02\x81\x11\x15a-\xD4Wa-\xD4aF\xCDV[\x14a.kW`@\x80Q\x80\x82\x01\x82R\x89\x81R`\x01` \x80\x83\x01\x82\x81R`\x01`\x01`\xA0\x1B\x03\x8E\x16_\x90\x81R`\x03\x90\x92R\x93\x90 \x82Q\x81U\x92Q\x83\x82\x01\x80T\x93\x94\x93\x91\x92\x90\x91`\xFF\x19\x16\x90\x83`\x02\x81\x11\x15a..Wa..aF\xCDV[\x02\x17\x90UPP`@Q\x89\x91P`\x01`\x01`\xA0\x1B\x03\x8B\x16\x90\x7F\xE8\xE6\x8C\xEF\x1C:v\x1E\xD7\xBE~\x84c\xA3u\xF2\x7F{\xC35\xE5\x18$\"<\xAC\xCEcn\xC5\xC3\xFE\x90_\x90\xA3[`@Qc\x1F\xD9<\xA9`\xE1\x1B\x81R`\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\x90c?\xB2yR\x90a.\xB9\x90\x8C\x90\x8B\x90`\x04\x01aP\x04V[_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a.\xD0W__\xFD[PZ\xF1\x15\x80\x15a.\xE2W=__>=_\xFD[PP`@Qc%PGw`\xE0\x1B\x81R`\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\x92Pc%PGw\x91Pa/6\x90\x8C\x90\x8C\x90\x8C\x90`\x04\x01aS\xA9V[_`@Q\x80\x83\x03\x81_\x87Z\xF1\x15\x80\x15a/QW=__>=_\xFD[PPPP`@Q=_\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra/x\x91\x90\x81\x01\x90aT3V[`@\x80\x87\x01\x91\x90\x91R` \x86\x01\x91\x90\x91RQb\xBF\xF0M`\xE0\x1B\x81R`\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\x90b\xBF\xF0M\x90a/\xD3\x90\x8B\x90\x8B\x90`\x04\x01aO\xD2V[_`@Q\x80\x83\x03\x81_\x87Z\xF1\x15\x80\x15a/\xEEW=__>=_\xFD[PPPP`@Q=_\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra0\x15\x91\x90\x81\x01\x90aT\x8CV[\x84R\x84\x15a0\xE1W_[\x87Q\x81\x10\x15a0\xDFW_`\x01_\x8A\x84\x81Q\x81\x10a0>Wa0>aK4V[\x01` \x90\x81\x01Q`\xF8\x1C\x82R\x81\x81\x01\x92\x90\x92R`@\x90\x81\x01_ \x81Q``\x81\x01\x83R\x90Tc\xFF\xFF\xFF\xFF\x81\x16\x80\x83Ra\xFF\xFF`\x01` \x1B\x83\x04\x81\x16\x95\x84\x01\x95\x90\x95R`\x01`0\x1B\x90\x91\x04\x90\x93\x16\x91\x81\x01\x91\x90\x91R\x87Q\x80Q\x91\x93P\x90\x84\x90\x81\x10a0\xA9Wa0\xA9aK4V[` \x02` \x01\x01Qc\xFF\xFF\xFF\xFF\x16\x11\x15a0\xD6W`@Qc\xC6\xB9\xE7g`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[P`\x01\x01a0\x1FV[P[PPP\x95\x94PPPPPV[\x83Q\x82Q\x14a1\x0FW`@Qc\xAA\xAD\x13\xF7`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a1\x1B\x86\x86\x84\x84a6\xEDV[_a1)\x87\x87\x87\x87_a,\xA6V[\x90P_[\x85Q\x81\x10\x15a'\xB0W_`\x01_\x88\x84\x81Q\x81\x10a1LWa1LaK4V[\x01` \x90\x81\x01Q`\xF8\x1C\x82R\x81\x81\x01\x92\x90\x92R`@\x90\x81\x01_ \x81Q``\x81\x01\x83R\x90Tc\xFF\xFF\xFF\xFF\x81\x16\x80\x83Ra\xFF\xFF`\x01` \x1B\x83\x04\x81\x16\x95\x84\x01\x95\x90\x95R`\x01`0\x1B\x90\x91\x04\x90\x93\x16\x91\x81\x01\x91\x90\x91R\x84Q\x80Q\x91\x93P\x90\x84\x90\x81\x10a1\xB7Wa1\xB7aK4V[` \x02` \x01\x01Qc\xFF\xFF\xFF\xFF\x16\x11\x15a2\xD9Wa2K\x87\x83\x81Q\x81\x10a1\xE0Wa1\xE0aK4V[` \x01\x01Q`\xF8\x1C`\xF8\x1B`\xF8\x1C\x84`@\x01Q\x84\x81Q\x81\x10a2\x04Wa2\x04aK4V[` \x02` \x01\x01Q\x8B\x86` \x01Q\x86\x81Q\x81\x10a2#Wa2#aK4V[` \x02` \x01\x01Q\x89\x87\x81Q\x81\x10a2=Wa2=aK4V[` \x02` \x01\x01Q\x86a7\x98V[`@\x80Q`\x01\x80\x82R\x81\x83\x01\x90\x92R_\x91` \x82\x01\x81\x806\x837\x01\x90PP\x90P\x87\x83\x81Q\x81\x10a2}Wa2}aK4V[` \x01\x01Q`\xF8\x1C`\xF8\x1B\x81_\x81Q\x81\x10a2\x9AWa2\x9AaK4V[` \x01\x01\x90`\x01`\x01`\xF8\x1B\x03\x19\x16\x90\x81_\x1A\x90SPa2\xD7\x86\x84\x81Q\x81\x10a2\xC5Wa2\xC5aK4V[` \x02` \x01\x01Q` \x01Q\x82a)\xFDV[P[P`\x01\x01a1-V[_a\x13\x1Ca9\x19V[_\x81\x81R` \x83\x90R`@\x81 T\x80\x82\x03a3\tW_\x91PPa\x0C\xD2V[_\x83\x81R` \x85\x90R`@\x90 a3!`\x01\x83aU\x1BV[\x81T\x81\x10a31Wa31aK4V[_\x91\x82R` \x90\x91 \x01T`\x01`@\x1B\x90\x04`\x01`\x01`\xC0\x1B\x03\x16\x91Pa\x0C\xD2\x90PV[_\x80[\x82\x15a\x0C\xD2Wa3i`\x01\x84aU\x1BV[\x90\x92\x16\x91\x80a3w\x81aU.V[\x91PPa3XV[a\x0CF`\x02\x83\x83a9\x8CV[_\x80\x80_Q` aW\x0E_9_Q\x90_R`\x03_Q` aW\x0E_9_Q\x90_R\x86_Q` aW\x0E_9_Q\x90_R\x88\x89\t\t\x08\x90P_a3\xFB\x82\x7F\x0C\x19\x13\x9C\xB8Lh\nn\x14\x11m\xA0`V\x17e\xE0Z\xA4Z\x1Cr\xA3O\x08#\x05\xB6\x1F?R_Q` aW\x0E_9_Q\x90_Ra;EV[\x91\x95\x91\x94P\x90\x92PPPV[_a\x01\0\x82Q\x11\x15a4,W`@Qc}\xA5NG`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x81Q_\x03a4;WP_\x91\x90PV[__\x83_\x81Q\x81\x10a4OWa4OaK4V[\x01` \x01Q`\x01`\xF8\x91\x90\x91\x1C\x81\x90\x1B\x92P[\x84Q\x81\x10\x15a4\xB9W\x84\x81\x81Q\x81\x10a4}Wa4}aK4V[\x01` \x01Q`\x01`\xF8\x91\x90\x91\x1C\x1B\x91P\x82\x82\x11a4\xADW`@Qc\x10\x19\x10i`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x91\x81\x17\x91`\x01\x01a4bV[P\x90\x93\x92PPPV[`2Ta\x01\0\x90\x04`\xFF\x16a4\xE9W`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x11\xF4\x90aRaV[`\xCAa4\xF5\x83\x82aU\x92V[P`\xCBa5\x02\x82\x82aU\x92V[PP_`\xC8\x81\x90U`\xC9UPV[_`\xFF\x82\x16`\x1F\x81\x11\x15a\x0C\xD2W`@Qc,\xD4J\xC3`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q``\x81\x01\x82R`\x01`\x01`\xA0\x1B\x03\x84\x81\x16\x82R`\x0BT\x81\x16` \x83\x01R\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\x91cn4\x92\xB5\x91\x90\x81\x01a5\x8D\x85a;\xBEV[\x81RP`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a5\xAC\x91\x90aVLV[_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a5\xC3W__\xFD[PZ\xF1\x15\x80\x15a\x12\xE9W=__>=_\xFD[_\x81\x81R` \x84\x90R`@\x81 T\x81[\x81\x81\x10\x15a6XW`\x01a5\xF9\x82\x84aU\x1BV[a6\x03\x91\x90aU\x1BV[\x92P\x84c\xFF\xFF\xFF\xFF\x16\x86_\x86\x81R` \x01\x90\x81R` \x01_ \x84c\xFF\xFF\xFF\xFF\x16\x81T\x81\x10a63Wa63aK4V[_\x91\x82R` \x90\x91 \x01Tc\xFF\xFF\xFF\xFF\x16\x11a6PWPPa\n\xBAV[`\x01\x01a5\xE5V[P`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\\`$\x82\x01R\x7FRegistryCoordinator.getQuorumBit`D\x82\x01R\x7FmapIndexAtBlockNumber: no bitmap`d\x82\x01R\x7F update found for operatorId\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x11\xF4V[` \x80\x82\x01Q_\x90\x81R`\x04\x90\x91R`@\x90 T`\xFF\x16\x15a7\"W`@Qco\xBE\xFE\xC3`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[B\x81`@\x01Q\x10\x15a7GW`@Qc\x08\x19\xBD\xCD`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[` \x80\x82\x01\x80Q_\x90\x81R`\x04\x90\x92R`@\x91\x82\x90 \x80T`\xFF\x19\x16`\x01\x17\x90U`\x07T\x90Q\x91\x83\x01Qa\x0E1\x92`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91a7\x91\x91\x88\x91\x88\x91\x88\x91\x90a\x15\xB2V[\x83Qa<cV[` \x80\x83\x01Q`\x01`\x01`\xA0\x1B\x03\x80\x82\x16_\x81\x81R`\x03\x90\x94R`@\x90\x93 T\x91\x92\x90\x87\x16\x03a7\xDBW`@QcV\x16\x8BA`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x87`\xFF\x16\x84_\x01Q`\xFF\x16\x14a8\x04W`@Qc\x8EZ\xEE\xE7`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`@QcT\x01\xED'`\xE0\x1B\x81R`\x04\x81\x01\x82\x90R`\xFF\x89\x16`$\x82\x01R_\x90\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\x16\x90cT\x01\xED'\x90`D\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a8rW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a8\x96\x91\x90aV\x88V[\x90Pa8\xA2\x81\x85a<\x8BV[`\x01`\x01``\x1B\x03\x16\x86`\x01`\x01``\x1B\x03\x16\x11a8\xD3W`@QcLD\x99]`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a8\xDD\x88\x85a<\xAEV[`\x01`\x01``\x1B\x03\x16\x81`\x01`\x01``\x1B\x03\x16\x10a9\x0EW`@Qc\xB1\x87\xE8i`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PPPPPPPPPV[_\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0Fa9Ca<\xC7V[a9Ka=\x1FV[`@\x80Q` \x81\x01\x94\x90\x94R\x83\x01\x91\x90\x91R``\x82\x01RF`\x80\x82\x01R0`\xA0\x82\x01R`\xC0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x90V[_\x82\x81R` \x84\x90R`@\x81 T\x90\x81\x90\x03a:0W_\x83\x81R` \x85\x81R`@\x80\x83 \x81Q``\x81\x01\x83Rc\xFF\xFF\xFF\xFFC\x81\x16\x82R\x81\x85\x01\x86\x81R`\x01`\x01`\xC0\x1B\x03\x80\x8A\x16\x95\x84\x01\x95\x86R\x84T`\x01\x81\x01\x86U\x94\x88R\x95\x90\x96 \x91Q\x91\x90\x92\x01\x80T\x95Q\x93Q\x90\x94\x16`\x01`@\x1B\x02`\x01`\x01`@\x1B\x03\x93\x83\x16`\x01` \x1B\x02g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x90\x96\x16\x91\x90\x92\x16\x17\x93\x90\x93\x17\x16\x91\x90\x91\x17\x90Ua\x0E1V[_\x83\x81R` \x85\x90R`@\x81 a:H`\x01\x84aU\x1BV[\x81T\x81\x10a:XWa:XaK4V[_\x91\x82R` \x90\x91 \x01\x80T\x90\x91Pc\xFF\xFF\xFF\xFFC\x81\x16\x91\x16\x03a:\x99W\x80T`\x01`\x01`@\x1B\x03\x16`\x01`@\x1B`\x01`\x01`\xC0\x1B\x03\x85\x16\x02\x17\x81Ua\r\xF0V[\x80Tc\xFF\xFF\xFF\xFFC\x81\x16`\x01` \x1B\x81\x81\x02g\xFF\xFF\xFF\xFF\0\0\0\0\x19\x90\x94\x16\x93\x90\x93\x17\x84U_\x87\x81R` \x89\x81R`@\x80\x83 \x81Q``\x81\x01\x83R\x94\x85R\x84\x83\x01\x84\x81R`\x01`\x01`\xC0\x1B\x03\x80\x8C\x16\x93\x87\x01\x93\x84R\x82T`\x01\x81\x01\x84U\x92\x86R\x93\x90\x94 \x94Q\x94\x01\x80T\x93Q\x91Q\x90\x92\x16`\x01`@\x1B\x02`\x01`\x01`@\x1B\x03\x91\x86\x16\x90\x96\x02g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x90\x93\x16\x93\x90\x94\x16\x92\x90\x92\x17\x17\x91\x90\x91\x16\x91\x90\x91\x17\x90UPPPPPV[__a;Oa?\x7FV[a;Wa?\x9DV[` \x80\x82R\x81\x81\x01\x81\x90R`@\x82\x01\x81\x90R``\x82\x01\x88\x90R`\x80\x82\x01\x87\x90R`\xA0\x82\x01\x86\x90R\x82`\xC0\x83`\x05a\x07\xD0Z\x03\xFA\x92P\x82\x80a;\x94W\xFE[P\x82a;\xB3W`@Qc\xD5\x1E\xDA\xE3`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PQ\x95\x94PPPPPV[``_\x82Q`\x01`\x01`@\x1B\x03\x81\x11\x15a;\xDAWa;\xDAa?\xBBV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a<\x03W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P_[\x83Q\x81\x10\x15a\x1F^W\x83\x81\x81Q\x81\x10a<#Wa<#aK4V[` \x01\x01Q`\xF8\x1C`\xF8\x1B`\xF8\x1C`\xFF\x16\x82\x82\x81Q\x81\x10a<FWa<FaK4V[c\xFF\xFF\xFF\xFF\x90\x92\x16` \x92\x83\x02\x91\x90\x91\x01\x90\x91\x01R`\x01\x01a<\x08V[a<n\x83\x83\x83a=OV[a\n\xA4W`@Qc\x8B\xAAW\x9F`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[` \x81\x01Q_\x90a'\x10\x90a<\xA4\x90a\xFF\xFF\x16\x85aV\xA3V[a\n\xBA\x91\x90aV\xC5V[`@\x81\x01Q_\x90a'\x10\x90a<\xA4\x90a\xFF\xFF\x16\x85aV\xA3V[__a<\xD1a*\xBFV[\x80Q\x90\x91P\x15a<\xE8W\x80Q` \x90\x91\x01 \x91\x90PV[`\xC8T\x80\x15a<\xF7W\x92\x91PPV[\x7F\xC5\xD2F\x01\x86\xF7#<\x92~}\xB2\xDC\xC7\x03\xC0\xE5\0\xB6S\xCA\x82';{\xFA\xD8\x04]\x85\xA4p\x92PPP\x90V[__a=)a+OV[\x80Q\x90\x91P\x15a=@W\x80Q` \x90\x91\x01 \x91\x90PV[`\xC9T\x80\x15a<\xF7W\x92\x91PPV[___a=\\\x85\x85a=\xA3V[\x90\x92P\x90P_\x81`\x04\x81\x11\x15a=tWa=taF\xCDV[\x14\x80\x15a=\x92WP\x85`\x01`\x01`\xA0\x1B\x03\x16\x82`\x01`\x01`\xA0\x1B\x03\x16\x14[\x80a\x15\xF1WPa\x15\xF1\x86\x86\x86a=\xE5V[__\x82Q`A\x03a=\xD7W` \x83\x01Q`@\x84\x01Q``\x85\x01Q_\x1Aa=\xCB\x87\x82\x85\x85a>\xCCV[\x94P\x94PPPPa=\xDEV[P_\x90P`\x02[\x92P\x92\x90PV[___\x85`\x01`\x01`\xA0\x1B\x03\x16c\x16&\xBA~`\xE0\x1B\x86\x86`@Q`$\x01a>\r\x92\x91\x90aO\xD2V[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x81R` \x82\x01\x80Q`\x01`\x01`\xE0\x1B\x03\x16`\x01`\x01`\xE0\x1B\x03\x19\x90\x94\x16\x93\x90\x93\x17\x90\x92R\x90Qa>K\x91\x90aV\xF2V[_`@Q\x80\x83\x03\x81\x85Z\xFA\x91PP=\x80_\x81\x14a>\x83W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=_` \x84\x01>a>\x88V[``\x91P[P\x91P\x91P\x81\x80\x15a>\x9CWP` \x81Q\x10\x15[\x80\x15a\x15\xF1WP\x80Qc\x0B\x13]?`\xE1\x1B\x90a>\xC1\x90\x83\x01` \x90\x81\x01\x90\x84\x01aS\x7FV[\x14\x96\x95PPPPPPV[_\x80o\xA2\xA8\x91\x8C\xA8[\xAF\xE2 \x16\xD0\xB9\x97\xE4\xDF``\x01`\xFF\x1B\x03\x83\x11\x15a>\xF7WP_\x90P`\x03a?vV[`@\x80Q_\x80\x82R` \x82\x01\x80\x84R\x89\x90R`\xFF\x88\x16\x92\x82\x01\x92\x90\x92R``\x81\x01\x86\x90R`\x80\x81\x01\x85\x90R`\x01\x90`\xA0\x01` `@Q` \x81\x03\x90\x80\x84\x03\x90\x85Z\xFA\x15\x80\x15a?HW=__>=_\xFD[PP`@Q`\x1F\x19\x01Q\x91PP`\x01`\x01`\xA0\x1B\x03\x81\x16a?pW_`\x01\x92P\x92PPa?vV[\x91P_\x90P[\x94P\x94\x92PPPV[`@Q\x80` \x01`@R\x80`\x01\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[`@Q\x80`\xC0\x01`@R\x80`\x06\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[`@Q``\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15a?\xF1Wa?\xF1a?\xBBV[`@R\x90V[`@\x80Q\x90\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15a?\xF1Wa?\xF1a?\xBBV[`@Q`\x1F\x82\x01`\x1F\x19\x16\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15a@AWa@Aa?\xBBV[`@R\x91\x90PV[_`\x01`\x01`@\x1B\x03\x82\x11\x15a@aWa@aa?\xBBV[P`\x05\x1B` \x01\x90V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x0B W__\xFD[_\x82`\x1F\x83\x01\x12a@\x8EW__\xFD[\x815a@\xA1a@\x9C\x82a@IV[a@\x19V[\x80\x82\x82R` \x82\x01\x91P` \x83`\x05\x1B\x86\x01\x01\x92P\x85\x83\x11\x15a@\xC2W__\xFD[` \x85\x01[\x83\x81\x10\x15a@\xE8W\x805a@\xDA\x81a@kV[\x83R` \x92\x83\x01\x92\x01a@\xC7V[P\x95\x94PPPPPV[_` \x82\x84\x03\x12\x15aA\x02W__\xFD[\x815`\x01`\x01`@\x1B\x03\x81\x11\x15aA\x17W__\xFD[a\x1CX\x84\x82\x85\x01a@\x7FV[_` \x82\x84\x03\x12\x15aA3W__\xFD[P5\x91\x90PV[c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x0B W__\xFD[___``\x84\x86\x03\x12\x15aA]W__\xFD[\x835\x92P` \x84\x015aAo\x81aA:V[\x92\x95\x92\x94PPP`@\x91\x90\x91\x015\x90V[`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16\x81R` \x01\x90V[_\x82`\x1F\x83\x01\x12aA\xA3W__\xFD[\x815` \x83\x01__`\x01`\x01`@\x1B\x03\x84\x11\x15aA\xC2WaA\xC2a?\xBBV[P`\x1F\x83\x01`\x1F\x19\x16` \x01aA\xD7\x81a@\x19V[\x91PP\x82\x81R\x85\x83\x83\x01\x11\x15aA\xEBW__\xFD[\x82\x82` \x83\x017_\x92\x81\x01` \x01\x92\x90\x92RP\x93\x92PPPV[_` \x82\x84\x03\x12\x15aB\x15W__\xFD[\x815`\x01`\x01`@\x1B\x03\x81\x11\x15aB*W__\xFD[a\x1CX\x84\x82\x85\x01aA\x94V[_` \x82\x84\x03\x12\x15aBFW__\xFD[\x815a\n\xBA\x81a@kV[__`@\x83\x85\x03\x12\x15aBbW__\xFD[PP\x805\x92` \x90\x91\x015\x91PV[\x805`\xFF\x81\x16\x81\x14aB\x81W__\xFD[\x91\x90PV[_` \x82\x84\x03\x12\x15aB\x96W__\xFD[a\n\xBA\x82aBqV[_\x82`\x1F\x83\x01\x12aB\xAEW__\xFD[\x815aB\xBCa@\x9C\x82a@IV[\x80\x82\x82R` \x82\x01\x91P` \x83`\x05\x1B\x86\x01\x01\x92P\x85\x83\x11\x15aB\xDDW__\xFD[` \x85\x01[\x83\x81\x10\x15a@\xE8W\x805aB\xF5\x81aA:V[\x83R` \x92\x83\x01\x92\x01aB\xE2V[___``\x84\x86\x03\x12\x15aC\x15W__\xFD[\x835aC \x81a@kV[\x92P` \x84\x015aC0\x81a@kV[\x91P`@\x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aCJW__\xFD[aCV\x86\x82\x87\x01aB\x9FV[\x91PP\x92P\x92P\x92V[\x81Q\x81R` \x80\x83\x01Q\x90\x82\x01R`@\x81\x01a\x0C\xD2V[\x805a\xFF\xFF\x81\x16\x81\x14aB\x81W__\xFD[_``\x82\x84\x03\x12\x15aC\x98W__\xFD[aC\xA0a?\xCFV[\x90P\x815aC\xAD\x81aA:V[\x81RaC\xBB` \x83\x01aCwV[` \x82\x01RaC\xCC`@\x83\x01aCwV[`@\x82\x01R\x92\x91PPV[`\x01`\x01``\x1B\x03\x81\x16\x81\x14a\x0B W__\xFD[_\x82`\x1F\x83\x01\x12aC\xFAW__\xFD[\x815aD\x08a@\x9C\x82a@IV[\x80\x82\x82R` \x82\x01\x91P` \x83`\x06\x1B\x86\x01\x01\x92P\x85\x83\x11\x15aD)W__\xFD[` \x85\x01[\x83\x81\x10\x15a@\xE8W`@\x81\x88\x03\x12\x15aDEW__\xFD[aDMa?\xF7V[\x815aDX\x81a@kV[\x81R` \x82\x015aDh\x81aC\xD7V[` \x82\x81\x01\x91\x90\x91R\x90\x84R\x92\x90\x92\x01\x91`@\x01aD.V[____`\xC0\x85\x87\x03\x12\x15aD\x94W__\xFD[aD\x9E\x86\x86aC\x88V[\x93P``\x85\x015aD\xAE\x81aC\xD7V[\x92P`\x80\x85\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aD\xC8W__\xFD[aD\xD4\x87\x82\x88\x01aC\xEBV[\x92PP`\xA0\x85\x015aD\xE5\x81aA:V[\x93\x96\x92\x95P\x90\x93PPV[__\x83`\x1F\x84\x01\x12aE\0W__\xFD[P\x815`\x01`\x01`@\x1B\x03\x81\x11\x15aE\x16W__\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a=\xDEW__\xFD[___`@\x84\x86\x03\x12\x15aE?W__\xFD[\x835`\x01`\x01`@\x1B\x03\x81\x11\x15aETW__\xFD[\x84\x01`\x1F\x81\x01\x86\x13aEdW__\xFD[\x805aEra@\x9C\x82a@IV[\x80\x82\x82R` \x82\x01\x91P` \x83`\x05\x1B\x85\x01\x01\x92P\x88\x83\x11\x15aE\x93W__\xFD[` \x84\x01[\x83\x81\x10\x15aE\xD3W\x805`\x01`\x01`@\x1B\x03\x81\x11\x15aE\xB5W__\xFD[aE\xC4\x8B` \x83\x89\x01\x01a@\x7FV[\x84RP` \x92\x83\x01\x92\x01aE\x98V[P\x95PPPP` \x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aE\xF1W__\xFD[aE\xFD\x86\x82\x87\x01aD\xF0V[\x94\x97\x90\x96P\x93\x94PPPPV[_____`\xA0\x86\x88\x03\x12\x15aF\x1EW__\xFD[\x855aF)\x81a@kV[\x94P` \x86\x015aF9\x81a@kV[\x93P`@\x86\x015aFI\x81a@kV[\x92P``\x86\x015\x91P`\x80\x86\x015aF`\x81a@kV[\x80\x91PP\x92\x95P\x92\x95\x90\x93PV[_[\x83\x81\x10\x15aF\x88W\x81\x81\x01Q\x83\x82\x01R` \x01aFpV[PP_\x91\x01RV[_\x81Q\x80\x84RaF\xA7\x81` \x86\x01` \x86\x01aFnV[`\x1F\x01`\x1F\x19\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R_a\n\xBA` \x83\x01\x84aF\x90V[cNH{q`\xE0\x1B_R`!`\x04R`$_\xFD[`\x03\x81\x10aF\xF1WaF\xF1aF\xCDV[\x90RV[\x81Q\x81R` \x80\x83\x01Q`@\x83\x01\x91a\x1F^\x90\x84\x01\x82aF\xE1V[__`\x80\x83\x85\x03\x12\x15aG!W__\xFD[aG*\x83aBqV[\x91PaG9\x84` \x85\x01aC\x88V[\x90P\x92P\x92\x90PV[__`@\x83\x85\x03\x12\x15aGSW__\xFD[\x825aG^\x81a@kV[\x91P` \x83\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aGxW__\xFD[aG\x84\x85\x82\x86\x01aA\x94V[\x91PP\x92P\x92\x90PV[___`\xA0\x84\x86\x03\x12\x15aG\xA0W__\xFD[aG\xAA\x85\x85aC\x88V[\x92P``\x84\x015aG\xBA\x81aC\xD7V[\x91P`\x80\x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aG\xD4W__\xFD[aCV\x86\x82\x87\x01aC\xEBV[`\xFF`\xF8\x1B\x88\x16\x81R`\xE0` \x82\x01R_aG\xFE`\xE0\x83\x01\x89aF\x90V[\x82\x81\x03`@\x84\x01RaH\x10\x81\x89aF\x90V[``\x84\x01\x88\x90R`\x01`\x01`\xA0\x1B\x03\x87\x16`\x80\x85\x01R`\xA0\x84\x01\x86\x90R\x83\x81\x03`\xC0\x85\x01R\x84Q\x80\x82R` \x80\x87\x01\x93P\x90\x91\x01\x90_[\x81\x81\x10\x15aHeW\x83Q\x83R` \x93\x84\x01\x93\x90\x92\x01\x91`\x01\x01aHGV[P\x90\x9B\x9APPPPPPPPPPPV[_\x82`\x1F\x83\x01\x12aH\x85W__\xFD[\x815aH\x93a@\x9C\x82a@IV[\x80\x82\x82R` \x82\x01\x91P` \x83`\x06\x1B\x86\x01\x01\x92P\x85\x83\x11\x15aH\xB4W__\xFD[` \x85\x01[\x83\x81\x10\x15a@\xE8W`@\x81\x88\x03\x12\x15aH\xD0W__\xFD[aH\xD8a?\xF7V[aH\xE1\x82aBqV[\x81R` \x82\x015aH\xF1\x81a@kV[` \x82\x81\x01\x91\x90\x91R\x90\x84R\x92\x90\x92\x01\x91`@\x01aH\xB9V[_____`\xA0\x86\x88\x03\x12\x15aI\x1EW__\xFD[\x855aI)\x81a@kV[\x94P` \x86\x015\x93P`@\x86\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aIJW__\xFD[aIV\x88\x82\x89\x01aHvV[\x95\x98\x94\x97P\x94\x95``\x81\x015\x95P`\x80\x015\x93\x92PPPV[__`@\x83\x85\x03\x12\x15aI\x80W__\xFD[\x825aI\x8B\x81aA:V[\x91P` \x83\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aI\xA5W__\xFD[\x83\x01`\x1F\x81\x01\x85\x13aI\xB5W__\xFD[\x805aI\xC3a@\x9C\x82a@IV[\x80\x82\x82R` \x82\x01\x91P` \x83`\x05\x1B\x85\x01\x01\x92P\x87\x83\x11\x15aI\xE4W__\xFD[` \x84\x01\x93P[\x82\x84\x10\x15aJ\x06W\x835\x82R` \x93\x84\x01\x93\x90\x91\x01\x90aI\xEBV[\x80\x94PPPPP\x92P\x92\x90PV[_\x81Q\x80\x84R` \x84\x01\x93P` \x83\x01_[\x82\x81\x10\x15aJJW\x81Qc\xFF\xFF\xFF\xFF\x16\x86R` \x95\x86\x01\x95\x90\x91\x01\x90`\x01\x01aJ&V[P\x93\x94\x93PPPPV[` \x81R_a\n\xBA` \x83\x01\x84aJ\x14V[_____`\x80\x86\x88\x03\x12\x15aJzW__\xFD[\x855aJ\x85\x81a@kV[\x94P` \x86\x015aJ\x95\x81a@kV[\x93P`@\x86\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aJ\xAFW__\xFD[aJ\xBB\x88\x82\x89\x01aB\x9FV[\x93PP``\x86\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aJ\xD6W__\xFD[aJ\xE2\x88\x82\x89\x01aD\xF0V[\x96\x99\x95\x98P\x93\x96P\x92\x94\x93\x92PPPV[``\x81\x01a\x0C\xD2\x82\x84c\xFF\xFF\xFF\xFF\x81Q\x16\x82Ra\xFF\xFF` \x82\x01Q\x16` \x83\x01Ra\xFF\xFF`@\x82\x01Q\x16`@\x83\x01RPPV[` \x81\x01a\x0C\xD2\x82\x84aF\xE1V[cNH{q`\xE0\x1B_R`2`\x04R`$_\xFD[\x80Q\x80\x15\x15\x81\x14aB\x81W__\xFD[_` \x82\x84\x03\x12\x15aKgW__\xFD[a\n\xBA\x82aKHV[_` \x82\x84\x03\x12\x15aK\x80W__\xFD[\x81Qa\n\xBA\x81a@kV[_` \x82\x84\x03\x12\x15aK\x9BW__\xFD[\x81Qa\n\xBA\x81aA:V[_`\xC0\x82\x01\x88\x83R`\x01\x80`\xA0\x1B\x03\x88\x16` \x84\x01R\x86`@\x84\x01R`\xC0``\x84\x01R\x80\x86Q\x80\x83R`\xE0\x85\x01\x91P` \x88\x01\x92P_[\x81\x81\x10\x15aL\x13W\x83Q\x80Q`\xFF\x16\x84R` \x90\x81\x01Q`\x01`\x01`\xA0\x1B\x03\x16\x81\x85\x01R\x90\x93\x01\x92`@\x90\x92\x01\x91`\x01\x01aK\xDDV[PP`\x80\x84\x01\x95\x90\x95RPP`\xA0\x01R\x94\x93PPPPV[\x805`\x02\x81\x10aB\x81W__\xFD[_`@\x82\x84\x03\x12\x15aLIW__\xFD[aLQa?\xF7V[\x825\x81R` \x92\x83\x015\x92\x81\x01\x92\x90\x92RP\x91\x90PV[_\x82`\x1F\x83\x01\x12aLwW__\xFD[aL\x7Fa?\xF7V[\x80`@\x84\x01\x85\x81\x11\x15aL\x90W__\xFD[\x84[\x81\x81\x10\x15aL\xAAW\x805\x84R` \x93\x84\x01\x93\x01aL\x92V[P\x90\x95\x94PPPPPV[_\x81\x83\x03a\x01\0\x81\x12\x15aL\xC7W__\xFD[aL\xCFa?\xCFV[\x91PaL\xDB\x84\x84aL9V[\x82RaL\xEA\x84`@\x85\x01aL9V[` \x83\x01R`\x80`\x7F\x19\x82\x01\x12\x15aM\0W__\xFD[PaM\ta?\xF7V[aM\x16\x84`\x80\x85\x01aLhV[\x81RaM%\x84`\xC0\x85\x01aLhV[` \x82\x01R`@\x82\x01R\x92\x91PPV[___a\x01@\x84\x86\x03\x12\x15aMHW__\xFD[aMQ\x84aL+V[\x92P` \x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aMkW__\xFD[aMw\x86\x82\x87\x01aA\x94V[\x92PPaM\x87\x85`@\x86\x01aL\xB5V[\x90P\x92P\x92P\x92V[_____a\x01\x80\x86\x88\x03\x12\x15aM\xA5W__\xFD[aM\xAE\x86aL+V[\x94P` \x86\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aM\xC8W__\xFD[aM\xD4\x88\x82\x89\x01aA\x94V[\x94PPaM\xE4\x87`@\x88\x01aL\xB5V[\x92Pa\x01@\x86\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aM\xFFW__\xFD[aN\x0B\x88\x82\x89\x01aHvV[\x92PPa\x01`\x86\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aN'W__\xFD[\x86\x01``\x81\x89\x03\x12\x15aN8W__\xFD[aN@a?\xCFV[\x815`\x01`\x01`@\x1B\x03\x81\x11\x15aNUW__\xFD[aNa\x8A\x82\x85\x01aA\x94V[\x82RP` \x82\x81\x015\x90\x82\x01R`@\x91\x82\x015\x91\x81\x01\x91\x90\x91R\x94\x97\x93\x96P\x91\x94P\x92\x91\x90PV[cNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[_`\x01\x82\x01aN\xAEWaN\xAEaN\x89V[P`\x01\x01\x90V[``\x80\x82R\x84Q\x90\x82\x01\x81\x90R_\x90` \x86\x01\x90`\x80\x84\x01\x90\x83[\x81\x81\x10\x15aN\xF7W\x83Q`\x01`\x01`\xA0\x1B\x03\x16\x83R` \x93\x84\x01\x93\x90\x92\x01\x91`\x01\x01aN\xD0V[PP\x83\x81\x03` \x80\x86\x01\x91\x90\x91R\x86Q\x80\x83R\x91\x81\x01\x92P\x86\x01\x90_[\x81\x81\x10\x15aO2W\x82Q\x84R` \x93\x84\x01\x93\x90\x92\x01\x91`\x01\x01aO\x14V[PPP`\xFF\x84\x16`@\x84\x01R\x90Pa\x1CXV[_` \x82\x84\x03\x12\x15aOUW__\xFD[\x81Q`\x01`\x01`@\x1B\x03\x81\x11\x15aOjW__\xFD[\x82\x01`\x1F\x81\x01\x84\x13aOzW__\xFD[\x80QaO\x88a@\x9C\x82a@IV[\x80\x82\x82R` \x82\x01\x91P` \x83`\x05\x1B\x85\x01\x01\x92P\x86\x83\x11\x15aO\xA9W__\xFD[` \x84\x01\x93P[\x82\x84\x10\x15a\x15\xF1WaO\xC1\x84aKHV[\x82R` \x93\x84\x01\x93\x90\x91\x01\x90aO\xB0V[\x82\x81R`@` \x82\x01R_a\n\xB7`@\x83\x01\x84aF\x90V[`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x81R\x91\x16` \x82\x01R`@\x01\x90V[`\x01`\x01`\xA0\x1B\x03\x83\x16\x81R`@` \x82\x01\x81\x90R_\x90a\n\xB7\x90\x83\x01\x84aF\x90V[cNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[_\x82aPIWaPIaP'V[P\x06\x90V[`\xFF\x81\x81\x16\x83\x82\x16\x01\x90\x81\x11\x15a\x0C\xD2Wa\x0C\xD2aN\x89V[_`@\x82\x01`\x01\x80`\xA0\x1B\x03\x85\x16\x83R`@` \x84\x01R\x80\x84Q\x80\x83R``\x85\x01\x91P``\x81`\x05\x1B\x86\x01\x01\x92P` \x86\x01_[\x82\x81\x10\x15aQ\x1CW\x86\x85\x03`_\x19\x01\x84R\x81Q\x80Qc\xFF\xFF\xFF\xFF\x16\x86R` \x90\x81\x01Q`@\x82\x88\x01\x81\x90R\x81Q\x90\x88\x01\x81\x90R\x91\x01\x90_\x90``\x88\x01\x90[\x80\x83\x10\x15aQ\x04W\x83Q`\x01`\x01`\xA0\x1B\x03\x16\x82R` \x93\x84\x01\x93`\x01\x93\x90\x93\x01\x92\x90\x91\x01\x90aP\xD9V[P\x96PPP` \x93\x84\x01\x93\x91\x90\x91\x01\x90`\x01\x01aP\x9BV[P\x92\x97\x96PPPPPPPV[_\x81Q\x80\x84R` \x84\x01\x93P` \x83\x01_[\x82\x81\x10\x15aJJW\x81Q\x80Q`\x01`\x01`\xA0\x1B\x03\x16\x87R` \x90\x81\x01Q`\x01`\x01``\x1B\x03\x16\x81\x88\x01R`@\x90\x96\x01\x95\x90\x91\x01\x90`\x01\x01aQ;V[`\xFF\x84\x16\x81R`\x01`\x01``\x1B\x03\x83\x16` \x82\x01R```@\x82\x01R_aQ\xA1``\x83\x01\x84aQ)V[\x95\x94PPPPPV[`\xFF\x85\x16\x81R`\x01`\x01``\x1B\x03\x84\x16` \x82\x01Rc\xFF\xFF\xFF\xFF\x83\x16`@\x82\x01R`\x80``\x82\x01R_a\x15\xF1`\x80\x83\x01\x84aQ)V[aR\x0F\x81\x87c\xFF\xFF\xFF\xFF\x81Q\x16\x82Ra\xFF\xFF` \x82\x01Q\x16` \x83\x01Ra\xFF\xFF`@\x82\x01Q\x16`@\x83\x01RPPV[`\x01`\x01``\x1B\x03\x85\x16``\x82\x01R`\xE0`\x80\x82\x01R_aR3`\xE0\x83\x01\x86aQ)V[\x90P`\x02\x84\x10aREWaREaF\xCDV[\x83`\xA0\x83\x01Rc\xFF\xFF\xFF\xFF\x83\x16`\xC0\x83\x01R\x96\x95PPPPPPV[` \x80\x82R`+\x90\x82\x01R\x7FInitializable: contract is not i`@\x82\x01Rjnitializing`\xA8\x1B``\x82\x01R`\x80\x01\x90V[`\x01\x81\x81\x1C\x90\x82\x16\x80aR\xC0W`\x7F\x82\x16\x91P[` \x82\x10\x81\x03aR\xDEWcNH{q`\xE0\x1B_R`\"`\x04R`$_\xFD[P\x91\x90PV[\x80_[`\x02\x81\x10\x15a\x0E1W\x81Q\x84R` \x93\x84\x01\x93\x90\x91\x01\x90`\x01\x01aR\xE7V[`\x01`\x01`\xA0\x1B\x03\x84\x16\x81R\x82Q\x80Q` \x80\x84\x01\x91\x90\x91R\x01Q`@\x82\x01Ra\x01`\x81\x01` \x84\x81\x01Q\x80Q``\x85\x01R\x90\x81\x01Q`\x80\x84\x01RP`@\x84\x01QaSU`\xA0\x84\x01\x82QaR\xE4V[` \x01QaSf`\xE0\x84\x01\x82aR\xE4V[P\x82Qa\x01 \x83\x01R` \x83\x01Qa\x01@\x83\x01Ra\x1CXV[_` \x82\x84\x03\x12\x15aS\x8FW__\xFD[PQ\x91\x90PV[\x80\x82\x01\x80\x82\x11\x15a\x0C\xD2Wa\x0C\xD2aN\x89V[`\x01\x80`\xA0\x1B\x03\x84\x16\x81R\x82` \x82\x01R```@\x82\x01R_aQ\xA1``\x83\x01\x84aF\x90V[_\x82`\x1F\x83\x01\x12aS\xDEW__\xFD[\x81QaS\xECa@\x9C\x82a@IV[\x80\x82\x82R` \x82\x01\x91P` \x83`\x05\x1B\x86\x01\x01\x92P\x85\x83\x11\x15aT\rW__\xFD[` \x85\x01[\x83\x81\x10\x15a@\xE8W\x80QaT%\x81aC\xD7V[\x83R` \x92\x83\x01\x92\x01aT\x12V[__`@\x83\x85\x03\x12\x15aTDW__\xFD[\x82Q`\x01`\x01`@\x1B\x03\x81\x11\x15aTYW__\xFD[aTe\x85\x82\x86\x01aS\xCFV[\x92PP` \x83\x01Q`\x01`\x01`@\x1B\x03\x81\x11\x15aT\x80W__\xFD[aG\x84\x85\x82\x86\x01aS\xCFV[_` \x82\x84\x03\x12\x15aT\x9CW__\xFD[\x81Q`\x01`\x01`@\x1B\x03\x81\x11\x15aT\xB1W__\xFD[\x82\x01`\x1F\x81\x01\x84\x13aT\xC1W__\xFD[\x80QaT\xCFa@\x9C\x82a@IV[\x80\x82\x82R` \x82\x01\x91P` \x83`\x05\x1B\x85\x01\x01\x92P\x86\x83\x11\x15aT\xF0W__\xFD[` \x84\x01\x93P[\x82\x84\x10\x15a\x15\xF1W\x83QaU\n\x81aA:V[\x82R` \x93\x84\x01\x93\x90\x91\x01\x90aT\xF7V[\x81\x81\x03\x81\x81\x11\x15a\x0C\xD2Wa\x0C\xD2aN\x89V[_a\xFF\xFF\x82\x16a\xFF\xFF\x81\x03aUEWaUEaN\x89V[`\x01\x01\x92\x91PPV[`\x1F\x82\x11\x15a\n\xA4W\x80_R` _ `\x1F\x84\x01`\x05\x1C\x81\x01` \x85\x10\x15aUsWP\x80[`\x1F\x84\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15a\r\xF0W_\x81U`\x01\x01aU\x7FV[\x81Q`\x01`\x01`@\x1B\x03\x81\x11\x15aU\xABWaU\xABa?\xBBV[aU\xBF\x81aU\xB9\x84TaR\xACV[\x84aUNV[` `\x1F\x82\x11`\x01\x81\x14aU\xF1W_\x83\x15aU\xDAWP\x84\x82\x01Q[_\x19`\x03\x85\x90\x1B\x1C\x19\x16`\x01\x84\x90\x1B\x17\x84Ua\r\xF0V[_\x84\x81R` \x81 `\x1F\x19\x85\x16\x91[\x82\x81\x10\x15aV W\x87\x85\x01Q\x82U` \x94\x85\x01\x94`\x01\x90\x92\x01\x91\x01aV\0V[P\x84\x82\x10\x15aV=W\x86\x84\x01Q_\x19`\x03\x87\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPP`\x01\x90\x81\x1B\x01\x90UPV[` \x80\x82R\x82Q`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x83\x83\x01R\x90\x83\x01Q\x16`@\x80\x83\x01\x91\x90\x91R\x82\x01Q``\x80\x83\x01R_\x90a\x1CX`\x80\x84\x01\x82aJ\x14V[_` \x82\x84\x03\x12\x15aV\x98W__\xFD[\x81Qa\n\xBA\x81aC\xD7V[`\x01`\x01``\x1B\x03\x81\x81\x16\x83\x82\x16\x02\x90\x81\x16\x90\x81\x81\x14a\x1F^Wa\x1F^aN\x89V[_`\x01`\x01``\x1B\x03\x83\x16\x80aV\xDDWaV\xDDaP'V[\x80`\x01`\x01``\x1B\x03\x84\x16\x04\x91PP\x92\x91PPV[_\x82QaW\x03\x81\x84` \x87\x01aFnV[\x91\x90\x91\x01\x92\x91PPV\xFE0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X]\x97\x81j\x91hq\xCA\x8D< \x8C\x16\xD8|\xFDG\xA2dipfsX\"\x12 \xE9\x08\x87\xAE\xA0\xD2\x96;\x88\xE7BV\x91s\xC5\xA4\x8F\x10Q\x0FH\xDE\x19{\x10fG\x1D\xD4WZ\xF7dsolcC\0\x08\x1B\x003",
3963    );
3964    /// The runtime bytecode of the contract, as deployed on the network.
3965    ///
3966    /// ```text
3967    ///0x608060405234801561000f575f5ffd5b50600436106102e3575f3560e01c80635df459461161018d578063a65497c6116100e0578063de1164bb1161008f578063de1164bb146107ea578063e65797ad146107fd578063ea32afae14610878578063f2fde38b1461089f578063f698da25146108b2578063fabc1cbc146108ba578063fd39105a146108cd575f5ffd5b8063a65497c61461073a578063a96f783e1461074d578063b526578714610756578063c391425e14610769578063c63fd50214610789578063ca0de8821461079c578063ca8aa7c7146107c3575f5ffd5b806384ca52131161013c57806384ca521314610670578063871ef04914610683578063886f1195146106965780638da5cb5b146106bd5780639aa1653d146106ce5780639e9923c2146106ec5780639feab85914610713575f5ffd5b80635df45946146105c657806368304835146105ed5780636e3b17db14610614578063715018a614610627578063734479921461062f5780638281ab751461064257806384b0196e14610655575f5ffd5b8063296bb06411610245578063530b97a4116101f4578063530b97a41461053857806354fd4d501461054b5780635865c60c14610560578063595c6a67146105805780635ac86ab7146105885780635b0b829f146105ab5780635c975abb146105be575f5ffd5b8063296bb064146104a657806329d1e0c3146104b95780632cdd1e86146104cc578063303ca956146104df5780633c2a7f4c146104f25780633eef3a51146105125780635140a54814610525575f5ffd5b8063125e0584116102a1578063125e05841461039f57806313542a4e146103be578063136439dd146103e65780631478851f146103f95780631eb812da1461042b578063249a0c421461047457806328f61b3114610493575f5ffd5b8062cf2ab5146102e757806303fd3492146102fc57806304ec63511461032e578063054310e6146103595780630cf4b767146103795780630d3f21341461038c575b5f5ffd5b6102fa6102f53660046140f2565b610908565b005b61031b61030a366004614123565b5f9081526002602052604090205490565b6040519081526020015b60405180910390f35b61034161033c36600461414b565b610aa9565b6040516001600160c01b039091168152602001610325565b60075461036c906001600160a01b031681565b6040516103259190614180565b6102fa610387366004614205565b610ac1565b6102fa61039a366004614123565b610b23565b61031b6103ad366004614236565b60096020525f908152604090205481565b61031b6103cc366004614236565b6001600160a01b03165f9081526003602052604090205490565b6102fa6103f4366004614123565b610b70565b61041b610407366004614123565b60046020525f908152604090205460ff1681565b6040519015158152602001610325565b61043e610439366004614251565b610c4a565b60408051825163ffffffff908116825260208085015190911690820152918101516001600160c01b031690820152606001610325565b61031b610482366004614286565b60056020525f908152604090205481565b60085461036c906001600160a01b031681565b61036c6104b4366004614123565b610cd8565b6102fa6104c7366004614236565b610d61565b6102fa6104da366004614236565b610d72565b6102fa6104ed366004614303565b610d83565b610505610500366004614236565b610df7565b6040516103259190614360565b6102fa610520366004614481565b610e1b565b6102fa61053336600461452d565b610e37565b6102fa61054636600461460a565b61115b565b6105536112f1565b60405161032591906146bb565b61057361056e366004614236565b611321565b60405161032591906146f5565b6102fa611393565b61041b610596366004614286565b603354600160ff9092169190911b9081161490565b6102fa6105b9366004614710565b611447565b60335461031b565b61036c7f000000000000000000000000000000000000000000000000000000000000000081565b61036c7f000000000000000000000000000000000000000000000000000000000000000081565b6102fa610622366004614742565b611463565b6102fa61148f565b61031b61063d366004614236565b6114a0565b6102fa61065036600461478e565b611504565b61065d611519565b60405161032597969594939291906147e0565b61031b61067e36600461490a565b6115b2565b610341610691366004614123565b6115fb565b61036c7f000000000000000000000000000000000000000000000000000000000000000081565b6096546001600160a01b031661036c565b5f546106da9060ff1681565b60405160ff9091168152602001610325565b61036c7f000000000000000000000000000000000000000000000000000000000000000081565b61031b7f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de681565b6102fa610748366004614236565b611605565b61031b600a5481565b61041b610764366004614236565b611616565b61077c61077736600461496f565b61162a565b6040516103259190614a54565b6102fa610797366004614a66565b611638565b61031b7f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a81565b61036c7f000000000000000000000000000000000000000000000000000000000000000081565b600b5461036c906001600160a01b031681565b61086b61080b366004614286565b60408051606080820183525f808352602080840182905292840181905260ff9490941684526001825292829020825193840183525463ffffffff8116845261ffff600160201b8204811692850192909252600160301b9004169082015290565b6040516103259190614af3565b61036c7f000000000000000000000000000000000000000000000000000000000000000081565b6102fa6108ad366004614236565b6117da565b61031b611850565b6102fa6108c8366004614123565b611859565b6108fb6108db366004614236565b6001600160a01b03165f9081526003602052604090206001015460ff1690565b6040516103259190614b26565b6033546002906004908116036109315760405163840a48d560e01b815260040160405180910390fd5b5f5b8251811015610aa4576040805160018082528183019092525f916020808301908036833701905050905083828151811061096f5761096f614b34565b6020026020010151815f8151811061098957610989614b34565b6001600160a01b0392909216602092830291909101909101526040805160018082528183019092525f9181602001602082028036833701905050905060035f8685815181106109da576109da614b34565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f0154815f81518110610a1657610a16614b34565b6020026020010181815250505f610a45825f81518110610a3857610a38614b34565b6020026020010151611970565b90505f610a5a826001600160c01b031661197c565b90505f5b8151811015610a9357610a8b8585848481518110610a7e57610a7e614b34565b016020015160f81c611a45565b600101610a5e565b505060019093019250610933915050565b505050565b5f610ab76002858585611b7c565b90505b9392505050565b6001335f9081526003602052604090206001015460ff166002811115610ae957610ae96146cd565b14610b075760405163aba4733960e01b815260040160405180910390fd5b335f90815260036020526040902054610b209082611c60565b50565b610b2b611d0b565b600a80549082905560408051828152602081018490527fa77a91bea7b6d95a8eb5a54878a1d9e3c875e26c86a9b70e3420c5c5db193b62910160405180910390a15050565b60405163237dfb4760e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906346fbf68e90610bbc903390600401614180565b602060405180830381865afa158015610bd7573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bfb9190614b57565b610c1857604051631d77d47760e21b815260040160405180910390fd5b6033548181168114610c3d5760405163c61dca5d60e01b815260040160405180910390fd5b610c4682611d65565b5050565b604080516060810182525f80825260208201819052918101919091525f838152600260205260409020805483908110610c8557610c85614b34565b5f91825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160c01b03600160401b909304929092169082015290505b92915050565b6040516308f6629d60e31b8152600481018290525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906347b314e890602401602060405180830381865afa158015610d3d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cd29190614b70565b610d69611d0b565b610b2081611da2565b610d7a611d0b565b610b2081611e0b565b610d8b611e74565b603354600190600290811603610db45760405163840a48d560e01b815260040160405180910390fd5b610dbd83611616565b610dda576040516366e565df60e01b815260040160405180910390fd5b5f610de483611ebd565b9050610df08582611f65565b5050505050565b604080518082019091525f8082526020820152610cd2610e16836114a0565b612213565b610e23611d0b565b610e3184848460018561229d565b50505050565b603354600290600490811603610e605760405163840a48d560e01b815260040160405180910390fd5b610ea283838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201829052505460ff1692506127ba915050565b5083518214610ec45760405163aaad13f760e01b815260040160405180910390fd5b5f5b82811015610df0575f848483818110610ee157610ee1614b34565b885192013560f81c92505f9188915084908110610f0057610f00614b34565b60209081029190910101516040516379a0849160e11b815260ff841660048201529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f341092290602401602060405180830381865afa158015610f73573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f979190614b8b565b63ffffffff16815114610fbd57604051638e5aeee760e01b815260040160405180910390fd5b5f81516001600160401b03811115610fd757610fd7613fbb565b604051908082528060200260200182016040528015611000578160200160208202803683370190505b5090505f805b83518110156110f6575f84828151811061102257611022614b34565b6020026020010151905060035f826001600160a01b03166001600160a01b031681526020019081526020015f205f015484838151811061106457611064614b34565b6020026020010181815250505f611086858481518110610a3857610a38614b34565b905060016001600160c01b03821660ff89161c8116146110b95760405163d053aa2160e01b815260040160405180910390fd5b836001600160a01b0316826001600160a01b0316116110eb5760405163ba50f91160e01b815260040160405180910390fd5b509150600101611006565b50611102838386611a45565b60ff84165f81815260056020908152604091829020439081905591519182527f46077d55330763f16269fd75e5761663f4192d2791747c0189b16ad31db07db4910160405180910390a250505050806001019050610ec6565b603254610100900460ff161580801561117b5750603254600160ff909116105b806111955750303b158015611195575060325460ff166001145b6111fd5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6032805460ff191660011790558015611220576032805461ff0019166101001790555b6112766040518060400160405280601681526020017520ab29a932b3b4b9ba393ca1b7b7b93234b730ba37b960511b8152506040518060400160405280600681526020016576302e302e3160d01b8152506127ee565b61127f8661281f565b61128885611da2565b61129183611d65565b61129a84611e0b565b6112a382612870565b80156112e9576032805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b606061131c7f00000000000000000000000000000000000000000000000000000000000000006128dc565b905090565b604080518082019091525f80825260208201526001600160a01b0382165f908152600360209081526040918290208251808401909352805483526001810154909183019060ff166002811115611379576113796146cd565b600281111561138a5761138a6146cd565b90525092915050565b60405163237dfb4760e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906346fbf68e906113df903390600401614180565b602060405180830381865afa1580156113fa573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061141e9190614b57565b61143b57604051631d77d47760e21b815260040160405180910390fd5b6114455f19611d65565b565b61144f611d0b565b8161145981612919565b610aa48383612941565b61146b6129d2565b6001600160a01b0382165f908152600960205260409020429055610c4682826129fd565b611497611d0b565b6114455f61281f565b5f610cd27f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de6836040516020016114e99291909182526001600160a01b0316602082015260400190565b60405160208183030381529060405280519060200120612a93565b61150c611d0b565b610aa48383835f5f61229d565b5f6060805f5f5f606060c8545f5f1b148015611535575060c954155b6115795760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b60448201526064016111f4565b611581612abf565b611589612b4f565b604080515f80825260208201909252600f60f81b9b939a50919850469750309650945092509050565b5f6115f17f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a87878787876040516020016114e996959493929190614ba6565b9695505050505050565b5f610cd282611970565b61160d611d0b565b610b2081612870565b600b546001600160a01b0391821691161490565b6060610aba60028484612b5e565b611640611e74565b6033545f906001908116036116685760405163840a48d560e01b815260040160405180910390fd5b61167185611616565b61168e576040516366e565df60e01b815260040160405180910390fd5b5f61169885611ebd565b90505f80806116a986880188614d35565b9250925092505f6116ba8b83612c0d565b90505f8460018111156116cf576116cf6146cd565b03611778575f6116e38c8388876001612ca6565b5190505f5b8651811015611771575f87828151811061170457611704614b34565b0160209081015160f81c5f8181526001909252604090912054845191925063ffffffff169084908490811061173b5761173b614b34565b602002602001015163ffffffff1611156117685760405163c6b9e76760e01b815260040160405180910390fd5b506001016116e8565b50506117cd565b600184600181111561178c5761178c6146cd565b036117b4575f8061179f898b018b614d90565b945094505050506117718d84898886866130ed565b60405163354bb8ab60e01b815260040160405180910390fd5b5050505050505050505050565b6117e2611d0b565b6001600160a01b0381166118475760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016111f4565b610b208161281f565b5f61131c6132e2565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118b5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118d99190614b70565b6001600160a01b0316336001600160a01b03161461190a5760405163794821ff60e01b815260040160405180910390fd5b603354801982198116146119315760405163c61dca5d60e01b815260040160405180910390fd5b603382905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020015b60405180910390a25050565b5f610cd26002836132eb565b60605f5f61198984613355565b61ffff166001600160401b038111156119a4576119a4613fbb565b6040519080825280601f01601f1916602001820160405280156119ce576020820181803683370190505b5090505f805b8251821080156119e5575061010081105b15611a3b576001811b935085841615611a2b578060f81b838381518110611a0e57611a0e614b34565b60200101906001600160f81b03191690815f1a9053508160010191505b611a3481614e9d565b90506119d4565b5090949350505050565b6040805160018082528183019092525f916020820181803683370190505090508160f81b815f81518110611a7b57611a7b614b34565b60200101906001600160f81b03191690815f1a905350604051636c3fb4bf60e01b81525f906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636c3fb4bf90611ae390889088908890600401614eb5565b5f604051808303815f875af1158015611afe573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611b259190810190614f45565b90505f5b85518110156112e957818181518110611b4457611b44614b34565b602002602001015115611b7457611b74868281518110611b6657611b66614b34565b6020026020010151846129fd565b600101611b29565b5f838152602085905260408120805482919084908110611b9e57611b9e614b34565b5f91825260209182902060408051606081018252929091015463ffffffff808216808552600160201b8304821695850195909552600160401b9091046001600160c01b03169183019190915290925085161015611c0e57604051636cb19aff60e01b815260040160405180910390fd5b602081015163ffffffff161580611c345750806020015163ffffffff168463ffffffff16105b611c515760405163bbba60cb60e01b815260040160405180910390fd5b6040015190505b949350505050565b6040516378219b3f60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f043367e90611cae9085908590600401614fd2565b5f604051808303815f87803b158015611cc5575f5ffd5b505af1158015611cd7573d5f5f3e3d5ffd5b50505050817fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa8260405161196491906146bb565b6096546001600160a01b031633146114455760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016111f4565b603381905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b6007546040517f315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c91611de1916001600160a01b03909116908490614fea565b60405180910390a1600780546001600160a01b0319166001600160a01b0392909216919091179055565b6008546040517f8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc991611e4a916001600160a01b03909116908490614fea565b60405180910390a1600880546001600160a01b0319166001600160a01b0392909216919091179055565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611445576040516323d871a560e01b815260040160405180910390fd5b60605f82516001600160401b03811115611ed957611ed9613fbb565b6040519080825280601f01601f191660200182016040528015611f03576020820181803683370190505b5090505f5b8351811015611f5e57838181518110611f2357611f23614b34565b602002602001015160f81b828281518110611f4057611f40614b34565b60200101906001600160f81b03191690815f1a905350600101611f08565b5092915050565b6001600160a01b0382165f90815260036020526040812080549091611f8982611970565b905060018084015460ff166002811115611fa557611fa56146cd565b14611fc35760405163aba4733960e01b815260040160405180910390fd5b5f8054611fd490869060ff166127ba565b90506001600160c01b038116611ffd576040516368b6a87560e11b815260040160405180910390fd5b6120146001600160c01b0382811690841681161490565b6120315760405163d053aa2160e01b815260040160405180910390fd5b6001600160c01b038181161983161661204a848261337f565b6001600160c01b0381166120a6576001600160a01b0387165f81815260036020526040808220600101805460ff19166002179055518692917f396fdcb180cb0fea26928113fb0fd1c3549863f9cd563e6a184f1d578116c8e491a35b60405163f4e24fe560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f4e24fe5906120f4908a908a90600401615004565b5f604051808303815f87803b15801561210b575f5ffd5b505af115801561211d573d5f5f3e3d5ffd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd915061216f9087908a90600401614fd2565b5f604051808303815f87803b158015612186575f5ffd5b505af1158015612198573d5f5f3e3d5ffd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd91506121ea9087908a90600401614fd2565b5f604051808303815f87803b158015612201575f5ffd5b505af11580156117cd573d5f5f3e3d5ffd5b604080518082019091525f80825260208201525f80806122405f51602061570e5f395f51905f528661503b565b90505b61224c8161338b565b90935091505f51602061570e5f395f51905f528283098303612284576040805180820190915290815260208101919091529392505050565b5f51602061570e5f395f51905f52600182089050612243565b5f5460ff1660c081106122c357604051633cb89c9760e01b815260040160405180910390fd5b5f80546001919081906122da90849060ff1661504e565b92506101000a81548160ff021916908360ff1602179055506122fc8187612941565b6040805160018082528183019092525f91816020015b604080518082019091525f8152606060208201528152602001906001900390816123125790505090505f85516001600160401b0381111561235557612355613fbb565b60405190808252806020026020018201604052801561237e578160200160208202803683370190505b5090505f5b86518110156123db5786818151811061239e5761239e614b34565b60200260200101515f01518282815181106123bb576123bb614b34565b6001600160a01b0390921660209283029190910190910152600101612383565b5060405180604001604052808460ff1663ffffffff16815260200182815250825f8151811061240c5761240c614b34565b6020908102919091010152600b54604051630130fc2760e51b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169263261f84e09261246c9291909116908690600401615067565b5f604051808303815f87803b158015612483575f5ffd5b505af1158015612495573d5f5f3e3d5ffd5b505f92506124a1915050565b8560018111156124b3576124b36146cd565b0361253a57604051633aea0b9d60e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906375d4173a906125089086908b908b90600401615177565b5f604051808303815f87803b15801561251f575f5ffd5b505af1158015612531573d5f5f3e3d5ffd5b5050505061267e565b600185600181111561254e5761254e6146cd565b0361267e578363ffffffff167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632981eb776040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125b6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125da9190614b8b565b63ffffffff16116125fe57604051630bd441b960e21b815260040160405180910390fd5b604051630662d3e160e51b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc5a7c20906126509086908b9089908c906004016151aa565b5f604051808303815f87803b158015612667575f5ffd5b505af1158015612679573d5f5f3e3d5ffd5b505050505b60405163136ca0f960e11b815260ff841660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906326d941f2906024015f604051808303815f87803b1580156126df575f5ffd5b505af11580156126f1573d5f5f3e3d5ffd5b505060405163136ca0f960e11b815260ff861660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506326d941f291506024015f604051808303815f87803b158015612756575f5ffd5b505af1158015612768573d5f5f3e3d5ffd5b505050508260ff167fa34835bc2b673ec37fcf1591a91295b163fc2e181e4ea4e733beb27de1ceac4c89898989896040516127a79594939291906151e0565b60405180910390a25b5050505050505050565b5f5f6127c584613407565b9050808360ff166001901b11610aba5760405163ca95733360e01b815260040160405180910390fd5b603254610100900460ff166128155760405162461bcd60e51b81526004016111f490615261565b610c4682826134c2565b609680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b600b546040516001600160a01b03909116907f9770f3cadfdcbb6f93af935e86047111590c3768271d237e4a2bc0b874bed693906128b19083908590614fea565b60405180910390a150600b80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f6128e883613510565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b5f5460ff90811690821610610b2057604051637310cff560e11b815260040160405180910390fd5b60ff82165f8181526001602090815260409182902084518154928601518487015161ffff908116600160301b0267ffff0000000000001991909216600160201b0265ffffffffffff1990951663ffffffff909316929092179390931716919091179055517f3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac90611964908490614af3565b6008546001600160a01b03163314611445576040516376d8ab1760e11b815260040160405180910390fd5b6001600160a01b0382165f90815260036020526040902060018082015460ff166002811115612a2e57612a2e6146cd565b14612a4c576040516325ec6c1f60e01b815260040160405180910390fd5b80545f8054612a5f90859060ff166127ba565b90505f612a6b83611970565b9050612a846001600160c01b0383811690831681161490565b156112e9576112e98686613537565b5f610cd2612a9f6132e2565b8360405161190160f01b8152600281019290925260228201526042902090565b606060ca8054612ace906152ac565b80601f0160208091040260200160405190810160405280929190818152602001828054612afa906152ac565b8015612b455780601f10612b1c57610100808354040283529160200191612b45565b820191905f5260205f20905b815481529060010190602001808311612b2857829003601f168201915b5050505050905090565b606060cb8054612ace906152ac565b60605f82516001600160401b03811115612b7a57612b7a613fbb565b604051908082528060200260200182016040528015612ba3578160200160208202803683370190505b5090505f5b8351811015612c0457612bd58686868481518110612bc857612bc8614b34565b60200260200101516135d5565b828281518110612be757612be7614b34565b63ffffffff90921660209283029190910190910152600101612ba8565b50949350505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166303c5a6b68484612c4887610df7565b6040518463ffffffff1660e01b8152600401612c6693929190615306565b6020604051808303815f875af1158015612c82573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aba919061537f565b612cca60405180606001604052806060815260200160608152602001606081525090565b5f8054612cdb90869060ff166127ba565b90505f612ce787611970565b90506001600160c01b038216612d10576040516313ca465760e01b815260040160405180910390fd5b8082166001600160c01b031615612d3a57604051630c6816cd60e01b815260040160405180910390fd5b600a546001600160a01b0389165f908152600960205260409020546001600160c01b0383811690851617914291612d719190615396565b10612d8f57604051631968677d60e11b815260040160405180910390fd5b612d99888261337f565b612da38887611c60565b60016001600160a01b038a165f9081526003602052604090206001015460ff166002811115612dd457612dd46146cd565b14612e6b57604080518082018252898152600160208083018281526001600160a01b038e165f908152600390925293902082518155925183820180549394939192909160ff191690836002811115612e2e57612e2e6146cd565b0217905550506040518991506001600160a01b038b16907fe8e68cef1c3a761ed7be7e8463a375f27f7bc335e51824223cacce636ec5c3fe905f90a35b604051631fd93ca960e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633fb2795290612eb9908c908b90600401615004565b5f604051808303815f87803b158015612ed0575f5ffd5b505af1158015612ee2573d5f5f3e3d5ffd5b5050604051632550477760e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063255047779150612f36908c908c908c906004016153a9565b5f604051808303815f875af1158015612f51573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612f789190810190615433565b60408087019190915260208601919091525162bff04d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169062bff04d90612fd3908b908b90600401614fd2565b5f604051808303815f875af1158015612fee573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052613015919081019061548c565b845284156130e1575f5b87518110156130df575f60015f8a848151811061303e5761303e614b34565b0160209081015160f81c82528181019290925260409081015f208151606081018352905463ffffffff811680835261ffff600160201b8304811695840195909552600160301b909104909316918101919091528751805191935090849081106130a9576130a9614b34565b602002602001015163ffffffff1611156130d65760405163c6b9e76760e01b815260040160405180910390fd5b5060010161301f565b505b50505095945050505050565b835182511461310f5760405163aaad13f760e01b815260040160405180910390fd5b61311b868684846136ed565b5f613129878787875f612ca6565b90505f5b85518110156127b0575f60015f88848151811061314c5761314c614b34565b0160209081015160f81c82528181019290925260409081015f208151606081018352905463ffffffff811680835261ffff600160201b8304811695840195909552600160301b909104909316918101919091528451805191935090849081106131b7576131b7614b34565b602002602001015163ffffffff1611156132d95761324b8783815181106131e0576131e0614b34565b602001015160f81c60f81b60f81c8460400151848151811061320457613204614b34565b60200260200101518b8660200151868151811061322357613223614b34565b602002602001015189878151811061323d5761323d614b34565b602002602001015186613798565b6040805160018082528183019092525f9160208201818036833701905050905087838151811061327d5761327d614b34565b602001015160f81c60f81b815f8151811061329a5761329a614b34565b60200101906001600160f81b03191690815f1a9053506132d78684815181106132c5576132c5614b34565b602002602001015160200151826129fd565b505b5060010161312d565b5f61131c613919565b5f81815260208390526040812054808203613309575f915050610cd2565b5f83815260208590526040902061332160018361551b565b8154811061333157613331614b34565b5f91825260209091200154600160401b90046001600160c01b03169150610cd29050565b5f805b8215610cd25761336960018461551b565b90921691806133778161552e565b915050613358565b610c466002838361398c565b5f80805f51602061570e5f395f51905f5260035f51602061570e5f395f51905f52865f51602061570e5f395f51905f52888909090890505f6133fb827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f525f51602061570e5f395f51905f52613b45565b91959194509092505050565b5f6101008251111561342c57604051637da54e4760e11b815260040160405180910390fd5b81515f0361343b57505f919050565b5f5f835f8151811061344f5761344f614b34565b0160200151600160f89190911c81901b92505b84518110156134b95784818151811061347d5761347d614b34565b0160200151600160f89190911c1b91508282116134ad57604051631019106960e31b815260040160405180910390fd5b91811791600101613462565b50909392505050565b603254610100900460ff166134e95760405162461bcd60e51b81526004016111f490615261565b60ca6134f58382615592565b5060cb6135028282615592565b50505f60c881905560c95550565b5f60ff8216601f811115610cd257604051632cd44ac360e21b815260040160405180910390fd5b604080516060810182526001600160a01b038481168252600b54811660208301527f00000000000000000000000000000000000000000000000000000000000000001691636e3492b59190810161358d85613bbe565b8152506040518263ffffffff1660e01b81526004016135ac919061564c565b5f604051808303815f87803b1580156135c3575f5ffd5b505af11580156112e9573d5f5f3e3d5ffd5b5f81815260208490526040812054815b818110156136585760016135f9828461551b565b613603919061551b565b92508463ffffffff16865f8681526020019081526020015f208463ffffffff168154811061363357613633614b34565b5f9182526020909120015463ffffffff1611613650575050610aba565b6001016135e5565b5060405162461bcd60e51b815260206004820152605c60248201527f5265676973747279436f6f7264696e61746f722e67657451756f72756d42697460448201527f6d6170496e6465784174426c6f636b4e756d6265723a206e6f206269746d617060648201527f2075706461746520666f756e6420666f72206f70657261746f72496400000000608482015260a4016111f4565b6020808201515f9081526004909152604090205460ff161561372257604051636fbefec360e11b815260040160405180910390fd5b428160400151101561374757604051630819bdcd60e01b815260040160405180910390fd5b602080820180515f9081526004909252604091829020805460ff19166001179055600754905191830151610e31926001600160a01b039092169161379191889188918891906115b2565b8351613c63565b6020808301516001600160a01b038082165f81815260039094526040909320549192908716036137db576040516356168b4160e11b815260040160405180910390fd5b8760ff16845f015160ff161461380457604051638e5aeee760e01b815260040160405180910390fd5b604051635401ed2760e01b81526004810182905260ff891660248201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635401ed2790604401602060405180830381865afa158015613872573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138969190615688565b90506138a28185613c8b565b6001600160601b0316866001600160601b0316116138d357604051634c44995d60e01b815260040160405180910390fd5b6138dd8885613cae565b6001600160601b0316816001600160601b03161061390e5760405163b187e86960e01b815260040160405180910390fd5b505050505050505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f613943613cc7565b61394b613d1f565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f8281526020849052604081205490819003613a30575f83815260208581526040808320815160608101835263ffffffff43811682528185018681526001600160c01b03808a16958401958652845460018101865594885295909620915191909201805495519351909416600160401b026001600160401b03938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055610e31565b5f838152602085905260408120613a4860018461551b565b81548110613a5857613a58614b34565b5f918252602090912001805490915063ffffffff438116911603613a995780546001600160401b0316600160401b6001600160c01b03851602178155610df0565b805463ffffffff438116600160201b81810267ffffffff00000000199094169390931784555f8781526020898152604080832081516060810183529485528483018481526001600160c01b03808c1693870193845282546001810184559286529390942094519401805493519151909216600160401b026001600160401b0391861690960267ffffffffffffffff19909316939094169290921717919091169190911790555050505050565b5f5f613b4f613f7f565b613b57613f9d565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280613b9457fe5b5082613bb35760405163d51edae360e01b815260040160405180910390fd5b505195945050505050565b60605f82516001600160401b03811115613bda57613bda613fbb565b604051908082528060200260200182016040528015613c03578160200160208202803683370190505b5090505f5b8351811015611f5e57838181518110613c2357613c23614b34565b602001015160f81c60f81b60f81c60ff16828281518110613c4657613c46614b34565b63ffffffff90921660209283029190910190910152600101613c08565b613c6e838383613d4f565b610aa457604051638baa579f60e01b815260040160405180910390fd5b60208101515f9061271090613ca49061ffff16856156a3565b610aba91906156c5565b60408101515f9061271090613ca49061ffff16856156a3565b5f5f613cd1612abf565b805190915015613ce8578051602090910120919050565b60c8548015613cf75792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b5f5f613d29612b4f565b805190915015613d40578051602090910120919050565b60c9548015613cf75792915050565b5f5f5f613d5c8585613da3565b90925090505f816004811115613d7457613d746146cd565b148015613d925750856001600160a01b0316826001600160a01b0316145b806115f157506115f1868686613de5565b5f5f8251604103613dd7576020830151604084015160608501515f1a613dcb87828585613ecc565b94509450505050613dde565b505f905060025b9250929050565b5f5f5f856001600160a01b0316631626ba7e60e01b8686604051602401613e0d929190614fd2565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051613e4b91906156f2565b5f60405180830381855afa9150503d805f8114613e83576040519150601f19603f3d011682016040523d82523d5f602084013e613e88565b606091505b5091509150818015613e9c57506020815110155b80156115f157508051630b135d3f60e11b90613ec1908301602090810190840161537f565b149695505050505050565b5f806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03831115613ef757505f90506003613f76565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015613f48573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116613f70575f60019250925050613f76565b91505f90505b94509492505050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b0381118282101715613ff157613ff1613fbb565b60405290565b604080519081016001600160401b0381118282101715613ff157613ff1613fbb565b604051601f8201601f191681016001600160401b038111828210171561404157614041613fbb565b604052919050565b5f6001600160401b0382111561406157614061613fbb565b5060051b60200190565b6001600160a01b0381168114610b20575f5ffd5b5f82601f83011261408e575f5ffd5b81356140a161409c82614049565b614019565b8082825260208201915060208360051b8601019250858311156140c2575f5ffd5b602085015b838110156140e85780356140da8161406b565b8352602092830192016140c7565b5095945050505050565b5f60208284031215614102575f5ffd5b81356001600160401b03811115614117575f5ffd5b611c588482850161407f565b5f60208284031215614133575f5ffd5b5035919050565b63ffffffff81168114610b20575f5ffd5b5f5f5f6060848603121561415d575f5ffd5b83359250602084013561416f8161413a565b929592945050506040919091013590565b6001600160a01b0391909116815260200190565b5f82601f8301126141a3575f5ffd5b8135602083015f5f6001600160401b038411156141c2576141c2613fbb565b50601f8301601f19166020016141d781614019565b9150508281528583830111156141eb575f5ffd5b828260208301375f92810160200192909252509392505050565b5f60208284031215614215575f5ffd5b81356001600160401b0381111561422a575f5ffd5b611c5884828501614194565b5f60208284031215614246575f5ffd5b8135610aba8161406b565b5f5f60408385031215614262575f5ffd5b50508035926020909101359150565b803560ff81168114614281575f5ffd5b919050565b5f60208284031215614296575f5ffd5b610aba82614271565b5f82601f8301126142ae575f5ffd5b81356142bc61409c82614049565b8082825260208201915060208360051b8601019250858311156142dd575f5ffd5b602085015b838110156140e85780356142f58161413a565b8352602092830192016142e2565b5f5f5f60608486031215614315575f5ffd5b83356143208161406b565b925060208401356143308161406b565b915060408401356001600160401b0381111561434a575f5ffd5b6143568682870161429f565b9150509250925092565b815181526020808301519082015260408101610cd2565b803561ffff81168114614281575f5ffd5b5f60608284031215614398575f5ffd5b6143a0613fcf565b905081356143ad8161413a565b81526143bb60208301614377565b60208201526143cc60408301614377565b604082015292915050565b6001600160601b0381168114610b20575f5ffd5b5f82601f8301126143fa575f5ffd5b813561440861409c82614049565b8082825260208201915060208360061b860101925085831115614429575f5ffd5b602085015b838110156140e85760408188031215614445575f5ffd5b61444d613ff7565b81356144588161406b565b81526020820135614468816143d7565b602082810191909152908452929092019160400161442e565b5f5f5f5f60c08587031215614494575f5ffd5b61449e8686614388565b935060608501356144ae816143d7565b925060808501356001600160401b038111156144c8575f5ffd5b6144d4878288016143eb565b92505060a08501356144e58161413a565b939692955090935050565b5f5f83601f840112614500575f5ffd5b5081356001600160401b03811115614516575f5ffd5b602083019150836020828501011115613dde575f5ffd5b5f5f5f6040848603121561453f575f5ffd5b83356001600160401b03811115614554575f5ffd5b8401601f81018613614564575f5ffd5b803561457261409c82614049565b8082825260208201915060208360051b850101925088831115614593575f5ffd5b602084015b838110156145d35780356001600160401b038111156145b5575f5ffd5b6145c48b60208389010161407f565b84525060209283019201614598565b50955050505060208401356001600160401b038111156145f1575f5ffd5b6145fd868287016144f0565b9497909650939450505050565b5f5f5f5f5f60a0868803121561461e575f5ffd5b85356146298161406b565b945060208601356146398161406b565b935060408601356146498161406b565b92506060860135915060808601356146608161406b565b809150509295509295909350565b5f5b83811015614688578181015183820152602001614670565b50505f910152565b5f81518084526146a781602086016020860161466e565b601f01601f19169290920160200192915050565b602081525f610aba6020830184614690565b634e487b7160e01b5f52602160045260245ffd5b600381106146f1576146f16146cd565b9052565b815181526020808301516040830191611f5e908401826146e1565b5f5f60808385031215614721575f5ffd5b61472a83614271565b91506147398460208501614388565b90509250929050565b5f5f60408385031215614753575f5ffd5b823561475e8161406b565b915060208301356001600160401b03811115614778575f5ffd5b61478485828601614194565b9150509250929050565b5f5f5f60a084860312156147a0575f5ffd5b6147aa8585614388565b925060608401356147ba816143d7565b915060808401356001600160401b038111156147d4575f5ffd5b614356868287016143eb565b60ff60f81b8816815260e060208201525f6147fe60e0830189614690565b82810360408401526148108189614690565b606084018890526001600160a01b038716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b81811015614865578351835260209384019390920191600101614847565b50909b9a5050505050505050505050565b5f82601f830112614885575f5ffd5b813561489361409c82614049565b8082825260208201915060208360061b8601019250858311156148b4575f5ffd5b602085015b838110156140e857604081880312156148d0575f5ffd5b6148d8613ff7565b6148e182614271565b815260208201356148f18161406b565b60208281019190915290845292909201916040016148b9565b5f5f5f5f5f60a0868803121561491e575f5ffd5b85356149298161406b565b94506020860135935060408601356001600160401b0381111561494a575f5ffd5b61495688828901614876565b9598949750949560608101359550608001359392505050565b5f5f60408385031215614980575f5ffd5b823561498b8161413a565b915060208301356001600160401b038111156149a5575f5ffd5b8301601f810185136149b5575f5ffd5b80356149c361409c82614049565b8082825260208201915060208360051b8501019250878311156149e4575f5ffd5b6020840193505b82841015614a065783358252602093840193909101906149eb565b809450505050509250929050565b5f8151808452602084019350602083015f5b82811015614a4a57815163ffffffff16865260209586019590910190600101614a26565b5093949350505050565b602081525f610aba6020830184614a14565b5f5f5f5f5f60808688031215614a7a575f5ffd5b8535614a858161406b565b94506020860135614a958161406b565b935060408601356001600160401b03811115614aaf575f5ffd5b614abb8882890161429f565b93505060608601356001600160401b03811115614ad6575f5ffd5b614ae2888289016144f0565b969995985093965092949392505050565b60608101610cd2828463ffffffff815116825261ffff602082015116602083015261ffff60408201511660408301525050565b60208101610cd282846146e1565b634e487b7160e01b5f52603260045260245ffd5b80518015158114614281575f5ffd5b5f60208284031215614b67575f5ffd5b610aba82614b48565b5f60208284031215614b80575f5ffd5b8151610aba8161406b565b5f60208284031215614b9b575f5ffd5b8151610aba8161413a565b5f60c0820188835260018060a01b038816602084015286604084015260c0606084015280865180835260e0850191506020880192505f5b81811015614c13578351805160ff1684526020908101516001600160a01b03168185015290930192604090920191600101614bdd565b50506080840195909552505060a00152949350505050565b803560028110614281575f5ffd5b5f60408284031215614c49575f5ffd5b614c51613ff7565b823581526020928301359281019290925250919050565b5f82601f830112614c77575f5ffd5b614c7f613ff7565b806040840185811115614c90575f5ffd5b845b81811015614caa578035845260209384019301614c92565b509095945050505050565b5f818303610100811215614cc7575f5ffd5b614ccf613fcf565b9150614cdb8484614c39565b8252614cea8460408501614c39565b60208301526080607f1982011215614d00575f5ffd5b50614d09613ff7565b614d168460808501614c68565b8152614d258460c08501614c68565b6020820152604082015292915050565b5f5f5f6101408486031215614d48575f5ffd5b614d5184614c2b565b925060208401356001600160401b03811115614d6b575f5ffd5b614d7786828701614194565b925050614d878560408601614cb5565b90509250925092565b5f5f5f5f5f6101808688031215614da5575f5ffd5b614dae86614c2b565b945060208601356001600160401b03811115614dc8575f5ffd5b614dd488828901614194565b945050614de48760408801614cb5565b92506101408601356001600160401b03811115614dff575f5ffd5b614e0b88828901614876565b9250506101608601356001600160401b03811115614e27575f5ffd5b860160608189031215614e38575f5ffd5b614e40613fcf565b81356001600160401b03811115614e55575f5ffd5b614e618a828501614194565b8252506020828101359082015260409182013591810191909152949793965091945092919050565b634e487b7160e01b5f52601160045260245ffd5b5f60018201614eae57614eae614e89565b5060010190565b606080825284519082018190525f9060208601906080840190835b81811015614ef75783516001600160a01b0316835260209384019390920191600101614ed0565b5050838103602080860191909152865180835291810192508601905f5b81811015614f32578251845260209384019390920191600101614f14565b50505060ff841660408401529050611c58565b5f60208284031215614f55575f5ffd5b81516001600160401b03811115614f6a575f5ffd5b8201601f81018413614f7a575f5ffd5b8051614f8861409c82614049565b8082825260208201915060208360051b850101925086831115614fa9575f5ffd5b6020840193505b828410156115f157614fc184614b48565b825260209384019390910190614fb0565b828152604060208201525f610ab76040830184614690565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03831681526040602082018190525f90610ab790830184614690565b634e487b7160e01b5f52601260045260245ffd5b5f8261504957615049615027565b500690565b60ff8181168382160190811115610cd257610cd2614e89565b5f6040820160018060a01b03851683526040602084015280845180835260608501915060608160051b8601019250602086015f5b8281101561511c57868503605f190184528151805163ffffffff168652602090810151604082880181905281519088018190529101905f9060608801905b808310156151045783516001600160a01b0316825260209384019360019390930192909101906150d9565b5096505050602093840193919091019060010161509b565b5092979650505050505050565b5f8151808452602084019350602083015f5b82811015614a4a57815180516001600160a01b031687526020908101516001600160601b0316818801526040909601959091019060010161513b565b60ff841681526001600160601b0383166020820152606060408201525f6151a16060830184615129565b95945050505050565b60ff851681526001600160601b038416602082015263ffffffff83166040820152608060608201525f6115f16080830184615129565b61520f818763ffffffff815116825261ffff602082015116602083015261ffff60408201511660408301525050565b6001600160601b038516606082015260e060808201525f61523360e0830186615129565b905060028410615245576152456146cd565b8360a083015263ffffffff831660c08301529695505050505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600181811c908216806152c057607f821691505b6020821081036152de57634e487b7160e01b5f52602260045260245ffd5b50919050565b805f5b6002811015610e315781518452602093840193909101906001016152e7565b6001600160a01b0384168152825180516020808401919091520151604082015261016081016020848101518051606085015290810151608084015250604084015161535560a0840182516152e4565b6020015161536660e08401826152e4565b5082516101208301526020830151610140830152611c58565b5f6020828403121561538f575f5ffd5b5051919050565b80820180821115610cd257610cd2614e89565b60018060a01b0384168152826020820152606060408201525f6151a16060830184614690565b5f82601f8301126153de575f5ffd5b81516153ec61409c82614049565b8082825260208201915060208360051b86010192508583111561540d575f5ffd5b602085015b838110156140e8578051615425816143d7565b835260209283019201615412565b5f5f60408385031215615444575f5ffd5b82516001600160401b03811115615459575f5ffd5b615465858286016153cf565b92505060208301516001600160401b03811115615480575f5ffd5b614784858286016153cf565b5f6020828403121561549c575f5ffd5b81516001600160401b038111156154b1575f5ffd5b8201601f810184136154c1575f5ffd5b80516154cf61409c82614049565b8082825260208201915060208360051b8501019250868311156154f0575f5ffd5b6020840193505b828410156115f157835161550a8161413a565b8252602093840193909101906154f7565b81810381811115610cd257610cd2614e89565b5f61ffff821661ffff810361554557615545614e89565b60010192915050565b601f821115610aa457805f5260205f20601f840160051c810160208510156155735750805b601f840160051c820191505b81811015610df0575f815560010161557f565b81516001600160401b038111156155ab576155ab613fbb565b6155bf816155b984546152ac565b8461554e565b6020601f8211600181146155f1575f83156155da5750848201515b5f19600385901b1c1916600184901b178455610df0565b5f84815260208120601f198516915b828110156156205787850151825560209485019460019092019101615600565b508482101561563d57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b602080825282516001600160a01b039081168383015290830151166040808301919091528201516060808301525f90611c586080840182614a14565b5f60208284031215615698575f5ffd5b8151610aba816143d7565b6001600160601b038181168382160290811690818114611f5e57611f5e614e89565b5f6001600160601b038316806156dd576156dd615027565b806001600160601b0384160491505092915050565b5f825161570381846020870161466e565b919091019291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47a2646970667358221220e90887aea0d2963b88e742569173c5a48f10510f48de197b1066471dd4575af764736f6c634300081b0033
3968    /// ```
3969    #[rustfmt::skip]
3970    #[allow(clippy::all)]
3971    pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
3972        b"`\x80`@R4\x80\x15a\0\x0FW__\xFD[P`\x046\x10a\x02\xE3W_5`\xE0\x1C\x80c]\xF4YF\x11a\x01\x8DW\x80c\xA6T\x97\xC6\x11a\0\xE0W\x80c\xDE\x11d\xBB\x11a\0\x8FW\x80c\xDE\x11d\xBB\x14a\x07\xEAW\x80c\xE6W\x97\xAD\x14a\x07\xFDW\x80c\xEA2\xAF\xAE\x14a\x08xW\x80c\xF2\xFD\xE3\x8B\x14a\x08\x9FW\x80c\xF6\x98\xDA%\x14a\x08\xB2W\x80c\xFA\xBC\x1C\xBC\x14a\x08\xBAW\x80c\xFD9\x10Z\x14a\x08\xCDW__\xFD[\x80c\xA6T\x97\xC6\x14a\x07:W\x80c\xA9ox>\x14a\x07MW\x80c\xB5&W\x87\x14a\x07VW\x80c\xC3\x91B^\x14a\x07iW\x80c\xC6?\xD5\x02\x14a\x07\x89W\x80c\xCA\r\xE8\x82\x14a\x07\x9CW\x80c\xCA\x8A\xA7\xC7\x14a\x07\xC3W__\xFD[\x80c\x84\xCAR\x13\x11a\x01<W\x80c\x84\xCAR\x13\x14a\x06pW\x80c\x87\x1E\xF0I\x14a\x06\x83W\x80c\x88o\x11\x95\x14a\x06\x96W\x80c\x8D\xA5\xCB[\x14a\x06\xBDW\x80c\x9A\xA1e=\x14a\x06\xCEW\x80c\x9E\x99#\xC2\x14a\x06\xECW\x80c\x9F\xEA\xB8Y\x14a\x07\x13W__\xFD[\x80c]\xF4YF\x14a\x05\xC6W\x80ch0H5\x14a\x05\xEDW\x80cn;\x17\xDB\x14a\x06\x14W\x80cqP\x18\xA6\x14a\x06'W\x80csDy\x92\x14a\x06/W\x80c\x82\x81\xABu\x14a\x06BW\x80c\x84\xB0\x19n\x14a\x06UW__\xFD[\x80c)k\xB0d\x11a\x02EW\x80cS\x0B\x97\xA4\x11a\x01\xF4W\x80cS\x0B\x97\xA4\x14a\x058W\x80cT\xFDMP\x14a\x05KW\x80cXe\xC6\x0C\x14a\x05`W\x80cY\\jg\x14a\x05\x80W\x80cZ\xC8j\xB7\x14a\x05\x88W\x80c[\x0B\x82\x9F\x14a\x05\xABW\x80c\\\x97Z\xBB\x14a\x05\xBEW__\xFD[\x80c)k\xB0d\x14a\x04\xA6W\x80c)\xD1\xE0\xC3\x14a\x04\xB9W\x80c,\xDD\x1E\x86\x14a\x04\xCCW\x80c0<\xA9V\x14a\x04\xDFW\x80c<*\x7FL\x14a\x04\xF2W\x80c>\xEF:Q\x14a\x05\x12W\x80cQ@\xA5H\x14a\x05%W__\xFD[\x80c\x12^\x05\x84\x11a\x02\xA1W\x80c\x12^\x05\x84\x14a\x03\x9FW\x80c\x13T*N\x14a\x03\xBEW\x80c\x13d9\xDD\x14a\x03\xE6W\x80c\x14x\x85\x1F\x14a\x03\xF9W\x80c\x1E\xB8\x12\xDA\x14a\x04+W\x80c$\x9A\x0CB\x14a\x04tW\x80c(\xF6\x1B1\x14a\x04\x93W__\xFD[\x80b\xCF*\xB5\x14a\x02\xE7W\x80c\x03\xFD4\x92\x14a\x02\xFCW\x80c\x04\xECcQ\x14a\x03.W\x80c\x05C\x10\xE6\x14a\x03YW\x80c\x0C\xF4\xB7g\x14a\x03yW\x80c\r?!4\x14a\x03\x8CW[__\xFD[a\x02\xFAa\x02\xF56`\x04a@\xF2V[a\t\x08V[\0[a\x03\x1Ba\x03\n6`\x04aA#V[_\x90\x81R`\x02` R`@\x90 T\x90V[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x03Aa\x03<6`\x04aAKV[a\n\xA9V[`@Q`\x01`\x01`\xC0\x1B\x03\x90\x91\x16\x81R` \x01a\x03%V[`\x07Ta\x03l\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@Qa\x03%\x91\x90aA\x80V[a\x02\xFAa\x03\x876`\x04aB\x05V[a\n\xC1V[a\x02\xFAa\x03\x9A6`\x04aA#V[a\x0B#V[a\x03\x1Ba\x03\xAD6`\x04aB6V[`\t` R_\x90\x81R`@\x90 T\x81V[a\x03\x1Ba\x03\xCC6`\x04aB6V[`\x01`\x01`\xA0\x1B\x03\x16_\x90\x81R`\x03` R`@\x90 T\x90V[a\x02\xFAa\x03\xF46`\x04aA#V[a\x0BpV[a\x04\x1Ba\x04\x076`\x04aA#V[`\x04` R_\x90\x81R`@\x90 T`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01a\x03%V[a\x04>a\x0496`\x04aBQV[a\x0CJV[`@\x80Q\x82Qc\xFF\xFF\xFF\xFF\x90\x81\x16\x82R` \x80\x85\x01Q\x90\x91\x16\x90\x82\x01R\x91\x81\x01Q`\x01`\x01`\xC0\x1B\x03\x16\x90\x82\x01R``\x01a\x03%V[a\x03\x1Ba\x04\x826`\x04aB\x86V[`\x05` R_\x90\x81R`@\x90 T\x81V[`\x08Ta\x03l\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[a\x03la\x04\xB46`\x04aA#V[a\x0C\xD8V[a\x02\xFAa\x04\xC76`\x04aB6V[a\raV[a\x02\xFAa\x04\xDA6`\x04aB6V[a\rrV[a\x02\xFAa\x04\xED6`\x04aC\x03V[a\r\x83V[a\x05\x05a\x05\x006`\x04aB6V[a\r\xF7V[`@Qa\x03%\x91\x90aC`V[a\x02\xFAa\x05 6`\x04aD\x81V[a\x0E\x1BV[a\x02\xFAa\x0536`\x04aE-V[a\x0E7V[a\x02\xFAa\x05F6`\x04aF\nV[a\x11[V[a\x05Sa\x12\xF1V[`@Qa\x03%\x91\x90aF\xBBV[a\x05sa\x05n6`\x04aB6V[a\x13!V[`@Qa\x03%\x91\x90aF\xF5V[a\x02\xFAa\x13\x93V[a\x04\x1Ba\x05\x966`\x04aB\x86V[`3T`\x01`\xFF\x90\x92\x16\x91\x90\x91\x1B\x90\x81\x16\x14\x90V[a\x02\xFAa\x05\xB96`\x04aG\x10V[a\x14GV[`3Ta\x03\x1BV[a\x03l\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\x81V[a\x03l\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\x81V[a\x02\xFAa\x06\"6`\x04aGBV[a\x14cV[a\x02\xFAa\x14\x8FV[a\x03\x1Ba\x06=6`\x04aB6V[a\x14\xA0V[a\x02\xFAa\x06P6`\x04aG\x8EV[a\x15\x04V[a\x06]a\x15\x19V[`@Qa\x03%\x97\x96\x95\x94\x93\x92\x91\x90aG\xE0V[a\x03\x1Ba\x06~6`\x04aI\nV[a\x15\xB2V[a\x03Aa\x06\x916`\x04aA#V[a\x15\xFBV[a\x03l\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\x81V[`\x96T`\x01`\x01`\xA0\x1B\x03\x16a\x03lV[_Ta\x06\xDA\x90`\xFF\x16\x81V[`@Q`\xFF\x90\x91\x16\x81R` \x01a\x03%V[a\x03l\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\x81V[a\x03\x1B\x7F+\xD8!$\x05\x7F\t\x13\xBC;w,\xE7\xB8>\x80W\xC1\xAD\x1F5\x10\xFC\x83w\x8B\xE2\x0F\x10\xEC]\xE6\x81V[a\x02\xFAa\x07H6`\x04aB6V[a\x16\x05V[a\x03\x1B`\nT\x81V[a\x04\x1Ba\x07d6`\x04aB6V[a\x16\x16V[a\x07|a\x07w6`\x04aIoV[a\x16*V[`@Qa\x03%\x91\x90aJTV[a\x02\xFAa\x07\x976`\x04aJfV[a\x168V[a\x03\x1B\x7FM@N2v\xE7\xAC!c\xD8\xEEGj\xFAjA\xD1\xF6\x8F\xB7\x1F-\x8BeF\xB2NU\xCE\x01\xB7*\x81V[a\x03l\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\x81V[`\x0BTa\x03l\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[a\x08ka\x08\x0B6`\x04aB\x86V[`@\x80Q``\x80\x82\x01\x83R_\x80\x83R` \x80\x84\x01\x82\x90R\x92\x84\x01\x81\x90R`\xFF\x94\x90\x94\x16\x84R`\x01\x82R\x92\x82\x90 \x82Q\x93\x84\x01\x83RTc\xFF\xFF\xFF\xFF\x81\x16\x84Ra\xFF\xFF`\x01` \x1B\x82\x04\x81\x16\x92\x85\x01\x92\x90\x92R`\x01`0\x1B\x90\x04\x16\x90\x82\x01R\x90V[`@Qa\x03%\x91\x90aJ\xF3V[a\x03l\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\x81V[a\x02\xFAa\x08\xAD6`\x04aB6V[a\x17\xDAV[a\x03\x1Ba\x18PV[a\x02\xFAa\x08\xC86`\x04aA#V[a\x18YV[a\x08\xFBa\x08\xDB6`\x04aB6V[`\x01`\x01`\xA0\x1B\x03\x16_\x90\x81R`\x03` R`@\x90 `\x01\x01T`\xFF\x16\x90V[`@Qa\x03%\x91\x90aK&V[`3T`\x02\x90`\x04\x90\x81\x16\x03a\t1W`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_[\x82Q\x81\x10\x15a\n\xA4W`@\x80Q`\x01\x80\x82R\x81\x83\x01\x90\x92R_\x91` \x80\x83\x01\x90\x806\x837\x01\x90PP\x90P\x83\x82\x81Q\x81\x10a\toWa\toaK4V[` \x02` \x01\x01Q\x81_\x81Q\x81\x10a\t\x89Wa\t\x89aK4V[`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16` \x92\x83\x02\x91\x90\x91\x01\x90\x91\x01R`@\x80Q`\x01\x80\x82R\x81\x83\x01\x90\x92R_\x91\x81` \x01` \x82\x02\x806\x837\x01\x90PP\x90P`\x03_\x86\x85\x81Q\x81\x10a\t\xDAWa\t\xDAaK4V[` \x02` \x01\x01Q`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x90\x81R` \x01_ _\x01T\x81_\x81Q\x81\x10a\n\x16Wa\n\x16aK4V[` \x02` \x01\x01\x81\x81RPP_a\nE\x82_\x81Q\x81\x10a\n8Wa\n8aK4V[` \x02` \x01\x01Qa\x19pV[\x90P_a\nZ\x82`\x01`\x01`\xC0\x1B\x03\x16a\x19|V[\x90P_[\x81Q\x81\x10\x15a\n\x93Wa\n\x8B\x85\x85\x84\x84\x81Q\x81\x10a\n~Wa\n~aK4V[\x01` \x01Q`\xF8\x1Ca\x1AEV[`\x01\x01a\n^V[PP`\x01\x90\x93\x01\x92Pa\t3\x91PPV[PPPV[_a\n\xB7`\x02\x85\x85\x85a\x1B|V[\x90P[\x93\x92PPPV[`\x013_\x90\x81R`\x03` R`@\x90 `\x01\x01T`\xFF\x16`\x02\x81\x11\x15a\n\xE9Wa\n\xE9aF\xCDV[\x14a\x0B\x07W`@Qc\xAB\xA4s9`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[3_\x90\x81R`\x03` R`@\x90 Ta\x0B \x90\x82a\x1C`V[PV[a\x0B+a\x1D\x0BV[`\n\x80T\x90\x82\x90U`@\x80Q\x82\x81R` \x81\x01\x84\x90R\x7F\xA7z\x91\xBE\xA7\xB6\xD9Z\x8E\xB5\xA5Hx\xA1\xD9\xE3\xC8u\xE2l\x86\xA9\xB7\x0E4 \xC5\xC5\xDB\x19;b\x91\x01`@Q\x80\x91\x03\x90\xA1PPV[`@Qc#}\xFBG`\xE1\x1B\x81R`\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\x90cF\xFB\xF6\x8E\x90a\x0B\xBC\x903\x90`\x04\x01aA\x80V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0B\xD7W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0B\xFB\x91\x90aKWV[a\x0C\x18W`@Qc\x1Dw\xD4w`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`3T\x81\x81\x16\x81\x14a\x0C=W`@Qc\xC6\x1D\xCA]`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0CF\x82a\x1DeV[PPV[`@\x80Q``\x81\x01\x82R_\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x91\x90\x91R_\x83\x81R`\x02` R`@\x90 \x80T\x83\x90\x81\x10a\x0C\x85Wa\x0C\x85aK4V[_\x91\x82R` \x91\x82\x90 `@\x80Q``\x81\x01\x82R\x91\x90\x92\x01Tc\xFF\xFF\xFF\xFF\x80\x82\x16\x83R`\x01` \x1B\x82\x04\x16\x93\x82\x01\x93\x90\x93R`\x01`\x01`\xC0\x1B\x03`\x01`@\x1B\x90\x93\x04\x92\x90\x92\x16\x90\x82\x01R\x90P[\x92\x91PPV[`@Qc\x08\xF6b\x9D`\xE3\x1B\x81R`\x04\x81\x01\x82\x90R_\x90\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\x16\x90cG\xB3\x14\xE8\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\r=W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0C\xD2\x91\x90aKpV[a\ria\x1D\x0BV[a\x0B \x81a\x1D\xA2V[a\rza\x1D\x0BV[a\x0B \x81a\x1E\x0BV[a\r\x8Ba\x1EtV[`3T`\x01\x90`\x02\x90\x81\x16\x03a\r\xB4W`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\r\xBD\x83a\x16\x16V[a\r\xDAW`@Qcf\xE5e\xDF`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a\r\xE4\x83a\x1E\xBDV[\x90Pa\r\xF0\x85\x82a\x1FeV[PPPPPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x0C\xD2a\x0E\x16\x83a\x14\xA0V[a\"\x13V[a\x0E#a\x1D\x0BV[a\x0E1\x84\x84\x84`\x01\x85a\"\x9DV[PPPPV[`3T`\x02\x90`\x04\x90\x81\x16\x03a\x0E`W`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0E\xA2\x83\x83\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847_\x92\x01\x82\x90RPT`\xFF\x16\x92Pa'\xBA\x91PPV[P\x83Q\x82\x14a\x0E\xC4W`@Qc\xAA\xAD\x13\xF7`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_[\x82\x81\x10\x15a\r\xF0W_\x84\x84\x83\x81\x81\x10a\x0E\xE1Wa\x0E\xE1aK4V[\x88Q\x92\x015`\xF8\x1C\x92P_\x91\x88\x91P\x84\x90\x81\x10a\x0F\0Wa\x0F\0aK4V[` \x90\x81\x02\x91\x90\x91\x01\x01Q`@Qcy\xA0\x84\x91`\xE1\x1B\x81R`\xFF\x84\x16`\x04\x82\x01R\x90\x91P`\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\x90c\xF3A\t\"\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0FsW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0F\x97\x91\x90aK\x8BV[c\xFF\xFF\xFF\xFF\x16\x81Q\x14a\x0F\xBDW`@Qc\x8EZ\xEE\xE7`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x81Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\x0F\xD7Wa\x0F\xD7a?\xBBV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x10\0W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P_\x80[\x83Q\x81\x10\x15a\x10\xF6W_\x84\x82\x81Q\x81\x10a\x10\"Wa\x10\"aK4V[` \x02` \x01\x01Q\x90P`\x03_\x82`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x90\x81R` \x01_ _\x01T\x84\x83\x81Q\x81\x10a\x10dWa\x10daK4V[` \x02` \x01\x01\x81\x81RPP_a\x10\x86\x85\x84\x81Q\x81\x10a\n8Wa\n8aK4V[\x90P`\x01`\x01`\x01`\xC0\x1B\x03\x82\x16`\xFF\x89\x16\x1C\x81\x16\x14a\x10\xB9W`@Qc\xD0S\xAA!`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x83`\x01`\x01`\xA0\x1B\x03\x16\x82`\x01`\x01`\xA0\x1B\x03\x16\x11a\x10\xEBW`@Qc\xBAP\xF9\x11`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[P\x91P`\x01\x01a\x10\x06V[Pa\x11\x02\x83\x83\x86a\x1AEV[`\xFF\x84\x16_\x81\x81R`\x05` \x90\x81R`@\x91\x82\x90 C\x90\x81\x90U\x91Q\x91\x82R\x7FF\x07}U3\x07c\xF1bi\xFDu\xE5v\x16c\xF4\x19-'\x91t|\x01\x89\xB1j\xD3\x1D\xB0}\xB4\x91\x01`@Q\x80\x91\x03\x90\xA2PPPP\x80`\x01\x01\x90Pa\x0E\xC6V[`2Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x80\x15a\x11{WP`2T`\x01`\xFF\x90\x91\x16\x10[\x80a\x11\x95WP0;\x15\x80\x15a\x11\x95WP`2T`\xFF\x16`\x01\x14[a\x11\xFDW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01Rm\x19\x1EH\x1A[\x9A]\x1AX[\x1A^\x99Y`\x92\x1B`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[`2\x80T`\xFF\x19\x16`\x01\x17\x90U\x80\x15a\x12 W`2\x80Ta\xFF\0\x19\x16a\x01\0\x17\x90U[a\x12v`@Q\x80`@\x01`@R\x80`\x16\x81R` \x01u \xAB)\xA92\xB3\xB4\xB9\xBA9<\xA1\xB7\xB7\xB924\xB70\xBA7\xB9`Q\x1B\x81RP`@Q\x80`@\x01`@R\x80`\x06\x81R` \x01ev0.0.1`\xD0\x1B\x81RPa'\xEEV[a\x12\x7F\x86a(\x1FV[a\x12\x88\x85a\x1D\xA2V[a\x12\x91\x83a\x1DeV[a\x12\x9A\x84a\x1E\x0BV[a\x12\xA3\x82a(pV[\x80\x15a\x12\xE9W`2\x80Ta\xFF\0\x19\x16\x90U`@Q`\x01\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[PPPPPPV[``a\x13\x1C\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\0a(\xDCV[\x90P\x90V[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R`\x01`\x01`\xA0\x1B\x03\x82\x16_\x90\x81R`\x03` \x90\x81R`@\x91\x82\x90 \x82Q\x80\x84\x01\x90\x93R\x80T\x83R`\x01\x81\x01T\x90\x91\x83\x01\x90`\xFF\x16`\x02\x81\x11\x15a\x13yWa\x13yaF\xCDV[`\x02\x81\x11\x15a\x13\x8AWa\x13\x8AaF\xCDV[\x90RP\x92\x91PPV[`@Qc#}\xFBG`\xE1\x1B\x81R`\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\x90cF\xFB\xF6\x8E\x90a\x13\xDF\x903\x90`\x04\x01aA\x80V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x13\xFAW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x14\x1E\x91\x90aKWV[a\x14;W`@Qc\x1Dw\xD4w`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x14E_\x19a\x1DeV[V[a\x14Oa\x1D\x0BV[\x81a\x14Y\x81a)\x19V[a\n\xA4\x83\x83a)AV[a\x14ka)\xD2V[`\x01`\x01`\xA0\x1B\x03\x82\x16_\x90\x81R`\t` R`@\x90 B\x90Ua\x0CF\x82\x82a)\xFDV[a\x14\x97a\x1D\x0BV[a\x14E_a(\x1FV[_a\x0C\xD2\x7F+\xD8!$\x05\x7F\t\x13\xBC;w,\xE7\xB8>\x80W\xC1\xAD\x1F5\x10\xFC\x83w\x8B\xE2\x0F\x10\xEC]\xE6\x83`@Q` \x01a\x14\xE9\x92\x91\x90\x91\x82R`\x01`\x01`\xA0\x1B\x03\x16` \x82\x01R`@\x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 a*\x93V[a\x15\x0Ca\x1D\x0BV[a\n\xA4\x83\x83\x83__a\"\x9DV[_``\x80___```\xC8T__\x1B\x14\x80\x15a\x155WP`\xC9T\x15[a\x15yW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x15`$\x82\x01Rt\x11RT\r\xCCL\x8E\x88\x15[\x9A[\x9A]\x1AX[\x1A^\x99Y`Z\x1B`D\x82\x01R`d\x01a\x11\xF4V[a\x15\x81a*\xBFV[a\x15\x89a+OV[`@\x80Q_\x80\x82R` \x82\x01\x90\x92R`\x0F`\xF8\x1B\x9B\x93\x9AP\x91\x98PF\x97P0\x96P\x94P\x92P\x90PV[_a\x15\xF1\x7FM@N2v\xE7\xAC!c\xD8\xEEGj\xFAjA\xD1\xF6\x8F\xB7\x1F-\x8BeF\xB2NU\xCE\x01\xB7*\x87\x87\x87\x87\x87`@Q` \x01a\x14\xE9\x96\x95\x94\x93\x92\x91\x90aK\xA6V[\x96\x95PPPPPPV[_a\x0C\xD2\x82a\x19pV[a\x16\ra\x1D\x0BV[a\x0B \x81a(pV[`\x0BT`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x91\x16\x14\x90V[``a\n\xBA`\x02\x84\x84a+^V[a\x16@a\x1EtV[`3T_\x90`\x01\x90\x81\x16\x03a\x16hW`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x16q\x85a\x16\x16V[a\x16\x8EW`@Qcf\xE5e\xDF`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a\x16\x98\x85a\x1E\xBDV[\x90P_\x80\x80a\x16\xA9\x86\x88\x01\x88aM5V[\x92P\x92P\x92P_a\x16\xBA\x8B\x83a,\rV[\x90P_\x84`\x01\x81\x11\x15a\x16\xCFWa\x16\xCFaF\xCDV[\x03a\x17xW_a\x16\xE3\x8C\x83\x88\x87`\x01a,\xA6V[Q\x90P_[\x86Q\x81\x10\x15a\x17qW_\x87\x82\x81Q\x81\x10a\x17\x04Wa\x17\x04aK4V[\x01` \x90\x81\x01Q`\xF8\x1C_\x81\x81R`\x01\x90\x92R`@\x90\x91 T\x84Q\x91\x92Pc\xFF\xFF\xFF\xFF\x16\x90\x84\x90\x84\x90\x81\x10a\x17;Wa\x17;aK4V[` \x02` \x01\x01Qc\xFF\xFF\xFF\xFF\x16\x11\x15a\x17hW`@Qc\xC6\xB9\xE7g`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[P`\x01\x01a\x16\xE8V[PPa\x17\xCDV[`\x01\x84`\x01\x81\x11\x15a\x17\x8CWa\x17\x8CaF\xCDV[\x03a\x17\xB4W_\x80a\x17\x9F\x89\x8B\x01\x8BaM\x90V[\x94P\x94PPPPa\x17q\x8D\x84\x89\x88\x86\x86a0\xEDV[`@Qc5K\xB8\xAB`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PPPPPPPPPPPV[a\x17\xE2a\x1D\x0BV[`\x01`\x01`\xA0\x1B\x03\x81\x16a\x18GW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7FOwnable: new owner is the zero a`D\x82\x01Reddress`\xD0\x1B`d\x82\x01R`\x84\x01a\x11\xF4V[a\x0B \x81a(\x1FV[_a\x13\x1Ca2\xE2V[\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\x16c\xEA\xB6mz`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x18\xB5W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x18\xD9\x91\x90aKpV[`\x01`\x01`\xA0\x1B\x03\x163`\x01`\x01`\xA0\x1B\x03\x16\x14a\x19\nW`@QcyH!\xFF`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`3T\x80\x19\x82\x19\x81\x16\x14a\x191W`@Qc\xC6\x1D\xCA]`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`3\x82\x90U`@Q\x82\x81R3\x90\x7F5\x82\xD1\x82\x8E&\xBFV\xBD\x80\x15\x02\xBC\x02\x1A\xC0\xBC\x8A\xFBW\xC8&\xE4\x98kEY<\x8F\xAD8\x9C\x90` \x01[`@Q\x80\x91\x03\x90\xA2PPV[_a\x0C\xD2`\x02\x83a2\xEBV[``__a\x19\x89\x84a3UV[a\xFF\xFF\x16`\x01`\x01`@\x1B\x03\x81\x11\x15a\x19\xA4Wa\x19\xA4a?\xBBV[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15a\x19\xCEW` \x82\x01\x81\x806\x837\x01\x90P[P\x90P_\x80[\x82Q\x82\x10\x80\x15a\x19\xE5WPa\x01\0\x81\x10[\x15a\x1A;W`\x01\x81\x1B\x93P\x85\x84\x16\x15a\x1A+W\x80`\xF8\x1B\x83\x83\x81Q\x81\x10a\x1A\x0EWa\x1A\x0EaK4V[` \x01\x01\x90`\x01`\x01`\xF8\x1B\x03\x19\x16\x90\x81_\x1A\x90SP\x81`\x01\x01\x91P[a\x1A4\x81aN\x9DV[\x90Pa\x19\xD4V[P\x90\x94\x93PPPPV[`@\x80Q`\x01\x80\x82R\x81\x83\x01\x90\x92R_\x91` \x82\x01\x81\x806\x837\x01\x90PP\x90P\x81`\xF8\x1B\x81_\x81Q\x81\x10a\x1A{Wa\x1A{aK4V[` \x01\x01\x90`\x01`\x01`\xF8\x1B\x03\x19\x16\x90\x81_\x1A\x90SP`@Qcl?\xB4\xBF`\xE0\x1B\x81R_\x90`\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\x90cl?\xB4\xBF\x90a\x1A\xE3\x90\x88\x90\x88\x90\x88\x90`\x04\x01aN\xB5V[_`@Q\x80\x83\x03\x81_\x87Z\xF1\x15\x80\x15a\x1A\xFEW=__>=_\xFD[PPPP`@Q=_\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra\x1B%\x91\x90\x81\x01\x90aOEV[\x90P_[\x85Q\x81\x10\x15a\x12\xE9W\x81\x81\x81Q\x81\x10a\x1BDWa\x1BDaK4V[` \x02` \x01\x01Q\x15a\x1BtWa\x1Bt\x86\x82\x81Q\x81\x10a\x1BfWa\x1BfaK4V[` \x02` \x01\x01Q\x84a)\xFDV[`\x01\x01a\x1B)V[_\x83\x81R` \x85\x90R`@\x81 \x80T\x82\x91\x90\x84\x90\x81\x10a\x1B\x9EWa\x1B\x9EaK4V[_\x91\x82R` \x91\x82\x90 `@\x80Q``\x81\x01\x82R\x92\x90\x91\x01Tc\xFF\xFF\xFF\xFF\x80\x82\x16\x80\x85R`\x01` \x1B\x83\x04\x82\x16\x95\x85\x01\x95\x90\x95R`\x01`@\x1B\x90\x91\x04`\x01`\x01`\xC0\x1B\x03\x16\x91\x83\x01\x91\x90\x91R\x90\x92P\x85\x16\x10\x15a\x1C\x0EW`@Qcl\xB1\x9A\xFF`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[` \x81\x01Qc\xFF\xFF\xFF\xFF\x16\x15\x80a\x1C4WP\x80` \x01Qc\xFF\xFF\xFF\xFF\x16\x84c\xFF\xFF\xFF\xFF\x16\x10[a\x1CQW`@Qc\xBB\xBA`\xCB`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`@\x01Q\x90P[\x94\x93PPPPV[`@Qcx!\x9B?`\xE1\x1B\x81R`\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\x90c\xF0C6~\x90a\x1C\xAE\x90\x85\x90\x85\x90`\x04\x01aO\xD2V[_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a\x1C\xC5W__\xFD[PZ\xF1\x15\x80\x15a\x1C\xD7W=__>=_\xFD[PPPP\x81\x7F\xEC)c\xAB!\xC1\xE5\x0E\x1EX*\xA5B\xAF.K\xF7\xBF8\xE6\xE1@<'\xB4.\x1C]nb\x1E\xAA\x82`@Qa\x19d\x91\x90aF\xBBV[`\x96T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x14EW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FOwnable: caller is not the owner`D\x82\x01R`d\x01a\x11\xF4V[`3\x81\x90U`@Q\x81\x81R3\x90\x7F\xAB@\xA3t\xBCQ\xDE7\"\0\xA8\xBC\x98\x1A\xF8\xC9\xEC\xDC\x08\xDF\xDA\xEF\x0B\xB6\xE0\x9F\x88\xF3\xC6\x16\xEF=\x90` \x01`@Q\x80\x91\x03\x90\xA2PV[`\x07T`@Q\x7F1TW\xD8\xA8\xFE`\xF0J\xF1|\x16\xE2\xF5\xA5\xE1\xDBa+1d\x8EX\x03\x03`u\x9E\xF8\xF3R\x8C\x91a\x1D\xE1\x91`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90\x84\x90aO\xEAV[`@Q\x80\x91\x03\x90\xA1`\x07\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x90\x91\x17\x90UV[`\x08T`@Q\x7F\x8F0\xAB\t\xF4:l\x15}\x7F\xCE~\n\x13\xC0\x03\x04,\x1C\x95\xE8\xA7.z\x14j!\xC0\xCA\xA2M\xC9\x91a\x1EJ\x91`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90\x84\x90aO\xEAV[`@Q\x80\x91\x03\x90\xA1`\x08\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x90\x91\x17\x90UV[3`\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\x14EW`@Qc#\xD8q\xA5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[``_\x82Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\x1E\xD9Wa\x1E\xD9a?\xBBV[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15a\x1F\x03W` \x82\x01\x81\x806\x837\x01\x90P[P\x90P_[\x83Q\x81\x10\x15a\x1F^W\x83\x81\x81Q\x81\x10a\x1F#Wa\x1F#aK4V[` \x02` \x01\x01Q`\xF8\x1B\x82\x82\x81Q\x81\x10a\x1F@Wa\x1F@aK4V[` \x01\x01\x90`\x01`\x01`\xF8\x1B\x03\x19\x16\x90\x81_\x1A\x90SP`\x01\x01a\x1F\x08V[P\x92\x91PPV[`\x01`\x01`\xA0\x1B\x03\x82\x16_\x90\x81R`\x03` R`@\x81 \x80T\x90\x91a\x1F\x89\x82a\x19pV[\x90P`\x01\x80\x84\x01T`\xFF\x16`\x02\x81\x11\x15a\x1F\xA5Wa\x1F\xA5aF\xCDV[\x14a\x1F\xC3W`@Qc\xAB\xA4s9`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x80Ta\x1F\xD4\x90\x86\x90`\xFF\x16a'\xBAV[\x90P`\x01`\x01`\xC0\x1B\x03\x81\x16a\x1F\xFDW`@Qch\xB6\xA8u`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a \x14`\x01`\x01`\xC0\x1B\x03\x82\x81\x16\x90\x84\x16\x81\x16\x14\x90V[a 1W`@Qc\xD0S\xAA!`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xC0\x1B\x03\x81\x81\x16\x19\x83\x16\x16a J\x84\x82a3\x7FV[`\x01`\x01`\xC0\x1B\x03\x81\x16a \xA6W`\x01`\x01`\xA0\x1B\x03\x87\x16_\x81\x81R`\x03` R`@\x80\x82 `\x01\x01\x80T`\xFF\x19\x16`\x02\x17\x90UQ\x86\x92\x91\x7F9o\xDC\xB1\x80\xCB\x0F\xEA&\x92\x81\x13\xFB\x0F\xD1\xC3T\x98c\xF9\xCDV>j\x18O\x1DW\x81\x16\xC8\xE4\x91\xA3[`@Qc\xF4\xE2O\xE5`\xE0\x1B\x81R`\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\x90c\xF4\xE2O\xE5\x90a \xF4\x90\x8A\x90\x8A\x90`\x04\x01aP\x04V[_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a!\x0BW__\xFD[PZ\xF1\x15\x80\x15a!\x1DW=__>=_\xFD[PP`@Qc\xBD)\xB8\xCD`\xE0\x1B\x81R`\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\x92Pc\xBD)\xB8\xCD\x91Pa!o\x90\x87\x90\x8A\x90`\x04\x01aO\xD2V[_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a!\x86W__\xFD[PZ\xF1\x15\x80\x15a!\x98W=__>=_\xFD[PP`@Qc\xBD)\xB8\xCD`\xE0\x1B\x81R`\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\x92Pc\xBD)\xB8\xCD\x91Pa!\xEA\x90\x87\x90\x8A\x90`\x04\x01aO\xD2V[_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a\"\x01W__\xFD[PZ\xF1\x15\x80\x15a\x17\xCDW=__>=_\xFD[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R_\x80\x80a\"@_Q` aW\x0E_9_Q\x90_R\x86aP;V[\x90P[a\"L\x81a3\x8BV[\x90\x93P\x91P_Q` aW\x0E_9_Q\x90_R\x82\x83\t\x83\x03a\"\x84W`@\x80Q\x80\x82\x01\x90\x91R\x90\x81R` \x81\x01\x91\x90\x91R\x93\x92PPPV[_Q` aW\x0E_9_Q\x90_R`\x01\x82\x08\x90Pa\"CV[_T`\xFF\x16`\xC0\x81\x10a\"\xC3W`@Qc<\xB8\x9C\x97`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x80T`\x01\x91\x90\x81\x90a\"\xDA\x90\x84\x90`\xFF\x16aPNV[\x92Pa\x01\0\n\x81T\x81`\xFF\x02\x19\x16\x90\x83`\xFF\x16\x02\x17\x90UPa\"\xFC\x81\x87a)AV[`@\x80Q`\x01\x80\x82R\x81\x83\x01\x90\x92R_\x91\x81` \x01[`@\x80Q\x80\x82\x01\x90\x91R_\x81R``` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81a#\x12W\x90PP\x90P_\x85Q`\x01`\x01`@\x1B\x03\x81\x11\x15a#UWa#Ua?\xBBV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a#~W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P_[\x86Q\x81\x10\x15a#\xDBW\x86\x81\x81Q\x81\x10a#\x9EWa#\x9EaK4V[` \x02` \x01\x01Q_\x01Q\x82\x82\x81Q\x81\x10a#\xBBWa#\xBBaK4V[`\x01`\x01`\xA0\x1B\x03\x90\x92\x16` \x92\x83\x02\x91\x90\x91\x01\x90\x91\x01R`\x01\x01a#\x83V[P`@Q\x80`@\x01`@R\x80\x84`\xFF\x16c\xFF\xFF\xFF\xFF\x16\x81R` \x01\x82\x81RP\x82_\x81Q\x81\x10a$\x0CWa$\x0CaK4V[` \x90\x81\x02\x91\x90\x91\x01\x01R`\x0BT`@Qc\x010\xFC'`\xE5\x1B\x81R`\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\x81\x16\x92c&\x1F\x84\xE0\x92a$l\x92\x91\x90\x91\x16\x90\x86\x90`\x04\x01aPgV[_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a$\x83W__\xFD[PZ\xF1\x15\x80\x15a$\x95W=__>=_\xFD[P_\x92Pa$\xA1\x91PPV[\x85`\x01\x81\x11\x15a$\xB3Wa$\xB3aF\xCDV[\x03a%:W`@Qc:\xEA\x0B\x9D`\xE1\x1B\x81R`\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\x90cu\xD4\x17:\x90a%\x08\x90\x86\x90\x8B\x90\x8B\x90`\x04\x01aQwV[_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a%\x1FW__\xFD[PZ\xF1\x15\x80\x15a%1W=__>=_\xFD[PPPPa&~V[`\x01\x85`\x01\x81\x11\x15a%NWa%NaF\xCDV[\x03a&~W\x83c\xFF\xFF\xFF\xFF\x16\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\x16c)\x81\xEBw`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a%\xB6W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a%\xDA\x91\x90aK\x8BV[c\xFF\xFF\xFF\xFF\x16\x11a%\xFEW`@Qc\x0B\xD4A\xB9`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`@Qc\x06b\xD3\xE1`\xE5\x1B\x81R`\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\x90c\xCCZ| \x90a&P\x90\x86\x90\x8B\x90\x89\x90\x8C\x90`\x04\x01aQ\xAAV[_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a&gW__\xFD[PZ\xF1\x15\x80\x15a&yW=__>=_\xFD[PPPP[`@Qc\x13l\xA0\xF9`\xE1\x1B\x81R`\xFF\x84\x16`\x04\x82\x01R\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\x16\x90c&\xD9A\xF2\x90`$\x01_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a&\xDFW__\xFD[PZ\xF1\x15\x80\x15a&\xF1W=__>=_\xFD[PP`@Qc\x13l\xA0\xF9`\xE1\x1B\x81R`\xFF\x86\x16`\x04\x82\x01R\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\x16\x92Pc&\xD9A\xF2\x91P`$\x01_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a'VW__\xFD[PZ\xF1\x15\x80\x15a'hW=__>=_\xFD[PPPP\x82`\xFF\x16\x7F\xA3H5\xBC+g>\xC3\x7F\xCF\x15\x91\xA9\x12\x95\xB1c\xFC.\x18\x1EN\xA4\xE73\xBE\xB2}\xE1\xCE\xACL\x89\x89\x89\x89\x89`@Qa'\xA7\x95\x94\x93\x92\x91\x90aQ\xE0V[`@Q\x80\x91\x03\x90\xA2[PPPPPPPPV[__a'\xC5\x84a4\x07V[\x90P\x80\x83`\xFF\x16`\x01\x90\x1B\x11a\n\xBAW`@Qc\xCA\x95s3`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`2Ta\x01\0\x90\x04`\xFF\x16a(\x15W`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x11\xF4\x90aRaV[a\x0CF\x82\x82a4\xC2V[`\x96\x80T`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x01`\x01`\xA0\x1B\x03\x19\x83\x16\x81\x17\x90\x93U`@Q\x91\x16\x91\x90\x82\x90\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x90_\x90\xA3PPV[`\x0BT`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90\x7F\x97p\xF3\xCA\xDF\xDC\xBBo\x93\xAF\x93^\x86\x04q\x11Y\x0C7h'\x1D#~J+\xC0\xB8t\xBE\xD6\x93\x90a(\xB1\x90\x83\x90\x85\x90aO\xEAV[`@Q\x80\x91\x03\x90\xA1P`\x0B\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x90\x91\x17\x90UV[``_a(\xE8\x83a5\x10V[`@\x80Q` \x80\x82R\x81\x83\x01\x90\x92R\x91\x92P_\x91\x90` \x82\x01\x81\x806\x837PPP\x91\x82RP` \x81\x01\x92\x90\x92RP\x90V[_T`\xFF\x90\x81\x16\x90\x82\x16\x10a\x0B W`@Qcs\x10\xCF\xF5`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\xFF\x82\x16_\x81\x81R`\x01` \x90\x81R`@\x91\x82\x90 \x84Q\x81T\x92\x86\x01Q\x84\x87\x01Qa\xFF\xFF\x90\x81\x16`\x01`0\x1B\x02g\xFF\xFF\0\0\0\0\0\0\x19\x91\x90\x92\x16`\x01` \x1B\x02e\xFF\xFF\xFF\xFF\xFF\xFF\x19\x90\x95\x16c\xFF\xFF\xFF\xFF\x90\x93\x16\x92\x90\x92\x17\x93\x90\x93\x17\x16\x91\x90\x91\x17\x90UQ\x7F>\xE6\xFE\x8DTa\x02D\xC3\xE9\xD3\xC0f\xAEJ\xEE\x99x\x84\xAA(\xF1\x06\x16\xAE\x82\x19%@\x13\x18\xAC\x90a\x19d\x90\x84\x90aJ\xF3V[`\x08T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x14EW`@Qcv\xD8\xAB\x17`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x82\x16_\x90\x81R`\x03` R`@\x90 `\x01\x80\x82\x01T`\xFF\x16`\x02\x81\x11\x15a*.Wa*.aF\xCDV[\x14a*LW`@Qc%\xECl\x1F`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x80T_\x80Ta*_\x90\x85\x90`\xFF\x16a'\xBAV[\x90P_a*k\x83a\x19pV[\x90Pa*\x84`\x01`\x01`\xC0\x1B\x03\x83\x81\x16\x90\x83\x16\x81\x16\x14\x90V[\x15a\x12\xE9Wa\x12\xE9\x86\x86a57V[_a\x0C\xD2a*\x9Fa2\xE2V[\x83`@Qa\x19\x01`\xF0\x1B\x81R`\x02\x81\x01\x92\x90\x92R`\"\x82\x01R`B\x90 \x90V[```\xCA\x80Ta*\xCE\x90aR\xACV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta*\xFA\x90aR\xACV[\x80\x15a+EW\x80`\x1F\x10a+\x1CWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a+EV[\x82\x01\x91\x90_R` _ \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a+(W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x90P\x90V[```\xCB\x80Ta*\xCE\x90aR\xACV[``_\x82Q`\x01`\x01`@\x1B\x03\x81\x11\x15a+zWa+za?\xBBV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a+\xA3W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P_[\x83Q\x81\x10\x15a,\x04Wa+\xD5\x86\x86\x86\x84\x81Q\x81\x10a+\xC8Wa+\xC8aK4V[` \x02` \x01\x01Qa5\xD5V[\x82\x82\x81Q\x81\x10a+\xE7Wa+\xE7aK4V[c\xFF\xFF\xFF\xFF\x90\x92\x16` \x92\x83\x02\x91\x90\x91\x01\x90\x91\x01R`\x01\x01a+\xA8V[P\x94\x93PPPPV[_\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\x16c\x03\xC5\xA6\xB6\x84\x84a,H\x87a\r\xF7V[`@Q\x84c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a,f\x93\x92\x91\x90aS\x06V[` `@Q\x80\x83\x03\x81_\x87Z\xF1\x15\x80\x15a,\x82W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\n\xBA\x91\x90aS\x7FV[a,\xCA`@Q\x80``\x01`@R\x80``\x81R` \x01``\x81R` \x01``\x81RP\x90V[_\x80Ta,\xDB\x90\x86\x90`\xFF\x16a'\xBAV[\x90P_a,\xE7\x87a\x19pV[\x90P`\x01`\x01`\xC0\x1B\x03\x82\x16a-\x10W`@Qc\x13\xCAFW`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x80\x82\x16`\x01`\x01`\xC0\x1B\x03\x16\x15a-:W`@Qc\x0Ch\x16\xCD`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\nT`\x01`\x01`\xA0\x1B\x03\x89\x16_\x90\x81R`\t` R`@\x90 T`\x01`\x01`\xC0\x1B\x03\x83\x81\x16\x90\x85\x16\x17\x91B\x91a-q\x91\x90aS\x96V[\x10a-\x8FW`@Qc\x19hg}`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a-\x99\x88\x82a3\x7FV[a-\xA3\x88\x87a\x1C`V[`\x01`\x01`\x01`\xA0\x1B\x03\x8A\x16_\x90\x81R`\x03` R`@\x90 `\x01\x01T`\xFF\x16`\x02\x81\x11\x15a-\xD4Wa-\xD4aF\xCDV[\x14a.kW`@\x80Q\x80\x82\x01\x82R\x89\x81R`\x01` \x80\x83\x01\x82\x81R`\x01`\x01`\xA0\x1B\x03\x8E\x16_\x90\x81R`\x03\x90\x92R\x93\x90 \x82Q\x81U\x92Q\x83\x82\x01\x80T\x93\x94\x93\x91\x92\x90\x91`\xFF\x19\x16\x90\x83`\x02\x81\x11\x15a..Wa..aF\xCDV[\x02\x17\x90UPP`@Q\x89\x91P`\x01`\x01`\xA0\x1B\x03\x8B\x16\x90\x7F\xE8\xE6\x8C\xEF\x1C:v\x1E\xD7\xBE~\x84c\xA3u\xF2\x7F{\xC35\xE5\x18$\"<\xAC\xCEcn\xC5\xC3\xFE\x90_\x90\xA3[`@Qc\x1F\xD9<\xA9`\xE1\x1B\x81R`\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\x90c?\xB2yR\x90a.\xB9\x90\x8C\x90\x8B\x90`\x04\x01aP\x04V[_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a.\xD0W__\xFD[PZ\xF1\x15\x80\x15a.\xE2W=__>=_\xFD[PP`@Qc%PGw`\xE0\x1B\x81R`\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\x92Pc%PGw\x91Pa/6\x90\x8C\x90\x8C\x90\x8C\x90`\x04\x01aS\xA9V[_`@Q\x80\x83\x03\x81_\x87Z\xF1\x15\x80\x15a/QW=__>=_\xFD[PPPP`@Q=_\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra/x\x91\x90\x81\x01\x90aT3V[`@\x80\x87\x01\x91\x90\x91R` \x86\x01\x91\x90\x91RQb\xBF\xF0M`\xE0\x1B\x81R`\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\x90b\xBF\xF0M\x90a/\xD3\x90\x8B\x90\x8B\x90`\x04\x01aO\xD2V[_`@Q\x80\x83\x03\x81_\x87Z\xF1\x15\x80\x15a/\xEEW=__>=_\xFD[PPPP`@Q=_\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra0\x15\x91\x90\x81\x01\x90aT\x8CV[\x84R\x84\x15a0\xE1W_[\x87Q\x81\x10\x15a0\xDFW_`\x01_\x8A\x84\x81Q\x81\x10a0>Wa0>aK4V[\x01` \x90\x81\x01Q`\xF8\x1C\x82R\x81\x81\x01\x92\x90\x92R`@\x90\x81\x01_ \x81Q``\x81\x01\x83R\x90Tc\xFF\xFF\xFF\xFF\x81\x16\x80\x83Ra\xFF\xFF`\x01` \x1B\x83\x04\x81\x16\x95\x84\x01\x95\x90\x95R`\x01`0\x1B\x90\x91\x04\x90\x93\x16\x91\x81\x01\x91\x90\x91R\x87Q\x80Q\x91\x93P\x90\x84\x90\x81\x10a0\xA9Wa0\xA9aK4V[` \x02` \x01\x01Qc\xFF\xFF\xFF\xFF\x16\x11\x15a0\xD6W`@Qc\xC6\xB9\xE7g`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[P`\x01\x01a0\x1FV[P[PPP\x95\x94PPPPPV[\x83Q\x82Q\x14a1\x0FW`@Qc\xAA\xAD\x13\xF7`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a1\x1B\x86\x86\x84\x84a6\xEDV[_a1)\x87\x87\x87\x87_a,\xA6V[\x90P_[\x85Q\x81\x10\x15a'\xB0W_`\x01_\x88\x84\x81Q\x81\x10a1LWa1LaK4V[\x01` \x90\x81\x01Q`\xF8\x1C\x82R\x81\x81\x01\x92\x90\x92R`@\x90\x81\x01_ \x81Q``\x81\x01\x83R\x90Tc\xFF\xFF\xFF\xFF\x81\x16\x80\x83Ra\xFF\xFF`\x01` \x1B\x83\x04\x81\x16\x95\x84\x01\x95\x90\x95R`\x01`0\x1B\x90\x91\x04\x90\x93\x16\x91\x81\x01\x91\x90\x91R\x84Q\x80Q\x91\x93P\x90\x84\x90\x81\x10a1\xB7Wa1\xB7aK4V[` \x02` \x01\x01Qc\xFF\xFF\xFF\xFF\x16\x11\x15a2\xD9Wa2K\x87\x83\x81Q\x81\x10a1\xE0Wa1\xE0aK4V[` \x01\x01Q`\xF8\x1C`\xF8\x1B`\xF8\x1C\x84`@\x01Q\x84\x81Q\x81\x10a2\x04Wa2\x04aK4V[` \x02` \x01\x01Q\x8B\x86` \x01Q\x86\x81Q\x81\x10a2#Wa2#aK4V[` \x02` \x01\x01Q\x89\x87\x81Q\x81\x10a2=Wa2=aK4V[` \x02` \x01\x01Q\x86a7\x98V[`@\x80Q`\x01\x80\x82R\x81\x83\x01\x90\x92R_\x91` \x82\x01\x81\x806\x837\x01\x90PP\x90P\x87\x83\x81Q\x81\x10a2}Wa2}aK4V[` \x01\x01Q`\xF8\x1C`\xF8\x1B\x81_\x81Q\x81\x10a2\x9AWa2\x9AaK4V[` \x01\x01\x90`\x01`\x01`\xF8\x1B\x03\x19\x16\x90\x81_\x1A\x90SPa2\xD7\x86\x84\x81Q\x81\x10a2\xC5Wa2\xC5aK4V[` \x02` \x01\x01Q` \x01Q\x82a)\xFDV[P[P`\x01\x01a1-V[_a\x13\x1Ca9\x19V[_\x81\x81R` \x83\x90R`@\x81 T\x80\x82\x03a3\tW_\x91PPa\x0C\xD2V[_\x83\x81R` \x85\x90R`@\x90 a3!`\x01\x83aU\x1BV[\x81T\x81\x10a31Wa31aK4V[_\x91\x82R` \x90\x91 \x01T`\x01`@\x1B\x90\x04`\x01`\x01`\xC0\x1B\x03\x16\x91Pa\x0C\xD2\x90PV[_\x80[\x82\x15a\x0C\xD2Wa3i`\x01\x84aU\x1BV[\x90\x92\x16\x91\x80a3w\x81aU.V[\x91PPa3XV[a\x0CF`\x02\x83\x83a9\x8CV[_\x80\x80_Q` aW\x0E_9_Q\x90_R`\x03_Q` aW\x0E_9_Q\x90_R\x86_Q` aW\x0E_9_Q\x90_R\x88\x89\t\t\x08\x90P_a3\xFB\x82\x7F\x0C\x19\x13\x9C\xB8Lh\nn\x14\x11m\xA0`V\x17e\xE0Z\xA4Z\x1Cr\xA3O\x08#\x05\xB6\x1F?R_Q` aW\x0E_9_Q\x90_Ra;EV[\x91\x95\x91\x94P\x90\x92PPPV[_a\x01\0\x82Q\x11\x15a4,W`@Qc}\xA5NG`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x81Q_\x03a4;WP_\x91\x90PV[__\x83_\x81Q\x81\x10a4OWa4OaK4V[\x01` \x01Q`\x01`\xF8\x91\x90\x91\x1C\x81\x90\x1B\x92P[\x84Q\x81\x10\x15a4\xB9W\x84\x81\x81Q\x81\x10a4}Wa4}aK4V[\x01` \x01Q`\x01`\xF8\x91\x90\x91\x1C\x1B\x91P\x82\x82\x11a4\xADW`@Qc\x10\x19\x10i`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x91\x81\x17\x91`\x01\x01a4bV[P\x90\x93\x92PPPV[`2Ta\x01\0\x90\x04`\xFF\x16a4\xE9W`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x11\xF4\x90aRaV[`\xCAa4\xF5\x83\x82aU\x92V[P`\xCBa5\x02\x82\x82aU\x92V[PP_`\xC8\x81\x90U`\xC9UPV[_`\xFF\x82\x16`\x1F\x81\x11\x15a\x0C\xD2W`@Qc,\xD4J\xC3`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`@\x80Q``\x81\x01\x82R`\x01`\x01`\xA0\x1B\x03\x84\x81\x16\x82R`\x0BT\x81\x16` \x83\x01R\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\x91cn4\x92\xB5\x91\x90\x81\x01a5\x8D\x85a;\xBEV[\x81RP`@Q\x82c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a5\xAC\x91\x90aVLV[_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a5\xC3W__\xFD[PZ\xF1\x15\x80\x15a\x12\xE9W=__>=_\xFD[_\x81\x81R` \x84\x90R`@\x81 T\x81[\x81\x81\x10\x15a6XW`\x01a5\xF9\x82\x84aU\x1BV[a6\x03\x91\x90aU\x1BV[\x92P\x84c\xFF\xFF\xFF\xFF\x16\x86_\x86\x81R` \x01\x90\x81R` \x01_ \x84c\xFF\xFF\xFF\xFF\x16\x81T\x81\x10a63Wa63aK4V[_\x91\x82R` \x90\x91 \x01Tc\xFF\xFF\xFF\xFF\x16\x11a6PWPPa\n\xBAV[`\x01\x01a5\xE5V[P`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\\`$\x82\x01R\x7FRegistryCoordinator.getQuorumBit`D\x82\x01R\x7FmapIndexAtBlockNumber: no bitmap`d\x82\x01R\x7F update found for operatorId\0\0\0\0`\x84\x82\x01R`\xA4\x01a\x11\xF4V[` \x80\x82\x01Q_\x90\x81R`\x04\x90\x91R`@\x90 T`\xFF\x16\x15a7\"W`@Qco\xBE\xFE\xC3`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[B\x81`@\x01Q\x10\x15a7GW`@Qc\x08\x19\xBD\xCD`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[` \x80\x82\x01\x80Q_\x90\x81R`\x04\x90\x92R`@\x91\x82\x90 \x80T`\xFF\x19\x16`\x01\x17\x90U`\x07T\x90Q\x91\x83\x01Qa\x0E1\x92`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91a7\x91\x91\x88\x91\x88\x91\x88\x91\x90a\x15\xB2V[\x83Qa<cV[` \x80\x83\x01Q`\x01`\x01`\xA0\x1B\x03\x80\x82\x16_\x81\x81R`\x03\x90\x94R`@\x90\x93 T\x91\x92\x90\x87\x16\x03a7\xDBW`@QcV\x16\x8BA`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x87`\xFF\x16\x84_\x01Q`\xFF\x16\x14a8\x04W`@Qc\x8EZ\xEE\xE7`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`@QcT\x01\xED'`\xE0\x1B\x81R`\x04\x81\x01\x82\x90R`\xFF\x89\x16`$\x82\x01R_\x90\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\x16\x90cT\x01\xED'\x90`D\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a8rW=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a8\x96\x91\x90aV\x88V[\x90Pa8\xA2\x81\x85a<\x8BV[`\x01`\x01``\x1B\x03\x16\x86`\x01`\x01``\x1B\x03\x16\x11a8\xD3W`@QcLD\x99]`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a8\xDD\x88\x85a<\xAEV[`\x01`\x01``\x1B\x03\x16\x81`\x01`\x01``\x1B\x03\x16\x10a9\x0EW`@Qc\xB1\x87\xE8i`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PPPPPPPPPV[_\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0Fa9Ca<\xC7V[a9Ka=\x1FV[`@\x80Q` \x81\x01\x94\x90\x94R\x83\x01\x91\x90\x91R``\x82\x01RF`\x80\x82\x01R0`\xA0\x82\x01R`\xC0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x90V[_\x82\x81R` \x84\x90R`@\x81 T\x90\x81\x90\x03a:0W_\x83\x81R` \x85\x81R`@\x80\x83 \x81Q``\x81\x01\x83Rc\xFF\xFF\xFF\xFFC\x81\x16\x82R\x81\x85\x01\x86\x81R`\x01`\x01`\xC0\x1B\x03\x80\x8A\x16\x95\x84\x01\x95\x86R\x84T`\x01\x81\x01\x86U\x94\x88R\x95\x90\x96 \x91Q\x91\x90\x92\x01\x80T\x95Q\x93Q\x90\x94\x16`\x01`@\x1B\x02`\x01`\x01`@\x1B\x03\x93\x83\x16`\x01` \x1B\x02g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x90\x96\x16\x91\x90\x92\x16\x17\x93\x90\x93\x17\x16\x91\x90\x91\x17\x90Ua\x0E1V[_\x83\x81R` \x85\x90R`@\x81 a:H`\x01\x84aU\x1BV[\x81T\x81\x10a:XWa:XaK4V[_\x91\x82R` \x90\x91 \x01\x80T\x90\x91Pc\xFF\xFF\xFF\xFFC\x81\x16\x91\x16\x03a:\x99W\x80T`\x01`\x01`@\x1B\x03\x16`\x01`@\x1B`\x01`\x01`\xC0\x1B\x03\x85\x16\x02\x17\x81Ua\r\xF0V[\x80Tc\xFF\xFF\xFF\xFFC\x81\x16`\x01` \x1B\x81\x81\x02g\xFF\xFF\xFF\xFF\0\0\0\0\x19\x90\x94\x16\x93\x90\x93\x17\x84U_\x87\x81R` \x89\x81R`@\x80\x83 \x81Q``\x81\x01\x83R\x94\x85R\x84\x83\x01\x84\x81R`\x01`\x01`\xC0\x1B\x03\x80\x8C\x16\x93\x87\x01\x93\x84R\x82T`\x01\x81\x01\x84U\x92\x86R\x93\x90\x94 \x94Q\x94\x01\x80T\x93Q\x91Q\x90\x92\x16`\x01`@\x1B\x02`\x01`\x01`@\x1B\x03\x91\x86\x16\x90\x96\x02g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x90\x93\x16\x93\x90\x94\x16\x92\x90\x92\x17\x17\x91\x90\x91\x16\x91\x90\x91\x17\x90UPPPPPV[__a;Oa?\x7FV[a;Wa?\x9DV[` \x80\x82R\x81\x81\x01\x81\x90R`@\x82\x01\x81\x90R``\x82\x01\x88\x90R`\x80\x82\x01\x87\x90R`\xA0\x82\x01\x86\x90R\x82`\xC0\x83`\x05a\x07\xD0Z\x03\xFA\x92P\x82\x80a;\x94W\xFE[P\x82a;\xB3W`@Qc\xD5\x1E\xDA\xE3`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PQ\x95\x94PPPPPV[``_\x82Q`\x01`\x01`@\x1B\x03\x81\x11\x15a;\xDAWa;\xDAa?\xBBV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a<\x03W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P_[\x83Q\x81\x10\x15a\x1F^W\x83\x81\x81Q\x81\x10a<#Wa<#aK4V[` \x01\x01Q`\xF8\x1C`\xF8\x1B`\xF8\x1C`\xFF\x16\x82\x82\x81Q\x81\x10a<FWa<FaK4V[c\xFF\xFF\xFF\xFF\x90\x92\x16` \x92\x83\x02\x91\x90\x91\x01\x90\x91\x01R`\x01\x01a<\x08V[a<n\x83\x83\x83a=OV[a\n\xA4W`@Qc\x8B\xAAW\x9F`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[` \x81\x01Q_\x90a'\x10\x90a<\xA4\x90a\xFF\xFF\x16\x85aV\xA3V[a\n\xBA\x91\x90aV\xC5V[`@\x81\x01Q_\x90a'\x10\x90a<\xA4\x90a\xFF\xFF\x16\x85aV\xA3V[__a<\xD1a*\xBFV[\x80Q\x90\x91P\x15a<\xE8W\x80Q` \x90\x91\x01 \x91\x90PV[`\xC8T\x80\x15a<\xF7W\x92\x91PPV[\x7F\xC5\xD2F\x01\x86\xF7#<\x92~}\xB2\xDC\xC7\x03\xC0\xE5\0\xB6S\xCA\x82';{\xFA\xD8\x04]\x85\xA4p\x92PPP\x90V[__a=)a+OV[\x80Q\x90\x91P\x15a=@W\x80Q` \x90\x91\x01 \x91\x90PV[`\xC9T\x80\x15a<\xF7W\x92\x91PPV[___a=\\\x85\x85a=\xA3V[\x90\x92P\x90P_\x81`\x04\x81\x11\x15a=tWa=taF\xCDV[\x14\x80\x15a=\x92WP\x85`\x01`\x01`\xA0\x1B\x03\x16\x82`\x01`\x01`\xA0\x1B\x03\x16\x14[\x80a\x15\xF1WPa\x15\xF1\x86\x86\x86a=\xE5V[__\x82Q`A\x03a=\xD7W` \x83\x01Q`@\x84\x01Q``\x85\x01Q_\x1Aa=\xCB\x87\x82\x85\x85a>\xCCV[\x94P\x94PPPPa=\xDEV[P_\x90P`\x02[\x92P\x92\x90PV[___\x85`\x01`\x01`\xA0\x1B\x03\x16c\x16&\xBA~`\xE0\x1B\x86\x86`@Q`$\x01a>\r\x92\x91\x90aO\xD2V[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x81R` \x82\x01\x80Q`\x01`\x01`\xE0\x1B\x03\x16`\x01`\x01`\xE0\x1B\x03\x19\x90\x94\x16\x93\x90\x93\x17\x90\x92R\x90Qa>K\x91\x90aV\xF2V[_`@Q\x80\x83\x03\x81\x85Z\xFA\x91PP=\x80_\x81\x14a>\x83W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=_` \x84\x01>a>\x88V[``\x91P[P\x91P\x91P\x81\x80\x15a>\x9CWP` \x81Q\x10\x15[\x80\x15a\x15\xF1WP\x80Qc\x0B\x13]?`\xE1\x1B\x90a>\xC1\x90\x83\x01` \x90\x81\x01\x90\x84\x01aS\x7FV[\x14\x96\x95PPPPPPV[_\x80o\xA2\xA8\x91\x8C\xA8[\xAF\xE2 \x16\xD0\xB9\x97\xE4\xDF``\x01`\xFF\x1B\x03\x83\x11\x15a>\xF7WP_\x90P`\x03a?vV[`@\x80Q_\x80\x82R` \x82\x01\x80\x84R\x89\x90R`\xFF\x88\x16\x92\x82\x01\x92\x90\x92R``\x81\x01\x86\x90R`\x80\x81\x01\x85\x90R`\x01\x90`\xA0\x01` `@Q` \x81\x03\x90\x80\x84\x03\x90\x85Z\xFA\x15\x80\x15a?HW=__>=_\xFD[PP`@Q`\x1F\x19\x01Q\x91PP`\x01`\x01`\xA0\x1B\x03\x81\x16a?pW_`\x01\x92P\x92PPa?vV[\x91P_\x90P[\x94P\x94\x92PPPV[`@Q\x80` \x01`@R\x80`\x01\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[`@Q\x80`\xC0\x01`@R\x80`\x06\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[`@Q``\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15a?\xF1Wa?\xF1a?\xBBV[`@R\x90V[`@\x80Q\x90\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15a?\xF1Wa?\xF1a?\xBBV[`@Q`\x1F\x82\x01`\x1F\x19\x16\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15a@AWa@Aa?\xBBV[`@R\x91\x90PV[_`\x01`\x01`@\x1B\x03\x82\x11\x15a@aWa@aa?\xBBV[P`\x05\x1B` \x01\x90V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x0B W__\xFD[_\x82`\x1F\x83\x01\x12a@\x8EW__\xFD[\x815a@\xA1a@\x9C\x82a@IV[a@\x19V[\x80\x82\x82R` \x82\x01\x91P` \x83`\x05\x1B\x86\x01\x01\x92P\x85\x83\x11\x15a@\xC2W__\xFD[` \x85\x01[\x83\x81\x10\x15a@\xE8W\x805a@\xDA\x81a@kV[\x83R` \x92\x83\x01\x92\x01a@\xC7V[P\x95\x94PPPPPV[_` \x82\x84\x03\x12\x15aA\x02W__\xFD[\x815`\x01`\x01`@\x1B\x03\x81\x11\x15aA\x17W__\xFD[a\x1CX\x84\x82\x85\x01a@\x7FV[_` \x82\x84\x03\x12\x15aA3W__\xFD[P5\x91\x90PV[c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x0B W__\xFD[___``\x84\x86\x03\x12\x15aA]W__\xFD[\x835\x92P` \x84\x015aAo\x81aA:V[\x92\x95\x92\x94PPP`@\x91\x90\x91\x015\x90V[`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16\x81R` \x01\x90V[_\x82`\x1F\x83\x01\x12aA\xA3W__\xFD[\x815` \x83\x01__`\x01`\x01`@\x1B\x03\x84\x11\x15aA\xC2WaA\xC2a?\xBBV[P`\x1F\x83\x01`\x1F\x19\x16` \x01aA\xD7\x81a@\x19V[\x91PP\x82\x81R\x85\x83\x83\x01\x11\x15aA\xEBW__\xFD[\x82\x82` \x83\x017_\x92\x81\x01` \x01\x92\x90\x92RP\x93\x92PPPV[_` \x82\x84\x03\x12\x15aB\x15W__\xFD[\x815`\x01`\x01`@\x1B\x03\x81\x11\x15aB*W__\xFD[a\x1CX\x84\x82\x85\x01aA\x94V[_` \x82\x84\x03\x12\x15aBFW__\xFD[\x815a\n\xBA\x81a@kV[__`@\x83\x85\x03\x12\x15aBbW__\xFD[PP\x805\x92` \x90\x91\x015\x91PV[\x805`\xFF\x81\x16\x81\x14aB\x81W__\xFD[\x91\x90PV[_` \x82\x84\x03\x12\x15aB\x96W__\xFD[a\n\xBA\x82aBqV[_\x82`\x1F\x83\x01\x12aB\xAEW__\xFD[\x815aB\xBCa@\x9C\x82a@IV[\x80\x82\x82R` \x82\x01\x91P` \x83`\x05\x1B\x86\x01\x01\x92P\x85\x83\x11\x15aB\xDDW__\xFD[` \x85\x01[\x83\x81\x10\x15a@\xE8W\x805aB\xF5\x81aA:V[\x83R` \x92\x83\x01\x92\x01aB\xE2V[___``\x84\x86\x03\x12\x15aC\x15W__\xFD[\x835aC \x81a@kV[\x92P` \x84\x015aC0\x81a@kV[\x91P`@\x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aCJW__\xFD[aCV\x86\x82\x87\x01aB\x9FV[\x91PP\x92P\x92P\x92V[\x81Q\x81R` \x80\x83\x01Q\x90\x82\x01R`@\x81\x01a\x0C\xD2V[\x805a\xFF\xFF\x81\x16\x81\x14aB\x81W__\xFD[_``\x82\x84\x03\x12\x15aC\x98W__\xFD[aC\xA0a?\xCFV[\x90P\x815aC\xAD\x81aA:V[\x81RaC\xBB` \x83\x01aCwV[` \x82\x01RaC\xCC`@\x83\x01aCwV[`@\x82\x01R\x92\x91PPV[`\x01`\x01``\x1B\x03\x81\x16\x81\x14a\x0B W__\xFD[_\x82`\x1F\x83\x01\x12aC\xFAW__\xFD[\x815aD\x08a@\x9C\x82a@IV[\x80\x82\x82R` \x82\x01\x91P` \x83`\x06\x1B\x86\x01\x01\x92P\x85\x83\x11\x15aD)W__\xFD[` \x85\x01[\x83\x81\x10\x15a@\xE8W`@\x81\x88\x03\x12\x15aDEW__\xFD[aDMa?\xF7V[\x815aDX\x81a@kV[\x81R` \x82\x015aDh\x81aC\xD7V[` \x82\x81\x01\x91\x90\x91R\x90\x84R\x92\x90\x92\x01\x91`@\x01aD.V[____`\xC0\x85\x87\x03\x12\x15aD\x94W__\xFD[aD\x9E\x86\x86aC\x88V[\x93P``\x85\x015aD\xAE\x81aC\xD7V[\x92P`\x80\x85\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aD\xC8W__\xFD[aD\xD4\x87\x82\x88\x01aC\xEBV[\x92PP`\xA0\x85\x015aD\xE5\x81aA:V[\x93\x96\x92\x95P\x90\x93PPV[__\x83`\x1F\x84\x01\x12aE\0W__\xFD[P\x815`\x01`\x01`@\x1B\x03\x81\x11\x15aE\x16W__\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a=\xDEW__\xFD[___`@\x84\x86\x03\x12\x15aE?W__\xFD[\x835`\x01`\x01`@\x1B\x03\x81\x11\x15aETW__\xFD[\x84\x01`\x1F\x81\x01\x86\x13aEdW__\xFD[\x805aEra@\x9C\x82a@IV[\x80\x82\x82R` \x82\x01\x91P` \x83`\x05\x1B\x85\x01\x01\x92P\x88\x83\x11\x15aE\x93W__\xFD[` \x84\x01[\x83\x81\x10\x15aE\xD3W\x805`\x01`\x01`@\x1B\x03\x81\x11\x15aE\xB5W__\xFD[aE\xC4\x8B` \x83\x89\x01\x01a@\x7FV[\x84RP` \x92\x83\x01\x92\x01aE\x98V[P\x95PPPP` \x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aE\xF1W__\xFD[aE\xFD\x86\x82\x87\x01aD\xF0V[\x94\x97\x90\x96P\x93\x94PPPPV[_____`\xA0\x86\x88\x03\x12\x15aF\x1EW__\xFD[\x855aF)\x81a@kV[\x94P` \x86\x015aF9\x81a@kV[\x93P`@\x86\x015aFI\x81a@kV[\x92P``\x86\x015\x91P`\x80\x86\x015aF`\x81a@kV[\x80\x91PP\x92\x95P\x92\x95\x90\x93PV[_[\x83\x81\x10\x15aF\x88W\x81\x81\x01Q\x83\x82\x01R` \x01aFpV[PP_\x91\x01RV[_\x81Q\x80\x84RaF\xA7\x81` \x86\x01` \x86\x01aFnV[`\x1F\x01`\x1F\x19\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R_a\n\xBA` \x83\x01\x84aF\x90V[cNH{q`\xE0\x1B_R`!`\x04R`$_\xFD[`\x03\x81\x10aF\xF1WaF\xF1aF\xCDV[\x90RV[\x81Q\x81R` \x80\x83\x01Q`@\x83\x01\x91a\x1F^\x90\x84\x01\x82aF\xE1V[__`\x80\x83\x85\x03\x12\x15aG!W__\xFD[aG*\x83aBqV[\x91PaG9\x84` \x85\x01aC\x88V[\x90P\x92P\x92\x90PV[__`@\x83\x85\x03\x12\x15aGSW__\xFD[\x825aG^\x81a@kV[\x91P` \x83\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aGxW__\xFD[aG\x84\x85\x82\x86\x01aA\x94V[\x91PP\x92P\x92\x90PV[___`\xA0\x84\x86\x03\x12\x15aG\xA0W__\xFD[aG\xAA\x85\x85aC\x88V[\x92P``\x84\x015aG\xBA\x81aC\xD7V[\x91P`\x80\x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aG\xD4W__\xFD[aCV\x86\x82\x87\x01aC\xEBV[`\xFF`\xF8\x1B\x88\x16\x81R`\xE0` \x82\x01R_aG\xFE`\xE0\x83\x01\x89aF\x90V[\x82\x81\x03`@\x84\x01RaH\x10\x81\x89aF\x90V[``\x84\x01\x88\x90R`\x01`\x01`\xA0\x1B\x03\x87\x16`\x80\x85\x01R`\xA0\x84\x01\x86\x90R\x83\x81\x03`\xC0\x85\x01R\x84Q\x80\x82R` \x80\x87\x01\x93P\x90\x91\x01\x90_[\x81\x81\x10\x15aHeW\x83Q\x83R` \x93\x84\x01\x93\x90\x92\x01\x91`\x01\x01aHGV[P\x90\x9B\x9APPPPPPPPPPPV[_\x82`\x1F\x83\x01\x12aH\x85W__\xFD[\x815aH\x93a@\x9C\x82a@IV[\x80\x82\x82R` \x82\x01\x91P` \x83`\x06\x1B\x86\x01\x01\x92P\x85\x83\x11\x15aH\xB4W__\xFD[` \x85\x01[\x83\x81\x10\x15a@\xE8W`@\x81\x88\x03\x12\x15aH\xD0W__\xFD[aH\xD8a?\xF7V[aH\xE1\x82aBqV[\x81R` \x82\x015aH\xF1\x81a@kV[` \x82\x81\x01\x91\x90\x91R\x90\x84R\x92\x90\x92\x01\x91`@\x01aH\xB9V[_____`\xA0\x86\x88\x03\x12\x15aI\x1EW__\xFD[\x855aI)\x81a@kV[\x94P` \x86\x015\x93P`@\x86\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aIJW__\xFD[aIV\x88\x82\x89\x01aHvV[\x95\x98\x94\x97P\x94\x95``\x81\x015\x95P`\x80\x015\x93\x92PPPV[__`@\x83\x85\x03\x12\x15aI\x80W__\xFD[\x825aI\x8B\x81aA:V[\x91P` \x83\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aI\xA5W__\xFD[\x83\x01`\x1F\x81\x01\x85\x13aI\xB5W__\xFD[\x805aI\xC3a@\x9C\x82a@IV[\x80\x82\x82R` \x82\x01\x91P` \x83`\x05\x1B\x85\x01\x01\x92P\x87\x83\x11\x15aI\xE4W__\xFD[` \x84\x01\x93P[\x82\x84\x10\x15aJ\x06W\x835\x82R` \x93\x84\x01\x93\x90\x91\x01\x90aI\xEBV[\x80\x94PPPPP\x92P\x92\x90PV[_\x81Q\x80\x84R` \x84\x01\x93P` \x83\x01_[\x82\x81\x10\x15aJJW\x81Qc\xFF\xFF\xFF\xFF\x16\x86R` \x95\x86\x01\x95\x90\x91\x01\x90`\x01\x01aJ&V[P\x93\x94\x93PPPPV[` \x81R_a\n\xBA` \x83\x01\x84aJ\x14V[_____`\x80\x86\x88\x03\x12\x15aJzW__\xFD[\x855aJ\x85\x81a@kV[\x94P` \x86\x015aJ\x95\x81a@kV[\x93P`@\x86\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aJ\xAFW__\xFD[aJ\xBB\x88\x82\x89\x01aB\x9FV[\x93PP``\x86\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aJ\xD6W__\xFD[aJ\xE2\x88\x82\x89\x01aD\xF0V[\x96\x99\x95\x98P\x93\x96P\x92\x94\x93\x92PPPV[``\x81\x01a\x0C\xD2\x82\x84c\xFF\xFF\xFF\xFF\x81Q\x16\x82Ra\xFF\xFF` \x82\x01Q\x16` \x83\x01Ra\xFF\xFF`@\x82\x01Q\x16`@\x83\x01RPPV[` \x81\x01a\x0C\xD2\x82\x84aF\xE1V[cNH{q`\xE0\x1B_R`2`\x04R`$_\xFD[\x80Q\x80\x15\x15\x81\x14aB\x81W__\xFD[_` \x82\x84\x03\x12\x15aKgW__\xFD[a\n\xBA\x82aKHV[_` \x82\x84\x03\x12\x15aK\x80W__\xFD[\x81Qa\n\xBA\x81a@kV[_` \x82\x84\x03\x12\x15aK\x9BW__\xFD[\x81Qa\n\xBA\x81aA:V[_`\xC0\x82\x01\x88\x83R`\x01\x80`\xA0\x1B\x03\x88\x16` \x84\x01R\x86`@\x84\x01R`\xC0``\x84\x01R\x80\x86Q\x80\x83R`\xE0\x85\x01\x91P` \x88\x01\x92P_[\x81\x81\x10\x15aL\x13W\x83Q\x80Q`\xFF\x16\x84R` \x90\x81\x01Q`\x01`\x01`\xA0\x1B\x03\x16\x81\x85\x01R\x90\x93\x01\x92`@\x90\x92\x01\x91`\x01\x01aK\xDDV[PP`\x80\x84\x01\x95\x90\x95RPP`\xA0\x01R\x94\x93PPPPV[\x805`\x02\x81\x10aB\x81W__\xFD[_`@\x82\x84\x03\x12\x15aLIW__\xFD[aLQa?\xF7V[\x825\x81R` \x92\x83\x015\x92\x81\x01\x92\x90\x92RP\x91\x90PV[_\x82`\x1F\x83\x01\x12aLwW__\xFD[aL\x7Fa?\xF7V[\x80`@\x84\x01\x85\x81\x11\x15aL\x90W__\xFD[\x84[\x81\x81\x10\x15aL\xAAW\x805\x84R` \x93\x84\x01\x93\x01aL\x92V[P\x90\x95\x94PPPPPV[_\x81\x83\x03a\x01\0\x81\x12\x15aL\xC7W__\xFD[aL\xCFa?\xCFV[\x91PaL\xDB\x84\x84aL9V[\x82RaL\xEA\x84`@\x85\x01aL9V[` \x83\x01R`\x80`\x7F\x19\x82\x01\x12\x15aM\0W__\xFD[PaM\ta?\xF7V[aM\x16\x84`\x80\x85\x01aLhV[\x81RaM%\x84`\xC0\x85\x01aLhV[` \x82\x01R`@\x82\x01R\x92\x91PPV[___a\x01@\x84\x86\x03\x12\x15aMHW__\xFD[aMQ\x84aL+V[\x92P` \x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aMkW__\xFD[aMw\x86\x82\x87\x01aA\x94V[\x92PPaM\x87\x85`@\x86\x01aL\xB5V[\x90P\x92P\x92P\x92V[_____a\x01\x80\x86\x88\x03\x12\x15aM\xA5W__\xFD[aM\xAE\x86aL+V[\x94P` \x86\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aM\xC8W__\xFD[aM\xD4\x88\x82\x89\x01aA\x94V[\x94PPaM\xE4\x87`@\x88\x01aL\xB5V[\x92Pa\x01@\x86\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aM\xFFW__\xFD[aN\x0B\x88\x82\x89\x01aHvV[\x92PPa\x01`\x86\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aN'W__\xFD[\x86\x01``\x81\x89\x03\x12\x15aN8W__\xFD[aN@a?\xCFV[\x815`\x01`\x01`@\x1B\x03\x81\x11\x15aNUW__\xFD[aNa\x8A\x82\x85\x01aA\x94V[\x82RP` \x82\x81\x015\x90\x82\x01R`@\x91\x82\x015\x91\x81\x01\x91\x90\x91R\x94\x97\x93\x96P\x91\x94P\x92\x91\x90PV[cNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[_`\x01\x82\x01aN\xAEWaN\xAEaN\x89V[P`\x01\x01\x90V[``\x80\x82R\x84Q\x90\x82\x01\x81\x90R_\x90` \x86\x01\x90`\x80\x84\x01\x90\x83[\x81\x81\x10\x15aN\xF7W\x83Q`\x01`\x01`\xA0\x1B\x03\x16\x83R` \x93\x84\x01\x93\x90\x92\x01\x91`\x01\x01aN\xD0V[PP\x83\x81\x03` \x80\x86\x01\x91\x90\x91R\x86Q\x80\x83R\x91\x81\x01\x92P\x86\x01\x90_[\x81\x81\x10\x15aO2W\x82Q\x84R` \x93\x84\x01\x93\x90\x92\x01\x91`\x01\x01aO\x14V[PPP`\xFF\x84\x16`@\x84\x01R\x90Pa\x1CXV[_` \x82\x84\x03\x12\x15aOUW__\xFD[\x81Q`\x01`\x01`@\x1B\x03\x81\x11\x15aOjW__\xFD[\x82\x01`\x1F\x81\x01\x84\x13aOzW__\xFD[\x80QaO\x88a@\x9C\x82a@IV[\x80\x82\x82R` \x82\x01\x91P` \x83`\x05\x1B\x85\x01\x01\x92P\x86\x83\x11\x15aO\xA9W__\xFD[` \x84\x01\x93P[\x82\x84\x10\x15a\x15\xF1WaO\xC1\x84aKHV[\x82R` \x93\x84\x01\x93\x90\x91\x01\x90aO\xB0V[\x82\x81R`@` \x82\x01R_a\n\xB7`@\x83\x01\x84aF\x90V[`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x81R\x91\x16` \x82\x01R`@\x01\x90V[`\x01`\x01`\xA0\x1B\x03\x83\x16\x81R`@` \x82\x01\x81\x90R_\x90a\n\xB7\x90\x83\x01\x84aF\x90V[cNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[_\x82aPIWaPIaP'V[P\x06\x90V[`\xFF\x81\x81\x16\x83\x82\x16\x01\x90\x81\x11\x15a\x0C\xD2Wa\x0C\xD2aN\x89V[_`@\x82\x01`\x01\x80`\xA0\x1B\x03\x85\x16\x83R`@` \x84\x01R\x80\x84Q\x80\x83R``\x85\x01\x91P``\x81`\x05\x1B\x86\x01\x01\x92P` \x86\x01_[\x82\x81\x10\x15aQ\x1CW\x86\x85\x03`_\x19\x01\x84R\x81Q\x80Qc\xFF\xFF\xFF\xFF\x16\x86R` \x90\x81\x01Q`@\x82\x88\x01\x81\x90R\x81Q\x90\x88\x01\x81\x90R\x91\x01\x90_\x90``\x88\x01\x90[\x80\x83\x10\x15aQ\x04W\x83Q`\x01`\x01`\xA0\x1B\x03\x16\x82R` \x93\x84\x01\x93`\x01\x93\x90\x93\x01\x92\x90\x91\x01\x90aP\xD9V[P\x96PPP` \x93\x84\x01\x93\x91\x90\x91\x01\x90`\x01\x01aP\x9BV[P\x92\x97\x96PPPPPPPV[_\x81Q\x80\x84R` \x84\x01\x93P` \x83\x01_[\x82\x81\x10\x15aJJW\x81Q\x80Q`\x01`\x01`\xA0\x1B\x03\x16\x87R` \x90\x81\x01Q`\x01`\x01``\x1B\x03\x16\x81\x88\x01R`@\x90\x96\x01\x95\x90\x91\x01\x90`\x01\x01aQ;V[`\xFF\x84\x16\x81R`\x01`\x01``\x1B\x03\x83\x16` \x82\x01R```@\x82\x01R_aQ\xA1``\x83\x01\x84aQ)V[\x95\x94PPPPPV[`\xFF\x85\x16\x81R`\x01`\x01``\x1B\x03\x84\x16` \x82\x01Rc\xFF\xFF\xFF\xFF\x83\x16`@\x82\x01R`\x80``\x82\x01R_a\x15\xF1`\x80\x83\x01\x84aQ)V[aR\x0F\x81\x87c\xFF\xFF\xFF\xFF\x81Q\x16\x82Ra\xFF\xFF` \x82\x01Q\x16` \x83\x01Ra\xFF\xFF`@\x82\x01Q\x16`@\x83\x01RPPV[`\x01`\x01``\x1B\x03\x85\x16``\x82\x01R`\xE0`\x80\x82\x01R_aR3`\xE0\x83\x01\x86aQ)V[\x90P`\x02\x84\x10aREWaREaF\xCDV[\x83`\xA0\x83\x01Rc\xFF\xFF\xFF\xFF\x83\x16`\xC0\x83\x01R\x96\x95PPPPPPV[` \x80\x82R`+\x90\x82\x01R\x7FInitializable: contract is not i`@\x82\x01Rjnitializing`\xA8\x1B``\x82\x01R`\x80\x01\x90V[`\x01\x81\x81\x1C\x90\x82\x16\x80aR\xC0W`\x7F\x82\x16\x91P[` \x82\x10\x81\x03aR\xDEWcNH{q`\xE0\x1B_R`\"`\x04R`$_\xFD[P\x91\x90PV[\x80_[`\x02\x81\x10\x15a\x0E1W\x81Q\x84R` \x93\x84\x01\x93\x90\x91\x01\x90`\x01\x01aR\xE7V[`\x01`\x01`\xA0\x1B\x03\x84\x16\x81R\x82Q\x80Q` \x80\x84\x01\x91\x90\x91R\x01Q`@\x82\x01Ra\x01`\x81\x01` \x84\x81\x01Q\x80Q``\x85\x01R\x90\x81\x01Q`\x80\x84\x01RP`@\x84\x01QaSU`\xA0\x84\x01\x82QaR\xE4V[` \x01QaSf`\xE0\x84\x01\x82aR\xE4V[P\x82Qa\x01 \x83\x01R` \x83\x01Qa\x01@\x83\x01Ra\x1CXV[_` \x82\x84\x03\x12\x15aS\x8FW__\xFD[PQ\x91\x90PV[\x80\x82\x01\x80\x82\x11\x15a\x0C\xD2Wa\x0C\xD2aN\x89V[`\x01\x80`\xA0\x1B\x03\x84\x16\x81R\x82` \x82\x01R```@\x82\x01R_aQ\xA1``\x83\x01\x84aF\x90V[_\x82`\x1F\x83\x01\x12aS\xDEW__\xFD[\x81QaS\xECa@\x9C\x82a@IV[\x80\x82\x82R` \x82\x01\x91P` \x83`\x05\x1B\x86\x01\x01\x92P\x85\x83\x11\x15aT\rW__\xFD[` \x85\x01[\x83\x81\x10\x15a@\xE8W\x80QaT%\x81aC\xD7V[\x83R` \x92\x83\x01\x92\x01aT\x12V[__`@\x83\x85\x03\x12\x15aTDW__\xFD[\x82Q`\x01`\x01`@\x1B\x03\x81\x11\x15aTYW__\xFD[aTe\x85\x82\x86\x01aS\xCFV[\x92PP` \x83\x01Q`\x01`\x01`@\x1B\x03\x81\x11\x15aT\x80W__\xFD[aG\x84\x85\x82\x86\x01aS\xCFV[_` \x82\x84\x03\x12\x15aT\x9CW__\xFD[\x81Q`\x01`\x01`@\x1B\x03\x81\x11\x15aT\xB1W__\xFD[\x82\x01`\x1F\x81\x01\x84\x13aT\xC1W__\xFD[\x80QaT\xCFa@\x9C\x82a@IV[\x80\x82\x82R` \x82\x01\x91P` \x83`\x05\x1B\x85\x01\x01\x92P\x86\x83\x11\x15aT\xF0W__\xFD[` \x84\x01\x93P[\x82\x84\x10\x15a\x15\xF1W\x83QaU\n\x81aA:V[\x82R` \x93\x84\x01\x93\x90\x91\x01\x90aT\xF7V[\x81\x81\x03\x81\x81\x11\x15a\x0C\xD2Wa\x0C\xD2aN\x89V[_a\xFF\xFF\x82\x16a\xFF\xFF\x81\x03aUEWaUEaN\x89V[`\x01\x01\x92\x91PPV[`\x1F\x82\x11\x15a\n\xA4W\x80_R` _ `\x1F\x84\x01`\x05\x1C\x81\x01` \x85\x10\x15aUsWP\x80[`\x1F\x84\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15a\r\xF0W_\x81U`\x01\x01aU\x7FV[\x81Q`\x01`\x01`@\x1B\x03\x81\x11\x15aU\xABWaU\xABa?\xBBV[aU\xBF\x81aU\xB9\x84TaR\xACV[\x84aUNV[` `\x1F\x82\x11`\x01\x81\x14aU\xF1W_\x83\x15aU\xDAWP\x84\x82\x01Q[_\x19`\x03\x85\x90\x1B\x1C\x19\x16`\x01\x84\x90\x1B\x17\x84Ua\r\xF0V[_\x84\x81R` \x81 `\x1F\x19\x85\x16\x91[\x82\x81\x10\x15aV W\x87\x85\x01Q\x82U` \x94\x85\x01\x94`\x01\x90\x92\x01\x91\x01aV\0V[P\x84\x82\x10\x15aV=W\x86\x84\x01Q_\x19`\x03\x87\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPP`\x01\x90\x81\x1B\x01\x90UPV[` \x80\x82R\x82Q`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x83\x83\x01R\x90\x83\x01Q\x16`@\x80\x83\x01\x91\x90\x91R\x82\x01Q``\x80\x83\x01R_\x90a\x1CX`\x80\x84\x01\x82aJ\x14V[_` \x82\x84\x03\x12\x15aV\x98W__\xFD[\x81Qa\n\xBA\x81aC\xD7V[`\x01`\x01``\x1B\x03\x81\x81\x16\x83\x82\x16\x02\x90\x81\x16\x90\x81\x81\x14a\x1F^Wa\x1F^aN\x89V[_`\x01`\x01``\x1B\x03\x83\x16\x80aV\xDDWaV\xDDaP'V[\x80`\x01`\x01``\x1B\x03\x84\x16\x04\x91PP\x92\x91PPV[_\x82QaW\x03\x81\x84` \x87\x01aFnV[\x91\x90\x91\x01\x92\x91PPV\xFE0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X]\x97\x81j\x91hq\xCA\x8D< \x8C\x16\xD8|\xFDG\xA2dipfsX\"\x12 \xE9\x08\x87\xAE\xA0\xD2\x96;\x88\xE7BV\x91s\xC5\xA4\x8F\x10Q\x0FH\xDE\x19{\x10fG\x1D\xD4WZ\xF7dsolcC\0\x08\x1B\x003",
3973    );
3974    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3975    /**Custom error with signature `AlreadyRegisteredForQuorums()` and selector `0x0c6816cd`.
3976```solidity
3977error AlreadyRegisteredForQuorums();
3978```*/
3979    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3980    #[derive(Clone)]
3981    pub struct AlreadyRegisteredForQuorums {}
3982    #[allow(
3983        non_camel_case_types,
3984        non_snake_case,
3985        clippy::pub_underscore_fields,
3986        clippy::style
3987    )]
3988    const _: () = {
3989        use alloy::sol_types as alloy_sol_types;
3990        #[doc(hidden)]
3991        type UnderlyingSolTuple<'a> = ();
3992        #[doc(hidden)]
3993        type UnderlyingRustTuple<'a> = ();
3994        #[cfg(test)]
3995        #[allow(dead_code, unreachable_patterns)]
3996        fn _type_assertion(
3997            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3998        ) {
3999            match _t {
4000                alloy_sol_types::private::AssertTypeEq::<
4001                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4002                >(_) => {}
4003            }
4004        }
4005        #[automatically_derived]
4006        #[doc(hidden)]
4007        impl ::core::convert::From<AlreadyRegisteredForQuorums>
4008        for UnderlyingRustTuple<'_> {
4009            fn from(value: AlreadyRegisteredForQuorums) -> Self {
4010                ()
4011            }
4012        }
4013        #[automatically_derived]
4014        #[doc(hidden)]
4015        impl ::core::convert::From<UnderlyingRustTuple<'_>>
4016        for AlreadyRegisteredForQuorums {
4017            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4018                Self {}
4019            }
4020        }
4021        #[automatically_derived]
4022        impl alloy_sol_types::SolError for AlreadyRegisteredForQuorums {
4023            type Parameters<'a> = UnderlyingSolTuple<'a>;
4024            type Token<'a> = <Self::Parameters<
4025                'a,
4026            > as alloy_sol_types::SolType>::Token<'a>;
4027            const SIGNATURE: &'static str = "AlreadyRegisteredForQuorums()";
4028            const SELECTOR: [u8; 4] = [12u8, 104u8, 22u8, 205u8];
4029            #[inline]
4030            fn new<'a>(
4031                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4032            ) -> Self {
4033                tuple.into()
4034            }
4035            #[inline]
4036            fn tokenize(&self) -> Self::Token<'_> {
4037                ()
4038            }
4039        }
4040    };
4041    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4042    /**Custom error with signature `BitmapCannotBeZero()` and selector `0xd16d50ea`.
4043```solidity
4044error BitmapCannotBeZero();
4045```*/
4046    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4047    #[derive(Clone)]
4048    pub struct BitmapCannotBeZero {}
4049    #[allow(
4050        non_camel_case_types,
4051        non_snake_case,
4052        clippy::pub_underscore_fields,
4053        clippy::style
4054    )]
4055    const _: () = {
4056        use alloy::sol_types as alloy_sol_types;
4057        #[doc(hidden)]
4058        type UnderlyingSolTuple<'a> = ();
4059        #[doc(hidden)]
4060        type UnderlyingRustTuple<'a> = ();
4061        #[cfg(test)]
4062        #[allow(dead_code, unreachable_patterns)]
4063        fn _type_assertion(
4064            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4065        ) {
4066            match _t {
4067                alloy_sol_types::private::AssertTypeEq::<
4068                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4069                >(_) => {}
4070            }
4071        }
4072        #[automatically_derived]
4073        #[doc(hidden)]
4074        impl ::core::convert::From<BitmapCannotBeZero> for UnderlyingRustTuple<'_> {
4075            fn from(value: BitmapCannotBeZero) -> Self {
4076                ()
4077            }
4078        }
4079        #[automatically_derived]
4080        #[doc(hidden)]
4081        impl ::core::convert::From<UnderlyingRustTuple<'_>> for BitmapCannotBeZero {
4082            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4083                Self {}
4084            }
4085        }
4086        #[automatically_derived]
4087        impl alloy_sol_types::SolError for BitmapCannotBeZero {
4088            type Parameters<'a> = UnderlyingSolTuple<'a>;
4089            type Token<'a> = <Self::Parameters<
4090                'a,
4091            > as alloy_sol_types::SolType>::Token<'a>;
4092            const SIGNATURE: &'static str = "BitmapCannotBeZero()";
4093            const SELECTOR: [u8; 4] = [209u8, 109u8, 80u8, 234u8];
4094            #[inline]
4095            fn new<'a>(
4096                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4097            ) -> Self {
4098                tuple.into()
4099            }
4100            #[inline]
4101            fn tokenize(&self) -> Self::Token<'_> {
4102                ()
4103            }
4104        }
4105    };
4106    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4107    /**Custom error with signature `BitmapEmpty()` and selector `0x13ca4657`.
4108```solidity
4109error BitmapEmpty();
4110```*/
4111    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4112    #[derive(Clone)]
4113    pub struct BitmapEmpty {}
4114    #[allow(
4115        non_camel_case_types,
4116        non_snake_case,
4117        clippy::pub_underscore_fields,
4118        clippy::style
4119    )]
4120    const _: () = {
4121        use alloy::sol_types as alloy_sol_types;
4122        #[doc(hidden)]
4123        type UnderlyingSolTuple<'a> = ();
4124        #[doc(hidden)]
4125        type UnderlyingRustTuple<'a> = ();
4126        #[cfg(test)]
4127        #[allow(dead_code, unreachable_patterns)]
4128        fn _type_assertion(
4129            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4130        ) {
4131            match _t {
4132                alloy_sol_types::private::AssertTypeEq::<
4133                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4134                >(_) => {}
4135            }
4136        }
4137        #[automatically_derived]
4138        #[doc(hidden)]
4139        impl ::core::convert::From<BitmapEmpty> for UnderlyingRustTuple<'_> {
4140            fn from(value: BitmapEmpty) -> Self {
4141                ()
4142            }
4143        }
4144        #[automatically_derived]
4145        #[doc(hidden)]
4146        impl ::core::convert::From<UnderlyingRustTuple<'_>> for BitmapEmpty {
4147            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4148                Self {}
4149            }
4150        }
4151        #[automatically_derived]
4152        impl alloy_sol_types::SolError for BitmapEmpty {
4153            type Parameters<'a> = UnderlyingSolTuple<'a>;
4154            type Token<'a> = <Self::Parameters<
4155                'a,
4156            > as alloy_sol_types::SolType>::Token<'a>;
4157            const SIGNATURE: &'static str = "BitmapEmpty()";
4158            const SELECTOR: [u8; 4] = [19u8, 202u8, 70u8, 87u8];
4159            #[inline]
4160            fn new<'a>(
4161                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4162            ) -> Self {
4163                tuple.into()
4164            }
4165            #[inline]
4166            fn tokenize(&self) -> Self::Token<'_> {
4167                ()
4168            }
4169        }
4170    };
4171    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4172    /**Custom error with signature `BitmapUpdateIsAfterBlockNumber()` and selector `0x6cb19aff`.
4173```solidity
4174error BitmapUpdateIsAfterBlockNumber();
4175```*/
4176    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4177    #[derive(Clone)]
4178    pub struct BitmapUpdateIsAfterBlockNumber {}
4179    #[allow(
4180        non_camel_case_types,
4181        non_snake_case,
4182        clippy::pub_underscore_fields,
4183        clippy::style
4184    )]
4185    const _: () = {
4186        use alloy::sol_types as alloy_sol_types;
4187        #[doc(hidden)]
4188        type UnderlyingSolTuple<'a> = ();
4189        #[doc(hidden)]
4190        type UnderlyingRustTuple<'a> = ();
4191        #[cfg(test)]
4192        #[allow(dead_code, unreachable_patterns)]
4193        fn _type_assertion(
4194            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4195        ) {
4196            match _t {
4197                alloy_sol_types::private::AssertTypeEq::<
4198                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4199                >(_) => {}
4200            }
4201        }
4202        #[automatically_derived]
4203        #[doc(hidden)]
4204        impl ::core::convert::From<BitmapUpdateIsAfterBlockNumber>
4205        for UnderlyingRustTuple<'_> {
4206            fn from(value: BitmapUpdateIsAfterBlockNumber) -> Self {
4207                ()
4208            }
4209        }
4210        #[automatically_derived]
4211        #[doc(hidden)]
4212        impl ::core::convert::From<UnderlyingRustTuple<'_>>
4213        for BitmapUpdateIsAfterBlockNumber {
4214            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4215                Self {}
4216            }
4217        }
4218        #[automatically_derived]
4219        impl alloy_sol_types::SolError for BitmapUpdateIsAfterBlockNumber {
4220            type Parameters<'a> = UnderlyingSolTuple<'a>;
4221            type Token<'a> = <Self::Parameters<
4222                'a,
4223            > as alloy_sol_types::SolType>::Token<'a>;
4224            const SIGNATURE: &'static str = "BitmapUpdateIsAfterBlockNumber()";
4225            const SELECTOR: [u8; 4] = [108u8, 177u8, 154u8, 255u8];
4226            #[inline]
4227            fn new<'a>(
4228                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4229            ) -> Self {
4230                tuple.into()
4231            }
4232            #[inline]
4233            fn tokenize(&self) -> Self::Token<'_> {
4234                ()
4235            }
4236        }
4237    };
4238    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4239    /**Custom error with signature `BitmapValueTooLarge()` and selector `0xca957333`.
4240```solidity
4241error BitmapValueTooLarge();
4242```*/
4243    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4244    #[derive(Clone)]
4245    pub struct BitmapValueTooLarge {}
4246    #[allow(
4247        non_camel_case_types,
4248        non_snake_case,
4249        clippy::pub_underscore_fields,
4250        clippy::style
4251    )]
4252    const _: () = {
4253        use alloy::sol_types as alloy_sol_types;
4254        #[doc(hidden)]
4255        type UnderlyingSolTuple<'a> = ();
4256        #[doc(hidden)]
4257        type UnderlyingRustTuple<'a> = ();
4258        #[cfg(test)]
4259        #[allow(dead_code, unreachable_patterns)]
4260        fn _type_assertion(
4261            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4262        ) {
4263            match _t {
4264                alloy_sol_types::private::AssertTypeEq::<
4265                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4266                >(_) => {}
4267            }
4268        }
4269        #[automatically_derived]
4270        #[doc(hidden)]
4271        impl ::core::convert::From<BitmapValueTooLarge> for UnderlyingRustTuple<'_> {
4272            fn from(value: BitmapValueTooLarge) -> Self {
4273                ()
4274            }
4275        }
4276        #[automatically_derived]
4277        #[doc(hidden)]
4278        impl ::core::convert::From<UnderlyingRustTuple<'_>> for BitmapValueTooLarge {
4279            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4280                Self {}
4281            }
4282        }
4283        #[automatically_derived]
4284        impl alloy_sol_types::SolError for BitmapValueTooLarge {
4285            type Parameters<'a> = UnderlyingSolTuple<'a>;
4286            type Token<'a> = <Self::Parameters<
4287                'a,
4288            > as alloy_sol_types::SolType>::Token<'a>;
4289            const SIGNATURE: &'static str = "BitmapValueTooLarge()";
4290            const SELECTOR: [u8; 4] = [202u8, 149u8, 115u8, 51u8];
4291            #[inline]
4292            fn new<'a>(
4293                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4294            ) -> Self {
4295                tuple.into()
4296            }
4297            #[inline]
4298            fn tokenize(&self) -> Self::Token<'_> {
4299                ()
4300            }
4301        }
4302    };
4303    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4304    /**Custom error with signature `BytesArrayLengthTooLong()` and selector `0xfb4a9c8e`.
4305```solidity
4306error BytesArrayLengthTooLong();
4307```*/
4308    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4309    #[derive(Clone)]
4310    pub struct BytesArrayLengthTooLong {}
4311    #[allow(
4312        non_camel_case_types,
4313        non_snake_case,
4314        clippy::pub_underscore_fields,
4315        clippy::style
4316    )]
4317    const _: () = {
4318        use alloy::sol_types as alloy_sol_types;
4319        #[doc(hidden)]
4320        type UnderlyingSolTuple<'a> = ();
4321        #[doc(hidden)]
4322        type UnderlyingRustTuple<'a> = ();
4323        #[cfg(test)]
4324        #[allow(dead_code, unreachable_patterns)]
4325        fn _type_assertion(
4326            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4327        ) {
4328            match _t {
4329                alloy_sol_types::private::AssertTypeEq::<
4330                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4331                >(_) => {}
4332            }
4333        }
4334        #[automatically_derived]
4335        #[doc(hidden)]
4336        impl ::core::convert::From<BytesArrayLengthTooLong> for UnderlyingRustTuple<'_> {
4337            fn from(value: BytesArrayLengthTooLong) -> Self {
4338                ()
4339            }
4340        }
4341        #[automatically_derived]
4342        #[doc(hidden)]
4343        impl ::core::convert::From<UnderlyingRustTuple<'_>> for BytesArrayLengthTooLong {
4344            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4345                Self {}
4346            }
4347        }
4348        #[automatically_derived]
4349        impl alloy_sol_types::SolError for BytesArrayLengthTooLong {
4350            type Parameters<'a> = UnderlyingSolTuple<'a>;
4351            type Token<'a> = <Self::Parameters<
4352                'a,
4353            > as alloy_sol_types::SolType>::Token<'a>;
4354            const SIGNATURE: &'static str = "BytesArrayLengthTooLong()";
4355            const SELECTOR: [u8; 4] = [251u8, 74u8, 156u8, 142u8];
4356            #[inline]
4357            fn new<'a>(
4358                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4359            ) -> Self {
4360                tuple.into()
4361            }
4362            #[inline]
4363            fn tokenize(&self) -> Self::Token<'_> {
4364                ()
4365            }
4366        }
4367    };
4368    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4369    /**Custom error with signature `BytesArrayNotOrdered()` and selector `0x80c88348`.
4370```solidity
4371error BytesArrayNotOrdered();
4372```*/
4373    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4374    #[derive(Clone)]
4375    pub struct BytesArrayNotOrdered {}
4376    #[allow(
4377        non_camel_case_types,
4378        non_snake_case,
4379        clippy::pub_underscore_fields,
4380        clippy::style
4381    )]
4382    const _: () = {
4383        use alloy::sol_types as alloy_sol_types;
4384        #[doc(hidden)]
4385        type UnderlyingSolTuple<'a> = ();
4386        #[doc(hidden)]
4387        type UnderlyingRustTuple<'a> = ();
4388        #[cfg(test)]
4389        #[allow(dead_code, unreachable_patterns)]
4390        fn _type_assertion(
4391            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4392        ) {
4393            match _t {
4394                alloy_sol_types::private::AssertTypeEq::<
4395                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4396                >(_) => {}
4397            }
4398        }
4399        #[automatically_derived]
4400        #[doc(hidden)]
4401        impl ::core::convert::From<BytesArrayNotOrdered> for UnderlyingRustTuple<'_> {
4402            fn from(value: BytesArrayNotOrdered) -> Self {
4403                ()
4404            }
4405        }
4406        #[automatically_derived]
4407        #[doc(hidden)]
4408        impl ::core::convert::From<UnderlyingRustTuple<'_>> for BytesArrayNotOrdered {
4409            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4410                Self {}
4411            }
4412        }
4413        #[automatically_derived]
4414        impl alloy_sol_types::SolError for BytesArrayNotOrdered {
4415            type Parameters<'a> = UnderlyingSolTuple<'a>;
4416            type Token<'a> = <Self::Parameters<
4417                'a,
4418            > as alloy_sol_types::SolType>::Token<'a>;
4419            const SIGNATURE: &'static str = "BytesArrayNotOrdered()";
4420            const SELECTOR: [u8; 4] = [128u8, 200u8, 131u8, 72u8];
4421            #[inline]
4422            fn new<'a>(
4423                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4424            ) -> Self {
4425                tuple.into()
4426            }
4427            #[inline]
4428            fn tokenize(&self) -> Self::Token<'_> {
4429                ()
4430            }
4431        }
4432    };
4433    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4434    /**Custom error with signature `CannotChurnSelf()` and selector `0xac2d1682`.
4435```solidity
4436error CannotChurnSelf();
4437```*/
4438    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4439    #[derive(Clone)]
4440    pub struct CannotChurnSelf {}
4441    #[allow(
4442        non_camel_case_types,
4443        non_snake_case,
4444        clippy::pub_underscore_fields,
4445        clippy::style
4446    )]
4447    const _: () = {
4448        use alloy::sol_types as alloy_sol_types;
4449        #[doc(hidden)]
4450        type UnderlyingSolTuple<'a> = ();
4451        #[doc(hidden)]
4452        type UnderlyingRustTuple<'a> = ();
4453        #[cfg(test)]
4454        #[allow(dead_code, unreachable_patterns)]
4455        fn _type_assertion(
4456            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4457        ) {
4458            match _t {
4459                alloy_sol_types::private::AssertTypeEq::<
4460                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4461                >(_) => {}
4462            }
4463        }
4464        #[automatically_derived]
4465        #[doc(hidden)]
4466        impl ::core::convert::From<CannotChurnSelf> for UnderlyingRustTuple<'_> {
4467            fn from(value: CannotChurnSelf) -> Self {
4468                ()
4469            }
4470        }
4471        #[automatically_derived]
4472        #[doc(hidden)]
4473        impl ::core::convert::From<UnderlyingRustTuple<'_>> for CannotChurnSelf {
4474            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4475                Self {}
4476            }
4477        }
4478        #[automatically_derived]
4479        impl alloy_sol_types::SolError for CannotChurnSelf {
4480            type Parameters<'a> = UnderlyingSolTuple<'a>;
4481            type Token<'a> = <Self::Parameters<
4482                'a,
4483            > as alloy_sol_types::SolType>::Token<'a>;
4484            const SIGNATURE: &'static str = "CannotChurnSelf()";
4485            const SELECTOR: [u8; 4] = [172u8, 45u8, 22u8, 130u8];
4486            #[inline]
4487            fn new<'a>(
4488                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4489            ) -> Self {
4490                tuple.into()
4491            }
4492            #[inline]
4493            fn tokenize(&self) -> Self::Token<'_> {
4494                ()
4495            }
4496        }
4497    };
4498    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4499    /**Custom error with signature `CannotKickOperatorAboveThreshold()` and selector `0xb187e869`.
4500```solidity
4501error CannotKickOperatorAboveThreshold();
4502```*/
4503    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4504    #[derive(Clone)]
4505    pub struct CannotKickOperatorAboveThreshold {}
4506    #[allow(
4507        non_camel_case_types,
4508        non_snake_case,
4509        clippy::pub_underscore_fields,
4510        clippy::style
4511    )]
4512    const _: () = {
4513        use alloy::sol_types as alloy_sol_types;
4514        #[doc(hidden)]
4515        type UnderlyingSolTuple<'a> = ();
4516        #[doc(hidden)]
4517        type UnderlyingRustTuple<'a> = ();
4518        #[cfg(test)]
4519        #[allow(dead_code, unreachable_patterns)]
4520        fn _type_assertion(
4521            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4522        ) {
4523            match _t {
4524                alloy_sol_types::private::AssertTypeEq::<
4525                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4526                >(_) => {}
4527            }
4528        }
4529        #[automatically_derived]
4530        #[doc(hidden)]
4531        impl ::core::convert::From<CannotKickOperatorAboveThreshold>
4532        for UnderlyingRustTuple<'_> {
4533            fn from(value: CannotKickOperatorAboveThreshold) -> Self {
4534                ()
4535            }
4536        }
4537        #[automatically_derived]
4538        #[doc(hidden)]
4539        impl ::core::convert::From<UnderlyingRustTuple<'_>>
4540        for CannotKickOperatorAboveThreshold {
4541            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4542                Self {}
4543            }
4544        }
4545        #[automatically_derived]
4546        impl alloy_sol_types::SolError for CannotKickOperatorAboveThreshold {
4547            type Parameters<'a> = UnderlyingSolTuple<'a>;
4548            type Token<'a> = <Self::Parameters<
4549                'a,
4550            > as alloy_sol_types::SolType>::Token<'a>;
4551            const SIGNATURE: &'static str = "CannotKickOperatorAboveThreshold()";
4552            const SELECTOR: [u8; 4] = [177u8, 135u8, 232u8, 105u8];
4553            #[inline]
4554            fn new<'a>(
4555                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4556            ) -> Self {
4557                tuple.into()
4558            }
4559            #[inline]
4560            fn tokenize(&self) -> Self::Token<'_> {
4561                ()
4562            }
4563        }
4564    };
4565    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4566    /**Custom error with signature `CannotReregisterYet()` and selector `0x32d0cefa`.
4567```solidity
4568error CannotReregisterYet();
4569```*/
4570    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4571    #[derive(Clone)]
4572    pub struct CannotReregisterYet {}
4573    #[allow(
4574        non_camel_case_types,
4575        non_snake_case,
4576        clippy::pub_underscore_fields,
4577        clippy::style
4578    )]
4579    const _: () = {
4580        use alloy::sol_types as alloy_sol_types;
4581        #[doc(hidden)]
4582        type UnderlyingSolTuple<'a> = ();
4583        #[doc(hidden)]
4584        type UnderlyingRustTuple<'a> = ();
4585        #[cfg(test)]
4586        #[allow(dead_code, unreachable_patterns)]
4587        fn _type_assertion(
4588            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4589        ) {
4590            match _t {
4591                alloy_sol_types::private::AssertTypeEq::<
4592                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4593                >(_) => {}
4594            }
4595        }
4596        #[automatically_derived]
4597        #[doc(hidden)]
4598        impl ::core::convert::From<CannotReregisterYet> for UnderlyingRustTuple<'_> {
4599            fn from(value: CannotReregisterYet) -> Self {
4600                ()
4601            }
4602        }
4603        #[automatically_derived]
4604        #[doc(hidden)]
4605        impl ::core::convert::From<UnderlyingRustTuple<'_>> for CannotReregisterYet {
4606            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4607                Self {}
4608            }
4609        }
4610        #[automatically_derived]
4611        impl alloy_sol_types::SolError for CannotReregisterYet {
4612            type Parameters<'a> = UnderlyingSolTuple<'a>;
4613            type Token<'a> = <Self::Parameters<
4614                'a,
4615            > as alloy_sol_types::SolType>::Token<'a>;
4616            const SIGNATURE: &'static str = "CannotReregisterYet()";
4617            const SELECTOR: [u8; 4] = [50u8, 208u8, 206u8, 250u8];
4618            #[inline]
4619            fn new<'a>(
4620                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4621            ) -> Self {
4622                tuple.into()
4623            }
4624            #[inline]
4625            fn tokenize(&self) -> Self::Token<'_> {
4626                ()
4627            }
4628        }
4629    };
4630    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4631    /**Custom error with signature `ChurnApproverSaltUsed()` and selector `0xdf7dfd86`.
4632```solidity
4633error ChurnApproverSaltUsed();
4634```*/
4635    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4636    #[derive(Clone)]
4637    pub struct ChurnApproverSaltUsed {}
4638    #[allow(
4639        non_camel_case_types,
4640        non_snake_case,
4641        clippy::pub_underscore_fields,
4642        clippy::style
4643    )]
4644    const _: () = {
4645        use alloy::sol_types as alloy_sol_types;
4646        #[doc(hidden)]
4647        type UnderlyingSolTuple<'a> = ();
4648        #[doc(hidden)]
4649        type UnderlyingRustTuple<'a> = ();
4650        #[cfg(test)]
4651        #[allow(dead_code, unreachable_patterns)]
4652        fn _type_assertion(
4653            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4654        ) {
4655            match _t {
4656                alloy_sol_types::private::AssertTypeEq::<
4657                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4658                >(_) => {}
4659            }
4660        }
4661        #[automatically_derived]
4662        #[doc(hidden)]
4663        impl ::core::convert::From<ChurnApproverSaltUsed> for UnderlyingRustTuple<'_> {
4664            fn from(value: ChurnApproverSaltUsed) -> Self {
4665                ()
4666            }
4667        }
4668        #[automatically_derived]
4669        #[doc(hidden)]
4670        impl ::core::convert::From<UnderlyingRustTuple<'_>> for ChurnApproverSaltUsed {
4671            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4672                Self {}
4673            }
4674        }
4675        #[automatically_derived]
4676        impl alloy_sol_types::SolError for ChurnApproverSaltUsed {
4677            type Parameters<'a> = UnderlyingSolTuple<'a>;
4678            type Token<'a> = <Self::Parameters<
4679                'a,
4680            > as alloy_sol_types::SolType>::Token<'a>;
4681            const SIGNATURE: &'static str = "ChurnApproverSaltUsed()";
4682            const SELECTOR: [u8; 4] = [223u8, 125u8, 253u8, 134u8];
4683            #[inline]
4684            fn new<'a>(
4685                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4686            ) -> Self {
4687                tuple.into()
4688            }
4689            #[inline]
4690            fn tokenize(&self) -> Self::Token<'_> {
4691                ()
4692            }
4693        }
4694    };
4695    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4696    /**Custom error with signature `CurrentlyPaused()` and selector `0x840a48d5`.
4697```solidity
4698error CurrentlyPaused();
4699```*/
4700    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4701    #[derive(Clone)]
4702    pub struct CurrentlyPaused {}
4703    #[allow(
4704        non_camel_case_types,
4705        non_snake_case,
4706        clippy::pub_underscore_fields,
4707        clippy::style
4708    )]
4709    const _: () = {
4710        use alloy::sol_types as alloy_sol_types;
4711        #[doc(hidden)]
4712        type UnderlyingSolTuple<'a> = ();
4713        #[doc(hidden)]
4714        type UnderlyingRustTuple<'a> = ();
4715        #[cfg(test)]
4716        #[allow(dead_code, unreachable_patterns)]
4717        fn _type_assertion(
4718            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4719        ) {
4720            match _t {
4721                alloy_sol_types::private::AssertTypeEq::<
4722                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4723                >(_) => {}
4724            }
4725        }
4726        #[automatically_derived]
4727        #[doc(hidden)]
4728        impl ::core::convert::From<CurrentlyPaused> for UnderlyingRustTuple<'_> {
4729            fn from(value: CurrentlyPaused) -> Self {
4730                ()
4731            }
4732        }
4733        #[automatically_derived]
4734        #[doc(hidden)]
4735        impl ::core::convert::From<UnderlyingRustTuple<'_>> for CurrentlyPaused {
4736            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4737                Self {}
4738            }
4739        }
4740        #[automatically_derived]
4741        impl alloy_sol_types::SolError for CurrentlyPaused {
4742            type Parameters<'a> = UnderlyingSolTuple<'a>;
4743            type Token<'a> = <Self::Parameters<
4744                'a,
4745            > as alloy_sol_types::SolType>::Token<'a>;
4746            const SIGNATURE: &'static str = "CurrentlyPaused()";
4747            const SELECTOR: [u8; 4] = [132u8, 10u8, 72u8, 213u8];
4748            #[inline]
4749            fn new<'a>(
4750                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4751            ) -> Self {
4752                tuple.into()
4753            }
4754            #[inline]
4755            fn tokenize(&self) -> Self::Token<'_> {
4756                ()
4757            }
4758        }
4759    };
4760    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4761    /**Custom error with signature `ExpModFailed()` and selector `0xd51edae3`.
4762```solidity
4763error ExpModFailed();
4764```*/
4765    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4766    #[derive(Clone)]
4767    pub struct ExpModFailed {}
4768    #[allow(
4769        non_camel_case_types,
4770        non_snake_case,
4771        clippy::pub_underscore_fields,
4772        clippy::style
4773    )]
4774    const _: () = {
4775        use alloy::sol_types as alloy_sol_types;
4776        #[doc(hidden)]
4777        type UnderlyingSolTuple<'a> = ();
4778        #[doc(hidden)]
4779        type UnderlyingRustTuple<'a> = ();
4780        #[cfg(test)]
4781        #[allow(dead_code, unreachable_patterns)]
4782        fn _type_assertion(
4783            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4784        ) {
4785            match _t {
4786                alloy_sol_types::private::AssertTypeEq::<
4787                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4788                >(_) => {}
4789            }
4790        }
4791        #[automatically_derived]
4792        #[doc(hidden)]
4793        impl ::core::convert::From<ExpModFailed> for UnderlyingRustTuple<'_> {
4794            fn from(value: ExpModFailed) -> Self {
4795                ()
4796            }
4797        }
4798        #[automatically_derived]
4799        #[doc(hidden)]
4800        impl ::core::convert::From<UnderlyingRustTuple<'_>> for ExpModFailed {
4801            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4802                Self {}
4803            }
4804        }
4805        #[automatically_derived]
4806        impl alloy_sol_types::SolError for ExpModFailed {
4807            type Parameters<'a> = UnderlyingSolTuple<'a>;
4808            type Token<'a> = <Self::Parameters<
4809                'a,
4810            > as alloy_sol_types::SolType>::Token<'a>;
4811            const SIGNATURE: &'static str = "ExpModFailed()";
4812            const SELECTOR: [u8; 4] = [213u8, 30u8, 218u8, 227u8];
4813            #[inline]
4814            fn new<'a>(
4815                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4816            ) -> Self {
4817                tuple.into()
4818            }
4819            #[inline]
4820            fn tokenize(&self) -> Self::Token<'_> {
4821                ()
4822            }
4823        }
4824    };
4825    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4826    /**Custom error with signature `InputAddressZero()` and selector `0x73632176`.
4827```solidity
4828error InputAddressZero();
4829```*/
4830    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4831    #[derive(Clone)]
4832    pub struct InputAddressZero {}
4833    #[allow(
4834        non_camel_case_types,
4835        non_snake_case,
4836        clippy::pub_underscore_fields,
4837        clippy::style
4838    )]
4839    const _: () = {
4840        use alloy::sol_types as alloy_sol_types;
4841        #[doc(hidden)]
4842        type UnderlyingSolTuple<'a> = ();
4843        #[doc(hidden)]
4844        type UnderlyingRustTuple<'a> = ();
4845        #[cfg(test)]
4846        #[allow(dead_code, unreachable_patterns)]
4847        fn _type_assertion(
4848            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4849        ) {
4850            match _t {
4851                alloy_sol_types::private::AssertTypeEq::<
4852                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4853                >(_) => {}
4854            }
4855        }
4856        #[automatically_derived]
4857        #[doc(hidden)]
4858        impl ::core::convert::From<InputAddressZero> for UnderlyingRustTuple<'_> {
4859            fn from(value: InputAddressZero) -> Self {
4860                ()
4861            }
4862        }
4863        #[automatically_derived]
4864        #[doc(hidden)]
4865        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InputAddressZero {
4866            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4867                Self {}
4868            }
4869        }
4870        #[automatically_derived]
4871        impl alloy_sol_types::SolError for InputAddressZero {
4872            type Parameters<'a> = UnderlyingSolTuple<'a>;
4873            type Token<'a> = <Self::Parameters<
4874                'a,
4875            > as alloy_sol_types::SolType>::Token<'a>;
4876            const SIGNATURE: &'static str = "InputAddressZero()";
4877            const SELECTOR: [u8; 4] = [115u8, 99u8, 33u8, 118u8];
4878            #[inline]
4879            fn new<'a>(
4880                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4881            ) -> Self {
4882                tuple.into()
4883            }
4884            #[inline]
4885            fn tokenize(&self) -> Self::Token<'_> {
4886                ()
4887            }
4888        }
4889    };
4890    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4891    /**Custom error with signature `InputLengthMismatch()` and selector `0xaaad13f7`.
4892```solidity
4893error InputLengthMismatch();
4894```*/
4895    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4896    #[derive(Clone)]
4897    pub struct InputLengthMismatch {}
4898    #[allow(
4899        non_camel_case_types,
4900        non_snake_case,
4901        clippy::pub_underscore_fields,
4902        clippy::style
4903    )]
4904    const _: () = {
4905        use alloy::sol_types as alloy_sol_types;
4906        #[doc(hidden)]
4907        type UnderlyingSolTuple<'a> = ();
4908        #[doc(hidden)]
4909        type UnderlyingRustTuple<'a> = ();
4910        #[cfg(test)]
4911        #[allow(dead_code, unreachable_patterns)]
4912        fn _type_assertion(
4913            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4914        ) {
4915            match _t {
4916                alloy_sol_types::private::AssertTypeEq::<
4917                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4918                >(_) => {}
4919            }
4920        }
4921        #[automatically_derived]
4922        #[doc(hidden)]
4923        impl ::core::convert::From<InputLengthMismatch> for UnderlyingRustTuple<'_> {
4924            fn from(value: InputLengthMismatch) -> Self {
4925                ()
4926            }
4927        }
4928        #[automatically_derived]
4929        #[doc(hidden)]
4930        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InputLengthMismatch {
4931            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4932                Self {}
4933            }
4934        }
4935        #[automatically_derived]
4936        impl alloy_sol_types::SolError for InputLengthMismatch {
4937            type Parameters<'a> = UnderlyingSolTuple<'a>;
4938            type Token<'a> = <Self::Parameters<
4939                'a,
4940            > as alloy_sol_types::SolType>::Token<'a>;
4941            const SIGNATURE: &'static str = "InputLengthMismatch()";
4942            const SELECTOR: [u8; 4] = [170u8, 173u8, 19u8, 247u8];
4943            #[inline]
4944            fn new<'a>(
4945                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4946            ) -> Self {
4947                tuple.into()
4948            }
4949            #[inline]
4950            fn tokenize(&self) -> Self::Token<'_> {
4951                ()
4952            }
4953        }
4954    };
4955    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4956    /**Custom error with signature `InsufficientStakeForChurn()` and selector `0x4c44995d`.
4957```solidity
4958error InsufficientStakeForChurn();
4959```*/
4960    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4961    #[derive(Clone)]
4962    pub struct InsufficientStakeForChurn {}
4963    #[allow(
4964        non_camel_case_types,
4965        non_snake_case,
4966        clippy::pub_underscore_fields,
4967        clippy::style
4968    )]
4969    const _: () = {
4970        use alloy::sol_types as alloy_sol_types;
4971        #[doc(hidden)]
4972        type UnderlyingSolTuple<'a> = ();
4973        #[doc(hidden)]
4974        type UnderlyingRustTuple<'a> = ();
4975        #[cfg(test)]
4976        #[allow(dead_code, unreachable_patterns)]
4977        fn _type_assertion(
4978            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4979        ) {
4980            match _t {
4981                alloy_sol_types::private::AssertTypeEq::<
4982                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4983                >(_) => {}
4984            }
4985        }
4986        #[automatically_derived]
4987        #[doc(hidden)]
4988        impl ::core::convert::From<InsufficientStakeForChurn>
4989        for UnderlyingRustTuple<'_> {
4990            fn from(value: InsufficientStakeForChurn) -> Self {
4991                ()
4992            }
4993        }
4994        #[automatically_derived]
4995        #[doc(hidden)]
4996        impl ::core::convert::From<UnderlyingRustTuple<'_>>
4997        for InsufficientStakeForChurn {
4998            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4999                Self {}
5000            }
5001        }
5002        #[automatically_derived]
5003        impl alloy_sol_types::SolError for InsufficientStakeForChurn {
5004            type Parameters<'a> = UnderlyingSolTuple<'a>;
5005            type Token<'a> = <Self::Parameters<
5006                'a,
5007            > as alloy_sol_types::SolType>::Token<'a>;
5008            const SIGNATURE: &'static str = "InsufficientStakeForChurn()";
5009            const SELECTOR: [u8; 4] = [76u8, 68u8, 153u8, 93u8];
5010            #[inline]
5011            fn new<'a>(
5012                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5013            ) -> Self {
5014                tuple.into()
5015            }
5016            #[inline]
5017            fn tokenize(&self) -> Self::Token<'_> {
5018                ()
5019            }
5020        }
5021    };
5022    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5023    /**Custom error with signature `InvalidAVS()` and selector `0x66e565df`.
5024```solidity
5025error InvalidAVS();
5026```*/
5027    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5028    #[derive(Clone)]
5029    pub struct InvalidAVS {}
5030    #[allow(
5031        non_camel_case_types,
5032        non_snake_case,
5033        clippy::pub_underscore_fields,
5034        clippy::style
5035    )]
5036    const _: () = {
5037        use alloy::sol_types as alloy_sol_types;
5038        #[doc(hidden)]
5039        type UnderlyingSolTuple<'a> = ();
5040        #[doc(hidden)]
5041        type UnderlyingRustTuple<'a> = ();
5042        #[cfg(test)]
5043        #[allow(dead_code, unreachable_patterns)]
5044        fn _type_assertion(
5045            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5046        ) {
5047            match _t {
5048                alloy_sol_types::private::AssertTypeEq::<
5049                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5050                >(_) => {}
5051            }
5052        }
5053        #[automatically_derived]
5054        #[doc(hidden)]
5055        impl ::core::convert::From<InvalidAVS> for UnderlyingRustTuple<'_> {
5056            fn from(value: InvalidAVS) -> Self {
5057                ()
5058            }
5059        }
5060        #[automatically_derived]
5061        #[doc(hidden)]
5062        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidAVS {
5063            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5064                Self {}
5065            }
5066        }
5067        #[automatically_derived]
5068        impl alloy_sol_types::SolError for InvalidAVS {
5069            type Parameters<'a> = UnderlyingSolTuple<'a>;
5070            type Token<'a> = <Self::Parameters<
5071                'a,
5072            > as alloy_sol_types::SolType>::Token<'a>;
5073            const SIGNATURE: &'static str = "InvalidAVS()";
5074            const SELECTOR: [u8; 4] = [102u8, 229u8, 101u8, 223u8];
5075            #[inline]
5076            fn new<'a>(
5077                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5078            ) -> Self {
5079                tuple.into()
5080            }
5081            #[inline]
5082            fn tokenize(&self) -> Self::Token<'_> {
5083                ()
5084            }
5085        }
5086    };
5087    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5088    /**Custom error with signature `InvalidNewPausedStatus()` and selector `0xc61dca5d`.
5089```solidity
5090error InvalidNewPausedStatus();
5091```*/
5092    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5093    #[derive(Clone)]
5094    pub struct InvalidNewPausedStatus {}
5095    #[allow(
5096        non_camel_case_types,
5097        non_snake_case,
5098        clippy::pub_underscore_fields,
5099        clippy::style
5100    )]
5101    const _: () = {
5102        use alloy::sol_types as alloy_sol_types;
5103        #[doc(hidden)]
5104        type UnderlyingSolTuple<'a> = ();
5105        #[doc(hidden)]
5106        type UnderlyingRustTuple<'a> = ();
5107        #[cfg(test)]
5108        #[allow(dead_code, unreachable_patterns)]
5109        fn _type_assertion(
5110            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5111        ) {
5112            match _t {
5113                alloy_sol_types::private::AssertTypeEq::<
5114                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5115                >(_) => {}
5116            }
5117        }
5118        #[automatically_derived]
5119        #[doc(hidden)]
5120        impl ::core::convert::From<InvalidNewPausedStatus> for UnderlyingRustTuple<'_> {
5121            fn from(value: InvalidNewPausedStatus) -> Self {
5122                ()
5123            }
5124        }
5125        #[automatically_derived]
5126        #[doc(hidden)]
5127        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidNewPausedStatus {
5128            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5129                Self {}
5130            }
5131        }
5132        #[automatically_derived]
5133        impl alloy_sol_types::SolError for InvalidNewPausedStatus {
5134            type Parameters<'a> = UnderlyingSolTuple<'a>;
5135            type Token<'a> = <Self::Parameters<
5136                'a,
5137            > as alloy_sol_types::SolType>::Token<'a>;
5138            const SIGNATURE: &'static str = "InvalidNewPausedStatus()";
5139            const SELECTOR: [u8; 4] = [198u8, 29u8, 202u8, 93u8];
5140            #[inline]
5141            fn new<'a>(
5142                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5143            ) -> Self {
5144                tuple.into()
5145            }
5146            #[inline]
5147            fn tokenize(&self) -> Self::Token<'_> {
5148                ()
5149            }
5150        }
5151    };
5152    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5153    /**Custom error with signature `InvalidRegistrationType()` and selector `0x354bb8ab`.
5154```solidity
5155error InvalidRegistrationType();
5156```*/
5157    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5158    #[derive(Clone)]
5159    pub struct InvalidRegistrationType {}
5160    #[allow(
5161        non_camel_case_types,
5162        non_snake_case,
5163        clippy::pub_underscore_fields,
5164        clippy::style
5165    )]
5166    const _: () = {
5167        use alloy::sol_types as alloy_sol_types;
5168        #[doc(hidden)]
5169        type UnderlyingSolTuple<'a> = ();
5170        #[doc(hidden)]
5171        type UnderlyingRustTuple<'a> = ();
5172        #[cfg(test)]
5173        #[allow(dead_code, unreachable_patterns)]
5174        fn _type_assertion(
5175            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5176        ) {
5177            match _t {
5178                alloy_sol_types::private::AssertTypeEq::<
5179                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5180                >(_) => {}
5181            }
5182        }
5183        #[automatically_derived]
5184        #[doc(hidden)]
5185        impl ::core::convert::From<InvalidRegistrationType> for UnderlyingRustTuple<'_> {
5186            fn from(value: InvalidRegistrationType) -> Self {
5187                ()
5188            }
5189        }
5190        #[automatically_derived]
5191        #[doc(hidden)]
5192        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidRegistrationType {
5193            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5194                Self {}
5195            }
5196        }
5197        #[automatically_derived]
5198        impl alloy_sol_types::SolError for InvalidRegistrationType {
5199            type Parameters<'a> = UnderlyingSolTuple<'a>;
5200            type Token<'a> = <Self::Parameters<
5201                'a,
5202            > as alloy_sol_types::SolType>::Token<'a>;
5203            const SIGNATURE: &'static str = "InvalidRegistrationType()";
5204            const SELECTOR: [u8; 4] = [53u8, 75u8, 184u8, 171u8];
5205            #[inline]
5206            fn new<'a>(
5207                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5208            ) -> Self {
5209                tuple.into()
5210            }
5211            #[inline]
5212            fn tokenize(&self) -> Self::Token<'_> {
5213                ()
5214            }
5215        }
5216    };
5217    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5218    /**Custom error with signature `InvalidShortString()` and selector `0xb3512b0c`.
5219```solidity
5220error InvalidShortString();
5221```*/
5222    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5223    #[derive(Clone)]
5224    pub struct InvalidShortString {}
5225    #[allow(
5226        non_camel_case_types,
5227        non_snake_case,
5228        clippy::pub_underscore_fields,
5229        clippy::style
5230    )]
5231    const _: () = {
5232        use alloy::sol_types as alloy_sol_types;
5233        #[doc(hidden)]
5234        type UnderlyingSolTuple<'a> = ();
5235        #[doc(hidden)]
5236        type UnderlyingRustTuple<'a> = ();
5237        #[cfg(test)]
5238        #[allow(dead_code, unreachable_patterns)]
5239        fn _type_assertion(
5240            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5241        ) {
5242            match _t {
5243                alloy_sol_types::private::AssertTypeEq::<
5244                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5245                >(_) => {}
5246            }
5247        }
5248        #[automatically_derived]
5249        #[doc(hidden)]
5250        impl ::core::convert::From<InvalidShortString> for UnderlyingRustTuple<'_> {
5251            fn from(value: InvalidShortString) -> Self {
5252                ()
5253            }
5254        }
5255        #[automatically_derived]
5256        #[doc(hidden)]
5257        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidShortString {
5258            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5259                Self {}
5260            }
5261        }
5262        #[automatically_derived]
5263        impl alloy_sol_types::SolError for InvalidShortString {
5264            type Parameters<'a> = UnderlyingSolTuple<'a>;
5265            type Token<'a> = <Self::Parameters<
5266                'a,
5267            > as alloy_sol_types::SolType>::Token<'a>;
5268            const SIGNATURE: &'static str = "InvalidShortString()";
5269            const SELECTOR: [u8; 4] = [179u8, 81u8, 43u8, 12u8];
5270            #[inline]
5271            fn new<'a>(
5272                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5273            ) -> Self {
5274                tuple.into()
5275            }
5276            #[inline]
5277            fn tokenize(&self) -> Self::Token<'_> {
5278                ()
5279            }
5280        }
5281    };
5282    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5283    /**Custom error with signature `InvalidSignature()` and selector `0x8baa579f`.
5284```solidity
5285error InvalidSignature();
5286```*/
5287    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5288    #[derive(Clone)]
5289    pub struct InvalidSignature {}
5290    #[allow(
5291        non_camel_case_types,
5292        non_snake_case,
5293        clippy::pub_underscore_fields,
5294        clippy::style
5295    )]
5296    const _: () = {
5297        use alloy::sol_types as alloy_sol_types;
5298        #[doc(hidden)]
5299        type UnderlyingSolTuple<'a> = ();
5300        #[doc(hidden)]
5301        type UnderlyingRustTuple<'a> = ();
5302        #[cfg(test)]
5303        #[allow(dead_code, unreachable_patterns)]
5304        fn _type_assertion(
5305            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5306        ) {
5307            match _t {
5308                alloy_sol_types::private::AssertTypeEq::<
5309                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5310                >(_) => {}
5311            }
5312        }
5313        #[automatically_derived]
5314        #[doc(hidden)]
5315        impl ::core::convert::From<InvalidSignature> for UnderlyingRustTuple<'_> {
5316            fn from(value: InvalidSignature) -> Self {
5317                ()
5318            }
5319        }
5320        #[automatically_derived]
5321        #[doc(hidden)]
5322        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidSignature {
5323            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5324                Self {}
5325            }
5326        }
5327        #[automatically_derived]
5328        impl alloy_sol_types::SolError for InvalidSignature {
5329            type Parameters<'a> = UnderlyingSolTuple<'a>;
5330            type Token<'a> = <Self::Parameters<
5331                'a,
5332            > as alloy_sol_types::SolType>::Token<'a>;
5333            const SIGNATURE: &'static str = "InvalidSignature()";
5334            const SELECTOR: [u8; 4] = [139u8, 170u8, 87u8, 159u8];
5335            #[inline]
5336            fn new<'a>(
5337                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5338            ) -> Self {
5339                tuple.into()
5340            }
5341            #[inline]
5342            fn tokenize(&self) -> Self::Token<'_> {
5343                ()
5344            }
5345        }
5346    };
5347    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5348    /**Custom error with signature `LookAheadPeriodTooLong()` and selector `0x2f5106e4`.
5349```solidity
5350error LookAheadPeriodTooLong();
5351```*/
5352    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5353    #[derive(Clone)]
5354    pub struct LookAheadPeriodTooLong {}
5355    #[allow(
5356        non_camel_case_types,
5357        non_snake_case,
5358        clippy::pub_underscore_fields,
5359        clippy::style
5360    )]
5361    const _: () = {
5362        use alloy::sol_types as alloy_sol_types;
5363        #[doc(hidden)]
5364        type UnderlyingSolTuple<'a> = ();
5365        #[doc(hidden)]
5366        type UnderlyingRustTuple<'a> = ();
5367        #[cfg(test)]
5368        #[allow(dead_code, unreachable_patterns)]
5369        fn _type_assertion(
5370            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5371        ) {
5372            match _t {
5373                alloy_sol_types::private::AssertTypeEq::<
5374                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5375                >(_) => {}
5376            }
5377        }
5378        #[automatically_derived]
5379        #[doc(hidden)]
5380        impl ::core::convert::From<LookAheadPeriodTooLong> for UnderlyingRustTuple<'_> {
5381            fn from(value: LookAheadPeriodTooLong) -> Self {
5382                ()
5383            }
5384        }
5385        #[automatically_derived]
5386        #[doc(hidden)]
5387        impl ::core::convert::From<UnderlyingRustTuple<'_>> for LookAheadPeriodTooLong {
5388            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5389                Self {}
5390            }
5391        }
5392        #[automatically_derived]
5393        impl alloy_sol_types::SolError for LookAheadPeriodTooLong {
5394            type Parameters<'a> = UnderlyingSolTuple<'a>;
5395            type Token<'a> = <Self::Parameters<
5396                'a,
5397            > as alloy_sol_types::SolType>::Token<'a>;
5398            const SIGNATURE: &'static str = "LookAheadPeriodTooLong()";
5399            const SELECTOR: [u8; 4] = [47u8, 81u8, 6u8, 228u8];
5400            #[inline]
5401            fn new<'a>(
5402                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5403            ) -> Self {
5404                tuple.into()
5405            }
5406            #[inline]
5407            fn tokenize(&self) -> Self::Token<'_> {
5408                ()
5409            }
5410        }
5411    };
5412    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5413    /**Custom error with signature `MaxOperatorCountReached()` and selector `0xc6b9e767`.
5414```solidity
5415error MaxOperatorCountReached();
5416```*/
5417    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5418    #[derive(Clone)]
5419    pub struct MaxOperatorCountReached {}
5420    #[allow(
5421        non_camel_case_types,
5422        non_snake_case,
5423        clippy::pub_underscore_fields,
5424        clippy::style
5425    )]
5426    const _: () = {
5427        use alloy::sol_types as alloy_sol_types;
5428        #[doc(hidden)]
5429        type UnderlyingSolTuple<'a> = ();
5430        #[doc(hidden)]
5431        type UnderlyingRustTuple<'a> = ();
5432        #[cfg(test)]
5433        #[allow(dead_code, unreachable_patterns)]
5434        fn _type_assertion(
5435            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5436        ) {
5437            match _t {
5438                alloy_sol_types::private::AssertTypeEq::<
5439                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5440                >(_) => {}
5441            }
5442        }
5443        #[automatically_derived]
5444        #[doc(hidden)]
5445        impl ::core::convert::From<MaxOperatorCountReached> for UnderlyingRustTuple<'_> {
5446            fn from(value: MaxOperatorCountReached) -> Self {
5447                ()
5448            }
5449        }
5450        #[automatically_derived]
5451        #[doc(hidden)]
5452        impl ::core::convert::From<UnderlyingRustTuple<'_>> for MaxOperatorCountReached {
5453            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5454                Self {}
5455            }
5456        }
5457        #[automatically_derived]
5458        impl alloy_sol_types::SolError for MaxOperatorCountReached {
5459            type Parameters<'a> = UnderlyingSolTuple<'a>;
5460            type Token<'a> = <Self::Parameters<
5461                'a,
5462            > as alloy_sol_types::SolType>::Token<'a>;
5463            const SIGNATURE: &'static str = "MaxOperatorCountReached()";
5464            const SELECTOR: [u8; 4] = [198u8, 185u8, 231u8, 103u8];
5465            #[inline]
5466            fn new<'a>(
5467                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5468            ) -> Self {
5469                tuple.into()
5470            }
5471            #[inline]
5472            fn tokenize(&self) -> Self::Token<'_> {
5473                ()
5474            }
5475        }
5476    };
5477    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5478    /**Custom error with signature `MaxQuorumsReached()` and selector `0x3cb89c97`.
5479```solidity
5480error MaxQuorumsReached();
5481```*/
5482    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5483    #[derive(Clone)]
5484    pub struct MaxQuorumsReached {}
5485    #[allow(
5486        non_camel_case_types,
5487        non_snake_case,
5488        clippy::pub_underscore_fields,
5489        clippy::style
5490    )]
5491    const _: () = {
5492        use alloy::sol_types as alloy_sol_types;
5493        #[doc(hidden)]
5494        type UnderlyingSolTuple<'a> = ();
5495        #[doc(hidden)]
5496        type UnderlyingRustTuple<'a> = ();
5497        #[cfg(test)]
5498        #[allow(dead_code, unreachable_patterns)]
5499        fn _type_assertion(
5500            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5501        ) {
5502            match _t {
5503                alloy_sol_types::private::AssertTypeEq::<
5504                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5505                >(_) => {}
5506            }
5507        }
5508        #[automatically_derived]
5509        #[doc(hidden)]
5510        impl ::core::convert::From<MaxQuorumsReached> for UnderlyingRustTuple<'_> {
5511            fn from(value: MaxQuorumsReached) -> Self {
5512                ()
5513            }
5514        }
5515        #[automatically_derived]
5516        #[doc(hidden)]
5517        impl ::core::convert::From<UnderlyingRustTuple<'_>> for MaxQuorumsReached {
5518            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5519                Self {}
5520            }
5521        }
5522        #[automatically_derived]
5523        impl alloy_sol_types::SolError for MaxQuorumsReached {
5524            type Parameters<'a> = UnderlyingSolTuple<'a>;
5525            type Token<'a> = <Self::Parameters<
5526                'a,
5527            > as alloy_sol_types::SolType>::Token<'a>;
5528            const SIGNATURE: &'static str = "MaxQuorumsReached()";
5529            const SELECTOR: [u8; 4] = [60u8, 184u8, 156u8, 151u8];
5530            #[inline]
5531            fn new<'a>(
5532                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5533            ) -> Self {
5534                tuple.into()
5535            }
5536            #[inline]
5537            fn tokenize(&self) -> Self::Token<'_> {
5538                ()
5539            }
5540        }
5541    };
5542    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5543    /**Custom error with signature `NextBitmapUpdateIsBeforeBlockNumber()` and selector `0xbbba60cb`.
5544```solidity
5545error NextBitmapUpdateIsBeforeBlockNumber();
5546```*/
5547    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5548    #[derive(Clone)]
5549    pub struct NextBitmapUpdateIsBeforeBlockNumber {}
5550    #[allow(
5551        non_camel_case_types,
5552        non_snake_case,
5553        clippy::pub_underscore_fields,
5554        clippy::style
5555    )]
5556    const _: () = {
5557        use alloy::sol_types as alloy_sol_types;
5558        #[doc(hidden)]
5559        type UnderlyingSolTuple<'a> = ();
5560        #[doc(hidden)]
5561        type UnderlyingRustTuple<'a> = ();
5562        #[cfg(test)]
5563        #[allow(dead_code, unreachable_patterns)]
5564        fn _type_assertion(
5565            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5566        ) {
5567            match _t {
5568                alloy_sol_types::private::AssertTypeEq::<
5569                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5570                >(_) => {}
5571            }
5572        }
5573        #[automatically_derived]
5574        #[doc(hidden)]
5575        impl ::core::convert::From<NextBitmapUpdateIsBeforeBlockNumber>
5576        for UnderlyingRustTuple<'_> {
5577            fn from(value: NextBitmapUpdateIsBeforeBlockNumber) -> Self {
5578                ()
5579            }
5580        }
5581        #[automatically_derived]
5582        #[doc(hidden)]
5583        impl ::core::convert::From<UnderlyingRustTuple<'_>>
5584        for NextBitmapUpdateIsBeforeBlockNumber {
5585            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5586                Self {}
5587            }
5588        }
5589        #[automatically_derived]
5590        impl alloy_sol_types::SolError for NextBitmapUpdateIsBeforeBlockNumber {
5591            type Parameters<'a> = UnderlyingSolTuple<'a>;
5592            type Token<'a> = <Self::Parameters<
5593                'a,
5594            > as alloy_sol_types::SolType>::Token<'a>;
5595            const SIGNATURE: &'static str = "NextBitmapUpdateIsBeforeBlockNumber()";
5596            const SELECTOR: [u8; 4] = [187u8, 186u8, 96u8, 203u8];
5597            #[inline]
5598            fn new<'a>(
5599                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5600            ) -> Self {
5601                tuple.into()
5602            }
5603            #[inline]
5604            fn tokenize(&self) -> Self::Token<'_> {
5605                ()
5606            }
5607        }
5608    };
5609    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5610    /**Custom error with signature `NotRegistered()` and selector `0xaba47339`.
5611```solidity
5612error NotRegistered();
5613```*/
5614    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5615    #[derive(Clone)]
5616    pub struct NotRegistered {}
5617    #[allow(
5618        non_camel_case_types,
5619        non_snake_case,
5620        clippy::pub_underscore_fields,
5621        clippy::style
5622    )]
5623    const _: () = {
5624        use alloy::sol_types as alloy_sol_types;
5625        #[doc(hidden)]
5626        type UnderlyingSolTuple<'a> = ();
5627        #[doc(hidden)]
5628        type UnderlyingRustTuple<'a> = ();
5629        #[cfg(test)]
5630        #[allow(dead_code, unreachable_patterns)]
5631        fn _type_assertion(
5632            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5633        ) {
5634            match _t {
5635                alloy_sol_types::private::AssertTypeEq::<
5636                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5637                >(_) => {}
5638            }
5639        }
5640        #[automatically_derived]
5641        #[doc(hidden)]
5642        impl ::core::convert::From<NotRegistered> for UnderlyingRustTuple<'_> {
5643            fn from(value: NotRegistered) -> Self {
5644                ()
5645            }
5646        }
5647        #[automatically_derived]
5648        #[doc(hidden)]
5649        impl ::core::convert::From<UnderlyingRustTuple<'_>> for NotRegistered {
5650            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5651                Self {}
5652            }
5653        }
5654        #[automatically_derived]
5655        impl alloy_sol_types::SolError for NotRegistered {
5656            type Parameters<'a> = UnderlyingSolTuple<'a>;
5657            type Token<'a> = <Self::Parameters<
5658                'a,
5659            > as alloy_sol_types::SolType>::Token<'a>;
5660            const SIGNATURE: &'static str = "NotRegistered()";
5661            const SELECTOR: [u8; 4] = [171u8, 164u8, 115u8, 57u8];
5662            #[inline]
5663            fn new<'a>(
5664                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5665            ) -> Self {
5666                tuple.into()
5667            }
5668            #[inline]
5669            fn tokenize(&self) -> Self::Token<'_> {
5670                ()
5671            }
5672        }
5673    };
5674    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5675    /**Custom error with signature `NotRegisteredForQuorum()` and selector `0xd053aa21`.
5676```solidity
5677error NotRegisteredForQuorum();
5678```*/
5679    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5680    #[derive(Clone)]
5681    pub struct NotRegisteredForQuorum {}
5682    #[allow(
5683        non_camel_case_types,
5684        non_snake_case,
5685        clippy::pub_underscore_fields,
5686        clippy::style
5687    )]
5688    const _: () = {
5689        use alloy::sol_types as alloy_sol_types;
5690        #[doc(hidden)]
5691        type UnderlyingSolTuple<'a> = ();
5692        #[doc(hidden)]
5693        type UnderlyingRustTuple<'a> = ();
5694        #[cfg(test)]
5695        #[allow(dead_code, unreachable_patterns)]
5696        fn _type_assertion(
5697            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5698        ) {
5699            match _t {
5700                alloy_sol_types::private::AssertTypeEq::<
5701                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5702                >(_) => {}
5703            }
5704        }
5705        #[automatically_derived]
5706        #[doc(hidden)]
5707        impl ::core::convert::From<NotRegisteredForQuorum> for UnderlyingRustTuple<'_> {
5708            fn from(value: NotRegisteredForQuorum) -> Self {
5709                ()
5710            }
5711        }
5712        #[automatically_derived]
5713        #[doc(hidden)]
5714        impl ::core::convert::From<UnderlyingRustTuple<'_>> for NotRegisteredForQuorum {
5715            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5716                Self {}
5717            }
5718        }
5719        #[automatically_derived]
5720        impl alloy_sol_types::SolError for NotRegisteredForQuorum {
5721            type Parameters<'a> = UnderlyingSolTuple<'a>;
5722            type Token<'a> = <Self::Parameters<
5723                'a,
5724            > as alloy_sol_types::SolType>::Token<'a>;
5725            const SIGNATURE: &'static str = "NotRegisteredForQuorum()";
5726            const SELECTOR: [u8; 4] = [208u8, 83u8, 170u8, 33u8];
5727            #[inline]
5728            fn new<'a>(
5729                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5730            ) -> Self {
5731                tuple.into()
5732            }
5733            #[inline]
5734            fn tokenize(&self) -> Self::Token<'_> {
5735                ()
5736            }
5737        }
5738    };
5739    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5740    /**Custom error with signature `NotSorted()` and selector `0xba50f911`.
5741```solidity
5742error NotSorted();
5743```*/
5744    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5745    #[derive(Clone)]
5746    pub struct NotSorted {}
5747    #[allow(
5748        non_camel_case_types,
5749        non_snake_case,
5750        clippy::pub_underscore_fields,
5751        clippy::style
5752    )]
5753    const _: () = {
5754        use alloy::sol_types as alloy_sol_types;
5755        #[doc(hidden)]
5756        type UnderlyingSolTuple<'a> = ();
5757        #[doc(hidden)]
5758        type UnderlyingRustTuple<'a> = ();
5759        #[cfg(test)]
5760        #[allow(dead_code, unreachable_patterns)]
5761        fn _type_assertion(
5762            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5763        ) {
5764            match _t {
5765                alloy_sol_types::private::AssertTypeEq::<
5766                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5767                >(_) => {}
5768            }
5769        }
5770        #[automatically_derived]
5771        #[doc(hidden)]
5772        impl ::core::convert::From<NotSorted> for UnderlyingRustTuple<'_> {
5773            fn from(value: NotSorted) -> Self {
5774                ()
5775            }
5776        }
5777        #[automatically_derived]
5778        #[doc(hidden)]
5779        impl ::core::convert::From<UnderlyingRustTuple<'_>> for NotSorted {
5780            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5781                Self {}
5782            }
5783        }
5784        #[automatically_derived]
5785        impl alloy_sol_types::SolError for NotSorted {
5786            type Parameters<'a> = UnderlyingSolTuple<'a>;
5787            type Token<'a> = <Self::Parameters<
5788                'a,
5789            > as alloy_sol_types::SolType>::Token<'a>;
5790            const SIGNATURE: &'static str = "NotSorted()";
5791            const SELECTOR: [u8; 4] = [186u8, 80u8, 249u8, 17u8];
5792            #[inline]
5793            fn new<'a>(
5794                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5795            ) -> Self {
5796                tuple.into()
5797            }
5798            #[inline]
5799            fn tokenize(&self) -> Self::Token<'_> {
5800                ()
5801            }
5802        }
5803    };
5804    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5805    /**Custom error with signature `OnlyAllocationManager()` and selector `0x23d871a5`.
5806```solidity
5807error OnlyAllocationManager();
5808```*/
5809    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5810    #[derive(Clone)]
5811    pub struct OnlyAllocationManager {}
5812    #[allow(
5813        non_camel_case_types,
5814        non_snake_case,
5815        clippy::pub_underscore_fields,
5816        clippy::style
5817    )]
5818    const _: () = {
5819        use alloy::sol_types as alloy_sol_types;
5820        #[doc(hidden)]
5821        type UnderlyingSolTuple<'a> = ();
5822        #[doc(hidden)]
5823        type UnderlyingRustTuple<'a> = ();
5824        #[cfg(test)]
5825        #[allow(dead_code, unreachable_patterns)]
5826        fn _type_assertion(
5827            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5828        ) {
5829            match _t {
5830                alloy_sol_types::private::AssertTypeEq::<
5831                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5832                >(_) => {}
5833            }
5834        }
5835        #[automatically_derived]
5836        #[doc(hidden)]
5837        impl ::core::convert::From<OnlyAllocationManager> for UnderlyingRustTuple<'_> {
5838            fn from(value: OnlyAllocationManager) -> Self {
5839                ()
5840            }
5841        }
5842        #[automatically_derived]
5843        #[doc(hidden)]
5844        impl ::core::convert::From<UnderlyingRustTuple<'_>> for OnlyAllocationManager {
5845            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5846                Self {}
5847            }
5848        }
5849        #[automatically_derived]
5850        impl alloy_sol_types::SolError for OnlyAllocationManager {
5851            type Parameters<'a> = UnderlyingSolTuple<'a>;
5852            type Token<'a> = <Self::Parameters<
5853                'a,
5854            > as alloy_sol_types::SolType>::Token<'a>;
5855            const SIGNATURE: &'static str = "OnlyAllocationManager()";
5856            const SELECTOR: [u8; 4] = [35u8, 216u8, 113u8, 165u8];
5857            #[inline]
5858            fn new<'a>(
5859                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5860            ) -> Self {
5861                tuple.into()
5862            }
5863            #[inline]
5864            fn tokenize(&self) -> Self::Token<'_> {
5865                ()
5866            }
5867        }
5868    };
5869    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5870    /**Custom error with signature `OnlyEjector()` and selector `0xedb1562e`.
5871```solidity
5872error OnlyEjector();
5873```*/
5874    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5875    #[derive(Clone)]
5876    pub struct OnlyEjector {}
5877    #[allow(
5878        non_camel_case_types,
5879        non_snake_case,
5880        clippy::pub_underscore_fields,
5881        clippy::style
5882    )]
5883    const _: () = {
5884        use alloy::sol_types as alloy_sol_types;
5885        #[doc(hidden)]
5886        type UnderlyingSolTuple<'a> = ();
5887        #[doc(hidden)]
5888        type UnderlyingRustTuple<'a> = ();
5889        #[cfg(test)]
5890        #[allow(dead_code, unreachable_patterns)]
5891        fn _type_assertion(
5892            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5893        ) {
5894            match _t {
5895                alloy_sol_types::private::AssertTypeEq::<
5896                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5897                >(_) => {}
5898            }
5899        }
5900        #[automatically_derived]
5901        #[doc(hidden)]
5902        impl ::core::convert::From<OnlyEjector> for UnderlyingRustTuple<'_> {
5903            fn from(value: OnlyEjector) -> Self {
5904                ()
5905            }
5906        }
5907        #[automatically_derived]
5908        #[doc(hidden)]
5909        impl ::core::convert::From<UnderlyingRustTuple<'_>> for OnlyEjector {
5910            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5911                Self {}
5912            }
5913        }
5914        #[automatically_derived]
5915        impl alloy_sol_types::SolError for OnlyEjector {
5916            type Parameters<'a> = UnderlyingSolTuple<'a>;
5917            type Token<'a> = <Self::Parameters<
5918                'a,
5919            > as alloy_sol_types::SolType>::Token<'a>;
5920            const SIGNATURE: &'static str = "OnlyEjector()";
5921            const SELECTOR: [u8; 4] = [237u8, 177u8, 86u8, 46u8];
5922            #[inline]
5923            fn new<'a>(
5924                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5925            ) -> Self {
5926                tuple.into()
5927            }
5928            #[inline]
5929            fn tokenize(&self) -> Self::Token<'_> {
5930                ()
5931            }
5932        }
5933    };
5934    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5935    /**Custom error with signature `OnlyPauser()` and selector `0x75df51dc`.
5936```solidity
5937error OnlyPauser();
5938```*/
5939    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5940    #[derive(Clone)]
5941    pub struct OnlyPauser {}
5942    #[allow(
5943        non_camel_case_types,
5944        non_snake_case,
5945        clippy::pub_underscore_fields,
5946        clippy::style
5947    )]
5948    const _: () = {
5949        use alloy::sol_types as alloy_sol_types;
5950        #[doc(hidden)]
5951        type UnderlyingSolTuple<'a> = ();
5952        #[doc(hidden)]
5953        type UnderlyingRustTuple<'a> = ();
5954        #[cfg(test)]
5955        #[allow(dead_code, unreachable_patterns)]
5956        fn _type_assertion(
5957            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5958        ) {
5959            match _t {
5960                alloy_sol_types::private::AssertTypeEq::<
5961                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5962                >(_) => {}
5963            }
5964        }
5965        #[automatically_derived]
5966        #[doc(hidden)]
5967        impl ::core::convert::From<OnlyPauser> for UnderlyingRustTuple<'_> {
5968            fn from(value: OnlyPauser) -> Self {
5969                ()
5970            }
5971        }
5972        #[automatically_derived]
5973        #[doc(hidden)]
5974        impl ::core::convert::From<UnderlyingRustTuple<'_>> for OnlyPauser {
5975            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5976                Self {}
5977            }
5978        }
5979        #[automatically_derived]
5980        impl alloy_sol_types::SolError for OnlyPauser {
5981            type Parameters<'a> = UnderlyingSolTuple<'a>;
5982            type Token<'a> = <Self::Parameters<
5983                'a,
5984            > as alloy_sol_types::SolType>::Token<'a>;
5985            const SIGNATURE: &'static str = "OnlyPauser()";
5986            const SELECTOR: [u8; 4] = [117u8, 223u8, 81u8, 220u8];
5987            #[inline]
5988            fn new<'a>(
5989                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5990            ) -> Self {
5991                tuple.into()
5992            }
5993            #[inline]
5994            fn tokenize(&self) -> Self::Token<'_> {
5995                ()
5996            }
5997        }
5998    };
5999    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6000    /**Custom error with signature `OnlyUnpauser()` and selector `0x794821ff`.
6001```solidity
6002error OnlyUnpauser();
6003```*/
6004    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6005    #[derive(Clone)]
6006    pub struct OnlyUnpauser {}
6007    #[allow(
6008        non_camel_case_types,
6009        non_snake_case,
6010        clippy::pub_underscore_fields,
6011        clippy::style
6012    )]
6013    const _: () = {
6014        use alloy::sol_types as alloy_sol_types;
6015        #[doc(hidden)]
6016        type UnderlyingSolTuple<'a> = ();
6017        #[doc(hidden)]
6018        type UnderlyingRustTuple<'a> = ();
6019        #[cfg(test)]
6020        #[allow(dead_code, unreachable_patterns)]
6021        fn _type_assertion(
6022            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6023        ) {
6024            match _t {
6025                alloy_sol_types::private::AssertTypeEq::<
6026                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6027                >(_) => {}
6028            }
6029        }
6030        #[automatically_derived]
6031        #[doc(hidden)]
6032        impl ::core::convert::From<OnlyUnpauser> for UnderlyingRustTuple<'_> {
6033            fn from(value: OnlyUnpauser) -> Self {
6034                ()
6035            }
6036        }
6037        #[automatically_derived]
6038        #[doc(hidden)]
6039        impl ::core::convert::From<UnderlyingRustTuple<'_>> for OnlyUnpauser {
6040            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6041                Self {}
6042            }
6043        }
6044        #[automatically_derived]
6045        impl alloy_sol_types::SolError for OnlyUnpauser {
6046            type Parameters<'a> = UnderlyingSolTuple<'a>;
6047            type Token<'a> = <Self::Parameters<
6048                'a,
6049            > as alloy_sol_types::SolType>::Token<'a>;
6050            const SIGNATURE: &'static str = "OnlyUnpauser()";
6051            const SELECTOR: [u8; 4] = [121u8, 72u8, 33u8, 255u8];
6052            #[inline]
6053            fn new<'a>(
6054                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
6055            ) -> Self {
6056                tuple.into()
6057            }
6058            #[inline]
6059            fn tokenize(&self) -> Self::Token<'_> {
6060                ()
6061            }
6062        }
6063    };
6064    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6065    /**Custom error with signature `OperatorNotRegistered()` and selector `0x25ec6c1f`.
6066```solidity
6067error OperatorNotRegistered();
6068```*/
6069    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6070    #[derive(Clone)]
6071    pub struct OperatorNotRegistered {}
6072    #[allow(
6073        non_camel_case_types,
6074        non_snake_case,
6075        clippy::pub_underscore_fields,
6076        clippy::style
6077    )]
6078    const _: () = {
6079        use alloy::sol_types as alloy_sol_types;
6080        #[doc(hidden)]
6081        type UnderlyingSolTuple<'a> = ();
6082        #[doc(hidden)]
6083        type UnderlyingRustTuple<'a> = ();
6084        #[cfg(test)]
6085        #[allow(dead_code, unreachable_patterns)]
6086        fn _type_assertion(
6087            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6088        ) {
6089            match _t {
6090                alloy_sol_types::private::AssertTypeEq::<
6091                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6092                >(_) => {}
6093            }
6094        }
6095        #[automatically_derived]
6096        #[doc(hidden)]
6097        impl ::core::convert::From<OperatorNotRegistered> for UnderlyingRustTuple<'_> {
6098            fn from(value: OperatorNotRegistered) -> Self {
6099                ()
6100            }
6101        }
6102        #[automatically_derived]
6103        #[doc(hidden)]
6104        impl ::core::convert::From<UnderlyingRustTuple<'_>> for OperatorNotRegistered {
6105            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6106                Self {}
6107            }
6108        }
6109        #[automatically_derived]
6110        impl alloy_sol_types::SolError for OperatorNotRegistered {
6111            type Parameters<'a> = UnderlyingSolTuple<'a>;
6112            type Token<'a> = <Self::Parameters<
6113                'a,
6114            > as alloy_sol_types::SolType>::Token<'a>;
6115            const SIGNATURE: &'static str = "OperatorNotRegistered()";
6116            const SELECTOR: [u8; 4] = [37u8, 236u8, 108u8, 31u8];
6117            #[inline]
6118            fn new<'a>(
6119                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
6120            ) -> Self {
6121                tuple.into()
6122            }
6123            #[inline]
6124            fn tokenize(&self) -> Self::Token<'_> {
6125                ()
6126            }
6127        }
6128    };
6129    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6130    /**Custom error with signature `QuorumDoesNotExist()` and selector `0xe6219fea`.
6131```solidity
6132error QuorumDoesNotExist();
6133```*/
6134    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6135    #[derive(Clone)]
6136    pub struct QuorumDoesNotExist {}
6137    #[allow(
6138        non_camel_case_types,
6139        non_snake_case,
6140        clippy::pub_underscore_fields,
6141        clippy::style
6142    )]
6143    const _: () = {
6144        use alloy::sol_types as alloy_sol_types;
6145        #[doc(hidden)]
6146        type UnderlyingSolTuple<'a> = ();
6147        #[doc(hidden)]
6148        type UnderlyingRustTuple<'a> = ();
6149        #[cfg(test)]
6150        #[allow(dead_code, unreachable_patterns)]
6151        fn _type_assertion(
6152            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6153        ) {
6154            match _t {
6155                alloy_sol_types::private::AssertTypeEq::<
6156                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6157                >(_) => {}
6158            }
6159        }
6160        #[automatically_derived]
6161        #[doc(hidden)]
6162        impl ::core::convert::From<QuorumDoesNotExist> for UnderlyingRustTuple<'_> {
6163            fn from(value: QuorumDoesNotExist) -> Self {
6164                ()
6165            }
6166        }
6167        #[automatically_derived]
6168        #[doc(hidden)]
6169        impl ::core::convert::From<UnderlyingRustTuple<'_>> for QuorumDoesNotExist {
6170            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6171                Self {}
6172            }
6173        }
6174        #[automatically_derived]
6175        impl alloy_sol_types::SolError for QuorumDoesNotExist {
6176            type Parameters<'a> = UnderlyingSolTuple<'a>;
6177            type Token<'a> = <Self::Parameters<
6178                'a,
6179            > as alloy_sol_types::SolType>::Token<'a>;
6180            const SIGNATURE: &'static str = "QuorumDoesNotExist()";
6181            const SELECTOR: [u8; 4] = [230u8, 33u8, 159u8, 234u8];
6182            #[inline]
6183            fn new<'a>(
6184                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
6185            ) -> Self {
6186                tuple.into()
6187            }
6188            #[inline]
6189            fn tokenize(&self) -> Self::Token<'_> {
6190                ()
6191            }
6192        }
6193    };
6194    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6195    /**Custom error with signature `QuorumOperatorCountMismatch()` and selector `0x8e5aeee7`.
6196```solidity
6197error QuorumOperatorCountMismatch();
6198```*/
6199    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6200    #[derive(Clone)]
6201    pub struct QuorumOperatorCountMismatch {}
6202    #[allow(
6203        non_camel_case_types,
6204        non_snake_case,
6205        clippy::pub_underscore_fields,
6206        clippy::style
6207    )]
6208    const _: () = {
6209        use alloy::sol_types as alloy_sol_types;
6210        #[doc(hidden)]
6211        type UnderlyingSolTuple<'a> = ();
6212        #[doc(hidden)]
6213        type UnderlyingRustTuple<'a> = ();
6214        #[cfg(test)]
6215        #[allow(dead_code, unreachable_patterns)]
6216        fn _type_assertion(
6217            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6218        ) {
6219            match _t {
6220                alloy_sol_types::private::AssertTypeEq::<
6221                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6222                >(_) => {}
6223            }
6224        }
6225        #[automatically_derived]
6226        #[doc(hidden)]
6227        impl ::core::convert::From<QuorumOperatorCountMismatch>
6228        for UnderlyingRustTuple<'_> {
6229            fn from(value: QuorumOperatorCountMismatch) -> Self {
6230                ()
6231            }
6232        }
6233        #[automatically_derived]
6234        #[doc(hidden)]
6235        impl ::core::convert::From<UnderlyingRustTuple<'_>>
6236        for QuorumOperatorCountMismatch {
6237            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6238                Self {}
6239            }
6240        }
6241        #[automatically_derived]
6242        impl alloy_sol_types::SolError for QuorumOperatorCountMismatch {
6243            type Parameters<'a> = UnderlyingSolTuple<'a>;
6244            type Token<'a> = <Self::Parameters<
6245                'a,
6246            > as alloy_sol_types::SolType>::Token<'a>;
6247            const SIGNATURE: &'static str = "QuorumOperatorCountMismatch()";
6248            const SELECTOR: [u8; 4] = [142u8, 90u8, 238u8, 231u8];
6249            #[inline]
6250            fn new<'a>(
6251                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
6252            ) -> Self {
6253                tuple.into()
6254            }
6255            #[inline]
6256            fn tokenize(&self) -> Self::Token<'_> {
6257                ()
6258            }
6259        }
6260    };
6261    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6262    /**Custom error with signature `SignatureExpired()` and selector `0x0819bdcd`.
6263```solidity
6264error SignatureExpired();
6265```*/
6266    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6267    #[derive(Clone)]
6268    pub struct SignatureExpired {}
6269    #[allow(
6270        non_camel_case_types,
6271        non_snake_case,
6272        clippy::pub_underscore_fields,
6273        clippy::style
6274    )]
6275    const _: () = {
6276        use alloy::sol_types as alloy_sol_types;
6277        #[doc(hidden)]
6278        type UnderlyingSolTuple<'a> = ();
6279        #[doc(hidden)]
6280        type UnderlyingRustTuple<'a> = ();
6281        #[cfg(test)]
6282        #[allow(dead_code, unreachable_patterns)]
6283        fn _type_assertion(
6284            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6285        ) {
6286            match _t {
6287                alloy_sol_types::private::AssertTypeEq::<
6288                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6289                >(_) => {}
6290            }
6291        }
6292        #[automatically_derived]
6293        #[doc(hidden)]
6294        impl ::core::convert::From<SignatureExpired> for UnderlyingRustTuple<'_> {
6295            fn from(value: SignatureExpired) -> Self {
6296                ()
6297            }
6298        }
6299        #[automatically_derived]
6300        #[doc(hidden)]
6301        impl ::core::convert::From<UnderlyingRustTuple<'_>> for SignatureExpired {
6302            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6303                Self {}
6304            }
6305        }
6306        #[automatically_derived]
6307        impl alloy_sol_types::SolError for SignatureExpired {
6308            type Parameters<'a> = UnderlyingSolTuple<'a>;
6309            type Token<'a> = <Self::Parameters<
6310                'a,
6311            > as alloy_sol_types::SolType>::Token<'a>;
6312            const SIGNATURE: &'static str = "SignatureExpired()";
6313            const SELECTOR: [u8; 4] = [8u8, 25u8, 189u8, 205u8];
6314            #[inline]
6315            fn new<'a>(
6316                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
6317            ) -> Self {
6318                tuple.into()
6319            }
6320            #[inline]
6321            fn tokenize(&self) -> Self::Token<'_> {
6322                ()
6323            }
6324        }
6325    };
6326    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6327    /**Custom error with signature `StringTooLong(string)` and selector `0x305a27a9`.
6328```solidity
6329error StringTooLong(string str);
6330```*/
6331    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6332    #[derive(Clone)]
6333    pub struct StringTooLong {
6334        #[allow(missing_docs)]
6335        pub str: alloy::sol_types::private::String,
6336    }
6337    #[allow(
6338        non_camel_case_types,
6339        non_snake_case,
6340        clippy::pub_underscore_fields,
6341        clippy::style
6342    )]
6343    const _: () = {
6344        use alloy::sol_types as alloy_sol_types;
6345        #[doc(hidden)]
6346        type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,);
6347        #[doc(hidden)]
6348        type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,);
6349        #[cfg(test)]
6350        #[allow(dead_code, unreachable_patterns)]
6351        fn _type_assertion(
6352            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6353        ) {
6354            match _t {
6355                alloy_sol_types::private::AssertTypeEq::<
6356                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6357                >(_) => {}
6358            }
6359        }
6360        #[automatically_derived]
6361        #[doc(hidden)]
6362        impl ::core::convert::From<StringTooLong> for UnderlyingRustTuple<'_> {
6363            fn from(value: StringTooLong) -> Self {
6364                (value.str,)
6365            }
6366        }
6367        #[automatically_derived]
6368        #[doc(hidden)]
6369        impl ::core::convert::From<UnderlyingRustTuple<'_>> for StringTooLong {
6370            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6371                Self { str: tuple.0 }
6372            }
6373        }
6374        #[automatically_derived]
6375        impl alloy_sol_types::SolError for StringTooLong {
6376            type Parameters<'a> = UnderlyingSolTuple<'a>;
6377            type Token<'a> = <Self::Parameters<
6378                'a,
6379            > as alloy_sol_types::SolType>::Token<'a>;
6380            const SIGNATURE: &'static str = "StringTooLong(string)";
6381            const SELECTOR: [u8; 4] = [48u8, 90u8, 39u8, 169u8];
6382            #[inline]
6383            fn new<'a>(
6384                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
6385            ) -> Self {
6386                tuple.into()
6387            }
6388            #[inline]
6389            fn tokenize(&self) -> Self::Token<'_> {
6390                (
6391                    <alloy::sol_types::sol_data::String as alloy_sol_types::SolType>::tokenize(
6392                        &self.str,
6393                    ),
6394                )
6395            }
6396        }
6397    };
6398    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6399    /**Event with signature `AVSUpdated(address,address)` and selector `0x9770f3cadfdcbb6f93af935e86047111590c3768271d237e4a2bc0b874bed693`.
6400```solidity
6401event AVSUpdated(address prevAVS, address newAVS);
6402```*/
6403    #[allow(
6404        non_camel_case_types,
6405        non_snake_case,
6406        clippy::pub_underscore_fields,
6407        clippy::style
6408    )]
6409    #[derive(Clone)]
6410    pub struct AVSUpdated {
6411        #[allow(missing_docs)]
6412        pub prevAVS: alloy::sol_types::private::Address,
6413        #[allow(missing_docs)]
6414        pub newAVS: alloy::sol_types::private::Address,
6415    }
6416    #[allow(
6417        non_camel_case_types,
6418        non_snake_case,
6419        clippy::pub_underscore_fields,
6420        clippy::style
6421    )]
6422    const _: () = {
6423        use alloy::sol_types as alloy_sol_types;
6424        #[automatically_derived]
6425        impl alloy_sol_types::SolEvent for AVSUpdated {
6426            type DataTuple<'a> = (
6427                alloy::sol_types::sol_data::Address,
6428                alloy::sol_types::sol_data::Address,
6429            );
6430            type DataToken<'a> = <Self::DataTuple<
6431                'a,
6432            > as alloy_sol_types::SolType>::Token<'a>;
6433            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
6434            const SIGNATURE: &'static str = "AVSUpdated(address,address)";
6435            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
6436                151u8, 112u8, 243u8, 202u8, 223u8, 220u8, 187u8, 111u8, 147u8, 175u8,
6437                147u8, 94u8, 134u8, 4u8, 113u8, 17u8, 89u8, 12u8, 55u8, 104u8, 39u8,
6438                29u8, 35u8, 126u8, 74u8, 43u8, 192u8, 184u8, 116u8, 190u8, 214u8, 147u8,
6439            ]);
6440            const ANONYMOUS: bool = false;
6441            #[allow(unused_variables)]
6442            #[inline]
6443            fn new(
6444                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
6445                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
6446            ) -> Self {
6447                Self {
6448                    prevAVS: data.0,
6449                    newAVS: data.1,
6450                }
6451            }
6452            #[inline]
6453            fn check_signature(
6454                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
6455            ) -> alloy_sol_types::Result<()> {
6456                if topics.0 != Self::SIGNATURE_HASH {
6457                    return Err(
6458                        alloy_sol_types::Error::invalid_event_signature_hash(
6459                            Self::SIGNATURE,
6460                            topics.0,
6461                            Self::SIGNATURE_HASH,
6462                        ),
6463                    );
6464                }
6465                Ok(())
6466            }
6467            #[inline]
6468            fn tokenize_body(&self) -> Self::DataToken<'_> {
6469                (
6470                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6471                        &self.prevAVS,
6472                    ),
6473                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6474                        &self.newAVS,
6475                    ),
6476                )
6477            }
6478            #[inline]
6479            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
6480                (Self::SIGNATURE_HASH.into(),)
6481            }
6482            #[inline]
6483            fn encode_topics_raw(
6484                &self,
6485                out: &mut [alloy_sol_types::abi::token::WordToken],
6486            ) -> alloy_sol_types::Result<()> {
6487                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
6488                    return Err(alloy_sol_types::Error::Overrun);
6489                }
6490                out[0usize] = alloy_sol_types::abi::token::WordToken(
6491                    Self::SIGNATURE_HASH,
6492                );
6493                Ok(())
6494            }
6495        }
6496        #[automatically_derived]
6497        impl alloy_sol_types::private::IntoLogData for AVSUpdated {
6498            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
6499                From::from(self)
6500            }
6501            fn into_log_data(self) -> alloy_sol_types::private::LogData {
6502                From::from(&self)
6503            }
6504        }
6505        #[automatically_derived]
6506        impl From<&AVSUpdated> for alloy_sol_types::private::LogData {
6507            #[inline]
6508            fn from(this: &AVSUpdated) -> alloy_sol_types::private::LogData {
6509                alloy_sol_types::SolEvent::encode_log_data(this)
6510            }
6511        }
6512    };
6513    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6514    /**Event with signature `ChurnApproverUpdated(address,address)` and selector `0x315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c`.
6515```solidity
6516event ChurnApproverUpdated(address prevChurnApprover, address newChurnApprover);
6517```*/
6518    #[allow(
6519        non_camel_case_types,
6520        non_snake_case,
6521        clippy::pub_underscore_fields,
6522        clippy::style
6523    )]
6524    #[derive(Clone)]
6525    pub struct ChurnApproverUpdated {
6526        #[allow(missing_docs)]
6527        pub prevChurnApprover: alloy::sol_types::private::Address,
6528        #[allow(missing_docs)]
6529        pub newChurnApprover: alloy::sol_types::private::Address,
6530    }
6531    #[allow(
6532        non_camel_case_types,
6533        non_snake_case,
6534        clippy::pub_underscore_fields,
6535        clippy::style
6536    )]
6537    const _: () = {
6538        use alloy::sol_types as alloy_sol_types;
6539        #[automatically_derived]
6540        impl alloy_sol_types::SolEvent for ChurnApproverUpdated {
6541            type DataTuple<'a> = (
6542                alloy::sol_types::sol_data::Address,
6543                alloy::sol_types::sol_data::Address,
6544            );
6545            type DataToken<'a> = <Self::DataTuple<
6546                'a,
6547            > as alloy_sol_types::SolType>::Token<'a>;
6548            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
6549            const SIGNATURE: &'static str = "ChurnApproverUpdated(address,address)";
6550            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
6551                49u8, 84u8, 87u8, 216u8, 168u8, 254u8, 96u8, 240u8, 74u8, 241u8, 124u8,
6552                22u8, 226u8, 245u8, 165u8, 225u8, 219u8, 97u8, 43u8, 49u8, 100u8, 142u8,
6553                88u8, 3u8, 3u8, 96u8, 117u8, 158u8, 248u8, 243u8, 82u8, 140u8,
6554            ]);
6555            const ANONYMOUS: bool = false;
6556            #[allow(unused_variables)]
6557            #[inline]
6558            fn new(
6559                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
6560                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
6561            ) -> Self {
6562                Self {
6563                    prevChurnApprover: data.0,
6564                    newChurnApprover: data.1,
6565                }
6566            }
6567            #[inline]
6568            fn check_signature(
6569                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
6570            ) -> alloy_sol_types::Result<()> {
6571                if topics.0 != Self::SIGNATURE_HASH {
6572                    return Err(
6573                        alloy_sol_types::Error::invalid_event_signature_hash(
6574                            Self::SIGNATURE,
6575                            topics.0,
6576                            Self::SIGNATURE_HASH,
6577                        ),
6578                    );
6579                }
6580                Ok(())
6581            }
6582            #[inline]
6583            fn tokenize_body(&self) -> Self::DataToken<'_> {
6584                (
6585                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6586                        &self.prevChurnApprover,
6587                    ),
6588                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6589                        &self.newChurnApprover,
6590                    ),
6591                )
6592            }
6593            #[inline]
6594            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
6595                (Self::SIGNATURE_HASH.into(),)
6596            }
6597            #[inline]
6598            fn encode_topics_raw(
6599                &self,
6600                out: &mut [alloy_sol_types::abi::token::WordToken],
6601            ) -> alloy_sol_types::Result<()> {
6602                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
6603                    return Err(alloy_sol_types::Error::Overrun);
6604                }
6605                out[0usize] = alloy_sol_types::abi::token::WordToken(
6606                    Self::SIGNATURE_HASH,
6607                );
6608                Ok(())
6609            }
6610        }
6611        #[automatically_derived]
6612        impl alloy_sol_types::private::IntoLogData for ChurnApproverUpdated {
6613            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
6614                From::from(self)
6615            }
6616            fn into_log_data(self) -> alloy_sol_types::private::LogData {
6617                From::from(&self)
6618            }
6619        }
6620        #[automatically_derived]
6621        impl From<&ChurnApproverUpdated> for alloy_sol_types::private::LogData {
6622            #[inline]
6623            fn from(this: &ChurnApproverUpdated) -> alloy_sol_types::private::LogData {
6624                alloy_sol_types::SolEvent::encode_log_data(this)
6625            }
6626        }
6627    };
6628    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6629    /**Event with signature `EIP712DomainChanged()` and selector `0x0a6387c9ea3628b88a633bb4f3b151770f70085117a15f9bf3787cda53f13d31`.
6630```solidity
6631event EIP712DomainChanged();
6632```*/
6633    #[allow(
6634        non_camel_case_types,
6635        non_snake_case,
6636        clippy::pub_underscore_fields,
6637        clippy::style
6638    )]
6639    #[derive(Clone)]
6640    pub struct EIP712DomainChanged {}
6641    #[allow(
6642        non_camel_case_types,
6643        non_snake_case,
6644        clippy::pub_underscore_fields,
6645        clippy::style
6646    )]
6647    const _: () = {
6648        use alloy::sol_types as alloy_sol_types;
6649        #[automatically_derived]
6650        impl alloy_sol_types::SolEvent for EIP712DomainChanged {
6651            type DataTuple<'a> = ();
6652            type DataToken<'a> = <Self::DataTuple<
6653                'a,
6654            > as alloy_sol_types::SolType>::Token<'a>;
6655            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
6656            const SIGNATURE: &'static str = "EIP712DomainChanged()";
6657            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
6658                10u8, 99u8, 135u8, 201u8, 234u8, 54u8, 40u8, 184u8, 138u8, 99u8, 59u8,
6659                180u8, 243u8, 177u8, 81u8, 119u8, 15u8, 112u8, 8u8, 81u8, 23u8, 161u8,
6660                95u8, 155u8, 243u8, 120u8, 124u8, 218u8, 83u8, 241u8, 61u8, 49u8,
6661            ]);
6662            const ANONYMOUS: bool = false;
6663            #[allow(unused_variables)]
6664            #[inline]
6665            fn new(
6666                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
6667                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
6668            ) -> Self {
6669                Self {}
6670            }
6671            #[inline]
6672            fn check_signature(
6673                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
6674            ) -> alloy_sol_types::Result<()> {
6675                if topics.0 != Self::SIGNATURE_HASH {
6676                    return Err(
6677                        alloy_sol_types::Error::invalid_event_signature_hash(
6678                            Self::SIGNATURE,
6679                            topics.0,
6680                            Self::SIGNATURE_HASH,
6681                        ),
6682                    );
6683                }
6684                Ok(())
6685            }
6686            #[inline]
6687            fn tokenize_body(&self) -> Self::DataToken<'_> {
6688                ()
6689            }
6690            #[inline]
6691            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
6692                (Self::SIGNATURE_HASH.into(),)
6693            }
6694            #[inline]
6695            fn encode_topics_raw(
6696                &self,
6697                out: &mut [alloy_sol_types::abi::token::WordToken],
6698            ) -> alloy_sol_types::Result<()> {
6699                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
6700                    return Err(alloy_sol_types::Error::Overrun);
6701                }
6702                out[0usize] = alloy_sol_types::abi::token::WordToken(
6703                    Self::SIGNATURE_HASH,
6704                );
6705                Ok(())
6706            }
6707        }
6708        #[automatically_derived]
6709        impl alloy_sol_types::private::IntoLogData for EIP712DomainChanged {
6710            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
6711                From::from(self)
6712            }
6713            fn into_log_data(self) -> alloy_sol_types::private::LogData {
6714                From::from(&self)
6715            }
6716        }
6717        #[automatically_derived]
6718        impl From<&EIP712DomainChanged> for alloy_sol_types::private::LogData {
6719            #[inline]
6720            fn from(this: &EIP712DomainChanged) -> alloy_sol_types::private::LogData {
6721                alloy_sol_types::SolEvent::encode_log_data(this)
6722            }
6723        }
6724    };
6725    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6726    /**Event with signature `EjectionCooldownUpdated(uint256,uint256)` and selector `0xa77a91bea7b6d95a8eb5a54878a1d9e3c875e26c86a9b70e3420c5c5db193b62`.
6727```solidity
6728event EjectionCooldownUpdated(uint256 prevEjectionCooldown, uint256 newEjectionCooldown);
6729```*/
6730    #[allow(
6731        non_camel_case_types,
6732        non_snake_case,
6733        clippy::pub_underscore_fields,
6734        clippy::style
6735    )]
6736    #[derive(Clone)]
6737    pub struct EjectionCooldownUpdated {
6738        #[allow(missing_docs)]
6739        pub prevEjectionCooldown: alloy::sol_types::private::primitives::aliases::U256,
6740        #[allow(missing_docs)]
6741        pub newEjectionCooldown: alloy::sol_types::private::primitives::aliases::U256,
6742    }
6743    #[allow(
6744        non_camel_case_types,
6745        non_snake_case,
6746        clippy::pub_underscore_fields,
6747        clippy::style
6748    )]
6749    const _: () = {
6750        use alloy::sol_types as alloy_sol_types;
6751        #[automatically_derived]
6752        impl alloy_sol_types::SolEvent for EjectionCooldownUpdated {
6753            type DataTuple<'a> = (
6754                alloy::sol_types::sol_data::Uint<256>,
6755                alloy::sol_types::sol_data::Uint<256>,
6756            );
6757            type DataToken<'a> = <Self::DataTuple<
6758                'a,
6759            > as alloy_sol_types::SolType>::Token<'a>;
6760            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
6761            const SIGNATURE: &'static str = "EjectionCooldownUpdated(uint256,uint256)";
6762            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
6763                167u8, 122u8, 145u8, 190u8, 167u8, 182u8, 217u8, 90u8, 142u8, 181u8,
6764                165u8, 72u8, 120u8, 161u8, 217u8, 227u8, 200u8, 117u8, 226u8, 108u8,
6765                134u8, 169u8, 183u8, 14u8, 52u8, 32u8, 197u8, 197u8, 219u8, 25u8, 59u8,
6766                98u8,
6767            ]);
6768            const ANONYMOUS: bool = false;
6769            #[allow(unused_variables)]
6770            #[inline]
6771            fn new(
6772                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
6773                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
6774            ) -> Self {
6775                Self {
6776                    prevEjectionCooldown: data.0,
6777                    newEjectionCooldown: data.1,
6778                }
6779            }
6780            #[inline]
6781            fn check_signature(
6782                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
6783            ) -> alloy_sol_types::Result<()> {
6784                if topics.0 != Self::SIGNATURE_HASH {
6785                    return Err(
6786                        alloy_sol_types::Error::invalid_event_signature_hash(
6787                            Self::SIGNATURE,
6788                            topics.0,
6789                            Self::SIGNATURE_HASH,
6790                        ),
6791                    );
6792                }
6793                Ok(())
6794            }
6795            #[inline]
6796            fn tokenize_body(&self) -> Self::DataToken<'_> {
6797                (
6798                    <alloy::sol_types::sol_data::Uint<
6799                        256,
6800                    > as alloy_sol_types::SolType>::tokenize(&self.prevEjectionCooldown),
6801                    <alloy::sol_types::sol_data::Uint<
6802                        256,
6803                    > as alloy_sol_types::SolType>::tokenize(&self.newEjectionCooldown),
6804                )
6805            }
6806            #[inline]
6807            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
6808                (Self::SIGNATURE_HASH.into(),)
6809            }
6810            #[inline]
6811            fn encode_topics_raw(
6812                &self,
6813                out: &mut [alloy_sol_types::abi::token::WordToken],
6814            ) -> alloy_sol_types::Result<()> {
6815                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
6816                    return Err(alloy_sol_types::Error::Overrun);
6817                }
6818                out[0usize] = alloy_sol_types::abi::token::WordToken(
6819                    Self::SIGNATURE_HASH,
6820                );
6821                Ok(())
6822            }
6823        }
6824        #[automatically_derived]
6825        impl alloy_sol_types::private::IntoLogData for EjectionCooldownUpdated {
6826            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
6827                From::from(self)
6828            }
6829            fn into_log_data(self) -> alloy_sol_types::private::LogData {
6830                From::from(&self)
6831            }
6832        }
6833        #[automatically_derived]
6834        impl From<&EjectionCooldownUpdated> for alloy_sol_types::private::LogData {
6835            #[inline]
6836            fn from(
6837                this: &EjectionCooldownUpdated,
6838            ) -> alloy_sol_types::private::LogData {
6839                alloy_sol_types::SolEvent::encode_log_data(this)
6840            }
6841        }
6842    };
6843    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6844    /**Event with signature `EjectorUpdated(address,address)` and selector `0x8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9`.
6845```solidity
6846event EjectorUpdated(address prevEjector, address newEjector);
6847```*/
6848    #[allow(
6849        non_camel_case_types,
6850        non_snake_case,
6851        clippy::pub_underscore_fields,
6852        clippy::style
6853    )]
6854    #[derive(Clone)]
6855    pub struct EjectorUpdated {
6856        #[allow(missing_docs)]
6857        pub prevEjector: alloy::sol_types::private::Address,
6858        #[allow(missing_docs)]
6859        pub newEjector: alloy::sol_types::private::Address,
6860    }
6861    #[allow(
6862        non_camel_case_types,
6863        non_snake_case,
6864        clippy::pub_underscore_fields,
6865        clippy::style
6866    )]
6867    const _: () = {
6868        use alloy::sol_types as alloy_sol_types;
6869        #[automatically_derived]
6870        impl alloy_sol_types::SolEvent for EjectorUpdated {
6871            type DataTuple<'a> = (
6872                alloy::sol_types::sol_data::Address,
6873                alloy::sol_types::sol_data::Address,
6874            );
6875            type DataToken<'a> = <Self::DataTuple<
6876                'a,
6877            > as alloy_sol_types::SolType>::Token<'a>;
6878            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
6879            const SIGNATURE: &'static str = "EjectorUpdated(address,address)";
6880            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
6881                143u8, 48u8, 171u8, 9u8, 244u8, 58u8, 108u8, 21u8, 125u8, 127u8, 206u8,
6882                126u8, 10u8, 19u8, 192u8, 3u8, 4u8, 44u8, 28u8, 149u8, 232u8, 167u8,
6883                46u8, 122u8, 20u8, 106u8, 33u8, 192u8, 202u8, 162u8, 77u8, 201u8,
6884            ]);
6885            const ANONYMOUS: bool = false;
6886            #[allow(unused_variables)]
6887            #[inline]
6888            fn new(
6889                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
6890                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
6891            ) -> Self {
6892                Self {
6893                    prevEjector: data.0,
6894                    newEjector: data.1,
6895                }
6896            }
6897            #[inline]
6898            fn check_signature(
6899                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
6900            ) -> alloy_sol_types::Result<()> {
6901                if topics.0 != Self::SIGNATURE_HASH {
6902                    return Err(
6903                        alloy_sol_types::Error::invalid_event_signature_hash(
6904                            Self::SIGNATURE,
6905                            topics.0,
6906                            Self::SIGNATURE_HASH,
6907                        ),
6908                    );
6909                }
6910                Ok(())
6911            }
6912            #[inline]
6913            fn tokenize_body(&self) -> Self::DataToken<'_> {
6914                (
6915                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6916                        &self.prevEjector,
6917                    ),
6918                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6919                        &self.newEjector,
6920                    ),
6921                )
6922            }
6923            #[inline]
6924            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
6925                (Self::SIGNATURE_HASH.into(),)
6926            }
6927            #[inline]
6928            fn encode_topics_raw(
6929                &self,
6930                out: &mut [alloy_sol_types::abi::token::WordToken],
6931            ) -> alloy_sol_types::Result<()> {
6932                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
6933                    return Err(alloy_sol_types::Error::Overrun);
6934                }
6935                out[0usize] = alloy_sol_types::abi::token::WordToken(
6936                    Self::SIGNATURE_HASH,
6937                );
6938                Ok(())
6939            }
6940        }
6941        #[automatically_derived]
6942        impl alloy_sol_types::private::IntoLogData for EjectorUpdated {
6943            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
6944                From::from(self)
6945            }
6946            fn into_log_data(self) -> alloy_sol_types::private::LogData {
6947                From::from(&self)
6948            }
6949        }
6950        #[automatically_derived]
6951        impl From<&EjectorUpdated> for alloy_sol_types::private::LogData {
6952            #[inline]
6953            fn from(this: &EjectorUpdated) -> alloy_sol_types::private::LogData {
6954                alloy_sol_types::SolEvent::encode_log_data(this)
6955            }
6956        }
6957    };
6958    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6959    /**Event with signature `Initialized(uint8)` and selector `0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498`.
6960```solidity
6961event Initialized(uint8 version);
6962```*/
6963    #[allow(
6964        non_camel_case_types,
6965        non_snake_case,
6966        clippy::pub_underscore_fields,
6967        clippy::style
6968    )]
6969    #[derive(Clone)]
6970    pub struct Initialized {
6971        #[allow(missing_docs)]
6972        pub version: u8,
6973    }
6974    #[allow(
6975        non_camel_case_types,
6976        non_snake_case,
6977        clippy::pub_underscore_fields,
6978        clippy::style
6979    )]
6980    const _: () = {
6981        use alloy::sol_types as alloy_sol_types;
6982        #[automatically_derived]
6983        impl alloy_sol_types::SolEvent for Initialized {
6984            type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,);
6985            type DataToken<'a> = <Self::DataTuple<
6986                'a,
6987            > as alloy_sol_types::SolType>::Token<'a>;
6988            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
6989            const SIGNATURE: &'static str = "Initialized(uint8)";
6990            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
6991                127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8,
6992                19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8,
6993                146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8,
6994            ]);
6995            const ANONYMOUS: bool = false;
6996            #[allow(unused_variables)]
6997            #[inline]
6998            fn new(
6999                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
7000                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
7001            ) -> Self {
7002                Self { version: data.0 }
7003            }
7004            #[inline]
7005            fn check_signature(
7006                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
7007            ) -> alloy_sol_types::Result<()> {
7008                if topics.0 != Self::SIGNATURE_HASH {
7009                    return Err(
7010                        alloy_sol_types::Error::invalid_event_signature_hash(
7011                            Self::SIGNATURE,
7012                            topics.0,
7013                            Self::SIGNATURE_HASH,
7014                        ),
7015                    );
7016                }
7017                Ok(())
7018            }
7019            #[inline]
7020            fn tokenize_body(&self) -> Self::DataToken<'_> {
7021                (
7022                    <alloy::sol_types::sol_data::Uint<
7023                        8,
7024                    > as alloy_sol_types::SolType>::tokenize(&self.version),
7025                )
7026            }
7027            #[inline]
7028            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
7029                (Self::SIGNATURE_HASH.into(),)
7030            }
7031            #[inline]
7032            fn encode_topics_raw(
7033                &self,
7034                out: &mut [alloy_sol_types::abi::token::WordToken],
7035            ) -> alloy_sol_types::Result<()> {
7036                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
7037                    return Err(alloy_sol_types::Error::Overrun);
7038                }
7039                out[0usize] = alloy_sol_types::abi::token::WordToken(
7040                    Self::SIGNATURE_HASH,
7041                );
7042                Ok(())
7043            }
7044        }
7045        #[automatically_derived]
7046        impl alloy_sol_types::private::IntoLogData for Initialized {
7047            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
7048                From::from(self)
7049            }
7050            fn into_log_data(self) -> alloy_sol_types::private::LogData {
7051                From::from(&self)
7052            }
7053        }
7054        #[automatically_derived]
7055        impl From<&Initialized> for alloy_sol_types::private::LogData {
7056            #[inline]
7057            fn from(this: &Initialized) -> alloy_sol_types::private::LogData {
7058                alloy_sol_types::SolEvent::encode_log_data(this)
7059            }
7060        }
7061    };
7062    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7063    /**Event with signature `OperatorDeregistered(address,bytes32)` and selector `0x396fdcb180cb0fea26928113fb0fd1c3549863f9cd563e6a184f1d578116c8e4`.
7064```solidity
7065event OperatorDeregistered(address indexed operator, bytes32 indexed operatorId);
7066```*/
7067    #[allow(
7068        non_camel_case_types,
7069        non_snake_case,
7070        clippy::pub_underscore_fields,
7071        clippy::style
7072    )]
7073    #[derive(Clone)]
7074    pub struct OperatorDeregistered {
7075        #[allow(missing_docs)]
7076        pub operator: alloy::sol_types::private::Address,
7077        #[allow(missing_docs)]
7078        pub operatorId: alloy::sol_types::private::FixedBytes<32>,
7079    }
7080    #[allow(
7081        non_camel_case_types,
7082        non_snake_case,
7083        clippy::pub_underscore_fields,
7084        clippy::style
7085    )]
7086    const _: () = {
7087        use alloy::sol_types as alloy_sol_types;
7088        #[automatically_derived]
7089        impl alloy_sol_types::SolEvent for OperatorDeregistered {
7090            type DataTuple<'a> = ();
7091            type DataToken<'a> = <Self::DataTuple<
7092                'a,
7093            > as alloy_sol_types::SolType>::Token<'a>;
7094            type TopicList = (
7095                alloy_sol_types::sol_data::FixedBytes<32>,
7096                alloy::sol_types::sol_data::Address,
7097                alloy::sol_types::sol_data::FixedBytes<32>,
7098            );
7099            const SIGNATURE: &'static str = "OperatorDeregistered(address,bytes32)";
7100            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
7101                57u8, 111u8, 220u8, 177u8, 128u8, 203u8, 15u8, 234u8, 38u8, 146u8, 129u8,
7102                19u8, 251u8, 15u8, 209u8, 195u8, 84u8, 152u8, 99u8, 249u8, 205u8, 86u8,
7103                62u8, 106u8, 24u8, 79u8, 29u8, 87u8, 129u8, 22u8, 200u8, 228u8,
7104            ]);
7105            const ANONYMOUS: bool = false;
7106            #[allow(unused_variables)]
7107            #[inline]
7108            fn new(
7109                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
7110                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
7111            ) -> Self {
7112                Self {
7113                    operator: topics.1,
7114                    operatorId: topics.2,
7115                }
7116            }
7117            #[inline]
7118            fn check_signature(
7119                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
7120            ) -> alloy_sol_types::Result<()> {
7121                if topics.0 != Self::SIGNATURE_HASH {
7122                    return Err(
7123                        alloy_sol_types::Error::invalid_event_signature_hash(
7124                            Self::SIGNATURE,
7125                            topics.0,
7126                            Self::SIGNATURE_HASH,
7127                        ),
7128                    );
7129                }
7130                Ok(())
7131            }
7132            #[inline]
7133            fn tokenize_body(&self) -> Self::DataToken<'_> {
7134                ()
7135            }
7136            #[inline]
7137            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
7138                (
7139                    Self::SIGNATURE_HASH.into(),
7140                    self.operator.clone(),
7141                    self.operatorId.clone(),
7142                )
7143            }
7144            #[inline]
7145            fn encode_topics_raw(
7146                &self,
7147                out: &mut [alloy_sol_types::abi::token::WordToken],
7148            ) -> alloy_sol_types::Result<()> {
7149                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
7150                    return Err(alloy_sol_types::Error::Overrun);
7151                }
7152                out[0usize] = alloy_sol_types::abi::token::WordToken(
7153                    Self::SIGNATURE_HASH,
7154                );
7155                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
7156                    &self.operator,
7157                );
7158                out[2usize] = <alloy::sol_types::sol_data::FixedBytes<
7159                    32,
7160                > as alloy_sol_types::EventTopic>::encode_topic(&self.operatorId);
7161                Ok(())
7162            }
7163        }
7164        #[automatically_derived]
7165        impl alloy_sol_types::private::IntoLogData for OperatorDeregistered {
7166            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
7167                From::from(self)
7168            }
7169            fn into_log_data(self) -> alloy_sol_types::private::LogData {
7170                From::from(&self)
7171            }
7172        }
7173        #[automatically_derived]
7174        impl From<&OperatorDeregistered> for alloy_sol_types::private::LogData {
7175            #[inline]
7176            fn from(this: &OperatorDeregistered) -> alloy_sol_types::private::LogData {
7177                alloy_sol_types::SolEvent::encode_log_data(this)
7178            }
7179        }
7180    };
7181    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7182    /**Event with signature `OperatorRegistered(address,bytes32)` and selector `0xe8e68cef1c3a761ed7be7e8463a375f27f7bc335e51824223cacce636ec5c3fe`.
7183```solidity
7184event OperatorRegistered(address indexed operator, bytes32 indexed operatorId);
7185```*/
7186    #[allow(
7187        non_camel_case_types,
7188        non_snake_case,
7189        clippy::pub_underscore_fields,
7190        clippy::style
7191    )]
7192    #[derive(Clone)]
7193    pub struct OperatorRegistered {
7194        #[allow(missing_docs)]
7195        pub operator: alloy::sol_types::private::Address,
7196        #[allow(missing_docs)]
7197        pub operatorId: alloy::sol_types::private::FixedBytes<32>,
7198    }
7199    #[allow(
7200        non_camel_case_types,
7201        non_snake_case,
7202        clippy::pub_underscore_fields,
7203        clippy::style
7204    )]
7205    const _: () = {
7206        use alloy::sol_types as alloy_sol_types;
7207        #[automatically_derived]
7208        impl alloy_sol_types::SolEvent for OperatorRegistered {
7209            type DataTuple<'a> = ();
7210            type DataToken<'a> = <Self::DataTuple<
7211                'a,
7212            > as alloy_sol_types::SolType>::Token<'a>;
7213            type TopicList = (
7214                alloy_sol_types::sol_data::FixedBytes<32>,
7215                alloy::sol_types::sol_data::Address,
7216                alloy::sol_types::sol_data::FixedBytes<32>,
7217            );
7218            const SIGNATURE: &'static str = "OperatorRegistered(address,bytes32)";
7219            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
7220                232u8, 230u8, 140u8, 239u8, 28u8, 58u8, 118u8, 30u8, 215u8, 190u8, 126u8,
7221                132u8, 99u8, 163u8, 117u8, 242u8, 127u8, 123u8, 195u8, 53u8, 229u8, 24u8,
7222                36u8, 34u8, 60u8, 172u8, 206u8, 99u8, 110u8, 197u8, 195u8, 254u8,
7223            ]);
7224            const ANONYMOUS: bool = false;
7225            #[allow(unused_variables)]
7226            #[inline]
7227            fn new(
7228                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
7229                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
7230            ) -> Self {
7231                Self {
7232                    operator: topics.1,
7233                    operatorId: topics.2,
7234                }
7235            }
7236            #[inline]
7237            fn check_signature(
7238                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
7239            ) -> alloy_sol_types::Result<()> {
7240                if topics.0 != Self::SIGNATURE_HASH {
7241                    return Err(
7242                        alloy_sol_types::Error::invalid_event_signature_hash(
7243                            Self::SIGNATURE,
7244                            topics.0,
7245                            Self::SIGNATURE_HASH,
7246                        ),
7247                    );
7248                }
7249                Ok(())
7250            }
7251            #[inline]
7252            fn tokenize_body(&self) -> Self::DataToken<'_> {
7253                ()
7254            }
7255            #[inline]
7256            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
7257                (
7258                    Self::SIGNATURE_HASH.into(),
7259                    self.operator.clone(),
7260                    self.operatorId.clone(),
7261                )
7262            }
7263            #[inline]
7264            fn encode_topics_raw(
7265                &self,
7266                out: &mut [alloy_sol_types::abi::token::WordToken],
7267            ) -> alloy_sol_types::Result<()> {
7268                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
7269                    return Err(alloy_sol_types::Error::Overrun);
7270                }
7271                out[0usize] = alloy_sol_types::abi::token::WordToken(
7272                    Self::SIGNATURE_HASH,
7273                );
7274                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
7275                    &self.operator,
7276                );
7277                out[2usize] = <alloy::sol_types::sol_data::FixedBytes<
7278                    32,
7279                > as alloy_sol_types::EventTopic>::encode_topic(&self.operatorId);
7280                Ok(())
7281            }
7282        }
7283        #[automatically_derived]
7284        impl alloy_sol_types::private::IntoLogData for OperatorRegistered {
7285            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
7286                From::from(self)
7287            }
7288            fn into_log_data(self) -> alloy_sol_types::private::LogData {
7289                From::from(&self)
7290            }
7291        }
7292        #[automatically_derived]
7293        impl From<&OperatorRegistered> for alloy_sol_types::private::LogData {
7294            #[inline]
7295            fn from(this: &OperatorRegistered) -> alloy_sol_types::private::LogData {
7296                alloy_sol_types::SolEvent::encode_log_data(this)
7297            }
7298        }
7299    };
7300    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7301    /**Event with signature `OperatorSetParamsUpdated(uint8,(uint32,uint16,uint16))` and selector `0x3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac`.
7302```solidity
7303event OperatorSetParamsUpdated(uint8 indexed quorumNumber, ISlashingRegistryCoordinatorTypes.OperatorSetParam operatorSetParams);
7304```*/
7305    #[allow(
7306        non_camel_case_types,
7307        non_snake_case,
7308        clippy::pub_underscore_fields,
7309        clippy::style
7310    )]
7311    #[derive(Clone)]
7312    pub struct OperatorSetParamsUpdated {
7313        #[allow(missing_docs)]
7314        pub quorumNumber: u8,
7315        #[allow(missing_docs)]
7316        pub operatorSetParams: <ISlashingRegistryCoordinatorTypes::OperatorSetParam as alloy::sol_types::SolType>::RustType,
7317    }
7318    #[allow(
7319        non_camel_case_types,
7320        non_snake_case,
7321        clippy::pub_underscore_fields,
7322        clippy::style
7323    )]
7324    const _: () = {
7325        use alloy::sol_types as alloy_sol_types;
7326        #[automatically_derived]
7327        impl alloy_sol_types::SolEvent for OperatorSetParamsUpdated {
7328            type DataTuple<'a> = (ISlashingRegistryCoordinatorTypes::OperatorSetParam,);
7329            type DataToken<'a> = <Self::DataTuple<
7330                'a,
7331            > as alloy_sol_types::SolType>::Token<'a>;
7332            type TopicList = (
7333                alloy_sol_types::sol_data::FixedBytes<32>,
7334                alloy::sol_types::sol_data::Uint<8>,
7335            );
7336            const SIGNATURE: &'static str = "OperatorSetParamsUpdated(uint8,(uint32,uint16,uint16))";
7337            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
7338                62u8, 230u8, 254u8, 141u8, 84u8, 97u8, 2u8, 68u8, 195u8, 233u8, 211u8,
7339                192u8, 102u8, 174u8, 74u8, 238u8, 153u8, 120u8, 132u8, 170u8, 40u8,
7340                241u8, 6u8, 22u8, 174u8, 130u8, 25u8, 37u8, 64u8, 19u8, 24u8, 172u8,
7341            ]);
7342            const ANONYMOUS: bool = false;
7343            #[allow(unused_variables)]
7344            #[inline]
7345            fn new(
7346                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
7347                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
7348            ) -> Self {
7349                Self {
7350                    quorumNumber: topics.1,
7351                    operatorSetParams: data.0,
7352                }
7353            }
7354            #[inline]
7355            fn check_signature(
7356                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
7357            ) -> alloy_sol_types::Result<()> {
7358                if topics.0 != Self::SIGNATURE_HASH {
7359                    return Err(
7360                        alloy_sol_types::Error::invalid_event_signature_hash(
7361                            Self::SIGNATURE,
7362                            topics.0,
7363                            Self::SIGNATURE_HASH,
7364                        ),
7365                    );
7366                }
7367                Ok(())
7368            }
7369            #[inline]
7370            fn tokenize_body(&self) -> Self::DataToken<'_> {
7371                (
7372                    <ISlashingRegistryCoordinatorTypes::OperatorSetParam as alloy_sol_types::SolType>::tokenize(
7373                        &self.operatorSetParams,
7374                    ),
7375                )
7376            }
7377            #[inline]
7378            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
7379                (Self::SIGNATURE_HASH.into(), self.quorumNumber.clone())
7380            }
7381            #[inline]
7382            fn encode_topics_raw(
7383                &self,
7384                out: &mut [alloy_sol_types::abi::token::WordToken],
7385            ) -> alloy_sol_types::Result<()> {
7386                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
7387                    return Err(alloy_sol_types::Error::Overrun);
7388                }
7389                out[0usize] = alloy_sol_types::abi::token::WordToken(
7390                    Self::SIGNATURE_HASH,
7391                );
7392                out[1usize] = <alloy::sol_types::sol_data::Uint<
7393                    8,
7394                > as alloy_sol_types::EventTopic>::encode_topic(&self.quorumNumber);
7395                Ok(())
7396            }
7397        }
7398        #[automatically_derived]
7399        impl alloy_sol_types::private::IntoLogData for OperatorSetParamsUpdated {
7400            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
7401                From::from(self)
7402            }
7403            fn into_log_data(self) -> alloy_sol_types::private::LogData {
7404                From::from(&self)
7405            }
7406        }
7407        #[automatically_derived]
7408        impl From<&OperatorSetParamsUpdated> for alloy_sol_types::private::LogData {
7409            #[inline]
7410            fn from(
7411                this: &OperatorSetParamsUpdated,
7412            ) -> alloy_sol_types::private::LogData {
7413                alloy_sol_types::SolEvent::encode_log_data(this)
7414            }
7415        }
7416    };
7417    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7418    /**Event with signature `OperatorSocketUpdate(bytes32,string)` and selector `0xec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa`.
7419```solidity
7420event OperatorSocketUpdate(bytes32 indexed operatorId, string socket);
7421```*/
7422    #[allow(
7423        non_camel_case_types,
7424        non_snake_case,
7425        clippy::pub_underscore_fields,
7426        clippy::style
7427    )]
7428    #[derive(Clone)]
7429    pub struct OperatorSocketUpdate {
7430        #[allow(missing_docs)]
7431        pub operatorId: alloy::sol_types::private::FixedBytes<32>,
7432        #[allow(missing_docs)]
7433        pub socket: alloy::sol_types::private::String,
7434    }
7435    #[allow(
7436        non_camel_case_types,
7437        non_snake_case,
7438        clippy::pub_underscore_fields,
7439        clippy::style
7440    )]
7441    const _: () = {
7442        use alloy::sol_types as alloy_sol_types;
7443        #[automatically_derived]
7444        impl alloy_sol_types::SolEvent for OperatorSocketUpdate {
7445            type DataTuple<'a> = (alloy::sol_types::sol_data::String,);
7446            type DataToken<'a> = <Self::DataTuple<
7447                'a,
7448            > as alloy_sol_types::SolType>::Token<'a>;
7449            type TopicList = (
7450                alloy_sol_types::sol_data::FixedBytes<32>,
7451                alloy::sol_types::sol_data::FixedBytes<32>,
7452            );
7453            const SIGNATURE: &'static str = "OperatorSocketUpdate(bytes32,string)";
7454            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
7455                236u8, 41u8, 99u8, 171u8, 33u8, 193u8, 229u8, 14u8, 30u8, 88u8, 42u8,
7456                165u8, 66u8, 175u8, 46u8, 75u8, 247u8, 191u8, 56u8, 230u8, 225u8, 64u8,
7457                60u8, 39u8, 180u8, 46u8, 28u8, 93u8, 110u8, 98u8, 30u8, 170u8,
7458            ]);
7459            const ANONYMOUS: bool = false;
7460            #[allow(unused_variables)]
7461            #[inline]
7462            fn new(
7463                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
7464                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
7465            ) -> Self {
7466                Self {
7467                    operatorId: topics.1,
7468                    socket: data.0,
7469                }
7470            }
7471            #[inline]
7472            fn check_signature(
7473                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
7474            ) -> alloy_sol_types::Result<()> {
7475                if topics.0 != Self::SIGNATURE_HASH {
7476                    return Err(
7477                        alloy_sol_types::Error::invalid_event_signature_hash(
7478                            Self::SIGNATURE,
7479                            topics.0,
7480                            Self::SIGNATURE_HASH,
7481                        ),
7482                    );
7483                }
7484                Ok(())
7485            }
7486            #[inline]
7487            fn tokenize_body(&self) -> Self::DataToken<'_> {
7488                (
7489                    <alloy::sol_types::sol_data::String as alloy_sol_types::SolType>::tokenize(
7490                        &self.socket,
7491                    ),
7492                )
7493            }
7494            #[inline]
7495            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
7496                (Self::SIGNATURE_HASH.into(), self.operatorId.clone())
7497            }
7498            #[inline]
7499            fn encode_topics_raw(
7500                &self,
7501                out: &mut [alloy_sol_types::abi::token::WordToken],
7502            ) -> alloy_sol_types::Result<()> {
7503                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
7504                    return Err(alloy_sol_types::Error::Overrun);
7505                }
7506                out[0usize] = alloy_sol_types::abi::token::WordToken(
7507                    Self::SIGNATURE_HASH,
7508                );
7509                out[1usize] = <alloy::sol_types::sol_data::FixedBytes<
7510                    32,
7511                > as alloy_sol_types::EventTopic>::encode_topic(&self.operatorId);
7512                Ok(())
7513            }
7514        }
7515        #[automatically_derived]
7516        impl alloy_sol_types::private::IntoLogData for OperatorSocketUpdate {
7517            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
7518                From::from(self)
7519            }
7520            fn into_log_data(self) -> alloy_sol_types::private::LogData {
7521                From::from(&self)
7522            }
7523        }
7524        #[automatically_derived]
7525        impl From<&OperatorSocketUpdate> for alloy_sol_types::private::LogData {
7526            #[inline]
7527            fn from(this: &OperatorSocketUpdate) -> alloy_sol_types::private::LogData {
7528                alloy_sol_types::SolEvent::encode_log_data(this)
7529            }
7530        }
7531    };
7532    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7533    /**Event with signature `OwnershipTransferred(address,address)` and selector `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0`.
7534```solidity
7535event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
7536```*/
7537    #[allow(
7538        non_camel_case_types,
7539        non_snake_case,
7540        clippy::pub_underscore_fields,
7541        clippy::style
7542    )]
7543    #[derive(Clone)]
7544    pub struct OwnershipTransferred {
7545        #[allow(missing_docs)]
7546        pub previousOwner: alloy::sol_types::private::Address,
7547        #[allow(missing_docs)]
7548        pub newOwner: alloy::sol_types::private::Address,
7549    }
7550    #[allow(
7551        non_camel_case_types,
7552        non_snake_case,
7553        clippy::pub_underscore_fields,
7554        clippy::style
7555    )]
7556    const _: () = {
7557        use alloy::sol_types as alloy_sol_types;
7558        #[automatically_derived]
7559        impl alloy_sol_types::SolEvent for OwnershipTransferred {
7560            type DataTuple<'a> = ();
7561            type DataToken<'a> = <Self::DataTuple<
7562                'a,
7563            > as alloy_sol_types::SolType>::Token<'a>;
7564            type TopicList = (
7565                alloy_sol_types::sol_data::FixedBytes<32>,
7566                alloy::sol_types::sol_data::Address,
7567                alloy::sol_types::sol_data::Address,
7568            );
7569            const SIGNATURE: &'static str = "OwnershipTransferred(address,address)";
7570            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
7571                139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8,
7572                31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8,
7573                218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8,
7574            ]);
7575            const ANONYMOUS: bool = false;
7576            #[allow(unused_variables)]
7577            #[inline]
7578            fn new(
7579                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
7580                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
7581            ) -> Self {
7582                Self {
7583                    previousOwner: topics.1,
7584                    newOwner: topics.2,
7585                }
7586            }
7587            #[inline]
7588            fn check_signature(
7589                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
7590            ) -> alloy_sol_types::Result<()> {
7591                if topics.0 != Self::SIGNATURE_HASH {
7592                    return Err(
7593                        alloy_sol_types::Error::invalid_event_signature_hash(
7594                            Self::SIGNATURE,
7595                            topics.0,
7596                            Self::SIGNATURE_HASH,
7597                        ),
7598                    );
7599                }
7600                Ok(())
7601            }
7602            #[inline]
7603            fn tokenize_body(&self) -> Self::DataToken<'_> {
7604                ()
7605            }
7606            #[inline]
7607            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
7608                (
7609                    Self::SIGNATURE_HASH.into(),
7610                    self.previousOwner.clone(),
7611                    self.newOwner.clone(),
7612                )
7613            }
7614            #[inline]
7615            fn encode_topics_raw(
7616                &self,
7617                out: &mut [alloy_sol_types::abi::token::WordToken],
7618            ) -> alloy_sol_types::Result<()> {
7619                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
7620                    return Err(alloy_sol_types::Error::Overrun);
7621                }
7622                out[0usize] = alloy_sol_types::abi::token::WordToken(
7623                    Self::SIGNATURE_HASH,
7624                );
7625                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
7626                    &self.previousOwner,
7627                );
7628                out[2usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
7629                    &self.newOwner,
7630                );
7631                Ok(())
7632            }
7633        }
7634        #[automatically_derived]
7635        impl alloy_sol_types::private::IntoLogData for OwnershipTransferred {
7636            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
7637                From::from(self)
7638            }
7639            fn into_log_data(self) -> alloy_sol_types::private::LogData {
7640                From::from(&self)
7641            }
7642        }
7643        #[automatically_derived]
7644        impl From<&OwnershipTransferred> for alloy_sol_types::private::LogData {
7645            #[inline]
7646            fn from(this: &OwnershipTransferred) -> alloy_sol_types::private::LogData {
7647                alloy_sol_types::SolEvent::encode_log_data(this)
7648            }
7649        }
7650    };
7651    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7652    /**Event with signature `Paused(address,uint256)` and selector `0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d`.
7653```solidity
7654event Paused(address indexed account, uint256 newPausedStatus);
7655```*/
7656    #[allow(
7657        non_camel_case_types,
7658        non_snake_case,
7659        clippy::pub_underscore_fields,
7660        clippy::style
7661    )]
7662    #[derive(Clone)]
7663    pub struct Paused {
7664        #[allow(missing_docs)]
7665        pub account: alloy::sol_types::private::Address,
7666        #[allow(missing_docs)]
7667        pub newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
7668    }
7669    #[allow(
7670        non_camel_case_types,
7671        non_snake_case,
7672        clippy::pub_underscore_fields,
7673        clippy::style
7674    )]
7675    const _: () = {
7676        use alloy::sol_types as alloy_sol_types;
7677        #[automatically_derived]
7678        impl alloy_sol_types::SolEvent for Paused {
7679            type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
7680            type DataToken<'a> = <Self::DataTuple<
7681                'a,
7682            > as alloy_sol_types::SolType>::Token<'a>;
7683            type TopicList = (
7684                alloy_sol_types::sol_data::FixedBytes<32>,
7685                alloy::sol_types::sol_data::Address,
7686            );
7687            const SIGNATURE: &'static str = "Paused(address,uint256)";
7688            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
7689                171u8, 64u8, 163u8, 116u8, 188u8, 81u8, 222u8, 55u8, 34u8, 0u8, 168u8,
7690                188u8, 152u8, 26u8, 248u8, 201u8, 236u8, 220u8, 8u8, 223u8, 218u8, 239u8,
7691                11u8, 182u8, 224u8, 159u8, 136u8, 243u8, 198u8, 22u8, 239u8, 61u8,
7692            ]);
7693            const ANONYMOUS: bool = false;
7694            #[allow(unused_variables)]
7695            #[inline]
7696            fn new(
7697                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
7698                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
7699            ) -> Self {
7700                Self {
7701                    account: topics.1,
7702                    newPausedStatus: data.0,
7703                }
7704            }
7705            #[inline]
7706            fn check_signature(
7707                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
7708            ) -> alloy_sol_types::Result<()> {
7709                if topics.0 != Self::SIGNATURE_HASH {
7710                    return Err(
7711                        alloy_sol_types::Error::invalid_event_signature_hash(
7712                            Self::SIGNATURE,
7713                            topics.0,
7714                            Self::SIGNATURE_HASH,
7715                        ),
7716                    );
7717                }
7718                Ok(())
7719            }
7720            #[inline]
7721            fn tokenize_body(&self) -> Self::DataToken<'_> {
7722                (
7723                    <alloy::sol_types::sol_data::Uint<
7724                        256,
7725                    > as alloy_sol_types::SolType>::tokenize(&self.newPausedStatus),
7726                )
7727            }
7728            #[inline]
7729            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
7730                (Self::SIGNATURE_HASH.into(), self.account.clone())
7731            }
7732            #[inline]
7733            fn encode_topics_raw(
7734                &self,
7735                out: &mut [alloy_sol_types::abi::token::WordToken],
7736            ) -> alloy_sol_types::Result<()> {
7737                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
7738                    return Err(alloy_sol_types::Error::Overrun);
7739                }
7740                out[0usize] = alloy_sol_types::abi::token::WordToken(
7741                    Self::SIGNATURE_HASH,
7742                );
7743                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
7744                    &self.account,
7745                );
7746                Ok(())
7747            }
7748        }
7749        #[automatically_derived]
7750        impl alloy_sol_types::private::IntoLogData for Paused {
7751            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
7752                From::from(self)
7753            }
7754            fn into_log_data(self) -> alloy_sol_types::private::LogData {
7755                From::from(&self)
7756            }
7757        }
7758        #[automatically_derived]
7759        impl From<&Paused> for alloy_sol_types::private::LogData {
7760            #[inline]
7761            fn from(this: &Paused) -> alloy_sol_types::private::LogData {
7762                alloy_sol_types::SolEvent::encode_log_data(this)
7763            }
7764        }
7765    };
7766    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7767    /**Event with signature `QuorumBlockNumberUpdated(uint8,uint256)` and selector `0x46077d55330763f16269fd75e5761663f4192d2791747c0189b16ad31db07db4`.
7768```solidity
7769event QuorumBlockNumberUpdated(uint8 indexed quorumNumber, uint256 blocknumber);
7770```*/
7771    #[allow(
7772        non_camel_case_types,
7773        non_snake_case,
7774        clippy::pub_underscore_fields,
7775        clippy::style
7776    )]
7777    #[derive(Clone)]
7778    pub struct QuorumBlockNumberUpdated {
7779        #[allow(missing_docs)]
7780        pub quorumNumber: u8,
7781        #[allow(missing_docs)]
7782        pub blocknumber: alloy::sol_types::private::primitives::aliases::U256,
7783    }
7784    #[allow(
7785        non_camel_case_types,
7786        non_snake_case,
7787        clippy::pub_underscore_fields,
7788        clippy::style
7789    )]
7790    const _: () = {
7791        use alloy::sol_types as alloy_sol_types;
7792        #[automatically_derived]
7793        impl alloy_sol_types::SolEvent for QuorumBlockNumberUpdated {
7794            type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
7795            type DataToken<'a> = <Self::DataTuple<
7796                'a,
7797            > as alloy_sol_types::SolType>::Token<'a>;
7798            type TopicList = (
7799                alloy_sol_types::sol_data::FixedBytes<32>,
7800                alloy::sol_types::sol_data::Uint<8>,
7801            );
7802            const SIGNATURE: &'static str = "QuorumBlockNumberUpdated(uint8,uint256)";
7803            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
7804                70u8, 7u8, 125u8, 85u8, 51u8, 7u8, 99u8, 241u8, 98u8, 105u8, 253u8,
7805                117u8, 229u8, 118u8, 22u8, 99u8, 244u8, 25u8, 45u8, 39u8, 145u8, 116u8,
7806                124u8, 1u8, 137u8, 177u8, 106u8, 211u8, 29u8, 176u8, 125u8, 180u8,
7807            ]);
7808            const ANONYMOUS: bool = false;
7809            #[allow(unused_variables)]
7810            #[inline]
7811            fn new(
7812                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
7813                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
7814            ) -> Self {
7815                Self {
7816                    quorumNumber: topics.1,
7817                    blocknumber: data.0,
7818                }
7819            }
7820            #[inline]
7821            fn check_signature(
7822                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
7823            ) -> alloy_sol_types::Result<()> {
7824                if topics.0 != Self::SIGNATURE_HASH {
7825                    return Err(
7826                        alloy_sol_types::Error::invalid_event_signature_hash(
7827                            Self::SIGNATURE,
7828                            topics.0,
7829                            Self::SIGNATURE_HASH,
7830                        ),
7831                    );
7832                }
7833                Ok(())
7834            }
7835            #[inline]
7836            fn tokenize_body(&self) -> Self::DataToken<'_> {
7837                (
7838                    <alloy::sol_types::sol_data::Uint<
7839                        256,
7840                    > as alloy_sol_types::SolType>::tokenize(&self.blocknumber),
7841                )
7842            }
7843            #[inline]
7844            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
7845                (Self::SIGNATURE_HASH.into(), self.quorumNumber.clone())
7846            }
7847            #[inline]
7848            fn encode_topics_raw(
7849                &self,
7850                out: &mut [alloy_sol_types::abi::token::WordToken],
7851            ) -> alloy_sol_types::Result<()> {
7852                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
7853                    return Err(alloy_sol_types::Error::Overrun);
7854                }
7855                out[0usize] = alloy_sol_types::abi::token::WordToken(
7856                    Self::SIGNATURE_HASH,
7857                );
7858                out[1usize] = <alloy::sol_types::sol_data::Uint<
7859                    8,
7860                > as alloy_sol_types::EventTopic>::encode_topic(&self.quorumNumber);
7861                Ok(())
7862            }
7863        }
7864        #[automatically_derived]
7865        impl alloy_sol_types::private::IntoLogData for QuorumBlockNumberUpdated {
7866            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
7867                From::from(self)
7868            }
7869            fn into_log_data(self) -> alloy_sol_types::private::LogData {
7870                From::from(&self)
7871            }
7872        }
7873        #[automatically_derived]
7874        impl From<&QuorumBlockNumberUpdated> for alloy_sol_types::private::LogData {
7875            #[inline]
7876            fn from(
7877                this: &QuorumBlockNumberUpdated,
7878            ) -> alloy_sol_types::private::LogData {
7879                alloy_sol_types::SolEvent::encode_log_data(this)
7880            }
7881        }
7882    };
7883    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7884    /**Event with signature `QuorumCreated(uint8,(uint32,uint16,uint16),uint96,(address,uint96)[],uint8,uint32)` and selector `0xa34835bc2b673ec37fcf1591a91295b163fc2e181e4ea4e733beb27de1ceac4c`.
7885```solidity
7886event QuorumCreated(uint8 indexed quorumNumber, ISlashingRegistryCoordinatorTypes.OperatorSetParam operatorSetParams, uint96 minimumStake, IStakeRegistryTypes.StrategyParams[] strategyParams, IStakeRegistryTypes.StakeType stakeType, uint32 lookAheadPeriod);
7887```*/
7888    #[allow(
7889        non_camel_case_types,
7890        non_snake_case,
7891        clippy::pub_underscore_fields,
7892        clippy::style
7893    )]
7894    #[derive(Clone)]
7895    pub struct QuorumCreated {
7896        #[allow(missing_docs)]
7897        pub quorumNumber: u8,
7898        #[allow(missing_docs)]
7899        pub operatorSetParams: <ISlashingRegistryCoordinatorTypes::OperatorSetParam as alloy::sol_types::SolType>::RustType,
7900        #[allow(missing_docs)]
7901        pub minimumStake: alloy::sol_types::private::primitives::aliases::U96,
7902        #[allow(missing_docs)]
7903        pub strategyParams: alloy::sol_types::private::Vec<
7904            <IStakeRegistryTypes::StrategyParams as alloy::sol_types::SolType>::RustType,
7905        >,
7906        #[allow(missing_docs)]
7907        pub stakeType: <IStakeRegistryTypes::StakeType as alloy::sol_types::SolType>::RustType,
7908        #[allow(missing_docs)]
7909        pub lookAheadPeriod: u32,
7910    }
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        #[automatically_derived]
7920        impl alloy_sol_types::SolEvent for QuorumCreated {
7921            type DataTuple<'a> = (
7922                ISlashingRegistryCoordinatorTypes::OperatorSetParam,
7923                alloy::sol_types::sol_data::Uint<96>,
7924                alloy::sol_types::sol_data::Array<IStakeRegistryTypes::StrategyParams>,
7925                IStakeRegistryTypes::StakeType,
7926                alloy::sol_types::sol_data::Uint<32>,
7927            );
7928            type DataToken<'a> = <Self::DataTuple<
7929                'a,
7930            > as alloy_sol_types::SolType>::Token<'a>;
7931            type TopicList = (
7932                alloy_sol_types::sol_data::FixedBytes<32>,
7933                alloy::sol_types::sol_data::Uint<8>,
7934            );
7935            const SIGNATURE: &'static str = "QuorumCreated(uint8,(uint32,uint16,uint16),uint96,(address,uint96)[],uint8,uint32)";
7936            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
7937                163u8, 72u8, 53u8, 188u8, 43u8, 103u8, 62u8, 195u8, 127u8, 207u8, 21u8,
7938                145u8, 169u8, 18u8, 149u8, 177u8, 99u8, 252u8, 46u8, 24u8, 30u8, 78u8,
7939                164u8, 231u8, 51u8, 190u8, 178u8, 125u8, 225u8, 206u8, 172u8, 76u8,
7940            ]);
7941            const ANONYMOUS: bool = false;
7942            #[allow(unused_variables)]
7943            #[inline]
7944            fn new(
7945                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
7946                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
7947            ) -> Self {
7948                Self {
7949                    quorumNumber: topics.1,
7950                    operatorSetParams: data.0,
7951                    minimumStake: data.1,
7952                    strategyParams: data.2,
7953                    stakeType: data.3,
7954                    lookAheadPeriod: data.4,
7955                }
7956            }
7957            #[inline]
7958            fn check_signature(
7959                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
7960            ) -> alloy_sol_types::Result<()> {
7961                if topics.0 != Self::SIGNATURE_HASH {
7962                    return Err(
7963                        alloy_sol_types::Error::invalid_event_signature_hash(
7964                            Self::SIGNATURE,
7965                            topics.0,
7966                            Self::SIGNATURE_HASH,
7967                        ),
7968                    );
7969                }
7970                Ok(())
7971            }
7972            #[inline]
7973            fn tokenize_body(&self) -> Self::DataToken<'_> {
7974                (
7975                    <ISlashingRegistryCoordinatorTypes::OperatorSetParam as alloy_sol_types::SolType>::tokenize(
7976                        &self.operatorSetParams,
7977                    ),
7978                    <alloy::sol_types::sol_data::Uint<
7979                        96,
7980                    > as alloy_sol_types::SolType>::tokenize(&self.minimumStake),
7981                    <alloy::sol_types::sol_data::Array<
7982                        IStakeRegistryTypes::StrategyParams,
7983                    > as alloy_sol_types::SolType>::tokenize(&self.strategyParams),
7984                    <IStakeRegistryTypes::StakeType as alloy_sol_types::SolType>::tokenize(
7985                        &self.stakeType,
7986                    ),
7987                    <alloy::sol_types::sol_data::Uint<
7988                        32,
7989                    > as alloy_sol_types::SolType>::tokenize(&self.lookAheadPeriod),
7990                )
7991            }
7992            #[inline]
7993            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
7994                (Self::SIGNATURE_HASH.into(), self.quorumNumber.clone())
7995            }
7996            #[inline]
7997            fn encode_topics_raw(
7998                &self,
7999                out: &mut [alloy_sol_types::abi::token::WordToken],
8000            ) -> alloy_sol_types::Result<()> {
8001                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
8002                    return Err(alloy_sol_types::Error::Overrun);
8003                }
8004                out[0usize] = alloy_sol_types::abi::token::WordToken(
8005                    Self::SIGNATURE_HASH,
8006                );
8007                out[1usize] = <alloy::sol_types::sol_data::Uint<
8008                    8,
8009                > as alloy_sol_types::EventTopic>::encode_topic(&self.quorumNumber);
8010                Ok(())
8011            }
8012        }
8013        #[automatically_derived]
8014        impl alloy_sol_types::private::IntoLogData for QuorumCreated {
8015            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
8016                From::from(self)
8017            }
8018            fn into_log_data(self) -> alloy_sol_types::private::LogData {
8019                From::from(&self)
8020            }
8021        }
8022        #[automatically_derived]
8023        impl From<&QuorumCreated> for alloy_sol_types::private::LogData {
8024            #[inline]
8025            fn from(this: &QuorumCreated) -> alloy_sol_types::private::LogData {
8026                alloy_sol_types::SolEvent::encode_log_data(this)
8027            }
8028        }
8029    };
8030    #[derive(Default, Debug, PartialEq, Eq, Hash)]
8031    /**Event with signature `Unpaused(address,uint256)` and selector `0x3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c`.
8032```solidity
8033event Unpaused(address indexed account, uint256 newPausedStatus);
8034```*/
8035    #[allow(
8036        non_camel_case_types,
8037        non_snake_case,
8038        clippy::pub_underscore_fields,
8039        clippy::style
8040    )]
8041    #[derive(Clone)]
8042    pub struct Unpaused {
8043        #[allow(missing_docs)]
8044        pub account: alloy::sol_types::private::Address,
8045        #[allow(missing_docs)]
8046        pub newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
8047    }
8048    #[allow(
8049        non_camel_case_types,
8050        non_snake_case,
8051        clippy::pub_underscore_fields,
8052        clippy::style
8053    )]
8054    const _: () = {
8055        use alloy::sol_types as alloy_sol_types;
8056        #[automatically_derived]
8057        impl alloy_sol_types::SolEvent for Unpaused {
8058            type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
8059            type DataToken<'a> = <Self::DataTuple<
8060                'a,
8061            > as alloy_sol_types::SolType>::Token<'a>;
8062            type TopicList = (
8063                alloy_sol_types::sol_data::FixedBytes<32>,
8064                alloy::sol_types::sol_data::Address,
8065            );
8066            const SIGNATURE: &'static str = "Unpaused(address,uint256)";
8067            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
8068                53u8, 130u8, 209u8, 130u8, 142u8, 38u8, 191u8, 86u8, 189u8, 128u8, 21u8,
8069                2u8, 188u8, 2u8, 26u8, 192u8, 188u8, 138u8, 251u8, 87u8, 200u8, 38u8,
8070                228u8, 152u8, 107u8, 69u8, 89u8, 60u8, 143u8, 173u8, 56u8, 156u8,
8071            ]);
8072            const ANONYMOUS: bool = false;
8073            #[allow(unused_variables)]
8074            #[inline]
8075            fn new(
8076                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
8077                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
8078            ) -> Self {
8079                Self {
8080                    account: topics.1,
8081                    newPausedStatus: data.0,
8082                }
8083            }
8084            #[inline]
8085            fn check_signature(
8086                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
8087            ) -> alloy_sol_types::Result<()> {
8088                if topics.0 != Self::SIGNATURE_HASH {
8089                    return Err(
8090                        alloy_sol_types::Error::invalid_event_signature_hash(
8091                            Self::SIGNATURE,
8092                            topics.0,
8093                            Self::SIGNATURE_HASH,
8094                        ),
8095                    );
8096                }
8097                Ok(())
8098            }
8099            #[inline]
8100            fn tokenize_body(&self) -> Self::DataToken<'_> {
8101                (
8102                    <alloy::sol_types::sol_data::Uint<
8103                        256,
8104                    > as alloy_sol_types::SolType>::tokenize(&self.newPausedStatus),
8105                )
8106            }
8107            #[inline]
8108            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
8109                (Self::SIGNATURE_HASH.into(), self.account.clone())
8110            }
8111            #[inline]
8112            fn encode_topics_raw(
8113                &self,
8114                out: &mut [alloy_sol_types::abi::token::WordToken],
8115            ) -> alloy_sol_types::Result<()> {
8116                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
8117                    return Err(alloy_sol_types::Error::Overrun);
8118                }
8119                out[0usize] = alloy_sol_types::abi::token::WordToken(
8120                    Self::SIGNATURE_HASH,
8121                );
8122                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
8123                    &self.account,
8124                );
8125                Ok(())
8126            }
8127        }
8128        #[automatically_derived]
8129        impl alloy_sol_types::private::IntoLogData for Unpaused {
8130            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
8131                From::from(self)
8132            }
8133            fn into_log_data(self) -> alloy_sol_types::private::LogData {
8134                From::from(&self)
8135            }
8136        }
8137        #[automatically_derived]
8138        impl From<&Unpaused> for alloy_sol_types::private::LogData {
8139            #[inline]
8140            fn from(this: &Unpaused) -> alloy_sol_types::private::LogData {
8141                alloy_sol_types::SolEvent::encode_log_data(this)
8142            }
8143        }
8144    };
8145    /**Constructor`.
8146```solidity
8147constructor(address _stakeRegistry, address _blsApkRegistry, address _indexRegistry, address _socketRegistry, address _allocationManager, address _pauserRegistry, string _version);
8148```*/
8149    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8150    #[derive(Clone)]
8151    pub struct constructorCall {
8152        #[allow(missing_docs)]
8153        pub _stakeRegistry: alloy::sol_types::private::Address,
8154        #[allow(missing_docs)]
8155        pub _blsApkRegistry: alloy::sol_types::private::Address,
8156        #[allow(missing_docs)]
8157        pub _indexRegistry: alloy::sol_types::private::Address,
8158        #[allow(missing_docs)]
8159        pub _socketRegistry: alloy::sol_types::private::Address,
8160        #[allow(missing_docs)]
8161        pub _allocationManager: alloy::sol_types::private::Address,
8162        #[allow(missing_docs)]
8163        pub _pauserRegistry: alloy::sol_types::private::Address,
8164        #[allow(missing_docs)]
8165        pub _version: alloy::sol_types::private::String,
8166    }
8167    const _: () = {
8168        use alloy::sol_types as alloy_sol_types;
8169        {
8170            #[doc(hidden)]
8171            type UnderlyingSolTuple<'a> = (
8172                alloy::sol_types::sol_data::Address,
8173                alloy::sol_types::sol_data::Address,
8174                alloy::sol_types::sol_data::Address,
8175                alloy::sol_types::sol_data::Address,
8176                alloy::sol_types::sol_data::Address,
8177                alloy::sol_types::sol_data::Address,
8178                alloy::sol_types::sol_data::String,
8179            );
8180            #[doc(hidden)]
8181            type UnderlyingRustTuple<'a> = (
8182                alloy::sol_types::private::Address,
8183                alloy::sol_types::private::Address,
8184                alloy::sol_types::private::Address,
8185                alloy::sol_types::private::Address,
8186                alloy::sol_types::private::Address,
8187                alloy::sol_types::private::Address,
8188                alloy::sol_types::private::String,
8189            );
8190            #[cfg(test)]
8191            #[allow(dead_code, unreachable_patterns)]
8192            fn _type_assertion(
8193                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8194            ) {
8195                match _t {
8196                    alloy_sol_types::private::AssertTypeEq::<
8197                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8198                    >(_) => {}
8199                }
8200            }
8201            #[automatically_derived]
8202            #[doc(hidden)]
8203            impl ::core::convert::From<constructorCall> for UnderlyingRustTuple<'_> {
8204                fn from(value: constructorCall) -> Self {
8205                    (
8206                        value._stakeRegistry,
8207                        value._blsApkRegistry,
8208                        value._indexRegistry,
8209                        value._socketRegistry,
8210                        value._allocationManager,
8211                        value._pauserRegistry,
8212                        value._version,
8213                    )
8214                }
8215            }
8216            #[automatically_derived]
8217            #[doc(hidden)]
8218            impl ::core::convert::From<UnderlyingRustTuple<'_>> for constructorCall {
8219                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8220                    Self {
8221                        _stakeRegistry: tuple.0,
8222                        _blsApkRegistry: tuple.1,
8223                        _indexRegistry: tuple.2,
8224                        _socketRegistry: tuple.3,
8225                        _allocationManager: tuple.4,
8226                        _pauserRegistry: tuple.5,
8227                        _version: tuple.6,
8228                    }
8229                }
8230            }
8231        }
8232        #[automatically_derived]
8233        impl alloy_sol_types::SolConstructor for constructorCall {
8234            type Parameters<'a> = (
8235                alloy::sol_types::sol_data::Address,
8236                alloy::sol_types::sol_data::Address,
8237                alloy::sol_types::sol_data::Address,
8238                alloy::sol_types::sol_data::Address,
8239                alloy::sol_types::sol_data::Address,
8240                alloy::sol_types::sol_data::Address,
8241                alloy::sol_types::sol_data::String,
8242            );
8243            type Token<'a> = <Self::Parameters<
8244                'a,
8245            > as alloy_sol_types::SolType>::Token<'a>;
8246            #[inline]
8247            fn new<'a>(
8248                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
8249            ) -> Self {
8250                tuple.into()
8251            }
8252            #[inline]
8253            fn tokenize(&self) -> Self::Token<'_> {
8254                (
8255                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
8256                        &self._stakeRegistry,
8257                    ),
8258                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
8259                        &self._blsApkRegistry,
8260                    ),
8261                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
8262                        &self._indexRegistry,
8263                    ),
8264                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
8265                        &self._socketRegistry,
8266                    ),
8267                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
8268                        &self._allocationManager,
8269                    ),
8270                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
8271                        &self._pauserRegistry,
8272                    ),
8273                    <alloy::sol_types::sol_data::String as alloy_sol_types::SolType>::tokenize(
8274                        &self._version,
8275                    ),
8276                )
8277            }
8278        }
8279    };
8280    #[derive(Default, Debug, PartialEq, Eq, Hash)]
8281    /**Function with signature `OPERATOR_CHURN_APPROVAL_TYPEHASH()` and selector `0xca0de882`.
8282```solidity
8283function OPERATOR_CHURN_APPROVAL_TYPEHASH() external view returns (bytes32);
8284```*/
8285    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8286    #[derive(Clone)]
8287    pub struct OPERATOR_CHURN_APPROVAL_TYPEHASHCall {}
8288    #[derive(Default, Debug, PartialEq, Eq, Hash)]
8289    ///Container type for the return parameters of the [`OPERATOR_CHURN_APPROVAL_TYPEHASH()`](OPERATOR_CHURN_APPROVAL_TYPEHASHCall) function.
8290    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8291    #[derive(Clone)]
8292    pub struct OPERATOR_CHURN_APPROVAL_TYPEHASHReturn {
8293        #[allow(missing_docs)]
8294        pub _0: alloy::sol_types::private::FixedBytes<32>,
8295    }
8296    #[allow(
8297        non_camel_case_types,
8298        non_snake_case,
8299        clippy::pub_underscore_fields,
8300        clippy::style
8301    )]
8302    const _: () = {
8303        use alloy::sol_types as alloy_sol_types;
8304        {
8305            #[doc(hidden)]
8306            type UnderlyingSolTuple<'a> = ();
8307            #[doc(hidden)]
8308            type UnderlyingRustTuple<'a> = ();
8309            #[cfg(test)]
8310            #[allow(dead_code, unreachable_patterns)]
8311            fn _type_assertion(
8312                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8313            ) {
8314                match _t {
8315                    alloy_sol_types::private::AssertTypeEq::<
8316                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8317                    >(_) => {}
8318                }
8319            }
8320            #[automatically_derived]
8321            #[doc(hidden)]
8322            impl ::core::convert::From<OPERATOR_CHURN_APPROVAL_TYPEHASHCall>
8323            for UnderlyingRustTuple<'_> {
8324                fn from(value: OPERATOR_CHURN_APPROVAL_TYPEHASHCall) -> Self {
8325                    ()
8326                }
8327            }
8328            #[automatically_derived]
8329            #[doc(hidden)]
8330            impl ::core::convert::From<UnderlyingRustTuple<'_>>
8331            for OPERATOR_CHURN_APPROVAL_TYPEHASHCall {
8332                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8333                    Self {}
8334                }
8335            }
8336        }
8337        {
8338            #[doc(hidden)]
8339            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
8340            #[doc(hidden)]
8341            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
8342            #[cfg(test)]
8343            #[allow(dead_code, unreachable_patterns)]
8344            fn _type_assertion(
8345                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8346            ) {
8347                match _t {
8348                    alloy_sol_types::private::AssertTypeEq::<
8349                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8350                    >(_) => {}
8351                }
8352            }
8353            #[automatically_derived]
8354            #[doc(hidden)]
8355            impl ::core::convert::From<OPERATOR_CHURN_APPROVAL_TYPEHASHReturn>
8356            for UnderlyingRustTuple<'_> {
8357                fn from(value: OPERATOR_CHURN_APPROVAL_TYPEHASHReturn) -> Self {
8358                    (value._0,)
8359                }
8360            }
8361            #[automatically_derived]
8362            #[doc(hidden)]
8363            impl ::core::convert::From<UnderlyingRustTuple<'_>>
8364            for OPERATOR_CHURN_APPROVAL_TYPEHASHReturn {
8365                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8366                    Self { _0: tuple.0 }
8367                }
8368            }
8369        }
8370        #[automatically_derived]
8371        impl alloy_sol_types::SolCall for OPERATOR_CHURN_APPROVAL_TYPEHASHCall {
8372            type Parameters<'a> = ();
8373            type Token<'a> = <Self::Parameters<
8374                'a,
8375            > as alloy_sol_types::SolType>::Token<'a>;
8376            type Return = OPERATOR_CHURN_APPROVAL_TYPEHASHReturn;
8377            type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
8378            type ReturnToken<'a> = <Self::ReturnTuple<
8379                'a,
8380            > as alloy_sol_types::SolType>::Token<'a>;
8381            const SIGNATURE: &'static str = "OPERATOR_CHURN_APPROVAL_TYPEHASH()";
8382            const SELECTOR: [u8; 4] = [202u8, 13u8, 232u8, 130u8];
8383            #[inline]
8384            fn new<'a>(
8385                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
8386            ) -> Self {
8387                tuple.into()
8388            }
8389            #[inline]
8390            fn tokenize(&self) -> Self::Token<'_> {
8391                ()
8392            }
8393            #[inline]
8394            fn abi_decode_returns(
8395                data: &[u8],
8396                validate: bool,
8397            ) -> alloy_sol_types::Result<Self::Return> {
8398                <Self::ReturnTuple<
8399                    '_,
8400                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
8401                    .map(Into::into)
8402            }
8403        }
8404    };
8405    #[derive(Default, Debug, PartialEq, Eq, Hash)]
8406    /**Function with signature `PUBKEY_REGISTRATION_TYPEHASH()` and selector `0x9feab859`.
8407```solidity
8408function PUBKEY_REGISTRATION_TYPEHASH() external view returns (bytes32);
8409```*/
8410    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8411    #[derive(Clone)]
8412    pub struct PUBKEY_REGISTRATION_TYPEHASHCall {}
8413    #[derive(Default, Debug, PartialEq, Eq, Hash)]
8414    ///Container type for the return parameters of the [`PUBKEY_REGISTRATION_TYPEHASH()`](PUBKEY_REGISTRATION_TYPEHASHCall) function.
8415    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8416    #[derive(Clone)]
8417    pub struct PUBKEY_REGISTRATION_TYPEHASHReturn {
8418        #[allow(missing_docs)]
8419        pub _0: alloy::sol_types::private::FixedBytes<32>,
8420    }
8421    #[allow(
8422        non_camel_case_types,
8423        non_snake_case,
8424        clippy::pub_underscore_fields,
8425        clippy::style
8426    )]
8427    const _: () = {
8428        use alloy::sol_types as alloy_sol_types;
8429        {
8430            #[doc(hidden)]
8431            type UnderlyingSolTuple<'a> = ();
8432            #[doc(hidden)]
8433            type UnderlyingRustTuple<'a> = ();
8434            #[cfg(test)]
8435            #[allow(dead_code, unreachable_patterns)]
8436            fn _type_assertion(
8437                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8438            ) {
8439                match _t {
8440                    alloy_sol_types::private::AssertTypeEq::<
8441                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8442                    >(_) => {}
8443                }
8444            }
8445            #[automatically_derived]
8446            #[doc(hidden)]
8447            impl ::core::convert::From<PUBKEY_REGISTRATION_TYPEHASHCall>
8448            for UnderlyingRustTuple<'_> {
8449                fn from(value: PUBKEY_REGISTRATION_TYPEHASHCall) -> Self {
8450                    ()
8451                }
8452            }
8453            #[automatically_derived]
8454            #[doc(hidden)]
8455            impl ::core::convert::From<UnderlyingRustTuple<'_>>
8456            for PUBKEY_REGISTRATION_TYPEHASHCall {
8457                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8458                    Self {}
8459                }
8460            }
8461        }
8462        {
8463            #[doc(hidden)]
8464            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
8465            #[doc(hidden)]
8466            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
8467            #[cfg(test)]
8468            #[allow(dead_code, unreachable_patterns)]
8469            fn _type_assertion(
8470                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8471            ) {
8472                match _t {
8473                    alloy_sol_types::private::AssertTypeEq::<
8474                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8475                    >(_) => {}
8476                }
8477            }
8478            #[automatically_derived]
8479            #[doc(hidden)]
8480            impl ::core::convert::From<PUBKEY_REGISTRATION_TYPEHASHReturn>
8481            for UnderlyingRustTuple<'_> {
8482                fn from(value: PUBKEY_REGISTRATION_TYPEHASHReturn) -> Self {
8483                    (value._0,)
8484                }
8485            }
8486            #[automatically_derived]
8487            #[doc(hidden)]
8488            impl ::core::convert::From<UnderlyingRustTuple<'_>>
8489            for PUBKEY_REGISTRATION_TYPEHASHReturn {
8490                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8491                    Self { _0: tuple.0 }
8492                }
8493            }
8494        }
8495        #[automatically_derived]
8496        impl alloy_sol_types::SolCall for PUBKEY_REGISTRATION_TYPEHASHCall {
8497            type Parameters<'a> = ();
8498            type Token<'a> = <Self::Parameters<
8499                'a,
8500            > as alloy_sol_types::SolType>::Token<'a>;
8501            type Return = PUBKEY_REGISTRATION_TYPEHASHReturn;
8502            type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
8503            type ReturnToken<'a> = <Self::ReturnTuple<
8504                'a,
8505            > as alloy_sol_types::SolType>::Token<'a>;
8506            const SIGNATURE: &'static str = "PUBKEY_REGISTRATION_TYPEHASH()";
8507            const SELECTOR: [u8; 4] = [159u8, 234u8, 184u8, 89u8];
8508            #[inline]
8509            fn new<'a>(
8510                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
8511            ) -> Self {
8512                tuple.into()
8513            }
8514            #[inline]
8515            fn tokenize(&self) -> Self::Token<'_> {
8516                ()
8517            }
8518            #[inline]
8519            fn abi_decode_returns(
8520                data: &[u8],
8521                validate: bool,
8522            ) -> alloy_sol_types::Result<Self::Return> {
8523                <Self::ReturnTuple<
8524                    '_,
8525                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
8526                    .map(Into::into)
8527            }
8528        }
8529    };
8530    #[derive(Default, Debug, PartialEq, Eq, Hash)]
8531    /**Function with signature `allocationManager()` and selector `0xca8aa7c7`.
8532```solidity
8533function allocationManager() external view returns (address);
8534```*/
8535    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8536    #[derive(Clone)]
8537    pub struct allocationManagerCall {}
8538    #[derive(Default, Debug, PartialEq, Eq, Hash)]
8539    ///Container type for the return parameters of the [`allocationManager()`](allocationManagerCall) function.
8540    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8541    #[derive(Clone)]
8542    pub struct allocationManagerReturn {
8543        #[allow(missing_docs)]
8544        pub _0: alloy::sol_types::private::Address,
8545    }
8546    #[allow(
8547        non_camel_case_types,
8548        non_snake_case,
8549        clippy::pub_underscore_fields,
8550        clippy::style
8551    )]
8552    const _: () = {
8553        use alloy::sol_types as alloy_sol_types;
8554        {
8555            #[doc(hidden)]
8556            type UnderlyingSolTuple<'a> = ();
8557            #[doc(hidden)]
8558            type UnderlyingRustTuple<'a> = ();
8559            #[cfg(test)]
8560            #[allow(dead_code, unreachable_patterns)]
8561            fn _type_assertion(
8562                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8563            ) {
8564                match _t {
8565                    alloy_sol_types::private::AssertTypeEq::<
8566                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8567                    >(_) => {}
8568                }
8569            }
8570            #[automatically_derived]
8571            #[doc(hidden)]
8572            impl ::core::convert::From<allocationManagerCall>
8573            for UnderlyingRustTuple<'_> {
8574                fn from(value: allocationManagerCall) -> Self {
8575                    ()
8576                }
8577            }
8578            #[automatically_derived]
8579            #[doc(hidden)]
8580            impl ::core::convert::From<UnderlyingRustTuple<'_>>
8581            for allocationManagerCall {
8582                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8583                    Self {}
8584                }
8585            }
8586        }
8587        {
8588            #[doc(hidden)]
8589            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
8590            #[doc(hidden)]
8591            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
8592            #[cfg(test)]
8593            #[allow(dead_code, unreachable_patterns)]
8594            fn _type_assertion(
8595                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8596            ) {
8597                match _t {
8598                    alloy_sol_types::private::AssertTypeEq::<
8599                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8600                    >(_) => {}
8601                }
8602            }
8603            #[automatically_derived]
8604            #[doc(hidden)]
8605            impl ::core::convert::From<allocationManagerReturn>
8606            for UnderlyingRustTuple<'_> {
8607                fn from(value: allocationManagerReturn) -> Self {
8608                    (value._0,)
8609                }
8610            }
8611            #[automatically_derived]
8612            #[doc(hidden)]
8613            impl ::core::convert::From<UnderlyingRustTuple<'_>>
8614            for allocationManagerReturn {
8615                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8616                    Self { _0: tuple.0 }
8617                }
8618            }
8619        }
8620        #[automatically_derived]
8621        impl alloy_sol_types::SolCall for allocationManagerCall {
8622            type Parameters<'a> = ();
8623            type Token<'a> = <Self::Parameters<
8624                'a,
8625            > as alloy_sol_types::SolType>::Token<'a>;
8626            type Return = allocationManagerReturn;
8627            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
8628            type ReturnToken<'a> = <Self::ReturnTuple<
8629                'a,
8630            > as alloy_sol_types::SolType>::Token<'a>;
8631            const SIGNATURE: &'static str = "allocationManager()";
8632            const SELECTOR: [u8; 4] = [202u8, 138u8, 167u8, 199u8];
8633            #[inline]
8634            fn new<'a>(
8635                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
8636            ) -> Self {
8637                tuple.into()
8638            }
8639            #[inline]
8640            fn tokenize(&self) -> Self::Token<'_> {
8641                ()
8642            }
8643            #[inline]
8644            fn abi_decode_returns(
8645                data: &[u8],
8646                validate: bool,
8647            ) -> alloy_sol_types::Result<Self::Return> {
8648                <Self::ReturnTuple<
8649                    '_,
8650                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
8651                    .map(Into::into)
8652            }
8653        }
8654    };
8655    #[derive(Default, Debug, PartialEq, Eq, Hash)]
8656    /**Function with signature `avs()` and selector `0xde1164bb`.
8657```solidity
8658function avs() external view returns (address);
8659```*/
8660    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8661    #[derive(Clone)]
8662    pub struct avsCall {}
8663    #[derive(Default, Debug, PartialEq, Eq, Hash)]
8664    ///Container type for the return parameters of the [`avs()`](avsCall) function.
8665    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8666    #[derive(Clone)]
8667    pub struct avsReturn {
8668        #[allow(missing_docs)]
8669        pub _0: alloy::sol_types::private::Address,
8670    }
8671    #[allow(
8672        non_camel_case_types,
8673        non_snake_case,
8674        clippy::pub_underscore_fields,
8675        clippy::style
8676    )]
8677    const _: () = {
8678        use alloy::sol_types as alloy_sol_types;
8679        {
8680            #[doc(hidden)]
8681            type UnderlyingSolTuple<'a> = ();
8682            #[doc(hidden)]
8683            type UnderlyingRustTuple<'a> = ();
8684            #[cfg(test)]
8685            #[allow(dead_code, unreachable_patterns)]
8686            fn _type_assertion(
8687                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8688            ) {
8689                match _t {
8690                    alloy_sol_types::private::AssertTypeEq::<
8691                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8692                    >(_) => {}
8693                }
8694            }
8695            #[automatically_derived]
8696            #[doc(hidden)]
8697            impl ::core::convert::From<avsCall> for UnderlyingRustTuple<'_> {
8698                fn from(value: avsCall) -> Self {
8699                    ()
8700                }
8701            }
8702            #[automatically_derived]
8703            #[doc(hidden)]
8704            impl ::core::convert::From<UnderlyingRustTuple<'_>> for avsCall {
8705                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8706                    Self {}
8707                }
8708            }
8709        }
8710        {
8711            #[doc(hidden)]
8712            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
8713            #[doc(hidden)]
8714            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
8715            #[cfg(test)]
8716            #[allow(dead_code, unreachable_patterns)]
8717            fn _type_assertion(
8718                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8719            ) {
8720                match _t {
8721                    alloy_sol_types::private::AssertTypeEq::<
8722                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8723                    >(_) => {}
8724                }
8725            }
8726            #[automatically_derived]
8727            #[doc(hidden)]
8728            impl ::core::convert::From<avsReturn> for UnderlyingRustTuple<'_> {
8729                fn from(value: avsReturn) -> Self {
8730                    (value._0,)
8731                }
8732            }
8733            #[automatically_derived]
8734            #[doc(hidden)]
8735            impl ::core::convert::From<UnderlyingRustTuple<'_>> for avsReturn {
8736                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8737                    Self { _0: tuple.0 }
8738                }
8739            }
8740        }
8741        #[automatically_derived]
8742        impl alloy_sol_types::SolCall for avsCall {
8743            type Parameters<'a> = ();
8744            type Token<'a> = <Self::Parameters<
8745                'a,
8746            > as alloy_sol_types::SolType>::Token<'a>;
8747            type Return = avsReturn;
8748            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
8749            type ReturnToken<'a> = <Self::ReturnTuple<
8750                'a,
8751            > as alloy_sol_types::SolType>::Token<'a>;
8752            const SIGNATURE: &'static str = "avs()";
8753            const SELECTOR: [u8; 4] = [222u8, 17u8, 100u8, 187u8];
8754            #[inline]
8755            fn new<'a>(
8756                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
8757            ) -> Self {
8758                tuple.into()
8759            }
8760            #[inline]
8761            fn tokenize(&self) -> Self::Token<'_> {
8762                ()
8763            }
8764            #[inline]
8765            fn abi_decode_returns(
8766                data: &[u8],
8767                validate: bool,
8768            ) -> alloy_sol_types::Result<Self::Return> {
8769                <Self::ReturnTuple<
8770                    '_,
8771                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
8772                    .map(Into::into)
8773            }
8774        }
8775    };
8776    #[derive(Default, Debug, PartialEq, Eq, Hash)]
8777    /**Function with signature `blsApkRegistry()` and selector `0x5df45946`.
8778```solidity
8779function blsApkRegistry() external view returns (address);
8780```*/
8781    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8782    #[derive(Clone)]
8783    pub struct blsApkRegistryCall {}
8784    #[derive(Default, Debug, PartialEq, Eq, Hash)]
8785    ///Container type for the return parameters of the [`blsApkRegistry()`](blsApkRegistryCall) function.
8786    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8787    #[derive(Clone)]
8788    pub struct blsApkRegistryReturn {
8789        #[allow(missing_docs)]
8790        pub _0: alloy::sol_types::private::Address,
8791    }
8792    #[allow(
8793        non_camel_case_types,
8794        non_snake_case,
8795        clippy::pub_underscore_fields,
8796        clippy::style
8797    )]
8798    const _: () = {
8799        use alloy::sol_types as alloy_sol_types;
8800        {
8801            #[doc(hidden)]
8802            type UnderlyingSolTuple<'a> = ();
8803            #[doc(hidden)]
8804            type UnderlyingRustTuple<'a> = ();
8805            #[cfg(test)]
8806            #[allow(dead_code, unreachable_patterns)]
8807            fn _type_assertion(
8808                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8809            ) {
8810                match _t {
8811                    alloy_sol_types::private::AssertTypeEq::<
8812                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8813                    >(_) => {}
8814                }
8815            }
8816            #[automatically_derived]
8817            #[doc(hidden)]
8818            impl ::core::convert::From<blsApkRegistryCall> for UnderlyingRustTuple<'_> {
8819                fn from(value: blsApkRegistryCall) -> Self {
8820                    ()
8821                }
8822            }
8823            #[automatically_derived]
8824            #[doc(hidden)]
8825            impl ::core::convert::From<UnderlyingRustTuple<'_>> for blsApkRegistryCall {
8826                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8827                    Self {}
8828                }
8829            }
8830        }
8831        {
8832            #[doc(hidden)]
8833            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
8834            #[doc(hidden)]
8835            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
8836            #[cfg(test)]
8837            #[allow(dead_code, unreachable_patterns)]
8838            fn _type_assertion(
8839                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8840            ) {
8841                match _t {
8842                    alloy_sol_types::private::AssertTypeEq::<
8843                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8844                    >(_) => {}
8845                }
8846            }
8847            #[automatically_derived]
8848            #[doc(hidden)]
8849            impl ::core::convert::From<blsApkRegistryReturn>
8850            for UnderlyingRustTuple<'_> {
8851                fn from(value: blsApkRegistryReturn) -> Self {
8852                    (value._0,)
8853                }
8854            }
8855            #[automatically_derived]
8856            #[doc(hidden)]
8857            impl ::core::convert::From<UnderlyingRustTuple<'_>>
8858            for blsApkRegistryReturn {
8859                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8860                    Self { _0: tuple.0 }
8861                }
8862            }
8863        }
8864        #[automatically_derived]
8865        impl alloy_sol_types::SolCall for blsApkRegistryCall {
8866            type Parameters<'a> = ();
8867            type Token<'a> = <Self::Parameters<
8868                'a,
8869            > as alloy_sol_types::SolType>::Token<'a>;
8870            type Return = blsApkRegistryReturn;
8871            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
8872            type ReturnToken<'a> = <Self::ReturnTuple<
8873                'a,
8874            > as alloy_sol_types::SolType>::Token<'a>;
8875            const SIGNATURE: &'static str = "blsApkRegistry()";
8876            const SELECTOR: [u8; 4] = [93u8, 244u8, 89u8, 70u8];
8877            #[inline]
8878            fn new<'a>(
8879                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
8880            ) -> Self {
8881                tuple.into()
8882            }
8883            #[inline]
8884            fn tokenize(&self) -> Self::Token<'_> {
8885                ()
8886            }
8887            #[inline]
8888            fn abi_decode_returns(
8889                data: &[u8],
8890                validate: bool,
8891            ) -> alloy_sol_types::Result<Self::Return> {
8892                <Self::ReturnTuple<
8893                    '_,
8894                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
8895                    .map(Into::into)
8896            }
8897        }
8898    };
8899    #[derive(Default, Debug, PartialEq, Eq, Hash)]
8900    /**Function with signature `calculateOperatorChurnApprovalDigestHash(address,bytes32,(uint8,address)[],bytes32,uint256)` and selector `0x84ca5213`.
8901```solidity
8902function calculateOperatorChurnApprovalDigestHash(address registeringOperator, bytes32 registeringOperatorId, ISlashingRegistryCoordinatorTypes.OperatorKickParam[] memory operatorKickParams, bytes32 salt, uint256 expiry) external view returns (bytes32);
8903```*/
8904    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8905    #[derive(Clone)]
8906    pub struct calculateOperatorChurnApprovalDigestHashCall {
8907        #[allow(missing_docs)]
8908        pub registeringOperator: alloy::sol_types::private::Address,
8909        #[allow(missing_docs)]
8910        pub registeringOperatorId: alloy::sol_types::private::FixedBytes<32>,
8911        #[allow(missing_docs)]
8912        pub operatorKickParams: alloy::sol_types::private::Vec<
8913            <ISlashingRegistryCoordinatorTypes::OperatorKickParam as alloy::sol_types::SolType>::RustType,
8914        >,
8915        #[allow(missing_docs)]
8916        pub salt: alloy::sol_types::private::FixedBytes<32>,
8917        #[allow(missing_docs)]
8918        pub expiry: alloy::sol_types::private::primitives::aliases::U256,
8919    }
8920    #[derive(Default, Debug, PartialEq, Eq, Hash)]
8921    ///Container type for the return parameters of the [`calculateOperatorChurnApprovalDigestHash(address,bytes32,(uint8,address)[],bytes32,uint256)`](calculateOperatorChurnApprovalDigestHashCall) function.
8922    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8923    #[derive(Clone)]
8924    pub struct calculateOperatorChurnApprovalDigestHashReturn {
8925        #[allow(missing_docs)]
8926        pub _0: alloy::sol_types::private::FixedBytes<32>,
8927    }
8928    #[allow(
8929        non_camel_case_types,
8930        non_snake_case,
8931        clippy::pub_underscore_fields,
8932        clippy::style
8933    )]
8934    const _: () = {
8935        use alloy::sol_types as alloy_sol_types;
8936        {
8937            #[doc(hidden)]
8938            type UnderlyingSolTuple<'a> = (
8939                alloy::sol_types::sol_data::Address,
8940                alloy::sol_types::sol_data::FixedBytes<32>,
8941                alloy::sol_types::sol_data::Array<
8942                    ISlashingRegistryCoordinatorTypes::OperatorKickParam,
8943                >,
8944                alloy::sol_types::sol_data::FixedBytes<32>,
8945                alloy::sol_types::sol_data::Uint<256>,
8946            );
8947            #[doc(hidden)]
8948            type UnderlyingRustTuple<'a> = (
8949                alloy::sol_types::private::Address,
8950                alloy::sol_types::private::FixedBytes<32>,
8951                alloy::sol_types::private::Vec<
8952                    <ISlashingRegistryCoordinatorTypes::OperatorKickParam as alloy::sol_types::SolType>::RustType,
8953                >,
8954                alloy::sol_types::private::FixedBytes<32>,
8955                alloy::sol_types::private::primitives::aliases::U256,
8956            );
8957            #[cfg(test)]
8958            #[allow(dead_code, unreachable_patterns)]
8959            fn _type_assertion(
8960                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8961            ) {
8962                match _t {
8963                    alloy_sol_types::private::AssertTypeEq::<
8964                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8965                    >(_) => {}
8966                }
8967            }
8968            #[automatically_derived]
8969            #[doc(hidden)]
8970            impl ::core::convert::From<calculateOperatorChurnApprovalDigestHashCall>
8971            for UnderlyingRustTuple<'_> {
8972                fn from(value: calculateOperatorChurnApprovalDigestHashCall) -> Self {
8973                    (
8974                        value.registeringOperator,
8975                        value.registeringOperatorId,
8976                        value.operatorKickParams,
8977                        value.salt,
8978                        value.expiry,
8979                    )
8980                }
8981            }
8982            #[automatically_derived]
8983            #[doc(hidden)]
8984            impl ::core::convert::From<UnderlyingRustTuple<'_>>
8985            for calculateOperatorChurnApprovalDigestHashCall {
8986                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8987                    Self {
8988                        registeringOperator: tuple.0,
8989                        registeringOperatorId: tuple.1,
8990                        operatorKickParams: tuple.2,
8991                        salt: tuple.3,
8992                        expiry: tuple.4,
8993                    }
8994                }
8995            }
8996        }
8997        {
8998            #[doc(hidden)]
8999            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
9000            #[doc(hidden)]
9001            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
9002            #[cfg(test)]
9003            #[allow(dead_code, unreachable_patterns)]
9004            fn _type_assertion(
9005                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
9006            ) {
9007                match _t {
9008                    alloy_sol_types::private::AssertTypeEq::<
9009                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
9010                    >(_) => {}
9011                }
9012            }
9013            #[automatically_derived]
9014            #[doc(hidden)]
9015            impl ::core::convert::From<calculateOperatorChurnApprovalDigestHashReturn>
9016            for UnderlyingRustTuple<'_> {
9017                fn from(value: calculateOperatorChurnApprovalDigestHashReturn) -> Self {
9018                    (value._0,)
9019                }
9020            }
9021            #[automatically_derived]
9022            #[doc(hidden)]
9023            impl ::core::convert::From<UnderlyingRustTuple<'_>>
9024            for calculateOperatorChurnApprovalDigestHashReturn {
9025                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
9026                    Self { _0: tuple.0 }
9027                }
9028            }
9029        }
9030        #[automatically_derived]
9031        impl alloy_sol_types::SolCall for calculateOperatorChurnApprovalDigestHashCall {
9032            type Parameters<'a> = (
9033                alloy::sol_types::sol_data::Address,
9034                alloy::sol_types::sol_data::FixedBytes<32>,
9035                alloy::sol_types::sol_data::Array<
9036                    ISlashingRegistryCoordinatorTypes::OperatorKickParam,
9037                >,
9038                alloy::sol_types::sol_data::FixedBytes<32>,
9039                alloy::sol_types::sol_data::Uint<256>,
9040            );
9041            type Token<'a> = <Self::Parameters<
9042                'a,
9043            > as alloy_sol_types::SolType>::Token<'a>;
9044            type Return = calculateOperatorChurnApprovalDigestHashReturn;
9045            type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
9046            type ReturnToken<'a> = <Self::ReturnTuple<
9047                'a,
9048            > as alloy_sol_types::SolType>::Token<'a>;
9049            const SIGNATURE: &'static str = "calculateOperatorChurnApprovalDigestHash(address,bytes32,(uint8,address)[],bytes32,uint256)";
9050            const SELECTOR: [u8; 4] = [132u8, 202u8, 82u8, 19u8];
9051            #[inline]
9052            fn new<'a>(
9053                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
9054            ) -> Self {
9055                tuple.into()
9056            }
9057            #[inline]
9058            fn tokenize(&self) -> Self::Token<'_> {
9059                (
9060                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
9061                        &self.registeringOperator,
9062                    ),
9063                    <alloy::sol_types::sol_data::FixedBytes<
9064                        32,
9065                    > as alloy_sol_types::SolType>::tokenize(
9066                        &self.registeringOperatorId,
9067                    ),
9068                    <alloy::sol_types::sol_data::Array<
9069                        ISlashingRegistryCoordinatorTypes::OperatorKickParam,
9070                    > as alloy_sol_types::SolType>::tokenize(&self.operatorKickParams),
9071                    <alloy::sol_types::sol_data::FixedBytes<
9072                        32,
9073                    > as alloy_sol_types::SolType>::tokenize(&self.salt),
9074                    <alloy::sol_types::sol_data::Uint<
9075                        256,
9076                    > as alloy_sol_types::SolType>::tokenize(&self.expiry),
9077                )
9078            }
9079            #[inline]
9080            fn abi_decode_returns(
9081                data: &[u8],
9082                validate: bool,
9083            ) -> alloy_sol_types::Result<Self::Return> {
9084                <Self::ReturnTuple<
9085                    '_,
9086                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
9087                    .map(Into::into)
9088            }
9089        }
9090    };
9091    #[derive(Default, Debug, PartialEq, Eq, Hash)]
9092    /**Function with signature `calculatePubkeyRegistrationMessageHash(address)` and selector `0x73447992`.
9093```solidity
9094function calculatePubkeyRegistrationMessageHash(address operator) external view returns (bytes32);
9095```*/
9096    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9097    #[derive(Clone)]
9098    pub struct calculatePubkeyRegistrationMessageHashCall {
9099        #[allow(missing_docs)]
9100        pub operator: alloy::sol_types::private::Address,
9101    }
9102    #[derive(Default, Debug, PartialEq, Eq, Hash)]
9103    ///Container type for the return parameters of the [`calculatePubkeyRegistrationMessageHash(address)`](calculatePubkeyRegistrationMessageHashCall) function.
9104    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9105    #[derive(Clone)]
9106    pub struct calculatePubkeyRegistrationMessageHashReturn {
9107        #[allow(missing_docs)]
9108        pub _0: alloy::sol_types::private::FixedBytes<32>,
9109    }
9110    #[allow(
9111        non_camel_case_types,
9112        non_snake_case,
9113        clippy::pub_underscore_fields,
9114        clippy::style
9115    )]
9116    const _: () = {
9117        use alloy::sol_types as alloy_sol_types;
9118        {
9119            #[doc(hidden)]
9120            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
9121            #[doc(hidden)]
9122            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
9123            #[cfg(test)]
9124            #[allow(dead_code, unreachable_patterns)]
9125            fn _type_assertion(
9126                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
9127            ) {
9128                match _t {
9129                    alloy_sol_types::private::AssertTypeEq::<
9130                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
9131                    >(_) => {}
9132                }
9133            }
9134            #[automatically_derived]
9135            #[doc(hidden)]
9136            impl ::core::convert::From<calculatePubkeyRegistrationMessageHashCall>
9137            for UnderlyingRustTuple<'_> {
9138                fn from(value: calculatePubkeyRegistrationMessageHashCall) -> Self {
9139                    (value.operator,)
9140                }
9141            }
9142            #[automatically_derived]
9143            #[doc(hidden)]
9144            impl ::core::convert::From<UnderlyingRustTuple<'_>>
9145            for calculatePubkeyRegistrationMessageHashCall {
9146                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
9147                    Self { operator: tuple.0 }
9148                }
9149            }
9150        }
9151        {
9152            #[doc(hidden)]
9153            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
9154            #[doc(hidden)]
9155            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
9156            #[cfg(test)]
9157            #[allow(dead_code, unreachable_patterns)]
9158            fn _type_assertion(
9159                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
9160            ) {
9161                match _t {
9162                    alloy_sol_types::private::AssertTypeEq::<
9163                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
9164                    >(_) => {}
9165                }
9166            }
9167            #[automatically_derived]
9168            #[doc(hidden)]
9169            impl ::core::convert::From<calculatePubkeyRegistrationMessageHashReturn>
9170            for UnderlyingRustTuple<'_> {
9171                fn from(value: calculatePubkeyRegistrationMessageHashReturn) -> Self {
9172                    (value._0,)
9173                }
9174            }
9175            #[automatically_derived]
9176            #[doc(hidden)]
9177            impl ::core::convert::From<UnderlyingRustTuple<'_>>
9178            for calculatePubkeyRegistrationMessageHashReturn {
9179                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
9180                    Self { _0: tuple.0 }
9181                }
9182            }
9183        }
9184        #[automatically_derived]
9185        impl alloy_sol_types::SolCall for calculatePubkeyRegistrationMessageHashCall {
9186            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
9187            type Token<'a> = <Self::Parameters<
9188                'a,
9189            > as alloy_sol_types::SolType>::Token<'a>;
9190            type Return = calculatePubkeyRegistrationMessageHashReturn;
9191            type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
9192            type ReturnToken<'a> = <Self::ReturnTuple<
9193                'a,
9194            > as alloy_sol_types::SolType>::Token<'a>;
9195            const SIGNATURE: &'static str = "calculatePubkeyRegistrationMessageHash(address)";
9196            const SELECTOR: [u8; 4] = [115u8, 68u8, 121u8, 146u8];
9197            #[inline]
9198            fn new<'a>(
9199                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
9200            ) -> Self {
9201                tuple.into()
9202            }
9203            #[inline]
9204            fn tokenize(&self) -> Self::Token<'_> {
9205                (
9206                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
9207                        &self.operator,
9208                    ),
9209                )
9210            }
9211            #[inline]
9212            fn abi_decode_returns(
9213                data: &[u8],
9214                validate: bool,
9215            ) -> alloy_sol_types::Result<Self::Return> {
9216                <Self::ReturnTuple<
9217                    '_,
9218                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
9219                    .map(Into::into)
9220            }
9221        }
9222    };
9223    #[derive(Default, Debug, PartialEq, Eq, Hash)]
9224    /**Function with signature `churnApprover()` and selector `0x054310e6`.
9225```solidity
9226function churnApprover() external view returns (address);
9227```*/
9228    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9229    #[derive(Clone)]
9230    pub struct churnApproverCall {}
9231    #[derive(Default, Debug, PartialEq, Eq, Hash)]
9232    ///Container type for the return parameters of the [`churnApprover()`](churnApproverCall) function.
9233    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9234    #[derive(Clone)]
9235    pub struct churnApproverReturn {
9236        #[allow(missing_docs)]
9237        pub _0: alloy::sol_types::private::Address,
9238    }
9239    #[allow(
9240        non_camel_case_types,
9241        non_snake_case,
9242        clippy::pub_underscore_fields,
9243        clippy::style
9244    )]
9245    const _: () = {
9246        use alloy::sol_types as alloy_sol_types;
9247        {
9248            #[doc(hidden)]
9249            type UnderlyingSolTuple<'a> = ();
9250            #[doc(hidden)]
9251            type UnderlyingRustTuple<'a> = ();
9252            #[cfg(test)]
9253            #[allow(dead_code, unreachable_patterns)]
9254            fn _type_assertion(
9255                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
9256            ) {
9257                match _t {
9258                    alloy_sol_types::private::AssertTypeEq::<
9259                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
9260                    >(_) => {}
9261                }
9262            }
9263            #[automatically_derived]
9264            #[doc(hidden)]
9265            impl ::core::convert::From<churnApproverCall> for UnderlyingRustTuple<'_> {
9266                fn from(value: churnApproverCall) -> Self {
9267                    ()
9268                }
9269            }
9270            #[automatically_derived]
9271            #[doc(hidden)]
9272            impl ::core::convert::From<UnderlyingRustTuple<'_>> for churnApproverCall {
9273                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
9274                    Self {}
9275                }
9276            }
9277        }
9278        {
9279            #[doc(hidden)]
9280            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
9281            #[doc(hidden)]
9282            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
9283            #[cfg(test)]
9284            #[allow(dead_code, unreachable_patterns)]
9285            fn _type_assertion(
9286                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
9287            ) {
9288                match _t {
9289                    alloy_sol_types::private::AssertTypeEq::<
9290                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
9291                    >(_) => {}
9292                }
9293            }
9294            #[automatically_derived]
9295            #[doc(hidden)]
9296            impl ::core::convert::From<churnApproverReturn> for UnderlyingRustTuple<'_> {
9297                fn from(value: churnApproverReturn) -> Self {
9298                    (value._0,)
9299                }
9300            }
9301            #[automatically_derived]
9302            #[doc(hidden)]
9303            impl ::core::convert::From<UnderlyingRustTuple<'_>> for churnApproverReturn {
9304                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
9305                    Self { _0: tuple.0 }
9306                }
9307            }
9308        }
9309        #[automatically_derived]
9310        impl alloy_sol_types::SolCall for churnApproverCall {
9311            type Parameters<'a> = ();
9312            type Token<'a> = <Self::Parameters<
9313                'a,
9314            > as alloy_sol_types::SolType>::Token<'a>;
9315            type Return = churnApproverReturn;
9316            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
9317            type ReturnToken<'a> = <Self::ReturnTuple<
9318                'a,
9319            > as alloy_sol_types::SolType>::Token<'a>;
9320            const SIGNATURE: &'static str = "churnApprover()";
9321            const SELECTOR: [u8; 4] = [5u8, 67u8, 16u8, 230u8];
9322            #[inline]
9323            fn new<'a>(
9324                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
9325            ) -> Self {
9326                tuple.into()
9327            }
9328            #[inline]
9329            fn tokenize(&self) -> Self::Token<'_> {
9330                ()
9331            }
9332            #[inline]
9333            fn abi_decode_returns(
9334                data: &[u8],
9335                validate: bool,
9336            ) -> alloy_sol_types::Result<Self::Return> {
9337                <Self::ReturnTuple<
9338                    '_,
9339                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
9340                    .map(Into::into)
9341            }
9342        }
9343    };
9344    #[derive(Default, Debug, PartialEq, Eq, Hash)]
9345    /**Function with signature `createSlashableStakeQuorum((uint32,uint16,uint16),uint96,(address,uint96)[],uint32)` and selector `0x3eef3a51`.
9346```solidity
9347function createSlashableStakeQuorum(ISlashingRegistryCoordinatorTypes.OperatorSetParam memory operatorSetParams, uint96 minimumStake, IStakeRegistryTypes.StrategyParams[] memory strategyParams, uint32 lookAheadPeriod) external;
9348```*/
9349    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9350    #[derive(Clone)]
9351    pub struct createSlashableStakeQuorumCall {
9352        #[allow(missing_docs)]
9353        pub operatorSetParams: <ISlashingRegistryCoordinatorTypes::OperatorSetParam as alloy::sol_types::SolType>::RustType,
9354        #[allow(missing_docs)]
9355        pub minimumStake: alloy::sol_types::private::primitives::aliases::U96,
9356        #[allow(missing_docs)]
9357        pub strategyParams: alloy::sol_types::private::Vec<
9358            <IStakeRegistryTypes::StrategyParams as alloy::sol_types::SolType>::RustType,
9359        >,
9360        #[allow(missing_docs)]
9361        pub lookAheadPeriod: u32,
9362    }
9363    ///Container type for the return parameters of the [`createSlashableStakeQuorum((uint32,uint16,uint16),uint96,(address,uint96)[],uint32)`](createSlashableStakeQuorumCall) function.
9364    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9365    #[derive(Clone)]
9366    pub struct createSlashableStakeQuorumReturn {}
9367    #[allow(
9368        non_camel_case_types,
9369        non_snake_case,
9370        clippy::pub_underscore_fields,
9371        clippy::style
9372    )]
9373    const _: () = {
9374        use alloy::sol_types as alloy_sol_types;
9375        {
9376            #[doc(hidden)]
9377            type UnderlyingSolTuple<'a> = (
9378                ISlashingRegistryCoordinatorTypes::OperatorSetParam,
9379                alloy::sol_types::sol_data::Uint<96>,
9380                alloy::sol_types::sol_data::Array<IStakeRegistryTypes::StrategyParams>,
9381                alloy::sol_types::sol_data::Uint<32>,
9382            );
9383            #[doc(hidden)]
9384            type UnderlyingRustTuple<'a> = (
9385                <ISlashingRegistryCoordinatorTypes::OperatorSetParam as alloy::sol_types::SolType>::RustType,
9386                alloy::sol_types::private::primitives::aliases::U96,
9387                alloy::sol_types::private::Vec<
9388                    <IStakeRegistryTypes::StrategyParams as alloy::sol_types::SolType>::RustType,
9389                >,
9390                u32,
9391            );
9392            #[cfg(test)]
9393            #[allow(dead_code, unreachable_patterns)]
9394            fn _type_assertion(
9395                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
9396            ) {
9397                match _t {
9398                    alloy_sol_types::private::AssertTypeEq::<
9399                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
9400                    >(_) => {}
9401                }
9402            }
9403            #[automatically_derived]
9404            #[doc(hidden)]
9405            impl ::core::convert::From<createSlashableStakeQuorumCall>
9406            for UnderlyingRustTuple<'_> {
9407                fn from(value: createSlashableStakeQuorumCall) -> Self {
9408                    (
9409                        value.operatorSetParams,
9410                        value.minimumStake,
9411                        value.strategyParams,
9412                        value.lookAheadPeriod,
9413                    )
9414                }
9415            }
9416            #[automatically_derived]
9417            #[doc(hidden)]
9418            impl ::core::convert::From<UnderlyingRustTuple<'_>>
9419            for createSlashableStakeQuorumCall {
9420                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
9421                    Self {
9422                        operatorSetParams: tuple.0,
9423                        minimumStake: tuple.1,
9424                        strategyParams: tuple.2,
9425                        lookAheadPeriod: tuple.3,
9426                    }
9427                }
9428            }
9429        }
9430        {
9431            #[doc(hidden)]
9432            type UnderlyingSolTuple<'a> = ();
9433            #[doc(hidden)]
9434            type UnderlyingRustTuple<'a> = ();
9435            #[cfg(test)]
9436            #[allow(dead_code, unreachable_patterns)]
9437            fn _type_assertion(
9438                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
9439            ) {
9440                match _t {
9441                    alloy_sol_types::private::AssertTypeEq::<
9442                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
9443                    >(_) => {}
9444                }
9445            }
9446            #[automatically_derived]
9447            #[doc(hidden)]
9448            impl ::core::convert::From<createSlashableStakeQuorumReturn>
9449            for UnderlyingRustTuple<'_> {
9450                fn from(value: createSlashableStakeQuorumReturn) -> Self {
9451                    ()
9452                }
9453            }
9454            #[automatically_derived]
9455            #[doc(hidden)]
9456            impl ::core::convert::From<UnderlyingRustTuple<'_>>
9457            for createSlashableStakeQuorumReturn {
9458                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
9459                    Self {}
9460                }
9461            }
9462        }
9463        #[automatically_derived]
9464        impl alloy_sol_types::SolCall for createSlashableStakeQuorumCall {
9465            type Parameters<'a> = (
9466                ISlashingRegistryCoordinatorTypes::OperatorSetParam,
9467                alloy::sol_types::sol_data::Uint<96>,
9468                alloy::sol_types::sol_data::Array<IStakeRegistryTypes::StrategyParams>,
9469                alloy::sol_types::sol_data::Uint<32>,
9470            );
9471            type Token<'a> = <Self::Parameters<
9472                'a,
9473            > as alloy_sol_types::SolType>::Token<'a>;
9474            type Return = createSlashableStakeQuorumReturn;
9475            type ReturnTuple<'a> = ();
9476            type ReturnToken<'a> = <Self::ReturnTuple<
9477                'a,
9478            > as alloy_sol_types::SolType>::Token<'a>;
9479            const SIGNATURE: &'static str = "createSlashableStakeQuorum((uint32,uint16,uint16),uint96,(address,uint96)[],uint32)";
9480            const SELECTOR: [u8; 4] = [62u8, 239u8, 58u8, 81u8];
9481            #[inline]
9482            fn new<'a>(
9483                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
9484            ) -> Self {
9485                tuple.into()
9486            }
9487            #[inline]
9488            fn tokenize(&self) -> Self::Token<'_> {
9489                (
9490                    <ISlashingRegistryCoordinatorTypes::OperatorSetParam as alloy_sol_types::SolType>::tokenize(
9491                        &self.operatorSetParams,
9492                    ),
9493                    <alloy::sol_types::sol_data::Uint<
9494                        96,
9495                    > as alloy_sol_types::SolType>::tokenize(&self.minimumStake),
9496                    <alloy::sol_types::sol_data::Array<
9497                        IStakeRegistryTypes::StrategyParams,
9498                    > as alloy_sol_types::SolType>::tokenize(&self.strategyParams),
9499                    <alloy::sol_types::sol_data::Uint<
9500                        32,
9501                    > as alloy_sol_types::SolType>::tokenize(&self.lookAheadPeriod),
9502                )
9503            }
9504            #[inline]
9505            fn abi_decode_returns(
9506                data: &[u8],
9507                validate: bool,
9508            ) -> alloy_sol_types::Result<Self::Return> {
9509                <Self::ReturnTuple<
9510                    '_,
9511                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
9512                    .map(Into::into)
9513            }
9514        }
9515    };
9516    #[derive(Default, Debug, PartialEq, Eq, Hash)]
9517    /**Function with signature `createTotalDelegatedStakeQuorum((uint32,uint16,uint16),uint96,(address,uint96)[])` and selector `0x8281ab75`.
9518```solidity
9519function createTotalDelegatedStakeQuorum(ISlashingRegistryCoordinatorTypes.OperatorSetParam memory operatorSetParams, uint96 minimumStake, IStakeRegistryTypes.StrategyParams[] memory strategyParams) external;
9520```*/
9521    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9522    #[derive(Clone)]
9523    pub struct createTotalDelegatedStakeQuorumCall {
9524        #[allow(missing_docs)]
9525        pub operatorSetParams: <ISlashingRegistryCoordinatorTypes::OperatorSetParam as alloy::sol_types::SolType>::RustType,
9526        #[allow(missing_docs)]
9527        pub minimumStake: alloy::sol_types::private::primitives::aliases::U96,
9528        #[allow(missing_docs)]
9529        pub strategyParams: alloy::sol_types::private::Vec<
9530            <IStakeRegistryTypes::StrategyParams as alloy::sol_types::SolType>::RustType,
9531        >,
9532    }
9533    ///Container type for the return parameters of the [`createTotalDelegatedStakeQuorum((uint32,uint16,uint16),uint96,(address,uint96)[])`](createTotalDelegatedStakeQuorumCall) function.
9534    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9535    #[derive(Clone)]
9536    pub struct createTotalDelegatedStakeQuorumReturn {}
9537    #[allow(
9538        non_camel_case_types,
9539        non_snake_case,
9540        clippy::pub_underscore_fields,
9541        clippy::style
9542    )]
9543    const _: () = {
9544        use alloy::sol_types as alloy_sol_types;
9545        {
9546            #[doc(hidden)]
9547            type UnderlyingSolTuple<'a> = (
9548                ISlashingRegistryCoordinatorTypes::OperatorSetParam,
9549                alloy::sol_types::sol_data::Uint<96>,
9550                alloy::sol_types::sol_data::Array<IStakeRegistryTypes::StrategyParams>,
9551            );
9552            #[doc(hidden)]
9553            type UnderlyingRustTuple<'a> = (
9554                <ISlashingRegistryCoordinatorTypes::OperatorSetParam as alloy::sol_types::SolType>::RustType,
9555                alloy::sol_types::private::primitives::aliases::U96,
9556                alloy::sol_types::private::Vec<
9557                    <IStakeRegistryTypes::StrategyParams as alloy::sol_types::SolType>::RustType,
9558                >,
9559            );
9560            #[cfg(test)]
9561            #[allow(dead_code, unreachable_patterns)]
9562            fn _type_assertion(
9563                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
9564            ) {
9565                match _t {
9566                    alloy_sol_types::private::AssertTypeEq::<
9567                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
9568                    >(_) => {}
9569                }
9570            }
9571            #[automatically_derived]
9572            #[doc(hidden)]
9573            impl ::core::convert::From<createTotalDelegatedStakeQuorumCall>
9574            for UnderlyingRustTuple<'_> {
9575                fn from(value: createTotalDelegatedStakeQuorumCall) -> Self {
9576                    (value.operatorSetParams, value.minimumStake, value.strategyParams)
9577                }
9578            }
9579            #[automatically_derived]
9580            #[doc(hidden)]
9581            impl ::core::convert::From<UnderlyingRustTuple<'_>>
9582            for createTotalDelegatedStakeQuorumCall {
9583                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
9584                    Self {
9585                        operatorSetParams: tuple.0,
9586                        minimumStake: tuple.1,
9587                        strategyParams: tuple.2,
9588                    }
9589                }
9590            }
9591        }
9592        {
9593            #[doc(hidden)]
9594            type UnderlyingSolTuple<'a> = ();
9595            #[doc(hidden)]
9596            type UnderlyingRustTuple<'a> = ();
9597            #[cfg(test)]
9598            #[allow(dead_code, unreachable_patterns)]
9599            fn _type_assertion(
9600                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
9601            ) {
9602                match _t {
9603                    alloy_sol_types::private::AssertTypeEq::<
9604                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
9605                    >(_) => {}
9606                }
9607            }
9608            #[automatically_derived]
9609            #[doc(hidden)]
9610            impl ::core::convert::From<createTotalDelegatedStakeQuorumReturn>
9611            for UnderlyingRustTuple<'_> {
9612                fn from(value: createTotalDelegatedStakeQuorumReturn) -> Self {
9613                    ()
9614                }
9615            }
9616            #[automatically_derived]
9617            #[doc(hidden)]
9618            impl ::core::convert::From<UnderlyingRustTuple<'_>>
9619            for createTotalDelegatedStakeQuorumReturn {
9620                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
9621                    Self {}
9622                }
9623            }
9624        }
9625        #[automatically_derived]
9626        impl alloy_sol_types::SolCall for createTotalDelegatedStakeQuorumCall {
9627            type Parameters<'a> = (
9628                ISlashingRegistryCoordinatorTypes::OperatorSetParam,
9629                alloy::sol_types::sol_data::Uint<96>,
9630                alloy::sol_types::sol_data::Array<IStakeRegistryTypes::StrategyParams>,
9631            );
9632            type Token<'a> = <Self::Parameters<
9633                'a,
9634            > as alloy_sol_types::SolType>::Token<'a>;
9635            type Return = createTotalDelegatedStakeQuorumReturn;
9636            type ReturnTuple<'a> = ();
9637            type ReturnToken<'a> = <Self::ReturnTuple<
9638                'a,
9639            > as alloy_sol_types::SolType>::Token<'a>;
9640            const SIGNATURE: &'static str = "createTotalDelegatedStakeQuorum((uint32,uint16,uint16),uint96,(address,uint96)[])";
9641            const SELECTOR: [u8; 4] = [130u8, 129u8, 171u8, 117u8];
9642            #[inline]
9643            fn new<'a>(
9644                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
9645            ) -> Self {
9646                tuple.into()
9647            }
9648            #[inline]
9649            fn tokenize(&self) -> Self::Token<'_> {
9650                (
9651                    <ISlashingRegistryCoordinatorTypes::OperatorSetParam as alloy_sol_types::SolType>::tokenize(
9652                        &self.operatorSetParams,
9653                    ),
9654                    <alloy::sol_types::sol_data::Uint<
9655                        96,
9656                    > as alloy_sol_types::SolType>::tokenize(&self.minimumStake),
9657                    <alloy::sol_types::sol_data::Array<
9658                        IStakeRegistryTypes::StrategyParams,
9659                    > as alloy_sol_types::SolType>::tokenize(&self.strategyParams),
9660                )
9661            }
9662            #[inline]
9663            fn abi_decode_returns(
9664                data: &[u8],
9665                validate: bool,
9666            ) -> alloy_sol_types::Result<Self::Return> {
9667                <Self::ReturnTuple<
9668                    '_,
9669                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
9670                    .map(Into::into)
9671            }
9672        }
9673    };
9674    #[derive(Default, Debug, PartialEq, Eq, Hash)]
9675    /**Function with signature `deregisterOperator(address,address,uint32[])` and selector `0x303ca956`.
9676```solidity
9677function deregisterOperator(address operator, address avs, uint32[] memory operatorSetIds) external;
9678```*/
9679    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9680    #[derive(Clone)]
9681    pub struct deregisterOperatorCall {
9682        #[allow(missing_docs)]
9683        pub operator: alloy::sol_types::private::Address,
9684        #[allow(missing_docs)]
9685        pub avs: alloy::sol_types::private::Address,
9686        #[allow(missing_docs)]
9687        pub operatorSetIds: alloy::sol_types::private::Vec<u32>,
9688    }
9689    ///Container type for the return parameters of the [`deregisterOperator(address,address,uint32[])`](deregisterOperatorCall) function.
9690    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9691    #[derive(Clone)]
9692    pub struct deregisterOperatorReturn {}
9693    #[allow(
9694        non_camel_case_types,
9695        non_snake_case,
9696        clippy::pub_underscore_fields,
9697        clippy::style
9698    )]
9699    const _: () = {
9700        use alloy::sol_types as alloy_sol_types;
9701        {
9702            #[doc(hidden)]
9703            type UnderlyingSolTuple<'a> = (
9704                alloy::sol_types::sol_data::Address,
9705                alloy::sol_types::sol_data::Address,
9706                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<32>>,
9707            );
9708            #[doc(hidden)]
9709            type UnderlyingRustTuple<'a> = (
9710                alloy::sol_types::private::Address,
9711                alloy::sol_types::private::Address,
9712                alloy::sol_types::private::Vec<u32>,
9713            );
9714            #[cfg(test)]
9715            #[allow(dead_code, unreachable_patterns)]
9716            fn _type_assertion(
9717                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
9718            ) {
9719                match _t {
9720                    alloy_sol_types::private::AssertTypeEq::<
9721                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
9722                    >(_) => {}
9723                }
9724            }
9725            #[automatically_derived]
9726            #[doc(hidden)]
9727            impl ::core::convert::From<deregisterOperatorCall>
9728            for UnderlyingRustTuple<'_> {
9729                fn from(value: deregisterOperatorCall) -> Self {
9730                    (value.operator, value.avs, value.operatorSetIds)
9731                }
9732            }
9733            #[automatically_derived]
9734            #[doc(hidden)]
9735            impl ::core::convert::From<UnderlyingRustTuple<'_>>
9736            for deregisterOperatorCall {
9737                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
9738                    Self {
9739                        operator: tuple.0,
9740                        avs: tuple.1,
9741                        operatorSetIds: tuple.2,
9742                    }
9743                }
9744            }
9745        }
9746        {
9747            #[doc(hidden)]
9748            type UnderlyingSolTuple<'a> = ();
9749            #[doc(hidden)]
9750            type UnderlyingRustTuple<'a> = ();
9751            #[cfg(test)]
9752            #[allow(dead_code, unreachable_patterns)]
9753            fn _type_assertion(
9754                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
9755            ) {
9756                match _t {
9757                    alloy_sol_types::private::AssertTypeEq::<
9758                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
9759                    >(_) => {}
9760                }
9761            }
9762            #[automatically_derived]
9763            #[doc(hidden)]
9764            impl ::core::convert::From<deregisterOperatorReturn>
9765            for UnderlyingRustTuple<'_> {
9766                fn from(value: deregisterOperatorReturn) -> Self {
9767                    ()
9768                }
9769            }
9770            #[automatically_derived]
9771            #[doc(hidden)]
9772            impl ::core::convert::From<UnderlyingRustTuple<'_>>
9773            for deregisterOperatorReturn {
9774                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
9775                    Self {}
9776                }
9777            }
9778        }
9779        #[automatically_derived]
9780        impl alloy_sol_types::SolCall for deregisterOperatorCall {
9781            type Parameters<'a> = (
9782                alloy::sol_types::sol_data::Address,
9783                alloy::sol_types::sol_data::Address,
9784                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<32>>,
9785            );
9786            type Token<'a> = <Self::Parameters<
9787                'a,
9788            > as alloy_sol_types::SolType>::Token<'a>;
9789            type Return = deregisterOperatorReturn;
9790            type ReturnTuple<'a> = ();
9791            type ReturnToken<'a> = <Self::ReturnTuple<
9792                'a,
9793            > as alloy_sol_types::SolType>::Token<'a>;
9794            const SIGNATURE: &'static str = "deregisterOperator(address,address,uint32[])";
9795            const SELECTOR: [u8; 4] = [48u8, 60u8, 169u8, 86u8];
9796            #[inline]
9797            fn new<'a>(
9798                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
9799            ) -> Self {
9800                tuple.into()
9801            }
9802            #[inline]
9803            fn tokenize(&self) -> Self::Token<'_> {
9804                (
9805                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
9806                        &self.operator,
9807                    ),
9808                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
9809                        &self.avs,
9810                    ),
9811                    <alloy::sol_types::sol_data::Array<
9812                        alloy::sol_types::sol_data::Uint<32>,
9813                    > as alloy_sol_types::SolType>::tokenize(&self.operatorSetIds),
9814                )
9815            }
9816            #[inline]
9817            fn abi_decode_returns(
9818                data: &[u8],
9819                validate: bool,
9820            ) -> alloy_sol_types::Result<Self::Return> {
9821                <Self::ReturnTuple<
9822                    '_,
9823                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
9824                    .map(Into::into)
9825            }
9826        }
9827    };
9828    #[derive(Default, Debug, PartialEq, Eq, Hash)]
9829    /**Function with signature `domainSeparator()` and selector `0xf698da25`.
9830```solidity
9831function domainSeparator() external view returns (bytes32);
9832```*/
9833    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9834    #[derive(Clone)]
9835    pub struct domainSeparatorCall {}
9836    #[derive(Default, Debug, PartialEq, Eq, Hash)]
9837    ///Container type for the return parameters of the [`domainSeparator()`](domainSeparatorCall) function.
9838    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9839    #[derive(Clone)]
9840    pub struct domainSeparatorReturn {
9841        #[allow(missing_docs)]
9842        pub _0: alloy::sol_types::private::FixedBytes<32>,
9843    }
9844    #[allow(
9845        non_camel_case_types,
9846        non_snake_case,
9847        clippy::pub_underscore_fields,
9848        clippy::style
9849    )]
9850    const _: () = {
9851        use alloy::sol_types as alloy_sol_types;
9852        {
9853            #[doc(hidden)]
9854            type UnderlyingSolTuple<'a> = ();
9855            #[doc(hidden)]
9856            type UnderlyingRustTuple<'a> = ();
9857            #[cfg(test)]
9858            #[allow(dead_code, unreachable_patterns)]
9859            fn _type_assertion(
9860                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
9861            ) {
9862                match _t {
9863                    alloy_sol_types::private::AssertTypeEq::<
9864                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
9865                    >(_) => {}
9866                }
9867            }
9868            #[automatically_derived]
9869            #[doc(hidden)]
9870            impl ::core::convert::From<domainSeparatorCall> for UnderlyingRustTuple<'_> {
9871                fn from(value: domainSeparatorCall) -> Self {
9872                    ()
9873                }
9874            }
9875            #[automatically_derived]
9876            #[doc(hidden)]
9877            impl ::core::convert::From<UnderlyingRustTuple<'_>> for domainSeparatorCall {
9878                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
9879                    Self {}
9880                }
9881            }
9882        }
9883        {
9884            #[doc(hidden)]
9885            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
9886            #[doc(hidden)]
9887            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
9888            #[cfg(test)]
9889            #[allow(dead_code, unreachable_patterns)]
9890            fn _type_assertion(
9891                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
9892            ) {
9893                match _t {
9894                    alloy_sol_types::private::AssertTypeEq::<
9895                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
9896                    >(_) => {}
9897                }
9898            }
9899            #[automatically_derived]
9900            #[doc(hidden)]
9901            impl ::core::convert::From<domainSeparatorReturn>
9902            for UnderlyingRustTuple<'_> {
9903                fn from(value: domainSeparatorReturn) -> Self {
9904                    (value._0,)
9905                }
9906            }
9907            #[automatically_derived]
9908            #[doc(hidden)]
9909            impl ::core::convert::From<UnderlyingRustTuple<'_>>
9910            for domainSeparatorReturn {
9911                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
9912                    Self { _0: tuple.0 }
9913                }
9914            }
9915        }
9916        #[automatically_derived]
9917        impl alloy_sol_types::SolCall for domainSeparatorCall {
9918            type Parameters<'a> = ();
9919            type Token<'a> = <Self::Parameters<
9920                'a,
9921            > as alloy_sol_types::SolType>::Token<'a>;
9922            type Return = domainSeparatorReturn;
9923            type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
9924            type ReturnToken<'a> = <Self::ReturnTuple<
9925                'a,
9926            > as alloy_sol_types::SolType>::Token<'a>;
9927            const SIGNATURE: &'static str = "domainSeparator()";
9928            const SELECTOR: [u8; 4] = [246u8, 152u8, 218u8, 37u8];
9929            #[inline]
9930            fn new<'a>(
9931                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
9932            ) -> Self {
9933                tuple.into()
9934            }
9935            #[inline]
9936            fn tokenize(&self) -> Self::Token<'_> {
9937                ()
9938            }
9939            #[inline]
9940            fn abi_decode_returns(
9941                data: &[u8],
9942                validate: bool,
9943            ) -> alloy_sol_types::Result<Self::Return> {
9944                <Self::ReturnTuple<
9945                    '_,
9946                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
9947                    .map(Into::into)
9948            }
9949        }
9950    };
9951    #[derive(Default, Debug, PartialEq, Eq, Hash)]
9952    /**Function with signature `eip712Domain()` and selector `0x84b0196e`.
9953```solidity
9954function eip712Domain() external view returns (bytes1 fields, string memory name, string memory version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] memory extensions);
9955```*/
9956    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9957    #[derive(Clone)]
9958    pub struct eip712DomainCall {}
9959    #[derive(Default, Debug, PartialEq, Eq, Hash)]
9960    ///Container type for the return parameters of the [`eip712Domain()`](eip712DomainCall) function.
9961    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
9962    #[derive(Clone)]
9963    pub struct eip712DomainReturn {
9964        #[allow(missing_docs)]
9965        pub fields: alloy::sol_types::private::FixedBytes<1>,
9966        #[allow(missing_docs)]
9967        pub name: alloy::sol_types::private::String,
9968        #[allow(missing_docs)]
9969        pub version: alloy::sol_types::private::String,
9970        #[allow(missing_docs)]
9971        pub chainId: alloy::sol_types::private::primitives::aliases::U256,
9972        #[allow(missing_docs)]
9973        pub verifyingContract: alloy::sol_types::private::Address,
9974        #[allow(missing_docs)]
9975        pub salt: alloy::sol_types::private::FixedBytes<32>,
9976        #[allow(missing_docs)]
9977        pub extensions: alloy::sol_types::private::Vec<
9978            alloy::sol_types::private::primitives::aliases::U256,
9979        >,
9980    }
9981    #[allow(
9982        non_camel_case_types,
9983        non_snake_case,
9984        clippy::pub_underscore_fields,
9985        clippy::style
9986    )]
9987    const _: () = {
9988        use alloy::sol_types as alloy_sol_types;
9989        {
9990            #[doc(hidden)]
9991            type UnderlyingSolTuple<'a> = ();
9992            #[doc(hidden)]
9993            type UnderlyingRustTuple<'a> = ();
9994            #[cfg(test)]
9995            #[allow(dead_code, unreachable_patterns)]
9996            fn _type_assertion(
9997                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
9998            ) {
9999                match _t {
10000                    alloy_sol_types::private::AssertTypeEq::<
10001                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10002                    >(_) => {}
10003                }
10004            }
10005            #[automatically_derived]
10006            #[doc(hidden)]
10007            impl ::core::convert::From<eip712DomainCall> for UnderlyingRustTuple<'_> {
10008                fn from(value: eip712DomainCall) -> Self {
10009                    ()
10010                }
10011            }
10012            #[automatically_derived]
10013            #[doc(hidden)]
10014            impl ::core::convert::From<UnderlyingRustTuple<'_>> for eip712DomainCall {
10015                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10016                    Self {}
10017                }
10018            }
10019        }
10020        {
10021            #[doc(hidden)]
10022            type UnderlyingSolTuple<'a> = (
10023                alloy::sol_types::sol_data::FixedBytes<1>,
10024                alloy::sol_types::sol_data::String,
10025                alloy::sol_types::sol_data::String,
10026                alloy::sol_types::sol_data::Uint<256>,
10027                alloy::sol_types::sol_data::Address,
10028                alloy::sol_types::sol_data::FixedBytes<32>,
10029                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<256>>,
10030            );
10031            #[doc(hidden)]
10032            type UnderlyingRustTuple<'a> = (
10033                alloy::sol_types::private::FixedBytes<1>,
10034                alloy::sol_types::private::String,
10035                alloy::sol_types::private::String,
10036                alloy::sol_types::private::primitives::aliases::U256,
10037                alloy::sol_types::private::Address,
10038                alloy::sol_types::private::FixedBytes<32>,
10039                alloy::sol_types::private::Vec<
10040                    alloy::sol_types::private::primitives::aliases::U256,
10041                >,
10042            );
10043            #[cfg(test)]
10044            #[allow(dead_code, unreachable_patterns)]
10045            fn _type_assertion(
10046                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10047            ) {
10048                match _t {
10049                    alloy_sol_types::private::AssertTypeEq::<
10050                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10051                    >(_) => {}
10052                }
10053            }
10054            #[automatically_derived]
10055            #[doc(hidden)]
10056            impl ::core::convert::From<eip712DomainReturn> for UnderlyingRustTuple<'_> {
10057                fn from(value: eip712DomainReturn) -> Self {
10058                    (
10059                        value.fields,
10060                        value.name,
10061                        value.version,
10062                        value.chainId,
10063                        value.verifyingContract,
10064                        value.salt,
10065                        value.extensions,
10066                    )
10067                }
10068            }
10069            #[automatically_derived]
10070            #[doc(hidden)]
10071            impl ::core::convert::From<UnderlyingRustTuple<'_>> for eip712DomainReturn {
10072                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10073                    Self {
10074                        fields: tuple.0,
10075                        name: tuple.1,
10076                        version: tuple.2,
10077                        chainId: tuple.3,
10078                        verifyingContract: tuple.4,
10079                        salt: tuple.5,
10080                        extensions: tuple.6,
10081                    }
10082                }
10083            }
10084        }
10085        #[automatically_derived]
10086        impl alloy_sol_types::SolCall for eip712DomainCall {
10087            type Parameters<'a> = ();
10088            type Token<'a> = <Self::Parameters<
10089                'a,
10090            > as alloy_sol_types::SolType>::Token<'a>;
10091            type Return = eip712DomainReturn;
10092            type ReturnTuple<'a> = (
10093                alloy::sol_types::sol_data::FixedBytes<1>,
10094                alloy::sol_types::sol_data::String,
10095                alloy::sol_types::sol_data::String,
10096                alloy::sol_types::sol_data::Uint<256>,
10097                alloy::sol_types::sol_data::Address,
10098                alloy::sol_types::sol_data::FixedBytes<32>,
10099                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<256>>,
10100            );
10101            type ReturnToken<'a> = <Self::ReturnTuple<
10102                'a,
10103            > as alloy_sol_types::SolType>::Token<'a>;
10104            const SIGNATURE: &'static str = "eip712Domain()";
10105            const SELECTOR: [u8; 4] = [132u8, 176u8, 25u8, 110u8];
10106            #[inline]
10107            fn new<'a>(
10108                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
10109            ) -> Self {
10110                tuple.into()
10111            }
10112            #[inline]
10113            fn tokenize(&self) -> Self::Token<'_> {
10114                ()
10115            }
10116            #[inline]
10117            fn abi_decode_returns(
10118                data: &[u8],
10119                validate: bool,
10120            ) -> alloy_sol_types::Result<Self::Return> {
10121                <Self::ReturnTuple<
10122                    '_,
10123                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
10124                    .map(Into::into)
10125            }
10126        }
10127    };
10128    #[derive(Default, Debug, PartialEq, Eq, Hash)]
10129    /**Function with signature `ejectOperator(address,bytes)` and selector `0x6e3b17db`.
10130```solidity
10131function ejectOperator(address operator, bytes memory quorumNumbers) external;
10132```*/
10133    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10134    #[derive(Clone)]
10135    pub struct ejectOperatorCall {
10136        #[allow(missing_docs)]
10137        pub operator: alloy::sol_types::private::Address,
10138        #[allow(missing_docs)]
10139        pub quorumNumbers: alloy::sol_types::private::Bytes,
10140    }
10141    ///Container type for the return parameters of the [`ejectOperator(address,bytes)`](ejectOperatorCall) function.
10142    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10143    #[derive(Clone)]
10144    pub struct ejectOperatorReturn {}
10145    #[allow(
10146        non_camel_case_types,
10147        non_snake_case,
10148        clippy::pub_underscore_fields,
10149        clippy::style
10150    )]
10151    const _: () = {
10152        use alloy::sol_types as alloy_sol_types;
10153        {
10154            #[doc(hidden)]
10155            type UnderlyingSolTuple<'a> = (
10156                alloy::sol_types::sol_data::Address,
10157                alloy::sol_types::sol_data::Bytes,
10158            );
10159            #[doc(hidden)]
10160            type UnderlyingRustTuple<'a> = (
10161                alloy::sol_types::private::Address,
10162                alloy::sol_types::private::Bytes,
10163            );
10164            #[cfg(test)]
10165            #[allow(dead_code, unreachable_patterns)]
10166            fn _type_assertion(
10167                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10168            ) {
10169                match _t {
10170                    alloy_sol_types::private::AssertTypeEq::<
10171                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10172                    >(_) => {}
10173                }
10174            }
10175            #[automatically_derived]
10176            #[doc(hidden)]
10177            impl ::core::convert::From<ejectOperatorCall> for UnderlyingRustTuple<'_> {
10178                fn from(value: ejectOperatorCall) -> Self {
10179                    (value.operator, value.quorumNumbers)
10180                }
10181            }
10182            #[automatically_derived]
10183            #[doc(hidden)]
10184            impl ::core::convert::From<UnderlyingRustTuple<'_>> for ejectOperatorCall {
10185                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10186                    Self {
10187                        operator: tuple.0,
10188                        quorumNumbers: tuple.1,
10189                    }
10190                }
10191            }
10192        }
10193        {
10194            #[doc(hidden)]
10195            type UnderlyingSolTuple<'a> = ();
10196            #[doc(hidden)]
10197            type UnderlyingRustTuple<'a> = ();
10198            #[cfg(test)]
10199            #[allow(dead_code, unreachable_patterns)]
10200            fn _type_assertion(
10201                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10202            ) {
10203                match _t {
10204                    alloy_sol_types::private::AssertTypeEq::<
10205                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10206                    >(_) => {}
10207                }
10208            }
10209            #[automatically_derived]
10210            #[doc(hidden)]
10211            impl ::core::convert::From<ejectOperatorReturn> for UnderlyingRustTuple<'_> {
10212                fn from(value: ejectOperatorReturn) -> Self {
10213                    ()
10214                }
10215            }
10216            #[automatically_derived]
10217            #[doc(hidden)]
10218            impl ::core::convert::From<UnderlyingRustTuple<'_>> for ejectOperatorReturn {
10219                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10220                    Self {}
10221                }
10222            }
10223        }
10224        #[automatically_derived]
10225        impl alloy_sol_types::SolCall for ejectOperatorCall {
10226            type Parameters<'a> = (
10227                alloy::sol_types::sol_data::Address,
10228                alloy::sol_types::sol_data::Bytes,
10229            );
10230            type Token<'a> = <Self::Parameters<
10231                'a,
10232            > as alloy_sol_types::SolType>::Token<'a>;
10233            type Return = ejectOperatorReturn;
10234            type ReturnTuple<'a> = ();
10235            type ReturnToken<'a> = <Self::ReturnTuple<
10236                'a,
10237            > as alloy_sol_types::SolType>::Token<'a>;
10238            const SIGNATURE: &'static str = "ejectOperator(address,bytes)";
10239            const SELECTOR: [u8; 4] = [110u8, 59u8, 23u8, 219u8];
10240            #[inline]
10241            fn new<'a>(
10242                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
10243            ) -> Self {
10244                tuple.into()
10245            }
10246            #[inline]
10247            fn tokenize(&self) -> Self::Token<'_> {
10248                (
10249                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
10250                        &self.operator,
10251                    ),
10252                    <alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
10253                        &self.quorumNumbers,
10254                    ),
10255                )
10256            }
10257            #[inline]
10258            fn abi_decode_returns(
10259                data: &[u8],
10260                validate: bool,
10261            ) -> alloy_sol_types::Result<Self::Return> {
10262                <Self::ReturnTuple<
10263                    '_,
10264                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
10265                    .map(Into::into)
10266            }
10267        }
10268    };
10269    #[derive(Default, Debug, PartialEq, Eq, Hash)]
10270    /**Function with signature `ejectionCooldown()` and selector `0xa96f783e`.
10271```solidity
10272function ejectionCooldown() external view returns (uint256);
10273```*/
10274    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10275    #[derive(Clone)]
10276    pub struct ejectionCooldownCall {}
10277    #[derive(Default, Debug, PartialEq, Eq, Hash)]
10278    ///Container type for the return parameters of the [`ejectionCooldown()`](ejectionCooldownCall) function.
10279    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10280    #[derive(Clone)]
10281    pub struct ejectionCooldownReturn {
10282        #[allow(missing_docs)]
10283        pub _0: alloy::sol_types::private::primitives::aliases::U256,
10284    }
10285    #[allow(
10286        non_camel_case_types,
10287        non_snake_case,
10288        clippy::pub_underscore_fields,
10289        clippy::style
10290    )]
10291    const _: () = {
10292        use alloy::sol_types as alloy_sol_types;
10293        {
10294            #[doc(hidden)]
10295            type UnderlyingSolTuple<'a> = ();
10296            #[doc(hidden)]
10297            type UnderlyingRustTuple<'a> = ();
10298            #[cfg(test)]
10299            #[allow(dead_code, unreachable_patterns)]
10300            fn _type_assertion(
10301                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10302            ) {
10303                match _t {
10304                    alloy_sol_types::private::AssertTypeEq::<
10305                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10306                    >(_) => {}
10307                }
10308            }
10309            #[automatically_derived]
10310            #[doc(hidden)]
10311            impl ::core::convert::From<ejectionCooldownCall>
10312            for UnderlyingRustTuple<'_> {
10313                fn from(value: ejectionCooldownCall) -> Self {
10314                    ()
10315                }
10316            }
10317            #[automatically_derived]
10318            #[doc(hidden)]
10319            impl ::core::convert::From<UnderlyingRustTuple<'_>>
10320            for ejectionCooldownCall {
10321                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10322                    Self {}
10323                }
10324            }
10325        }
10326        {
10327            #[doc(hidden)]
10328            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
10329            #[doc(hidden)]
10330            type UnderlyingRustTuple<'a> = (
10331                alloy::sol_types::private::primitives::aliases::U256,
10332            );
10333            #[cfg(test)]
10334            #[allow(dead_code, unreachable_patterns)]
10335            fn _type_assertion(
10336                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10337            ) {
10338                match _t {
10339                    alloy_sol_types::private::AssertTypeEq::<
10340                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10341                    >(_) => {}
10342                }
10343            }
10344            #[automatically_derived]
10345            #[doc(hidden)]
10346            impl ::core::convert::From<ejectionCooldownReturn>
10347            for UnderlyingRustTuple<'_> {
10348                fn from(value: ejectionCooldownReturn) -> Self {
10349                    (value._0,)
10350                }
10351            }
10352            #[automatically_derived]
10353            #[doc(hidden)]
10354            impl ::core::convert::From<UnderlyingRustTuple<'_>>
10355            for ejectionCooldownReturn {
10356                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10357                    Self { _0: tuple.0 }
10358                }
10359            }
10360        }
10361        #[automatically_derived]
10362        impl alloy_sol_types::SolCall for ejectionCooldownCall {
10363            type Parameters<'a> = ();
10364            type Token<'a> = <Self::Parameters<
10365                'a,
10366            > as alloy_sol_types::SolType>::Token<'a>;
10367            type Return = ejectionCooldownReturn;
10368            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
10369            type ReturnToken<'a> = <Self::ReturnTuple<
10370                'a,
10371            > as alloy_sol_types::SolType>::Token<'a>;
10372            const SIGNATURE: &'static str = "ejectionCooldown()";
10373            const SELECTOR: [u8; 4] = [169u8, 111u8, 120u8, 62u8];
10374            #[inline]
10375            fn new<'a>(
10376                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
10377            ) -> Self {
10378                tuple.into()
10379            }
10380            #[inline]
10381            fn tokenize(&self) -> Self::Token<'_> {
10382                ()
10383            }
10384            #[inline]
10385            fn abi_decode_returns(
10386                data: &[u8],
10387                validate: bool,
10388            ) -> alloy_sol_types::Result<Self::Return> {
10389                <Self::ReturnTuple<
10390                    '_,
10391                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
10392                    .map(Into::into)
10393            }
10394        }
10395    };
10396    #[derive(Default, Debug, PartialEq, Eq, Hash)]
10397    /**Function with signature `ejector()` and selector `0x28f61b31`.
10398```solidity
10399function ejector() external view returns (address);
10400```*/
10401    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10402    #[derive(Clone)]
10403    pub struct ejectorCall {}
10404    #[derive(Default, Debug, PartialEq, Eq, Hash)]
10405    ///Container type for the return parameters of the [`ejector()`](ejectorCall) function.
10406    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10407    #[derive(Clone)]
10408    pub struct ejectorReturn {
10409        #[allow(missing_docs)]
10410        pub _0: alloy::sol_types::private::Address,
10411    }
10412    #[allow(
10413        non_camel_case_types,
10414        non_snake_case,
10415        clippy::pub_underscore_fields,
10416        clippy::style
10417    )]
10418    const _: () = {
10419        use alloy::sol_types as alloy_sol_types;
10420        {
10421            #[doc(hidden)]
10422            type UnderlyingSolTuple<'a> = ();
10423            #[doc(hidden)]
10424            type UnderlyingRustTuple<'a> = ();
10425            #[cfg(test)]
10426            #[allow(dead_code, unreachable_patterns)]
10427            fn _type_assertion(
10428                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10429            ) {
10430                match _t {
10431                    alloy_sol_types::private::AssertTypeEq::<
10432                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10433                    >(_) => {}
10434                }
10435            }
10436            #[automatically_derived]
10437            #[doc(hidden)]
10438            impl ::core::convert::From<ejectorCall> for UnderlyingRustTuple<'_> {
10439                fn from(value: ejectorCall) -> Self {
10440                    ()
10441                }
10442            }
10443            #[automatically_derived]
10444            #[doc(hidden)]
10445            impl ::core::convert::From<UnderlyingRustTuple<'_>> for ejectorCall {
10446                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10447                    Self {}
10448                }
10449            }
10450        }
10451        {
10452            #[doc(hidden)]
10453            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
10454            #[doc(hidden)]
10455            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
10456            #[cfg(test)]
10457            #[allow(dead_code, unreachable_patterns)]
10458            fn _type_assertion(
10459                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10460            ) {
10461                match _t {
10462                    alloy_sol_types::private::AssertTypeEq::<
10463                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10464                    >(_) => {}
10465                }
10466            }
10467            #[automatically_derived]
10468            #[doc(hidden)]
10469            impl ::core::convert::From<ejectorReturn> for UnderlyingRustTuple<'_> {
10470                fn from(value: ejectorReturn) -> Self {
10471                    (value._0,)
10472                }
10473            }
10474            #[automatically_derived]
10475            #[doc(hidden)]
10476            impl ::core::convert::From<UnderlyingRustTuple<'_>> for ejectorReturn {
10477                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10478                    Self { _0: tuple.0 }
10479                }
10480            }
10481        }
10482        #[automatically_derived]
10483        impl alloy_sol_types::SolCall for ejectorCall {
10484            type Parameters<'a> = ();
10485            type Token<'a> = <Self::Parameters<
10486                'a,
10487            > as alloy_sol_types::SolType>::Token<'a>;
10488            type Return = ejectorReturn;
10489            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
10490            type ReturnToken<'a> = <Self::ReturnTuple<
10491                'a,
10492            > as alloy_sol_types::SolType>::Token<'a>;
10493            const SIGNATURE: &'static str = "ejector()";
10494            const SELECTOR: [u8; 4] = [40u8, 246u8, 27u8, 49u8];
10495            #[inline]
10496            fn new<'a>(
10497                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
10498            ) -> Self {
10499                tuple.into()
10500            }
10501            #[inline]
10502            fn tokenize(&self) -> Self::Token<'_> {
10503                ()
10504            }
10505            #[inline]
10506            fn abi_decode_returns(
10507                data: &[u8],
10508                validate: bool,
10509            ) -> alloy_sol_types::Result<Self::Return> {
10510                <Self::ReturnTuple<
10511                    '_,
10512                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
10513                    .map(Into::into)
10514            }
10515        }
10516    };
10517    #[derive(Default, Debug, PartialEq, Eq, Hash)]
10518    /**Function with signature `getCurrentQuorumBitmap(bytes32)` and selector `0x871ef049`.
10519```solidity
10520function getCurrentQuorumBitmap(bytes32 operatorId) external view returns (uint192);
10521```*/
10522    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10523    #[derive(Clone)]
10524    pub struct getCurrentQuorumBitmapCall {
10525        #[allow(missing_docs)]
10526        pub operatorId: alloy::sol_types::private::FixedBytes<32>,
10527    }
10528    #[derive(Default, Debug, PartialEq, Eq, Hash)]
10529    ///Container type for the return parameters of the [`getCurrentQuorumBitmap(bytes32)`](getCurrentQuorumBitmapCall) function.
10530    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10531    #[derive(Clone)]
10532    pub struct getCurrentQuorumBitmapReturn {
10533        #[allow(missing_docs)]
10534        pub _0: alloy::sol_types::private::primitives::aliases::U192,
10535    }
10536    #[allow(
10537        non_camel_case_types,
10538        non_snake_case,
10539        clippy::pub_underscore_fields,
10540        clippy::style
10541    )]
10542    const _: () = {
10543        use alloy::sol_types as alloy_sol_types;
10544        {
10545            #[doc(hidden)]
10546            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
10547            #[doc(hidden)]
10548            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
10549            #[cfg(test)]
10550            #[allow(dead_code, unreachable_patterns)]
10551            fn _type_assertion(
10552                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10553            ) {
10554                match _t {
10555                    alloy_sol_types::private::AssertTypeEq::<
10556                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10557                    >(_) => {}
10558                }
10559            }
10560            #[automatically_derived]
10561            #[doc(hidden)]
10562            impl ::core::convert::From<getCurrentQuorumBitmapCall>
10563            for UnderlyingRustTuple<'_> {
10564                fn from(value: getCurrentQuorumBitmapCall) -> Self {
10565                    (value.operatorId,)
10566                }
10567            }
10568            #[automatically_derived]
10569            #[doc(hidden)]
10570            impl ::core::convert::From<UnderlyingRustTuple<'_>>
10571            for getCurrentQuorumBitmapCall {
10572                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10573                    Self { operatorId: tuple.0 }
10574                }
10575            }
10576        }
10577        {
10578            #[doc(hidden)]
10579            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<192>,);
10580            #[doc(hidden)]
10581            type UnderlyingRustTuple<'a> = (
10582                alloy::sol_types::private::primitives::aliases::U192,
10583            );
10584            #[cfg(test)]
10585            #[allow(dead_code, unreachable_patterns)]
10586            fn _type_assertion(
10587                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10588            ) {
10589                match _t {
10590                    alloy_sol_types::private::AssertTypeEq::<
10591                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10592                    >(_) => {}
10593                }
10594            }
10595            #[automatically_derived]
10596            #[doc(hidden)]
10597            impl ::core::convert::From<getCurrentQuorumBitmapReturn>
10598            for UnderlyingRustTuple<'_> {
10599                fn from(value: getCurrentQuorumBitmapReturn) -> Self {
10600                    (value._0,)
10601                }
10602            }
10603            #[automatically_derived]
10604            #[doc(hidden)]
10605            impl ::core::convert::From<UnderlyingRustTuple<'_>>
10606            for getCurrentQuorumBitmapReturn {
10607                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10608                    Self { _0: tuple.0 }
10609                }
10610            }
10611        }
10612        #[automatically_derived]
10613        impl alloy_sol_types::SolCall for getCurrentQuorumBitmapCall {
10614            type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
10615            type Token<'a> = <Self::Parameters<
10616                'a,
10617            > as alloy_sol_types::SolType>::Token<'a>;
10618            type Return = getCurrentQuorumBitmapReturn;
10619            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<192>,);
10620            type ReturnToken<'a> = <Self::ReturnTuple<
10621                'a,
10622            > as alloy_sol_types::SolType>::Token<'a>;
10623            const SIGNATURE: &'static str = "getCurrentQuorumBitmap(bytes32)";
10624            const SELECTOR: [u8; 4] = [135u8, 30u8, 240u8, 73u8];
10625            #[inline]
10626            fn new<'a>(
10627                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
10628            ) -> Self {
10629                tuple.into()
10630            }
10631            #[inline]
10632            fn tokenize(&self) -> Self::Token<'_> {
10633                (
10634                    <alloy::sol_types::sol_data::FixedBytes<
10635                        32,
10636                    > as alloy_sol_types::SolType>::tokenize(&self.operatorId),
10637                )
10638            }
10639            #[inline]
10640            fn abi_decode_returns(
10641                data: &[u8],
10642                validate: bool,
10643            ) -> alloy_sol_types::Result<Self::Return> {
10644                <Self::ReturnTuple<
10645                    '_,
10646                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
10647                    .map(Into::into)
10648            }
10649        }
10650    };
10651    #[derive(Default, Debug, PartialEq, Eq, Hash)]
10652    /**Function with signature `getOperator(address)` and selector `0x5865c60c`.
10653```solidity
10654function getOperator(address operator) external view returns (ISlashingRegistryCoordinatorTypes.OperatorInfo memory);
10655```*/
10656    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10657    #[derive(Clone)]
10658    pub struct getOperatorCall {
10659        #[allow(missing_docs)]
10660        pub operator: alloy::sol_types::private::Address,
10661    }
10662    #[derive()]
10663    ///Container type for the return parameters of the [`getOperator(address)`](getOperatorCall) function.
10664    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10665    #[derive(Clone)]
10666    pub struct getOperatorReturn {
10667        #[allow(missing_docs)]
10668        pub _0: <ISlashingRegistryCoordinatorTypes::OperatorInfo as alloy::sol_types::SolType>::RustType,
10669    }
10670    #[allow(
10671        non_camel_case_types,
10672        non_snake_case,
10673        clippy::pub_underscore_fields,
10674        clippy::style
10675    )]
10676    const _: () = {
10677        use alloy::sol_types as alloy_sol_types;
10678        {
10679            #[doc(hidden)]
10680            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
10681            #[doc(hidden)]
10682            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
10683            #[cfg(test)]
10684            #[allow(dead_code, unreachable_patterns)]
10685            fn _type_assertion(
10686                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10687            ) {
10688                match _t {
10689                    alloy_sol_types::private::AssertTypeEq::<
10690                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10691                    >(_) => {}
10692                }
10693            }
10694            #[automatically_derived]
10695            #[doc(hidden)]
10696            impl ::core::convert::From<getOperatorCall> for UnderlyingRustTuple<'_> {
10697                fn from(value: getOperatorCall) -> Self {
10698                    (value.operator,)
10699                }
10700            }
10701            #[automatically_derived]
10702            #[doc(hidden)]
10703            impl ::core::convert::From<UnderlyingRustTuple<'_>> for getOperatorCall {
10704                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10705                    Self { operator: tuple.0 }
10706                }
10707            }
10708        }
10709        {
10710            #[doc(hidden)]
10711            type UnderlyingSolTuple<'a> = (
10712                ISlashingRegistryCoordinatorTypes::OperatorInfo,
10713            );
10714            #[doc(hidden)]
10715            type UnderlyingRustTuple<'a> = (
10716                <ISlashingRegistryCoordinatorTypes::OperatorInfo as alloy::sol_types::SolType>::RustType,
10717            );
10718            #[cfg(test)]
10719            #[allow(dead_code, unreachable_patterns)]
10720            fn _type_assertion(
10721                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10722            ) {
10723                match _t {
10724                    alloy_sol_types::private::AssertTypeEq::<
10725                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10726                    >(_) => {}
10727                }
10728            }
10729            #[automatically_derived]
10730            #[doc(hidden)]
10731            impl ::core::convert::From<getOperatorReturn> for UnderlyingRustTuple<'_> {
10732                fn from(value: getOperatorReturn) -> Self {
10733                    (value._0,)
10734                }
10735            }
10736            #[automatically_derived]
10737            #[doc(hidden)]
10738            impl ::core::convert::From<UnderlyingRustTuple<'_>> for getOperatorReturn {
10739                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10740                    Self { _0: tuple.0 }
10741                }
10742            }
10743        }
10744        #[automatically_derived]
10745        impl alloy_sol_types::SolCall for getOperatorCall {
10746            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
10747            type Token<'a> = <Self::Parameters<
10748                'a,
10749            > as alloy_sol_types::SolType>::Token<'a>;
10750            type Return = getOperatorReturn;
10751            type ReturnTuple<'a> = (ISlashingRegistryCoordinatorTypes::OperatorInfo,);
10752            type ReturnToken<'a> = <Self::ReturnTuple<
10753                'a,
10754            > as alloy_sol_types::SolType>::Token<'a>;
10755            const SIGNATURE: &'static str = "getOperator(address)";
10756            const SELECTOR: [u8; 4] = [88u8, 101u8, 198u8, 12u8];
10757            #[inline]
10758            fn new<'a>(
10759                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
10760            ) -> Self {
10761                tuple.into()
10762            }
10763            #[inline]
10764            fn tokenize(&self) -> Self::Token<'_> {
10765                (
10766                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
10767                        &self.operator,
10768                    ),
10769                )
10770            }
10771            #[inline]
10772            fn abi_decode_returns(
10773                data: &[u8],
10774                validate: bool,
10775            ) -> alloy_sol_types::Result<Self::Return> {
10776                <Self::ReturnTuple<
10777                    '_,
10778                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
10779                    .map(Into::into)
10780            }
10781        }
10782    };
10783    #[derive(Default, Debug, PartialEq, Eq, Hash)]
10784    /**Function with signature `getOperatorFromId(bytes32)` and selector `0x296bb064`.
10785```solidity
10786function getOperatorFromId(bytes32 operatorId) external view returns (address);
10787```*/
10788    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10789    #[derive(Clone)]
10790    pub struct getOperatorFromIdCall {
10791        #[allow(missing_docs)]
10792        pub operatorId: alloy::sol_types::private::FixedBytes<32>,
10793    }
10794    #[derive(Default, Debug, PartialEq, Eq, Hash)]
10795    ///Container type for the return parameters of the [`getOperatorFromId(bytes32)`](getOperatorFromIdCall) function.
10796    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10797    #[derive(Clone)]
10798    pub struct getOperatorFromIdReturn {
10799        #[allow(missing_docs)]
10800        pub _0: alloy::sol_types::private::Address,
10801    }
10802    #[allow(
10803        non_camel_case_types,
10804        non_snake_case,
10805        clippy::pub_underscore_fields,
10806        clippy::style
10807    )]
10808    const _: () = {
10809        use alloy::sol_types as alloy_sol_types;
10810        {
10811            #[doc(hidden)]
10812            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
10813            #[doc(hidden)]
10814            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
10815            #[cfg(test)]
10816            #[allow(dead_code, unreachable_patterns)]
10817            fn _type_assertion(
10818                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10819            ) {
10820                match _t {
10821                    alloy_sol_types::private::AssertTypeEq::<
10822                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10823                    >(_) => {}
10824                }
10825            }
10826            #[automatically_derived]
10827            #[doc(hidden)]
10828            impl ::core::convert::From<getOperatorFromIdCall>
10829            for UnderlyingRustTuple<'_> {
10830                fn from(value: getOperatorFromIdCall) -> Self {
10831                    (value.operatorId,)
10832                }
10833            }
10834            #[automatically_derived]
10835            #[doc(hidden)]
10836            impl ::core::convert::From<UnderlyingRustTuple<'_>>
10837            for getOperatorFromIdCall {
10838                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10839                    Self { operatorId: tuple.0 }
10840                }
10841            }
10842        }
10843        {
10844            #[doc(hidden)]
10845            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
10846            #[doc(hidden)]
10847            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
10848            #[cfg(test)]
10849            #[allow(dead_code, unreachable_patterns)]
10850            fn _type_assertion(
10851                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10852            ) {
10853                match _t {
10854                    alloy_sol_types::private::AssertTypeEq::<
10855                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10856                    >(_) => {}
10857                }
10858            }
10859            #[automatically_derived]
10860            #[doc(hidden)]
10861            impl ::core::convert::From<getOperatorFromIdReturn>
10862            for UnderlyingRustTuple<'_> {
10863                fn from(value: getOperatorFromIdReturn) -> Self {
10864                    (value._0,)
10865                }
10866            }
10867            #[automatically_derived]
10868            #[doc(hidden)]
10869            impl ::core::convert::From<UnderlyingRustTuple<'_>>
10870            for getOperatorFromIdReturn {
10871                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10872                    Self { _0: tuple.0 }
10873                }
10874            }
10875        }
10876        #[automatically_derived]
10877        impl alloy_sol_types::SolCall for getOperatorFromIdCall {
10878            type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
10879            type Token<'a> = <Self::Parameters<
10880                'a,
10881            > as alloy_sol_types::SolType>::Token<'a>;
10882            type Return = getOperatorFromIdReturn;
10883            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
10884            type ReturnToken<'a> = <Self::ReturnTuple<
10885                'a,
10886            > as alloy_sol_types::SolType>::Token<'a>;
10887            const SIGNATURE: &'static str = "getOperatorFromId(bytes32)";
10888            const SELECTOR: [u8; 4] = [41u8, 107u8, 176u8, 100u8];
10889            #[inline]
10890            fn new<'a>(
10891                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
10892            ) -> Self {
10893                tuple.into()
10894            }
10895            #[inline]
10896            fn tokenize(&self) -> Self::Token<'_> {
10897                (
10898                    <alloy::sol_types::sol_data::FixedBytes<
10899                        32,
10900                    > as alloy_sol_types::SolType>::tokenize(&self.operatorId),
10901                )
10902            }
10903            #[inline]
10904            fn abi_decode_returns(
10905                data: &[u8],
10906                validate: bool,
10907            ) -> alloy_sol_types::Result<Self::Return> {
10908                <Self::ReturnTuple<
10909                    '_,
10910                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
10911                    .map(Into::into)
10912            }
10913        }
10914    };
10915    #[derive(Default, Debug, PartialEq, Eq, Hash)]
10916    /**Function with signature `getOperatorId(address)` and selector `0x13542a4e`.
10917```solidity
10918function getOperatorId(address operator) external view returns (bytes32);
10919```*/
10920    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10921    #[derive(Clone)]
10922    pub struct getOperatorIdCall {
10923        #[allow(missing_docs)]
10924        pub operator: alloy::sol_types::private::Address,
10925    }
10926    #[derive(Default, Debug, PartialEq, Eq, Hash)]
10927    ///Container type for the return parameters of the [`getOperatorId(address)`](getOperatorIdCall) function.
10928    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
10929    #[derive(Clone)]
10930    pub struct getOperatorIdReturn {
10931        #[allow(missing_docs)]
10932        pub _0: alloy::sol_types::private::FixedBytes<32>,
10933    }
10934    #[allow(
10935        non_camel_case_types,
10936        non_snake_case,
10937        clippy::pub_underscore_fields,
10938        clippy::style
10939    )]
10940    const _: () = {
10941        use alloy::sol_types as alloy_sol_types;
10942        {
10943            #[doc(hidden)]
10944            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
10945            #[doc(hidden)]
10946            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
10947            #[cfg(test)]
10948            #[allow(dead_code, unreachable_patterns)]
10949            fn _type_assertion(
10950                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10951            ) {
10952                match _t {
10953                    alloy_sol_types::private::AssertTypeEq::<
10954                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10955                    >(_) => {}
10956                }
10957            }
10958            #[automatically_derived]
10959            #[doc(hidden)]
10960            impl ::core::convert::From<getOperatorIdCall> for UnderlyingRustTuple<'_> {
10961                fn from(value: getOperatorIdCall) -> Self {
10962                    (value.operator,)
10963                }
10964            }
10965            #[automatically_derived]
10966            #[doc(hidden)]
10967            impl ::core::convert::From<UnderlyingRustTuple<'_>> for getOperatorIdCall {
10968                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
10969                    Self { operator: tuple.0 }
10970                }
10971            }
10972        }
10973        {
10974            #[doc(hidden)]
10975            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
10976            #[doc(hidden)]
10977            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
10978            #[cfg(test)]
10979            #[allow(dead_code, unreachable_patterns)]
10980            fn _type_assertion(
10981                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
10982            ) {
10983                match _t {
10984                    alloy_sol_types::private::AssertTypeEq::<
10985                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
10986                    >(_) => {}
10987                }
10988            }
10989            #[automatically_derived]
10990            #[doc(hidden)]
10991            impl ::core::convert::From<getOperatorIdReturn> for UnderlyingRustTuple<'_> {
10992                fn from(value: getOperatorIdReturn) -> Self {
10993                    (value._0,)
10994                }
10995            }
10996            #[automatically_derived]
10997            #[doc(hidden)]
10998            impl ::core::convert::From<UnderlyingRustTuple<'_>> for getOperatorIdReturn {
10999                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
11000                    Self { _0: tuple.0 }
11001                }
11002            }
11003        }
11004        #[automatically_derived]
11005        impl alloy_sol_types::SolCall for getOperatorIdCall {
11006            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
11007            type Token<'a> = <Self::Parameters<
11008                'a,
11009            > as alloy_sol_types::SolType>::Token<'a>;
11010            type Return = getOperatorIdReturn;
11011            type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
11012            type ReturnToken<'a> = <Self::ReturnTuple<
11013                'a,
11014            > as alloy_sol_types::SolType>::Token<'a>;
11015            const SIGNATURE: &'static str = "getOperatorId(address)";
11016            const SELECTOR: [u8; 4] = [19u8, 84u8, 42u8, 78u8];
11017            #[inline]
11018            fn new<'a>(
11019                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
11020            ) -> Self {
11021                tuple.into()
11022            }
11023            #[inline]
11024            fn tokenize(&self) -> Self::Token<'_> {
11025                (
11026                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
11027                        &self.operator,
11028                    ),
11029                )
11030            }
11031            #[inline]
11032            fn abi_decode_returns(
11033                data: &[u8],
11034                validate: bool,
11035            ) -> alloy_sol_types::Result<Self::Return> {
11036                <Self::ReturnTuple<
11037                    '_,
11038                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
11039                    .map(Into::into)
11040            }
11041        }
11042    };
11043    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11044    /**Function with signature `getOperatorSetParams(uint8)` and selector `0xe65797ad`.
11045```solidity
11046function getOperatorSetParams(uint8 quorumNumber) external view returns (ISlashingRegistryCoordinatorTypes.OperatorSetParam memory);
11047```*/
11048    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11049    #[derive(Clone)]
11050    pub struct getOperatorSetParamsCall {
11051        #[allow(missing_docs)]
11052        pub quorumNumber: u8,
11053    }
11054    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11055    ///Container type for the return parameters of the [`getOperatorSetParams(uint8)`](getOperatorSetParamsCall) function.
11056    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11057    #[derive(Clone)]
11058    pub struct getOperatorSetParamsReturn {
11059        #[allow(missing_docs)]
11060        pub _0: <ISlashingRegistryCoordinatorTypes::OperatorSetParam as alloy::sol_types::SolType>::RustType,
11061    }
11062    #[allow(
11063        non_camel_case_types,
11064        non_snake_case,
11065        clippy::pub_underscore_fields,
11066        clippy::style
11067    )]
11068    const _: () = {
11069        use alloy::sol_types as alloy_sol_types;
11070        {
11071            #[doc(hidden)]
11072            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,);
11073            #[doc(hidden)]
11074            type UnderlyingRustTuple<'a> = (u8,);
11075            #[cfg(test)]
11076            #[allow(dead_code, unreachable_patterns)]
11077            fn _type_assertion(
11078                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
11079            ) {
11080                match _t {
11081                    alloy_sol_types::private::AssertTypeEq::<
11082                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
11083                    >(_) => {}
11084                }
11085            }
11086            #[automatically_derived]
11087            #[doc(hidden)]
11088            impl ::core::convert::From<getOperatorSetParamsCall>
11089            for UnderlyingRustTuple<'_> {
11090                fn from(value: getOperatorSetParamsCall) -> Self {
11091                    (value.quorumNumber,)
11092                }
11093            }
11094            #[automatically_derived]
11095            #[doc(hidden)]
11096            impl ::core::convert::From<UnderlyingRustTuple<'_>>
11097            for getOperatorSetParamsCall {
11098                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
11099                    Self { quorumNumber: tuple.0 }
11100                }
11101            }
11102        }
11103        {
11104            #[doc(hidden)]
11105            type UnderlyingSolTuple<'a> = (
11106                ISlashingRegistryCoordinatorTypes::OperatorSetParam,
11107            );
11108            #[doc(hidden)]
11109            type UnderlyingRustTuple<'a> = (
11110                <ISlashingRegistryCoordinatorTypes::OperatorSetParam as alloy::sol_types::SolType>::RustType,
11111            );
11112            #[cfg(test)]
11113            #[allow(dead_code, unreachable_patterns)]
11114            fn _type_assertion(
11115                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
11116            ) {
11117                match _t {
11118                    alloy_sol_types::private::AssertTypeEq::<
11119                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
11120                    >(_) => {}
11121                }
11122            }
11123            #[automatically_derived]
11124            #[doc(hidden)]
11125            impl ::core::convert::From<getOperatorSetParamsReturn>
11126            for UnderlyingRustTuple<'_> {
11127                fn from(value: getOperatorSetParamsReturn) -> Self {
11128                    (value._0,)
11129                }
11130            }
11131            #[automatically_derived]
11132            #[doc(hidden)]
11133            impl ::core::convert::From<UnderlyingRustTuple<'_>>
11134            for getOperatorSetParamsReturn {
11135                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
11136                    Self { _0: tuple.0 }
11137                }
11138            }
11139        }
11140        #[automatically_derived]
11141        impl alloy_sol_types::SolCall for getOperatorSetParamsCall {
11142            type Parameters<'a> = (alloy::sol_types::sol_data::Uint<8>,);
11143            type Token<'a> = <Self::Parameters<
11144                'a,
11145            > as alloy_sol_types::SolType>::Token<'a>;
11146            type Return = getOperatorSetParamsReturn;
11147            type ReturnTuple<'a> = (
11148                ISlashingRegistryCoordinatorTypes::OperatorSetParam,
11149            );
11150            type ReturnToken<'a> = <Self::ReturnTuple<
11151                'a,
11152            > as alloy_sol_types::SolType>::Token<'a>;
11153            const SIGNATURE: &'static str = "getOperatorSetParams(uint8)";
11154            const SELECTOR: [u8; 4] = [230u8, 87u8, 151u8, 173u8];
11155            #[inline]
11156            fn new<'a>(
11157                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
11158            ) -> Self {
11159                tuple.into()
11160            }
11161            #[inline]
11162            fn tokenize(&self) -> Self::Token<'_> {
11163                (
11164                    <alloy::sol_types::sol_data::Uint<
11165                        8,
11166                    > as alloy_sol_types::SolType>::tokenize(&self.quorumNumber),
11167                )
11168            }
11169            #[inline]
11170            fn abi_decode_returns(
11171                data: &[u8],
11172                validate: bool,
11173            ) -> alloy_sol_types::Result<Self::Return> {
11174                <Self::ReturnTuple<
11175                    '_,
11176                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
11177                    .map(Into::into)
11178            }
11179        }
11180    };
11181    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11182    /**Function with signature `getOperatorStatus(address)` and selector `0xfd39105a`.
11183```solidity
11184function getOperatorStatus(address operator) external view returns (ISlashingRegistryCoordinatorTypes.OperatorStatus);
11185```*/
11186    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11187    #[derive(Clone)]
11188    pub struct getOperatorStatusCall {
11189        #[allow(missing_docs)]
11190        pub operator: alloy::sol_types::private::Address,
11191    }
11192    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11193    ///Container type for the return parameters of the [`getOperatorStatus(address)`](getOperatorStatusCall) function.
11194    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11195    #[derive(Clone)]
11196    pub struct getOperatorStatusReturn {
11197        #[allow(missing_docs)]
11198        pub _0: <ISlashingRegistryCoordinatorTypes::OperatorStatus as alloy::sol_types::SolType>::RustType,
11199    }
11200    #[allow(
11201        non_camel_case_types,
11202        non_snake_case,
11203        clippy::pub_underscore_fields,
11204        clippy::style
11205    )]
11206    const _: () = {
11207        use alloy::sol_types as alloy_sol_types;
11208        {
11209            #[doc(hidden)]
11210            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
11211            #[doc(hidden)]
11212            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
11213            #[cfg(test)]
11214            #[allow(dead_code, unreachable_patterns)]
11215            fn _type_assertion(
11216                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
11217            ) {
11218                match _t {
11219                    alloy_sol_types::private::AssertTypeEq::<
11220                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
11221                    >(_) => {}
11222                }
11223            }
11224            #[automatically_derived]
11225            #[doc(hidden)]
11226            impl ::core::convert::From<getOperatorStatusCall>
11227            for UnderlyingRustTuple<'_> {
11228                fn from(value: getOperatorStatusCall) -> Self {
11229                    (value.operator,)
11230                }
11231            }
11232            #[automatically_derived]
11233            #[doc(hidden)]
11234            impl ::core::convert::From<UnderlyingRustTuple<'_>>
11235            for getOperatorStatusCall {
11236                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
11237                    Self { operator: tuple.0 }
11238                }
11239            }
11240        }
11241        {
11242            #[doc(hidden)]
11243            type UnderlyingSolTuple<'a> = (
11244                ISlashingRegistryCoordinatorTypes::OperatorStatus,
11245            );
11246            #[doc(hidden)]
11247            type UnderlyingRustTuple<'a> = (
11248                <ISlashingRegistryCoordinatorTypes::OperatorStatus as alloy::sol_types::SolType>::RustType,
11249            );
11250            #[cfg(test)]
11251            #[allow(dead_code, unreachable_patterns)]
11252            fn _type_assertion(
11253                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
11254            ) {
11255                match _t {
11256                    alloy_sol_types::private::AssertTypeEq::<
11257                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
11258                    >(_) => {}
11259                }
11260            }
11261            #[automatically_derived]
11262            #[doc(hidden)]
11263            impl ::core::convert::From<getOperatorStatusReturn>
11264            for UnderlyingRustTuple<'_> {
11265                fn from(value: getOperatorStatusReturn) -> Self {
11266                    (value._0,)
11267                }
11268            }
11269            #[automatically_derived]
11270            #[doc(hidden)]
11271            impl ::core::convert::From<UnderlyingRustTuple<'_>>
11272            for getOperatorStatusReturn {
11273                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
11274                    Self { _0: tuple.0 }
11275                }
11276            }
11277        }
11278        #[automatically_derived]
11279        impl alloy_sol_types::SolCall for getOperatorStatusCall {
11280            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
11281            type Token<'a> = <Self::Parameters<
11282                'a,
11283            > as alloy_sol_types::SolType>::Token<'a>;
11284            type Return = getOperatorStatusReturn;
11285            type ReturnTuple<'a> = (ISlashingRegistryCoordinatorTypes::OperatorStatus,);
11286            type ReturnToken<'a> = <Self::ReturnTuple<
11287                'a,
11288            > as alloy_sol_types::SolType>::Token<'a>;
11289            const SIGNATURE: &'static str = "getOperatorStatus(address)";
11290            const SELECTOR: [u8; 4] = [253u8, 57u8, 16u8, 90u8];
11291            #[inline]
11292            fn new<'a>(
11293                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
11294            ) -> Self {
11295                tuple.into()
11296            }
11297            #[inline]
11298            fn tokenize(&self) -> Self::Token<'_> {
11299                (
11300                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
11301                        &self.operator,
11302                    ),
11303                )
11304            }
11305            #[inline]
11306            fn abi_decode_returns(
11307                data: &[u8],
11308                validate: bool,
11309            ) -> alloy_sol_types::Result<Self::Return> {
11310                <Self::ReturnTuple<
11311                    '_,
11312                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
11313                    .map(Into::into)
11314            }
11315        }
11316    };
11317    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11318    /**Function with signature `getQuorumBitmapAtBlockNumberByIndex(bytes32,uint32,uint256)` and selector `0x04ec6351`.
11319```solidity
11320function getQuorumBitmapAtBlockNumberByIndex(bytes32 operatorId, uint32 blockNumber, uint256 index) external view returns (uint192);
11321```*/
11322    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11323    #[derive(Clone)]
11324    pub struct getQuorumBitmapAtBlockNumberByIndexCall {
11325        #[allow(missing_docs)]
11326        pub operatorId: alloy::sol_types::private::FixedBytes<32>,
11327        #[allow(missing_docs)]
11328        pub blockNumber: u32,
11329        #[allow(missing_docs)]
11330        pub index: alloy::sol_types::private::primitives::aliases::U256,
11331    }
11332    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11333    ///Container type for the return parameters of the [`getQuorumBitmapAtBlockNumberByIndex(bytes32,uint32,uint256)`](getQuorumBitmapAtBlockNumberByIndexCall) function.
11334    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11335    #[derive(Clone)]
11336    pub struct getQuorumBitmapAtBlockNumberByIndexReturn {
11337        #[allow(missing_docs)]
11338        pub _0: alloy::sol_types::private::primitives::aliases::U192,
11339    }
11340    #[allow(
11341        non_camel_case_types,
11342        non_snake_case,
11343        clippy::pub_underscore_fields,
11344        clippy::style
11345    )]
11346    const _: () = {
11347        use alloy::sol_types as alloy_sol_types;
11348        {
11349            #[doc(hidden)]
11350            type UnderlyingSolTuple<'a> = (
11351                alloy::sol_types::sol_data::FixedBytes<32>,
11352                alloy::sol_types::sol_data::Uint<32>,
11353                alloy::sol_types::sol_data::Uint<256>,
11354            );
11355            #[doc(hidden)]
11356            type UnderlyingRustTuple<'a> = (
11357                alloy::sol_types::private::FixedBytes<32>,
11358                u32,
11359                alloy::sol_types::private::primitives::aliases::U256,
11360            );
11361            #[cfg(test)]
11362            #[allow(dead_code, unreachable_patterns)]
11363            fn _type_assertion(
11364                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
11365            ) {
11366                match _t {
11367                    alloy_sol_types::private::AssertTypeEq::<
11368                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
11369                    >(_) => {}
11370                }
11371            }
11372            #[automatically_derived]
11373            #[doc(hidden)]
11374            impl ::core::convert::From<getQuorumBitmapAtBlockNumberByIndexCall>
11375            for UnderlyingRustTuple<'_> {
11376                fn from(value: getQuorumBitmapAtBlockNumberByIndexCall) -> Self {
11377                    (value.operatorId, value.blockNumber, value.index)
11378                }
11379            }
11380            #[automatically_derived]
11381            #[doc(hidden)]
11382            impl ::core::convert::From<UnderlyingRustTuple<'_>>
11383            for getQuorumBitmapAtBlockNumberByIndexCall {
11384                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
11385                    Self {
11386                        operatorId: tuple.0,
11387                        blockNumber: tuple.1,
11388                        index: tuple.2,
11389                    }
11390                }
11391            }
11392        }
11393        {
11394            #[doc(hidden)]
11395            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<192>,);
11396            #[doc(hidden)]
11397            type UnderlyingRustTuple<'a> = (
11398                alloy::sol_types::private::primitives::aliases::U192,
11399            );
11400            #[cfg(test)]
11401            #[allow(dead_code, unreachable_patterns)]
11402            fn _type_assertion(
11403                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
11404            ) {
11405                match _t {
11406                    alloy_sol_types::private::AssertTypeEq::<
11407                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
11408                    >(_) => {}
11409                }
11410            }
11411            #[automatically_derived]
11412            #[doc(hidden)]
11413            impl ::core::convert::From<getQuorumBitmapAtBlockNumberByIndexReturn>
11414            for UnderlyingRustTuple<'_> {
11415                fn from(value: getQuorumBitmapAtBlockNumberByIndexReturn) -> Self {
11416                    (value._0,)
11417                }
11418            }
11419            #[automatically_derived]
11420            #[doc(hidden)]
11421            impl ::core::convert::From<UnderlyingRustTuple<'_>>
11422            for getQuorumBitmapAtBlockNumberByIndexReturn {
11423                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
11424                    Self { _0: tuple.0 }
11425                }
11426            }
11427        }
11428        #[automatically_derived]
11429        impl alloy_sol_types::SolCall for getQuorumBitmapAtBlockNumberByIndexCall {
11430            type Parameters<'a> = (
11431                alloy::sol_types::sol_data::FixedBytes<32>,
11432                alloy::sol_types::sol_data::Uint<32>,
11433                alloy::sol_types::sol_data::Uint<256>,
11434            );
11435            type Token<'a> = <Self::Parameters<
11436                'a,
11437            > as alloy_sol_types::SolType>::Token<'a>;
11438            type Return = getQuorumBitmapAtBlockNumberByIndexReturn;
11439            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<192>,);
11440            type ReturnToken<'a> = <Self::ReturnTuple<
11441                'a,
11442            > as alloy_sol_types::SolType>::Token<'a>;
11443            const SIGNATURE: &'static str = "getQuorumBitmapAtBlockNumberByIndex(bytes32,uint32,uint256)";
11444            const SELECTOR: [u8; 4] = [4u8, 236u8, 99u8, 81u8];
11445            #[inline]
11446            fn new<'a>(
11447                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
11448            ) -> Self {
11449                tuple.into()
11450            }
11451            #[inline]
11452            fn tokenize(&self) -> Self::Token<'_> {
11453                (
11454                    <alloy::sol_types::sol_data::FixedBytes<
11455                        32,
11456                    > as alloy_sol_types::SolType>::tokenize(&self.operatorId),
11457                    <alloy::sol_types::sol_data::Uint<
11458                        32,
11459                    > as alloy_sol_types::SolType>::tokenize(&self.blockNumber),
11460                    <alloy::sol_types::sol_data::Uint<
11461                        256,
11462                    > as alloy_sol_types::SolType>::tokenize(&self.index),
11463                )
11464            }
11465            #[inline]
11466            fn abi_decode_returns(
11467                data: &[u8],
11468                validate: bool,
11469            ) -> alloy_sol_types::Result<Self::Return> {
11470                <Self::ReturnTuple<
11471                    '_,
11472                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
11473                    .map(Into::into)
11474            }
11475        }
11476    };
11477    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11478    /**Function with signature `getQuorumBitmapHistoryLength(bytes32)` and selector `0x03fd3492`.
11479```solidity
11480function getQuorumBitmapHistoryLength(bytes32 operatorId) external view returns (uint256);
11481```*/
11482    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11483    #[derive(Clone)]
11484    pub struct getQuorumBitmapHistoryLengthCall {
11485        #[allow(missing_docs)]
11486        pub operatorId: alloy::sol_types::private::FixedBytes<32>,
11487    }
11488    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11489    ///Container type for the return parameters of the [`getQuorumBitmapHistoryLength(bytes32)`](getQuorumBitmapHistoryLengthCall) function.
11490    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11491    #[derive(Clone)]
11492    pub struct getQuorumBitmapHistoryLengthReturn {
11493        #[allow(missing_docs)]
11494        pub _0: alloy::sol_types::private::primitives::aliases::U256,
11495    }
11496    #[allow(
11497        non_camel_case_types,
11498        non_snake_case,
11499        clippy::pub_underscore_fields,
11500        clippy::style
11501    )]
11502    const _: () = {
11503        use alloy::sol_types as alloy_sol_types;
11504        {
11505            #[doc(hidden)]
11506            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
11507            #[doc(hidden)]
11508            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
11509            #[cfg(test)]
11510            #[allow(dead_code, unreachable_patterns)]
11511            fn _type_assertion(
11512                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
11513            ) {
11514                match _t {
11515                    alloy_sol_types::private::AssertTypeEq::<
11516                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
11517                    >(_) => {}
11518                }
11519            }
11520            #[automatically_derived]
11521            #[doc(hidden)]
11522            impl ::core::convert::From<getQuorumBitmapHistoryLengthCall>
11523            for UnderlyingRustTuple<'_> {
11524                fn from(value: getQuorumBitmapHistoryLengthCall) -> Self {
11525                    (value.operatorId,)
11526                }
11527            }
11528            #[automatically_derived]
11529            #[doc(hidden)]
11530            impl ::core::convert::From<UnderlyingRustTuple<'_>>
11531            for getQuorumBitmapHistoryLengthCall {
11532                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
11533                    Self { operatorId: tuple.0 }
11534                }
11535            }
11536        }
11537        {
11538            #[doc(hidden)]
11539            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
11540            #[doc(hidden)]
11541            type UnderlyingRustTuple<'a> = (
11542                alloy::sol_types::private::primitives::aliases::U256,
11543            );
11544            #[cfg(test)]
11545            #[allow(dead_code, unreachable_patterns)]
11546            fn _type_assertion(
11547                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
11548            ) {
11549                match _t {
11550                    alloy_sol_types::private::AssertTypeEq::<
11551                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
11552                    >(_) => {}
11553                }
11554            }
11555            #[automatically_derived]
11556            #[doc(hidden)]
11557            impl ::core::convert::From<getQuorumBitmapHistoryLengthReturn>
11558            for UnderlyingRustTuple<'_> {
11559                fn from(value: getQuorumBitmapHistoryLengthReturn) -> Self {
11560                    (value._0,)
11561                }
11562            }
11563            #[automatically_derived]
11564            #[doc(hidden)]
11565            impl ::core::convert::From<UnderlyingRustTuple<'_>>
11566            for getQuorumBitmapHistoryLengthReturn {
11567                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
11568                    Self { _0: tuple.0 }
11569                }
11570            }
11571        }
11572        #[automatically_derived]
11573        impl alloy_sol_types::SolCall for getQuorumBitmapHistoryLengthCall {
11574            type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
11575            type Token<'a> = <Self::Parameters<
11576                'a,
11577            > as alloy_sol_types::SolType>::Token<'a>;
11578            type Return = getQuorumBitmapHistoryLengthReturn;
11579            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
11580            type ReturnToken<'a> = <Self::ReturnTuple<
11581                'a,
11582            > as alloy_sol_types::SolType>::Token<'a>;
11583            const SIGNATURE: &'static str = "getQuorumBitmapHistoryLength(bytes32)";
11584            const SELECTOR: [u8; 4] = [3u8, 253u8, 52u8, 146u8];
11585            #[inline]
11586            fn new<'a>(
11587                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
11588            ) -> Self {
11589                tuple.into()
11590            }
11591            #[inline]
11592            fn tokenize(&self) -> Self::Token<'_> {
11593                (
11594                    <alloy::sol_types::sol_data::FixedBytes<
11595                        32,
11596                    > as alloy_sol_types::SolType>::tokenize(&self.operatorId),
11597                )
11598            }
11599            #[inline]
11600            fn abi_decode_returns(
11601                data: &[u8],
11602                validate: bool,
11603            ) -> alloy_sol_types::Result<Self::Return> {
11604                <Self::ReturnTuple<
11605                    '_,
11606                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
11607                    .map(Into::into)
11608            }
11609        }
11610    };
11611    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11612    /**Function with signature `getQuorumBitmapIndicesAtBlockNumber(uint32,bytes32[])` and selector `0xc391425e`.
11613```solidity
11614function getQuorumBitmapIndicesAtBlockNumber(uint32 blockNumber, bytes32[] memory operatorIds) external view returns (uint32[] memory);
11615```*/
11616    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11617    #[derive(Clone)]
11618    pub struct getQuorumBitmapIndicesAtBlockNumberCall {
11619        #[allow(missing_docs)]
11620        pub blockNumber: u32,
11621        #[allow(missing_docs)]
11622        pub operatorIds: alloy::sol_types::private::Vec<
11623            alloy::sol_types::private::FixedBytes<32>,
11624        >,
11625    }
11626    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11627    ///Container type for the return parameters of the [`getQuorumBitmapIndicesAtBlockNumber(uint32,bytes32[])`](getQuorumBitmapIndicesAtBlockNumberCall) function.
11628    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11629    #[derive(Clone)]
11630    pub struct getQuorumBitmapIndicesAtBlockNumberReturn {
11631        #[allow(missing_docs)]
11632        pub _0: alloy::sol_types::private::Vec<u32>,
11633    }
11634    #[allow(
11635        non_camel_case_types,
11636        non_snake_case,
11637        clippy::pub_underscore_fields,
11638        clippy::style
11639    )]
11640    const _: () = {
11641        use alloy::sol_types as alloy_sol_types;
11642        {
11643            #[doc(hidden)]
11644            type UnderlyingSolTuple<'a> = (
11645                alloy::sol_types::sol_data::Uint<32>,
11646                alloy::sol_types::sol_data::Array<
11647                    alloy::sol_types::sol_data::FixedBytes<32>,
11648                >,
11649            );
11650            #[doc(hidden)]
11651            type UnderlyingRustTuple<'a> = (
11652                u32,
11653                alloy::sol_types::private::Vec<alloy::sol_types::private::FixedBytes<32>>,
11654            );
11655            #[cfg(test)]
11656            #[allow(dead_code, unreachable_patterns)]
11657            fn _type_assertion(
11658                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
11659            ) {
11660                match _t {
11661                    alloy_sol_types::private::AssertTypeEq::<
11662                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
11663                    >(_) => {}
11664                }
11665            }
11666            #[automatically_derived]
11667            #[doc(hidden)]
11668            impl ::core::convert::From<getQuorumBitmapIndicesAtBlockNumberCall>
11669            for UnderlyingRustTuple<'_> {
11670                fn from(value: getQuorumBitmapIndicesAtBlockNumberCall) -> Self {
11671                    (value.blockNumber, value.operatorIds)
11672                }
11673            }
11674            #[automatically_derived]
11675            #[doc(hidden)]
11676            impl ::core::convert::From<UnderlyingRustTuple<'_>>
11677            for getQuorumBitmapIndicesAtBlockNumberCall {
11678                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
11679                    Self {
11680                        blockNumber: tuple.0,
11681                        operatorIds: tuple.1,
11682                    }
11683                }
11684            }
11685        }
11686        {
11687            #[doc(hidden)]
11688            type UnderlyingSolTuple<'a> = (
11689                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<32>>,
11690            );
11691            #[doc(hidden)]
11692            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Vec<u32>,);
11693            #[cfg(test)]
11694            #[allow(dead_code, unreachable_patterns)]
11695            fn _type_assertion(
11696                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
11697            ) {
11698                match _t {
11699                    alloy_sol_types::private::AssertTypeEq::<
11700                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
11701                    >(_) => {}
11702                }
11703            }
11704            #[automatically_derived]
11705            #[doc(hidden)]
11706            impl ::core::convert::From<getQuorumBitmapIndicesAtBlockNumberReturn>
11707            for UnderlyingRustTuple<'_> {
11708                fn from(value: getQuorumBitmapIndicesAtBlockNumberReturn) -> Self {
11709                    (value._0,)
11710                }
11711            }
11712            #[automatically_derived]
11713            #[doc(hidden)]
11714            impl ::core::convert::From<UnderlyingRustTuple<'_>>
11715            for getQuorumBitmapIndicesAtBlockNumberReturn {
11716                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
11717                    Self { _0: tuple.0 }
11718                }
11719            }
11720        }
11721        #[automatically_derived]
11722        impl alloy_sol_types::SolCall for getQuorumBitmapIndicesAtBlockNumberCall {
11723            type Parameters<'a> = (
11724                alloy::sol_types::sol_data::Uint<32>,
11725                alloy::sol_types::sol_data::Array<
11726                    alloy::sol_types::sol_data::FixedBytes<32>,
11727                >,
11728            );
11729            type Token<'a> = <Self::Parameters<
11730                'a,
11731            > as alloy_sol_types::SolType>::Token<'a>;
11732            type Return = getQuorumBitmapIndicesAtBlockNumberReturn;
11733            type ReturnTuple<'a> = (
11734                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<32>>,
11735            );
11736            type ReturnToken<'a> = <Self::ReturnTuple<
11737                'a,
11738            > as alloy_sol_types::SolType>::Token<'a>;
11739            const SIGNATURE: &'static str = "getQuorumBitmapIndicesAtBlockNumber(uint32,bytes32[])";
11740            const SELECTOR: [u8; 4] = [195u8, 145u8, 66u8, 94u8];
11741            #[inline]
11742            fn new<'a>(
11743                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
11744            ) -> Self {
11745                tuple.into()
11746            }
11747            #[inline]
11748            fn tokenize(&self) -> Self::Token<'_> {
11749                (
11750                    <alloy::sol_types::sol_data::Uint<
11751                        32,
11752                    > as alloy_sol_types::SolType>::tokenize(&self.blockNumber),
11753                    <alloy::sol_types::sol_data::Array<
11754                        alloy::sol_types::sol_data::FixedBytes<32>,
11755                    > as alloy_sol_types::SolType>::tokenize(&self.operatorIds),
11756                )
11757            }
11758            #[inline]
11759            fn abi_decode_returns(
11760                data: &[u8],
11761                validate: bool,
11762            ) -> alloy_sol_types::Result<Self::Return> {
11763                <Self::ReturnTuple<
11764                    '_,
11765                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
11766                    .map(Into::into)
11767            }
11768        }
11769    };
11770    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11771    /**Function with signature `getQuorumBitmapUpdateByIndex(bytes32,uint256)` and selector `0x1eb812da`.
11772```solidity
11773function getQuorumBitmapUpdateByIndex(bytes32 operatorId, uint256 index) external view returns (ISlashingRegistryCoordinatorTypes.QuorumBitmapUpdate memory);
11774```*/
11775    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11776    #[derive(Clone)]
11777    pub struct getQuorumBitmapUpdateByIndexCall {
11778        #[allow(missing_docs)]
11779        pub operatorId: alloy::sol_types::private::FixedBytes<32>,
11780        #[allow(missing_docs)]
11781        pub index: alloy::sol_types::private::primitives::aliases::U256,
11782    }
11783    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11784    ///Container type for the return parameters of the [`getQuorumBitmapUpdateByIndex(bytes32,uint256)`](getQuorumBitmapUpdateByIndexCall) function.
11785    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11786    #[derive(Clone)]
11787    pub struct getQuorumBitmapUpdateByIndexReturn {
11788        #[allow(missing_docs)]
11789        pub _0: <ISlashingRegistryCoordinatorTypes::QuorumBitmapUpdate as alloy::sol_types::SolType>::RustType,
11790    }
11791    #[allow(
11792        non_camel_case_types,
11793        non_snake_case,
11794        clippy::pub_underscore_fields,
11795        clippy::style
11796    )]
11797    const _: () = {
11798        use alloy::sol_types as alloy_sol_types;
11799        {
11800            #[doc(hidden)]
11801            type UnderlyingSolTuple<'a> = (
11802                alloy::sol_types::sol_data::FixedBytes<32>,
11803                alloy::sol_types::sol_data::Uint<256>,
11804            );
11805            #[doc(hidden)]
11806            type UnderlyingRustTuple<'a> = (
11807                alloy::sol_types::private::FixedBytes<32>,
11808                alloy::sol_types::private::primitives::aliases::U256,
11809            );
11810            #[cfg(test)]
11811            #[allow(dead_code, unreachable_patterns)]
11812            fn _type_assertion(
11813                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
11814            ) {
11815                match _t {
11816                    alloy_sol_types::private::AssertTypeEq::<
11817                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
11818                    >(_) => {}
11819                }
11820            }
11821            #[automatically_derived]
11822            #[doc(hidden)]
11823            impl ::core::convert::From<getQuorumBitmapUpdateByIndexCall>
11824            for UnderlyingRustTuple<'_> {
11825                fn from(value: getQuorumBitmapUpdateByIndexCall) -> Self {
11826                    (value.operatorId, value.index)
11827                }
11828            }
11829            #[automatically_derived]
11830            #[doc(hidden)]
11831            impl ::core::convert::From<UnderlyingRustTuple<'_>>
11832            for getQuorumBitmapUpdateByIndexCall {
11833                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
11834                    Self {
11835                        operatorId: tuple.0,
11836                        index: tuple.1,
11837                    }
11838                }
11839            }
11840        }
11841        {
11842            #[doc(hidden)]
11843            type UnderlyingSolTuple<'a> = (
11844                ISlashingRegistryCoordinatorTypes::QuorumBitmapUpdate,
11845            );
11846            #[doc(hidden)]
11847            type UnderlyingRustTuple<'a> = (
11848                <ISlashingRegistryCoordinatorTypes::QuorumBitmapUpdate as alloy::sol_types::SolType>::RustType,
11849            );
11850            #[cfg(test)]
11851            #[allow(dead_code, unreachable_patterns)]
11852            fn _type_assertion(
11853                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
11854            ) {
11855                match _t {
11856                    alloy_sol_types::private::AssertTypeEq::<
11857                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
11858                    >(_) => {}
11859                }
11860            }
11861            #[automatically_derived]
11862            #[doc(hidden)]
11863            impl ::core::convert::From<getQuorumBitmapUpdateByIndexReturn>
11864            for UnderlyingRustTuple<'_> {
11865                fn from(value: getQuorumBitmapUpdateByIndexReturn) -> Self {
11866                    (value._0,)
11867                }
11868            }
11869            #[automatically_derived]
11870            #[doc(hidden)]
11871            impl ::core::convert::From<UnderlyingRustTuple<'_>>
11872            for getQuorumBitmapUpdateByIndexReturn {
11873                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
11874                    Self { _0: tuple.0 }
11875                }
11876            }
11877        }
11878        #[automatically_derived]
11879        impl alloy_sol_types::SolCall for getQuorumBitmapUpdateByIndexCall {
11880            type Parameters<'a> = (
11881                alloy::sol_types::sol_data::FixedBytes<32>,
11882                alloy::sol_types::sol_data::Uint<256>,
11883            );
11884            type Token<'a> = <Self::Parameters<
11885                'a,
11886            > as alloy_sol_types::SolType>::Token<'a>;
11887            type Return = getQuorumBitmapUpdateByIndexReturn;
11888            type ReturnTuple<'a> = (
11889                ISlashingRegistryCoordinatorTypes::QuorumBitmapUpdate,
11890            );
11891            type ReturnToken<'a> = <Self::ReturnTuple<
11892                'a,
11893            > as alloy_sol_types::SolType>::Token<'a>;
11894            const SIGNATURE: &'static str = "getQuorumBitmapUpdateByIndex(bytes32,uint256)";
11895            const SELECTOR: [u8; 4] = [30u8, 184u8, 18u8, 218u8];
11896            #[inline]
11897            fn new<'a>(
11898                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
11899            ) -> Self {
11900                tuple.into()
11901            }
11902            #[inline]
11903            fn tokenize(&self) -> Self::Token<'_> {
11904                (
11905                    <alloy::sol_types::sol_data::FixedBytes<
11906                        32,
11907                    > as alloy_sol_types::SolType>::tokenize(&self.operatorId),
11908                    <alloy::sol_types::sol_data::Uint<
11909                        256,
11910                    > as alloy_sol_types::SolType>::tokenize(&self.index),
11911                )
11912            }
11913            #[inline]
11914            fn abi_decode_returns(
11915                data: &[u8],
11916                validate: bool,
11917            ) -> alloy_sol_types::Result<Self::Return> {
11918                <Self::ReturnTuple<
11919                    '_,
11920                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
11921                    .map(Into::into)
11922            }
11923        }
11924    };
11925    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11926    /**Function with signature `indexRegistry()` and selector `0x9e9923c2`.
11927```solidity
11928function indexRegistry() external view returns (address);
11929```*/
11930    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11931    #[derive(Clone)]
11932    pub struct indexRegistryCall {}
11933    #[derive(Default, Debug, PartialEq, Eq, Hash)]
11934    ///Container type for the return parameters of the [`indexRegistry()`](indexRegistryCall) function.
11935    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
11936    #[derive(Clone)]
11937    pub struct indexRegistryReturn {
11938        #[allow(missing_docs)]
11939        pub _0: alloy::sol_types::private::Address,
11940    }
11941    #[allow(
11942        non_camel_case_types,
11943        non_snake_case,
11944        clippy::pub_underscore_fields,
11945        clippy::style
11946    )]
11947    const _: () = {
11948        use alloy::sol_types as alloy_sol_types;
11949        {
11950            #[doc(hidden)]
11951            type UnderlyingSolTuple<'a> = ();
11952            #[doc(hidden)]
11953            type UnderlyingRustTuple<'a> = ();
11954            #[cfg(test)]
11955            #[allow(dead_code, unreachable_patterns)]
11956            fn _type_assertion(
11957                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
11958            ) {
11959                match _t {
11960                    alloy_sol_types::private::AssertTypeEq::<
11961                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
11962                    >(_) => {}
11963                }
11964            }
11965            #[automatically_derived]
11966            #[doc(hidden)]
11967            impl ::core::convert::From<indexRegistryCall> for UnderlyingRustTuple<'_> {
11968                fn from(value: indexRegistryCall) -> Self {
11969                    ()
11970                }
11971            }
11972            #[automatically_derived]
11973            #[doc(hidden)]
11974            impl ::core::convert::From<UnderlyingRustTuple<'_>> for indexRegistryCall {
11975                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
11976                    Self {}
11977                }
11978            }
11979        }
11980        {
11981            #[doc(hidden)]
11982            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
11983            #[doc(hidden)]
11984            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
11985            #[cfg(test)]
11986            #[allow(dead_code, unreachable_patterns)]
11987            fn _type_assertion(
11988                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
11989            ) {
11990                match _t {
11991                    alloy_sol_types::private::AssertTypeEq::<
11992                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
11993                    >(_) => {}
11994                }
11995            }
11996            #[automatically_derived]
11997            #[doc(hidden)]
11998            impl ::core::convert::From<indexRegistryReturn> for UnderlyingRustTuple<'_> {
11999                fn from(value: indexRegistryReturn) -> Self {
12000                    (value._0,)
12001                }
12002            }
12003            #[automatically_derived]
12004            #[doc(hidden)]
12005            impl ::core::convert::From<UnderlyingRustTuple<'_>> for indexRegistryReturn {
12006                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12007                    Self { _0: tuple.0 }
12008                }
12009            }
12010        }
12011        #[automatically_derived]
12012        impl alloy_sol_types::SolCall for indexRegistryCall {
12013            type Parameters<'a> = ();
12014            type Token<'a> = <Self::Parameters<
12015                'a,
12016            > as alloy_sol_types::SolType>::Token<'a>;
12017            type Return = indexRegistryReturn;
12018            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
12019            type ReturnToken<'a> = <Self::ReturnTuple<
12020                'a,
12021            > as alloy_sol_types::SolType>::Token<'a>;
12022            const SIGNATURE: &'static str = "indexRegistry()";
12023            const SELECTOR: [u8; 4] = [158u8, 153u8, 35u8, 194u8];
12024            #[inline]
12025            fn new<'a>(
12026                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
12027            ) -> Self {
12028                tuple.into()
12029            }
12030            #[inline]
12031            fn tokenize(&self) -> Self::Token<'_> {
12032                ()
12033            }
12034            #[inline]
12035            fn abi_decode_returns(
12036                data: &[u8],
12037                validate: bool,
12038            ) -> alloy_sol_types::Result<Self::Return> {
12039                <Self::ReturnTuple<
12040                    '_,
12041                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
12042                    .map(Into::into)
12043            }
12044        }
12045    };
12046    #[derive(Default, Debug, PartialEq, Eq, Hash)]
12047    /**Function with signature `initialize(address,address,address,uint256,address)` and selector `0x530b97a4`.
12048```solidity
12049function initialize(address initialOwner, address churnApprover, address ejector, uint256 initialPausedStatus, address avs) external;
12050```*/
12051    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12052    #[derive(Clone)]
12053    pub struct initializeCall {
12054        #[allow(missing_docs)]
12055        pub initialOwner: alloy::sol_types::private::Address,
12056        #[allow(missing_docs)]
12057        pub churnApprover: alloy::sol_types::private::Address,
12058        #[allow(missing_docs)]
12059        pub ejector: alloy::sol_types::private::Address,
12060        #[allow(missing_docs)]
12061        pub initialPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
12062        #[allow(missing_docs)]
12063        pub avs: alloy::sol_types::private::Address,
12064    }
12065    ///Container type for the return parameters of the [`initialize(address,address,address,uint256,address)`](initializeCall) function.
12066    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12067    #[derive(Clone)]
12068    pub struct initializeReturn {}
12069    #[allow(
12070        non_camel_case_types,
12071        non_snake_case,
12072        clippy::pub_underscore_fields,
12073        clippy::style
12074    )]
12075    const _: () = {
12076        use alloy::sol_types as alloy_sol_types;
12077        {
12078            #[doc(hidden)]
12079            type UnderlyingSolTuple<'a> = (
12080                alloy::sol_types::sol_data::Address,
12081                alloy::sol_types::sol_data::Address,
12082                alloy::sol_types::sol_data::Address,
12083                alloy::sol_types::sol_data::Uint<256>,
12084                alloy::sol_types::sol_data::Address,
12085            );
12086            #[doc(hidden)]
12087            type UnderlyingRustTuple<'a> = (
12088                alloy::sol_types::private::Address,
12089                alloy::sol_types::private::Address,
12090                alloy::sol_types::private::Address,
12091                alloy::sol_types::private::primitives::aliases::U256,
12092                alloy::sol_types::private::Address,
12093            );
12094            #[cfg(test)]
12095            #[allow(dead_code, unreachable_patterns)]
12096            fn _type_assertion(
12097                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12098            ) {
12099                match _t {
12100                    alloy_sol_types::private::AssertTypeEq::<
12101                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12102                    >(_) => {}
12103                }
12104            }
12105            #[automatically_derived]
12106            #[doc(hidden)]
12107            impl ::core::convert::From<initializeCall> for UnderlyingRustTuple<'_> {
12108                fn from(value: initializeCall) -> Self {
12109                    (
12110                        value.initialOwner,
12111                        value.churnApprover,
12112                        value.ejector,
12113                        value.initialPausedStatus,
12114                        value.avs,
12115                    )
12116                }
12117            }
12118            #[automatically_derived]
12119            #[doc(hidden)]
12120            impl ::core::convert::From<UnderlyingRustTuple<'_>> for initializeCall {
12121                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12122                    Self {
12123                        initialOwner: tuple.0,
12124                        churnApprover: tuple.1,
12125                        ejector: tuple.2,
12126                        initialPausedStatus: tuple.3,
12127                        avs: tuple.4,
12128                    }
12129                }
12130            }
12131        }
12132        {
12133            #[doc(hidden)]
12134            type UnderlyingSolTuple<'a> = ();
12135            #[doc(hidden)]
12136            type UnderlyingRustTuple<'a> = ();
12137            #[cfg(test)]
12138            #[allow(dead_code, unreachable_patterns)]
12139            fn _type_assertion(
12140                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12141            ) {
12142                match _t {
12143                    alloy_sol_types::private::AssertTypeEq::<
12144                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12145                    >(_) => {}
12146                }
12147            }
12148            #[automatically_derived]
12149            #[doc(hidden)]
12150            impl ::core::convert::From<initializeReturn> for UnderlyingRustTuple<'_> {
12151                fn from(value: initializeReturn) -> Self {
12152                    ()
12153                }
12154            }
12155            #[automatically_derived]
12156            #[doc(hidden)]
12157            impl ::core::convert::From<UnderlyingRustTuple<'_>> for initializeReturn {
12158                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12159                    Self {}
12160                }
12161            }
12162        }
12163        #[automatically_derived]
12164        impl alloy_sol_types::SolCall for initializeCall {
12165            type Parameters<'a> = (
12166                alloy::sol_types::sol_data::Address,
12167                alloy::sol_types::sol_data::Address,
12168                alloy::sol_types::sol_data::Address,
12169                alloy::sol_types::sol_data::Uint<256>,
12170                alloy::sol_types::sol_data::Address,
12171            );
12172            type Token<'a> = <Self::Parameters<
12173                'a,
12174            > as alloy_sol_types::SolType>::Token<'a>;
12175            type Return = initializeReturn;
12176            type ReturnTuple<'a> = ();
12177            type ReturnToken<'a> = <Self::ReturnTuple<
12178                'a,
12179            > as alloy_sol_types::SolType>::Token<'a>;
12180            const SIGNATURE: &'static str = "initialize(address,address,address,uint256,address)";
12181            const SELECTOR: [u8; 4] = [83u8, 11u8, 151u8, 164u8];
12182            #[inline]
12183            fn new<'a>(
12184                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
12185            ) -> Self {
12186                tuple.into()
12187            }
12188            #[inline]
12189            fn tokenize(&self) -> Self::Token<'_> {
12190                (
12191                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
12192                        &self.initialOwner,
12193                    ),
12194                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
12195                        &self.churnApprover,
12196                    ),
12197                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
12198                        &self.ejector,
12199                    ),
12200                    <alloy::sol_types::sol_data::Uint<
12201                        256,
12202                    > as alloy_sol_types::SolType>::tokenize(&self.initialPausedStatus),
12203                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
12204                        &self.avs,
12205                    ),
12206                )
12207            }
12208            #[inline]
12209            fn abi_decode_returns(
12210                data: &[u8],
12211                validate: bool,
12212            ) -> alloy_sol_types::Result<Self::Return> {
12213                <Self::ReturnTuple<
12214                    '_,
12215                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
12216                    .map(Into::into)
12217            }
12218        }
12219    };
12220    #[derive(Default, Debug, PartialEq, Eq, Hash)]
12221    /**Function with signature `isChurnApproverSaltUsed(bytes32)` and selector `0x1478851f`.
12222```solidity
12223function isChurnApproverSaltUsed(bytes32) external view returns (bool);
12224```*/
12225    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12226    #[derive(Clone)]
12227    pub struct isChurnApproverSaltUsedCall {
12228        #[allow(missing_docs)]
12229        pub _0: alloy::sol_types::private::FixedBytes<32>,
12230    }
12231    #[derive(Default, Debug, PartialEq, Eq, Hash)]
12232    ///Container type for the return parameters of the [`isChurnApproverSaltUsed(bytes32)`](isChurnApproverSaltUsedCall) function.
12233    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12234    #[derive(Clone)]
12235    pub struct isChurnApproverSaltUsedReturn {
12236        #[allow(missing_docs)]
12237        pub _0: bool,
12238    }
12239    #[allow(
12240        non_camel_case_types,
12241        non_snake_case,
12242        clippy::pub_underscore_fields,
12243        clippy::style
12244    )]
12245    const _: () = {
12246        use alloy::sol_types as alloy_sol_types;
12247        {
12248            #[doc(hidden)]
12249            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
12250            #[doc(hidden)]
12251            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
12252            #[cfg(test)]
12253            #[allow(dead_code, unreachable_patterns)]
12254            fn _type_assertion(
12255                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12256            ) {
12257                match _t {
12258                    alloy_sol_types::private::AssertTypeEq::<
12259                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12260                    >(_) => {}
12261                }
12262            }
12263            #[automatically_derived]
12264            #[doc(hidden)]
12265            impl ::core::convert::From<isChurnApproverSaltUsedCall>
12266            for UnderlyingRustTuple<'_> {
12267                fn from(value: isChurnApproverSaltUsedCall) -> Self {
12268                    (value._0,)
12269                }
12270            }
12271            #[automatically_derived]
12272            #[doc(hidden)]
12273            impl ::core::convert::From<UnderlyingRustTuple<'_>>
12274            for isChurnApproverSaltUsedCall {
12275                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12276                    Self { _0: tuple.0 }
12277                }
12278            }
12279        }
12280        {
12281            #[doc(hidden)]
12282            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,);
12283            #[doc(hidden)]
12284            type UnderlyingRustTuple<'a> = (bool,);
12285            #[cfg(test)]
12286            #[allow(dead_code, unreachable_patterns)]
12287            fn _type_assertion(
12288                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12289            ) {
12290                match _t {
12291                    alloy_sol_types::private::AssertTypeEq::<
12292                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12293                    >(_) => {}
12294                }
12295            }
12296            #[automatically_derived]
12297            #[doc(hidden)]
12298            impl ::core::convert::From<isChurnApproverSaltUsedReturn>
12299            for UnderlyingRustTuple<'_> {
12300                fn from(value: isChurnApproverSaltUsedReturn) -> Self {
12301                    (value._0,)
12302                }
12303            }
12304            #[automatically_derived]
12305            #[doc(hidden)]
12306            impl ::core::convert::From<UnderlyingRustTuple<'_>>
12307            for isChurnApproverSaltUsedReturn {
12308                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12309                    Self { _0: tuple.0 }
12310                }
12311            }
12312        }
12313        #[automatically_derived]
12314        impl alloy_sol_types::SolCall for isChurnApproverSaltUsedCall {
12315            type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
12316            type Token<'a> = <Self::Parameters<
12317                'a,
12318            > as alloy_sol_types::SolType>::Token<'a>;
12319            type Return = isChurnApproverSaltUsedReturn;
12320            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,);
12321            type ReturnToken<'a> = <Self::ReturnTuple<
12322                'a,
12323            > as alloy_sol_types::SolType>::Token<'a>;
12324            const SIGNATURE: &'static str = "isChurnApproverSaltUsed(bytes32)";
12325            const SELECTOR: [u8; 4] = [20u8, 120u8, 133u8, 31u8];
12326            #[inline]
12327            fn new<'a>(
12328                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
12329            ) -> Self {
12330                tuple.into()
12331            }
12332            #[inline]
12333            fn tokenize(&self) -> Self::Token<'_> {
12334                (
12335                    <alloy::sol_types::sol_data::FixedBytes<
12336                        32,
12337                    > as alloy_sol_types::SolType>::tokenize(&self._0),
12338                )
12339            }
12340            #[inline]
12341            fn abi_decode_returns(
12342                data: &[u8],
12343                validate: bool,
12344            ) -> alloy_sol_types::Result<Self::Return> {
12345                <Self::ReturnTuple<
12346                    '_,
12347                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
12348                    .map(Into::into)
12349            }
12350        }
12351    };
12352    #[derive(Default, Debug, PartialEq, Eq, Hash)]
12353    /**Function with signature `lastEjectionTimestamp(address)` and selector `0x125e0584`.
12354```solidity
12355function lastEjectionTimestamp(address) external view returns (uint256);
12356```*/
12357    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12358    #[derive(Clone)]
12359    pub struct lastEjectionTimestampCall {
12360        #[allow(missing_docs)]
12361        pub _0: alloy::sol_types::private::Address,
12362    }
12363    #[derive(Default, Debug, PartialEq, Eq, Hash)]
12364    ///Container type for the return parameters of the [`lastEjectionTimestamp(address)`](lastEjectionTimestampCall) function.
12365    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12366    #[derive(Clone)]
12367    pub struct lastEjectionTimestampReturn {
12368        #[allow(missing_docs)]
12369        pub _0: alloy::sol_types::private::primitives::aliases::U256,
12370    }
12371    #[allow(
12372        non_camel_case_types,
12373        non_snake_case,
12374        clippy::pub_underscore_fields,
12375        clippy::style
12376    )]
12377    const _: () = {
12378        use alloy::sol_types as alloy_sol_types;
12379        {
12380            #[doc(hidden)]
12381            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
12382            #[doc(hidden)]
12383            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
12384            #[cfg(test)]
12385            #[allow(dead_code, unreachable_patterns)]
12386            fn _type_assertion(
12387                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12388            ) {
12389                match _t {
12390                    alloy_sol_types::private::AssertTypeEq::<
12391                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12392                    >(_) => {}
12393                }
12394            }
12395            #[automatically_derived]
12396            #[doc(hidden)]
12397            impl ::core::convert::From<lastEjectionTimestampCall>
12398            for UnderlyingRustTuple<'_> {
12399                fn from(value: lastEjectionTimestampCall) -> Self {
12400                    (value._0,)
12401                }
12402            }
12403            #[automatically_derived]
12404            #[doc(hidden)]
12405            impl ::core::convert::From<UnderlyingRustTuple<'_>>
12406            for lastEjectionTimestampCall {
12407                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12408                    Self { _0: tuple.0 }
12409                }
12410            }
12411        }
12412        {
12413            #[doc(hidden)]
12414            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
12415            #[doc(hidden)]
12416            type UnderlyingRustTuple<'a> = (
12417                alloy::sol_types::private::primitives::aliases::U256,
12418            );
12419            #[cfg(test)]
12420            #[allow(dead_code, unreachable_patterns)]
12421            fn _type_assertion(
12422                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12423            ) {
12424                match _t {
12425                    alloy_sol_types::private::AssertTypeEq::<
12426                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12427                    >(_) => {}
12428                }
12429            }
12430            #[automatically_derived]
12431            #[doc(hidden)]
12432            impl ::core::convert::From<lastEjectionTimestampReturn>
12433            for UnderlyingRustTuple<'_> {
12434                fn from(value: lastEjectionTimestampReturn) -> Self {
12435                    (value._0,)
12436                }
12437            }
12438            #[automatically_derived]
12439            #[doc(hidden)]
12440            impl ::core::convert::From<UnderlyingRustTuple<'_>>
12441            for lastEjectionTimestampReturn {
12442                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12443                    Self { _0: tuple.0 }
12444                }
12445            }
12446        }
12447        #[automatically_derived]
12448        impl alloy_sol_types::SolCall for lastEjectionTimestampCall {
12449            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
12450            type Token<'a> = <Self::Parameters<
12451                'a,
12452            > as alloy_sol_types::SolType>::Token<'a>;
12453            type Return = lastEjectionTimestampReturn;
12454            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
12455            type ReturnToken<'a> = <Self::ReturnTuple<
12456                'a,
12457            > as alloy_sol_types::SolType>::Token<'a>;
12458            const SIGNATURE: &'static str = "lastEjectionTimestamp(address)";
12459            const SELECTOR: [u8; 4] = [18u8, 94u8, 5u8, 132u8];
12460            #[inline]
12461            fn new<'a>(
12462                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
12463            ) -> Self {
12464                tuple.into()
12465            }
12466            #[inline]
12467            fn tokenize(&self) -> Self::Token<'_> {
12468                (
12469                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
12470                        &self._0,
12471                    ),
12472                )
12473            }
12474            #[inline]
12475            fn abi_decode_returns(
12476                data: &[u8],
12477                validate: bool,
12478            ) -> alloy_sol_types::Result<Self::Return> {
12479                <Self::ReturnTuple<
12480                    '_,
12481                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
12482                    .map(Into::into)
12483            }
12484        }
12485    };
12486    #[derive(Default, Debug, PartialEq, Eq, Hash)]
12487    /**Function with signature `owner()` and selector `0x8da5cb5b`.
12488```solidity
12489function owner() external view returns (address);
12490```*/
12491    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12492    #[derive(Clone)]
12493    pub struct ownerCall {}
12494    #[derive(Default, Debug, PartialEq, Eq, Hash)]
12495    ///Container type for the return parameters of the [`owner()`](ownerCall) function.
12496    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12497    #[derive(Clone)]
12498    pub struct ownerReturn {
12499        #[allow(missing_docs)]
12500        pub _0: alloy::sol_types::private::Address,
12501    }
12502    #[allow(
12503        non_camel_case_types,
12504        non_snake_case,
12505        clippy::pub_underscore_fields,
12506        clippy::style
12507    )]
12508    const _: () = {
12509        use alloy::sol_types as alloy_sol_types;
12510        {
12511            #[doc(hidden)]
12512            type UnderlyingSolTuple<'a> = ();
12513            #[doc(hidden)]
12514            type UnderlyingRustTuple<'a> = ();
12515            #[cfg(test)]
12516            #[allow(dead_code, unreachable_patterns)]
12517            fn _type_assertion(
12518                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12519            ) {
12520                match _t {
12521                    alloy_sol_types::private::AssertTypeEq::<
12522                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12523                    >(_) => {}
12524                }
12525            }
12526            #[automatically_derived]
12527            #[doc(hidden)]
12528            impl ::core::convert::From<ownerCall> for UnderlyingRustTuple<'_> {
12529                fn from(value: ownerCall) -> Self {
12530                    ()
12531                }
12532            }
12533            #[automatically_derived]
12534            #[doc(hidden)]
12535            impl ::core::convert::From<UnderlyingRustTuple<'_>> for ownerCall {
12536                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12537                    Self {}
12538                }
12539            }
12540        }
12541        {
12542            #[doc(hidden)]
12543            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
12544            #[doc(hidden)]
12545            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
12546            #[cfg(test)]
12547            #[allow(dead_code, unreachable_patterns)]
12548            fn _type_assertion(
12549                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12550            ) {
12551                match _t {
12552                    alloy_sol_types::private::AssertTypeEq::<
12553                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12554                    >(_) => {}
12555                }
12556            }
12557            #[automatically_derived]
12558            #[doc(hidden)]
12559            impl ::core::convert::From<ownerReturn> for UnderlyingRustTuple<'_> {
12560                fn from(value: ownerReturn) -> Self {
12561                    (value._0,)
12562                }
12563            }
12564            #[automatically_derived]
12565            #[doc(hidden)]
12566            impl ::core::convert::From<UnderlyingRustTuple<'_>> for ownerReturn {
12567                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12568                    Self { _0: tuple.0 }
12569                }
12570            }
12571        }
12572        #[automatically_derived]
12573        impl alloy_sol_types::SolCall for ownerCall {
12574            type Parameters<'a> = ();
12575            type Token<'a> = <Self::Parameters<
12576                'a,
12577            > as alloy_sol_types::SolType>::Token<'a>;
12578            type Return = ownerReturn;
12579            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
12580            type ReturnToken<'a> = <Self::ReturnTuple<
12581                'a,
12582            > as alloy_sol_types::SolType>::Token<'a>;
12583            const SIGNATURE: &'static str = "owner()";
12584            const SELECTOR: [u8; 4] = [141u8, 165u8, 203u8, 91u8];
12585            #[inline]
12586            fn new<'a>(
12587                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
12588            ) -> Self {
12589                tuple.into()
12590            }
12591            #[inline]
12592            fn tokenize(&self) -> Self::Token<'_> {
12593                ()
12594            }
12595            #[inline]
12596            fn abi_decode_returns(
12597                data: &[u8],
12598                validate: bool,
12599            ) -> alloy_sol_types::Result<Self::Return> {
12600                <Self::ReturnTuple<
12601                    '_,
12602                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
12603                    .map(Into::into)
12604            }
12605        }
12606    };
12607    #[derive(Default, Debug, PartialEq, Eq, Hash)]
12608    /**Function with signature `pause(uint256)` and selector `0x136439dd`.
12609```solidity
12610function pause(uint256 newPausedStatus) external;
12611```*/
12612    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12613    #[derive(Clone)]
12614    pub struct pauseCall {
12615        #[allow(missing_docs)]
12616        pub newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
12617    }
12618    ///Container type for the return parameters of the [`pause(uint256)`](pauseCall) function.
12619    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12620    #[derive(Clone)]
12621    pub struct pauseReturn {}
12622    #[allow(
12623        non_camel_case_types,
12624        non_snake_case,
12625        clippy::pub_underscore_fields,
12626        clippy::style
12627    )]
12628    const _: () = {
12629        use alloy::sol_types as alloy_sol_types;
12630        {
12631            #[doc(hidden)]
12632            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
12633            #[doc(hidden)]
12634            type UnderlyingRustTuple<'a> = (
12635                alloy::sol_types::private::primitives::aliases::U256,
12636            );
12637            #[cfg(test)]
12638            #[allow(dead_code, unreachable_patterns)]
12639            fn _type_assertion(
12640                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12641            ) {
12642                match _t {
12643                    alloy_sol_types::private::AssertTypeEq::<
12644                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12645                    >(_) => {}
12646                }
12647            }
12648            #[automatically_derived]
12649            #[doc(hidden)]
12650            impl ::core::convert::From<pauseCall> for UnderlyingRustTuple<'_> {
12651                fn from(value: pauseCall) -> Self {
12652                    (value.newPausedStatus,)
12653                }
12654            }
12655            #[automatically_derived]
12656            #[doc(hidden)]
12657            impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauseCall {
12658                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12659                    Self { newPausedStatus: tuple.0 }
12660                }
12661            }
12662        }
12663        {
12664            #[doc(hidden)]
12665            type UnderlyingSolTuple<'a> = ();
12666            #[doc(hidden)]
12667            type UnderlyingRustTuple<'a> = ();
12668            #[cfg(test)]
12669            #[allow(dead_code, unreachable_patterns)]
12670            fn _type_assertion(
12671                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12672            ) {
12673                match _t {
12674                    alloy_sol_types::private::AssertTypeEq::<
12675                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12676                    >(_) => {}
12677                }
12678            }
12679            #[automatically_derived]
12680            #[doc(hidden)]
12681            impl ::core::convert::From<pauseReturn> for UnderlyingRustTuple<'_> {
12682                fn from(value: pauseReturn) -> Self {
12683                    ()
12684                }
12685            }
12686            #[automatically_derived]
12687            #[doc(hidden)]
12688            impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauseReturn {
12689                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12690                    Self {}
12691                }
12692            }
12693        }
12694        #[automatically_derived]
12695        impl alloy_sol_types::SolCall for pauseCall {
12696            type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,);
12697            type Token<'a> = <Self::Parameters<
12698                'a,
12699            > as alloy_sol_types::SolType>::Token<'a>;
12700            type Return = pauseReturn;
12701            type ReturnTuple<'a> = ();
12702            type ReturnToken<'a> = <Self::ReturnTuple<
12703                'a,
12704            > as alloy_sol_types::SolType>::Token<'a>;
12705            const SIGNATURE: &'static str = "pause(uint256)";
12706            const SELECTOR: [u8; 4] = [19u8, 100u8, 57u8, 221u8];
12707            #[inline]
12708            fn new<'a>(
12709                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
12710            ) -> Self {
12711                tuple.into()
12712            }
12713            #[inline]
12714            fn tokenize(&self) -> Self::Token<'_> {
12715                (
12716                    <alloy::sol_types::sol_data::Uint<
12717                        256,
12718                    > as alloy_sol_types::SolType>::tokenize(&self.newPausedStatus),
12719                )
12720            }
12721            #[inline]
12722            fn abi_decode_returns(
12723                data: &[u8],
12724                validate: bool,
12725            ) -> alloy_sol_types::Result<Self::Return> {
12726                <Self::ReturnTuple<
12727                    '_,
12728                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
12729                    .map(Into::into)
12730            }
12731        }
12732    };
12733    #[derive(Default, Debug, PartialEq, Eq, Hash)]
12734    /**Function with signature `pauseAll()` and selector `0x595c6a67`.
12735```solidity
12736function pauseAll() external;
12737```*/
12738    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12739    #[derive(Clone)]
12740    pub struct pauseAllCall {}
12741    ///Container type for the return parameters of the [`pauseAll()`](pauseAllCall) function.
12742    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12743    #[derive(Clone)]
12744    pub struct pauseAllReturn {}
12745    #[allow(
12746        non_camel_case_types,
12747        non_snake_case,
12748        clippy::pub_underscore_fields,
12749        clippy::style
12750    )]
12751    const _: () = {
12752        use alloy::sol_types as alloy_sol_types;
12753        {
12754            #[doc(hidden)]
12755            type UnderlyingSolTuple<'a> = ();
12756            #[doc(hidden)]
12757            type UnderlyingRustTuple<'a> = ();
12758            #[cfg(test)]
12759            #[allow(dead_code, unreachable_patterns)]
12760            fn _type_assertion(
12761                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12762            ) {
12763                match _t {
12764                    alloy_sol_types::private::AssertTypeEq::<
12765                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12766                    >(_) => {}
12767                }
12768            }
12769            #[automatically_derived]
12770            #[doc(hidden)]
12771            impl ::core::convert::From<pauseAllCall> for UnderlyingRustTuple<'_> {
12772                fn from(value: pauseAllCall) -> Self {
12773                    ()
12774                }
12775            }
12776            #[automatically_derived]
12777            #[doc(hidden)]
12778            impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauseAllCall {
12779                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12780                    Self {}
12781                }
12782            }
12783        }
12784        {
12785            #[doc(hidden)]
12786            type UnderlyingSolTuple<'a> = ();
12787            #[doc(hidden)]
12788            type UnderlyingRustTuple<'a> = ();
12789            #[cfg(test)]
12790            #[allow(dead_code, unreachable_patterns)]
12791            fn _type_assertion(
12792                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12793            ) {
12794                match _t {
12795                    alloy_sol_types::private::AssertTypeEq::<
12796                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12797                    >(_) => {}
12798                }
12799            }
12800            #[automatically_derived]
12801            #[doc(hidden)]
12802            impl ::core::convert::From<pauseAllReturn> for UnderlyingRustTuple<'_> {
12803                fn from(value: pauseAllReturn) -> Self {
12804                    ()
12805                }
12806            }
12807            #[automatically_derived]
12808            #[doc(hidden)]
12809            impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauseAllReturn {
12810                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12811                    Self {}
12812                }
12813            }
12814        }
12815        #[automatically_derived]
12816        impl alloy_sol_types::SolCall for pauseAllCall {
12817            type Parameters<'a> = ();
12818            type Token<'a> = <Self::Parameters<
12819                'a,
12820            > as alloy_sol_types::SolType>::Token<'a>;
12821            type Return = pauseAllReturn;
12822            type ReturnTuple<'a> = ();
12823            type ReturnToken<'a> = <Self::ReturnTuple<
12824                'a,
12825            > as alloy_sol_types::SolType>::Token<'a>;
12826            const SIGNATURE: &'static str = "pauseAll()";
12827            const SELECTOR: [u8; 4] = [89u8, 92u8, 106u8, 103u8];
12828            #[inline]
12829            fn new<'a>(
12830                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
12831            ) -> Self {
12832                tuple.into()
12833            }
12834            #[inline]
12835            fn tokenize(&self) -> Self::Token<'_> {
12836                ()
12837            }
12838            #[inline]
12839            fn abi_decode_returns(
12840                data: &[u8],
12841                validate: bool,
12842            ) -> alloy_sol_types::Result<Self::Return> {
12843                <Self::ReturnTuple<
12844                    '_,
12845                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
12846                    .map(Into::into)
12847            }
12848        }
12849    };
12850    #[derive(Default, Debug, PartialEq, Eq, Hash)]
12851    /**Function with signature `paused(uint8)` and selector `0x5ac86ab7`.
12852```solidity
12853function paused(uint8 index) external view returns (bool);
12854```*/
12855    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12856    #[derive(Clone)]
12857    pub struct paused_0Call {
12858        #[allow(missing_docs)]
12859        pub index: u8,
12860    }
12861    #[derive(Default, Debug, PartialEq, Eq, Hash)]
12862    ///Container type for the return parameters of the [`paused(uint8)`](paused_0Call) function.
12863    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12864    #[derive(Clone)]
12865    pub struct paused_0Return {
12866        #[allow(missing_docs)]
12867        pub _0: bool,
12868    }
12869    #[allow(
12870        non_camel_case_types,
12871        non_snake_case,
12872        clippy::pub_underscore_fields,
12873        clippy::style
12874    )]
12875    const _: () = {
12876        use alloy::sol_types as alloy_sol_types;
12877        {
12878            #[doc(hidden)]
12879            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,);
12880            #[doc(hidden)]
12881            type UnderlyingRustTuple<'a> = (u8,);
12882            #[cfg(test)]
12883            #[allow(dead_code, unreachable_patterns)]
12884            fn _type_assertion(
12885                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12886            ) {
12887                match _t {
12888                    alloy_sol_types::private::AssertTypeEq::<
12889                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12890                    >(_) => {}
12891                }
12892            }
12893            #[automatically_derived]
12894            #[doc(hidden)]
12895            impl ::core::convert::From<paused_0Call> for UnderlyingRustTuple<'_> {
12896                fn from(value: paused_0Call) -> Self {
12897                    (value.index,)
12898                }
12899            }
12900            #[automatically_derived]
12901            #[doc(hidden)]
12902            impl ::core::convert::From<UnderlyingRustTuple<'_>> for paused_0Call {
12903                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12904                    Self { index: tuple.0 }
12905                }
12906            }
12907        }
12908        {
12909            #[doc(hidden)]
12910            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,);
12911            #[doc(hidden)]
12912            type UnderlyingRustTuple<'a> = (bool,);
12913            #[cfg(test)]
12914            #[allow(dead_code, unreachable_patterns)]
12915            fn _type_assertion(
12916                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
12917            ) {
12918                match _t {
12919                    alloy_sol_types::private::AssertTypeEq::<
12920                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
12921                    >(_) => {}
12922                }
12923            }
12924            #[automatically_derived]
12925            #[doc(hidden)]
12926            impl ::core::convert::From<paused_0Return> for UnderlyingRustTuple<'_> {
12927                fn from(value: paused_0Return) -> Self {
12928                    (value._0,)
12929                }
12930            }
12931            #[automatically_derived]
12932            #[doc(hidden)]
12933            impl ::core::convert::From<UnderlyingRustTuple<'_>> for paused_0Return {
12934                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
12935                    Self { _0: tuple.0 }
12936                }
12937            }
12938        }
12939        #[automatically_derived]
12940        impl alloy_sol_types::SolCall for paused_0Call {
12941            type Parameters<'a> = (alloy::sol_types::sol_data::Uint<8>,);
12942            type Token<'a> = <Self::Parameters<
12943                'a,
12944            > as alloy_sol_types::SolType>::Token<'a>;
12945            type Return = paused_0Return;
12946            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,);
12947            type ReturnToken<'a> = <Self::ReturnTuple<
12948                'a,
12949            > as alloy_sol_types::SolType>::Token<'a>;
12950            const SIGNATURE: &'static str = "paused(uint8)";
12951            const SELECTOR: [u8; 4] = [90u8, 200u8, 106u8, 183u8];
12952            #[inline]
12953            fn new<'a>(
12954                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
12955            ) -> Self {
12956                tuple.into()
12957            }
12958            #[inline]
12959            fn tokenize(&self) -> Self::Token<'_> {
12960                (
12961                    <alloy::sol_types::sol_data::Uint<
12962                        8,
12963                    > as alloy_sol_types::SolType>::tokenize(&self.index),
12964                )
12965            }
12966            #[inline]
12967            fn abi_decode_returns(
12968                data: &[u8],
12969                validate: bool,
12970            ) -> alloy_sol_types::Result<Self::Return> {
12971                <Self::ReturnTuple<
12972                    '_,
12973                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
12974                    .map(Into::into)
12975            }
12976        }
12977    };
12978    #[derive(Default, Debug, PartialEq, Eq, Hash)]
12979    /**Function with signature `paused()` and selector `0x5c975abb`.
12980```solidity
12981function paused() external view returns (uint256);
12982```*/
12983    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12984    #[derive(Clone)]
12985    pub struct paused_1Call {}
12986    #[derive(Default, Debug, PartialEq, Eq, Hash)]
12987    ///Container type for the return parameters of the [`paused()`](paused_1Call) function.
12988    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
12989    #[derive(Clone)]
12990    pub struct paused_1Return {
12991        #[allow(missing_docs)]
12992        pub _0: alloy::sol_types::private::primitives::aliases::U256,
12993    }
12994    #[allow(
12995        non_camel_case_types,
12996        non_snake_case,
12997        clippy::pub_underscore_fields,
12998        clippy::style
12999    )]
13000    const _: () = {
13001        use alloy::sol_types as alloy_sol_types;
13002        {
13003            #[doc(hidden)]
13004            type UnderlyingSolTuple<'a> = ();
13005            #[doc(hidden)]
13006            type UnderlyingRustTuple<'a> = ();
13007            #[cfg(test)]
13008            #[allow(dead_code, unreachable_patterns)]
13009            fn _type_assertion(
13010                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13011            ) {
13012                match _t {
13013                    alloy_sol_types::private::AssertTypeEq::<
13014                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13015                    >(_) => {}
13016                }
13017            }
13018            #[automatically_derived]
13019            #[doc(hidden)]
13020            impl ::core::convert::From<paused_1Call> for UnderlyingRustTuple<'_> {
13021                fn from(value: paused_1Call) -> Self {
13022                    ()
13023                }
13024            }
13025            #[automatically_derived]
13026            #[doc(hidden)]
13027            impl ::core::convert::From<UnderlyingRustTuple<'_>> for paused_1Call {
13028                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13029                    Self {}
13030                }
13031            }
13032        }
13033        {
13034            #[doc(hidden)]
13035            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
13036            #[doc(hidden)]
13037            type UnderlyingRustTuple<'a> = (
13038                alloy::sol_types::private::primitives::aliases::U256,
13039            );
13040            #[cfg(test)]
13041            #[allow(dead_code, unreachable_patterns)]
13042            fn _type_assertion(
13043                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13044            ) {
13045                match _t {
13046                    alloy_sol_types::private::AssertTypeEq::<
13047                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13048                    >(_) => {}
13049                }
13050            }
13051            #[automatically_derived]
13052            #[doc(hidden)]
13053            impl ::core::convert::From<paused_1Return> for UnderlyingRustTuple<'_> {
13054                fn from(value: paused_1Return) -> Self {
13055                    (value._0,)
13056                }
13057            }
13058            #[automatically_derived]
13059            #[doc(hidden)]
13060            impl ::core::convert::From<UnderlyingRustTuple<'_>> for paused_1Return {
13061                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13062                    Self { _0: tuple.0 }
13063                }
13064            }
13065        }
13066        #[automatically_derived]
13067        impl alloy_sol_types::SolCall for paused_1Call {
13068            type Parameters<'a> = ();
13069            type Token<'a> = <Self::Parameters<
13070                'a,
13071            > as alloy_sol_types::SolType>::Token<'a>;
13072            type Return = paused_1Return;
13073            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
13074            type ReturnToken<'a> = <Self::ReturnTuple<
13075                'a,
13076            > as alloy_sol_types::SolType>::Token<'a>;
13077            const SIGNATURE: &'static str = "paused()";
13078            const SELECTOR: [u8; 4] = [92u8, 151u8, 90u8, 187u8];
13079            #[inline]
13080            fn new<'a>(
13081                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
13082            ) -> Self {
13083                tuple.into()
13084            }
13085            #[inline]
13086            fn tokenize(&self) -> Self::Token<'_> {
13087                ()
13088            }
13089            #[inline]
13090            fn abi_decode_returns(
13091                data: &[u8],
13092                validate: bool,
13093            ) -> alloy_sol_types::Result<Self::Return> {
13094                <Self::ReturnTuple<
13095                    '_,
13096                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
13097                    .map(Into::into)
13098            }
13099        }
13100    };
13101    #[derive(Default, Debug, PartialEq, Eq, Hash)]
13102    /**Function with signature `pauserRegistry()` and selector `0x886f1195`.
13103```solidity
13104function pauserRegistry() external view returns (address);
13105```*/
13106    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13107    #[derive(Clone)]
13108    pub struct pauserRegistryCall {}
13109    #[derive(Default, Debug, PartialEq, Eq, Hash)]
13110    ///Container type for the return parameters of the [`pauserRegistry()`](pauserRegistryCall) function.
13111    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13112    #[derive(Clone)]
13113    pub struct pauserRegistryReturn {
13114        #[allow(missing_docs)]
13115        pub _0: alloy::sol_types::private::Address,
13116    }
13117    #[allow(
13118        non_camel_case_types,
13119        non_snake_case,
13120        clippy::pub_underscore_fields,
13121        clippy::style
13122    )]
13123    const _: () = {
13124        use alloy::sol_types as alloy_sol_types;
13125        {
13126            #[doc(hidden)]
13127            type UnderlyingSolTuple<'a> = ();
13128            #[doc(hidden)]
13129            type UnderlyingRustTuple<'a> = ();
13130            #[cfg(test)]
13131            #[allow(dead_code, unreachable_patterns)]
13132            fn _type_assertion(
13133                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13134            ) {
13135                match _t {
13136                    alloy_sol_types::private::AssertTypeEq::<
13137                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13138                    >(_) => {}
13139                }
13140            }
13141            #[automatically_derived]
13142            #[doc(hidden)]
13143            impl ::core::convert::From<pauserRegistryCall> for UnderlyingRustTuple<'_> {
13144                fn from(value: pauserRegistryCall) -> Self {
13145                    ()
13146                }
13147            }
13148            #[automatically_derived]
13149            #[doc(hidden)]
13150            impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauserRegistryCall {
13151                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13152                    Self {}
13153                }
13154            }
13155        }
13156        {
13157            #[doc(hidden)]
13158            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
13159            #[doc(hidden)]
13160            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
13161            #[cfg(test)]
13162            #[allow(dead_code, unreachable_patterns)]
13163            fn _type_assertion(
13164                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13165            ) {
13166                match _t {
13167                    alloy_sol_types::private::AssertTypeEq::<
13168                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13169                    >(_) => {}
13170                }
13171            }
13172            #[automatically_derived]
13173            #[doc(hidden)]
13174            impl ::core::convert::From<pauserRegistryReturn>
13175            for UnderlyingRustTuple<'_> {
13176                fn from(value: pauserRegistryReturn) -> Self {
13177                    (value._0,)
13178                }
13179            }
13180            #[automatically_derived]
13181            #[doc(hidden)]
13182            impl ::core::convert::From<UnderlyingRustTuple<'_>>
13183            for pauserRegistryReturn {
13184                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13185                    Self { _0: tuple.0 }
13186                }
13187            }
13188        }
13189        #[automatically_derived]
13190        impl alloy_sol_types::SolCall for pauserRegistryCall {
13191            type Parameters<'a> = ();
13192            type Token<'a> = <Self::Parameters<
13193                'a,
13194            > as alloy_sol_types::SolType>::Token<'a>;
13195            type Return = pauserRegistryReturn;
13196            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
13197            type ReturnToken<'a> = <Self::ReturnTuple<
13198                'a,
13199            > as alloy_sol_types::SolType>::Token<'a>;
13200            const SIGNATURE: &'static str = "pauserRegistry()";
13201            const SELECTOR: [u8; 4] = [136u8, 111u8, 17u8, 149u8];
13202            #[inline]
13203            fn new<'a>(
13204                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
13205            ) -> Self {
13206                tuple.into()
13207            }
13208            #[inline]
13209            fn tokenize(&self) -> Self::Token<'_> {
13210                ()
13211            }
13212            #[inline]
13213            fn abi_decode_returns(
13214                data: &[u8],
13215                validate: bool,
13216            ) -> alloy_sol_types::Result<Self::Return> {
13217                <Self::ReturnTuple<
13218                    '_,
13219                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
13220                    .map(Into::into)
13221            }
13222        }
13223    };
13224    #[derive(Default, Debug, PartialEq, Eq, Hash)]
13225    /**Function with signature `pubkeyRegistrationMessageHash(address)` and selector `0x3c2a7f4c`.
13226```solidity
13227function pubkeyRegistrationMessageHash(address operator) external view returns (BN254.G1Point memory);
13228```*/
13229    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13230    #[derive(Clone)]
13231    pub struct pubkeyRegistrationMessageHashCall {
13232        #[allow(missing_docs)]
13233        pub operator: alloy::sol_types::private::Address,
13234    }
13235    #[derive(Default, Debug, PartialEq, Eq, Hash)]
13236    ///Container type for the return parameters of the [`pubkeyRegistrationMessageHash(address)`](pubkeyRegistrationMessageHashCall) function.
13237    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13238    #[derive(Clone)]
13239    pub struct pubkeyRegistrationMessageHashReturn {
13240        #[allow(missing_docs)]
13241        pub _0: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
13242    }
13243    #[allow(
13244        non_camel_case_types,
13245        non_snake_case,
13246        clippy::pub_underscore_fields,
13247        clippy::style
13248    )]
13249    const _: () = {
13250        use alloy::sol_types as alloy_sol_types;
13251        {
13252            #[doc(hidden)]
13253            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
13254            #[doc(hidden)]
13255            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
13256            #[cfg(test)]
13257            #[allow(dead_code, unreachable_patterns)]
13258            fn _type_assertion(
13259                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13260            ) {
13261                match _t {
13262                    alloy_sol_types::private::AssertTypeEq::<
13263                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13264                    >(_) => {}
13265                }
13266            }
13267            #[automatically_derived]
13268            #[doc(hidden)]
13269            impl ::core::convert::From<pubkeyRegistrationMessageHashCall>
13270            for UnderlyingRustTuple<'_> {
13271                fn from(value: pubkeyRegistrationMessageHashCall) -> Self {
13272                    (value.operator,)
13273                }
13274            }
13275            #[automatically_derived]
13276            #[doc(hidden)]
13277            impl ::core::convert::From<UnderlyingRustTuple<'_>>
13278            for pubkeyRegistrationMessageHashCall {
13279                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13280                    Self { operator: tuple.0 }
13281                }
13282            }
13283        }
13284        {
13285            #[doc(hidden)]
13286            type UnderlyingSolTuple<'a> = (BN254::G1Point,);
13287            #[doc(hidden)]
13288            type UnderlyingRustTuple<'a> = (
13289                <BN254::G1Point as alloy::sol_types::SolType>::RustType,
13290            );
13291            #[cfg(test)]
13292            #[allow(dead_code, unreachable_patterns)]
13293            fn _type_assertion(
13294                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13295            ) {
13296                match _t {
13297                    alloy_sol_types::private::AssertTypeEq::<
13298                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13299                    >(_) => {}
13300                }
13301            }
13302            #[automatically_derived]
13303            #[doc(hidden)]
13304            impl ::core::convert::From<pubkeyRegistrationMessageHashReturn>
13305            for UnderlyingRustTuple<'_> {
13306                fn from(value: pubkeyRegistrationMessageHashReturn) -> Self {
13307                    (value._0,)
13308                }
13309            }
13310            #[automatically_derived]
13311            #[doc(hidden)]
13312            impl ::core::convert::From<UnderlyingRustTuple<'_>>
13313            for pubkeyRegistrationMessageHashReturn {
13314                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13315                    Self { _0: tuple.0 }
13316                }
13317            }
13318        }
13319        #[automatically_derived]
13320        impl alloy_sol_types::SolCall for pubkeyRegistrationMessageHashCall {
13321            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
13322            type Token<'a> = <Self::Parameters<
13323                'a,
13324            > as alloy_sol_types::SolType>::Token<'a>;
13325            type Return = pubkeyRegistrationMessageHashReturn;
13326            type ReturnTuple<'a> = (BN254::G1Point,);
13327            type ReturnToken<'a> = <Self::ReturnTuple<
13328                'a,
13329            > as alloy_sol_types::SolType>::Token<'a>;
13330            const SIGNATURE: &'static str = "pubkeyRegistrationMessageHash(address)";
13331            const SELECTOR: [u8; 4] = [60u8, 42u8, 127u8, 76u8];
13332            #[inline]
13333            fn new<'a>(
13334                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
13335            ) -> Self {
13336                tuple.into()
13337            }
13338            #[inline]
13339            fn tokenize(&self) -> Self::Token<'_> {
13340                (
13341                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
13342                        &self.operator,
13343                    ),
13344                )
13345            }
13346            #[inline]
13347            fn abi_decode_returns(
13348                data: &[u8],
13349                validate: bool,
13350            ) -> alloy_sol_types::Result<Self::Return> {
13351                <Self::ReturnTuple<
13352                    '_,
13353                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
13354                    .map(Into::into)
13355            }
13356        }
13357    };
13358    #[derive(Default, Debug, PartialEq, Eq, Hash)]
13359    /**Function with signature `quorumCount()` and selector `0x9aa1653d`.
13360```solidity
13361function quorumCount() external view returns (uint8);
13362```*/
13363    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13364    #[derive(Clone)]
13365    pub struct quorumCountCall {}
13366    #[derive(Default, Debug, PartialEq, Eq, Hash)]
13367    ///Container type for the return parameters of the [`quorumCount()`](quorumCountCall) function.
13368    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13369    #[derive(Clone)]
13370    pub struct quorumCountReturn {
13371        #[allow(missing_docs)]
13372        pub _0: u8,
13373    }
13374    #[allow(
13375        non_camel_case_types,
13376        non_snake_case,
13377        clippy::pub_underscore_fields,
13378        clippy::style
13379    )]
13380    const _: () = {
13381        use alloy::sol_types as alloy_sol_types;
13382        {
13383            #[doc(hidden)]
13384            type UnderlyingSolTuple<'a> = ();
13385            #[doc(hidden)]
13386            type UnderlyingRustTuple<'a> = ();
13387            #[cfg(test)]
13388            #[allow(dead_code, unreachable_patterns)]
13389            fn _type_assertion(
13390                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13391            ) {
13392                match _t {
13393                    alloy_sol_types::private::AssertTypeEq::<
13394                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13395                    >(_) => {}
13396                }
13397            }
13398            #[automatically_derived]
13399            #[doc(hidden)]
13400            impl ::core::convert::From<quorumCountCall> for UnderlyingRustTuple<'_> {
13401                fn from(value: quorumCountCall) -> Self {
13402                    ()
13403                }
13404            }
13405            #[automatically_derived]
13406            #[doc(hidden)]
13407            impl ::core::convert::From<UnderlyingRustTuple<'_>> for quorumCountCall {
13408                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13409                    Self {}
13410                }
13411            }
13412        }
13413        {
13414            #[doc(hidden)]
13415            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,);
13416            #[doc(hidden)]
13417            type UnderlyingRustTuple<'a> = (u8,);
13418            #[cfg(test)]
13419            #[allow(dead_code, unreachable_patterns)]
13420            fn _type_assertion(
13421                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13422            ) {
13423                match _t {
13424                    alloy_sol_types::private::AssertTypeEq::<
13425                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13426                    >(_) => {}
13427                }
13428            }
13429            #[automatically_derived]
13430            #[doc(hidden)]
13431            impl ::core::convert::From<quorumCountReturn> for UnderlyingRustTuple<'_> {
13432                fn from(value: quorumCountReturn) -> Self {
13433                    (value._0,)
13434                }
13435            }
13436            #[automatically_derived]
13437            #[doc(hidden)]
13438            impl ::core::convert::From<UnderlyingRustTuple<'_>> for quorumCountReturn {
13439                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13440                    Self { _0: tuple.0 }
13441                }
13442            }
13443        }
13444        #[automatically_derived]
13445        impl alloy_sol_types::SolCall for quorumCountCall {
13446            type Parameters<'a> = ();
13447            type Token<'a> = <Self::Parameters<
13448                'a,
13449            > as alloy_sol_types::SolType>::Token<'a>;
13450            type Return = quorumCountReturn;
13451            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,);
13452            type ReturnToken<'a> = <Self::ReturnTuple<
13453                'a,
13454            > as alloy_sol_types::SolType>::Token<'a>;
13455            const SIGNATURE: &'static str = "quorumCount()";
13456            const SELECTOR: [u8; 4] = [154u8, 161u8, 101u8, 61u8];
13457            #[inline]
13458            fn new<'a>(
13459                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
13460            ) -> Self {
13461                tuple.into()
13462            }
13463            #[inline]
13464            fn tokenize(&self) -> Self::Token<'_> {
13465                ()
13466            }
13467            #[inline]
13468            fn abi_decode_returns(
13469                data: &[u8],
13470                validate: bool,
13471            ) -> alloy_sol_types::Result<Self::Return> {
13472                <Self::ReturnTuple<
13473                    '_,
13474                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
13475                    .map(Into::into)
13476            }
13477        }
13478    };
13479    #[derive(Default, Debug, PartialEq, Eq, Hash)]
13480    /**Function with signature `quorumUpdateBlockNumber(uint8)` and selector `0x249a0c42`.
13481```solidity
13482function quorumUpdateBlockNumber(uint8) external view returns (uint256);
13483```*/
13484    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13485    #[derive(Clone)]
13486    pub struct quorumUpdateBlockNumberCall {
13487        #[allow(missing_docs)]
13488        pub _0: u8,
13489    }
13490    #[derive(Default, Debug, PartialEq, Eq, Hash)]
13491    ///Container type for the return parameters of the [`quorumUpdateBlockNumber(uint8)`](quorumUpdateBlockNumberCall) function.
13492    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13493    #[derive(Clone)]
13494    pub struct quorumUpdateBlockNumberReturn {
13495        #[allow(missing_docs)]
13496        pub _0: alloy::sol_types::private::primitives::aliases::U256,
13497    }
13498    #[allow(
13499        non_camel_case_types,
13500        non_snake_case,
13501        clippy::pub_underscore_fields,
13502        clippy::style
13503    )]
13504    const _: () = {
13505        use alloy::sol_types as alloy_sol_types;
13506        {
13507            #[doc(hidden)]
13508            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,);
13509            #[doc(hidden)]
13510            type UnderlyingRustTuple<'a> = (u8,);
13511            #[cfg(test)]
13512            #[allow(dead_code, unreachable_patterns)]
13513            fn _type_assertion(
13514                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13515            ) {
13516                match _t {
13517                    alloy_sol_types::private::AssertTypeEq::<
13518                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13519                    >(_) => {}
13520                }
13521            }
13522            #[automatically_derived]
13523            #[doc(hidden)]
13524            impl ::core::convert::From<quorumUpdateBlockNumberCall>
13525            for UnderlyingRustTuple<'_> {
13526                fn from(value: quorumUpdateBlockNumberCall) -> Self {
13527                    (value._0,)
13528                }
13529            }
13530            #[automatically_derived]
13531            #[doc(hidden)]
13532            impl ::core::convert::From<UnderlyingRustTuple<'_>>
13533            for quorumUpdateBlockNumberCall {
13534                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13535                    Self { _0: tuple.0 }
13536                }
13537            }
13538        }
13539        {
13540            #[doc(hidden)]
13541            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
13542            #[doc(hidden)]
13543            type UnderlyingRustTuple<'a> = (
13544                alloy::sol_types::private::primitives::aliases::U256,
13545            );
13546            #[cfg(test)]
13547            #[allow(dead_code, unreachable_patterns)]
13548            fn _type_assertion(
13549                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13550            ) {
13551                match _t {
13552                    alloy_sol_types::private::AssertTypeEq::<
13553                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13554                    >(_) => {}
13555                }
13556            }
13557            #[automatically_derived]
13558            #[doc(hidden)]
13559            impl ::core::convert::From<quorumUpdateBlockNumberReturn>
13560            for UnderlyingRustTuple<'_> {
13561                fn from(value: quorumUpdateBlockNumberReturn) -> Self {
13562                    (value._0,)
13563                }
13564            }
13565            #[automatically_derived]
13566            #[doc(hidden)]
13567            impl ::core::convert::From<UnderlyingRustTuple<'_>>
13568            for quorumUpdateBlockNumberReturn {
13569                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13570                    Self { _0: tuple.0 }
13571                }
13572            }
13573        }
13574        #[automatically_derived]
13575        impl alloy_sol_types::SolCall for quorumUpdateBlockNumberCall {
13576            type Parameters<'a> = (alloy::sol_types::sol_data::Uint<8>,);
13577            type Token<'a> = <Self::Parameters<
13578                'a,
13579            > as alloy_sol_types::SolType>::Token<'a>;
13580            type Return = quorumUpdateBlockNumberReturn;
13581            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
13582            type ReturnToken<'a> = <Self::ReturnTuple<
13583                'a,
13584            > as alloy_sol_types::SolType>::Token<'a>;
13585            const SIGNATURE: &'static str = "quorumUpdateBlockNumber(uint8)";
13586            const SELECTOR: [u8; 4] = [36u8, 154u8, 12u8, 66u8];
13587            #[inline]
13588            fn new<'a>(
13589                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
13590            ) -> Self {
13591                tuple.into()
13592            }
13593            #[inline]
13594            fn tokenize(&self) -> Self::Token<'_> {
13595                (
13596                    <alloy::sol_types::sol_data::Uint<
13597                        8,
13598                    > as alloy_sol_types::SolType>::tokenize(&self._0),
13599                )
13600            }
13601            #[inline]
13602            fn abi_decode_returns(
13603                data: &[u8],
13604                validate: bool,
13605            ) -> alloy_sol_types::Result<Self::Return> {
13606                <Self::ReturnTuple<
13607                    '_,
13608                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
13609                    .map(Into::into)
13610            }
13611        }
13612    };
13613    #[derive(Default, Debug, PartialEq, Eq, Hash)]
13614    /**Function with signature `registerOperator(address,address,uint32[],bytes)` and selector `0xc63fd502`.
13615```solidity
13616function registerOperator(address operator, address avs, uint32[] memory operatorSetIds, bytes memory data) external;
13617```*/
13618    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13619    #[derive(Clone)]
13620    pub struct registerOperatorCall {
13621        #[allow(missing_docs)]
13622        pub operator: alloy::sol_types::private::Address,
13623        #[allow(missing_docs)]
13624        pub avs: alloy::sol_types::private::Address,
13625        #[allow(missing_docs)]
13626        pub operatorSetIds: alloy::sol_types::private::Vec<u32>,
13627        #[allow(missing_docs)]
13628        pub data: alloy::sol_types::private::Bytes,
13629    }
13630    ///Container type for the return parameters of the [`registerOperator(address,address,uint32[],bytes)`](registerOperatorCall) function.
13631    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13632    #[derive(Clone)]
13633    pub struct registerOperatorReturn {}
13634    #[allow(
13635        non_camel_case_types,
13636        non_snake_case,
13637        clippy::pub_underscore_fields,
13638        clippy::style
13639    )]
13640    const _: () = {
13641        use alloy::sol_types as alloy_sol_types;
13642        {
13643            #[doc(hidden)]
13644            type UnderlyingSolTuple<'a> = (
13645                alloy::sol_types::sol_data::Address,
13646                alloy::sol_types::sol_data::Address,
13647                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<32>>,
13648                alloy::sol_types::sol_data::Bytes,
13649            );
13650            #[doc(hidden)]
13651            type UnderlyingRustTuple<'a> = (
13652                alloy::sol_types::private::Address,
13653                alloy::sol_types::private::Address,
13654                alloy::sol_types::private::Vec<u32>,
13655                alloy::sol_types::private::Bytes,
13656            );
13657            #[cfg(test)]
13658            #[allow(dead_code, unreachable_patterns)]
13659            fn _type_assertion(
13660                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13661            ) {
13662                match _t {
13663                    alloy_sol_types::private::AssertTypeEq::<
13664                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13665                    >(_) => {}
13666                }
13667            }
13668            #[automatically_derived]
13669            #[doc(hidden)]
13670            impl ::core::convert::From<registerOperatorCall>
13671            for UnderlyingRustTuple<'_> {
13672                fn from(value: registerOperatorCall) -> Self {
13673                    (value.operator, value.avs, value.operatorSetIds, value.data)
13674                }
13675            }
13676            #[automatically_derived]
13677            #[doc(hidden)]
13678            impl ::core::convert::From<UnderlyingRustTuple<'_>>
13679            for registerOperatorCall {
13680                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13681                    Self {
13682                        operator: tuple.0,
13683                        avs: tuple.1,
13684                        operatorSetIds: tuple.2,
13685                        data: tuple.3,
13686                    }
13687                }
13688            }
13689        }
13690        {
13691            #[doc(hidden)]
13692            type UnderlyingSolTuple<'a> = ();
13693            #[doc(hidden)]
13694            type UnderlyingRustTuple<'a> = ();
13695            #[cfg(test)]
13696            #[allow(dead_code, unreachable_patterns)]
13697            fn _type_assertion(
13698                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13699            ) {
13700                match _t {
13701                    alloy_sol_types::private::AssertTypeEq::<
13702                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13703                    >(_) => {}
13704                }
13705            }
13706            #[automatically_derived]
13707            #[doc(hidden)]
13708            impl ::core::convert::From<registerOperatorReturn>
13709            for UnderlyingRustTuple<'_> {
13710                fn from(value: registerOperatorReturn) -> Self {
13711                    ()
13712                }
13713            }
13714            #[automatically_derived]
13715            #[doc(hidden)]
13716            impl ::core::convert::From<UnderlyingRustTuple<'_>>
13717            for registerOperatorReturn {
13718                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13719                    Self {}
13720                }
13721            }
13722        }
13723        #[automatically_derived]
13724        impl alloy_sol_types::SolCall for registerOperatorCall {
13725            type Parameters<'a> = (
13726                alloy::sol_types::sol_data::Address,
13727                alloy::sol_types::sol_data::Address,
13728                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<32>>,
13729                alloy::sol_types::sol_data::Bytes,
13730            );
13731            type Token<'a> = <Self::Parameters<
13732                'a,
13733            > as alloy_sol_types::SolType>::Token<'a>;
13734            type Return = registerOperatorReturn;
13735            type ReturnTuple<'a> = ();
13736            type ReturnToken<'a> = <Self::ReturnTuple<
13737                'a,
13738            > as alloy_sol_types::SolType>::Token<'a>;
13739            const SIGNATURE: &'static str = "registerOperator(address,address,uint32[],bytes)";
13740            const SELECTOR: [u8; 4] = [198u8, 63u8, 213u8, 2u8];
13741            #[inline]
13742            fn new<'a>(
13743                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
13744            ) -> Self {
13745                tuple.into()
13746            }
13747            #[inline]
13748            fn tokenize(&self) -> Self::Token<'_> {
13749                (
13750                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
13751                        &self.operator,
13752                    ),
13753                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
13754                        &self.avs,
13755                    ),
13756                    <alloy::sol_types::sol_data::Array<
13757                        alloy::sol_types::sol_data::Uint<32>,
13758                    > as alloy_sol_types::SolType>::tokenize(&self.operatorSetIds),
13759                    <alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
13760                        &self.data,
13761                    ),
13762                )
13763            }
13764            #[inline]
13765            fn abi_decode_returns(
13766                data: &[u8],
13767                validate: bool,
13768            ) -> alloy_sol_types::Result<Self::Return> {
13769                <Self::ReturnTuple<
13770                    '_,
13771                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
13772                    .map(Into::into)
13773            }
13774        }
13775    };
13776    #[derive(Default, Debug, PartialEq, Eq, Hash)]
13777    /**Function with signature `renounceOwnership()` and selector `0x715018a6`.
13778```solidity
13779function renounceOwnership() external;
13780```*/
13781    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13782    #[derive(Clone)]
13783    pub struct renounceOwnershipCall {}
13784    ///Container type for the return parameters of the [`renounceOwnership()`](renounceOwnershipCall) function.
13785    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13786    #[derive(Clone)]
13787    pub struct renounceOwnershipReturn {}
13788    #[allow(
13789        non_camel_case_types,
13790        non_snake_case,
13791        clippy::pub_underscore_fields,
13792        clippy::style
13793    )]
13794    const _: () = {
13795        use alloy::sol_types as alloy_sol_types;
13796        {
13797            #[doc(hidden)]
13798            type UnderlyingSolTuple<'a> = ();
13799            #[doc(hidden)]
13800            type UnderlyingRustTuple<'a> = ();
13801            #[cfg(test)]
13802            #[allow(dead_code, unreachable_patterns)]
13803            fn _type_assertion(
13804                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13805            ) {
13806                match _t {
13807                    alloy_sol_types::private::AssertTypeEq::<
13808                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13809                    >(_) => {}
13810                }
13811            }
13812            #[automatically_derived]
13813            #[doc(hidden)]
13814            impl ::core::convert::From<renounceOwnershipCall>
13815            for UnderlyingRustTuple<'_> {
13816                fn from(value: renounceOwnershipCall) -> Self {
13817                    ()
13818                }
13819            }
13820            #[automatically_derived]
13821            #[doc(hidden)]
13822            impl ::core::convert::From<UnderlyingRustTuple<'_>>
13823            for renounceOwnershipCall {
13824                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13825                    Self {}
13826                }
13827            }
13828        }
13829        {
13830            #[doc(hidden)]
13831            type UnderlyingSolTuple<'a> = ();
13832            #[doc(hidden)]
13833            type UnderlyingRustTuple<'a> = ();
13834            #[cfg(test)]
13835            #[allow(dead_code, unreachable_patterns)]
13836            fn _type_assertion(
13837                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13838            ) {
13839                match _t {
13840                    alloy_sol_types::private::AssertTypeEq::<
13841                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13842                    >(_) => {}
13843                }
13844            }
13845            #[automatically_derived]
13846            #[doc(hidden)]
13847            impl ::core::convert::From<renounceOwnershipReturn>
13848            for UnderlyingRustTuple<'_> {
13849                fn from(value: renounceOwnershipReturn) -> Self {
13850                    ()
13851                }
13852            }
13853            #[automatically_derived]
13854            #[doc(hidden)]
13855            impl ::core::convert::From<UnderlyingRustTuple<'_>>
13856            for renounceOwnershipReturn {
13857                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13858                    Self {}
13859                }
13860            }
13861        }
13862        #[automatically_derived]
13863        impl alloy_sol_types::SolCall for renounceOwnershipCall {
13864            type Parameters<'a> = ();
13865            type Token<'a> = <Self::Parameters<
13866                'a,
13867            > as alloy_sol_types::SolType>::Token<'a>;
13868            type Return = renounceOwnershipReturn;
13869            type ReturnTuple<'a> = ();
13870            type ReturnToken<'a> = <Self::ReturnTuple<
13871                'a,
13872            > as alloy_sol_types::SolType>::Token<'a>;
13873            const SIGNATURE: &'static str = "renounceOwnership()";
13874            const SELECTOR: [u8; 4] = [113u8, 80u8, 24u8, 166u8];
13875            #[inline]
13876            fn new<'a>(
13877                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
13878            ) -> Self {
13879                tuple.into()
13880            }
13881            #[inline]
13882            fn tokenize(&self) -> Self::Token<'_> {
13883                ()
13884            }
13885            #[inline]
13886            fn abi_decode_returns(
13887                data: &[u8],
13888                validate: bool,
13889            ) -> alloy_sol_types::Result<Self::Return> {
13890                <Self::ReturnTuple<
13891                    '_,
13892                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
13893                    .map(Into::into)
13894            }
13895        }
13896    };
13897    #[derive(Default, Debug, PartialEq, Eq, Hash)]
13898    /**Function with signature `setAVS(address)` and selector `0xa65497c6`.
13899```solidity
13900function setAVS(address _avs) external;
13901```*/
13902    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13903    #[derive(Clone)]
13904    pub struct setAVSCall {
13905        #[allow(missing_docs)]
13906        pub _avs: alloy::sol_types::private::Address,
13907    }
13908    ///Container type for the return parameters of the [`setAVS(address)`](setAVSCall) function.
13909    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
13910    #[derive(Clone)]
13911    pub struct setAVSReturn {}
13912    #[allow(
13913        non_camel_case_types,
13914        non_snake_case,
13915        clippy::pub_underscore_fields,
13916        clippy::style
13917    )]
13918    const _: () = {
13919        use alloy::sol_types as alloy_sol_types;
13920        {
13921            #[doc(hidden)]
13922            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
13923            #[doc(hidden)]
13924            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
13925            #[cfg(test)]
13926            #[allow(dead_code, unreachable_patterns)]
13927            fn _type_assertion(
13928                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13929            ) {
13930                match _t {
13931                    alloy_sol_types::private::AssertTypeEq::<
13932                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13933                    >(_) => {}
13934                }
13935            }
13936            #[automatically_derived]
13937            #[doc(hidden)]
13938            impl ::core::convert::From<setAVSCall> for UnderlyingRustTuple<'_> {
13939                fn from(value: setAVSCall) -> Self {
13940                    (value._avs,)
13941                }
13942            }
13943            #[automatically_derived]
13944            #[doc(hidden)]
13945            impl ::core::convert::From<UnderlyingRustTuple<'_>> for setAVSCall {
13946                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13947                    Self { _avs: tuple.0 }
13948                }
13949            }
13950        }
13951        {
13952            #[doc(hidden)]
13953            type UnderlyingSolTuple<'a> = ();
13954            #[doc(hidden)]
13955            type UnderlyingRustTuple<'a> = ();
13956            #[cfg(test)]
13957            #[allow(dead_code, unreachable_patterns)]
13958            fn _type_assertion(
13959                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
13960            ) {
13961                match _t {
13962                    alloy_sol_types::private::AssertTypeEq::<
13963                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
13964                    >(_) => {}
13965                }
13966            }
13967            #[automatically_derived]
13968            #[doc(hidden)]
13969            impl ::core::convert::From<setAVSReturn> for UnderlyingRustTuple<'_> {
13970                fn from(value: setAVSReturn) -> Self {
13971                    ()
13972                }
13973            }
13974            #[automatically_derived]
13975            #[doc(hidden)]
13976            impl ::core::convert::From<UnderlyingRustTuple<'_>> for setAVSReturn {
13977                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
13978                    Self {}
13979                }
13980            }
13981        }
13982        #[automatically_derived]
13983        impl alloy_sol_types::SolCall for setAVSCall {
13984            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
13985            type Token<'a> = <Self::Parameters<
13986                'a,
13987            > as alloy_sol_types::SolType>::Token<'a>;
13988            type Return = setAVSReturn;
13989            type ReturnTuple<'a> = ();
13990            type ReturnToken<'a> = <Self::ReturnTuple<
13991                'a,
13992            > as alloy_sol_types::SolType>::Token<'a>;
13993            const SIGNATURE: &'static str = "setAVS(address)";
13994            const SELECTOR: [u8; 4] = [166u8, 84u8, 151u8, 198u8];
13995            #[inline]
13996            fn new<'a>(
13997                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
13998            ) -> Self {
13999                tuple.into()
14000            }
14001            #[inline]
14002            fn tokenize(&self) -> Self::Token<'_> {
14003                (
14004                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
14005                        &self._avs,
14006                    ),
14007                )
14008            }
14009            #[inline]
14010            fn abi_decode_returns(
14011                data: &[u8],
14012                validate: bool,
14013            ) -> alloy_sol_types::Result<Self::Return> {
14014                <Self::ReturnTuple<
14015                    '_,
14016                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
14017                    .map(Into::into)
14018            }
14019        }
14020    };
14021    #[derive(Default, Debug, PartialEq, Eq, Hash)]
14022    /**Function with signature `setChurnApprover(address)` and selector `0x29d1e0c3`.
14023```solidity
14024function setChurnApprover(address _churnApprover) external;
14025```*/
14026    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14027    #[derive(Clone)]
14028    pub struct setChurnApproverCall {
14029        #[allow(missing_docs)]
14030        pub _churnApprover: alloy::sol_types::private::Address,
14031    }
14032    ///Container type for the return parameters of the [`setChurnApprover(address)`](setChurnApproverCall) function.
14033    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14034    #[derive(Clone)]
14035    pub struct setChurnApproverReturn {}
14036    #[allow(
14037        non_camel_case_types,
14038        non_snake_case,
14039        clippy::pub_underscore_fields,
14040        clippy::style
14041    )]
14042    const _: () = {
14043        use alloy::sol_types as alloy_sol_types;
14044        {
14045            #[doc(hidden)]
14046            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
14047            #[doc(hidden)]
14048            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
14049            #[cfg(test)]
14050            #[allow(dead_code, unreachable_patterns)]
14051            fn _type_assertion(
14052                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14053            ) {
14054                match _t {
14055                    alloy_sol_types::private::AssertTypeEq::<
14056                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14057                    >(_) => {}
14058                }
14059            }
14060            #[automatically_derived]
14061            #[doc(hidden)]
14062            impl ::core::convert::From<setChurnApproverCall>
14063            for UnderlyingRustTuple<'_> {
14064                fn from(value: setChurnApproverCall) -> Self {
14065                    (value._churnApprover,)
14066                }
14067            }
14068            #[automatically_derived]
14069            #[doc(hidden)]
14070            impl ::core::convert::From<UnderlyingRustTuple<'_>>
14071            for setChurnApproverCall {
14072                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
14073                    Self { _churnApprover: tuple.0 }
14074                }
14075            }
14076        }
14077        {
14078            #[doc(hidden)]
14079            type UnderlyingSolTuple<'a> = ();
14080            #[doc(hidden)]
14081            type UnderlyingRustTuple<'a> = ();
14082            #[cfg(test)]
14083            #[allow(dead_code, unreachable_patterns)]
14084            fn _type_assertion(
14085                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14086            ) {
14087                match _t {
14088                    alloy_sol_types::private::AssertTypeEq::<
14089                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14090                    >(_) => {}
14091                }
14092            }
14093            #[automatically_derived]
14094            #[doc(hidden)]
14095            impl ::core::convert::From<setChurnApproverReturn>
14096            for UnderlyingRustTuple<'_> {
14097                fn from(value: setChurnApproverReturn) -> Self {
14098                    ()
14099                }
14100            }
14101            #[automatically_derived]
14102            #[doc(hidden)]
14103            impl ::core::convert::From<UnderlyingRustTuple<'_>>
14104            for setChurnApproverReturn {
14105                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
14106                    Self {}
14107                }
14108            }
14109        }
14110        #[automatically_derived]
14111        impl alloy_sol_types::SolCall for setChurnApproverCall {
14112            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
14113            type Token<'a> = <Self::Parameters<
14114                'a,
14115            > as alloy_sol_types::SolType>::Token<'a>;
14116            type Return = setChurnApproverReturn;
14117            type ReturnTuple<'a> = ();
14118            type ReturnToken<'a> = <Self::ReturnTuple<
14119                'a,
14120            > as alloy_sol_types::SolType>::Token<'a>;
14121            const SIGNATURE: &'static str = "setChurnApprover(address)";
14122            const SELECTOR: [u8; 4] = [41u8, 209u8, 224u8, 195u8];
14123            #[inline]
14124            fn new<'a>(
14125                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
14126            ) -> Self {
14127                tuple.into()
14128            }
14129            #[inline]
14130            fn tokenize(&self) -> Self::Token<'_> {
14131                (
14132                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
14133                        &self._churnApprover,
14134                    ),
14135                )
14136            }
14137            #[inline]
14138            fn abi_decode_returns(
14139                data: &[u8],
14140                validate: bool,
14141            ) -> alloy_sol_types::Result<Self::Return> {
14142                <Self::ReturnTuple<
14143                    '_,
14144                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
14145                    .map(Into::into)
14146            }
14147        }
14148    };
14149    #[derive(Default, Debug, PartialEq, Eq, Hash)]
14150    /**Function with signature `setEjectionCooldown(uint256)` and selector `0x0d3f2134`.
14151```solidity
14152function setEjectionCooldown(uint256 _ejectionCooldown) external;
14153```*/
14154    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14155    #[derive(Clone)]
14156    pub struct setEjectionCooldownCall {
14157        #[allow(missing_docs)]
14158        pub _ejectionCooldown: alloy::sol_types::private::primitives::aliases::U256,
14159    }
14160    ///Container type for the return parameters of the [`setEjectionCooldown(uint256)`](setEjectionCooldownCall) function.
14161    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14162    #[derive(Clone)]
14163    pub struct setEjectionCooldownReturn {}
14164    #[allow(
14165        non_camel_case_types,
14166        non_snake_case,
14167        clippy::pub_underscore_fields,
14168        clippy::style
14169    )]
14170    const _: () = {
14171        use alloy::sol_types as alloy_sol_types;
14172        {
14173            #[doc(hidden)]
14174            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
14175            #[doc(hidden)]
14176            type UnderlyingRustTuple<'a> = (
14177                alloy::sol_types::private::primitives::aliases::U256,
14178            );
14179            #[cfg(test)]
14180            #[allow(dead_code, unreachable_patterns)]
14181            fn _type_assertion(
14182                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14183            ) {
14184                match _t {
14185                    alloy_sol_types::private::AssertTypeEq::<
14186                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14187                    >(_) => {}
14188                }
14189            }
14190            #[automatically_derived]
14191            #[doc(hidden)]
14192            impl ::core::convert::From<setEjectionCooldownCall>
14193            for UnderlyingRustTuple<'_> {
14194                fn from(value: setEjectionCooldownCall) -> Self {
14195                    (value._ejectionCooldown,)
14196                }
14197            }
14198            #[automatically_derived]
14199            #[doc(hidden)]
14200            impl ::core::convert::From<UnderlyingRustTuple<'_>>
14201            for setEjectionCooldownCall {
14202                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
14203                    Self { _ejectionCooldown: tuple.0 }
14204                }
14205            }
14206        }
14207        {
14208            #[doc(hidden)]
14209            type UnderlyingSolTuple<'a> = ();
14210            #[doc(hidden)]
14211            type UnderlyingRustTuple<'a> = ();
14212            #[cfg(test)]
14213            #[allow(dead_code, unreachable_patterns)]
14214            fn _type_assertion(
14215                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14216            ) {
14217                match _t {
14218                    alloy_sol_types::private::AssertTypeEq::<
14219                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14220                    >(_) => {}
14221                }
14222            }
14223            #[automatically_derived]
14224            #[doc(hidden)]
14225            impl ::core::convert::From<setEjectionCooldownReturn>
14226            for UnderlyingRustTuple<'_> {
14227                fn from(value: setEjectionCooldownReturn) -> Self {
14228                    ()
14229                }
14230            }
14231            #[automatically_derived]
14232            #[doc(hidden)]
14233            impl ::core::convert::From<UnderlyingRustTuple<'_>>
14234            for setEjectionCooldownReturn {
14235                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
14236                    Self {}
14237                }
14238            }
14239        }
14240        #[automatically_derived]
14241        impl alloy_sol_types::SolCall for setEjectionCooldownCall {
14242            type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,);
14243            type Token<'a> = <Self::Parameters<
14244                'a,
14245            > as alloy_sol_types::SolType>::Token<'a>;
14246            type Return = setEjectionCooldownReturn;
14247            type ReturnTuple<'a> = ();
14248            type ReturnToken<'a> = <Self::ReturnTuple<
14249                'a,
14250            > as alloy_sol_types::SolType>::Token<'a>;
14251            const SIGNATURE: &'static str = "setEjectionCooldown(uint256)";
14252            const SELECTOR: [u8; 4] = [13u8, 63u8, 33u8, 52u8];
14253            #[inline]
14254            fn new<'a>(
14255                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
14256            ) -> Self {
14257                tuple.into()
14258            }
14259            #[inline]
14260            fn tokenize(&self) -> Self::Token<'_> {
14261                (
14262                    <alloy::sol_types::sol_data::Uint<
14263                        256,
14264                    > as alloy_sol_types::SolType>::tokenize(&self._ejectionCooldown),
14265                )
14266            }
14267            #[inline]
14268            fn abi_decode_returns(
14269                data: &[u8],
14270                validate: bool,
14271            ) -> alloy_sol_types::Result<Self::Return> {
14272                <Self::ReturnTuple<
14273                    '_,
14274                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
14275                    .map(Into::into)
14276            }
14277        }
14278    };
14279    #[derive(Default, Debug, PartialEq, Eq, Hash)]
14280    /**Function with signature `setEjector(address)` and selector `0x2cdd1e86`.
14281```solidity
14282function setEjector(address _ejector) external;
14283```*/
14284    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14285    #[derive(Clone)]
14286    pub struct setEjectorCall {
14287        #[allow(missing_docs)]
14288        pub _ejector: alloy::sol_types::private::Address,
14289    }
14290    ///Container type for the return parameters of the [`setEjector(address)`](setEjectorCall) function.
14291    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14292    #[derive(Clone)]
14293    pub struct setEjectorReturn {}
14294    #[allow(
14295        non_camel_case_types,
14296        non_snake_case,
14297        clippy::pub_underscore_fields,
14298        clippy::style
14299    )]
14300    const _: () = {
14301        use alloy::sol_types as alloy_sol_types;
14302        {
14303            #[doc(hidden)]
14304            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
14305            #[doc(hidden)]
14306            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
14307            #[cfg(test)]
14308            #[allow(dead_code, unreachable_patterns)]
14309            fn _type_assertion(
14310                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14311            ) {
14312                match _t {
14313                    alloy_sol_types::private::AssertTypeEq::<
14314                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14315                    >(_) => {}
14316                }
14317            }
14318            #[automatically_derived]
14319            #[doc(hidden)]
14320            impl ::core::convert::From<setEjectorCall> for UnderlyingRustTuple<'_> {
14321                fn from(value: setEjectorCall) -> Self {
14322                    (value._ejector,)
14323                }
14324            }
14325            #[automatically_derived]
14326            #[doc(hidden)]
14327            impl ::core::convert::From<UnderlyingRustTuple<'_>> for setEjectorCall {
14328                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
14329                    Self { _ejector: tuple.0 }
14330                }
14331            }
14332        }
14333        {
14334            #[doc(hidden)]
14335            type UnderlyingSolTuple<'a> = ();
14336            #[doc(hidden)]
14337            type UnderlyingRustTuple<'a> = ();
14338            #[cfg(test)]
14339            #[allow(dead_code, unreachable_patterns)]
14340            fn _type_assertion(
14341                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14342            ) {
14343                match _t {
14344                    alloy_sol_types::private::AssertTypeEq::<
14345                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14346                    >(_) => {}
14347                }
14348            }
14349            #[automatically_derived]
14350            #[doc(hidden)]
14351            impl ::core::convert::From<setEjectorReturn> for UnderlyingRustTuple<'_> {
14352                fn from(value: setEjectorReturn) -> Self {
14353                    ()
14354                }
14355            }
14356            #[automatically_derived]
14357            #[doc(hidden)]
14358            impl ::core::convert::From<UnderlyingRustTuple<'_>> for setEjectorReturn {
14359                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
14360                    Self {}
14361                }
14362            }
14363        }
14364        #[automatically_derived]
14365        impl alloy_sol_types::SolCall for setEjectorCall {
14366            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
14367            type Token<'a> = <Self::Parameters<
14368                'a,
14369            > as alloy_sol_types::SolType>::Token<'a>;
14370            type Return = setEjectorReturn;
14371            type ReturnTuple<'a> = ();
14372            type ReturnToken<'a> = <Self::ReturnTuple<
14373                'a,
14374            > as alloy_sol_types::SolType>::Token<'a>;
14375            const SIGNATURE: &'static str = "setEjector(address)";
14376            const SELECTOR: [u8; 4] = [44u8, 221u8, 30u8, 134u8];
14377            #[inline]
14378            fn new<'a>(
14379                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
14380            ) -> Self {
14381                tuple.into()
14382            }
14383            #[inline]
14384            fn tokenize(&self) -> Self::Token<'_> {
14385                (
14386                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
14387                        &self._ejector,
14388                    ),
14389                )
14390            }
14391            #[inline]
14392            fn abi_decode_returns(
14393                data: &[u8],
14394                validate: bool,
14395            ) -> alloy_sol_types::Result<Self::Return> {
14396                <Self::ReturnTuple<
14397                    '_,
14398                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
14399                    .map(Into::into)
14400            }
14401        }
14402    };
14403    #[derive(Default, Debug, PartialEq, Eq, Hash)]
14404    /**Function with signature `setOperatorSetParams(uint8,(uint32,uint16,uint16))` and selector `0x5b0b829f`.
14405```solidity
14406function setOperatorSetParams(uint8 quorumNumber, ISlashingRegistryCoordinatorTypes.OperatorSetParam memory operatorSetParams) external;
14407```*/
14408    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14409    #[derive(Clone)]
14410    pub struct setOperatorSetParamsCall {
14411        #[allow(missing_docs)]
14412        pub quorumNumber: u8,
14413        #[allow(missing_docs)]
14414        pub operatorSetParams: <ISlashingRegistryCoordinatorTypes::OperatorSetParam as alloy::sol_types::SolType>::RustType,
14415    }
14416    ///Container type for the return parameters of the [`setOperatorSetParams(uint8,(uint32,uint16,uint16))`](setOperatorSetParamsCall) function.
14417    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14418    #[derive(Clone)]
14419    pub struct setOperatorSetParamsReturn {}
14420    #[allow(
14421        non_camel_case_types,
14422        non_snake_case,
14423        clippy::pub_underscore_fields,
14424        clippy::style
14425    )]
14426    const _: () = {
14427        use alloy::sol_types as alloy_sol_types;
14428        {
14429            #[doc(hidden)]
14430            type UnderlyingSolTuple<'a> = (
14431                alloy::sol_types::sol_data::Uint<8>,
14432                ISlashingRegistryCoordinatorTypes::OperatorSetParam,
14433            );
14434            #[doc(hidden)]
14435            type UnderlyingRustTuple<'a> = (
14436                u8,
14437                <ISlashingRegistryCoordinatorTypes::OperatorSetParam as alloy::sol_types::SolType>::RustType,
14438            );
14439            #[cfg(test)]
14440            #[allow(dead_code, unreachable_patterns)]
14441            fn _type_assertion(
14442                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14443            ) {
14444                match _t {
14445                    alloy_sol_types::private::AssertTypeEq::<
14446                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14447                    >(_) => {}
14448                }
14449            }
14450            #[automatically_derived]
14451            #[doc(hidden)]
14452            impl ::core::convert::From<setOperatorSetParamsCall>
14453            for UnderlyingRustTuple<'_> {
14454                fn from(value: setOperatorSetParamsCall) -> Self {
14455                    (value.quorumNumber, value.operatorSetParams)
14456                }
14457            }
14458            #[automatically_derived]
14459            #[doc(hidden)]
14460            impl ::core::convert::From<UnderlyingRustTuple<'_>>
14461            for setOperatorSetParamsCall {
14462                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
14463                    Self {
14464                        quorumNumber: tuple.0,
14465                        operatorSetParams: tuple.1,
14466                    }
14467                }
14468            }
14469        }
14470        {
14471            #[doc(hidden)]
14472            type UnderlyingSolTuple<'a> = ();
14473            #[doc(hidden)]
14474            type UnderlyingRustTuple<'a> = ();
14475            #[cfg(test)]
14476            #[allow(dead_code, unreachable_patterns)]
14477            fn _type_assertion(
14478                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14479            ) {
14480                match _t {
14481                    alloy_sol_types::private::AssertTypeEq::<
14482                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14483                    >(_) => {}
14484                }
14485            }
14486            #[automatically_derived]
14487            #[doc(hidden)]
14488            impl ::core::convert::From<setOperatorSetParamsReturn>
14489            for UnderlyingRustTuple<'_> {
14490                fn from(value: setOperatorSetParamsReturn) -> Self {
14491                    ()
14492                }
14493            }
14494            #[automatically_derived]
14495            #[doc(hidden)]
14496            impl ::core::convert::From<UnderlyingRustTuple<'_>>
14497            for setOperatorSetParamsReturn {
14498                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
14499                    Self {}
14500                }
14501            }
14502        }
14503        #[automatically_derived]
14504        impl alloy_sol_types::SolCall for setOperatorSetParamsCall {
14505            type Parameters<'a> = (
14506                alloy::sol_types::sol_data::Uint<8>,
14507                ISlashingRegistryCoordinatorTypes::OperatorSetParam,
14508            );
14509            type Token<'a> = <Self::Parameters<
14510                'a,
14511            > as alloy_sol_types::SolType>::Token<'a>;
14512            type Return = setOperatorSetParamsReturn;
14513            type ReturnTuple<'a> = ();
14514            type ReturnToken<'a> = <Self::ReturnTuple<
14515                'a,
14516            > as alloy_sol_types::SolType>::Token<'a>;
14517            const SIGNATURE: &'static str = "setOperatorSetParams(uint8,(uint32,uint16,uint16))";
14518            const SELECTOR: [u8; 4] = [91u8, 11u8, 130u8, 159u8];
14519            #[inline]
14520            fn new<'a>(
14521                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
14522            ) -> Self {
14523                tuple.into()
14524            }
14525            #[inline]
14526            fn tokenize(&self) -> Self::Token<'_> {
14527                (
14528                    <alloy::sol_types::sol_data::Uint<
14529                        8,
14530                    > as alloy_sol_types::SolType>::tokenize(&self.quorumNumber),
14531                    <ISlashingRegistryCoordinatorTypes::OperatorSetParam as alloy_sol_types::SolType>::tokenize(
14532                        &self.operatorSetParams,
14533                    ),
14534                )
14535            }
14536            #[inline]
14537            fn abi_decode_returns(
14538                data: &[u8],
14539                validate: bool,
14540            ) -> alloy_sol_types::Result<Self::Return> {
14541                <Self::ReturnTuple<
14542                    '_,
14543                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
14544                    .map(Into::into)
14545            }
14546        }
14547    };
14548    #[derive(Default, Debug, PartialEq, Eq, Hash)]
14549    /**Function with signature `socketRegistry()` and selector `0xea32afae`.
14550```solidity
14551function socketRegistry() external view returns (address);
14552```*/
14553    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14554    #[derive(Clone)]
14555    pub struct socketRegistryCall {}
14556    #[derive(Default, Debug, PartialEq, Eq, Hash)]
14557    ///Container type for the return parameters of the [`socketRegistry()`](socketRegistryCall) function.
14558    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14559    #[derive(Clone)]
14560    pub struct socketRegistryReturn {
14561        #[allow(missing_docs)]
14562        pub _0: alloy::sol_types::private::Address,
14563    }
14564    #[allow(
14565        non_camel_case_types,
14566        non_snake_case,
14567        clippy::pub_underscore_fields,
14568        clippy::style
14569    )]
14570    const _: () = {
14571        use alloy::sol_types as alloy_sol_types;
14572        {
14573            #[doc(hidden)]
14574            type UnderlyingSolTuple<'a> = ();
14575            #[doc(hidden)]
14576            type UnderlyingRustTuple<'a> = ();
14577            #[cfg(test)]
14578            #[allow(dead_code, unreachable_patterns)]
14579            fn _type_assertion(
14580                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14581            ) {
14582                match _t {
14583                    alloy_sol_types::private::AssertTypeEq::<
14584                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14585                    >(_) => {}
14586                }
14587            }
14588            #[automatically_derived]
14589            #[doc(hidden)]
14590            impl ::core::convert::From<socketRegistryCall> for UnderlyingRustTuple<'_> {
14591                fn from(value: socketRegistryCall) -> Self {
14592                    ()
14593                }
14594            }
14595            #[automatically_derived]
14596            #[doc(hidden)]
14597            impl ::core::convert::From<UnderlyingRustTuple<'_>> for socketRegistryCall {
14598                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
14599                    Self {}
14600                }
14601            }
14602        }
14603        {
14604            #[doc(hidden)]
14605            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
14606            #[doc(hidden)]
14607            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
14608            #[cfg(test)]
14609            #[allow(dead_code, unreachable_patterns)]
14610            fn _type_assertion(
14611                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14612            ) {
14613                match _t {
14614                    alloy_sol_types::private::AssertTypeEq::<
14615                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14616                    >(_) => {}
14617                }
14618            }
14619            #[automatically_derived]
14620            #[doc(hidden)]
14621            impl ::core::convert::From<socketRegistryReturn>
14622            for UnderlyingRustTuple<'_> {
14623                fn from(value: socketRegistryReturn) -> Self {
14624                    (value._0,)
14625                }
14626            }
14627            #[automatically_derived]
14628            #[doc(hidden)]
14629            impl ::core::convert::From<UnderlyingRustTuple<'_>>
14630            for socketRegistryReturn {
14631                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
14632                    Self { _0: tuple.0 }
14633                }
14634            }
14635        }
14636        #[automatically_derived]
14637        impl alloy_sol_types::SolCall for socketRegistryCall {
14638            type Parameters<'a> = ();
14639            type Token<'a> = <Self::Parameters<
14640                'a,
14641            > as alloy_sol_types::SolType>::Token<'a>;
14642            type Return = socketRegistryReturn;
14643            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
14644            type ReturnToken<'a> = <Self::ReturnTuple<
14645                'a,
14646            > as alloy_sol_types::SolType>::Token<'a>;
14647            const SIGNATURE: &'static str = "socketRegistry()";
14648            const SELECTOR: [u8; 4] = [234u8, 50u8, 175u8, 174u8];
14649            #[inline]
14650            fn new<'a>(
14651                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
14652            ) -> Self {
14653                tuple.into()
14654            }
14655            #[inline]
14656            fn tokenize(&self) -> Self::Token<'_> {
14657                ()
14658            }
14659            #[inline]
14660            fn abi_decode_returns(
14661                data: &[u8],
14662                validate: bool,
14663            ) -> alloy_sol_types::Result<Self::Return> {
14664                <Self::ReturnTuple<
14665                    '_,
14666                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
14667                    .map(Into::into)
14668            }
14669        }
14670    };
14671    #[derive(Default, Debug, PartialEq, Eq, Hash)]
14672    /**Function with signature `stakeRegistry()` and selector `0x68304835`.
14673```solidity
14674function stakeRegistry() external view returns (address);
14675```*/
14676    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14677    #[derive(Clone)]
14678    pub struct stakeRegistryCall {}
14679    #[derive(Default, Debug, PartialEq, Eq, Hash)]
14680    ///Container type for the return parameters of the [`stakeRegistry()`](stakeRegistryCall) function.
14681    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14682    #[derive(Clone)]
14683    pub struct stakeRegistryReturn {
14684        #[allow(missing_docs)]
14685        pub _0: alloy::sol_types::private::Address,
14686    }
14687    #[allow(
14688        non_camel_case_types,
14689        non_snake_case,
14690        clippy::pub_underscore_fields,
14691        clippy::style
14692    )]
14693    const _: () = {
14694        use alloy::sol_types as alloy_sol_types;
14695        {
14696            #[doc(hidden)]
14697            type UnderlyingSolTuple<'a> = ();
14698            #[doc(hidden)]
14699            type UnderlyingRustTuple<'a> = ();
14700            #[cfg(test)]
14701            #[allow(dead_code, unreachable_patterns)]
14702            fn _type_assertion(
14703                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14704            ) {
14705                match _t {
14706                    alloy_sol_types::private::AssertTypeEq::<
14707                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14708                    >(_) => {}
14709                }
14710            }
14711            #[automatically_derived]
14712            #[doc(hidden)]
14713            impl ::core::convert::From<stakeRegistryCall> for UnderlyingRustTuple<'_> {
14714                fn from(value: stakeRegistryCall) -> Self {
14715                    ()
14716                }
14717            }
14718            #[automatically_derived]
14719            #[doc(hidden)]
14720            impl ::core::convert::From<UnderlyingRustTuple<'_>> for stakeRegistryCall {
14721                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
14722                    Self {}
14723                }
14724            }
14725        }
14726        {
14727            #[doc(hidden)]
14728            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
14729            #[doc(hidden)]
14730            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
14731            #[cfg(test)]
14732            #[allow(dead_code, unreachable_patterns)]
14733            fn _type_assertion(
14734                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14735            ) {
14736                match _t {
14737                    alloy_sol_types::private::AssertTypeEq::<
14738                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14739                    >(_) => {}
14740                }
14741            }
14742            #[automatically_derived]
14743            #[doc(hidden)]
14744            impl ::core::convert::From<stakeRegistryReturn> for UnderlyingRustTuple<'_> {
14745                fn from(value: stakeRegistryReturn) -> Self {
14746                    (value._0,)
14747                }
14748            }
14749            #[automatically_derived]
14750            #[doc(hidden)]
14751            impl ::core::convert::From<UnderlyingRustTuple<'_>> for stakeRegistryReturn {
14752                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
14753                    Self { _0: tuple.0 }
14754                }
14755            }
14756        }
14757        #[automatically_derived]
14758        impl alloy_sol_types::SolCall for stakeRegistryCall {
14759            type Parameters<'a> = ();
14760            type Token<'a> = <Self::Parameters<
14761                'a,
14762            > as alloy_sol_types::SolType>::Token<'a>;
14763            type Return = stakeRegistryReturn;
14764            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
14765            type ReturnToken<'a> = <Self::ReturnTuple<
14766                'a,
14767            > as alloy_sol_types::SolType>::Token<'a>;
14768            const SIGNATURE: &'static str = "stakeRegistry()";
14769            const SELECTOR: [u8; 4] = [104u8, 48u8, 72u8, 53u8];
14770            #[inline]
14771            fn new<'a>(
14772                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
14773            ) -> Self {
14774                tuple.into()
14775            }
14776            #[inline]
14777            fn tokenize(&self) -> Self::Token<'_> {
14778                ()
14779            }
14780            #[inline]
14781            fn abi_decode_returns(
14782                data: &[u8],
14783                validate: bool,
14784            ) -> alloy_sol_types::Result<Self::Return> {
14785                <Self::ReturnTuple<
14786                    '_,
14787                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
14788                    .map(Into::into)
14789            }
14790        }
14791    };
14792    #[derive(Default, Debug, PartialEq, Eq, Hash)]
14793    /**Function with signature `supportsAVS(address)` and selector `0xb5265787`.
14794```solidity
14795function supportsAVS(address _avs) external view returns (bool);
14796```*/
14797    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14798    #[derive(Clone)]
14799    pub struct supportsAVSCall {
14800        #[allow(missing_docs)]
14801        pub _avs: alloy::sol_types::private::Address,
14802    }
14803    #[derive(Default, Debug, PartialEq, Eq, Hash)]
14804    ///Container type for the return parameters of the [`supportsAVS(address)`](supportsAVSCall) function.
14805    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14806    #[derive(Clone)]
14807    pub struct supportsAVSReturn {
14808        #[allow(missing_docs)]
14809        pub _0: bool,
14810    }
14811    #[allow(
14812        non_camel_case_types,
14813        non_snake_case,
14814        clippy::pub_underscore_fields,
14815        clippy::style
14816    )]
14817    const _: () = {
14818        use alloy::sol_types as alloy_sol_types;
14819        {
14820            #[doc(hidden)]
14821            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
14822            #[doc(hidden)]
14823            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
14824            #[cfg(test)]
14825            #[allow(dead_code, unreachable_patterns)]
14826            fn _type_assertion(
14827                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14828            ) {
14829                match _t {
14830                    alloy_sol_types::private::AssertTypeEq::<
14831                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14832                    >(_) => {}
14833                }
14834            }
14835            #[automatically_derived]
14836            #[doc(hidden)]
14837            impl ::core::convert::From<supportsAVSCall> for UnderlyingRustTuple<'_> {
14838                fn from(value: supportsAVSCall) -> Self {
14839                    (value._avs,)
14840                }
14841            }
14842            #[automatically_derived]
14843            #[doc(hidden)]
14844            impl ::core::convert::From<UnderlyingRustTuple<'_>> for supportsAVSCall {
14845                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
14846                    Self { _avs: tuple.0 }
14847                }
14848            }
14849        }
14850        {
14851            #[doc(hidden)]
14852            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,);
14853            #[doc(hidden)]
14854            type UnderlyingRustTuple<'a> = (bool,);
14855            #[cfg(test)]
14856            #[allow(dead_code, unreachable_patterns)]
14857            fn _type_assertion(
14858                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14859            ) {
14860                match _t {
14861                    alloy_sol_types::private::AssertTypeEq::<
14862                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14863                    >(_) => {}
14864                }
14865            }
14866            #[automatically_derived]
14867            #[doc(hidden)]
14868            impl ::core::convert::From<supportsAVSReturn> for UnderlyingRustTuple<'_> {
14869                fn from(value: supportsAVSReturn) -> Self {
14870                    (value._0,)
14871                }
14872            }
14873            #[automatically_derived]
14874            #[doc(hidden)]
14875            impl ::core::convert::From<UnderlyingRustTuple<'_>> for supportsAVSReturn {
14876                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
14877                    Self { _0: tuple.0 }
14878                }
14879            }
14880        }
14881        #[automatically_derived]
14882        impl alloy_sol_types::SolCall for supportsAVSCall {
14883            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
14884            type Token<'a> = <Self::Parameters<
14885                'a,
14886            > as alloy_sol_types::SolType>::Token<'a>;
14887            type Return = supportsAVSReturn;
14888            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,);
14889            type ReturnToken<'a> = <Self::ReturnTuple<
14890                'a,
14891            > as alloy_sol_types::SolType>::Token<'a>;
14892            const SIGNATURE: &'static str = "supportsAVS(address)";
14893            const SELECTOR: [u8; 4] = [181u8, 38u8, 87u8, 135u8];
14894            #[inline]
14895            fn new<'a>(
14896                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
14897            ) -> Self {
14898                tuple.into()
14899            }
14900            #[inline]
14901            fn tokenize(&self) -> Self::Token<'_> {
14902                (
14903                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
14904                        &self._avs,
14905                    ),
14906                )
14907            }
14908            #[inline]
14909            fn abi_decode_returns(
14910                data: &[u8],
14911                validate: bool,
14912            ) -> alloy_sol_types::Result<Self::Return> {
14913                <Self::ReturnTuple<
14914                    '_,
14915                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
14916                    .map(Into::into)
14917            }
14918        }
14919    };
14920    #[derive(Default, Debug, PartialEq, Eq, Hash)]
14921    /**Function with signature `transferOwnership(address)` and selector `0xf2fde38b`.
14922```solidity
14923function transferOwnership(address newOwner) external;
14924```*/
14925    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14926    #[derive(Clone)]
14927    pub struct transferOwnershipCall {
14928        #[allow(missing_docs)]
14929        pub newOwner: alloy::sol_types::private::Address,
14930    }
14931    ///Container type for the return parameters of the [`transferOwnership(address)`](transferOwnershipCall) function.
14932    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
14933    #[derive(Clone)]
14934    pub struct transferOwnershipReturn {}
14935    #[allow(
14936        non_camel_case_types,
14937        non_snake_case,
14938        clippy::pub_underscore_fields,
14939        clippy::style
14940    )]
14941    const _: () = {
14942        use alloy::sol_types as alloy_sol_types;
14943        {
14944            #[doc(hidden)]
14945            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
14946            #[doc(hidden)]
14947            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
14948            #[cfg(test)]
14949            #[allow(dead_code, unreachable_patterns)]
14950            fn _type_assertion(
14951                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14952            ) {
14953                match _t {
14954                    alloy_sol_types::private::AssertTypeEq::<
14955                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14956                    >(_) => {}
14957                }
14958            }
14959            #[automatically_derived]
14960            #[doc(hidden)]
14961            impl ::core::convert::From<transferOwnershipCall>
14962            for UnderlyingRustTuple<'_> {
14963                fn from(value: transferOwnershipCall) -> Self {
14964                    (value.newOwner,)
14965                }
14966            }
14967            #[automatically_derived]
14968            #[doc(hidden)]
14969            impl ::core::convert::From<UnderlyingRustTuple<'_>>
14970            for transferOwnershipCall {
14971                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
14972                    Self { newOwner: tuple.0 }
14973                }
14974            }
14975        }
14976        {
14977            #[doc(hidden)]
14978            type UnderlyingSolTuple<'a> = ();
14979            #[doc(hidden)]
14980            type UnderlyingRustTuple<'a> = ();
14981            #[cfg(test)]
14982            #[allow(dead_code, unreachable_patterns)]
14983            fn _type_assertion(
14984                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
14985            ) {
14986                match _t {
14987                    alloy_sol_types::private::AssertTypeEq::<
14988                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
14989                    >(_) => {}
14990                }
14991            }
14992            #[automatically_derived]
14993            #[doc(hidden)]
14994            impl ::core::convert::From<transferOwnershipReturn>
14995            for UnderlyingRustTuple<'_> {
14996                fn from(value: transferOwnershipReturn) -> Self {
14997                    ()
14998                }
14999            }
15000            #[automatically_derived]
15001            #[doc(hidden)]
15002            impl ::core::convert::From<UnderlyingRustTuple<'_>>
15003            for transferOwnershipReturn {
15004                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
15005                    Self {}
15006                }
15007            }
15008        }
15009        #[automatically_derived]
15010        impl alloy_sol_types::SolCall for transferOwnershipCall {
15011            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
15012            type Token<'a> = <Self::Parameters<
15013                'a,
15014            > as alloy_sol_types::SolType>::Token<'a>;
15015            type Return = transferOwnershipReturn;
15016            type ReturnTuple<'a> = ();
15017            type ReturnToken<'a> = <Self::ReturnTuple<
15018                'a,
15019            > as alloy_sol_types::SolType>::Token<'a>;
15020            const SIGNATURE: &'static str = "transferOwnership(address)";
15021            const SELECTOR: [u8; 4] = [242u8, 253u8, 227u8, 139u8];
15022            #[inline]
15023            fn new<'a>(
15024                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
15025            ) -> Self {
15026                tuple.into()
15027            }
15028            #[inline]
15029            fn tokenize(&self) -> Self::Token<'_> {
15030                (
15031                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
15032                        &self.newOwner,
15033                    ),
15034                )
15035            }
15036            #[inline]
15037            fn abi_decode_returns(
15038                data: &[u8],
15039                validate: bool,
15040            ) -> alloy_sol_types::Result<Self::Return> {
15041                <Self::ReturnTuple<
15042                    '_,
15043                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
15044                    .map(Into::into)
15045            }
15046        }
15047    };
15048    #[derive(Default, Debug, PartialEq, Eq, Hash)]
15049    /**Function with signature `unpause(uint256)` and selector `0xfabc1cbc`.
15050```solidity
15051function unpause(uint256 newPausedStatus) external;
15052```*/
15053    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
15054    #[derive(Clone)]
15055    pub struct unpauseCall {
15056        #[allow(missing_docs)]
15057        pub newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
15058    }
15059    ///Container type for the return parameters of the [`unpause(uint256)`](unpauseCall) function.
15060    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
15061    #[derive(Clone)]
15062    pub struct unpauseReturn {}
15063    #[allow(
15064        non_camel_case_types,
15065        non_snake_case,
15066        clippy::pub_underscore_fields,
15067        clippy::style
15068    )]
15069    const _: () = {
15070        use alloy::sol_types as alloy_sol_types;
15071        {
15072            #[doc(hidden)]
15073            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
15074            #[doc(hidden)]
15075            type UnderlyingRustTuple<'a> = (
15076                alloy::sol_types::private::primitives::aliases::U256,
15077            );
15078            #[cfg(test)]
15079            #[allow(dead_code, unreachable_patterns)]
15080            fn _type_assertion(
15081                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
15082            ) {
15083                match _t {
15084                    alloy_sol_types::private::AssertTypeEq::<
15085                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
15086                    >(_) => {}
15087                }
15088            }
15089            #[automatically_derived]
15090            #[doc(hidden)]
15091            impl ::core::convert::From<unpauseCall> for UnderlyingRustTuple<'_> {
15092                fn from(value: unpauseCall) -> Self {
15093                    (value.newPausedStatus,)
15094                }
15095            }
15096            #[automatically_derived]
15097            #[doc(hidden)]
15098            impl ::core::convert::From<UnderlyingRustTuple<'_>> for unpauseCall {
15099                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
15100                    Self { newPausedStatus: tuple.0 }
15101                }
15102            }
15103        }
15104        {
15105            #[doc(hidden)]
15106            type UnderlyingSolTuple<'a> = ();
15107            #[doc(hidden)]
15108            type UnderlyingRustTuple<'a> = ();
15109            #[cfg(test)]
15110            #[allow(dead_code, unreachable_patterns)]
15111            fn _type_assertion(
15112                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
15113            ) {
15114                match _t {
15115                    alloy_sol_types::private::AssertTypeEq::<
15116                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
15117                    >(_) => {}
15118                }
15119            }
15120            #[automatically_derived]
15121            #[doc(hidden)]
15122            impl ::core::convert::From<unpauseReturn> for UnderlyingRustTuple<'_> {
15123                fn from(value: unpauseReturn) -> Self {
15124                    ()
15125                }
15126            }
15127            #[automatically_derived]
15128            #[doc(hidden)]
15129            impl ::core::convert::From<UnderlyingRustTuple<'_>> for unpauseReturn {
15130                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
15131                    Self {}
15132                }
15133            }
15134        }
15135        #[automatically_derived]
15136        impl alloy_sol_types::SolCall for unpauseCall {
15137            type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,);
15138            type Token<'a> = <Self::Parameters<
15139                'a,
15140            > as alloy_sol_types::SolType>::Token<'a>;
15141            type Return = unpauseReturn;
15142            type ReturnTuple<'a> = ();
15143            type ReturnToken<'a> = <Self::ReturnTuple<
15144                'a,
15145            > as alloy_sol_types::SolType>::Token<'a>;
15146            const SIGNATURE: &'static str = "unpause(uint256)";
15147            const SELECTOR: [u8; 4] = [250u8, 188u8, 28u8, 188u8];
15148            #[inline]
15149            fn new<'a>(
15150                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
15151            ) -> Self {
15152                tuple.into()
15153            }
15154            #[inline]
15155            fn tokenize(&self) -> Self::Token<'_> {
15156                (
15157                    <alloy::sol_types::sol_data::Uint<
15158                        256,
15159                    > as alloy_sol_types::SolType>::tokenize(&self.newPausedStatus),
15160                )
15161            }
15162            #[inline]
15163            fn abi_decode_returns(
15164                data: &[u8],
15165                validate: bool,
15166            ) -> alloy_sol_types::Result<Self::Return> {
15167                <Self::ReturnTuple<
15168                    '_,
15169                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
15170                    .map(Into::into)
15171            }
15172        }
15173    };
15174    #[derive(Default, Debug, PartialEq, Eq, Hash)]
15175    /**Function with signature `updateOperators(address[])` and selector `0x00cf2ab5`.
15176```solidity
15177function updateOperators(address[] memory operators) external;
15178```*/
15179    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
15180    #[derive(Clone)]
15181    pub struct updateOperatorsCall {
15182        #[allow(missing_docs)]
15183        pub operators: alloy::sol_types::private::Vec<
15184            alloy::sol_types::private::Address,
15185        >,
15186    }
15187    ///Container type for the return parameters of the [`updateOperators(address[])`](updateOperatorsCall) function.
15188    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
15189    #[derive(Clone)]
15190    pub struct updateOperatorsReturn {}
15191    #[allow(
15192        non_camel_case_types,
15193        non_snake_case,
15194        clippy::pub_underscore_fields,
15195        clippy::style
15196    )]
15197    const _: () = {
15198        use alloy::sol_types as alloy_sol_types;
15199        {
15200            #[doc(hidden)]
15201            type UnderlyingSolTuple<'a> = (
15202                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
15203            );
15204            #[doc(hidden)]
15205            type UnderlyingRustTuple<'a> = (
15206                alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
15207            );
15208            #[cfg(test)]
15209            #[allow(dead_code, unreachable_patterns)]
15210            fn _type_assertion(
15211                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
15212            ) {
15213                match _t {
15214                    alloy_sol_types::private::AssertTypeEq::<
15215                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
15216                    >(_) => {}
15217                }
15218            }
15219            #[automatically_derived]
15220            #[doc(hidden)]
15221            impl ::core::convert::From<updateOperatorsCall> for UnderlyingRustTuple<'_> {
15222                fn from(value: updateOperatorsCall) -> Self {
15223                    (value.operators,)
15224                }
15225            }
15226            #[automatically_derived]
15227            #[doc(hidden)]
15228            impl ::core::convert::From<UnderlyingRustTuple<'_>> for updateOperatorsCall {
15229                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
15230                    Self { operators: tuple.0 }
15231                }
15232            }
15233        }
15234        {
15235            #[doc(hidden)]
15236            type UnderlyingSolTuple<'a> = ();
15237            #[doc(hidden)]
15238            type UnderlyingRustTuple<'a> = ();
15239            #[cfg(test)]
15240            #[allow(dead_code, unreachable_patterns)]
15241            fn _type_assertion(
15242                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
15243            ) {
15244                match _t {
15245                    alloy_sol_types::private::AssertTypeEq::<
15246                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
15247                    >(_) => {}
15248                }
15249            }
15250            #[automatically_derived]
15251            #[doc(hidden)]
15252            impl ::core::convert::From<updateOperatorsReturn>
15253            for UnderlyingRustTuple<'_> {
15254                fn from(value: updateOperatorsReturn) -> Self {
15255                    ()
15256                }
15257            }
15258            #[automatically_derived]
15259            #[doc(hidden)]
15260            impl ::core::convert::From<UnderlyingRustTuple<'_>>
15261            for updateOperatorsReturn {
15262                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
15263                    Self {}
15264                }
15265            }
15266        }
15267        #[automatically_derived]
15268        impl alloy_sol_types::SolCall for updateOperatorsCall {
15269            type Parameters<'a> = (
15270                alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
15271            );
15272            type Token<'a> = <Self::Parameters<
15273                'a,
15274            > as alloy_sol_types::SolType>::Token<'a>;
15275            type Return = updateOperatorsReturn;
15276            type ReturnTuple<'a> = ();
15277            type ReturnToken<'a> = <Self::ReturnTuple<
15278                'a,
15279            > as alloy_sol_types::SolType>::Token<'a>;
15280            const SIGNATURE: &'static str = "updateOperators(address[])";
15281            const SELECTOR: [u8; 4] = [0u8, 207u8, 42u8, 181u8];
15282            #[inline]
15283            fn new<'a>(
15284                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
15285            ) -> Self {
15286                tuple.into()
15287            }
15288            #[inline]
15289            fn tokenize(&self) -> Self::Token<'_> {
15290                (
15291                    <alloy::sol_types::sol_data::Array<
15292                        alloy::sol_types::sol_data::Address,
15293                    > as alloy_sol_types::SolType>::tokenize(&self.operators),
15294                )
15295            }
15296            #[inline]
15297            fn abi_decode_returns(
15298                data: &[u8],
15299                validate: bool,
15300            ) -> alloy_sol_types::Result<Self::Return> {
15301                <Self::ReturnTuple<
15302                    '_,
15303                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
15304                    .map(Into::into)
15305            }
15306        }
15307    };
15308    #[derive(Default, Debug, PartialEq, Eq, Hash)]
15309    /**Function with signature `updateOperatorsForQuorum(address[][],bytes)` and selector `0x5140a548`.
15310```solidity
15311function updateOperatorsForQuorum(address[][] memory operatorsPerQuorum, bytes memory quorumNumbers) external;
15312```*/
15313    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
15314    #[derive(Clone)]
15315    pub struct updateOperatorsForQuorumCall {
15316        #[allow(missing_docs)]
15317        pub operatorsPerQuorum: alloy::sol_types::private::Vec<
15318            alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
15319        >,
15320        #[allow(missing_docs)]
15321        pub quorumNumbers: alloy::sol_types::private::Bytes,
15322    }
15323    ///Container type for the return parameters of the [`updateOperatorsForQuorum(address[][],bytes)`](updateOperatorsForQuorumCall) function.
15324    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
15325    #[derive(Clone)]
15326    pub struct updateOperatorsForQuorumReturn {}
15327    #[allow(
15328        non_camel_case_types,
15329        non_snake_case,
15330        clippy::pub_underscore_fields,
15331        clippy::style
15332    )]
15333    const _: () = {
15334        use alloy::sol_types as alloy_sol_types;
15335        {
15336            #[doc(hidden)]
15337            type UnderlyingSolTuple<'a> = (
15338                alloy::sol_types::sol_data::Array<
15339                    alloy::sol_types::sol_data::Array<
15340                        alloy::sol_types::sol_data::Address,
15341                    >,
15342                >,
15343                alloy::sol_types::sol_data::Bytes,
15344            );
15345            #[doc(hidden)]
15346            type UnderlyingRustTuple<'a> = (
15347                alloy::sol_types::private::Vec<
15348                    alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
15349                >,
15350                alloy::sol_types::private::Bytes,
15351            );
15352            #[cfg(test)]
15353            #[allow(dead_code, unreachable_patterns)]
15354            fn _type_assertion(
15355                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
15356            ) {
15357                match _t {
15358                    alloy_sol_types::private::AssertTypeEq::<
15359                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
15360                    >(_) => {}
15361                }
15362            }
15363            #[automatically_derived]
15364            #[doc(hidden)]
15365            impl ::core::convert::From<updateOperatorsForQuorumCall>
15366            for UnderlyingRustTuple<'_> {
15367                fn from(value: updateOperatorsForQuorumCall) -> Self {
15368                    (value.operatorsPerQuorum, value.quorumNumbers)
15369                }
15370            }
15371            #[automatically_derived]
15372            #[doc(hidden)]
15373            impl ::core::convert::From<UnderlyingRustTuple<'_>>
15374            for updateOperatorsForQuorumCall {
15375                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
15376                    Self {
15377                        operatorsPerQuorum: tuple.0,
15378                        quorumNumbers: tuple.1,
15379                    }
15380                }
15381            }
15382        }
15383        {
15384            #[doc(hidden)]
15385            type UnderlyingSolTuple<'a> = ();
15386            #[doc(hidden)]
15387            type UnderlyingRustTuple<'a> = ();
15388            #[cfg(test)]
15389            #[allow(dead_code, unreachable_patterns)]
15390            fn _type_assertion(
15391                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
15392            ) {
15393                match _t {
15394                    alloy_sol_types::private::AssertTypeEq::<
15395                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
15396                    >(_) => {}
15397                }
15398            }
15399            #[automatically_derived]
15400            #[doc(hidden)]
15401            impl ::core::convert::From<updateOperatorsForQuorumReturn>
15402            for UnderlyingRustTuple<'_> {
15403                fn from(value: updateOperatorsForQuorumReturn) -> Self {
15404                    ()
15405                }
15406            }
15407            #[automatically_derived]
15408            #[doc(hidden)]
15409            impl ::core::convert::From<UnderlyingRustTuple<'_>>
15410            for updateOperatorsForQuorumReturn {
15411                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
15412                    Self {}
15413                }
15414            }
15415        }
15416        #[automatically_derived]
15417        impl alloy_sol_types::SolCall for updateOperatorsForQuorumCall {
15418            type Parameters<'a> = (
15419                alloy::sol_types::sol_data::Array<
15420                    alloy::sol_types::sol_data::Array<
15421                        alloy::sol_types::sol_data::Address,
15422                    >,
15423                >,
15424                alloy::sol_types::sol_data::Bytes,
15425            );
15426            type Token<'a> = <Self::Parameters<
15427                'a,
15428            > as alloy_sol_types::SolType>::Token<'a>;
15429            type Return = updateOperatorsForQuorumReturn;
15430            type ReturnTuple<'a> = ();
15431            type ReturnToken<'a> = <Self::ReturnTuple<
15432                'a,
15433            > as alloy_sol_types::SolType>::Token<'a>;
15434            const SIGNATURE: &'static str = "updateOperatorsForQuorum(address[][],bytes)";
15435            const SELECTOR: [u8; 4] = [81u8, 64u8, 165u8, 72u8];
15436            #[inline]
15437            fn new<'a>(
15438                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
15439            ) -> Self {
15440                tuple.into()
15441            }
15442            #[inline]
15443            fn tokenize(&self) -> Self::Token<'_> {
15444                (
15445                    <alloy::sol_types::sol_data::Array<
15446                        alloy::sol_types::sol_data::Array<
15447                            alloy::sol_types::sol_data::Address,
15448                        >,
15449                    > as alloy_sol_types::SolType>::tokenize(&self.operatorsPerQuorum),
15450                    <alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
15451                        &self.quorumNumbers,
15452                    ),
15453                )
15454            }
15455            #[inline]
15456            fn abi_decode_returns(
15457                data: &[u8],
15458                validate: bool,
15459            ) -> alloy_sol_types::Result<Self::Return> {
15460                <Self::ReturnTuple<
15461                    '_,
15462                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
15463                    .map(Into::into)
15464            }
15465        }
15466    };
15467    #[derive(Default, Debug, PartialEq, Eq, Hash)]
15468    /**Function with signature `updateSocket(string)` and selector `0x0cf4b767`.
15469```solidity
15470function updateSocket(string memory socket) external;
15471```*/
15472    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
15473    #[derive(Clone)]
15474    pub struct updateSocketCall {
15475        #[allow(missing_docs)]
15476        pub socket: alloy::sol_types::private::String,
15477    }
15478    ///Container type for the return parameters of the [`updateSocket(string)`](updateSocketCall) function.
15479    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
15480    #[derive(Clone)]
15481    pub struct updateSocketReturn {}
15482    #[allow(
15483        non_camel_case_types,
15484        non_snake_case,
15485        clippy::pub_underscore_fields,
15486        clippy::style
15487    )]
15488    const _: () = {
15489        use alloy::sol_types as alloy_sol_types;
15490        {
15491            #[doc(hidden)]
15492            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,);
15493            #[doc(hidden)]
15494            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,);
15495            #[cfg(test)]
15496            #[allow(dead_code, unreachable_patterns)]
15497            fn _type_assertion(
15498                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
15499            ) {
15500                match _t {
15501                    alloy_sol_types::private::AssertTypeEq::<
15502                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
15503                    >(_) => {}
15504                }
15505            }
15506            #[automatically_derived]
15507            #[doc(hidden)]
15508            impl ::core::convert::From<updateSocketCall> for UnderlyingRustTuple<'_> {
15509                fn from(value: updateSocketCall) -> Self {
15510                    (value.socket,)
15511                }
15512            }
15513            #[automatically_derived]
15514            #[doc(hidden)]
15515            impl ::core::convert::From<UnderlyingRustTuple<'_>> for updateSocketCall {
15516                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
15517                    Self { socket: tuple.0 }
15518                }
15519            }
15520        }
15521        {
15522            #[doc(hidden)]
15523            type UnderlyingSolTuple<'a> = ();
15524            #[doc(hidden)]
15525            type UnderlyingRustTuple<'a> = ();
15526            #[cfg(test)]
15527            #[allow(dead_code, unreachable_patterns)]
15528            fn _type_assertion(
15529                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
15530            ) {
15531                match _t {
15532                    alloy_sol_types::private::AssertTypeEq::<
15533                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
15534                    >(_) => {}
15535                }
15536            }
15537            #[automatically_derived]
15538            #[doc(hidden)]
15539            impl ::core::convert::From<updateSocketReturn> for UnderlyingRustTuple<'_> {
15540                fn from(value: updateSocketReturn) -> Self {
15541                    ()
15542                }
15543            }
15544            #[automatically_derived]
15545            #[doc(hidden)]
15546            impl ::core::convert::From<UnderlyingRustTuple<'_>> for updateSocketReturn {
15547                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
15548                    Self {}
15549                }
15550            }
15551        }
15552        #[automatically_derived]
15553        impl alloy_sol_types::SolCall for updateSocketCall {
15554            type Parameters<'a> = (alloy::sol_types::sol_data::String,);
15555            type Token<'a> = <Self::Parameters<
15556                'a,
15557            > as alloy_sol_types::SolType>::Token<'a>;
15558            type Return = updateSocketReturn;
15559            type ReturnTuple<'a> = ();
15560            type ReturnToken<'a> = <Self::ReturnTuple<
15561                'a,
15562            > as alloy_sol_types::SolType>::Token<'a>;
15563            const SIGNATURE: &'static str = "updateSocket(string)";
15564            const SELECTOR: [u8; 4] = [12u8, 244u8, 183u8, 103u8];
15565            #[inline]
15566            fn new<'a>(
15567                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
15568            ) -> Self {
15569                tuple.into()
15570            }
15571            #[inline]
15572            fn tokenize(&self) -> Self::Token<'_> {
15573                (
15574                    <alloy::sol_types::sol_data::String as alloy_sol_types::SolType>::tokenize(
15575                        &self.socket,
15576                    ),
15577                )
15578            }
15579            #[inline]
15580            fn abi_decode_returns(
15581                data: &[u8],
15582                validate: bool,
15583            ) -> alloy_sol_types::Result<Self::Return> {
15584                <Self::ReturnTuple<
15585                    '_,
15586                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
15587                    .map(Into::into)
15588            }
15589        }
15590    };
15591    #[derive(Default, Debug, PartialEq, Eq, Hash)]
15592    /**Function with signature `version()` and selector `0x54fd4d50`.
15593```solidity
15594function version() external view returns (string memory);
15595```*/
15596    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
15597    #[derive(Clone)]
15598    pub struct versionCall {}
15599    #[derive(Default, Debug, PartialEq, Eq, Hash)]
15600    ///Container type for the return parameters of the [`version()`](versionCall) function.
15601    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
15602    #[derive(Clone)]
15603    pub struct versionReturn {
15604        #[allow(missing_docs)]
15605        pub _0: alloy::sol_types::private::String,
15606    }
15607    #[allow(
15608        non_camel_case_types,
15609        non_snake_case,
15610        clippy::pub_underscore_fields,
15611        clippy::style
15612    )]
15613    const _: () = {
15614        use alloy::sol_types as alloy_sol_types;
15615        {
15616            #[doc(hidden)]
15617            type UnderlyingSolTuple<'a> = ();
15618            #[doc(hidden)]
15619            type UnderlyingRustTuple<'a> = ();
15620            #[cfg(test)]
15621            #[allow(dead_code, unreachable_patterns)]
15622            fn _type_assertion(
15623                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
15624            ) {
15625                match _t {
15626                    alloy_sol_types::private::AssertTypeEq::<
15627                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
15628                    >(_) => {}
15629                }
15630            }
15631            #[automatically_derived]
15632            #[doc(hidden)]
15633            impl ::core::convert::From<versionCall> for UnderlyingRustTuple<'_> {
15634                fn from(value: versionCall) -> Self {
15635                    ()
15636                }
15637            }
15638            #[automatically_derived]
15639            #[doc(hidden)]
15640            impl ::core::convert::From<UnderlyingRustTuple<'_>> for versionCall {
15641                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
15642                    Self {}
15643                }
15644            }
15645        }
15646        {
15647            #[doc(hidden)]
15648            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,);
15649            #[doc(hidden)]
15650            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,);
15651            #[cfg(test)]
15652            #[allow(dead_code, unreachable_patterns)]
15653            fn _type_assertion(
15654                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
15655            ) {
15656                match _t {
15657                    alloy_sol_types::private::AssertTypeEq::<
15658                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
15659                    >(_) => {}
15660                }
15661            }
15662            #[automatically_derived]
15663            #[doc(hidden)]
15664            impl ::core::convert::From<versionReturn> for UnderlyingRustTuple<'_> {
15665                fn from(value: versionReturn) -> Self {
15666                    (value._0,)
15667                }
15668            }
15669            #[automatically_derived]
15670            #[doc(hidden)]
15671            impl ::core::convert::From<UnderlyingRustTuple<'_>> for versionReturn {
15672                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
15673                    Self { _0: tuple.0 }
15674                }
15675            }
15676        }
15677        #[automatically_derived]
15678        impl alloy_sol_types::SolCall for versionCall {
15679            type Parameters<'a> = ();
15680            type Token<'a> = <Self::Parameters<
15681                'a,
15682            > as alloy_sol_types::SolType>::Token<'a>;
15683            type Return = versionReturn;
15684            type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,);
15685            type ReturnToken<'a> = <Self::ReturnTuple<
15686                'a,
15687            > as alloy_sol_types::SolType>::Token<'a>;
15688            const SIGNATURE: &'static str = "version()";
15689            const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8];
15690            #[inline]
15691            fn new<'a>(
15692                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
15693            ) -> Self {
15694                tuple.into()
15695            }
15696            #[inline]
15697            fn tokenize(&self) -> Self::Token<'_> {
15698                ()
15699            }
15700            #[inline]
15701            fn abi_decode_returns(
15702                data: &[u8],
15703                validate: bool,
15704            ) -> alloy_sol_types::Result<Self::Return> {
15705                <Self::ReturnTuple<
15706                    '_,
15707                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
15708                    .map(Into::into)
15709            }
15710        }
15711    };
15712    ///Container for all the [`SlashingRegistryCoordinator`](self) function calls.
15713    #[derive()]
15714    pub enum SlashingRegistryCoordinatorCalls {
15715        #[allow(missing_docs)]
15716        OPERATOR_CHURN_APPROVAL_TYPEHASH(OPERATOR_CHURN_APPROVAL_TYPEHASHCall),
15717        #[allow(missing_docs)]
15718        PUBKEY_REGISTRATION_TYPEHASH(PUBKEY_REGISTRATION_TYPEHASHCall),
15719        #[allow(missing_docs)]
15720        allocationManager(allocationManagerCall),
15721        #[allow(missing_docs)]
15722        avs(avsCall),
15723        #[allow(missing_docs)]
15724        blsApkRegistry(blsApkRegistryCall),
15725        #[allow(missing_docs)]
15726        calculateOperatorChurnApprovalDigestHash(
15727            calculateOperatorChurnApprovalDigestHashCall,
15728        ),
15729        #[allow(missing_docs)]
15730        calculatePubkeyRegistrationMessageHash(
15731            calculatePubkeyRegistrationMessageHashCall,
15732        ),
15733        #[allow(missing_docs)]
15734        churnApprover(churnApproverCall),
15735        #[allow(missing_docs)]
15736        createSlashableStakeQuorum(createSlashableStakeQuorumCall),
15737        #[allow(missing_docs)]
15738        createTotalDelegatedStakeQuorum(createTotalDelegatedStakeQuorumCall),
15739        #[allow(missing_docs)]
15740        deregisterOperator(deregisterOperatorCall),
15741        #[allow(missing_docs)]
15742        domainSeparator(domainSeparatorCall),
15743        #[allow(missing_docs)]
15744        eip712Domain(eip712DomainCall),
15745        #[allow(missing_docs)]
15746        ejectOperator(ejectOperatorCall),
15747        #[allow(missing_docs)]
15748        ejectionCooldown(ejectionCooldownCall),
15749        #[allow(missing_docs)]
15750        ejector(ejectorCall),
15751        #[allow(missing_docs)]
15752        getCurrentQuorumBitmap(getCurrentQuorumBitmapCall),
15753        #[allow(missing_docs)]
15754        getOperator(getOperatorCall),
15755        #[allow(missing_docs)]
15756        getOperatorFromId(getOperatorFromIdCall),
15757        #[allow(missing_docs)]
15758        getOperatorId(getOperatorIdCall),
15759        #[allow(missing_docs)]
15760        getOperatorSetParams(getOperatorSetParamsCall),
15761        #[allow(missing_docs)]
15762        getOperatorStatus(getOperatorStatusCall),
15763        #[allow(missing_docs)]
15764        getQuorumBitmapAtBlockNumberByIndex(getQuorumBitmapAtBlockNumberByIndexCall),
15765        #[allow(missing_docs)]
15766        getQuorumBitmapHistoryLength(getQuorumBitmapHistoryLengthCall),
15767        #[allow(missing_docs)]
15768        getQuorumBitmapIndicesAtBlockNumber(getQuorumBitmapIndicesAtBlockNumberCall),
15769        #[allow(missing_docs)]
15770        getQuorumBitmapUpdateByIndex(getQuorumBitmapUpdateByIndexCall),
15771        #[allow(missing_docs)]
15772        indexRegistry(indexRegistryCall),
15773        #[allow(missing_docs)]
15774        initialize(initializeCall),
15775        #[allow(missing_docs)]
15776        isChurnApproverSaltUsed(isChurnApproverSaltUsedCall),
15777        #[allow(missing_docs)]
15778        lastEjectionTimestamp(lastEjectionTimestampCall),
15779        #[allow(missing_docs)]
15780        owner(ownerCall),
15781        #[allow(missing_docs)]
15782        pause(pauseCall),
15783        #[allow(missing_docs)]
15784        pauseAll(pauseAllCall),
15785        #[allow(missing_docs)]
15786        paused_0(paused_0Call),
15787        #[allow(missing_docs)]
15788        paused_1(paused_1Call),
15789        #[allow(missing_docs)]
15790        pauserRegistry(pauserRegistryCall),
15791        #[allow(missing_docs)]
15792        pubkeyRegistrationMessageHash(pubkeyRegistrationMessageHashCall),
15793        #[allow(missing_docs)]
15794        quorumCount(quorumCountCall),
15795        #[allow(missing_docs)]
15796        quorumUpdateBlockNumber(quorumUpdateBlockNumberCall),
15797        #[allow(missing_docs)]
15798        registerOperator(registerOperatorCall),
15799        #[allow(missing_docs)]
15800        renounceOwnership(renounceOwnershipCall),
15801        #[allow(missing_docs)]
15802        setAVS(setAVSCall),
15803        #[allow(missing_docs)]
15804        setChurnApprover(setChurnApproverCall),
15805        #[allow(missing_docs)]
15806        setEjectionCooldown(setEjectionCooldownCall),
15807        #[allow(missing_docs)]
15808        setEjector(setEjectorCall),
15809        #[allow(missing_docs)]
15810        setOperatorSetParams(setOperatorSetParamsCall),
15811        #[allow(missing_docs)]
15812        socketRegistry(socketRegistryCall),
15813        #[allow(missing_docs)]
15814        stakeRegistry(stakeRegistryCall),
15815        #[allow(missing_docs)]
15816        supportsAVS(supportsAVSCall),
15817        #[allow(missing_docs)]
15818        transferOwnership(transferOwnershipCall),
15819        #[allow(missing_docs)]
15820        unpause(unpauseCall),
15821        #[allow(missing_docs)]
15822        updateOperators(updateOperatorsCall),
15823        #[allow(missing_docs)]
15824        updateOperatorsForQuorum(updateOperatorsForQuorumCall),
15825        #[allow(missing_docs)]
15826        updateSocket(updateSocketCall),
15827        #[allow(missing_docs)]
15828        version(versionCall),
15829    }
15830    #[automatically_derived]
15831    impl SlashingRegistryCoordinatorCalls {
15832        /// All the selectors of this enum.
15833        ///
15834        /// Note that the selectors might not be in the same order as the variants.
15835        /// No guarantees are made about the order of the selectors.
15836        ///
15837        /// Prefer using `SolInterface` methods instead.
15838        pub const SELECTORS: &'static [[u8; 4usize]] = &[
15839            [0u8, 207u8, 42u8, 181u8],
15840            [3u8, 253u8, 52u8, 146u8],
15841            [4u8, 236u8, 99u8, 81u8],
15842            [5u8, 67u8, 16u8, 230u8],
15843            [12u8, 244u8, 183u8, 103u8],
15844            [13u8, 63u8, 33u8, 52u8],
15845            [18u8, 94u8, 5u8, 132u8],
15846            [19u8, 84u8, 42u8, 78u8],
15847            [19u8, 100u8, 57u8, 221u8],
15848            [20u8, 120u8, 133u8, 31u8],
15849            [30u8, 184u8, 18u8, 218u8],
15850            [36u8, 154u8, 12u8, 66u8],
15851            [40u8, 246u8, 27u8, 49u8],
15852            [41u8, 107u8, 176u8, 100u8],
15853            [41u8, 209u8, 224u8, 195u8],
15854            [44u8, 221u8, 30u8, 134u8],
15855            [48u8, 60u8, 169u8, 86u8],
15856            [60u8, 42u8, 127u8, 76u8],
15857            [62u8, 239u8, 58u8, 81u8],
15858            [81u8, 64u8, 165u8, 72u8],
15859            [83u8, 11u8, 151u8, 164u8],
15860            [84u8, 253u8, 77u8, 80u8],
15861            [88u8, 101u8, 198u8, 12u8],
15862            [89u8, 92u8, 106u8, 103u8],
15863            [90u8, 200u8, 106u8, 183u8],
15864            [91u8, 11u8, 130u8, 159u8],
15865            [92u8, 151u8, 90u8, 187u8],
15866            [93u8, 244u8, 89u8, 70u8],
15867            [104u8, 48u8, 72u8, 53u8],
15868            [110u8, 59u8, 23u8, 219u8],
15869            [113u8, 80u8, 24u8, 166u8],
15870            [115u8, 68u8, 121u8, 146u8],
15871            [130u8, 129u8, 171u8, 117u8],
15872            [132u8, 176u8, 25u8, 110u8],
15873            [132u8, 202u8, 82u8, 19u8],
15874            [135u8, 30u8, 240u8, 73u8],
15875            [136u8, 111u8, 17u8, 149u8],
15876            [141u8, 165u8, 203u8, 91u8],
15877            [154u8, 161u8, 101u8, 61u8],
15878            [158u8, 153u8, 35u8, 194u8],
15879            [159u8, 234u8, 184u8, 89u8],
15880            [166u8, 84u8, 151u8, 198u8],
15881            [169u8, 111u8, 120u8, 62u8],
15882            [181u8, 38u8, 87u8, 135u8],
15883            [195u8, 145u8, 66u8, 94u8],
15884            [198u8, 63u8, 213u8, 2u8],
15885            [202u8, 13u8, 232u8, 130u8],
15886            [202u8, 138u8, 167u8, 199u8],
15887            [222u8, 17u8, 100u8, 187u8],
15888            [230u8, 87u8, 151u8, 173u8],
15889            [234u8, 50u8, 175u8, 174u8],
15890            [242u8, 253u8, 227u8, 139u8],
15891            [246u8, 152u8, 218u8, 37u8],
15892            [250u8, 188u8, 28u8, 188u8],
15893            [253u8, 57u8, 16u8, 90u8],
15894        ];
15895    }
15896    #[automatically_derived]
15897    impl alloy_sol_types::SolInterface for SlashingRegistryCoordinatorCalls {
15898        const NAME: &'static str = "SlashingRegistryCoordinatorCalls";
15899        const MIN_DATA_LENGTH: usize = 0usize;
15900        const COUNT: usize = 55usize;
15901        #[inline]
15902        fn selector(&self) -> [u8; 4] {
15903            match self {
15904                Self::OPERATOR_CHURN_APPROVAL_TYPEHASH(_) => {
15905                    <OPERATOR_CHURN_APPROVAL_TYPEHASHCall as alloy_sol_types::SolCall>::SELECTOR
15906                }
15907                Self::PUBKEY_REGISTRATION_TYPEHASH(_) => {
15908                    <PUBKEY_REGISTRATION_TYPEHASHCall as alloy_sol_types::SolCall>::SELECTOR
15909                }
15910                Self::allocationManager(_) => {
15911                    <allocationManagerCall as alloy_sol_types::SolCall>::SELECTOR
15912                }
15913                Self::avs(_) => <avsCall as alloy_sol_types::SolCall>::SELECTOR,
15914                Self::blsApkRegistry(_) => {
15915                    <blsApkRegistryCall as alloy_sol_types::SolCall>::SELECTOR
15916                }
15917                Self::calculateOperatorChurnApprovalDigestHash(_) => {
15918                    <calculateOperatorChurnApprovalDigestHashCall as alloy_sol_types::SolCall>::SELECTOR
15919                }
15920                Self::calculatePubkeyRegistrationMessageHash(_) => {
15921                    <calculatePubkeyRegistrationMessageHashCall as alloy_sol_types::SolCall>::SELECTOR
15922                }
15923                Self::churnApprover(_) => {
15924                    <churnApproverCall as alloy_sol_types::SolCall>::SELECTOR
15925                }
15926                Self::createSlashableStakeQuorum(_) => {
15927                    <createSlashableStakeQuorumCall as alloy_sol_types::SolCall>::SELECTOR
15928                }
15929                Self::createTotalDelegatedStakeQuorum(_) => {
15930                    <createTotalDelegatedStakeQuorumCall as alloy_sol_types::SolCall>::SELECTOR
15931                }
15932                Self::deregisterOperator(_) => {
15933                    <deregisterOperatorCall as alloy_sol_types::SolCall>::SELECTOR
15934                }
15935                Self::domainSeparator(_) => {
15936                    <domainSeparatorCall as alloy_sol_types::SolCall>::SELECTOR
15937                }
15938                Self::eip712Domain(_) => {
15939                    <eip712DomainCall as alloy_sol_types::SolCall>::SELECTOR
15940                }
15941                Self::ejectOperator(_) => {
15942                    <ejectOperatorCall as alloy_sol_types::SolCall>::SELECTOR
15943                }
15944                Self::ejectionCooldown(_) => {
15945                    <ejectionCooldownCall as alloy_sol_types::SolCall>::SELECTOR
15946                }
15947                Self::ejector(_) => <ejectorCall as alloy_sol_types::SolCall>::SELECTOR,
15948                Self::getCurrentQuorumBitmap(_) => {
15949                    <getCurrentQuorumBitmapCall as alloy_sol_types::SolCall>::SELECTOR
15950                }
15951                Self::getOperator(_) => {
15952                    <getOperatorCall as alloy_sol_types::SolCall>::SELECTOR
15953                }
15954                Self::getOperatorFromId(_) => {
15955                    <getOperatorFromIdCall as alloy_sol_types::SolCall>::SELECTOR
15956                }
15957                Self::getOperatorId(_) => {
15958                    <getOperatorIdCall as alloy_sol_types::SolCall>::SELECTOR
15959                }
15960                Self::getOperatorSetParams(_) => {
15961                    <getOperatorSetParamsCall as alloy_sol_types::SolCall>::SELECTOR
15962                }
15963                Self::getOperatorStatus(_) => {
15964                    <getOperatorStatusCall as alloy_sol_types::SolCall>::SELECTOR
15965                }
15966                Self::getQuorumBitmapAtBlockNumberByIndex(_) => {
15967                    <getQuorumBitmapAtBlockNumberByIndexCall as alloy_sol_types::SolCall>::SELECTOR
15968                }
15969                Self::getQuorumBitmapHistoryLength(_) => {
15970                    <getQuorumBitmapHistoryLengthCall as alloy_sol_types::SolCall>::SELECTOR
15971                }
15972                Self::getQuorumBitmapIndicesAtBlockNumber(_) => {
15973                    <getQuorumBitmapIndicesAtBlockNumberCall as alloy_sol_types::SolCall>::SELECTOR
15974                }
15975                Self::getQuorumBitmapUpdateByIndex(_) => {
15976                    <getQuorumBitmapUpdateByIndexCall as alloy_sol_types::SolCall>::SELECTOR
15977                }
15978                Self::indexRegistry(_) => {
15979                    <indexRegistryCall as alloy_sol_types::SolCall>::SELECTOR
15980                }
15981                Self::initialize(_) => {
15982                    <initializeCall as alloy_sol_types::SolCall>::SELECTOR
15983                }
15984                Self::isChurnApproverSaltUsed(_) => {
15985                    <isChurnApproverSaltUsedCall as alloy_sol_types::SolCall>::SELECTOR
15986                }
15987                Self::lastEjectionTimestamp(_) => {
15988                    <lastEjectionTimestampCall as alloy_sol_types::SolCall>::SELECTOR
15989                }
15990                Self::owner(_) => <ownerCall as alloy_sol_types::SolCall>::SELECTOR,
15991                Self::pause(_) => <pauseCall as alloy_sol_types::SolCall>::SELECTOR,
15992                Self::pauseAll(_) => <pauseAllCall as alloy_sol_types::SolCall>::SELECTOR,
15993                Self::paused_0(_) => <paused_0Call as alloy_sol_types::SolCall>::SELECTOR,
15994                Self::paused_1(_) => <paused_1Call as alloy_sol_types::SolCall>::SELECTOR,
15995                Self::pauserRegistry(_) => {
15996                    <pauserRegistryCall as alloy_sol_types::SolCall>::SELECTOR
15997                }
15998                Self::pubkeyRegistrationMessageHash(_) => {
15999                    <pubkeyRegistrationMessageHashCall as alloy_sol_types::SolCall>::SELECTOR
16000                }
16001                Self::quorumCount(_) => {
16002                    <quorumCountCall as alloy_sol_types::SolCall>::SELECTOR
16003                }
16004                Self::quorumUpdateBlockNumber(_) => {
16005                    <quorumUpdateBlockNumberCall as alloy_sol_types::SolCall>::SELECTOR
16006                }
16007                Self::registerOperator(_) => {
16008                    <registerOperatorCall as alloy_sol_types::SolCall>::SELECTOR
16009                }
16010                Self::renounceOwnership(_) => {
16011                    <renounceOwnershipCall as alloy_sol_types::SolCall>::SELECTOR
16012                }
16013                Self::setAVS(_) => <setAVSCall as alloy_sol_types::SolCall>::SELECTOR,
16014                Self::setChurnApprover(_) => {
16015                    <setChurnApproverCall as alloy_sol_types::SolCall>::SELECTOR
16016                }
16017                Self::setEjectionCooldown(_) => {
16018                    <setEjectionCooldownCall as alloy_sol_types::SolCall>::SELECTOR
16019                }
16020                Self::setEjector(_) => {
16021                    <setEjectorCall as alloy_sol_types::SolCall>::SELECTOR
16022                }
16023                Self::setOperatorSetParams(_) => {
16024                    <setOperatorSetParamsCall as alloy_sol_types::SolCall>::SELECTOR
16025                }
16026                Self::socketRegistry(_) => {
16027                    <socketRegistryCall as alloy_sol_types::SolCall>::SELECTOR
16028                }
16029                Self::stakeRegistry(_) => {
16030                    <stakeRegistryCall as alloy_sol_types::SolCall>::SELECTOR
16031                }
16032                Self::supportsAVS(_) => {
16033                    <supportsAVSCall as alloy_sol_types::SolCall>::SELECTOR
16034                }
16035                Self::transferOwnership(_) => {
16036                    <transferOwnershipCall as alloy_sol_types::SolCall>::SELECTOR
16037                }
16038                Self::unpause(_) => <unpauseCall as alloy_sol_types::SolCall>::SELECTOR,
16039                Self::updateOperators(_) => {
16040                    <updateOperatorsCall as alloy_sol_types::SolCall>::SELECTOR
16041                }
16042                Self::updateOperatorsForQuorum(_) => {
16043                    <updateOperatorsForQuorumCall as alloy_sol_types::SolCall>::SELECTOR
16044                }
16045                Self::updateSocket(_) => {
16046                    <updateSocketCall as alloy_sol_types::SolCall>::SELECTOR
16047                }
16048                Self::version(_) => <versionCall as alloy_sol_types::SolCall>::SELECTOR,
16049            }
16050        }
16051        #[inline]
16052        fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
16053            Self::SELECTORS.get(i).copied()
16054        }
16055        #[inline]
16056        fn valid_selector(selector: [u8; 4]) -> bool {
16057            Self::SELECTORS.binary_search(&selector).is_ok()
16058        }
16059        #[inline]
16060        #[allow(non_snake_case)]
16061        fn abi_decode_raw(
16062            selector: [u8; 4],
16063            data: &[u8],
16064            validate: bool,
16065        ) -> alloy_sol_types::Result<Self> {
16066            static DECODE_SHIMS: &[fn(
16067                &[u8],
16068                bool,
16069            ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls>] = &[
16070                {
16071                    fn updateOperators(
16072                        data: &[u8],
16073                        validate: bool,
16074                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16075                        <updateOperatorsCall as alloy_sol_types::SolCall>::abi_decode_raw(
16076                                data,
16077                                validate,
16078                            )
16079                            .map(SlashingRegistryCoordinatorCalls::updateOperators)
16080                    }
16081                    updateOperators
16082                },
16083                {
16084                    fn getQuorumBitmapHistoryLength(
16085                        data: &[u8],
16086                        validate: bool,
16087                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16088                        <getQuorumBitmapHistoryLengthCall as alloy_sol_types::SolCall>::abi_decode_raw(
16089                                data,
16090                                validate,
16091                            )
16092                            .map(
16093                                SlashingRegistryCoordinatorCalls::getQuorumBitmapHistoryLength,
16094                            )
16095                    }
16096                    getQuorumBitmapHistoryLength
16097                },
16098                {
16099                    fn getQuorumBitmapAtBlockNumberByIndex(
16100                        data: &[u8],
16101                        validate: bool,
16102                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16103                        <getQuorumBitmapAtBlockNumberByIndexCall as alloy_sol_types::SolCall>::abi_decode_raw(
16104                                data,
16105                                validate,
16106                            )
16107                            .map(
16108                                SlashingRegistryCoordinatorCalls::getQuorumBitmapAtBlockNumberByIndex,
16109                            )
16110                    }
16111                    getQuorumBitmapAtBlockNumberByIndex
16112                },
16113                {
16114                    fn churnApprover(
16115                        data: &[u8],
16116                        validate: bool,
16117                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16118                        <churnApproverCall as alloy_sol_types::SolCall>::abi_decode_raw(
16119                                data,
16120                                validate,
16121                            )
16122                            .map(SlashingRegistryCoordinatorCalls::churnApprover)
16123                    }
16124                    churnApprover
16125                },
16126                {
16127                    fn updateSocket(
16128                        data: &[u8],
16129                        validate: bool,
16130                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16131                        <updateSocketCall as alloy_sol_types::SolCall>::abi_decode_raw(
16132                                data,
16133                                validate,
16134                            )
16135                            .map(SlashingRegistryCoordinatorCalls::updateSocket)
16136                    }
16137                    updateSocket
16138                },
16139                {
16140                    fn setEjectionCooldown(
16141                        data: &[u8],
16142                        validate: bool,
16143                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16144                        <setEjectionCooldownCall as alloy_sol_types::SolCall>::abi_decode_raw(
16145                                data,
16146                                validate,
16147                            )
16148                            .map(SlashingRegistryCoordinatorCalls::setEjectionCooldown)
16149                    }
16150                    setEjectionCooldown
16151                },
16152                {
16153                    fn lastEjectionTimestamp(
16154                        data: &[u8],
16155                        validate: bool,
16156                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16157                        <lastEjectionTimestampCall as alloy_sol_types::SolCall>::abi_decode_raw(
16158                                data,
16159                                validate,
16160                            )
16161                            .map(SlashingRegistryCoordinatorCalls::lastEjectionTimestamp)
16162                    }
16163                    lastEjectionTimestamp
16164                },
16165                {
16166                    fn getOperatorId(
16167                        data: &[u8],
16168                        validate: bool,
16169                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16170                        <getOperatorIdCall as alloy_sol_types::SolCall>::abi_decode_raw(
16171                                data,
16172                                validate,
16173                            )
16174                            .map(SlashingRegistryCoordinatorCalls::getOperatorId)
16175                    }
16176                    getOperatorId
16177                },
16178                {
16179                    fn pause(
16180                        data: &[u8],
16181                        validate: bool,
16182                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16183                        <pauseCall as alloy_sol_types::SolCall>::abi_decode_raw(
16184                                data,
16185                                validate,
16186                            )
16187                            .map(SlashingRegistryCoordinatorCalls::pause)
16188                    }
16189                    pause
16190                },
16191                {
16192                    fn isChurnApproverSaltUsed(
16193                        data: &[u8],
16194                        validate: bool,
16195                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16196                        <isChurnApproverSaltUsedCall as alloy_sol_types::SolCall>::abi_decode_raw(
16197                                data,
16198                                validate,
16199                            )
16200                            .map(
16201                                SlashingRegistryCoordinatorCalls::isChurnApproverSaltUsed,
16202                            )
16203                    }
16204                    isChurnApproverSaltUsed
16205                },
16206                {
16207                    fn getQuorumBitmapUpdateByIndex(
16208                        data: &[u8],
16209                        validate: bool,
16210                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16211                        <getQuorumBitmapUpdateByIndexCall as alloy_sol_types::SolCall>::abi_decode_raw(
16212                                data,
16213                                validate,
16214                            )
16215                            .map(
16216                                SlashingRegistryCoordinatorCalls::getQuorumBitmapUpdateByIndex,
16217                            )
16218                    }
16219                    getQuorumBitmapUpdateByIndex
16220                },
16221                {
16222                    fn quorumUpdateBlockNumber(
16223                        data: &[u8],
16224                        validate: bool,
16225                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16226                        <quorumUpdateBlockNumberCall as alloy_sol_types::SolCall>::abi_decode_raw(
16227                                data,
16228                                validate,
16229                            )
16230                            .map(
16231                                SlashingRegistryCoordinatorCalls::quorumUpdateBlockNumber,
16232                            )
16233                    }
16234                    quorumUpdateBlockNumber
16235                },
16236                {
16237                    fn ejector(
16238                        data: &[u8],
16239                        validate: bool,
16240                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16241                        <ejectorCall as alloy_sol_types::SolCall>::abi_decode_raw(
16242                                data,
16243                                validate,
16244                            )
16245                            .map(SlashingRegistryCoordinatorCalls::ejector)
16246                    }
16247                    ejector
16248                },
16249                {
16250                    fn getOperatorFromId(
16251                        data: &[u8],
16252                        validate: bool,
16253                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16254                        <getOperatorFromIdCall as alloy_sol_types::SolCall>::abi_decode_raw(
16255                                data,
16256                                validate,
16257                            )
16258                            .map(SlashingRegistryCoordinatorCalls::getOperatorFromId)
16259                    }
16260                    getOperatorFromId
16261                },
16262                {
16263                    fn setChurnApprover(
16264                        data: &[u8],
16265                        validate: bool,
16266                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16267                        <setChurnApproverCall as alloy_sol_types::SolCall>::abi_decode_raw(
16268                                data,
16269                                validate,
16270                            )
16271                            .map(SlashingRegistryCoordinatorCalls::setChurnApprover)
16272                    }
16273                    setChurnApprover
16274                },
16275                {
16276                    fn setEjector(
16277                        data: &[u8],
16278                        validate: bool,
16279                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16280                        <setEjectorCall as alloy_sol_types::SolCall>::abi_decode_raw(
16281                                data,
16282                                validate,
16283                            )
16284                            .map(SlashingRegistryCoordinatorCalls::setEjector)
16285                    }
16286                    setEjector
16287                },
16288                {
16289                    fn deregisterOperator(
16290                        data: &[u8],
16291                        validate: bool,
16292                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16293                        <deregisterOperatorCall as alloy_sol_types::SolCall>::abi_decode_raw(
16294                                data,
16295                                validate,
16296                            )
16297                            .map(SlashingRegistryCoordinatorCalls::deregisterOperator)
16298                    }
16299                    deregisterOperator
16300                },
16301                {
16302                    fn pubkeyRegistrationMessageHash(
16303                        data: &[u8],
16304                        validate: bool,
16305                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16306                        <pubkeyRegistrationMessageHashCall as alloy_sol_types::SolCall>::abi_decode_raw(
16307                                data,
16308                                validate,
16309                            )
16310                            .map(
16311                                SlashingRegistryCoordinatorCalls::pubkeyRegistrationMessageHash,
16312                            )
16313                    }
16314                    pubkeyRegistrationMessageHash
16315                },
16316                {
16317                    fn createSlashableStakeQuorum(
16318                        data: &[u8],
16319                        validate: bool,
16320                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16321                        <createSlashableStakeQuorumCall as alloy_sol_types::SolCall>::abi_decode_raw(
16322                                data,
16323                                validate,
16324                            )
16325                            .map(
16326                                SlashingRegistryCoordinatorCalls::createSlashableStakeQuorum,
16327                            )
16328                    }
16329                    createSlashableStakeQuorum
16330                },
16331                {
16332                    fn updateOperatorsForQuorum(
16333                        data: &[u8],
16334                        validate: bool,
16335                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16336                        <updateOperatorsForQuorumCall as alloy_sol_types::SolCall>::abi_decode_raw(
16337                                data,
16338                                validate,
16339                            )
16340                            .map(
16341                                SlashingRegistryCoordinatorCalls::updateOperatorsForQuorum,
16342                            )
16343                    }
16344                    updateOperatorsForQuorum
16345                },
16346                {
16347                    fn initialize(
16348                        data: &[u8],
16349                        validate: bool,
16350                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16351                        <initializeCall as alloy_sol_types::SolCall>::abi_decode_raw(
16352                                data,
16353                                validate,
16354                            )
16355                            .map(SlashingRegistryCoordinatorCalls::initialize)
16356                    }
16357                    initialize
16358                },
16359                {
16360                    fn version(
16361                        data: &[u8],
16362                        validate: bool,
16363                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16364                        <versionCall as alloy_sol_types::SolCall>::abi_decode_raw(
16365                                data,
16366                                validate,
16367                            )
16368                            .map(SlashingRegistryCoordinatorCalls::version)
16369                    }
16370                    version
16371                },
16372                {
16373                    fn getOperator(
16374                        data: &[u8],
16375                        validate: bool,
16376                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16377                        <getOperatorCall as alloy_sol_types::SolCall>::abi_decode_raw(
16378                                data,
16379                                validate,
16380                            )
16381                            .map(SlashingRegistryCoordinatorCalls::getOperator)
16382                    }
16383                    getOperator
16384                },
16385                {
16386                    fn pauseAll(
16387                        data: &[u8],
16388                        validate: bool,
16389                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16390                        <pauseAllCall as alloy_sol_types::SolCall>::abi_decode_raw(
16391                                data,
16392                                validate,
16393                            )
16394                            .map(SlashingRegistryCoordinatorCalls::pauseAll)
16395                    }
16396                    pauseAll
16397                },
16398                {
16399                    fn paused_0(
16400                        data: &[u8],
16401                        validate: bool,
16402                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16403                        <paused_0Call as alloy_sol_types::SolCall>::abi_decode_raw(
16404                                data,
16405                                validate,
16406                            )
16407                            .map(SlashingRegistryCoordinatorCalls::paused_0)
16408                    }
16409                    paused_0
16410                },
16411                {
16412                    fn setOperatorSetParams(
16413                        data: &[u8],
16414                        validate: bool,
16415                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16416                        <setOperatorSetParamsCall as alloy_sol_types::SolCall>::abi_decode_raw(
16417                                data,
16418                                validate,
16419                            )
16420                            .map(SlashingRegistryCoordinatorCalls::setOperatorSetParams)
16421                    }
16422                    setOperatorSetParams
16423                },
16424                {
16425                    fn paused_1(
16426                        data: &[u8],
16427                        validate: bool,
16428                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16429                        <paused_1Call as alloy_sol_types::SolCall>::abi_decode_raw(
16430                                data,
16431                                validate,
16432                            )
16433                            .map(SlashingRegistryCoordinatorCalls::paused_1)
16434                    }
16435                    paused_1
16436                },
16437                {
16438                    fn blsApkRegistry(
16439                        data: &[u8],
16440                        validate: bool,
16441                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16442                        <blsApkRegistryCall as alloy_sol_types::SolCall>::abi_decode_raw(
16443                                data,
16444                                validate,
16445                            )
16446                            .map(SlashingRegistryCoordinatorCalls::blsApkRegistry)
16447                    }
16448                    blsApkRegistry
16449                },
16450                {
16451                    fn stakeRegistry(
16452                        data: &[u8],
16453                        validate: bool,
16454                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16455                        <stakeRegistryCall as alloy_sol_types::SolCall>::abi_decode_raw(
16456                                data,
16457                                validate,
16458                            )
16459                            .map(SlashingRegistryCoordinatorCalls::stakeRegistry)
16460                    }
16461                    stakeRegistry
16462                },
16463                {
16464                    fn ejectOperator(
16465                        data: &[u8],
16466                        validate: bool,
16467                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16468                        <ejectOperatorCall as alloy_sol_types::SolCall>::abi_decode_raw(
16469                                data,
16470                                validate,
16471                            )
16472                            .map(SlashingRegistryCoordinatorCalls::ejectOperator)
16473                    }
16474                    ejectOperator
16475                },
16476                {
16477                    fn renounceOwnership(
16478                        data: &[u8],
16479                        validate: bool,
16480                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16481                        <renounceOwnershipCall as alloy_sol_types::SolCall>::abi_decode_raw(
16482                                data,
16483                                validate,
16484                            )
16485                            .map(SlashingRegistryCoordinatorCalls::renounceOwnership)
16486                    }
16487                    renounceOwnership
16488                },
16489                {
16490                    fn calculatePubkeyRegistrationMessageHash(
16491                        data: &[u8],
16492                        validate: bool,
16493                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16494                        <calculatePubkeyRegistrationMessageHashCall as alloy_sol_types::SolCall>::abi_decode_raw(
16495                                data,
16496                                validate,
16497                            )
16498                            .map(
16499                                SlashingRegistryCoordinatorCalls::calculatePubkeyRegistrationMessageHash,
16500                            )
16501                    }
16502                    calculatePubkeyRegistrationMessageHash
16503                },
16504                {
16505                    fn createTotalDelegatedStakeQuorum(
16506                        data: &[u8],
16507                        validate: bool,
16508                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16509                        <createTotalDelegatedStakeQuorumCall as alloy_sol_types::SolCall>::abi_decode_raw(
16510                                data,
16511                                validate,
16512                            )
16513                            .map(
16514                                SlashingRegistryCoordinatorCalls::createTotalDelegatedStakeQuorum,
16515                            )
16516                    }
16517                    createTotalDelegatedStakeQuorum
16518                },
16519                {
16520                    fn eip712Domain(
16521                        data: &[u8],
16522                        validate: bool,
16523                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16524                        <eip712DomainCall as alloy_sol_types::SolCall>::abi_decode_raw(
16525                                data,
16526                                validate,
16527                            )
16528                            .map(SlashingRegistryCoordinatorCalls::eip712Domain)
16529                    }
16530                    eip712Domain
16531                },
16532                {
16533                    fn calculateOperatorChurnApprovalDigestHash(
16534                        data: &[u8],
16535                        validate: bool,
16536                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16537                        <calculateOperatorChurnApprovalDigestHashCall as alloy_sol_types::SolCall>::abi_decode_raw(
16538                                data,
16539                                validate,
16540                            )
16541                            .map(
16542                                SlashingRegistryCoordinatorCalls::calculateOperatorChurnApprovalDigestHash,
16543                            )
16544                    }
16545                    calculateOperatorChurnApprovalDigestHash
16546                },
16547                {
16548                    fn getCurrentQuorumBitmap(
16549                        data: &[u8],
16550                        validate: bool,
16551                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16552                        <getCurrentQuorumBitmapCall as alloy_sol_types::SolCall>::abi_decode_raw(
16553                                data,
16554                                validate,
16555                            )
16556                            .map(
16557                                SlashingRegistryCoordinatorCalls::getCurrentQuorumBitmap,
16558                            )
16559                    }
16560                    getCurrentQuorumBitmap
16561                },
16562                {
16563                    fn pauserRegistry(
16564                        data: &[u8],
16565                        validate: bool,
16566                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16567                        <pauserRegistryCall as alloy_sol_types::SolCall>::abi_decode_raw(
16568                                data,
16569                                validate,
16570                            )
16571                            .map(SlashingRegistryCoordinatorCalls::pauserRegistry)
16572                    }
16573                    pauserRegistry
16574                },
16575                {
16576                    fn owner(
16577                        data: &[u8],
16578                        validate: bool,
16579                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16580                        <ownerCall as alloy_sol_types::SolCall>::abi_decode_raw(
16581                                data,
16582                                validate,
16583                            )
16584                            .map(SlashingRegistryCoordinatorCalls::owner)
16585                    }
16586                    owner
16587                },
16588                {
16589                    fn quorumCount(
16590                        data: &[u8],
16591                        validate: bool,
16592                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16593                        <quorumCountCall as alloy_sol_types::SolCall>::abi_decode_raw(
16594                                data,
16595                                validate,
16596                            )
16597                            .map(SlashingRegistryCoordinatorCalls::quorumCount)
16598                    }
16599                    quorumCount
16600                },
16601                {
16602                    fn indexRegistry(
16603                        data: &[u8],
16604                        validate: bool,
16605                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16606                        <indexRegistryCall as alloy_sol_types::SolCall>::abi_decode_raw(
16607                                data,
16608                                validate,
16609                            )
16610                            .map(SlashingRegistryCoordinatorCalls::indexRegistry)
16611                    }
16612                    indexRegistry
16613                },
16614                {
16615                    fn PUBKEY_REGISTRATION_TYPEHASH(
16616                        data: &[u8],
16617                        validate: bool,
16618                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16619                        <PUBKEY_REGISTRATION_TYPEHASHCall as alloy_sol_types::SolCall>::abi_decode_raw(
16620                                data,
16621                                validate,
16622                            )
16623                            .map(
16624                                SlashingRegistryCoordinatorCalls::PUBKEY_REGISTRATION_TYPEHASH,
16625                            )
16626                    }
16627                    PUBKEY_REGISTRATION_TYPEHASH
16628                },
16629                {
16630                    fn setAVS(
16631                        data: &[u8],
16632                        validate: bool,
16633                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16634                        <setAVSCall as alloy_sol_types::SolCall>::abi_decode_raw(
16635                                data,
16636                                validate,
16637                            )
16638                            .map(SlashingRegistryCoordinatorCalls::setAVS)
16639                    }
16640                    setAVS
16641                },
16642                {
16643                    fn ejectionCooldown(
16644                        data: &[u8],
16645                        validate: bool,
16646                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16647                        <ejectionCooldownCall as alloy_sol_types::SolCall>::abi_decode_raw(
16648                                data,
16649                                validate,
16650                            )
16651                            .map(SlashingRegistryCoordinatorCalls::ejectionCooldown)
16652                    }
16653                    ejectionCooldown
16654                },
16655                {
16656                    fn supportsAVS(
16657                        data: &[u8],
16658                        validate: bool,
16659                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16660                        <supportsAVSCall as alloy_sol_types::SolCall>::abi_decode_raw(
16661                                data,
16662                                validate,
16663                            )
16664                            .map(SlashingRegistryCoordinatorCalls::supportsAVS)
16665                    }
16666                    supportsAVS
16667                },
16668                {
16669                    fn getQuorumBitmapIndicesAtBlockNumber(
16670                        data: &[u8],
16671                        validate: bool,
16672                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16673                        <getQuorumBitmapIndicesAtBlockNumberCall as alloy_sol_types::SolCall>::abi_decode_raw(
16674                                data,
16675                                validate,
16676                            )
16677                            .map(
16678                                SlashingRegistryCoordinatorCalls::getQuorumBitmapIndicesAtBlockNumber,
16679                            )
16680                    }
16681                    getQuorumBitmapIndicesAtBlockNumber
16682                },
16683                {
16684                    fn registerOperator(
16685                        data: &[u8],
16686                        validate: bool,
16687                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16688                        <registerOperatorCall as alloy_sol_types::SolCall>::abi_decode_raw(
16689                                data,
16690                                validate,
16691                            )
16692                            .map(SlashingRegistryCoordinatorCalls::registerOperator)
16693                    }
16694                    registerOperator
16695                },
16696                {
16697                    fn OPERATOR_CHURN_APPROVAL_TYPEHASH(
16698                        data: &[u8],
16699                        validate: bool,
16700                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16701                        <OPERATOR_CHURN_APPROVAL_TYPEHASHCall as alloy_sol_types::SolCall>::abi_decode_raw(
16702                                data,
16703                                validate,
16704                            )
16705                            .map(
16706                                SlashingRegistryCoordinatorCalls::OPERATOR_CHURN_APPROVAL_TYPEHASH,
16707                            )
16708                    }
16709                    OPERATOR_CHURN_APPROVAL_TYPEHASH
16710                },
16711                {
16712                    fn allocationManager(
16713                        data: &[u8],
16714                        validate: bool,
16715                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16716                        <allocationManagerCall as alloy_sol_types::SolCall>::abi_decode_raw(
16717                                data,
16718                                validate,
16719                            )
16720                            .map(SlashingRegistryCoordinatorCalls::allocationManager)
16721                    }
16722                    allocationManager
16723                },
16724                {
16725                    fn avs(
16726                        data: &[u8],
16727                        validate: bool,
16728                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16729                        <avsCall as alloy_sol_types::SolCall>::abi_decode_raw(
16730                                data,
16731                                validate,
16732                            )
16733                            .map(SlashingRegistryCoordinatorCalls::avs)
16734                    }
16735                    avs
16736                },
16737                {
16738                    fn getOperatorSetParams(
16739                        data: &[u8],
16740                        validate: bool,
16741                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16742                        <getOperatorSetParamsCall as alloy_sol_types::SolCall>::abi_decode_raw(
16743                                data,
16744                                validate,
16745                            )
16746                            .map(SlashingRegistryCoordinatorCalls::getOperatorSetParams)
16747                    }
16748                    getOperatorSetParams
16749                },
16750                {
16751                    fn socketRegistry(
16752                        data: &[u8],
16753                        validate: bool,
16754                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16755                        <socketRegistryCall as alloy_sol_types::SolCall>::abi_decode_raw(
16756                                data,
16757                                validate,
16758                            )
16759                            .map(SlashingRegistryCoordinatorCalls::socketRegistry)
16760                    }
16761                    socketRegistry
16762                },
16763                {
16764                    fn transferOwnership(
16765                        data: &[u8],
16766                        validate: bool,
16767                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16768                        <transferOwnershipCall as alloy_sol_types::SolCall>::abi_decode_raw(
16769                                data,
16770                                validate,
16771                            )
16772                            .map(SlashingRegistryCoordinatorCalls::transferOwnership)
16773                    }
16774                    transferOwnership
16775                },
16776                {
16777                    fn domainSeparator(
16778                        data: &[u8],
16779                        validate: bool,
16780                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16781                        <domainSeparatorCall as alloy_sol_types::SolCall>::abi_decode_raw(
16782                                data,
16783                                validate,
16784                            )
16785                            .map(SlashingRegistryCoordinatorCalls::domainSeparator)
16786                    }
16787                    domainSeparator
16788                },
16789                {
16790                    fn unpause(
16791                        data: &[u8],
16792                        validate: bool,
16793                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16794                        <unpauseCall as alloy_sol_types::SolCall>::abi_decode_raw(
16795                                data,
16796                                validate,
16797                            )
16798                            .map(SlashingRegistryCoordinatorCalls::unpause)
16799                    }
16800                    unpause
16801                },
16802                {
16803                    fn getOperatorStatus(
16804                        data: &[u8],
16805                        validate: bool,
16806                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorCalls> {
16807                        <getOperatorStatusCall as alloy_sol_types::SolCall>::abi_decode_raw(
16808                                data,
16809                                validate,
16810                            )
16811                            .map(SlashingRegistryCoordinatorCalls::getOperatorStatus)
16812                    }
16813                    getOperatorStatus
16814                },
16815            ];
16816            let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
16817                return Err(
16818                    alloy_sol_types::Error::unknown_selector(
16819                        <Self as alloy_sol_types::SolInterface>::NAME,
16820                        selector,
16821                    ),
16822                );
16823            };
16824            DECODE_SHIMS[idx](data, validate)
16825        }
16826        #[inline]
16827        fn abi_encoded_size(&self) -> usize {
16828            match self {
16829                Self::OPERATOR_CHURN_APPROVAL_TYPEHASH(inner) => {
16830                    <OPERATOR_CHURN_APPROVAL_TYPEHASHCall as alloy_sol_types::SolCall>::abi_encoded_size(
16831                        inner,
16832                    )
16833                }
16834                Self::PUBKEY_REGISTRATION_TYPEHASH(inner) => {
16835                    <PUBKEY_REGISTRATION_TYPEHASHCall as alloy_sol_types::SolCall>::abi_encoded_size(
16836                        inner,
16837                    )
16838                }
16839                Self::allocationManager(inner) => {
16840                    <allocationManagerCall as alloy_sol_types::SolCall>::abi_encoded_size(
16841                        inner,
16842                    )
16843                }
16844                Self::avs(inner) => {
16845                    <avsCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
16846                }
16847                Self::blsApkRegistry(inner) => {
16848                    <blsApkRegistryCall as alloy_sol_types::SolCall>::abi_encoded_size(
16849                        inner,
16850                    )
16851                }
16852                Self::calculateOperatorChurnApprovalDigestHash(inner) => {
16853                    <calculateOperatorChurnApprovalDigestHashCall as alloy_sol_types::SolCall>::abi_encoded_size(
16854                        inner,
16855                    )
16856                }
16857                Self::calculatePubkeyRegistrationMessageHash(inner) => {
16858                    <calculatePubkeyRegistrationMessageHashCall as alloy_sol_types::SolCall>::abi_encoded_size(
16859                        inner,
16860                    )
16861                }
16862                Self::churnApprover(inner) => {
16863                    <churnApproverCall as alloy_sol_types::SolCall>::abi_encoded_size(
16864                        inner,
16865                    )
16866                }
16867                Self::createSlashableStakeQuorum(inner) => {
16868                    <createSlashableStakeQuorumCall as alloy_sol_types::SolCall>::abi_encoded_size(
16869                        inner,
16870                    )
16871                }
16872                Self::createTotalDelegatedStakeQuorum(inner) => {
16873                    <createTotalDelegatedStakeQuorumCall as alloy_sol_types::SolCall>::abi_encoded_size(
16874                        inner,
16875                    )
16876                }
16877                Self::deregisterOperator(inner) => {
16878                    <deregisterOperatorCall as alloy_sol_types::SolCall>::abi_encoded_size(
16879                        inner,
16880                    )
16881                }
16882                Self::domainSeparator(inner) => {
16883                    <domainSeparatorCall as alloy_sol_types::SolCall>::abi_encoded_size(
16884                        inner,
16885                    )
16886                }
16887                Self::eip712Domain(inner) => {
16888                    <eip712DomainCall as alloy_sol_types::SolCall>::abi_encoded_size(
16889                        inner,
16890                    )
16891                }
16892                Self::ejectOperator(inner) => {
16893                    <ejectOperatorCall as alloy_sol_types::SolCall>::abi_encoded_size(
16894                        inner,
16895                    )
16896                }
16897                Self::ejectionCooldown(inner) => {
16898                    <ejectionCooldownCall as alloy_sol_types::SolCall>::abi_encoded_size(
16899                        inner,
16900                    )
16901                }
16902                Self::ejector(inner) => {
16903                    <ejectorCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
16904                }
16905                Self::getCurrentQuorumBitmap(inner) => {
16906                    <getCurrentQuorumBitmapCall as alloy_sol_types::SolCall>::abi_encoded_size(
16907                        inner,
16908                    )
16909                }
16910                Self::getOperator(inner) => {
16911                    <getOperatorCall as alloy_sol_types::SolCall>::abi_encoded_size(
16912                        inner,
16913                    )
16914                }
16915                Self::getOperatorFromId(inner) => {
16916                    <getOperatorFromIdCall as alloy_sol_types::SolCall>::abi_encoded_size(
16917                        inner,
16918                    )
16919                }
16920                Self::getOperatorId(inner) => {
16921                    <getOperatorIdCall as alloy_sol_types::SolCall>::abi_encoded_size(
16922                        inner,
16923                    )
16924                }
16925                Self::getOperatorSetParams(inner) => {
16926                    <getOperatorSetParamsCall as alloy_sol_types::SolCall>::abi_encoded_size(
16927                        inner,
16928                    )
16929                }
16930                Self::getOperatorStatus(inner) => {
16931                    <getOperatorStatusCall as alloy_sol_types::SolCall>::abi_encoded_size(
16932                        inner,
16933                    )
16934                }
16935                Self::getQuorumBitmapAtBlockNumberByIndex(inner) => {
16936                    <getQuorumBitmapAtBlockNumberByIndexCall as alloy_sol_types::SolCall>::abi_encoded_size(
16937                        inner,
16938                    )
16939                }
16940                Self::getQuorumBitmapHistoryLength(inner) => {
16941                    <getQuorumBitmapHistoryLengthCall as alloy_sol_types::SolCall>::abi_encoded_size(
16942                        inner,
16943                    )
16944                }
16945                Self::getQuorumBitmapIndicesAtBlockNumber(inner) => {
16946                    <getQuorumBitmapIndicesAtBlockNumberCall as alloy_sol_types::SolCall>::abi_encoded_size(
16947                        inner,
16948                    )
16949                }
16950                Self::getQuorumBitmapUpdateByIndex(inner) => {
16951                    <getQuorumBitmapUpdateByIndexCall as alloy_sol_types::SolCall>::abi_encoded_size(
16952                        inner,
16953                    )
16954                }
16955                Self::indexRegistry(inner) => {
16956                    <indexRegistryCall as alloy_sol_types::SolCall>::abi_encoded_size(
16957                        inner,
16958                    )
16959                }
16960                Self::initialize(inner) => {
16961                    <initializeCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
16962                }
16963                Self::isChurnApproverSaltUsed(inner) => {
16964                    <isChurnApproverSaltUsedCall as alloy_sol_types::SolCall>::abi_encoded_size(
16965                        inner,
16966                    )
16967                }
16968                Self::lastEjectionTimestamp(inner) => {
16969                    <lastEjectionTimestampCall as alloy_sol_types::SolCall>::abi_encoded_size(
16970                        inner,
16971                    )
16972                }
16973                Self::owner(inner) => {
16974                    <ownerCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
16975                }
16976                Self::pause(inner) => {
16977                    <pauseCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
16978                }
16979                Self::pauseAll(inner) => {
16980                    <pauseAllCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
16981                }
16982                Self::paused_0(inner) => {
16983                    <paused_0Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
16984                }
16985                Self::paused_1(inner) => {
16986                    <paused_1Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
16987                }
16988                Self::pauserRegistry(inner) => {
16989                    <pauserRegistryCall as alloy_sol_types::SolCall>::abi_encoded_size(
16990                        inner,
16991                    )
16992                }
16993                Self::pubkeyRegistrationMessageHash(inner) => {
16994                    <pubkeyRegistrationMessageHashCall as alloy_sol_types::SolCall>::abi_encoded_size(
16995                        inner,
16996                    )
16997                }
16998                Self::quorumCount(inner) => {
16999                    <quorumCountCall as alloy_sol_types::SolCall>::abi_encoded_size(
17000                        inner,
17001                    )
17002                }
17003                Self::quorumUpdateBlockNumber(inner) => {
17004                    <quorumUpdateBlockNumberCall as alloy_sol_types::SolCall>::abi_encoded_size(
17005                        inner,
17006                    )
17007                }
17008                Self::registerOperator(inner) => {
17009                    <registerOperatorCall as alloy_sol_types::SolCall>::abi_encoded_size(
17010                        inner,
17011                    )
17012                }
17013                Self::renounceOwnership(inner) => {
17014                    <renounceOwnershipCall as alloy_sol_types::SolCall>::abi_encoded_size(
17015                        inner,
17016                    )
17017                }
17018                Self::setAVS(inner) => {
17019                    <setAVSCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
17020                }
17021                Self::setChurnApprover(inner) => {
17022                    <setChurnApproverCall as alloy_sol_types::SolCall>::abi_encoded_size(
17023                        inner,
17024                    )
17025                }
17026                Self::setEjectionCooldown(inner) => {
17027                    <setEjectionCooldownCall as alloy_sol_types::SolCall>::abi_encoded_size(
17028                        inner,
17029                    )
17030                }
17031                Self::setEjector(inner) => {
17032                    <setEjectorCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
17033                }
17034                Self::setOperatorSetParams(inner) => {
17035                    <setOperatorSetParamsCall as alloy_sol_types::SolCall>::abi_encoded_size(
17036                        inner,
17037                    )
17038                }
17039                Self::socketRegistry(inner) => {
17040                    <socketRegistryCall as alloy_sol_types::SolCall>::abi_encoded_size(
17041                        inner,
17042                    )
17043                }
17044                Self::stakeRegistry(inner) => {
17045                    <stakeRegistryCall as alloy_sol_types::SolCall>::abi_encoded_size(
17046                        inner,
17047                    )
17048                }
17049                Self::supportsAVS(inner) => {
17050                    <supportsAVSCall as alloy_sol_types::SolCall>::abi_encoded_size(
17051                        inner,
17052                    )
17053                }
17054                Self::transferOwnership(inner) => {
17055                    <transferOwnershipCall as alloy_sol_types::SolCall>::abi_encoded_size(
17056                        inner,
17057                    )
17058                }
17059                Self::unpause(inner) => {
17060                    <unpauseCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
17061                }
17062                Self::updateOperators(inner) => {
17063                    <updateOperatorsCall as alloy_sol_types::SolCall>::abi_encoded_size(
17064                        inner,
17065                    )
17066                }
17067                Self::updateOperatorsForQuorum(inner) => {
17068                    <updateOperatorsForQuorumCall as alloy_sol_types::SolCall>::abi_encoded_size(
17069                        inner,
17070                    )
17071                }
17072                Self::updateSocket(inner) => {
17073                    <updateSocketCall as alloy_sol_types::SolCall>::abi_encoded_size(
17074                        inner,
17075                    )
17076                }
17077                Self::version(inner) => {
17078                    <versionCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
17079                }
17080            }
17081        }
17082        #[inline]
17083        fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
17084            match self {
17085                Self::OPERATOR_CHURN_APPROVAL_TYPEHASH(inner) => {
17086                    <OPERATOR_CHURN_APPROVAL_TYPEHASHCall as alloy_sol_types::SolCall>::abi_encode_raw(
17087                        inner,
17088                        out,
17089                    )
17090                }
17091                Self::PUBKEY_REGISTRATION_TYPEHASH(inner) => {
17092                    <PUBKEY_REGISTRATION_TYPEHASHCall as alloy_sol_types::SolCall>::abi_encode_raw(
17093                        inner,
17094                        out,
17095                    )
17096                }
17097                Self::allocationManager(inner) => {
17098                    <allocationManagerCall as alloy_sol_types::SolCall>::abi_encode_raw(
17099                        inner,
17100                        out,
17101                    )
17102                }
17103                Self::avs(inner) => {
17104                    <avsCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
17105                }
17106                Self::blsApkRegistry(inner) => {
17107                    <blsApkRegistryCall as alloy_sol_types::SolCall>::abi_encode_raw(
17108                        inner,
17109                        out,
17110                    )
17111                }
17112                Self::calculateOperatorChurnApprovalDigestHash(inner) => {
17113                    <calculateOperatorChurnApprovalDigestHashCall as alloy_sol_types::SolCall>::abi_encode_raw(
17114                        inner,
17115                        out,
17116                    )
17117                }
17118                Self::calculatePubkeyRegistrationMessageHash(inner) => {
17119                    <calculatePubkeyRegistrationMessageHashCall as alloy_sol_types::SolCall>::abi_encode_raw(
17120                        inner,
17121                        out,
17122                    )
17123                }
17124                Self::churnApprover(inner) => {
17125                    <churnApproverCall as alloy_sol_types::SolCall>::abi_encode_raw(
17126                        inner,
17127                        out,
17128                    )
17129                }
17130                Self::createSlashableStakeQuorum(inner) => {
17131                    <createSlashableStakeQuorumCall as alloy_sol_types::SolCall>::abi_encode_raw(
17132                        inner,
17133                        out,
17134                    )
17135                }
17136                Self::createTotalDelegatedStakeQuorum(inner) => {
17137                    <createTotalDelegatedStakeQuorumCall as alloy_sol_types::SolCall>::abi_encode_raw(
17138                        inner,
17139                        out,
17140                    )
17141                }
17142                Self::deregisterOperator(inner) => {
17143                    <deregisterOperatorCall as alloy_sol_types::SolCall>::abi_encode_raw(
17144                        inner,
17145                        out,
17146                    )
17147                }
17148                Self::domainSeparator(inner) => {
17149                    <domainSeparatorCall as alloy_sol_types::SolCall>::abi_encode_raw(
17150                        inner,
17151                        out,
17152                    )
17153                }
17154                Self::eip712Domain(inner) => {
17155                    <eip712DomainCall as alloy_sol_types::SolCall>::abi_encode_raw(
17156                        inner,
17157                        out,
17158                    )
17159                }
17160                Self::ejectOperator(inner) => {
17161                    <ejectOperatorCall as alloy_sol_types::SolCall>::abi_encode_raw(
17162                        inner,
17163                        out,
17164                    )
17165                }
17166                Self::ejectionCooldown(inner) => {
17167                    <ejectionCooldownCall as alloy_sol_types::SolCall>::abi_encode_raw(
17168                        inner,
17169                        out,
17170                    )
17171                }
17172                Self::ejector(inner) => {
17173                    <ejectorCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
17174                }
17175                Self::getCurrentQuorumBitmap(inner) => {
17176                    <getCurrentQuorumBitmapCall as alloy_sol_types::SolCall>::abi_encode_raw(
17177                        inner,
17178                        out,
17179                    )
17180                }
17181                Self::getOperator(inner) => {
17182                    <getOperatorCall as alloy_sol_types::SolCall>::abi_encode_raw(
17183                        inner,
17184                        out,
17185                    )
17186                }
17187                Self::getOperatorFromId(inner) => {
17188                    <getOperatorFromIdCall as alloy_sol_types::SolCall>::abi_encode_raw(
17189                        inner,
17190                        out,
17191                    )
17192                }
17193                Self::getOperatorId(inner) => {
17194                    <getOperatorIdCall as alloy_sol_types::SolCall>::abi_encode_raw(
17195                        inner,
17196                        out,
17197                    )
17198                }
17199                Self::getOperatorSetParams(inner) => {
17200                    <getOperatorSetParamsCall as alloy_sol_types::SolCall>::abi_encode_raw(
17201                        inner,
17202                        out,
17203                    )
17204                }
17205                Self::getOperatorStatus(inner) => {
17206                    <getOperatorStatusCall as alloy_sol_types::SolCall>::abi_encode_raw(
17207                        inner,
17208                        out,
17209                    )
17210                }
17211                Self::getQuorumBitmapAtBlockNumberByIndex(inner) => {
17212                    <getQuorumBitmapAtBlockNumberByIndexCall as alloy_sol_types::SolCall>::abi_encode_raw(
17213                        inner,
17214                        out,
17215                    )
17216                }
17217                Self::getQuorumBitmapHistoryLength(inner) => {
17218                    <getQuorumBitmapHistoryLengthCall as alloy_sol_types::SolCall>::abi_encode_raw(
17219                        inner,
17220                        out,
17221                    )
17222                }
17223                Self::getQuorumBitmapIndicesAtBlockNumber(inner) => {
17224                    <getQuorumBitmapIndicesAtBlockNumberCall as alloy_sol_types::SolCall>::abi_encode_raw(
17225                        inner,
17226                        out,
17227                    )
17228                }
17229                Self::getQuorumBitmapUpdateByIndex(inner) => {
17230                    <getQuorumBitmapUpdateByIndexCall as alloy_sol_types::SolCall>::abi_encode_raw(
17231                        inner,
17232                        out,
17233                    )
17234                }
17235                Self::indexRegistry(inner) => {
17236                    <indexRegistryCall as alloy_sol_types::SolCall>::abi_encode_raw(
17237                        inner,
17238                        out,
17239                    )
17240                }
17241                Self::initialize(inner) => {
17242                    <initializeCall as alloy_sol_types::SolCall>::abi_encode_raw(
17243                        inner,
17244                        out,
17245                    )
17246                }
17247                Self::isChurnApproverSaltUsed(inner) => {
17248                    <isChurnApproverSaltUsedCall as alloy_sol_types::SolCall>::abi_encode_raw(
17249                        inner,
17250                        out,
17251                    )
17252                }
17253                Self::lastEjectionTimestamp(inner) => {
17254                    <lastEjectionTimestampCall as alloy_sol_types::SolCall>::abi_encode_raw(
17255                        inner,
17256                        out,
17257                    )
17258                }
17259                Self::owner(inner) => {
17260                    <ownerCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
17261                }
17262                Self::pause(inner) => {
17263                    <pauseCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
17264                }
17265                Self::pauseAll(inner) => {
17266                    <pauseAllCall as alloy_sol_types::SolCall>::abi_encode_raw(
17267                        inner,
17268                        out,
17269                    )
17270                }
17271                Self::paused_0(inner) => {
17272                    <paused_0Call as alloy_sol_types::SolCall>::abi_encode_raw(
17273                        inner,
17274                        out,
17275                    )
17276                }
17277                Self::paused_1(inner) => {
17278                    <paused_1Call as alloy_sol_types::SolCall>::abi_encode_raw(
17279                        inner,
17280                        out,
17281                    )
17282                }
17283                Self::pauserRegistry(inner) => {
17284                    <pauserRegistryCall as alloy_sol_types::SolCall>::abi_encode_raw(
17285                        inner,
17286                        out,
17287                    )
17288                }
17289                Self::pubkeyRegistrationMessageHash(inner) => {
17290                    <pubkeyRegistrationMessageHashCall as alloy_sol_types::SolCall>::abi_encode_raw(
17291                        inner,
17292                        out,
17293                    )
17294                }
17295                Self::quorumCount(inner) => {
17296                    <quorumCountCall as alloy_sol_types::SolCall>::abi_encode_raw(
17297                        inner,
17298                        out,
17299                    )
17300                }
17301                Self::quorumUpdateBlockNumber(inner) => {
17302                    <quorumUpdateBlockNumberCall as alloy_sol_types::SolCall>::abi_encode_raw(
17303                        inner,
17304                        out,
17305                    )
17306                }
17307                Self::registerOperator(inner) => {
17308                    <registerOperatorCall as alloy_sol_types::SolCall>::abi_encode_raw(
17309                        inner,
17310                        out,
17311                    )
17312                }
17313                Self::renounceOwnership(inner) => {
17314                    <renounceOwnershipCall as alloy_sol_types::SolCall>::abi_encode_raw(
17315                        inner,
17316                        out,
17317                    )
17318                }
17319                Self::setAVS(inner) => {
17320                    <setAVSCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
17321                }
17322                Self::setChurnApprover(inner) => {
17323                    <setChurnApproverCall as alloy_sol_types::SolCall>::abi_encode_raw(
17324                        inner,
17325                        out,
17326                    )
17327                }
17328                Self::setEjectionCooldown(inner) => {
17329                    <setEjectionCooldownCall as alloy_sol_types::SolCall>::abi_encode_raw(
17330                        inner,
17331                        out,
17332                    )
17333                }
17334                Self::setEjector(inner) => {
17335                    <setEjectorCall as alloy_sol_types::SolCall>::abi_encode_raw(
17336                        inner,
17337                        out,
17338                    )
17339                }
17340                Self::setOperatorSetParams(inner) => {
17341                    <setOperatorSetParamsCall as alloy_sol_types::SolCall>::abi_encode_raw(
17342                        inner,
17343                        out,
17344                    )
17345                }
17346                Self::socketRegistry(inner) => {
17347                    <socketRegistryCall as alloy_sol_types::SolCall>::abi_encode_raw(
17348                        inner,
17349                        out,
17350                    )
17351                }
17352                Self::stakeRegistry(inner) => {
17353                    <stakeRegistryCall as alloy_sol_types::SolCall>::abi_encode_raw(
17354                        inner,
17355                        out,
17356                    )
17357                }
17358                Self::supportsAVS(inner) => {
17359                    <supportsAVSCall as alloy_sol_types::SolCall>::abi_encode_raw(
17360                        inner,
17361                        out,
17362                    )
17363                }
17364                Self::transferOwnership(inner) => {
17365                    <transferOwnershipCall as alloy_sol_types::SolCall>::abi_encode_raw(
17366                        inner,
17367                        out,
17368                    )
17369                }
17370                Self::unpause(inner) => {
17371                    <unpauseCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
17372                }
17373                Self::updateOperators(inner) => {
17374                    <updateOperatorsCall as alloy_sol_types::SolCall>::abi_encode_raw(
17375                        inner,
17376                        out,
17377                    )
17378                }
17379                Self::updateOperatorsForQuorum(inner) => {
17380                    <updateOperatorsForQuorumCall as alloy_sol_types::SolCall>::abi_encode_raw(
17381                        inner,
17382                        out,
17383                    )
17384                }
17385                Self::updateSocket(inner) => {
17386                    <updateSocketCall as alloy_sol_types::SolCall>::abi_encode_raw(
17387                        inner,
17388                        out,
17389                    )
17390                }
17391                Self::version(inner) => {
17392                    <versionCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
17393                }
17394            }
17395        }
17396    }
17397    ///Container for all the [`SlashingRegistryCoordinator`](self) custom errors.
17398    #[derive(Debug, PartialEq, Eq, Hash)]
17399    pub enum SlashingRegistryCoordinatorErrors {
17400        #[allow(missing_docs)]
17401        AlreadyRegisteredForQuorums(AlreadyRegisteredForQuorums),
17402        #[allow(missing_docs)]
17403        BitmapCannotBeZero(BitmapCannotBeZero),
17404        #[allow(missing_docs)]
17405        BitmapEmpty(BitmapEmpty),
17406        #[allow(missing_docs)]
17407        BitmapUpdateIsAfterBlockNumber(BitmapUpdateIsAfterBlockNumber),
17408        #[allow(missing_docs)]
17409        BitmapValueTooLarge(BitmapValueTooLarge),
17410        #[allow(missing_docs)]
17411        BytesArrayLengthTooLong(BytesArrayLengthTooLong),
17412        #[allow(missing_docs)]
17413        BytesArrayNotOrdered(BytesArrayNotOrdered),
17414        #[allow(missing_docs)]
17415        CannotChurnSelf(CannotChurnSelf),
17416        #[allow(missing_docs)]
17417        CannotKickOperatorAboveThreshold(CannotKickOperatorAboveThreshold),
17418        #[allow(missing_docs)]
17419        CannotReregisterYet(CannotReregisterYet),
17420        #[allow(missing_docs)]
17421        ChurnApproverSaltUsed(ChurnApproverSaltUsed),
17422        #[allow(missing_docs)]
17423        CurrentlyPaused(CurrentlyPaused),
17424        #[allow(missing_docs)]
17425        ExpModFailed(ExpModFailed),
17426        #[allow(missing_docs)]
17427        InputAddressZero(InputAddressZero),
17428        #[allow(missing_docs)]
17429        InputLengthMismatch(InputLengthMismatch),
17430        #[allow(missing_docs)]
17431        InsufficientStakeForChurn(InsufficientStakeForChurn),
17432        #[allow(missing_docs)]
17433        InvalidAVS(InvalidAVS),
17434        #[allow(missing_docs)]
17435        InvalidNewPausedStatus(InvalidNewPausedStatus),
17436        #[allow(missing_docs)]
17437        InvalidRegistrationType(InvalidRegistrationType),
17438        #[allow(missing_docs)]
17439        InvalidShortString(InvalidShortString),
17440        #[allow(missing_docs)]
17441        InvalidSignature(InvalidSignature),
17442        #[allow(missing_docs)]
17443        LookAheadPeriodTooLong(LookAheadPeriodTooLong),
17444        #[allow(missing_docs)]
17445        MaxOperatorCountReached(MaxOperatorCountReached),
17446        #[allow(missing_docs)]
17447        MaxQuorumsReached(MaxQuorumsReached),
17448        #[allow(missing_docs)]
17449        NextBitmapUpdateIsBeforeBlockNumber(NextBitmapUpdateIsBeforeBlockNumber),
17450        #[allow(missing_docs)]
17451        NotRegistered(NotRegistered),
17452        #[allow(missing_docs)]
17453        NotRegisteredForQuorum(NotRegisteredForQuorum),
17454        #[allow(missing_docs)]
17455        NotSorted(NotSorted),
17456        #[allow(missing_docs)]
17457        OnlyAllocationManager(OnlyAllocationManager),
17458        #[allow(missing_docs)]
17459        OnlyEjector(OnlyEjector),
17460        #[allow(missing_docs)]
17461        OnlyPauser(OnlyPauser),
17462        #[allow(missing_docs)]
17463        OnlyUnpauser(OnlyUnpauser),
17464        #[allow(missing_docs)]
17465        OperatorNotRegistered(OperatorNotRegistered),
17466        #[allow(missing_docs)]
17467        QuorumDoesNotExist(QuorumDoesNotExist),
17468        #[allow(missing_docs)]
17469        QuorumOperatorCountMismatch(QuorumOperatorCountMismatch),
17470        #[allow(missing_docs)]
17471        SignatureExpired(SignatureExpired),
17472        #[allow(missing_docs)]
17473        StringTooLong(StringTooLong),
17474    }
17475    #[automatically_derived]
17476    impl SlashingRegistryCoordinatorErrors {
17477        /// All the selectors of this enum.
17478        ///
17479        /// Note that the selectors might not be in the same order as the variants.
17480        /// No guarantees are made about the order of the selectors.
17481        ///
17482        /// Prefer using `SolInterface` methods instead.
17483        pub const SELECTORS: &'static [[u8; 4usize]] = &[
17484            [8u8, 25u8, 189u8, 205u8],
17485            [12u8, 104u8, 22u8, 205u8],
17486            [19u8, 202u8, 70u8, 87u8],
17487            [35u8, 216u8, 113u8, 165u8],
17488            [37u8, 236u8, 108u8, 31u8],
17489            [47u8, 81u8, 6u8, 228u8],
17490            [48u8, 90u8, 39u8, 169u8],
17491            [50u8, 208u8, 206u8, 250u8],
17492            [53u8, 75u8, 184u8, 171u8],
17493            [60u8, 184u8, 156u8, 151u8],
17494            [76u8, 68u8, 153u8, 93u8],
17495            [102u8, 229u8, 101u8, 223u8],
17496            [108u8, 177u8, 154u8, 255u8],
17497            [115u8, 99u8, 33u8, 118u8],
17498            [117u8, 223u8, 81u8, 220u8],
17499            [121u8, 72u8, 33u8, 255u8],
17500            [128u8, 200u8, 131u8, 72u8],
17501            [132u8, 10u8, 72u8, 213u8],
17502            [139u8, 170u8, 87u8, 159u8],
17503            [142u8, 90u8, 238u8, 231u8],
17504            [170u8, 173u8, 19u8, 247u8],
17505            [171u8, 164u8, 115u8, 57u8],
17506            [172u8, 45u8, 22u8, 130u8],
17507            [177u8, 135u8, 232u8, 105u8],
17508            [179u8, 81u8, 43u8, 12u8],
17509            [186u8, 80u8, 249u8, 17u8],
17510            [187u8, 186u8, 96u8, 203u8],
17511            [198u8, 29u8, 202u8, 93u8],
17512            [198u8, 185u8, 231u8, 103u8],
17513            [202u8, 149u8, 115u8, 51u8],
17514            [208u8, 83u8, 170u8, 33u8],
17515            [209u8, 109u8, 80u8, 234u8],
17516            [213u8, 30u8, 218u8, 227u8],
17517            [223u8, 125u8, 253u8, 134u8],
17518            [230u8, 33u8, 159u8, 234u8],
17519            [237u8, 177u8, 86u8, 46u8],
17520            [251u8, 74u8, 156u8, 142u8],
17521        ];
17522    }
17523    #[automatically_derived]
17524    impl alloy_sol_types::SolInterface for SlashingRegistryCoordinatorErrors {
17525        const NAME: &'static str = "SlashingRegistryCoordinatorErrors";
17526        const MIN_DATA_LENGTH: usize = 0usize;
17527        const COUNT: usize = 37usize;
17528        #[inline]
17529        fn selector(&self) -> [u8; 4] {
17530            match self {
17531                Self::AlreadyRegisteredForQuorums(_) => {
17532                    <AlreadyRegisteredForQuorums as alloy_sol_types::SolError>::SELECTOR
17533                }
17534                Self::BitmapCannotBeZero(_) => {
17535                    <BitmapCannotBeZero as alloy_sol_types::SolError>::SELECTOR
17536                }
17537                Self::BitmapEmpty(_) => {
17538                    <BitmapEmpty as alloy_sol_types::SolError>::SELECTOR
17539                }
17540                Self::BitmapUpdateIsAfterBlockNumber(_) => {
17541                    <BitmapUpdateIsAfterBlockNumber as alloy_sol_types::SolError>::SELECTOR
17542                }
17543                Self::BitmapValueTooLarge(_) => {
17544                    <BitmapValueTooLarge as alloy_sol_types::SolError>::SELECTOR
17545                }
17546                Self::BytesArrayLengthTooLong(_) => {
17547                    <BytesArrayLengthTooLong as alloy_sol_types::SolError>::SELECTOR
17548                }
17549                Self::BytesArrayNotOrdered(_) => {
17550                    <BytesArrayNotOrdered as alloy_sol_types::SolError>::SELECTOR
17551                }
17552                Self::CannotChurnSelf(_) => {
17553                    <CannotChurnSelf as alloy_sol_types::SolError>::SELECTOR
17554                }
17555                Self::CannotKickOperatorAboveThreshold(_) => {
17556                    <CannotKickOperatorAboveThreshold as alloy_sol_types::SolError>::SELECTOR
17557                }
17558                Self::CannotReregisterYet(_) => {
17559                    <CannotReregisterYet as alloy_sol_types::SolError>::SELECTOR
17560                }
17561                Self::ChurnApproverSaltUsed(_) => {
17562                    <ChurnApproverSaltUsed as alloy_sol_types::SolError>::SELECTOR
17563                }
17564                Self::CurrentlyPaused(_) => {
17565                    <CurrentlyPaused as alloy_sol_types::SolError>::SELECTOR
17566                }
17567                Self::ExpModFailed(_) => {
17568                    <ExpModFailed as alloy_sol_types::SolError>::SELECTOR
17569                }
17570                Self::InputAddressZero(_) => {
17571                    <InputAddressZero as alloy_sol_types::SolError>::SELECTOR
17572                }
17573                Self::InputLengthMismatch(_) => {
17574                    <InputLengthMismatch as alloy_sol_types::SolError>::SELECTOR
17575                }
17576                Self::InsufficientStakeForChurn(_) => {
17577                    <InsufficientStakeForChurn as alloy_sol_types::SolError>::SELECTOR
17578                }
17579                Self::InvalidAVS(_) => {
17580                    <InvalidAVS as alloy_sol_types::SolError>::SELECTOR
17581                }
17582                Self::InvalidNewPausedStatus(_) => {
17583                    <InvalidNewPausedStatus as alloy_sol_types::SolError>::SELECTOR
17584                }
17585                Self::InvalidRegistrationType(_) => {
17586                    <InvalidRegistrationType as alloy_sol_types::SolError>::SELECTOR
17587                }
17588                Self::InvalidShortString(_) => {
17589                    <InvalidShortString as alloy_sol_types::SolError>::SELECTOR
17590                }
17591                Self::InvalidSignature(_) => {
17592                    <InvalidSignature as alloy_sol_types::SolError>::SELECTOR
17593                }
17594                Self::LookAheadPeriodTooLong(_) => {
17595                    <LookAheadPeriodTooLong as alloy_sol_types::SolError>::SELECTOR
17596                }
17597                Self::MaxOperatorCountReached(_) => {
17598                    <MaxOperatorCountReached as alloy_sol_types::SolError>::SELECTOR
17599                }
17600                Self::MaxQuorumsReached(_) => {
17601                    <MaxQuorumsReached as alloy_sol_types::SolError>::SELECTOR
17602                }
17603                Self::NextBitmapUpdateIsBeforeBlockNumber(_) => {
17604                    <NextBitmapUpdateIsBeforeBlockNumber as alloy_sol_types::SolError>::SELECTOR
17605                }
17606                Self::NotRegistered(_) => {
17607                    <NotRegistered as alloy_sol_types::SolError>::SELECTOR
17608                }
17609                Self::NotRegisteredForQuorum(_) => {
17610                    <NotRegisteredForQuorum as alloy_sol_types::SolError>::SELECTOR
17611                }
17612                Self::NotSorted(_) => <NotSorted as alloy_sol_types::SolError>::SELECTOR,
17613                Self::OnlyAllocationManager(_) => {
17614                    <OnlyAllocationManager as alloy_sol_types::SolError>::SELECTOR
17615                }
17616                Self::OnlyEjector(_) => {
17617                    <OnlyEjector as alloy_sol_types::SolError>::SELECTOR
17618                }
17619                Self::OnlyPauser(_) => {
17620                    <OnlyPauser as alloy_sol_types::SolError>::SELECTOR
17621                }
17622                Self::OnlyUnpauser(_) => {
17623                    <OnlyUnpauser as alloy_sol_types::SolError>::SELECTOR
17624                }
17625                Self::OperatorNotRegistered(_) => {
17626                    <OperatorNotRegistered as alloy_sol_types::SolError>::SELECTOR
17627                }
17628                Self::QuorumDoesNotExist(_) => {
17629                    <QuorumDoesNotExist as alloy_sol_types::SolError>::SELECTOR
17630                }
17631                Self::QuorumOperatorCountMismatch(_) => {
17632                    <QuorumOperatorCountMismatch as alloy_sol_types::SolError>::SELECTOR
17633                }
17634                Self::SignatureExpired(_) => {
17635                    <SignatureExpired as alloy_sol_types::SolError>::SELECTOR
17636                }
17637                Self::StringTooLong(_) => {
17638                    <StringTooLong as alloy_sol_types::SolError>::SELECTOR
17639                }
17640            }
17641        }
17642        #[inline]
17643        fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
17644            Self::SELECTORS.get(i).copied()
17645        }
17646        #[inline]
17647        fn valid_selector(selector: [u8; 4]) -> bool {
17648            Self::SELECTORS.binary_search(&selector).is_ok()
17649        }
17650        #[inline]
17651        #[allow(non_snake_case)]
17652        fn abi_decode_raw(
17653            selector: [u8; 4],
17654            data: &[u8],
17655            validate: bool,
17656        ) -> alloy_sol_types::Result<Self> {
17657            static DECODE_SHIMS: &[fn(
17658                &[u8],
17659                bool,
17660            ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorErrors>] = &[
17661                {
17662                    fn SignatureExpired(
17663                        data: &[u8],
17664                        validate: bool,
17665                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorErrors> {
17666                        <SignatureExpired as alloy_sol_types::SolError>::abi_decode_raw(
17667                                data,
17668                                validate,
17669                            )
17670                            .map(SlashingRegistryCoordinatorErrors::SignatureExpired)
17671                    }
17672                    SignatureExpired
17673                },
17674                {
17675                    fn AlreadyRegisteredForQuorums(
17676                        data: &[u8],
17677                        validate: bool,
17678                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorErrors> {
17679                        <AlreadyRegisteredForQuorums as alloy_sol_types::SolError>::abi_decode_raw(
17680                                data,
17681                                validate,
17682                            )
17683                            .map(
17684                                SlashingRegistryCoordinatorErrors::AlreadyRegisteredForQuorums,
17685                            )
17686                    }
17687                    AlreadyRegisteredForQuorums
17688                },
17689                {
17690                    fn BitmapEmpty(
17691                        data: &[u8],
17692                        validate: bool,
17693                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorErrors> {
17694                        <BitmapEmpty as alloy_sol_types::SolError>::abi_decode_raw(
17695                                data,
17696                                validate,
17697                            )
17698                            .map(SlashingRegistryCoordinatorErrors::BitmapEmpty)
17699                    }
17700                    BitmapEmpty
17701                },
17702                {
17703                    fn OnlyAllocationManager(
17704                        data: &[u8],
17705                        validate: bool,
17706                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorErrors> {
17707                        <OnlyAllocationManager as alloy_sol_types::SolError>::abi_decode_raw(
17708                                data,
17709                                validate,
17710                            )
17711                            .map(
17712                                SlashingRegistryCoordinatorErrors::OnlyAllocationManager,
17713                            )
17714                    }
17715                    OnlyAllocationManager
17716                },
17717                {
17718                    fn OperatorNotRegistered(
17719                        data: &[u8],
17720                        validate: bool,
17721                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorErrors> {
17722                        <OperatorNotRegistered as alloy_sol_types::SolError>::abi_decode_raw(
17723                                data,
17724                                validate,
17725                            )
17726                            .map(
17727                                SlashingRegistryCoordinatorErrors::OperatorNotRegistered,
17728                            )
17729                    }
17730                    OperatorNotRegistered
17731                },
17732                {
17733                    fn LookAheadPeriodTooLong(
17734                        data: &[u8],
17735                        validate: bool,
17736                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorErrors> {
17737                        <LookAheadPeriodTooLong as alloy_sol_types::SolError>::abi_decode_raw(
17738                                data,
17739                                validate,
17740                            )
17741                            .map(
17742                                SlashingRegistryCoordinatorErrors::LookAheadPeriodTooLong,
17743                            )
17744                    }
17745                    LookAheadPeriodTooLong
17746                },
17747                {
17748                    fn StringTooLong(
17749                        data: &[u8],
17750                        validate: bool,
17751                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorErrors> {
17752                        <StringTooLong as alloy_sol_types::SolError>::abi_decode_raw(
17753                                data,
17754                                validate,
17755                            )
17756                            .map(SlashingRegistryCoordinatorErrors::StringTooLong)
17757                    }
17758                    StringTooLong
17759                },
17760                {
17761                    fn CannotReregisterYet(
17762                        data: &[u8],
17763                        validate: bool,
17764                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorErrors> {
17765                        <CannotReregisterYet as alloy_sol_types::SolError>::abi_decode_raw(
17766                                data,
17767                                validate,
17768                            )
17769                            .map(SlashingRegistryCoordinatorErrors::CannotReregisterYet)
17770                    }
17771                    CannotReregisterYet
17772                },
17773                {
17774                    fn InvalidRegistrationType(
17775                        data: &[u8],
17776                        validate: bool,
17777                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorErrors> {
17778                        <InvalidRegistrationType as alloy_sol_types::SolError>::abi_decode_raw(
17779                                data,
17780                                validate,
17781                            )
17782                            .map(
17783                                SlashingRegistryCoordinatorErrors::InvalidRegistrationType,
17784                            )
17785                    }
17786                    InvalidRegistrationType
17787                },
17788                {
17789                    fn MaxQuorumsReached(
17790                        data: &[u8],
17791                        validate: bool,
17792                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorErrors> {
17793                        <MaxQuorumsReached as alloy_sol_types::SolError>::abi_decode_raw(
17794                                data,
17795                                validate,
17796                            )
17797                            .map(SlashingRegistryCoordinatorErrors::MaxQuorumsReached)
17798                    }
17799                    MaxQuorumsReached
17800                },
17801                {
17802                    fn InsufficientStakeForChurn(
17803                        data: &[u8],
17804                        validate: bool,
17805                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorErrors> {
17806                        <InsufficientStakeForChurn as alloy_sol_types::SolError>::abi_decode_raw(
17807                                data,
17808                                validate,
17809                            )
17810                            .map(
17811                                SlashingRegistryCoordinatorErrors::InsufficientStakeForChurn,
17812                            )
17813                    }
17814                    InsufficientStakeForChurn
17815                },
17816                {
17817                    fn InvalidAVS(
17818                        data: &[u8],
17819                        validate: bool,
17820                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorErrors> {
17821                        <InvalidAVS as alloy_sol_types::SolError>::abi_decode_raw(
17822                                data,
17823                                validate,
17824                            )
17825                            .map(SlashingRegistryCoordinatorErrors::InvalidAVS)
17826                    }
17827                    InvalidAVS
17828                },
17829                {
17830                    fn BitmapUpdateIsAfterBlockNumber(
17831                        data: &[u8],
17832                        validate: bool,
17833                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorErrors> {
17834                        <BitmapUpdateIsAfterBlockNumber as alloy_sol_types::SolError>::abi_decode_raw(
17835                                data,
17836                                validate,
17837                            )
17838                            .map(
17839                                SlashingRegistryCoordinatorErrors::BitmapUpdateIsAfterBlockNumber,
17840                            )
17841                    }
17842                    BitmapUpdateIsAfterBlockNumber
17843                },
17844                {
17845                    fn InputAddressZero(
17846                        data: &[u8],
17847                        validate: bool,
17848                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorErrors> {
17849                        <InputAddressZero as alloy_sol_types::SolError>::abi_decode_raw(
17850                                data,
17851                                validate,
17852                            )
17853                            .map(SlashingRegistryCoordinatorErrors::InputAddressZero)
17854                    }
17855                    InputAddressZero
17856                },
17857                {
17858                    fn OnlyPauser(
17859                        data: &[u8],
17860                        validate: bool,
17861                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorErrors> {
17862                        <OnlyPauser as alloy_sol_types::SolError>::abi_decode_raw(
17863                                data,
17864                                validate,
17865                            )
17866                            .map(SlashingRegistryCoordinatorErrors::OnlyPauser)
17867                    }
17868                    OnlyPauser
17869                },
17870                {
17871                    fn OnlyUnpauser(
17872                        data: &[u8],
17873                        validate: bool,
17874                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorErrors> {
17875                        <OnlyUnpauser as alloy_sol_types::SolError>::abi_decode_raw(
17876                                data,
17877                                validate,
17878                            )
17879                            .map(SlashingRegistryCoordinatorErrors::OnlyUnpauser)
17880                    }
17881                    OnlyUnpauser
17882                },
17883                {
17884                    fn BytesArrayNotOrdered(
17885                        data: &[u8],
17886                        validate: bool,
17887                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorErrors> {
17888                        <BytesArrayNotOrdered as alloy_sol_types::SolError>::abi_decode_raw(
17889                                data,
17890                                validate,
17891                            )
17892                            .map(SlashingRegistryCoordinatorErrors::BytesArrayNotOrdered)
17893                    }
17894                    BytesArrayNotOrdered
17895                },
17896                {
17897                    fn CurrentlyPaused(
17898                        data: &[u8],
17899                        validate: bool,
17900                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorErrors> {
17901                        <CurrentlyPaused as alloy_sol_types::SolError>::abi_decode_raw(
17902                                data,
17903                                validate,
17904                            )
17905                            .map(SlashingRegistryCoordinatorErrors::CurrentlyPaused)
17906                    }
17907                    CurrentlyPaused
17908                },
17909                {
17910                    fn InvalidSignature(
17911                        data: &[u8],
17912                        validate: bool,
17913                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorErrors> {
17914                        <InvalidSignature as alloy_sol_types::SolError>::abi_decode_raw(
17915                                data,
17916                                validate,
17917                            )
17918                            .map(SlashingRegistryCoordinatorErrors::InvalidSignature)
17919                    }
17920                    InvalidSignature
17921                },
17922                {
17923                    fn QuorumOperatorCountMismatch(
17924                        data: &[u8],
17925                        validate: bool,
17926                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorErrors> {
17927                        <QuorumOperatorCountMismatch as alloy_sol_types::SolError>::abi_decode_raw(
17928                                data,
17929                                validate,
17930                            )
17931                            .map(
17932                                SlashingRegistryCoordinatorErrors::QuorumOperatorCountMismatch,
17933                            )
17934                    }
17935                    QuorumOperatorCountMismatch
17936                },
17937                {
17938                    fn InputLengthMismatch(
17939                        data: &[u8],
17940                        validate: bool,
17941                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorErrors> {
17942                        <InputLengthMismatch as alloy_sol_types::SolError>::abi_decode_raw(
17943                                data,
17944                                validate,
17945                            )
17946                            .map(SlashingRegistryCoordinatorErrors::InputLengthMismatch)
17947                    }
17948                    InputLengthMismatch
17949                },
17950                {
17951                    fn NotRegistered(
17952                        data: &[u8],
17953                        validate: bool,
17954                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorErrors> {
17955                        <NotRegistered as alloy_sol_types::SolError>::abi_decode_raw(
17956                                data,
17957                                validate,
17958                            )
17959                            .map(SlashingRegistryCoordinatorErrors::NotRegistered)
17960                    }
17961                    NotRegistered
17962                },
17963                {
17964                    fn CannotChurnSelf(
17965                        data: &[u8],
17966                        validate: bool,
17967                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorErrors> {
17968                        <CannotChurnSelf as alloy_sol_types::SolError>::abi_decode_raw(
17969                                data,
17970                                validate,
17971                            )
17972                            .map(SlashingRegistryCoordinatorErrors::CannotChurnSelf)
17973                    }
17974                    CannotChurnSelf
17975                },
17976                {
17977                    fn CannotKickOperatorAboveThreshold(
17978                        data: &[u8],
17979                        validate: bool,
17980                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorErrors> {
17981                        <CannotKickOperatorAboveThreshold as alloy_sol_types::SolError>::abi_decode_raw(
17982                                data,
17983                                validate,
17984                            )
17985                            .map(
17986                                SlashingRegistryCoordinatorErrors::CannotKickOperatorAboveThreshold,
17987                            )
17988                    }
17989                    CannotKickOperatorAboveThreshold
17990                },
17991                {
17992                    fn InvalidShortString(
17993                        data: &[u8],
17994                        validate: bool,
17995                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorErrors> {
17996                        <InvalidShortString as alloy_sol_types::SolError>::abi_decode_raw(
17997                                data,
17998                                validate,
17999                            )
18000                            .map(SlashingRegistryCoordinatorErrors::InvalidShortString)
18001                    }
18002                    InvalidShortString
18003                },
18004                {
18005                    fn NotSorted(
18006                        data: &[u8],
18007                        validate: bool,
18008                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorErrors> {
18009                        <NotSorted as alloy_sol_types::SolError>::abi_decode_raw(
18010                                data,
18011                                validate,
18012                            )
18013                            .map(SlashingRegistryCoordinatorErrors::NotSorted)
18014                    }
18015                    NotSorted
18016                },
18017                {
18018                    fn NextBitmapUpdateIsBeforeBlockNumber(
18019                        data: &[u8],
18020                        validate: bool,
18021                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorErrors> {
18022                        <NextBitmapUpdateIsBeforeBlockNumber as alloy_sol_types::SolError>::abi_decode_raw(
18023                                data,
18024                                validate,
18025                            )
18026                            .map(
18027                                SlashingRegistryCoordinatorErrors::NextBitmapUpdateIsBeforeBlockNumber,
18028                            )
18029                    }
18030                    NextBitmapUpdateIsBeforeBlockNumber
18031                },
18032                {
18033                    fn InvalidNewPausedStatus(
18034                        data: &[u8],
18035                        validate: bool,
18036                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorErrors> {
18037                        <InvalidNewPausedStatus as alloy_sol_types::SolError>::abi_decode_raw(
18038                                data,
18039                                validate,
18040                            )
18041                            .map(
18042                                SlashingRegistryCoordinatorErrors::InvalidNewPausedStatus,
18043                            )
18044                    }
18045                    InvalidNewPausedStatus
18046                },
18047                {
18048                    fn MaxOperatorCountReached(
18049                        data: &[u8],
18050                        validate: bool,
18051                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorErrors> {
18052                        <MaxOperatorCountReached as alloy_sol_types::SolError>::abi_decode_raw(
18053                                data,
18054                                validate,
18055                            )
18056                            .map(
18057                                SlashingRegistryCoordinatorErrors::MaxOperatorCountReached,
18058                            )
18059                    }
18060                    MaxOperatorCountReached
18061                },
18062                {
18063                    fn BitmapValueTooLarge(
18064                        data: &[u8],
18065                        validate: bool,
18066                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorErrors> {
18067                        <BitmapValueTooLarge as alloy_sol_types::SolError>::abi_decode_raw(
18068                                data,
18069                                validate,
18070                            )
18071                            .map(SlashingRegistryCoordinatorErrors::BitmapValueTooLarge)
18072                    }
18073                    BitmapValueTooLarge
18074                },
18075                {
18076                    fn NotRegisteredForQuorum(
18077                        data: &[u8],
18078                        validate: bool,
18079                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorErrors> {
18080                        <NotRegisteredForQuorum as alloy_sol_types::SolError>::abi_decode_raw(
18081                                data,
18082                                validate,
18083                            )
18084                            .map(
18085                                SlashingRegistryCoordinatorErrors::NotRegisteredForQuorum,
18086                            )
18087                    }
18088                    NotRegisteredForQuorum
18089                },
18090                {
18091                    fn BitmapCannotBeZero(
18092                        data: &[u8],
18093                        validate: bool,
18094                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorErrors> {
18095                        <BitmapCannotBeZero as alloy_sol_types::SolError>::abi_decode_raw(
18096                                data,
18097                                validate,
18098                            )
18099                            .map(SlashingRegistryCoordinatorErrors::BitmapCannotBeZero)
18100                    }
18101                    BitmapCannotBeZero
18102                },
18103                {
18104                    fn ExpModFailed(
18105                        data: &[u8],
18106                        validate: bool,
18107                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorErrors> {
18108                        <ExpModFailed as alloy_sol_types::SolError>::abi_decode_raw(
18109                                data,
18110                                validate,
18111                            )
18112                            .map(SlashingRegistryCoordinatorErrors::ExpModFailed)
18113                    }
18114                    ExpModFailed
18115                },
18116                {
18117                    fn ChurnApproverSaltUsed(
18118                        data: &[u8],
18119                        validate: bool,
18120                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorErrors> {
18121                        <ChurnApproverSaltUsed as alloy_sol_types::SolError>::abi_decode_raw(
18122                                data,
18123                                validate,
18124                            )
18125                            .map(
18126                                SlashingRegistryCoordinatorErrors::ChurnApproverSaltUsed,
18127                            )
18128                    }
18129                    ChurnApproverSaltUsed
18130                },
18131                {
18132                    fn QuorumDoesNotExist(
18133                        data: &[u8],
18134                        validate: bool,
18135                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorErrors> {
18136                        <QuorumDoesNotExist as alloy_sol_types::SolError>::abi_decode_raw(
18137                                data,
18138                                validate,
18139                            )
18140                            .map(SlashingRegistryCoordinatorErrors::QuorumDoesNotExist)
18141                    }
18142                    QuorumDoesNotExist
18143                },
18144                {
18145                    fn OnlyEjector(
18146                        data: &[u8],
18147                        validate: bool,
18148                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorErrors> {
18149                        <OnlyEjector as alloy_sol_types::SolError>::abi_decode_raw(
18150                                data,
18151                                validate,
18152                            )
18153                            .map(SlashingRegistryCoordinatorErrors::OnlyEjector)
18154                    }
18155                    OnlyEjector
18156                },
18157                {
18158                    fn BytesArrayLengthTooLong(
18159                        data: &[u8],
18160                        validate: bool,
18161                    ) -> alloy_sol_types::Result<SlashingRegistryCoordinatorErrors> {
18162                        <BytesArrayLengthTooLong as alloy_sol_types::SolError>::abi_decode_raw(
18163                                data,
18164                                validate,
18165                            )
18166                            .map(
18167                                SlashingRegistryCoordinatorErrors::BytesArrayLengthTooLong,
18168                            )
18169                    }
18170                    BytesArrayLengthTooLong
18171                },
18172            ];
18173            let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
18174                return Err(
18175                    alloy_sol_types::Error::unknown_selector(
18176                        <Self as alloy_sol_types::SolInterface>::NAME,
18177                        selector,
18178                    ),
18179                );
18180            };
18181            DECODE_SHIMS[idx](data, validate)
18182        }
18183        #[inline]
18184        fn abi_encoded_size(&self) -> usize {
18185            match self {
18186                Self::AlreadyRegisteredForQuorums(inner) => {
18187                    <AlreadyRegisteredForQuorums as alloy_sol_types::SolError>::abi_encoded_size(
18188                        inner,
18189                    )
18190                }
18191                Self::BitmapCannotBeZero(inner) => {
18192                    <BitmapCannotBeZero as alloy_sol_types::SolError>::abi_encoded_size(
18193                        inner,
18194                    )
18195                }
18196                Self::BitmapEmpty(inner) => {
18197                    <BitmapEmpty as alloy_sol_types::SolError>::abi_encoded_size(inner)
18198                }
18199                Self::BitmapUpdateIsAfterBlockNumber(inner) => {
18200                    <BitmapUpdateIsAfterBlockNumber as alloy_sol_types::SolError>::abi_encoded_size(
18201                        inner,
18202                    )
18203                }
18204                Self::BitmapValueTooLarge(inner) => {
18205                    <BitmapValueTooLarge as alloy_sol_types::SolError>::abi_encoded_size(
18206                        inner,
18207                    )
18208                }
18209                Self::BytesArrayLengthTooLong(inner) => {
18210                    <BytesArrayLengthTooLong as alloy_sol_types::SolError>::abi_encoded_size(
18211                        inner,
18212                    )
18213                }
18214                Self::BytesArrayNotOrdered(inner) => {
18215                    <BytesArrayNotOrdered as alloy_sol_types::SolError>::abi_encoded_size(
18216                        inner,
18217                    )
18218                }
18219                Self::CannotChurnSelf(inner) => {
18220                    <CannotChurnSelf as alloy_sol_types::SolError>::abi_encoded_size(
18221                        inner,
18222                    )
18223                }
18224                Self::CannotKickOperatorAboveThreshold(inner) => {
18225                    <CannotKickOperatorAboveThreshold as alloy_sol_types::SolError>::abi_encoded_size(
18226                        inner,
18227                    )
18228                }
18229                Self::CannotReregisterYet(inner) => {
18230                    <CannotReregisterYet as alloy_sol_types::SolError>::abi_encoded_size(
18231                        inner,
18232                    )
18233                }
18234                Self::ChurnApproverSaltUsed(inner) => {
18235                    <ChurnApproverSaltUsed as alloy_sol_types::SolError>::abi_encoded_size(
18236                        inner,
18237                    )
18238                }
18239                Self::CurrentlyPaused(inner) => {
18240                    <CurrentlyPaused as alloy_sol_types::SolError>::abi_encoded_size(
18241                        inner,
18242                    )
18243                }
18244                Self::ExpModFailed(inner) => {
18245                    <ExpModFailed as alloy_sol_types::SolError>::abi_encoded_size(inner)
18246                }
18247                Self::InputAddressZero(inner) => {
18248                    <InputAddressZero as alloy_sol_types::SolError>::abi_encoded_size(
18249                        inner,
18250                    )
18251                }
18252                Self::InputLengthMismatch(inner) => {
18253                    <InputLengthMismatch as alloy_sol_types::SolError>::abi_encoded_size(
18254                        inner,
18255                    )
18256                }
18257                Self::InsufficientStakeForChurn(inner) => {
18258                    <InsufficientStakeForChurn as alloy_sol_types::SolError>::abi_encoded_size(
18259                        inner,
18260                    )
18261                }
18262                Self::InvalidAVS(inner) => {
18263                    <InvalidAVS as alloy_sol_types::SolError>::abi_encoded_size(inner)
18264                }
18265                Self::InvalidNewPausedStatus(inner) => {
18266                    <InvalidNewPausedStatus as alloy_sol_types::SolError>::abi_encoded_size(
18267                        inner,
18268                    )
18269                }
18270                Self::InvalidRegistrationType(inner) => {
18271                    <InvalidRegistrationType as alloy_sol_types::SolError>::abi_encoded_size(
18272                        inner,
18273                    )
18274                }
18275                Self::InvalidShortString(inner) => {
18276                    <InvalidShortString as alloy_sol_types::SolError>::abi_encoded_size(
18277                        inner,
18278                    )
18279                }
18280                Self::InvalidSignature(inner) => {
18281                    <InvalidSignature as alloy_sol_types::SolError>::abi_encoded_size(
18282                        inner,
18283                    )
18284                }
18285                Self::LookAheadPeriodTooLong(inner) => {
18286                    <LookAheadPeriodTooLong as alloy_sol_types::SolError>::abi_encoded_size(
18287                        inner,
18288                    )
18289                }
18290                Self::MaxOperatorCountReached(inner) => {
18291                    <MaxOperatorCountReached as alloy_sol_types::SolError>::abi_encoded_size(
18292                        inner,
18293                    )
18294                }
18295                Self::MaxQuorumsReached(inner) => {
18296                    <MaxQuorumsReached as alloy_sol_types::SolError>::abi_encoded_size(
18297                        inner,
18298                    )
18299                }
18300                Self::NextBitmapUpdateIsBeforeBlockNumber(inner) => {
18301                    <NextBitmapUpdateIsBeforeBlockNumber as alloy_sol_types::SolError>::abi_encoded_size(
18302                        inner,
18303                    )
18304                }
18305                Self::NotRegistered(inner) => {
18306                    <NotRegistered as alloy_sol_types::SolError>::abi_encoded_size(inner)
18307                }
18308                Self::NotRegisteredForQuorum(inner) => {
18309                    <NotRegisteredForQuorum as alloy_sol_types::SolError>::abi_encoded_size(
18310                        inner,
18311                    )
18312                }
18313                Self::NotSorted(inner) => {
18314                    <NotSorted as alloy_sol_types::SolError>::abi_encoded_size(inner)
18315                }
18316                Self::OnlyAllocationManager(inner) => {
18317                    <OnlyAllocationManager as alloy_sol_types::SolError>::abi_encoded_size(
18318                        inner,
18319                    )
18320                }
18321                Self::OnlyEjector(inner) => {
18322                    <OnlyEjector as alloy_sol_types::SolError>::abi_encoded_size(inner)
18323                }
18324                Self::OnlyPauser(inner) => {
18325                    <OnlyPauser as alloy_sol_types::SolError>::abi_encoded_size(inner)
18326                }
18327                Self::OnlyUnpauser(inner) => {
18328                    <OnlyUnpauser as alloy_sol_types::SolError>::abi_encoded_size(inner)
18329                }
18330                Self::OperatorNotRegistered(inner) => {
18331                    <OperatorNotRegistered as alloy_sol_types::SolError>::abi_encoded_size(
18332                        inner,
18333                    )
18334                }
18335                Self::QuorumDoesNotExist(inner) => {
18336                    <QuorumDoesNotExist as alloy_sol_types::SolError>::abi_encoded_size(
18337                        inner,
18338                    )
18339                }
18340                Self::QuorumOperatorCountMismatch(inner) => {
18341                    <QuorumOperatorCountMismatch as alloy_sol_types::SolError>::abi_encoded_size(
18342                        inner,
18343                    )
18344                }
18345                Self::SignatureExpired(inner) => {
18346                    <SignatureExpired as alloy_sol_types::SolError>::abi_encoded_size(
18347                        inner,
18348                    )
18349                }
18350                Self::StringTooLong(inner) => {
18351                    <StringTooLong as alloy_sol_types::SolError>::abi_encoded_size(inner)
18352                }
18353            }
18354        }
18355        #[inline]
18356        fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
18357            match self {
18358                Self::AlreadyRegisteredForQuorums(inner) => {
18359                    <AlreadyRegisteredForQuorums as alloy_sol_types::SolError>::abi_encode_raw(
18360                        inner,
18361                        out,
18362                    )
18363                }
18364                Self::BitmapCannotBeZero(inner) => {
18365                    <BitmapCannotBeZero as alloy_sol_types::SolError>::abi_encode_raw(
18366                        inner,
18367                        out,
18368                    )
18369                }
18370                Self::BitmapEmpty(inner) => {
18371                    <BitmapEmpty as alloy_sol_types::SolError>::abi_encode_raw(
18372                        inner,
18373                        out,
18374                    )
18375                }
18376                Self::BitmapUpdateIsAfterBlockNumber(inner) => {
18377                    <BitmapUpdateIsAfterBlockNumber as alloy_sol_types::SolError>::abi_encode_raw(
18378                        inner,
18379                        out,
18380                    )
18381                }
18382                Self::BitmapValueTooLarge(inner) => {
18383                    <BitmapValueTooLarge as alloy_sol_types::SolError>::abi_encode_raw(
18384                        inner,
18385                        out,
18386                    )
18387                }
18388                Self::BytesArrayLengthTooLong(inner) => {
18389                    <BytesArrayLengthTooLong as alloy_sol_types::SolError>::abi_encode_raw(
18390                        inner,
18391                        out,
18392                    )
18393                }
18394                Self::BytesArrayNotOrdered(inner) => {
18395                    <BytesArrayNotOrdered as alloy_sol_types::SolError>::abi_encode_raw(
18396                        inner,
18397                        out,
18398                    )
18399                }
18400                Self::CannotChurnSelf(inner) => {
18401                    <CannotChurnSelf as alloy_sol_types::SolError>::abi_encode_raw(
18402                        inner,
18403                        out,
18404                    )
18405                }
18406                Self::CannotKickOperatorAboveThreshold(inner) => {
18407                    <CannotKickOperatorAboveThreshold as alloy_sol_types::SolError>::abi_encode_raw(
18408                        inner,
18409                        out,
18410                    )
18411                }
18412                Self::CannotReregisterYet(inner) => {
18413                    <CannotReregisterYet as alloy_sol_types::SolError>::abi_encode_raw(
18414                        inner,
18415                        out,
18416                    )
18417                }
18418                Self::ChurnApproverSaltUsed(inner) => {
18419                    <ChurnApproverSaltUsed as alloy_sol_types::SolError>::abi_encode_raw(
18420                        inner,
18421                        out,
18422                    )
18423                }
18424                Self::CurrentlyPaused(inner) => {
18425                    <CurrentlyPaused as alloy_sol_types::SolError>::abi_encode_raw(
18426                        inner,
18427                        out,
18428                    )
18429                }
18430                Self::ExpModFailed(inner) => {
18431                    <ExpModFailed as alloy_sol_types::SolError>::abi_encode_raw(
18432                        inner,
18433                        out,
18434                    )
18435                }
18436                Self::InputAddressZero(inner) => {
18437                    <InputAddressZero as alloy_sol_types::SolError>::abi_encode_raw(
18438                        inner,
18439                        out,
18440                    )
18441                }
18442                Self::InputLengthMismatch(inner) => {
18443                    <InputLengthMismatch as alloy_sol_types::SolError>::abi_encode_raw(
18444                        inner,
18445                        out,
18446                    )
18447                }
18448                Self::InsufficientStakeForChurn(inner) => {
18449                    <InsufficientStakeForChurn as alloy_sol_types::SolError>::abi_encode_raw(
18450                        inner,
18451                        out,
18452                    )
18453                }
18454                Self::InvalidAVS(inner) => {
18455                    <InvalidAVS as alloy_sol_types::SolError>::abi_encode_raw(inner, out)
18456                }
18457                Self::InvalidNewPausedStatus(inner) => {
18458                    <InvalidNewPausedStatus as alloy_sol_types::SolError>::abi_encode_raw(
18459                        inner,
18460                        out,
18461                    )
18462                }
18463                Self::InvalidRegistrationType(inner) => {
18464                    <InvalidRegistrationType as alloy_sol_types::SolError>::abi_encode_raw(
18465                        inner,
18466                        out,
18467                    )
18468                }
18469                Self::InvalidShortString(inner) => {
18470                    <InvalidShortString as alloy_sol_types::SolError>::abi_encode_raw(
18471                        inner,
18472                        out,
18473                    )
18474                }
18475                Self::InvalidSignature(inner) => {
18476                    <InvalidSignature as alloy_sol_types::SolError>::abi_encode_raw(
18477                        inner,
18478                        out,
18479                    )
18480                }
18481                Self::LookAheadPeriodTooLong(inner) => {
18482                    <LookAheadPeriodTooLong as alloy_sol_types::SolError>::abi_encode_raw(
18483                        inner,
18484                        out,
18485                    )
18486                }
18487                Self::MaxOperatorCountReached(inner) => {
18488                    <MaxOperatorCountReached as alloy_sol_types::SolError>::abi_encode_raw(
18489                        inner,
18490                        out,
18491                    )
18492                }
18493                Self::MaxQuorumsReached(inner) => {
18494                    <MaxQuorumsReached as alloy_sol_types::SolError>::abi_encode_raw(
18495                        inner,
18496                        out,
18497                    )
18498                }
18499                Self::NextBitmapUpdateIsBeforeBlockNumber(inner) => {
18500                    <NextBitmapUpdateIsBeforeBlockNumber as alloy_sol_types::SolError>::abi_encode_raw(
18501                        inner,
18502                        out,
18503                    )
18504                }
18505                Self::NotRegistered(inner) => {
18506                    <NotRegistered as alloy_sol_types::SolError>::abi_encode_raw(
18507                        inner,
18508                        out,
18509                    )
18510                }
18511                Self::NotRegisteredForQuorum(inner) => {
18512                    <NotRegisteredForQuorum as alloy_sol_types::SolError>::abi_encode_raw(
18513                        inner,
18514                        out,
18515                    )
18516                }
18517                Self::NotSorted(inner) => {
18518                    <NotSorted as alloy_sol_types::SolError>::abi_encode_raw(inner, out)
18519                }
18520                Self::OnlyAllocationManager(inner) => {
18521                    <OnlyAllocationManager as alloy_sol_types::SolError>::abi_encode_raw(
18522                        inner,
18523                        out,
18524                    )
18525                }
18526                Self::OnlyEjector(inner) => {
18527                    <OnlyEjector as alloy_sol_types::SolError>::abi_encode_raw(
18528                        inner,
18529                        out,
18530                    )
18531                }
18532                Self::OnlyPauser(inner) => {
18533                    <OnlyPauser as alloy_sol_types::SolError>::abi_encode_raw(inner, out)
18534                }
18535                Self::OnlyUnpauser(inner) => {
18536                    <OnlyUnpauser as alloy_sol_types::SolError>::abi_encode_raw(
18537                        inner,
18538                        out,
18539                    )
18540                }
18541                Self::OperatorNotRegistered(inner) => {
18542                    <OperatorNotRegistered as alloy_sol_types::SolError>::abi_encode_raw(
18543                        inner,
18544                        out,
18545                    )
18546                }
18547                Self::QuorumDoesNotExist(inner) => {
18548                    <QuorumDoesNotExist as alloy_sol_types::SolError>::abi_encode_raw(
18549                        inner,
18550                        out,
18551                    )
18552                }
18553                Self::QuorumOperatorCountMismatch(inner) => {
18554                    <QuorumOperatorCountMismatch as alloy_sol_types::SolError>::abi_encode_raw(
18555                        inner,
18556                        out,
18557                    )
18558                }
18559                Self::SignatureExpired(inner) => {
18560                    <SignatureExpired as alloy_sol_types::SolError>::abi_encode_raw(
18561                        inner,
18562                        out,
18563                    )
18564                }
18565                Self::StringTooLong(inner) => {
18566                    <StringTooLong as alloy_sol_types::SolError>::abi_encode_raw(
18567                        inner,
18568                        out,
18569                    )
18570                }
18571            }
18572        }
18573    }
18574    ///Container for all the [`SlashingRegistryCoordinator`](self) events.
18575    #[derive(Debug, PartialEq, Eq, Hash)]
18576    pub enum SlashingRegistryCoordinatorEvents {
18577        #[allow(missing_docs)]
18578        AVSUpdated(AVSUpdated),
18579        #[allow(missing_docs)]
18580        ChurnApproverUpdated(ChurnApproverUpdated),
18581        #[allow(missing_docs)]
18582        EIP712DomainChanged(EIP712DomainChanged),
18583        #[allow(missing_docs)]
18584        EjectionCooldownUpdated(EjectionCooldownUpdated),
18585        #[allow(missing_docs)]
18586        EjectorUpdated(EjectorUpdated),
18587        #[allow(missing_docs)]
18588        Initialized(Initialized),
18589        #[allow(missing_docs)]
18590        OperatorDeregistered(OperatorDeregistered),
18591        #[allow(missing_docs)]
18592        OperatorRegistered(OperatorRegistered),
18593        #[allow(missing_docs)]
18594        OperatorSetParamsUpdated(OperatorSetParamsUpdated),
18595        #[allow(missing_docs)]
18596        OperatorSocketUpdate(OperatorSocketUpdate),
18597        #[allow(missing_docs)]
18598        OwnershipTransferred(OwnershipTransferred),
18599        #[allow(missing_docs)]
18600        Paused(Paused),
18601        #[allow(missing_docs)]
18602        QuorumBlockNumberUpdated(QuorumBlockNumberUpdated),
18603        #[allow(missing_docs)]
18604        QuorumCreated(QuorumCreated),
18605        #[allow(missing_docs)]
18606        Unpaused(Unpaused),
18607    }
18608    #[automatically_derived]
18609    impl SlashingRegistryCoordinatorEvents {
18610        /// All the selectors of this enum.
18611        ///
18612        /// Note that the selectors might not be in the same order as the variants.
18613        /// No guarantees are made about the order of the selectors.
18614        ///
18615        /// Prefer using `SolInterface` methods instead.
18616        pub const SELECTORS: &'static [[u8; 32usize]] = &[
18617            [
18618                10u8, 99u8, 135u8, 201u8, 234u8, 54u8, 40u8, 184u8, 138u8, 99u8, 59u8,
18619                180u8, 243u8, 177u8, 81u8, 119u8, 15u8, 112u8, 8u8, 81u8, 23u8, 161u8,
18620                95u8, 155u8, 243u8, 120u8, 124u8, 218u8, 83u8, 241u8, 61u8, 49u8,
18621            ],
18622            [
18623                49u8, 84u8, 87u8, 216u8, 168u8, 254u8, 96u8, 240u8, 74u8, 241u8, 124u8,
18624                22u8, 226u8, 245u8, 165u8, 225u8, 219u8, 97u8, 43u8, 49u8, 100u8, 142u8,
18625                88u8, 3u8, 3u8, 96u8, 117u8, 158u8, 248u8, 243u8, 82u8, 140u8,
18626            ],
18627            [
18628                53u8, 130u8, 209u8, 130u8, 142u8, 38u8, 191u8, 86u8, 189u8, 128u8, 21u8,
18629                2u8, 188u8, 2u8, 26u8, 192u8, 188u8, 138u8, 251u8, 87u8, 200u8, 38u8,
18630                228u8, 152u8, 107u8, 69u8, 89u8, 60u8, 143u8, 173u8, 56u8, 156u8,
18631            ],
18632            [
18633                57u8, 111u8, 220u8, 177u8, 128u8, 203u8, 15u8, 234u8, 38u8, 146u8, 129u8,
18634                19u8, 251u8, 15u8, 209u8, 195u8, 84u8, 152u8, 99u8, 249u8, 205u8, 86u8,
18635                62u8, 106u8, 24u8, 79u8, 29u8, 87u8, 129u8, 22u8, 200u8, 228u8,
18636            ],
18637            [
18638                62u8, 230u8, 254u8, 141u8, 84u8, 97u8, 2u8, 68u8, 195u8, 233u8, 211u8,
18639                192u8, 102u8, 174u8, 74u8, 238u8, 153u8, 120u8, 132u8, 170u8, 40u8,
18640                241u8, 6u8, 22u8, 174u8, 130u8, 25u8, 37u8, 64u8, 19u8, 24u8, 172u8,
18641            ],
18642            [
18643                70u8, 7u8, 125u8, 85u8, 51u8, 7u8, 99u8, 241u8, 98u8, 105u8, 253u8,
18644                117u8, 229u8, 118u8, 22u8, 99u8, 244u8, 25u8, 45u8, 39u8, 145u8, 116u8,
18645                124u8, 1u8, 137u8, 177u8, 106u8, 211u8, 29u8, 176u8, 125u8, 180u8,
18646            ],
18647            [
18648                127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8,
18649                19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8,
18650                146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8,
18651            ],
18652            [
18653                139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8,
18654                31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8,
18655                218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8,
18656            ],
18657            [
18658                143u8, 48u8, 171u8, 9u8, 244u8, 58u8, 108u8, 21u8, 125u8, 127u8, 206u8,
18659                126u8, 10u8, 19u8, 192u8, 3u8, 4u8, 44u8, 28u8, 149u8, 232u8, 167u8,
18660                46u8, 122u8, 20u8, 106u8, 33u8, 192u8, 202u8, 162u8, 77u8, 201u8,
18661            ],
18662            [
18663                151u8, 112u8, 243u8, 202u8, 223u8, 220u8, 187u8, 111u8, 147u8, 175u8,
18664                147u8, 94u8, 134u8, 4u8, 113u8, 17u8, 89u8, 12u8, 55u8, 104u8, 39u8,
18665                29u8, 35u8, 126u8, 74u8, 43u8, 192u8, 184u8, 116u8, 190u8, 214u8, 147u8,
18666            ],
18667            [
18668                163u8, 72u8, 53u8, 188u8, 43u8, 103u8, 62u8, 195u8, 127u8, 207u8, 21u8,
18669                145u8, 169u8, 18u8, 149u8, 177u8, 99u8, 252u8, 46u8, 24u8, 30u8, 78u8,
18670                164u8, 231u8, 51u8, 190u8, 178u8, 125u8, 225u8, 206u8, 172u8, 76u8,
18671            ],
18672            [
18673                167u8, 122u8, 145u8, 190u8, 167u8, 182u8, 217u8, 90u8, 142u8, 181u8,
18674                165u8, 72u8, 120u8, 161u8, 217u8, 227u8, 200u8, 117u8, 226u8, 108u8,
18675                134u8, 169u8, 183u8, 14u8, 52u8, 32u8, 197u8, 197u8, 219u8, 25u8, 59u8,
18676                98u8,
18677            ],
18678            [
18679                171u8, 64u8, 163u8, 116u8, 188u8, 81u8, 222u8, 55u8, 34u8, 0u8, 168u8,
18680                188u8, 152u8, 26u8, 248u8, 201u8, 236u8, 220u8, 8u8, 223u8, 218u8, 239u8,
18681                11u8, 182u8, 224u8, 159u8, 136u8, 243u8, 198u8, 22u8, 239u8, 61u8,
18682            ],
18683            [
18684                232u8, 230u8, 140u8, 239u8, 28u8, 58u8, 118u8, 30u8, 215u8, 190u8, 126u8,
18685                132u8, 99u8, 163u8, 117u8, 242u8, 127u8, 123u8, 195u8, 53u8, 229u8, 24u8,
18686                36u8, 34u8, 60u8, 172u8, 206u8, 99u8, 110u8, 197u8, 195u8, 254u8,
18687            ],
18688            [
18689                236u8, 41u8, 99u8, 171u8, 33u8, 193u8, 229u8, 14u8, 30u8, 88u8, 42u8,
18690                165u8, 66u8, 175u8, 46u8, 75u8, 247u8, 191u8, 56u8, 230u8, 225u8, 64u8,
18691                60u8, 39u8, 180u8, 46u8, 28u8, 93u8, 110u8, 98u8, 30u8, 170u8,
18692            ],
18693        ];
18694    }
18695    #[automatically_derived]
18696    impl alloy_sol_types::SolEventInterface for SlashingRegistryCoordinatorEvents {
18697        const NAME: &'static str = "SlashingRegistryCoordinatorEvents";
18698        const COUNT: usize = 15usize;
18699        fn decode_raw_log(
18700            topics: &[alloy_sol_types::Word],
18701            data: &[u8],
18702            validate: bool,
18703        ) -> alloy_sol_types::Result<Self> {
18704            match topics.first().copied() {
18705                Some(<AVSUpdated as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
18706                    <AVSUpdated as alloy_sol_types::SolEvent>::decode_raw_log(
18707                            topics,
18708                            data,
18709                            validate,
18710                        )
18711                        .map(Self::AVSUpdated)
18712                }
18713                Some(
18714                    <ChurnApproverUpdated as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
18715                ) => {
18716                    <ChurnApproverUpdated as alloy_sol_types::SolEvent>::decode_raw_log(
18717                            topics,
18718                            data,
18719                            validate,
18720                        )
18721                        .map(Self::ChurnApproverUpdated)
18722                }
18723                Some(
18724                    <EIP712DomainChanged as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
18725                ) => {
18726                    <EIP712DomainChanged as alloy_sol_types::SolEvent>::decode_raw_log(
18727                            topics,
18728                            data,
18729                            validate,
18730                        )
18731                        .map(Self::EIP712DomainChanged)
18732                }
18733                Some(
18734                    <EjectionCooldownUpdated as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
18735                ) => {
18736                    <EjectionCooldownUpdated as alloy_sol_types::SolEvent>::decode_raw_log(
18737                            topics,
18738                            data,
18739                            validate,
18740                        )
18741                        .map(Self::EjectionCooldownUpdated)
18742                }
18743                Some(<EjectorUpdated as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
18744                    <EjectorUpdated as alloy_sol_types::SolEvent>::decode_raw_log(
18745                            topics,
18746                            data,
18747                            validate,
18748                        )
18749                        .map(Self::EjectorUpdated)
18750                }
18751                Some(<Initialized as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
18752                    <Initialized as alloy_sol_types::SolEvent>::decode_raw_log(
18753                            topics,
18754                            data,
18755                            validate,
18756                        )
18757                        .map(Self::Initialized)
18758                }
18759                Some(
18760                    <OperatorDeregistered as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
18761                ) => {
18762                    <OperatorDeregistered as alloy_sol_types::SolEvent>::decode_raw_log(
18763                            topics,
18764                            data,
18765                            validate,
18766                        )
18767                        .map(Self::OperatorDeregistered)
18768                }
18769                Some(
18770                    <OperatorRegistered as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
18771                ) => {
18772                    <OperatorRegistered as alloy_sol_types::SolEvent>::decode_raw_log(
18773                            topics,
18774                            data,
18775                            validate,
18776                        )
18777                        .map(Self::OperatorRegistered)
18778                }
18779                Some(
18780                    <OperatorSetParamsUpdated as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
18781                ) => {
18782                    <OperatorSetParamsUpdated as alloy_sol_types::SolEvent>::decode_raw_log(
18783                            topics,
18784                            data,
18785                            validate,
18786                        )
18787                        .map(Self::OperatorSetParamsUpdated)
18788                }
18789                Some(
18790                    <OperatorSocketUpdate as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
18791                ) => {
18792                    <OperatorSocketUpdate as alloy_sol_types::SolEvent>::decode_raw_log(
18793                            topics,
18794                            data,
18795                            validate,
18796                        )
18797                        .map(Self::OperatorSocketUpdate)
18798                }
18799                Some(
18800                    <OwnershipTransferred as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
18801                ) => {
18802                    <OwnershipTransferred as alloy_sol_types::SolEvent>::decode_raw_log(
18803                            topics,
18804                            data,
18805                            validate,
18806                        )
18807                        .map(Self::OwnershipTransferred)
18808                }
18809                Some(<Paused as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
18810                    <Paused as alloy_sol_types::SolEvent>::decode_raw_log(
18811                            topics,
18812                            data,
18813                            validate,
18814                        )
18815                        .map(Self::Paused)
18816                }
18817                Some(
18818                    <QuorumBlockNumberUpdated as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
18819                ) => {
18820                    <QuorumBlockNumberUpdated as alloy_sol_types::SolEvent>::decode_raw_log(
18821                            topics,
18822                            data,
18823                            validate,
18824                        )
18825                        .map(Self::QuorumBlockNumberUpdated)
18826                }
18827                Some(<QuorumCreated as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
18828                    <QuorumCreated as alloy_sol_types::SolEvent>::decode_raw_log(
18829                            topics,
18830                            data,
18831                            validate,
18832                        )
18833                        .map(Self::QuorumCreated)
18834                }
18835                Some(<Unpaused as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
18836                    <Unpaused as alloy_sol_types::SolEvent>::decode_raw_log(
18837                            topics,
18838                            data,
18839                            validate,
18840                        )
18841                        .map(Self::Unpaused)
18842                }
18843                _ => {
18844                    alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog {
18845                        name: <Self as alloy_sol_types::SolEventInterface>::NAME,
18846                        log: alloy_sol_types::private::Box::new(
18847                            alloy_sol_types::private::LogData::new_unchecked(
18848                                topics.to_vec(),
18849                                data.to_vec().into(),
18850                            ),
18851                        ),
18852                    })
18853                }
18854            }
18855        }
18856    }
18857    #[automatically_derived]
18858    impl alloy_sol_types::private::IntoLogData for SlashingRegistryCoordinatorEvents {
18859        fn to_log_data(&self) -> alloy_sol_types::private::LogData {
18860            match self {
18861                Self::AVSUpdated(inner) => {
18862                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
18863                }
18864                Self::ChurnApproverUpdated(inner) => {
18865                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
18866                }
18867                Self::EIP712DomainChanged(inner) => {
18868                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
18869                }
18870                Self::EjectionCooldownUpdated(inner) => {
18871                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
18872                }
18873                Self::EjectorUpdated(inner) => {
18874                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
18875                }
18876                Self::Initialized(inner) => {
18877                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
18878                }
18879                Self::OperatorDeregistered(inner) => {
18880                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
18881                }
18882                Self::OperatorRegistered(inner) => {
18883                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
18884                }
18885                Self::OperatorSetParamsUpdated(inner) => {
18886                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
18887                }
18888                Self::OperatorSocketUpdate(inner) => {
18889                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
18890                }
18891                Self::OwnershipTransferred(inner) => {
18892                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
18893                }
18894                Self::Paused(inner) => {
18895                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
18896                }
18897                Self::QuorumBlockNumberUpdated(inner) => {
18898                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
18899                }
18900                Self::QuorumCreated(inner) => {
18901                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
18902                }
18903                Self::Unpaused(inner) => {
18904                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
18905                }
18906            }
18907        }
18908        fn into_log_data(self) -> alloy_sol_types::private::LogData {
18909            match self {
18910                Self::AVSUpdated(inner) => {
18911                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
18912                }
18913                Self::ChurnApproverUpdated(inner) => {
18914                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
18915                }
18916                Self::EIP712DomainChanged(inner) => {
18917                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
18918                }
18919                Self::EjectionCooldownUpdated(inner) => {
18920                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
18921                }
18922                Self::EjectorUpdated(inner) => {
18923                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
18924                }
18925                Self::Initialized(inner) => {
18926                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
18927                }
18928                Self::OperatorDeregistered(inner) => {
18929                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
18930                }
18931                Self::OperatorRegistered(inner) => {
18932                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
18933                }
18934                Self::OperatorSetParamsUpdated(inner) => {
18935                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
18936                }
18937                Self::OperatorSocketUpdate(inner) => {
18938                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
18939                }
18940                Self::OwnershipTransferred(inner) => {
18941                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
18942                }
18943                Self::Paused(inner) => {
18944                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
18945                }
18946                Self::QuorumBlockNumberUpdated(inner) => {
18947                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
18948                }
18949                Self::QuorumCreated(inner) => {
18950                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
18951                }
18952                Self::Unpaused(inner) => {
18953                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
18954                }
18955            }
18956        }
18957    }
18958    use alloy::contract as alloy_contract;
18959    /**Creates a new wrapper around an on-chain [`SlashingRegistryCoordinator`](self) contract instance.
18960
18961See the [wrapper's documentation](`SlashingRegistryCoordinatorInstance`) for more details.*/
18962    #[inline]
18963    pub const fn new<
18964        T: alloy_contract::private::Transport + ::core::clone::Clone,
18965        P: alloy_contract::private::Provider<T, N>,
18966        N: alloy_contract::private::Network,
18967    >(
18968        address: alloy_sol_types::private::Address,
18969        provider: P,
18970    ) -> SlashingRegistryCoordinatorInstance<T, P, N> {
18971        SlashingRegistryCoordinatorInstance::<T, P, N>::new(address, provider)
18972    }
18973    /**Deploys this contract using the given `provider` and constructor arguments, if any.
18974
18975Returns a new instance of the contract, if the deployment was successful.
18976
18977For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/
18978    #[inline]
18979    pub fn deploy<
18980        T: alloy_contract::private::Transport + ::core::clone::Clone,
18981        P: alloy_contract::private::Provider<T, N>,
18982        N: alloy_contract::private::Network,
18983    >(
18984        provider: P,
18985        _stakeRegistry: alloy::sol_types::private::Address,
18986        _blsApkRegistry: alloy::sol_types::private::Address,
18987        _indexRegistry: alloy::sol_types::private::Address,
18988        _socketRegistry: alloy::sol_types::private::Address,
18989        _allocationManager: alloy::sol_types::private::Address,
18990        _pauserRegistry: alloy::sol_types::private::Address,
18991        _version: alloy::sol_types::private::String,
18992    ) -> impl ::core::future::Future<
18993        Output = alloy_contract::Result<SlashingRegistryCoordinatorInstance<T, P, N>>,
18994    > {
18995        SlashingRegistryCoordinatorInstance::<
18996            T,
18997            P,
18998            N,
18999        >::deploy(
19000            provider,
19001            _stakeRegistry,
19002            _blsApkRegistry,
19003            _indexRegistry,
19004            _socketRegistry,
19005            _allocationManager,
19006            _pauserRegistry,
19007            _version,
19008        )
19009    }
19010    /**Creates a `RawCallBuilder` for deploying this contract using the given `provider`
19011and constructor arguments, if any.
19012
19013This is a simple wrapper around creating a `RawCallBuilder` with the data set to
19014the bytecode concatenated with the constructor's ABI-encoded arguments.*/
19015    #[inline]
19016    pub fn deploy_builder<
19017        T: alloy_contract::private::Transport + ::core::clone::Clone,
19018        P: alloy_contract::private::Provider<T, N>,
19019        N: alloy_contract::private::Network,
19020    >(
19021        provider: P,
19022        _stakeRegistry: alloy::sol_types::private::Address,
19023        _blsApkRegistry: alloy::sol_types::private::Address,
19024        _indexRegistry: alloy::sol_types::private::Address,
19025        _socketRegistry: alloy::sol_types::private::Address,
19026        _allocationManager: alloy::sol_types::private::Address,
19027        _pauserRegistry: alloy::sol_types::private::Address,
19028        _version: alloy::sol_types::private::String,
19029    ) -> alloy_contract::RawCallBuilder<T, P, N> {
19030        SlashingRegistryCoordinatorInstance::<
19031            T,
19032            P,
19033            N,
19034        >::deploy_builder(
19035            provider,
19036            _stakeRegistry,
19037            _blsApkRegistry,
19038            _indexRegistry,
19039            _socketRegistry,
19040            _allocationManager,
19041            _pauserRegistry,
19042            _version,
19043        )
19044    }
19045    /**A [`SlashingRegistryCoordinator`](self) instance.
19046
19047Contains type-safe methods for interacting with an on-chain instance of the
19048[`SlashingRegistryCoordinator`](self) contract located at a given `address`, using a given
19049provider `P`.
19050
19051If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!)
19052documentation on how to provide it), the `deploy` and `deploy_builder` methods can
19053be used to deploy a new instance of the contract.
19054
19055See the [module-level documentation](self) for all the available methods.*/
19056    #[derive(Clone)]
19057    pub struct SlashingRegistryCoordinatorInstance<
19058        T,
19059        P,
19060        N = alloy_contract::private::Ethereum,
19061    > {
19062        address: alloy_sol_types::private::Address,
19063        provider: P,
19064        _network_transport: ::core::marker::PhantomData<(N, T)>,
19065    }
19066    #[automatically_derived]
19067    impl<T, P, N> ::core::fmt::Debug for SlashingRegistryCoordinatorInstance<T, P, N> {
19068        #[inline]
19069        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
19070            f.debug_tuple("SlashingRegistryCoordinatorInstance")
19071                .field(&self.address)
19072                .finish()
19073        }
19074    }
19075    /// Instantiation and getters/setters.
19076    #[automatically_derived]
19077    impl<
19078        T: alloy_contract::private::Transport + ::core::clone::Clone,
19079        P: alloy_contract::private::Provider<T, N>,
19080        N: alloy_contract::private::Network,
19081    > SlashingRegistryCoordinatorInstance<T, P, N> {
19082        /**Creates a new wrapper around an on-chain [`SlashingRegistryCoordinator`](self) contract instance.
19083
19084See the [wrapper's documentation](`SlashingRegistryCoordinatorInstance`) for more details.*/
19085        #[inline]
19086        pub const fn new(
19087            address: alloy_sol_types::private::Address,
19088            provider: P,
19089        ) -> Self {
19090            Self {
19091                address,
19092                provider,
19093                _network_transport: ::core::marker::PhantomData,
19094            }
19095        }
19096        /**Deploys this contract using the given `provider` and constructor arguments, if any.
19097
19098Returns a new instance of the contract, if the deployment was successful.
19099
19100For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/
19101        #[inline]
19102        pub async fn deploy(
19103            provider: P,
19104            _stakeRegistry: alloy::sol_types::private::Address,
19105            _blsApkRegistry: alloy::sol_types::private::Address,
19106            _indexRegistry: alloy::sol_types::private::Address,
19107            _socketRegistry: alloy::sol_types::private::Address,
19108            _allocationManager: alloy::sol_types::private::Address,
19109            _pauserRegistry: alloy::sol_types::private::Address,
19110            _version: alloy::sol_types::private::String,
19111        ) -> alloy_contract::Result<SlashingRegistryCoordinatorInstance<T, P, N>> {
19112            let call_builder = Self::deploy_builder(
19113                provider,
19114                _stakeRegistry,
19115                _blsApkRegistry,
19116                _indexRegistry,
19117                _socketRegistry,
19118                _allocationManager,
19119                _pauserRegistry,
19120                _version,
19121            );
19122            let contract_address = call_builder.deploy().await?;
19123            Ok(Self::new(contract_address, call_builder.provider))
19124        }
19125        /**Creates a `RawCallBuilder` for deploying this contract using the given `provider`
19126and constructor arguments, if any.
19127
19128This is a simple wrapper around creating a `RawCallBuilder` with the data set to
19129the bytecode concatenated with the constructor's ABI-encoded arguments.*/
19130        #[inline]
19131        pub fn deploy_builder(
19132            provider: P,
19133            _stakeRegistry: alloy::sol_types::private::Address,
19134            _blsApkRegistry: alloy::sol_types::private::Address,
19135            _indexRegistry: alloy::sol_types::private::Address,
19136            _socketRegistry: alloy::sol_types::private::Address,
19137            _allocationManager: alloy::sol_types::private::Address,
19138            _pauserRegistry: alloy::sol_types::private::Address,
19139            _version: alloy::sol_types::private::String,
19140        ) -> alloy_contract::RawCallBuilder<T, P, N> {
19141            alloy_contract::RawCallBuilder::new_raw_deploy(
19142                provider,
19143                [
19144                    &BYTECODE[..],
19145                    &alloy_sol_types::SolConstructor::abi_encode(
19146                        &constructorCall {
19147                            _stakeRegistry,
19148                            _blsApkRegistry,
19149                            _indexRegistry,
19150                            _socketRegistry,
19151                            _allocationManager,
19152                            _pauserRegistry,
19153                            _version,
19154                        },
19155                    )[..],
19156                ]
19157                    .concat()
19158                    .into(),
19159            )
19160        }
19161        /// Returns a reference to the address.
19162        #[inline]
19163        pub const fn address(&self) -> &alloy_sol_types::private::Address {
19164            &self.address
19165        }
19166        /// Sets the address.
19167        #[inline]
19168        pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
19169            self.address = address;
19170        }
19171        /// Sets the address and returns `self`.
19172        pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
19173            self.set_address(address);
19174            self
19175        }
19176        /// Returns a reference to the provider.
19177        #[inline]
19178        pub const fn provider(&self) -> &P {
19179            &self.provider
19180        }
19181    }
19182    impl<T, P: ::core::clone::Clone, N> SlashingRegistryCoordinatorInstance<T, &P, N> {
19183        /// Clones the provider and returns a new instance with the cloned provider.
19184        #[inline]
19185        pub fn with_cloned_provider(
19186            self,
19187        ) -> SlashingRegistryCoordinatorInstance<T, P, N> {
19188            SlashingRegistryCoordinatorInstance {
19189                address: self.address,
19190                provider: ::core::clone::Clone::clone(&self.provider),
19191                _network_transport: ::core::marker::PhantomData,
19192            }
19193        }
19194    }
19195    /// Function calls.
19196    #[automatically_derived]
19197    impl<
19198        T: alloy_contract::private::Transport + ::core::clone::Clone,
19199        P: alloy_contract::private::Provider<T, N>,
19200        N: alloy_contract::private::Network,
19201    > SlashingRegistryCoordinatorInstance<T, P, N> {
19202        /// Creates a new call builder using this contract instance's provider and address.
19203        ///
19204        /// Note that the call can be any function call, not just those defined in this
19205        /// contract. Prefer using the other methods for building type-safe contract calls.
19206        pub fn call_builder<C: alloy_sol_types::SolCall>(
19207            &self,
19208            call: &C,
19209        ) -> alloy_contract::SolCallBuilder<T, &P, C, N> {
19210            alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
19211        }
19212        ///Creates a new call builder for the [`OPERATOR_CHURN_APPROVAL_TYPEHASH`] function.
19213        pub fn OPERATOR_CHURN_APPROVAL_TYPEHASH(
19214            &self,
19215        ) -> alloy_contract::SolCallBuilder<
19216            T,
19217            &P,
19218            OPERATOR_CHURN_APPROVAL_TYPEHASHCall,
19219            N,
19220        > {
19221            self.call_builder(
19222                &OPERATOR_CHURN_APPROVAL_TYPEHASHCall {
19223                },
19224            )
19225        }
19226        ///Creates a new call builder for the [`PUBKEY_REGISTRATION_TYPEHASH`] function.
19227        pub fn PUBKEY_REGISTRATION_TYPEHASH(
19228            &self,
19229        ) -> alloy_contract::SolCallBuilder<T, &P, PUBKEY_REGISTRATION_TYPEHASHCall, N> {
19230            self.call_builder(
19231                &PUBKEY_REGISTRATION_TYPEHASHCall {
19232                },
19233            )
19234        }
19235        ///Creates a new call builder for the [`allocationManager`] function.
19236        pub fn allocationManager(
19237            &self,
19238        ) -> alloy_contract::SolCallBuilder<T, &P, allocationManagerCall, N> {
19239            self.call_builder(&allocationManagerCall {})
19240        }
19241        ///Creates a new call builder for the [`avs`] function.
19242        pub fn avs(&self) -> alloy_contract::SolCallBuilder<T, &P, avsCall, N> {
19243            self.call_builder(&avsCall {})
19244        }
19245        ///Creates a new call builder for the [`blsApkRegistry`] function.
19246        pub fn blsApkRegistry(
19247            &self,
19248        ) -> alloy_contract::SolCallBuilder<T, &P, blsApkRegistryCall, N> {
19249            self.call_builder(&blsApkRegistryCall {})
19250        }
19251        ///Creates a new call builder for the [`calculateOperatorChurnApprovalDigestHash`] function.
19252        pub fn calculateOperatorChurnApprovalDigestHash(
19253            &self,
19254            registeringOperator: alloy::sol_types::private::Address,
19255            registeringOperatorId: alloy::sol_types::private::FixedBytes<32>,
19256            operatorKickParams: alloy::sol_types::private::Vec<
19257                <ISlashingRegistryCoordinatorTypes::OperatorKickParam as alloy::sol_types::SolType>::RustType,
19258            >,
19259            salt: alloy::sol_types::private::FixedBytes<32>,
19260            expiry: alloy::sol_types::private::primitives::aliases::U256,
19261        ) -> alloy_contract::SolCallBuilder<
19262            T,
19263            &P,
19264            calculateOperatorChurnApprovalDigestHashCall,
19265            N,
19266        > {
19267            self.call_builder(
19268                &calculateOperatorChurnApprovalDigestHashCall {
19269                    registeringOperator,
19270                    registeringOperatorId,
19271                    operatorKickParams,
19272                    salt,
19273                    expiry,
19274                },
19275            )
19276        }
19277        ///Creates a new call builder for the [`calculatePubkeyRegistrationMessageHash`] function.
19278        pub fn calculatePubkeyRegistrationMessageHash(
19279            &self,
19280            operator: alloy::sol_types::private::Address,
19281        ) -> alloy_contract::SolCallBuilder<
19282            T,
19283            &P,
19284            calculatePubkeyRegistrationMessageHashCall,
19285            N,
19286        > {
19287            self.call_builder(
19288                &calculatePubkeyRegistrationMessageHashCall {
19289                    operator,
19290                },
19291            )
19292        }
19293        ///Creates a new call builder for the [`churnApprover`] function.
19294        pub fn churnApprover(
19295            &self,
19296        ) -> alloy_contract::SolCallBuilder<T, &P, churnApproverCall, N> {
19297            self.call_builder(&churnApproverCall {})
19298        }
19299        ///Creates a new call builder for the [`createSlashableStakeQuorum`] function.
19300        pub fn createSlashableStakeQuorum(
19301            &self,
19302            operatorSetParams: <ISlashingRegistryCoordinatorTypes::OperatorSetParam as alloy::sol_types::SolType>::RustType,
19303            minimumStake: alloy::sol_types::private::primitives::aliases::U96,
19304            strategyParams: alloy::sol_types::private::Vec<
19305                <IStakeRegistryTypes::StrategyParams as alloy::sol_types::SolType>::RustType,
19306            >,
19307            lookAheadPeriod: u32,
19308        ) -> alloy_contract::SolCallBuilder<T, &P, createSlashableStakeQuorumCall, N> {
19309            self.call_builder(
19310                &createSlashableStakeQuorumCall {
19311                    operatorSetParams,
19312                    minimumStake,
19313                    strategyParams,
19314                    lookAheadPeriod,
19315                },
19316            )
19317        }
19318        ///Creates a new call builder for the [`createTotalDelegatedStakeQuorum`] function.
19319        pub fn createTotalDelegatedStakeQuorum(
19320            &self,
19321            operatorSetParams: <ISlashingRegistryCoordinatorTypes::OperatorSetParam as alloy::sol_types::SolType>::RustType,
19322            minimumStake: alloy::sol_types::private::primitives::aliases::U96,
19323            strategyParams: alloy::sol_types::private::Vec<
19324                <IStakeRegistryTypes::StrategyParams as alloy::sol_types::SolType>::RustType,
19325            >,
19326        ) -> alloy_contract::SolCallBuilder<
19327            T,
19328            &P,
19329            createTotalDelegatedStakeQuorumCall,
19330            N,
19331        > {
19332            self.call_builder(
19333                &createTotalDelegatedStakeQuorumCall {
19334                    operatorSetParams,
19335                    minimumStake,
19336                    strategyParams,
19337                },
19338            )
19339        }
19340        ///Creates a new call builder for the [`deregisterOperator`] function.
19341        pub fn deregisterOperator(
19342            &self,
19343            operator: alloy::sol_types::private::Address,
19344            avs: alloy::sol_types::private::Address,
19345            operatorSetIds: alloy::sol_types::private::Vec<u32>,
19346        ) -> alloy_contract::SolCallBuilder<T, &P, deregisterOperatorCall, N> {
19347            self.call_builder(
19348                &deregisterOperatorCall {
19349                    operator,
19350                    avs,
19351                    operatorSetIds,
19352                },
19353            )
19354        }
19355        ///Creates a new call builder for the [`domainSeparator`] function.
19356        pub fn domainSeparator(
19357            &self,
19358        ) -> alloy_contract::SolCallBuilder<T, &P, domainSeparatorCall, N> {
19359            self.call_builder(&domainSeparatorCall {})
19360        }
19361        ///Creates a new call builder for the [`eip712Domain`] function.
19362        pub fn eip712Domain(
19363            &self,
19364        ) -> alloy_contract::SolCallBuilder<T, &P, eip712DomainCall, N> {
19365            self.call_builder(&eip712DomainCall {})
19366        }
19367        ///Creates a new call builder for the [`ejectOperator`] function.
19368        pub fn ejectOperator(
19369            &self,
19370            operator: alloy::sol_types::private::Address,
19371            quorumNumbers: alloy::sol_types::private::Bytes,
19372        ) -> alloy_contract::SolCallBuilder<T, &P, ejectOperatorCall, N> {
19373            self.call_builder(
19374                &ejectOperatorCall {
19375                    operator,
19376                    quorumNumbers,
19377                },
19378            )
19379        }
19380        ///Creates a new call builder for the [`ejectionCooldown`] function.
19381        pub fn ejectionCooldown(
19382            &self,
19383        ) -> alloy_contract::SolCallBuilder<T, &P, ejectionCooldownCall, N> {
19384            self.call_builder(&ejectionCooldownCall {})
19385        }
19386        ///Creates a new call builder for the [`ejector`] function.
19387        pub fn ejector(&self) -> alloy_contract::SolCallBuilder<T, &P, ejectorCall, N> {
19388            self.call_builder(&ejectorCall {})
19389        }
19390        ///Creates a new call builder for the [`getCurrentQuorumBitmap`] function.
19391        pub fn getCurrentQuorumBitmap(
19392            &self,
19393            operatorId: alloy::sol_types::private::FixedBytes<32>,
19394        ) -> alloy_contract::SolCallBuilder<T, &P, getCurrentQuorumBitmapCall, N> {
19395            self.call_builder(
19396                &getCurrentQuorumBitmapCall {
19397                    operatorId,
19398                },
19399            )
19400        }
19401        ///Creates a new call builder for the [`getOperator`] function.
19402        pub fn getOperator(
19403            &self,
19404            operator: alloy::sol_types::private::Address,
19405        ) -> alloy_contract::SolCallBuilder<T, &P, getOperatorCall, N> {
19406            self.call_builder(&getOperatorCall { operator })
19407        }
19408        ///Creates a new call builder for the [`getOperatorFromId`] function.
19409        pub fn getOperatorFromId(
19410            &self,
19411            operatorId: alloy::sol_types::private::FixedBytes<32>,
19412        ) -> alloy_contract::SolCallBuilder<T, &P, getOperatorFromIdCall, N> {
19413            self.call_builder(
19414                &getOperatorFromIdCall {
19415                    operatorId,
19416                },
19417            )
19418        }
19419        ///Creates a new call builder for the [`getOperatorId`] function.
19420        pub fn getOperatorId(
19421            &self,
19422            operator: alloy::sol_types::private::Address,
19423        ) -> alloy_contract::SolCallBuilder<T, &P, getOperatorIdCall, N> {
19424            self.call_builder(&getOperatorIdCall { operator })
19425        }
19426        ///Creates a new call builder for the [`getOperatorSetParams`] function.
19427        pub fn getOperatorSetParams(
19428            &self,
19429            quorumNumber: u8,
19430        ) -> alloy_contract::SolCallBuilder<T, &P, getOperatorSetParamsCall, N> {
19431            self.call_builder(
19432                &getOperatorSetParamsCall {
19433                    quorumNumber,
19434                },
19435            )
19436        }
19437        ///Creates a new call builder for the [`getOperatorStatus`] function.
19438        pub fn getOperatorStatus(
19439            &self,
19440            operator: alloy::sol_types::private::Address,
19441        ) -> alloy_contract::SolCallBuilder<T, &P, getOperatorStatusCall, N> {
19442            self.call_builder(&getOperatorStatusCall { operator })
19443        }
19444        ///Creates a new call builder for the [`getQuorumBitmapAtBlockNumberByIndex`] function.
19445        pub fn getQuorumBitmapAtBlockNumberByIndex(
19446            &self,
19447            operatorId: alloy::sol_types::private::FixedBytes<32>,
19448            blockNumber: u32,
19449            index: alloy::sol_types::private::primitives::aliases::U256,
19450        ) -> alloy_contract::SolCallBuilder<
19451            T,
19452            &P,
19453            getQuorumBitmapAtBlockNumberByIndexCall,
19454            N,
19455        > {
19456            self.call_builder(
19457                &getQuorumBitmapAtBlockNumberByIndexCall {
19458                    operatorId,
19459                    blockNumber,
19460                    index,
19461                },
19462            )
19463        }
19464        ///Creates a new call builder for the [`getQuorumBitmapHistoryLength`] function.
19465        pub fn getQuorumBitmapHistoryLength(
19466            &self,
19467            operatorId: alloy::sol_types::private::FixedBytes<32>,
19468        ) -> alloy_contract::SolCallBuilder<T, &P, getQuorumBitmapHistoryLengthCall, N> {
19469            self.call_builder(
19470                &getQuorumBitmapHistoryLengthCall {
19471                    operatorId,
19472                },
19473            )
19474        }
19475        ///Creates a new call builder for the [`getQuorumBitmapIndicesAtBlockNumber`] function.
19476        pub fn getQuorumBitmapIndicesAtBlockNumber(
19477            &self,
19478            blockNumber: u32,
19479            operatorIds: alloy::sol_types::private::Vec<
19480                alloy::sol_types::private::FixedBytes<32>,
19481            >,
19482        ) -> alloy_contract::SolCallBuilder<
19483            T,
19484            &P,
19485            getQuorumBitmapIndicesAtBlockNumberCall,
19486            N,
19487        > {
19488            self.call_builder(
19489                &getQuorumBitmapIndicesAtBlockNumberCall {
19490                    blockNumber,
19491                    operatorIds,
19492                },
19493            )
19494        }
19495        ///Creates a new call builder for the [`getQuorumBitmapUpdateByIndex`] function.
19496        pub fn getQuorumBitmapUpdateByIndex(
19497            &self,
19498            operatorId: alloy::sol_types::private::FixedBytes<32>,
19499            index: alloy::sol_types::private::primitives::aliases::U256,
19500        ) -> alloy_contract::SolCallBuilder<T, &P, getQuorumBitmapUpdateByIndexCall, N> {
19501            self.call_builder(
19502                &getQuorumBitmapUpdateByIndexCall {
19503                    operatorId,
19504                    index,
19505                },
19506            )
19507        }
19508        ///Creates a new call builder for the [`indexRegistry`] function.
19509        pub fn indexRegistry(
19510            &self,
19511        ) -> alloy_contract::SolCallBuilder<T, &P, indexRegistryCall, N> {
19512            self.call_builder(&indexRegistryCall {})
19513        }
19514        ///Creates a new call builder for the [`initialize`] function.
19515        pub fn initialize(
19516            &self,
19517            initialOwner: alloy::sol_types::private::Address,
19518            churnApprover: alloy::sol_types::private::Address,
19519            ejector: alloy::sol_types::private::Address,
19520            initialPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
19521            avs: alloy::sol_types::private::Address,
19522        ) -> alloy_contract::SolCallBuilder<T, &P, initializeCall, N> {
19523            self.call_builder(
19524                &initializeCall {
19525                    initialOwner,
19526                    churnApprover,
19527                    ejector,
19528                    initialPausedStatus,
19529                    avs,
19530                },
19531            )
19532        }
19533        ///Creates a new call builder for the [`isChurnApproverSaltUsed`] function.
19534        pub fn isChurnApproverSaltUsed(
19535            &self,
19536            _0: alloy::sol_types::private::FixedBytes<32>,
19537        ) -> alloy_contract::SolCallBuilder<T, &P, isChurnApproverSaltUsedCall, N> {
19538            self.call_builder(&isChurnApproverSaltUsedCall { _0 })
19539        }
19540        ///Creates a new call builder for the [`lastEjectionTimestamp`] function.
19541        pub fn lastEjectionTimestamp(
19542            &self,
19543            _0: alloy::sol_types::private::Address,
19544        ) -> alloy_contract::SolCallBuilder<T, &P, lastEjectionTimestampCall, N> {
19545            self.call_builder(&lastEjectionTimestampCall { _0 })
19546        }
19547        ///Creates a new call builder for the [`owner`] function.
19548        pub fn owner(&self) -> alloy_contract::SolCallBuilder<T, &P, ownerCall, N> {
19549            self.call_builder(&ownerCall {})
19550        }
19551        ///Creates a new call builder for the [`pause`] function.
19552        pub fn pause(
19553            &self,
19554            newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
19555        ) -> alloy_contract::SolCallBuilder<T, &P, pauseCall, N> {
19556            self.call_builder(&pauseCall { newPausedStatus })
19557        }
19558        ///Creates a new call builder for the [`pauseAll`] function.
19559        pub fn pauseAll(
19560            &self,
19561        ) -> alloy_contract::SolCallBuilder<T, &P, pauseAllCall, N> {
19562            self.call_builder(&pauseAllCall {})
19563        }
19564        ///Creates a new call builder for the [`paused_0`] function.
19565        pub fn paused_0(
19566            &self,
19567            index: u8,
19568        ) -> alloy_contract::SolCallBuilder<T, &P, paused_0Call, N> {
19569            self.call_builder(&paused_0Call { index })
19570        }
19571        ///Creates a new call builder for the [`paused_1`] function.
19572        pub fn paused_1(
19573            &self,
19574        ) -> alloy_contract::SolCallBuilder<T, &P, paused_1Call, N> {
19575            self.call_builder(&paused_1Call {})
19576        }
19577        ///Creates a new call builder for the [`pauserRegistry`] function.
19578        pub fn pauserRegistry(
19579            &self,
19580        ) -> alloy_contract::SolCallBuilder<T, &P, pauserRegistryCall, N> {
19581            self.call_builder(&pauserRegistryCall {})
19582        }
19583        ///Creates a new call builder for the [`pubkeyRegistrationMessageHash`] function.
19584        pub fn pubkeyRegistrationMessageHash(
19585            &self,
19586            operator: alloy::sol_types::private::Address,
19587        ) -> alloy_contract::SolCallBuilder<
19588            T,
19589            &P,
19590            pubkeyRegistrationMessageHashCall,
19591            N,
19592        > {
19593            self.call_builder(
19594                &pubkeyRegistrationMessageHashCall {
19595                    operator,
19596                },
19597            )
19598        }
19599        ///Creates a new call builder for the [`quorumCount`] function.
19600        pub fn quorumCount(
19601            &self,
19602        ) -> alloy_contract::SolCallBuilder<T, &P, quorumCountCall, N> {
19603            self.call_builder(&quorumCountCall {})
19604        }
19605        ///Creates a new call builder for the [`quorumUpdateBlockNumber`] function.
19606        pub fn quorumUpdateBlockNumber(
19607            &self,
19608            _0: u8,
19609        ) -> alloy_contract::SolCallBuilder<T, &P, quorumUpdateBlockNumberCall, N> {
19610            self.call_builder(&quorumUpdateBlockNumberCall { _0 })
19611        }
19612        ///Creates a new call builder for the [`registerOperator`] function.
19613        pub fn registerOperator(
19614            &self,
19615            operator: alloy::sol_types::private::Address,
19616            avs: alloy::sol_types::private::Address,
19617            operatorSetIds: alloy::sol_types::private::Vec<u32>,
19618            data: alloy::sol_types::private::Bytes,
19619        ) -> alloy_contract::SolCallBuilder<T, &P, registerOperatorCall, N> {
19620            self.call_builder(
19621                &registerOperatorCall {
19622                    operator,
19623                    avs,
19624                    operatorSetIds,
19625                    data,
19626                },
19627            )
19628        }
19629        ///Creates a new call builder for the [`renounceOwnership`] function.
19630        pub fn renounceOwnership(
19631            &self,
19632        ) -> alloy_contract::SolCallBuilder<T, &P, renounceOwnershipCall, N> {
19633            self.call_builder(&renounceOwnershipCall {})
19634        }
19635        ///Creates a new call builder for the [`setAVS`] function.
19636        pub fn setAVS(
19637            &self,
19638            _avs: alloy::sol_types::private::Address,
19639        ) -> alloy_contract::SolCallBuilder<T, &P, setAVSCall, N> {
19640            self.call_builder(&setAVSCall { _avs })
19641        }
19642        ///Creates a new call builder for the [`setChurnApprover`] function.
19643        pub fn setChurnApprover(
19644            &self,
19645            _churnApprover: alloy::sol_types::private::Address,
19646        ) -> alloy_contract::SolCallBuilder<T, &P, setChurnApproverCall, N> {
19647            self.call_builder(
19648                &setChurnApproverCall {
19649                    _churnApprover,
19650                },
19651            )
19652        }
19653        ///Creates a new call builder for the [`setEjectionCooldown`] function.
19654        pub fn setEjectionCooldown(
19655            &self,
19656            _ejectionCooldown: alloy::sol_types::private::primitives::aliases::U256,
19657        ) -> alloy_contract::SolCallBuilder<T, &P, setEjectionCooldownCall, N> {
19658            self.call_builder(
19659                &setEjectionCooldownCall {
19660                    _ejectionCooldown,
19661                },
19662            )
19663        }
19664        ///Creates a new call builder for the [`setEjector`] function.
19665        pub fn setEjector(
19666            &self,
19667            _ejector: alloy::sol_types::private::Address,
19668        ) -> alloy_contract::SolCallBuilder<T, &P, setEjectorCall, N> {
19669            self.call_builder(&setEjectorCall { _ejector })
19670        }
19671        ///Creates a new call builder for the [`setOperatorSetParams`] function.
19672        pub fn setOperatorSetParams(
19673            &self,
19674            quorumNumber: u8,
19675            operatorSetParams: <ISlashingRegistryCoordinatorTypes::OperatorSetParam as alloy::sol_types::SolType>::RustType,
19676        ) -> alloy_contract::SolCallBuilder<T, &P, setOperatorSetParamsCall, N> {
19677            self.call_builder(
19678                &setOperatorSetParamsCall {
19679                    quorumNumber,
19680                    operatorSetParams,
19681                },
19682            )
19683        }
19684        ///Creates a new call builder for the [`socketRegistry`] function.
19685        pub fn socketRegistry(
19686            &self,
19687        ) -> alloy_contract::SolCallBuilder<T, &P, socketRegistryCall, N> {
19688            self.call_builder(&socketRegistryCall {})
19689        }
19690        ///Creates a new call builder for the [`stakeRegistry`] function.
19691        pub fn stakeRegistry(
19692            &self,
19693        ) -> alloy_contract::SolCallBuilder<T, &P, stakeRegistryCall, N> {
19694            self.call_builder(&stakeRegistryCall {})
19695        }
19696        ///Creates a new call builder for the [`supportsAVS`] function.
19697        pub fn supportsAVS(
19698            &self,
19699            _avs: alloy::sol_types::private::Address,
19700        ) -> alloy_contract::SolCallBuilder<T, &P, supportsAVSCall, N> {
19701            self.call_builder(&supportsAVSCall { _avs })
19702        }
19703        ///Creates a new call builder for the [`transferOwnership`] function.
19704        pub fn transferOwnership(
19705            &self,
19706            newOwner: alloy::sol_types::private::Address,
19707        ) -> alloy_contract::SolCallBuilder<T, &P, transferOwnershipCall, N> {
19708            self.call_builder(&transferOwnershipCall { newOwner })
19709        }
19710        ///Creates a new call builder for the [`unpause`] function.
19711        pub fn unpause(
19712            &self,
19713            newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
19714        ) -> alloy_contract::SolCallBuilder<T, &P, unpauseCall, N> {
19715            self.call_builder(&unpauseCall { newPausedStatus })
19716        }
19717        ///Creates a new call builder for the [`updateOperators`] function.
19718        pub fn updateOperators(
19719            &self,
19720            operators: alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
19721        ) -> alloy_contract::SolCallBuilder<T, &P, updateOperatorsCall, N> {
19722            self.call_builder(&updateOperatorsCall { operators })
19723        }
19724        ///Creates a new call builder for the [`updateOperatorsForQuorum`] function.
19725        pub fn updateOperatorsForQuorum(
19726            &self,
19727            operatorsPerQuorum: alloy::sol_types::private::Vec<
19728                alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
19729            >,
19730            quorumNumbers: alloy::sol_types::private::Bytes,
19731        ) -> alloy_contract::SolCallBuilder<T, &P, updateOperatorsForQuorumCall, N> {
19732            self.call_builder(
19733                &updateOperatorsForQuorumCall {
19734                    operatorsPerQuorum,
19735                    quorumNumbers,
19736                },
19737            )
19738        }
19739        ///Creates a new call builder for the [`updateSocket`] function.
19740        pub fn updateSocket(
19741            &self,
19742            socket: alloy::sol_types::private::String,
19743        ) -> alloy_contract::SolCallBuilder<T, &P, updateSocketCall, N> {
19744            self.call_builder(&updateSocketCall { socket })
19745        }
19746        ///Creates a new call builder for the [`version`] function.
19747        pub fn version(&self) -> alloy_contract::SolCallBuilder<T, &P, versionCall, N> {
19748            self.call_builder(&versionCall {})
19749        }
19750    }
19751    /// Event filters.
19752    #[automatically_derived]
19753    impl<
19754        T: alloy_contract::private::Transport + ::core::clone::Clone,
19755        P: alloy_contract::private::Provider<T, N>,
19756        N: alloy_contract::private::Network,
19757    > SlashingRegistryCoordinatorInstance<T, P, N> {
19758        /// Creates a new event filter using this contract instance's provider and address.
19759        ///
19760        /// Note that the type can be any event, not just those defined in this contract.
19761        /// Prefer using the other methods for building type-safe event filters.
19762        pub fn event_filter<E: alloy_sol_types::SolEvent>(
19763            &self,
19764        ) -> alloy_contract::Event<T, &P, E, N> {
19765            alloy_contract::Event::new_sol(&self.provider, &self.address)
19766        }
19767        ///Creates a new event filter for the [`AVSUpdated`] event.
19768        pub fn AVSUpdated_filter(&self) -> alloy_contract::Event<T, &P, AVSUpdated, N> {
19769            self.event_filter::<AVSUpdated>()
19770        }
19771        ///Creates a new event filter for the [`ChurnApproverUpdated`] event.
19772        pub fn ChurnApproverUpdated_filter(
19773            &self,
19774        ) -> alloy_contract::Event<T, &P, ChurnApproverUpdated, N> {
19775            self.event_filter::<ChurnApproverUpdated>()
19776        }
19777        ///Creates a new event filter for the [`EIP712DomainChanged`] event.
19778        pub fn EIP712DomainChanged_filter(
19779            &self,
19780        ) -> alloy_contract::Event<T, &P, EIP712DomainChanged, N> {
19781            self.event_filter::<EIP712DomainChanged>()
19782        }
19783        ///Creates a new event filter for the [`EjectionCooldownUpdated`] event.
19784        pub fn EjectionCooldownUpdated_filter(
19785            &self,
19786        ) -> alloy_contract::Event<T, &P, EjectionCooldownUpdated, N> {
19787            self.event_filter::<EjectionCooldownUpdated>()
19788        }
19789        ///Creates a new event filter for the [`EjectorUpdated`] event.
19790        pub fn EjectorUpdated_filter(
19791            &self,
19792        ) -> alloy_contract::Event<T, &P, EjectorUpdated, N> {
19793            self.event_filter::<EjectorUpdated>()
19794        }
19795        ///Creates a new event filter for the [`Initialized`] event.
19796        pub fn Initialized_filter(
19797            &self,
19798        ) -> alloy_contract::Event<T, &P, Initialized, N> {
19799            self.event_filter::<Initialized>()
19800        }
19801        ///Creates a new event filter for the [`OperatorDeregistered`] event.
19802        pub fn OperatorDeregistered_filter(
19803            &self,
19804        ) -> alloy_contract::Event<T, &P, OperatorDeregistered, N> {
19805            self.event_filter::<OperatorDeregistered>()
19806        }
19807        ///Creates a new event filter for the [`OperatorRegistered`] event.
19808        pub fn OperatorRegistered_filter(
19809            &self,
19810        ) -> alloy_contract::Event<T, &P, OperatorRegistered, N> {
19811            self.event_filter::<OperatorRegistered>()
19812        }
19813        ///Creates a new event filter for the [`OperatorSetParamsUpdated`] event.
19814        pub fn OperatorSetParamsUpdated_filter(
19815            &self,
19816        ) -> alloy_contract::Event<T, &P, OperatorSetParamsUpdated, N> {
19817            self.event_filter::<OperatorSetParamsUpdated>()
19818        }
19819        ///Creates a new event filter for the [`OperatorSocketUpdate`] event.
19820        pub fn OperatorSocketUpdate_filter(
19821            &self,
19822        ) -> alloy_contract::Event<T, &P, OperatorSocketUpdate, N> {
19823            self.event_filter::<OperatorSocketUpdate>()
19824        }
19825        ///Creates a new event filter for the [`OwnershipTransferred`] event.
19826        pub fn OwnershipTransferred_filter(
19827            &self,
19828        ) -> alloy_contract::Event<T, &P, OwnershipTransferred, N> {
19829            self.event_filter::<OwnershipTransferred>()
19830        }
19831        ///Creates a new event filter for the [`Paused`] event.
19832        pub fn Paused_filter(&self) -> alloy_contract::Event<T, &P, Paused, N> {
19833            self.event_filter::<Paused>()
19834        }
19835        ///Creates a new event filter for the [`QuorumBlockNumberUpdated`] event.
19836        pub fn QuorumBlockNumberUpdated_filter(
19837            &self,
19838        ) -> alloy_contract::Event<T, &P, QuorumBlockNumberUpdated, N> {
19839            self.event_filter::<QuorumBlockNumberUpdated>()
19840        }
19841        ///Creates a new event filter for the [`QuorumCreated`] event.
19842        pub fn QuorumCreated_filter(
19843            &self,
19844        ) -> alloy_contract::Event<T, &P, QuorumCreated, N> {
19845            self.event_filter::<QuorumCreated>()
19846        }
19847        ///Creates a new event filter for the [`Unpaused`] event.
19848        pub fn Unpaused_filter(&self) -> alloy_contract::Event<T, &P, Unpaused, N> {
19849            self.event_filter::<Unpaused>()
19850        }
19851    }
19852}